开发期间保护连接字符串

时间:2010-09-24 16:35:46

标签: .net encryption connection-string rsa dpapi

我们需要在开发期间保护连接字符串 。在服务器上我们使用DPAPI工作正常。在开发期间,DPAPI不​​是一个选项,因为连接字符串需要在许多机器上解密。

用于开发的一些用户名/密码相当敏感,我们不希望它们浮动。所有开发人员能够解密它们都没关系,只是想确保如果其他人得到他们不能解密连接字符串的dev配置文件。由于外部限制,使用所有服务帐户而不是敏感用户名/密码不是一种选择。

我的第一个倾向是使用RSA提供程序在开发机器上加密和安装证书。

所以我的问题是;

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

2)如果您采用RSA方法,那么有更多的文档而不是this

由于

1 个答案:

答案 0 :(得分:2)

经过更多的研究,我们采用了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"

-export keys(将创建keys.xml)

aspnet_regiis -pc "MyKeys" -exp

- 在其他一些机器上

-save keys.xml某处

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

  

aspnet_regiis -pi“MyKeys”keys.xml

-delete keys.xml !!!!!!!!!!!!!!

- 如果作为Web应用程序的一部分运行,则授予服务帐户权限

e.g。 aspnet_regiis -pa "PcscDev" "ASPNET"