2012-07-19 85 views
1

我已阅读关于aspnet_regiis加密在一个ASP.net项目中的web.config部分,但我很困惑这是如何工作的,因为解密密钥必须在实际服务器上的明文中生活的地方。加密Web.config部分

我最好喜欢使用AES进行加密,但这需要将aes键添加到纯文本本身的web.config中,这对我来说似乎毫无用处。 (从https://stackoverflow.com/a/8777147

也许我失去了一些东西......有人可以解释这个加密过程是如何安全的吗?

+0

安全? Web服务器之外的用户应该无法看到Web.config。永远。如果可以的话,那是一个需要插入的安全漏洞。或者你在说可以访问Web服务器的人吗? – David 2012-07-19 19:55:44

+0

“解密密钥必须在实际服务器上以明文形式存在”是不正确的假设。 – Oded 2012-07-19 19:57:11

回答

0

如果您能够登录到计算机上的会话并访问密钥,则aspnet_regiis加密很容易解密。

这可以防止某人可以查看该文件但无法登录到计算机的场景以及解密密钥正确ACL'ed到已知用户组的场景。

底层使用DPAPI和机器上下文特定信息。我相信你也可以使用用户配置文件加密,在这种情况下,其他用户无法解密它。

下面是一些有用的链接:从谁

http://weblogs.asp.net/owscott/archive/2005/07/29/421063.aspx

http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx

0

您必须创建一个关键的第一,比你的web.config

使用该密钥的详细说明可以在这里找到:msdn microsoft

下的网络场方案的一个是最实用的。

我认为如果你在web.config中有很多密码等,加密它们会很有用。