严肃的认证机构使用繁重的程序。在核心,CA 密钥将存储在硬件安全模块中;但这只是事情的一部分。CA 本身必须受到物理保护,包括主动和追溯措施。
主动措施是为了防止攻击得逞。例如,CA 将存储在带有钢门和防护装置的保险库中。机器本身是锁着的,有几把挂锁,没有人持有超过一把挂锁钥匙。物理安全至关重要;HSM 只是最深层。
追溯措施是关于事件发生后的恢复。HSM 将记录所有签名。该机器处于 24/7 视频监控下,可进行异地录制。这些措施是关于知道发生了什么(如果您愿意,先验地知道,如果出现问题,我们将能够后验地分析它)。例如,如果发出了“非法”证书,但可以重建此类证书的完整列表,那么恢复就像撤销有问题的证书一样“容易”。
为了进行额外的恢复,CA 通常被拆分为一个长期处于离线状态的根 CA,以及一个短期的中间 CA。两台机器都在笼子和地堡中;根 CA 永远不会连接到网络。根 CA 是物理访问的,具有定期双重控制(至少两个人在一起,并进行视频录制),为中间 CA 和 CRL 发出证书。这允许在中间 CA 被彻底黑客攻击时撤销它(以至于它的私钥被盗,或者无法重建欺诈性颁发的证书列表)。
一个严肃的根 CA 的初始设置涉及一个关键仪式,其中有一群窥探的审计师,以及一种不会被宋朝皇帝蔑视的形式主义。再多的审计也无法保证没有漏洞;然而,这种仪式可以用来知道做了什么,表明已经考虑了安全问题,并且,如果出现问题,可以找出罪魁祸首。我参加过几次这样的仪式;它们确实是一个大的“安全剧院”,但除了活动的展示之外,它们还有其他优点:它们强迫人们为所有事情制定书面程序。
现在的问题是:现有的CA 真的像上面描述的那样严重吗?以我的经验,他们大多是。如果 CA 与 VISA 或 MasterCard 有任何关系,那么您可以确定 HSM、钢铁和脾气暴躁的比特犬是安装的一部分;VISA 和万事达卡是关于金钱的,并且非常重视它。
对于 Web 浏览器和操作系统中包含的 CA,浏览器或操作系统供应商往往需要大量保险。再说一次,这与钱有关。但保险公司随后将要求进行所有物理测量以及会计和审计。形式上,这将使用WebTrust等认证。
即使对于像 DigiNotar 或 Comodo 这样臭名昭著的 CA 也是如此:请注意,虽然他们被黑客入侵并颁发了假证书,但上述证书是已知的并被撤销(微软将它们添加到“禁止证书”列表中,可以看作一种“撤销,我们是认真的”——软件必须竭尽全力接受它们)。
“弱” CA 主要是国家控制的根 CA。如果 Microsoft 认为没有提供足够的保险,Microsoft 可以拒绝包含来自私人企业的根密钥(他们希望确保 CA 在财务上稳健,以便能够维持运营);我知道一家拥有数百万客户的银行试图将他们的根密钥包含在 Windows 中,但由于他们“太小”而被解雇。然而,微软对来自主权国家的官方 CA 要弱得多;如果他们想在 X 国做生意,他们真的不能拒绝 X 政府的根 CA 密钥。不幸的是,在保护他们的 CA 密钥方面,并非所有政府都是“认真的”......