首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对称密钥存储

对称密钥存储
EN

Stack Overflow用户
提问于 2008-09-08 16:54:39
回答 9查看 8.2K关注 0票数 23

我的公司将为我们的客户存储敏感数据,并将使用托管.NET加密算法类之一对数据进行加密。大部分工作已经完成,但我们还没有弄清楚如何/在哪里存储密钥。我做了一些简单的搜索和阅读,似乎硬件解决方案可能是最安全的。有人对密钥存储解决方案或方法有什么建议吗?

感谢大家的回复。

spoulson,问题实际上是你提到的两个“范围”。我想我应该说得更清楚些。

数据本身以及加密和解密数据的逻辑都被抽象到ASP.NET配置文件提供程序中。此配置文件提供程序既允许加密配置文件属性,也允许纯文本属性。加密属性值的存储方式与纯文本值完全相同--唯一明显的例外是它们被加密了。

也就是说,出于以下三个原因之一,密钥需要能够被召唤:

  1. 在授权的服务器上运行的授权data.
  2. Authorized应用程序需要加密数据。
  3. 与#1相同,但为了解密web应用程序,我们的业务团队成员需要查看加密的数据。

我想象的方式是,没有人会真正知道密钥--会有一个软件来控制数据的实际加密和解密。也就是说,关键仍然需要来自某个地方。

完全公开-如果你还不知道,我以前从来没有做过这样的事情,所以如果我对这应该如何工作的看法是完全错误的,请让我知道。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-09-16 09:15:50

这个问题只有两个真正的解决方案(技术方面)。假设只有应用程序本身需要访问密钥...

  1. 硬件安全模块(HSM) -通常相当昂贵,并且不容易实现。可以是专用设备(例如nCipher)或特定令牌(例如Alladin eToken)。然后,您仍然需要定义如何处理该hardware...
  2. DPAPI (Windows Data Protection API)。在System.Security.Cryptography中有相应的类(ProtectedMemory、ProtectedStorage等)。这将密钥管理交给了操作系统-它很好地处理了这一问题。在"USER_MODE“中使用,DPAPI会将密钥的解密锁定给加密它的单个用户。(没有太详细的说明,用户的密码是加密/解密方案的一部分--不,更改密码不会影响加密/解密方案。)

添加:最好使用DPAPI来保护您的主密钥,而不是直接加密您的应用程序的数据。别忘了在你的加密密钥上设置强ACL...

票数 9
EN

Stack Overflow用户

发布于 2008-09-20 10:14:28

响应来自OP的此answer的#3

为使授权成员能够查看加密数据,但他们实际上不知道密钥,一种方法是使用密钥托管(rsa labs) (wikipedia)

由于私钥的性质,每个段对它自己来说都是无用的。

票数 1
EN

Stack Overflow用户

发布于 2008-09-30 15:05:58

我们有同样的问题,也经历了同样的过程。

我们需要在一台计算机(客户端)上启动一个进程,然后登录到另一台计算机(数据库服务器)。

  • 操作员输入他的凭证。

  • 数据库服务器检查操作员的登录凭据是否被授权获取客户端进程的凭据,并将它们返回到客户端PC。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档