代码之家  ›  专栏  ›  技术社区  ›  Christoph Jonathan

在开发期间保护连接字符串

  •  2
  • Christoph Jonathan  · 技术社区  · 16 年前

    我们需要保护连接字符串 在开发过程中 . 在服务器上,我们使用的DPAPI工作正常。由于连接字符串需要在许多计算机上解密,因此在开发期间DPAPI不是一个选项。

    开发人员使用的一些用户名/密码相当敏感,我们不希望它们四处浮动。对所有开发人员来说,能够解密它们是很好的,只是想确保如果其他人获得了他们的Dev配置文件,那么这个人就不能解密连接字符串。由于外部限制,使用所有服务帐户而不是敏感的用户名/密码不是一个选项。

    我的第一个倾向是使用RSA提供程序对DEV机器上的证书进行加密和安装。

    所以我的问题是;

    1)你如何处理这个问题?

    2)如果采用RSA方法,是否有比 this

    谢谢

    1 回复  |  直到 16 年前
        1
  •  2
  •   Christoph Jonathan    16 年前

    经过更多的研究,我们采用了RSA方法。找到更多更新的文档 here . 如果您要走这条路,请确保阅读该链接中与RSA相关的所有内容。下面是我们使用的步骤,如果有人感兴趣…

    --仅第一次

    -创建密钥容器,使其可导出

    aspnet_regiis -pc "MyKeys" -exp
    

    -将此节添加到配置文件

    <configProtectedData>
      <providers>
        <add name="RsaProvider"
             type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,&#xD;&#xA;                    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,&#xD;&#xA;                    processorArchitecture=MSIL"
    
    
             keyContainerName="MyKeys"
             useMachineContainer="true" />
      </providers>
    </configProtectedData>
    

    -加密连接字符串

    aspnet_regiis -pef "connectionStrings" "C:\Working\MyApplication" -prov RsaProvider
    

    -发出配置文件

    -解密

    aspnet_regiis -pdf "connectionStrings" "C:\Working\MyApplication"
    

    -导出密钥(将创建keys.xml)

    aspnet_regiis-PC“mykeys”-exp
    

    --在其他机器上

    -将keys.xml保存到某个位置

    -导入密钥。确保名称(例如mykeys)相同

    aspnet_regiis-pi“mykeys”keys.xml

    -删除keys.xml!!!!!!!!!!!!!!

    -如果作为webapp的一部分运行,则授予服务帐户权限

    例如 aspnet_regiis -pa "PcscDev" "ASPNET"

    推荐文章