【问题标题】:Protecting connection strings during dev在开发期间保护连接字符串
【发布时间】:2011-04-16 21:22:25
【问题描述】:

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

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

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

所以我的问题是;

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

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

谢谢

【问题讨论】:

  • 数据库是否支持集成安全性 (SSPI)?那么连接字符串中就不需要密码了。
  • @Richard - 集成安全性不是我们所针对的系统的选项。
  • 好吧,如果是上面的场景,我不喜欢这个问题:(。另外我希望所有这些都涉及到开发服务器,我们不是在谈论生产。这些开发人员的特定用户名/密码不应用于其他用途。
  • @eglasius 是的,我们正在谈论开发。请不要假设集成安全性是一种选择。我们不是在谈论 SQL Server,我们连接的系统是第三方的,因此身份验证方法是我们无法控制的。
  • +1 我得意忘形了 :)

标签: .net encryption connection-string rsa dpapi


【解决方案1】:

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

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

例如aspnet_regiis -pa "PcscDev" "ASPNET"

【讨论】:

    猜你喜欢
    • 2013-08-30
    • 1970-01-01
    • 2023-03-29
    • 2010-10-20
    • 2014-04-13
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    相关资源
    最近更新 更多