每个服务还是每个服务器的 PKI 密钥?

每个服务还是每个服务器的 PKI 密钥?

我们有很多内部服务需要通过某种 PKI 提供加密和身份验证。

对每项服务使用不同的私钥/公钥对所带来的安全收益是否值得进行额外的工作?

或者每个服务器使用一个密钥对就足够了吗?

例如,我的所有 *nix 服务器都运行着 rsyslog、Bacula 和 Puppet。在这三个服务中使用通用的、特定于服务器的密钥对是否会打开我忽略的攻击途径?

答案1

*例如,我所有的nix 服务器上运行有 rsyslog、Bacula 和 Puppet。在这三个服务中使用通用的、特定于服务器的密钥对是否会打开我忽略的攻击媒介?

我没有体验过部署 PKI 的乐趣(痛苦?),但我处理过证书。我认为只要您使用的加密质量高(即不是容易受到攻击的旧方法,并且使用长度合适的密钥),每个服务器都可以。

答案2

可用的密文越多,破解起来就越容易。话虽如此,所有安全性都是有代价的。您需要考虑使用证书做什么?加密?身份验证?如果出现泄露会发生什么?这与需要跟踪的证书减少所带来的管理优势相比如何。您正在使用 Puppet,因此一些管理开销减少了。

我们在内部系统中尽可能使用自定义根证书和单个通配符密钥对。这主要是为了阻止临时嗅探者获取密码。我确信一个坚定的黑客会找到进入的方法。我们的证书刚刚过期,我们设置了 puppet 基础设施来分发密钥并重新启动服务。明年我们只需要将新密钥签入 subversion,puppet 会完成剩下的工作。

答案3

我认为最好每台服务器都安装一个。如果您所处的环境中非常确定一项服务的入侵不会导致访问单个服务器上其他服务的密钥,那么每台服务器每项服务都安装一个。

管理这些额外密钥的开销应该不会太糟糕。你获得的是一些被入侵的服务(比如 Bacula)不会允许攻击者入侵 Puppet 交易。这值得吗?也许值得,但前提是你能确保入侵服务的人无论如何都无法从其他服务中获取密钥。

相关内容