.NET Compact Framework连接字符串加密/保护

时间:2010-04-19 23:12:59

标签: c# .net encryption compact-framework connection-string

我正在用C#为运行Windows Mobile 6.1的智能设备编写应用程序。这很基础。只是查询数据库并获得结果。没什么太花哨的。

此程序仅在内部部署,但我们仍希望使用SQL连接信息保证安全。

在程序中加密/保护连接字符串的最佳方法是什么?我已经看过使用AppSettings的.NET程序示例,但我没有在我的解决方案属性中看到设置stab。

这是我第一次在C#/ Visual Studio 2008中开发应用程序,因此可能会出现某种我不知道的设置。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

请注意,如果它在您的程序中,那么它本身就是不安全的。无论你做什么,如果应用程序能够与其包含的信息建立安全连接,那么有经验的黑客可以随时随地提取该信息。

但是你担心这种威胁吗?显然只是把它扔进app.config文件就像你得到的安全性差一样。所有必须发生的事情是有人用文本阅读器和ta-da打开文件,他们有你的凭据。

也许您希望在配置文件中存储加密版本,并在您的应用中保留私钥。至少一个文本阅读器不能“打破”它。当然有人可能会使用反射器并反编译您的应用程序以获取私钥。

嗯,你可以混淆应用程序。这将使得找到私钥变得更加困难。是的仍然不是不可能。

也许您希望通过Web服务或其他东西从服务器中取出私钥。然后,如果有人拥有该应用程序,他们无法获得它 - 尽管他们总是可以对Web服务调用的方式进行逆向工程。或者做一个中间人并查看网络上的密钥。

也许您可以使用SSL来保护传输。也许对服务进行MAC过滤,使未经授权的设备更难获取密钥。

您可以在此处查看进展情况。每个级别的安全性都需要越来越多的工作。越来越多的维护。您必须决定投资回报率对您的方案的影响,并选择一个您愿意花费在其上的努力程度的安全级别。

答案 1 :(得分:0)

不确定这是否有帮助,但我在VS2005下的先前Windows Mobile 5项目中使用了 OpenNETCF.AppSettings

您可以www.opennetcf.com免费下载 OpenNETCF智能设备框架的社区版,然后浏览documentation

我不确定它是否适用于VS2008 / CF3.5。