什么是加密/解密密钥管理最佳praties



我正在开发一个基于Web的应用程序,该应用程序将由许多第三方组织使用在世界各地的许多国家。

基于浏览器的客户端将将敏感数据馈送到共享的后端数据库中。

所有国家的所有组织都会将数据读/写入同一数据库。

我希望对浏览器中输入的数据进行加密,以便在运输中安全到后端数据库。例如客户端加密。

我也希望在我的数据库中静止时加密数据。

将使用Java,JavaScript(React.js)和Scala。

开发此应用程序。

后端数据库将是mongodb。

我找不到一个好的密钥管理示例/描述,例如密钥是如何正确生成的,分布式,存储,替换,删除和恢复在其寿命中。

我有以下选择/决定要做出: -

加密的味道,例如三倍,RSA,洪水,二元,AES等。钥匙(S)对称/非对称及其/ther长度我应该如何将钥匙安全地分配给客户。如何使我的钥匙安全在我的后端服务器上。

如果密钥应具有生成的,分布式,存储,更换,删除的生命周期。当我使用key1或key2时,如何解密使用key0加密的数据?

我应该如何为多个客户存储多个键,以使我能够加密/解密每个客户数据。

  1. 使用https与证书固定在运输中保护数据。

  2. 使用AES进行加密。在新作品中不要使用三倍,RSA,洪水或二线。

  3. 使用HSM。

  4. 使用未分发的长寿密钥对数据进行加密,使用可以根据需要更改的短寿命键加密该键。

  5. 考虑该项目的范围获得一个加密域专家来设计安全性并审查代码。

相关内容

  • 没有找到相关文章

最新更新