我必须部署一个新的 PKI 层次结构,我有一个域和几个子域,我曾考虑过拥有一个根 CA 和一个子 CA。
与仅拥有根 CA 相比,此选项有哪些优势?
您是否建议根 CA 和子 CA 都应为“企业”类型,或者最好将根 CA 设为标准类型并保持其关闭,将子 CA 设为企业类型?
谢谢
答案1
与仅使用根 CA 相比,部署根 CA 和子 CA 既能提供安全性,又能提供便利性。
仅限根 CA(单层层次结构):
不建议在生产中使用此选项
单层层次结构仅涉及一个称为证书颁发机构 (CA) 的实体。此 CA 身兼两职。单个 CA 既是根 CA,又是颁发 CA。其公钥成为信任的起点 - 因此,如果您信任此根 CA,您就会信任它及其层次结构颁发的任何证书。此单个 CA 的泄露意味着整个 PKI 被攻陷!
拥有根 CA 和子 CA(两层层次结构):
在我的职业生涯中,我观察到这种解决方案是公司最常实施的解决方案。它提供了单层和三层层次结构之间的中间地带。通过此设置,您可以让根 CA 保持离线状态,并让子 CA 处理证书的颁发。此策略可减少根 CA 受到潜在攻击的风险。此层次结构还提高了可扩展性,超出了单层层次结构所提供的可扩展性,因为您可以为不同的部门、姊妹公司等创建多个子 CA。
考虑到所有这些,我的建议与您的最终建议一致:将根 CA 保留为标准并保持关闭,同时将子 CA 指定为企业类型。
微软对此有一篇非常深入的文章,名为:保护 PKI:规划 CA 层次结构
本文还解释了三层层次结构。
好问题的答案:
是否可以将企业 CA 设为“标准” CA 的从属 CA?
是的,可以将企业 CA 设为根 CA 的子 CA,这实际上是一种非常常见的做法。
如果我保持“标准”根 CA 处于关闭状态,那么我应该何时打开它,仅在更新 SubCA 的证书时,还是每次我必须颁发证书时?
子 CA 无需根 CA 在线即可颁发证书。根 CA 只需重新上线即可颁发新证书/续订子 CA。新证书颁发/续订后,根 CA 即可再次下线。
同样,如果您需要撤销子 CA(例如,如果它已被盗用),您还必须使根 CA 重新上线。这是因为根 CA 维护其已签名的所有子 CA 的 CRL(证书撤销列表)。但是,请记住,撤销子 CA 也会使子 CA 颁发的所有证书无效。
@Massimo 的一个非常尖锐的补充:
还请注意,您仍必须提供(并定期更新)根 CA 的证书吊销列表 (CRL);如果根 CA 没有 CRL,或者 CRL 可用但太旧,大多数证书检查都会失败。如果您想使用离线根 CA,您需要为此做好计划。