0

我想知道在 ASP.Net MVC 4 应用程序中加密 Web.Config 文件的最佳(最安全)方法是什么?我有一些使用 C# 开发内部应用程序的背景,但由于已经存在其他安全性,我们从未过多关注加密。

编辑:我的主机服务器是 ORACLE,如果这改变了什么?一位朋友提到,在使用“-pe”参数部署我的代码后,可能会使用aspnet_regiis.exe 。有人对这种方法有任何优点/缺点吗?

EDIT2:ORACLE 是数据库,而不是服务器!我还能回家吗?!>_<

4

3 回答 3

1

我想知道加密 Web.Config 文件的最佳(最安全)方法是什么

“最安全”取决于您要防范的威胁。您可以假设所有标准加密算法都是安全的,但是通过加密 web.config,您只是将 web.config 中保护明文凭据的问题换成了保护加密密钥的问题。

通常,您将使用受保护的配置来加密 web.config。

  • 如果您使用 DPAPI 提供程序,您将使用服务器的机器密钥进行加密。这意味着任何可以登录服务器的人都可以破解加密。任何对服务器上包含网站的文件夹具有写入权限的人也可以这样做,因为他们可以上传代码,例如带有嵌入式脚本的 aspx 页面,可以进行解密。如果出现以下情况,这是一个不错的选择:

    • 您的服务器是安全的(不与其他不受信任的应用程序共享,例如托管环境)
    • 您不想将 web.config 复制到其他服务器(例如在网络场中) - 它需要在每台服务器上独立加密。
  • 或者,如果 DPAPI 不满足您的要求,您可能应该使用 RSA 提供程序。您可以使用 ACL 保护密钥免受同一服务器上的其他用户未经授权的访问,并且可以在多个服务器之间共享它。

于 2013-10-30T13:43:51.017 回答
1

典型的方法是使用ProtectedConfigurationProvider来加密敏感部分。有几个现有的实现。如果需要,您也可以实现自己的。

于 2013-10-30T13:27:57.293 回答
0

您可以使用CryptoAPI加密单个配置值。

您可以使用DPAPI加密整个部分。

于 2013-10-30T13:30:27.037 回答