存储SQL连接详细信息 - 如何安全地加密每个用户?

Sql*_*yan 2 .net encryption configuration

我有一个应用程序连接到许多SQL Server进行监视和其他任务.目前,我只支持受信任的身份验证,因为我不需要存储任何敏感的内容.我想添加使用SQL身份验证(用户名/密码)的功能.

在会话之间存储这些敏感数据的最佳方法是什么?是否有我可以使用的用户专用证书或加密密钥?是否足够安全使用每个用户随机生成的注册表项来加密此信息?如果有一种方法我可以使用一个键(或创建一个并存储它),使计算机上没有其他用户可以访问它,这是理想的.

我理解加密,所以我不是在寻找一个教程 - 我正在寻找最安全的方法来保护我的应用程序的一个用户的配置数据免受其他用户的影响.

Rem*_*anu 6

使用Data Protection API(又名DPAPI).每次使用都有一个受密码保护的密钥.将密码/连接字符串存储在.config文件中,.Net框架具有使用机器密钥,用户密钥或RSA密钥加密/解密配置节的方法.不要重新发明轮子做自己的自定义方案.使用注册表项肯定是个坏主意.安全来自秘密,而不是来自访问保护:它必须依赖于提供秘密的用户(在登录时提供密码),而不是依赖于无法访问的注册表密钥.

如何:使用DPAPI加密ASP.NET 2.0中的配置节