我正在用C#为运行Windows Mobile 6.1的智能设备编写一个应用程序.这很基本.只是查询数据库并获得结果.没什么好看的.
该程序仅将在内部部署,但是我们仍然希望使用我们的SQL连接信息来确保安全.
在程序中加密/保护连接字符串的最佳方法是什么?我已经看到了使用AppSettings的.NET程序的示例,但是在“解决方案”属性中没有看到“设置”选项卡.
这是我第一次在C#/ Visual Studio 2008中开发应用程序,因此可能缺少某种设置.
谢谢您的帮助.
解决方法:
请注意,如果它在您的程序中,则它本质上是不安全的.无论您做什么,如果应用程序能够使用其包含的信息进行安全连接,那么有经验的黑客便会随着时间和欲望将这些信息提取出来.
但是您是否担心这种威胁程度?显然,将其扔到app.config文件中与您获得的安全性一样低.所要做的就是某人使用文本阅读器和ta-da打开文件,他们拥有您的凭据.
也许您想将加密版本存储在配置文件中,并在应用程序中保留私钥.至少文本阅读器无法“破坏”它.当然,可能有人会使用反射器并反编译您的应用程序以获取私钥.
好吧,您可以混淆该应用程序.这将使查找该私钥变得更加困难.是的,仍然不是没有可能.
也许您希望通过网络服务或其他方式将该私钥从服务器中提取出来.然后,如果有人拥有该应用程序,他们将无法获得它-尽管他们总是可以反向工程Web服务调用的方式.或做一个中间人并查看网络上的密钥.
也许您可以使用SSL保护传输.也许对服务进行MAC过滤会使未经授权的设备更难获得密钥.
您可以在此处查看进度.每个安全级别都需要越来越多的工作.越来越多的维护.您必须确定针对您的方案的投资回报率,并为您愿意花多少精力选择合适的安全级别.