我的公司将为我们的客户存储敏感数据,并将使用托管的 .NET 加密算法类之一对数据进行加密。大部分工作已经完成,但我们还没有弄清楚如何/在哪里存储密钥。我做了一些简单的搜索和阅读,看起来硬件解决方案可能是最安全的。有人对密钥存储解决方案或方法有任何建议吗?
谢谢大家的回复。
spoulson,问题实际上是您提到的两个“范围”。我想我应该更清楚。
数据本身以及对其进行加密和解密的逻辑都被抽象到 ASP.NET 配置文件提供程序中。此配置文件提供程序允许加密的配置文件属性以及纯文本属性。加密属性值的存储方式与纯文本值完全相同 - 明显的例外是它们已被加密。
也就是说,出于以下三个原因之一,需要能够召唤钥匙:
- 在授权服务器上运行的授权 Web 应用程序需要对数据进行加密。
- 与#1 相同,但用于解密数据。
- 我们业务团队的授权成员需要查看加密数据。
我想象的方式是没有人真正知道密钥 - 会有一个软件控制数据的实际加密和解密。也就是说,密钥仍然需要来自某个地方。
完全披露——如果你还不能说,我以前从来没有做过这样的事情,所以如果我完全不知道这应该如何工作,请告诉我。