HSM的对称加密密钥

时间:2017-06-17 21:42:35

标签: security encryption cryptography hsm softhsm

我想使用HSM来加密/解密我将存储在我的数据库中的敏感数据。 HSM设备/服务器可以创建对称和非对称密钥。我想以最高的安全性存储数据。所以我有两种方法:

1)使HSM生成一个公钥/私钥对,它将私钥保留在其中,它永远不会离开。现在我可以为每个要加密的条目创建一个随机对称密钥。我使用随机AES密钥加密数据,使用HSM中生成的公钥加密AES密钥,并将加密数据的结果+加密密钥数据存储在DB的每一行中。 现在每次我想访问数据时,我都会将加密的密钥数据发送到HSM,HSM会将其解密并将解密的AES密钥发回给我,我用它来实际解密数据。

2)每行/每个条目,我使HSM生成AES密钥并在其中存储对称密钥令牌。我以明文形式发送数据,然后以加密形式发回给我。每次我想访问数据时,我都会将加密数据发送到HSM,它会解密并发送给我。

HSM服务器将像Thales一样专业而快速,因此它可以很好地处理流量(希望如此)。

第一个问题是我只需要以SO(安全官)身份登录即可在HSM中生成和存储我的公钥/私钥对,从现在开始,我只需要以只读用户身份登录。但与2号相比,它的速度较慢,而且速度较慢。

2号(据我所知)将要求我一直有设备访问设备。

你有什么建议?请指教。

2 个答案:

答案 0 :(得分:3)

我不确定这样的安全建议最适合这里,但不是分开,我会给出一些建议。

首先,我更喜欢混合(RSA + AES)加密,因为你不必保护公钥加密(只要攻击者不能用他们自己的公钥替换它) - 而你可能不需要提供PIN。所以这将有利于第一个方案。

为了非常安全,您最好打包 AES数据密钥,而不是加密它。包装和加密基本上是相同的,但在解包后,AES密钥变为HSM静态或会话密钥,仍然在HSM中,您可以使用它进行解密。解密将使其恢复到PC的不安全记忆中。在PC上解密可能更快,但HSM上的解密更安全,应该是首选。

您通常只需要SO访问权限来管理任务。通常,您应该能够使用用户访问权限创建密钥等对象。但最终这些事情取决于HSM配置。

答案 1 :(得分:1)

根据安全设置,Thales HSM仅在设备进行身份验证时创建公钥/私钥对。这意味着您可能无法根据需要创建它们。

我使用的一种技术是预先生成~1000个公钥/私钥对,并在HSM经过身份验证时将其存储在密钥库(数据库或其他)中。然后,您可以使用数据库中随机选择的密钥,而无需对HSM进行身份验证。

请注意,HSM通常只能在内部存储20个密钥 - 这就是您可能希望将它们存储在外部的原因。如果您有多个负载均衡的HSM,这也很有效。