如何将访问密钥/专用密钥安全地存储在数据库中

时间:2020-04-09 06:26:07

标签: security encryption cryptography private-key

因此,我遇到一种情况,我们需要通过简单易用的应用(例如聊天机器人和离线钱包)为农村地区提供服务。但是,在后端,每个用户在注册时都会获得一个新的密钥对,该密钥对充当我们对提供服务的API的访问密钥。本质上,我们是中间人。

我一直在研究,但无法决定如何最好地存储那些私钥。几种方法;优点和缺点;我想如下

首先:密码

  1. 让密码=(secret_salt +用户聊天ID /电话号码)

  2. 将pvt密钥作为aes256(privatekey,cipher)存储在数据库中

优点:

  • 快速

  • 便宜

缺点:

  • 秘密盐是唯一的失败点

第二:信封加密

  1. 使用aws KMS生成主密钥加密密钥

  2. 为每个用户生成一个数据加密密钥

  3. 使用数据加密密钥对用户的私有密钥进行加密,并将其存储在数据库中

  4. 使用主密钥加密密钥对数据加密密钥进行加密,并将其存储在数据库中

优点:

  • 无法从云KMS获取私钥

  • 慢一点

缺点:

  • 攻击者是否可以访问仍可以模拟对AWS的调用的应用程序?

我不确定第二个是否比第一个好,或者我是否应该完全考虑其他选择。

任何帮助将不胜感激。

0 个答案:

没有答案