2

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

一些用于 dev 的用户名/密码相当敏感,我们不希望它们四处飘荡。所有开发人员都能够解密它们很好,只是想确保如果其他人掌握了开发配置文件,该人无法解密连接字符串。由于外部限制,不能使用所有服务帐户而不是敏感的用户名/密码。

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

所以我的问题是;

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

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

谢谢

4

1 回答 1

2

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

-加密连接字符串

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"

于 2010-09-24T22:57:12.847 回答