存储加密密钥的最佳方法是什么?

时间:2011-07-06 02:47:31

标签: .net security storage

我正在寻找一个包含透明安全性的应用。据我所知,这意味着密钥存储在某处并在每次需要密钥时使用。

如果我对此有任何接近......如何在本地离线存储密钥?

在我的应用程序中,我主要对Windows(理想的.Net)解决方案感兴趣。

1 个答案:

答案 0 :(得分:2)

具有合理安全级别的一种方法是使用System.Security.Cryptography.ProtectedData类公开的DPAPI功能。

  

此方法可用于加密   密码,密钥或密码等数据   连接字符串。该   使用optionalEntropy参数   添加数据以增加复杂性   加密;指定无   没有额外的复杂性如果提供,   此信息也必须使用   使用时解密数据   取消保护方法。

您可以保护两个位置的数据

  • CurrentUser
    受保护的数据与当前用户相关联。只有在当前用户上下文下运行的线程才能取消保护数据。

  • LOCALMACHINE
    受保护的数据与机器上下文相关联。计算机上运行的任何进程都可以取消保护数据。此枚举值通常用于在不允许不受信任的用户访问的服务器上运行的特定于服务器的应用程序。

最终,数据会使用您的Windows(或机器)凭据进行加密