当密钥库密码与密钥本身一样容易受到攻击时,Java 密钥库(JKS、JCEKS)有什么意义?

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

我有一些加密用户数据的代码。目前我将密钥存储在一个在运行时加载的配置文件中。这很糟糕,原因有很多,即如果有人可以访问配置文件,他们就可以访问密钥。所以我开始研究 Java 密钥库,但我似乎无法证明它们的合理性。密钥库需要密码,这与对密钥进行硬编码一样容易受到攻击。我是否遗漏了什么,或者密钥存储是否存在与对密钥进行硬编码相同的弱点?

java keystore
3个回答
0
投票

实际上,通过使用 JKS 或任何密钥库,您迈出了将密钥保护要求从您的应用程序或服务器卸载到密钥库或该密钥库的用户的第一步。有很多用于保护密钥和密钥库的准则(HSM 等),但利用 JCE 架构只是第一步。与此同时,不妨开始将安全性融入您的应用程序。

https://security.stackexchange.com/questions/11517/storage-of-secrets-keystores-hsms-and-the-rest


0
投票

我看到的一个常见架构是应用程序使用私钥加密数据,或者应用程序必须解密特定开发/测试/生产环境的数据库凭据。开发人员将代码和配置提交到代码存储库。但是,用于加密/解密的密钥是由另一个团队创建并存储在其他地方。当部署服务器或容器时,密钥库也随之部署。包含配置文件的代码库已构建并部署到服务器上。开发人员永远无法访问解密密钥,密钥永远不会在代码库中。


0
投票

在具有抽象应用程序密钥的密钥库中,您可以访问多个物理资源密钥。

事实上,这是密钥库访问是一个关键的断点。 然而,存储的密钥是集中存储的,并且再次受到密码保护。 存储密钥的更新也集中完成,而不是在应用程序中的某个点进行。

更新密钥库的密码也比更新存储的密码更容易,这取决于使用情况,就像其他后端系统一样。

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