我有一个连接到多个 SQL Server 的应用程序,用于监视和其他任务。目前,我只支持可信身份验证,因为我不必存储任何敏感信息。我想添加使用 SQL 身份验证(用户名/密码)的功能。
在 session 之间存储这些敏感数据的最佳方法是什么?是否有可供我使用的仅限用户使用的证书或加密 key ?使用每个用户随机生成的注册表项来加密此信息是否足够安全?如果有一种方法可以让我使用 key (或创建 key 并存储它),而计算机上的其他用户无法访问它,那就太理想了。
我了解加密,所以我不是在寻找教程 - 我正在寻找最安全的方法来保护我的应用程序的一个用户的配置数据免受其他用户的影响。
最佳答案
使用Data Protection API (aka. DPAPI) .每次使用都有一个受其密码保护的 key 。您将密码/连接字符串存储在 .config 文件中,.Net 框架具有使用机器 key 、用户 key 或 RSA key 加密/解密配置部分的方法。不要重新发明轮子做你自己的定制方案。使用注册表项绝对不是一个好主意。安全来自 secret ,而不是访问保护:它必须依赖于用户提供 secret (登录时的密码),而不是不可访问的注册表项。
How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI
关于.net - 存储 SQL 连接详细信息 - 如何安全地加密每个用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1071263/