Jenkins/Hudson 加密密码存储“安全”吗?

Jenkins/Hudson 加密密码存储“安全”吗?

最近在设置我们的 Jenkins/Hudson 服务器时,很明显它必须存储密码。它似乎将密码“加密”存储在 config.xml 中,我看不出这怎么安全,因为秘密链必须在某个地方断裂。

  • 詹金斯的加密密码能被认为是“安全的”吗?
  • 这仅仅是通过隐藏来实现的安全吗?

我应该说明一下我们使用的是 Jenkins 1.425。

答案1

它看起来是使用本地存储的密钥进行 AES128 加密的。您说得完全正确,它本质上只是一层模糊性 - 从概念上讲,在这种情况下唯一可用的选项是要求在服务启动时输入密码作为解密密钥,或者将密钥存储在本地某个地方;一个很好的类比是 Web 服务器的加密 SSL 证书。

该类代码中的注释hudson.util.Secret清楚地表明他们了解此方法的安全限制:

使用持久化形式的加密的美化字符串,以避免意外泄露机密。请注意,由于加密依赖于 Hudson.getSecretKey(),因此这并非旨在保护在同一 VM 中运行的代码,也无法保护具有本地文件系统访问权限的攻击者。

相关内容