【问题标题】:What are Encryption/Decryption Key Management Best Praticies什么是加密/解密密钥管理最佳实践
【发布时间】:2017-04-20 23:58:16
【问题描述】:

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

基于浏览器的客户端会将敏感数据输入共享的后端数据库。

所有国家/地区的所有组织都将数据读/写到同一个数据库中。

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

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

此应用程序将使用 Java、Javascript (REACT.js) 和 Scala 开发。

后端数据库将是 MongoDB。

我找不到好的密钥管理示例/描述,例如如何正确生成密钥, 在其生命周期内分发、存储、替换、删除和恢复。

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

加密的味道,例如 TripleDES、RSA、Blowfish、Twofish、AES 等。 密钥对称/非对称及其长度 我应该如何安全地将密钥分发给我的客户。 如何在我的后端服务器上保护我的密钥安全。

如果密钥应该具有生成、分发、存储、替换、删除的生命周期。 当我现在使用 Key1 或 Key2 时,如何解密使用 Key0 加密的数据?

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

【问题讨论】:

标签: encryption cryptography


【解决方案1】:
  1. 使用带有证书固定的 HTTPS 来保护传输中的数据。

  2. 使用 AES 进行加密。不要在新工作中使用 TripleDES、RSA、Blowfish 或 Twofish。

  3. 使用HSM

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

  5. 考虑到项目的范围,请一位密码领域专家来设计安全性并审查代码。

【讨论】:

  • 非常感谢您的建议。正是我需要的。
猜你喜欢
  • 2022-11-03
  • 1970-01-01
  • 2010-10-21
  • 2015-04-24
  • 1970-01-01
  • 2010-11-18
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多