如何在 Tomcat Web 应用程序中加密/解密敏感属性

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

我正在致力于将 Java Web 应用程序从开发转移到预生产。作为该过程的一部分,tomcat“application.properties”文件中的一些字段(例如数据库密码和 API 令牌)需要加密。我正在努力寻找一种安全的方法来做到这一点。我最初计划使用 Jasypt,但据我所知,该库已经好几年没有看到实质性更新了。我不确定替代方案是什么。我能想到的最好办法是从 gitlab 查询存储的私钥变量,但我仍然需要弄清楚如何实际进行加密/解密。

如有任何帮助或建议,我们将不胜感激。

关于我正在使用的限制的一些注释:

  • 应用程序被编译为WAR,然后复制到tomcat服务器的webapps目录下。
  • 使用 systemctl 命令将 Tomcat 作为服务启动/停止。
  • 最终,部署将作为 CI pipline 的一部分完成,但现在我需要能够从本地环境手动构建和部署。
java spring-boot encryption jdbc tomcat9
1个回答
0
投票

详细说明一下,Richard 给出的答案是 100% 有效的,我们不仅可以使用 AWS Secret Manager 来保护敏感数据,还可以使用像 HashiCorp 这样的保险库,或者如果预算/要求允许,我们可以使用基于 HSM 的解决方案(硬件安全模块)这可能有点过分了。

您给出的限制不是问题,因为这是部署应用程序 WAR 的标准过程。

但是,如果您决定要加密敏感数据,您可以做的是。

使用某种加密算法加密敏感数据,并将实际密钥保存在AWS秘密管理器本身中。应用程序部署后,当您可以从代码访问 AWS 密钥管理器时,您始终可以从密钥管理器请求加密密钥并动态解密您的数据。

这又存在一个问题,在上述操作中,我们首先假设我们的 AWS 秘密凭证是安全的。 (标准的先有鸡还是先有蛋的问题)

如您所见,没有一种解决方案适合所有场景。我们需要确保我们遵循与维护各个级别的敏感数据相关的所有标准。 (密钥轮换、监控、服务授权、审计……这样的例子不胜枚举)

希望这有帮助。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.