证书颁发机构如何存储他们的私钥?

信息安全 证书 公钥基础设施 密钥管理 证书颁发机构 密钥生成
2021-08-26 21:59:23

CA 私钥的知识将允许 MitM 攻击者透明地替换由该私钥签名的任何证书。它还将允许网络犯罪分子开始伪造他们自己的可信证书并在黑市上出售。

鉴于利用这些知识可以获得巨额利润,而且高度可信且无处不在的证书(例如任何主要的 Verisign 密钥)将是一件很难快速撤销的事情,因此有理由认为会有积极性高且资金充足的犯罪分子试图定期获得此类钥匙。

认证机构如何应对这种威胁?这听起来像是一场真正的噩梦,不得不将钥匙从所有人的视线中隔离开,甚至是系统管理员。一直以来,密钥必须每天使用,通常由连接互联网的签名服务使用。

4个回答

严肃的认证机构使用繁重的程序。在核心,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 密钥方面,并非所有政府都是“认真的”......

在物理方面,他们首先使根 CA 完全脱机。通常情况下,他们会设置根 CA,创建下属,然后使根 CA 完全脱机,并占用硬盘驱动器和 HSM(有时甚至是整个服务器)并将它们基本上锁定在保险箱中。

接下来,他们对网络进行分段以确保那些从属/发布 CA 的安全。

最后,在这些下属上,他们使用 HSM 来存储证书。

OCSP 和 CRL 用于吊销证书,但并非如此简单。

在程序方面,他们有大量的层,包括需要多人同时撤销/签署下属或根(密钥签署仪式)的锁定房间。这些是 24/7 全天候录制的(音频和视频),除了管理员和高管之外,还需要 CA 的信任人员。这是一笔大买卖。 这是视频

编辑:与多项式所说的相反,据我所见,HSM 对于 CA 来说是司空见惯的,甚至对于内部 CA 的大型实现也是如此。

并非每个 CA(政府、商业或私人)都以相同的方式存储私钥。大多数合法运营商都使用 HSM。供应商可能会使用从根到 SubCa 的单向链接发布 CRL 撤销列表。(仅传输串行电缆、音频电缆、二维码、仅连接几个引脚的以太网......等)

具体来说,这实际上取决于您在谈论什么产品。

例如,每部手机(Android、iPhone、Blackberry)、操作系统(Linux、Windows 等),甚至一些网络浏览器(Firefox)都维护着独立的信任库。

这些供应商中的每一个对于哪些 CA 有资格成为该给定产品中的“根 CA”都有不同的标准。具体来说,每个供应商都有不同的认证、流程和程序(例如冷存储要求),每个 CA 在被包含在该根信任列表之前必须遵守。

Microsoft 有根证书计划,要求每个 CA 都遵循以下审计标准(应该解决您的所有技术和程序问题)

  • ETSI 102 042
  • ETSI 101 456
  • CA 的 WebTrust
  • WebTrust EV 准备情况审核
  • ISO 21188(注意他们不接受 ISO 27001)

具体而言,CA 必须每十二 (12) 个月完成一次审核并向 Microsoft 提交审核结果。审核必须涵盖 Microsoft 通过分配扩展密钥用法 (EKU) 启用的完整 PKI 层次结构。我们启用的所有证书使用都必须定期审核。审计报告必须记录 PKI 层次结构的全部范围,包括颁发审计涵盖的特定类型证书的任何子 CA。符合条件的审核包括:

(请注意,这些审计要求不适用于政府 CA,可能会有所不同)

在此处阅读有关MSFT 根的技术和审计指南的更多信息

在旁边:

绝对有可能将私钥存储在 HSM 中,该 HSM 从不公开私钥(将请求卸载到该密钥)并永久跟踪该私钥的每次使用。我不记得这些标准中是否有任何标准需要 HSM,但鉴于 HSM 的成本相对较低,我无法想象为什么不这样做。

虽然我同意@Thomas上面的非常彻底的回应,但我想补充一点,我为英国银行自己的借记卡系统安装了根 CA 系统(卡上的每个小芯片实际上都是一个证书)。

我们使用了 Thales HSM 设备(6 位数英镑成本),这些设备具有适当的防篡改系统,用于倾斜、温度、物理攻击等。

关键仪式而言, (正如托马斯所描述的)有成群的审计员站在寒冷的机房周围——它比这更复杂。您需要确保密钥生成活动和到 HSM 的密钥传输是分开的活动,并且密钥不会被串通破坏。泰雷兹 HSM 工具允许将密钥拆分为多个部分,每个部分都使用一个传输密钥进行加密,以便各个密钥持有者可以通过不同的传输方式(看在上帝的份上,不要共享汽车)分别前往密钥仪式。位置,通常在生产服务器机房的 HSM。

请不要认为成为根 CA 很简单——是的,我知道你可以使用免费使用的工具创建根 CA——你需要确定自己的风险偏好以及是否可以构建一个根 CA 来匹配威胁模型。例如,对于借记卡证书(随之而来的损失可能是“整个银行”),花费的总金额是巨大的,并且有很多人四处奔波,以确保没有任何人可以串通或控制密钥。

如果您只是创建一个根 CA 作为本地测试系统,那么风险模型显然是不同的。

我的建议是,除非您是大型组织(财富 500 强)的规模,或者您的实际业务是成为根 CA,否则请外包。