我们都有很多内部服务需要某种 PKI 提供加密和身份验证。
为每个服务使用不同的私钥/公钥对所带来的安全收益是否证明了所需的额外工作是合理的?
还是每个服务器使用一个密钥对足够好?
例如,我所有的 *nix 服务器都运行 rsyslog、Bacula 和 Puppet。在所有三个服务中使用通用的、特定于服务器的密钥对会打开我忽略的攻击向量吗?
我们都有很多内部服务需要某种 PKI 提供加密和身份验证。
为每个服务使用不同的私钥/公钥对所带来的安全收益是否证明了所需的额外工作是合理的?
还是每个服务器使用一个密钥对足够好?
例如,我所有的 *nix 服务器都运行 rsyslog、Bacula 和 Puppet。在所有三个服务中使用通用的、特定于服务器的密钥对会打开我忽略的攻击向量吗?
可用的密文越多,就越容易破解。话虽如此,所有安全性都是一种权衡。您需要考虑一下您将证书用于什么目的?加密?验证?如果有妥协会发生什么?这对减少需要跟踪的证书的管理利益有何影响。您正在使用 puppet,因此减少了一些管理开销。
我们在内部系统上尽可能使用自定义根证书和单个通配符密钥对。这主要是为了阻止临时嗅探器获取密码。我确信一个坚定的黑客会找到办法。我们的证书刚刚过期,我们已经建立了 puppet 基础设施来分发密钥并重新启动服务。明年我们只需要检查新的密钥进入颠覆,而 puppet 应该做剩下的事情。
*例如,我所有的nix 服务器都运行 rsyslog、Bacula 和 Puppet。在所有三个服务中使用通用的、特定于服务器的密钥对会打开我忽略的攻击向量吗?
我没有部署 PKI 的乐趣(痛苦?),但我已经处理了证书。我怀疑每个服务器都可以,只要您使用的加密是高质量的(即不是一种容易受到攻击并使用良好长度密钥的旧方法)。
我认为你最好每台服务器都有一个。如果您在一个环境中,您非常确定一项服务的妥协不会导致访问单个服务器上其他人的密钥,那么每个服务器每个服务。
管理这些额外密钥的开销应该不会太糟糕。您所获得的是某些受损服务(例如 Bacula)不会允许攻击者破坏 Puppet 交易的知识。这值得吗?也许可以,但前提是您可以向自己保证,闯入服务的人无论如何都不能从其他服务中获取密钥。