詹金斯/哈德森加密密码存储“安全”吗?

Cat*_*kul 7 password configuration password-management hudson

最近在设置我们的 Jenkins/Hudson 服务器时,很明显它必须存储密码。似乎它在 config.xml 中存储了“加密”的密码,我看不出这有多安全,因为秘密链必须在某处破坏。

  • 詹金斯的加密密码可以被认为是“安全的”吗?
  • 这只是通过默默无闻的安全吗?

我应该指定我们使用的是 Jenkins 1.425。

Sha*_*den 6

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

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

Glorified String 以持久形式使用加密,以避免意外泄露秘密。请注意,由于加密依赖于 Hudson.getSecretKey(),这并不意味着可以防止在同一 VM 中运行的代码,也不能防止具有本地文件系统访问权限的攻击者。