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

时间:2011-05-11 15:36:11

标签: asp.net web-config passwords encryption

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

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

更新

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

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

4 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:4)

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

答案 3 :(得分:2)

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

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