首页 文章

我应该使用RSAProtectedConfigurationProvider还是My Own Provider?

提问于
浏览
1

要加密服务器场和单个服务器中的两个站点上的web.config部分,根据我的理解,使用以下命令将使用本地计算机密钥加密我的web.config连接字符串

aspnet_regiis.exe -pef“connectionStrings”“C:\ website \ mywebsite”

但是,我可以使用-pc运算符创建自己的键,并使用以下内容:

<configProtectedData>
  <providers>
     <add name="MyProvider"
          type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,
                Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
                processorArchitecture=MSIL"
          keyContainerName="MyKeys" 
          useMachineContainer="true" />
  </providers>

我不明白的是有什么区别? RSAProtectedConfigurationProvider是否因使用机器密钥而不太可能无法更改?我应该使用自己的钥匙,以便更改它们吗?对于服务器场和单个服务器,建议使用哪种解决方案?或者是否有更好的方法来加密这些部分而无需更改或编写任何代码?

1 回答

  • 1

    对于单个服务器,您可以重用ASP.NET安装的密钥容器,如果我'm not mistaken it'调用 NetFrameworkConfigurationKey ,您只需要确保为运行ASP.NET站点的帐户授予密钥容器的适当权限 .

    对于Web Farm,最好在计算机中创建自定义密钥容器,然后将其导出到Web场中的所有其他计算机,这样您就可以重用相同的加密配置文件,从而节省了加密每个Web场中的文件的时间机 . However, this is not mandatory, you can deploy an unencrypted configuration file and encrypt it in each machine using each machine ASP.NET default key container.

    问题 Headers 也有点误导,当谈到加密时,你应该总是使用一个完善的库而不是自己的自定义加密逻辑,这很难容易出错 .

    在使用自定义密钥容器或重用ASP.NET安装的密钥容器与 RsaProtectedConfigurationProvider 方面,所提供的安全级别没有区别 .

相关问题