在 app.config 中使用加密的 appSettings 元素有多安全?

Rob*_*vey 5 .net c# sql-server asp.net security

CodingHorror 博客文章中,一位评论者观察到,在程序中隐藏敏感配置信息(例如 SQL Server 连接字符串)比以前更加困难,因为可以使用Reflector轻松反汇编隐藏算法。

另一位评论者建议可以使用加密的 appSettings 作为替代方案。

加密的 appSettings 的安全性如何?是银行金库、锁着的门还是开着的窗户,为什么?在可执行文件中存储“敏感信息”是否安全?

Joe*_*Joe 2

加密算法是安全的:使用加密来保证安全的主要问题是密钥的安全管理。

在应用程序可执行文件中隐藏密钥从来都不是安全的,但可以说,使用 Reflector 等工具在托管可执行文件中找到它们比在传统的非托管可执行文件中更容易找到。

加密配置文件在服务器上很有用。例如,如果您使用带有机器密钥的 DPAPI 加密 web.config,则只有可以登录服务器或对服务器磁盘具有写访问权限的用户才能解密它:

任何通过网络对服务器磁盘具有读取访问权限或对应用程序目录的备份副本具有访问权限的人都无法对其进行解密。