Web应用程序中用于密码学的密钥存储

问题描述 投票:0回答:1

我正在构建一个Web应用程序,到目前为止,它仅收集和存储了低敏感度的数据,在接下来的几个月中,该Web应用程序将需要开始收集更多的敏感数据,因此,我确定需要确保当数据存储在数据库中时,数据将被加密,因此即使数据库受到破坏也无法访问。

我已经读过OWASP Cryptographic Cheat Sheet,其中的大部分内容都很有道理,但是有一点我无法理解。

规则-将未加密的密钥存储在远离加密数据的位置,如果密钥与数据一起存储,那么数据的任何妥协都将很容易妥协密钥。未加密的密钥永远不要驻留在与数据位于同一台计算机或群集。

可能的解决方案:

  1. 将未加密的密钥存储为root,将其加载到应用程序中,该应用程序在启动时会通过环境变量以特权较低的用户身份运行,因此该密钥只能以root用户身份存储。 ---这不满足OWASP规则,因为密钥仍位于服务器上。

  2. 加密文件系统上的密钥,并需要第二个密钥(例如密码)以在人类用户启动时对它进行解密。 ---尽管这符合OWASP规则,但在应用程序启动时要求人类用户在场是不切实际的。


是否有针对此问题的推荐或公认的解决方案?

虽然该问题与技术无关,但欢迎使用特定于技术的解决方案,我目前正在使用:

  • Java
  • 春季
  • 休眠
  • MySQL
  • Centos
java spring security cryptography
1个回答
0
投票
与纯编程相比,这是关于信息安全性的更多问题。
© www.soinside.com 2019 - 2024. All rights reserved.