在最近build立我们的Jenkins / Hudson服务器时,很明显它必须存储密码。 它似乎将密码“密码”存储在config.xml我不明白这将是安全的,因为秘密链必须打破某处。
我应该指定我们正在使用Jenkins 1.425。
它看起来是使用本地存储的密钥进行AES128encryption的。 你完全正确,它本质上只是一层默默无闻的 – 从概念上讲,在这种情况下唯一可用的select是要求在服务启动时input密码作为解密密钥,或者将密钥存储在某个地方本地; 一个好的模拟器是为Web服务器encryption的SSL证书。
hudson.util.Secret类的代码中的hudson.util.Secret清楚地表明他们理解此方法的安全性限制:
Glorified String以持久化forms使用encryption,以避免意外泄露秘密。 请注意,由于密码学依赖于Hudson.getSecretKey(),因此这不是针对在同一个虚拟机中运行的代码的保护,也不是针对具有本地文件系统访问权限的攻击者。