使用 Kerberos 加密凭证/什么是主体的静态秘密

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

用 Java 编写的应用程序需要存储每个用户的外部服务密码。在应用程序中,用户本身使用 Kerberos 对 KDC 进行身份验证(基本上是利用 Jaas 创建 LoginContext)。

我想将加密的秘密存储在应用程序位置的某种文件(XML?)中的其他服务中。秘密可以是未启用 Kerberos 的数据库(MySQL...)的登录名/密码组合。有没有比我建议的方法更好的方法 - 也许是更好的位置来存储信息?

是否可以使用 LoginContext 中的一些已经存在的信息来加密数据,使得只有相同的主体(个人或服务)才能解密该信息?

更新:

我想稍微改一下这个问题。基本上我需要的是某种秘密,只能由经过身份验证的用户接收。有这样的事吗?

否则我可能会使用主题名称的某种加盐哈希作为秘密。我知道这可以猜到,但它为提议的解决方案提供了额外的安全性,例如保持密码可配置的最佳方法是什么,而又不让普通读者轻易获得密码?

java encryption kerberos credentials jaas
1个回答
0
投票

“存储密码”而不是“存储密码”的最佳实践。毕竟这是一个安全漏洞。如果您必须存储它们,您可以使用 https://stackoverflow.com/a/43779197/175554

更好的方法是为 mysql 或 Linux 机器启用 kerberos 登录,并使用 keytab/CC 文件作为所有凭据。现在,行业标准是使用 keytab 文件进行所有登录,并在 8 小时或 1 天左右过期。

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