我想使用 HSM 加密/解密将存储在数据库中的敏感数据。HSM 设备/服务器可以创建对称和非对称密钥。我想以尽可能高的安全性存储数据。所以我有两种方法:
1)让HSM生成一个公钥/私钥对,它将私钥保存在其中,永远不会离开。现在我可以为每个要加密的条目创建一个随机对称密钥。我使用随机 AES 密钥加密数据,使用 HSM 中生成的公钥加密 AES 密钥,并将加密数据 + 加密密钥数据的结果存储在数据库中的每一行中。现在每次我想访问数据时,我都会将加密的密钥数据发送到 HSM,HSM 将对其进行解密并将解密后的 AES 密钥发回给我,我用它来实际解密数据。
2)每行/每个条目,我让 HSM 生成 AES 密钥并将对称密钥令牌存储在其中。我以明文形式向它发送数据,它以加密形式发回给我。每次我想访问数据时,我都会将加密数据发送到 HSM,它会解密并将其发送回给我。
HSM 服务器将是像 Thales 一样专业且快速的服务器,因此它可以快速处理流量(希望如此)。
第一个问题是我只需以 SO(安全官)身份登录即可在 HSM 中生成和存储我的公钥/私钥对,从现在开始,我只需以只读用户身份登录。但与 2 号相比,它的过程更慢、更漫长。
2号(据我所知)将要求我一直拥有对设备的访问权限。
你有什么建议?请指教。