为什么要加密Web配置文件?

dan*_*wig 11 asp.net encryption passwords web-config

据我所知,web.config文件中的任何部分都可以使用aspnet_regiis.exe进行加密和解密.

如果aspnet_regiis可用于解密web.config文件,那么加密它的重点是什么?是否只是将密码和敏感信息保存为纯文本?如果有文件和exe的任何人都可以解密它,它真的保护敏感的配置信息吗?

UPDATE

感谢所有关于机器钥匙的人.我问这个问题的原因是因为我们在codeplex.com上有一个开源项目.但是,我们还将此项目部署到Windows Azure.我试图找到一种最好的方法来保持敏感密码不受源代码控制,但是当我部署到Azure时,将它们作为我的项目的一部分进行访问.

目前,我正在使用Web配置转换来存储Azure连接字符串(以及system.net的Gmail密码).我创建了一个Web.PublishToAzure.config转换文件,并将该文件保留在源代码管理之外.我也发现这篇文章可能是更好的选择.再次感谢.

Chr*_*aas 9

该文件使用计算机专用密钥加密.虽然拥有机器级访问权限的任何人都可以对其进行解密,但加密它会阻止具​​有FTP访问权限的人,因为他们没有机器的DPAPI密钥.


Pat*_*ick 5

我的理解是aspnet_regiis.exe使用机器特定的密钥作为"盐"

如果您加密计算机上的一个部分,然后将配置带到另一台计算机并尝试解密它,它将无法正常工作.


Che*_*ise 5

历史上,浏览器或Web服务器软件中存在一些漏洞,允许用户查看服务器硬盘上的任何文件。在这种情况下,加密的web.config文件可能会有所用。但是,如果Web服务器已受到威胁,允许远程访问服务器本身,那么拥有加密的web.config文件将是您最少的担心。


Tom*_*son 3

简单的答案:他们无法访问密钥

我相信默认情况下密钥存储在计算机的证书存储中,因此恶意用户也需要访问该密钥。我不是专家,但这就是要点。