连接字符串加密,这是什么意思?

12

如果我对连接字符串部分进行加密,任何拥有web.config文件的人都可以重新解密信息。

没有只有我知道的密码键或类似的东西...

这里的意思是什么?任何使用VS拥有该web.config文件的人都将能够解密信息...

我不理解这个想法...


我的建议是先阅读文档:http://msdn.microsoft.com/en-us/library/53tyfkaw(v=VS.100).aspx,然后提出更具针对性的问题。你的问题太过笼统,无法回答。 - Eric Lippert
7
只有当你能够访问包含 web.config 文件的机器或者知道该机器的密钥时,才能解密该值。除非你已经被完全攻陷,否则不可能拥有这样的权限。请注意,此处涉及的是解密而非破解。 - hatchet - done with SOverflow
谢谢hatchet:那帮助我理解了。 - Royi Namir
3个回答

17

你错误地认为任何人都可以解密web.config。一旦配置文件部分被加密,它只能在相同的机器上解密(或具有相同密钥的机器 - 这是用于Web Farming的)。

通常,通过漏洞,轻松远程下载实际的web.config。但是恶意用户将不会拥有您的密钥,无法解密文件(或带有敏感数据的部分)。

关键在于你必须信任你的站点托管者,也就是说,敏感密钥将不会被分发。


1

您可以指定加密提供程序,但默认为RSA提供程序。有一个密钥被使用,但它是“秘密”的。因此,某人需要具有在您的服务器上运行应用程序的特权或对文件系统的无限制访问权限才能解密您的web.config。

这个(尤其是第二步)讲述了它:

http://msdn2.microsoft.com/en-us/library/ms998283.aspx


0

我不知道 aspnet_regiis.exe 工具是使用密钥加密还是解密 web.config 文件。但是,如果它存储在 web.config 文件中,则任何安装了 aspnet_regiis 实用程序的人都可以解密它;但是,如果它存储在计算机的 machine.config 或 .Net Framework 文件夹中,则任何人都无法解密它。


通常放置在 machine.config 或安全的 Windows 存储中,绝不会存储在 web.config 中。 - oleksii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接