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

zc0qhyus  于 2023-03-11  发布在  Java
关注(0)|答案(3)|浏览(148)

我有一些代码可以加密一些用户数据。目前我把密钥存储在一个配置文件中,在运行时加载。这很糟糕,原因有很多,即如果有人访问配置文件,他们就可以访问密钥。所以我开始研究Java密钥库,但我似乎不能证明它们是正确的。密钥库需要密码,这将和硬编码密钥一样容易受到攻击。我是遗漏了什么,还是密钥存储器遭受了和硬编码密钥一样的弱点?

mi7gmzs6

mi7gmzs61#

通过使用JKS或任何密钥存储库,您实际上迈出了将密钥保护需求从应用程序或服务器卸载到密钥存储库或密钥存储库用户的第一步。(HSM等),但是利用JCE架构只是第一步,同时也可以开始在应用程序中加入安全性。
https://security.stackexchange.com/questions/11517/storage-of-secrets-keystores-hsms-and-the-rest

icnyk63a

icnyk63a2#

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

pxy2qtax

pxy2qtax3#

在具有抽象应用程序密钥的密钥库中,您可以访问多个物理资源密钥。
的确,这是密钥库访问的一个关键突破点。然而,存储的密钥是集中存储的,而且是受密码保护的。存储密钥的更新也是集中完成的,而不是在应用程序中的某个点。
此外,更新密钥库的密码比更新存储的密码更容易,后者与其他后端系统一样取决于使用情况。

相关问题