脱机根 CA 是否已过时?

信息安全 证书 公钥基础设施 证书颁发机构 证书吊销
2021-08-30 21:10:12

有无数“操作指南”文章和最佳实践推荐使用离线根证书颁发机构 (CA)。虽然正如标题所暗示的那样,这个建议是否已经过时?

我的问题是针对中小型企业的。不是具有多层从属 CA 的大型企业(或其他)。

如前几篇文章所述,撤销根 CA 证书是一个困难的过程。它只能通过以下方式实现:

  1. 软件更新
  2. 脚本
  3. 配置管理系统
  4. 特别指定

脱机根 CA(比喻地说)的前提是把它放在笔记本电脑上,在那里它只是为了批准从属 CA 才上线。否则,它就处于可能的最高物理安全性中。如果从属 CA 受到损害,则不会丢失所有内容,因为脱机根 CA 很好。然而,绝大多数不包括 CRL 分发点 (CDP),因此无法确定哪些证书已被吊销。从而使直接从属 CA 的撤销类似于根 CA 的撤销。首先拥有一个离线根 CA 并没有获得任何好处。

另一种方法是发布一个似乎最有意义但不再允许根 CA 脱机的 CDP。如果 CDP 每月更新一次,最坏的情况是客户整月都无法识别已撤销的证书。同时,对此的管理需要工作人员启动系统并每月更新 CDP。延长此窗口(+1 个月)只会创建一个更大的窗口,在该窗口中客户端将信任已撤销的证书,而缩短此窗口则清楚地表明,由于管理开销,系统应保持在线。

基于此,离线根 CA 似乎只能用于具有多层从属 CA 的大型企业。尽管这些是最小的,因为它们通常已经具有证书基础结构,并且应该被视为使用离线根 CA 的例外情况。绝大多数新部署都在中小型网络中,根 CA 应保持在线,以便它可以经常发布到 CDP。因此让我回到我的问题,离线根 CA 过时了吗?

3个回答

我认为我们需要在这里考虑“离线”一词的定义。

正如您所建议的,以下是相互矛盾的要求:

  • 除了颁发/撤销从属 CA 证书时,关闭根 CA。
  • 让根 CA 频繁发布 CRL。

我看到最常部署的解决方案是通过防火墙进行“软隔离”或“软脱机”,以便根 CA 仍然可以每天或每小时推送新的 CRL,以由 CDP 或 OSCP 响应者获取并重新发布. 阻止所有其他进出根 CA 机器的流量。

我什至听说过一种巧妙的解决方案,其中 Root CA 将 CRL 数据推送到其音频线路输出插孔上,这是硬件级别的单向端口。

另一件事是,离线根 CA 没有理由不能将其证书吊销列表 (CRL) 发布到另一个在线位置。可以使用以下命令将 CRL 的生命周期延长到非常长的时间段:

certutil -setreg CA\CRLPeriodUnits 6
certutil -setreg CA\CRLPeriod "Years"

您还可以发布仅包含自上次完整 CRL 发布以来已更改的撤销的 Delta CRL。

现在,由于您要从脱机根 CA 吊销证书的唯一时间是如果发生重大事件,那么拥有巨大 CRL 生命周期的风险是什么,您可能永远不会从您的脱机主机吊销任何证书,但如果您这样做并且您希望 CRL 检查来获取它,您仍然可以将该部分放在适当的位置,因此如果您需要它可以工作。

离线 CA 通常是一个有争议的主题,但如果您有一个并遭受重大妥协,您会很高兴拥有它,如果您没有它但需要它,您会后悔的。这是风险与回报的问题。

根 CA 永远不会在它接触网络的意义上联机。使用软盘驱动器、USB 驱动器、音频输出插孔等。Microsoft 拥有完整的文档并且很容易找到,其中将最低生产结构描述为至少两层:离线根和在线企业从属发行者。在线颁发者是颁发所有证书和 CRL 的地方,但在线颁发者的 CRL 除外,它是在离线根上生成并通过上述方式传输的。您每年生成一次该 CRL(或您选择最适合安全要求的任何内容)并将该 CRL 传输到公共 CDP(证书分发点),仅此而已。否则离线的根可能一直被粉掉。