.net 在开发过程中保护连接字符串

.net 在开发过程中保护连接字符串,.net,encryption,connection-string,rsa,dpapi,.net,Encryption,Connection String,Rsa,Dpapi,在开发过程中,我们需要保护连接字符串。在服务器上,我们使用DPAPI,它工作正常。DPAPI在开发期间不是一个选项,因为连接字符串需要在许多机器上解密 用于dev的一些用户名/密码相当敏感,我们不希望它们四处浮动。对所有开发人员来说,能够对其进行解密是很好的,只是想确保如果其他人获得了开发人员配置文件,那么该人就不能对连接字符串进行解密。由于外部限制,不能使用所有服务帐户而不是敏感用户名/密码 我的第一个倾向是使用RSA提供程序加密证书,并在开发人员的机器上安装证书 所以我的问题是, 1) 你如

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

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

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

所以我的问题是,

1) 你如何处理这个问题

2) 如果您采用RSA方法,是否有比RSA更多的最新文档


谢谢

经过更多的研究,我们采用了RSA方法。找到了一些更新的文档。如果你要走这条路,请确保阅读该链接中与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>
-给出配置文件

<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 -pdf "connectionStrings" "C:\Working\MyApplication"
-导出密钥(将创建keys.xml)

--在其他机器上

-将keys.xml保存到某个地方

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

aspnet_regais-pi“MyKeys”keys.xml

-删除keys.xml

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


e、 g.
aspnet\u regiis-pa“PcscDev”“aspnet”

数据库是否支持集成安全性(SSPI)?那么连接字符串中就不需要密码了。@Richard-我们针对的系统不能选择集成安全性。如果是上述情况,应该这样做,我不喜欢这个问题:(.我也希望所有这些都与开发人员服务器有关,我们不是在讨论生产。开发人员的这些特定用户名/密码不应用于其他用途。@eglasius是的,我们是在讨论开发人员。请不要假设集成安全性是一个选项。我们不是在讨论SQL Server和我们连接的系统是第三方,因此身份验证方法不受我们控制。+1我被冲昏头脑了:)
aspnet_regiis -pc "MyKeys" -exp