在我的工作地点,我们正在使用 Microsoft 产品建立 PKI 基础架构。我们在这里拥有完全干净的基础,并希望有一个好的开始。我们想知道为什么有人会设置从属 CA。为什么不对所有事情都使用根 CA?设置从属 CA 有什么好处?
谢谢。
答案1
通常认为,至少有 2 个层级是一种好的做法。根 CA 和下属颁发 CA。颁发 CA 向您的机器或用户颁发所有证书,而根 CA 颁发下属 CA 证书。这意味着,当不委托新的下属 CA 时,您可以关闭根 CA,并通过将其从网络中分离、将其锁定在保险库中并张贴巨大的吓人标志来保护该根 CA。问题是,您为什么要这样做?
证书的作用有很多,但其中之一就是向另一个人或设备验证一个人或设备的身份。证书实现这一点的方式是使用私钥对数据进行签名,并允许您使用证书中的公钥检查此签名。如果验证通过,则您知道可以信任该来源,因为只有它才拥有私钥。那么问题就变成了我如何信任证书和公钥。您可以信任它,因为它是用颁发 CA 的私钥签名的。结果是,如果您的 CA 受到威胁,您就什么都不能信任了。
因此,子 CA 和离线根 CA 的好处是,您的根 CA 和相关密钥几乎不可能被破解。如果您的一个子 CA 被破解,那么您只需撤销颁发子 CA 并建立另一个子 CA 重新颁发您的证书和 crl。从被破解的 CA 颁发的所有证书将不再受信任。如果您的根 CA 已被破解,您就无法这样做,人们最终可能会相信他们正在连接到您的基础设施,但实际上并非如此。
答案2
我们运行这两种场景,运行离线根 CA、修补、监控等非常痛苦。风险/回报不存在,所以其他林只有一个 CA。