我最近和一位同事讨论过这个问题。
我们需要保护文件中的连接字符串.config
(为了符合 SOX 标准),并发现两个选项:
- 加密连接字符串配置部分
- 使用带有连接字符串的 Windows 身份验证
这两种方法都提到了这MSDN 上的文章(保护连接信息(ADO.NET)),但不清楚哪一个选项更安全或哪种方法是推荐的。
那些对其中一种或两种都有经验的人,能否分享一下您使用过哪一种以及原因?
为了澄清我的问题 - 这两个选项哪一个更安全以及为什么?
答案1
它们是针对在磁盘上存储凭据的同一问题的两种不同解决方案:
使用 Windows 身份验证意味着在用户(最好是服务)帐户的上下文中运行客户端进程,并允许它根据您的环境使用 NTLM、Kerberos 进行身份验证。请注意,使用 Windows 身份验证意味着两个端点在相同或信任的域中运行,或者它们共享一个“镜像帐户”。当您允许 Windows 身份验证时,您无需将用户名/密码存储在磁盘上,因为身份验证是使用分配给客户端进程的进程令牌处理的。
加密连接字符串意味着您将在将用户名/密码存储在磁盘上之前对其进行加密。由于使用这些凭据进行身份验证要求使用可逆加密存储它们,并且解密的密钥也存储在本地系统上,这意味着任何有权访问计算机的人都可能获得这些凭据。
高血压