行业新闻与博客
OCSP 与 CRL:各自是什么以及为什么浏览器更喜欢其中一种
尽管 OCSP 服务器和 CRL 的功能大致相同,但它们的工作方式不同。以下是关于两种安全证书验证检查方法之间的异同以及浏览器主要转向使用 CRL 的原因。
7 月,行业标准机构投票决定从 2024 年 3 月 15 日起,证书颁发机构 (CA) 必须使用 CRL,而 OCSP 则为可选。浏览器通过这些工具自动检查网站的 SSL/TLS 证书是否已被撤销,因此它知道是否信任它来建立加密连接。(如果被撤销,则无法信任,浏览器应立即终止连接。)
但考虑到这一点,我们将概述每种方法,并通过探索 CA/ 浏览器论坛 (CA/B 论坛) 的形成原因,概述使用一种吊销检查系统相对于另一种(OCSp 与 CRL)的优势决定在使用 OCSP 时要求 CRL。
让我们来讨论一下。
OCSP 与 CRL:证书吊销检查机制概述
在线证书状态协议 (OCSP) 和证书吊销列表 (CRL) 是证书颁发机构 (CA) 可用来指示证书何时被吊销的两个工具。
已吊销 = 证书由于过期以外的原因而不值得信赖(例如,您的密钥已被泄露、CA 错误颁发了证书等)
就像杂货一样,每个数字证书都有一个有效期。然而,在某些情况下,证书会变“坏”并在指定的到期日期之前被吊销。可以将其想象为从杂货店购买牛奶:假设您从商店购买了一加仑牛奶:
- 如果你把它带回家并妥善冷藏,那么它应该在保质期之前保持良好状态。
- 如果你把它带回家,不小心把它放在柜台上过夜,那么你就会有一加仑变质的牛奶需要扔掉。
第一个示例类似于证书过期:牛奶应该在指定的过期日期之前保持良好状态。第二个例子类似于被撤销的证书:在牛奶过期之前,某些东西被破坏或以其他方式影响了牛奶(使其无法饮用)。
TL;DR:CRL 与 OCSP 的比较表
没有时间阅读有关 OCSP 与 CRL 之间差异的整篇文章?请查看下表,了解两种吊销状态检查方法的概述:
在线证书状态协议 | 证书吊销列表 | |
这是什么 | 服务器响应,提供有关证书是否在到期日期之前已被吊销的信息。 | 过期前已吊销的带时间戳的数字证书列表。 |
它能做什么 | 通知客户端有关证书的吊销状态,以便客户端知道是允许还是拒绝连接。 | 通知客户端有关证书的吊销状态,以便他们知道是自动允许还是拒绝连接。 |
它包含什么 | 回复“良好”、“已撤销”或“未知” | 每个已撤销证书的序列号和撤销日期。 |
什么时候检查? | 每次连接期间都会检查 OCSP 服务器 | 客户端通常会在每个连接上检查本地存储的 CRL;如果证书或 CRL 列表已过期,浏览器将下载新列表。 |
是必需的吗? | 不。OCSP 的使用是可选的,但在实施时,“CA 操作的 OCSP 响应程序应支持 RFC 6960 和 / 或 RFC 5019 中描述的 HTTP GET 方法。” | 是的。必须使用公开的 CRL 。CA 必须在可公开访问的 HTTP URL 上提供以下任一内容: – 完整且完整的 CRL – 共同构成完整 CRL 的部分列表 |
撤销更新要求 | 订户证书的 OCSP 状态响应: – 等于或大于 8 小时 – 小于或等于 10 天 CA 证书的 OCSP 状态响应: – 每 12 个月一次(至少) – 吊销从属 CA 证书后 24 小时内 | 新订户证书 CRL 必须更新和发布: – 记录证书吊销后 24 小时内, – 对于包含 AIA 扩展的证书,至少每 7 天更新一次,或者 – 至少每 4 天更新一次,否则 CA 证书 CRL 必须更新: – 每年12 个月,或 – 记录证书吊销后每 24 小时一次 |
CRL 和 OCSP 相关的基线要求变更将如何影响您?
在大多数情况下,他们不会(至少不会直接)。颁发 SSL/TLS 证书的证书颁发机构将感受到这些 CRL 和 OCSP 更改的影响。这是因为新要求会影响发布已撤销数字证书的方法和更新频率。这些事情都不会影响您从 CA 获得的服务。
有更多时间还是只想深入了解每种方法?伟大的。我们还有很多东西可以分享。
什么是在线证书状态协议 (OCSP)?
在线证书状态协议,通常称为 OCSP,是一种实时确定网站证书有效性状态的方法。这是使用 OCSP 服务器或通常称为 OCSP 响应器的服务器来完成的。颁发相关证书的 CA 负责维护和更新服务器的数据库。
当客户端询问特定证书时,它会触发一系列事件,从而引发颁发该证书的 CA 的 OCSP 服务器的响应。以下是浏览器如何使用 OCSP 检查证书吊销状态的快速概述:
什么是证书吊销列表 (CRL)?
证书吊销列表类似于 CA 出于某种原因(通常是由于错误颁发或泄露相关问题)吊销的 X.509 数字证书黑名单。列表中包含的证书旨在用于通过互联网对服务器进行身份验证(即 SSL/TLS 证书或所谓的网站安全证书)。
该过程的前几个步骤与 OCSP 的工作方式类似 — 即,客户端尝试连接到站点,并且站点的服务器发送其 SSL/TLS 证书。但之后的过程有所不同:
发布和维护当前的 CRL 列表使 CA 能够在撤销证书时通知客户端。这使客户端知道该证书不受信任,因此不应用于伪造安全连接。通常,您可以在 SSL/TLS 证书的 CRL 分发点部分中找到包含的 CRL 信息:
浏览器客户端多久更新一次本地 CRL?
是否没有要求浏览器制造商必须让其浏览器客户端更新其本地 CRL 的频率?没有。这是因为 CA/B 论坛只定义了对 CA 的要求;它没有为浏览器或其他软件制造商定义它们。因此,我想您可能会说,就客户端下载 CRL 的频率而言,这有点“狂野西部”。
简单来说,浏览器客户端的更新频率没有具体的要求,根据各个浏览器厂商的决定可能会有变化。例如,Mozilla Firefox 有一个专有列表 (CRLite),根据他们在 CRLite 上的一篇博客文章,他们“每天推出多达 4 次” 。
Google Chrome 拥有一组专有的 CRL,其名称非常有创意,称为“CRLSets”。根据 Chromium 项目:
“我们维护一份已爬取的 CRL 的内部列表,旨在涵盖立即撤销。该集合中的 CRL 将构成已发布的 CRLSet。列表中的 CRL 很少被获取(最多每隔几个小时一次),并根据该 CRL 的正确签名证书进行验证。”
OCSP 与 CRL:为什么需要这两种工具
一般来说,证书吊销可以缓解因数字证书和密钥受损、错误颁发或其他不安全而引起的问题。尽管大规模撤销并不常见,但这种情况时有发生。例如,2019 年,多个 CA 由于序列号大小不足而撤销了数百万个证书,而 Let's Encrypt 由于编码相关漏洞也不得不这样做。
但仅仅撤销它们是不够的。浏览器需要一种方法来确保一旦证书被吊销,数字证书就不再受信任。通过使用这些公认的方法之一检查网站 SSL/TLS 证书的有效性,Web 客户端可以在尝试使用它进行身份验证并连接到网站之前验证其当前的有效性状态。
CA/B 论坛所需的更改意味着什么
短期证书现在可以选择撤销机制
尽管这不是本文的重点,但我们认为值得一提的是,Ballot SC-63 还批准了有关多年前在 Ballot 153 中引入的主题(即“短期证书”)的一些更改。SSL/TLS BR 版本 2.0.1 中新批准的更改表明 CA“可以支持撤销短期订户证书”,但这不是必需的。
此外,证书也不需要包含在任何 CRL 或 OCSP 响应中(可能是因为它们的有效期缩短了)。
不确定什么才算是“短期”证书?
- 自 2024年3月15日起,有效期“小于或等于 10 天(864,000 秒)”的订户证书
- 对于 2026年3月15日之后发行的,最长有效期为 7 天(604,800 秒)或更短。
其他最长有效期超过这些期限的证书的标准有效期为 398 天。
CRL 必须“完整且完整”
除了使用证书吊销列表的一般要求外,行业标准组织还特别要求 CRL 为:
- “完整且完整”的列表,或
- 一组“分片”(分区)的 CRL,它们一起等同于相同的 CRL。
订户证书 CRL 必须满足特定的时间限制
一般来说,CRL 必须在证书收到吊销状态后 24 小时内更新和发布。但这并不是一条硬性规定;而是一条硬性规定。根据 Ballot SC-63,根据几个关键因素,有一些豁免和替代流程可供遵循。
- 证书包含 AIA 扩展:如果 CA 的证书全部包含“具有 id-ad-ocsp accessMethod(‘AIA OCSP 指针’)”的权威信息访问 (AIA) 扩展,则此更新和重新发布时间表不一定适用。AIA 证书扩展是一种指定要使用哪个响应程序的方法。因此,使用 AIA 扩展意味着,如果所有证书都满足所描述的要求(即,它们具有 OCSP 吊销支持),CA 最多有 7 天的时间来发布更新的 CRL。
- 定期更新:如果 CRL 包含不支持 OCSP 的证书,则仍需要更新并发布更新的列表,无论如何,“在所有其他情况下至少每四 (4) 天一次”。(注意:它仍然应该在 24 小时内撤销适用的证书。)这样,当浏览器请求 CRL 时,它就会知道它拥有最新的信息(即使最近没有新证书被记录为已撤销) )。
现在是棘手的部分:Microsoft 的根策略要求使用 OCSP 指针。因此,即使它们在技术上不是必需的,但情况也不是那么一成不变,因为这会让 CA 陷入困境。
我们联系了 DigiCert 行业技术策略师 Corey Bonnell,以澄清这一点。Bonnell 作为 CA/B 论坛的代表,一直积极代表 CA。他还帮助 Google Chrome 团队撰写了选票的重要部分。
“每个 TLS 证书都会有一个 OCSP 指针,”Bonnell 说。“因此,尽管 BR 允许 TLS 证书省略 OCSP 指针,但参与 [Microsoft Root Program](基本上是所有公众信任的 CA)的 CA 必须包含 OCSP 指针以遵守其策略。”
将您的证书包含在 Microsoft 的根证书计划中至关重要,因为这使得 Windows 操作系统和浏览器能够识别由这些根证书签名的任何内容。
CA 证书的 CRL 还必须满足特定的时间限制
与新订户证书 CRL 要求一样,CA 证书的 CRL 也必须在输入证书吊销记录后 24 小时内更新和发布。否则,只需每 12 个月更新并发布一个新列表。
为什么证书可能首先被撤销
那么,证书可能被撤销的原因有哪些?以下概述了 CA/B 论坛的 SSL/TLS 基线要求(版本 2.0.1)中指定的原因:
为什么证书会在 24 小时内被吊销 | 为什么证书应该在 24 小时内撤销(并且必须在 5 天内撤销) |
1. 原因不明 | 1. 证书不符合 BR 第 6.1.5 和 6.1.6 条要求 |
2. 未经授权的原始证书请求 | 2. 证书被滥用,权限被撤销 |
3. 订阅者的证书私钥被泄露 | 3. 订户违反义务,证书特权已被撤销 |
4. 订阅者的证书私钥较弱 | 4. 证书中指定的域不再有效或订户不再控制它 |
5. 订阅者的状态或授权不可靠 | 5. 通配符证书被滥用来歪曲 FQDN |
6. 相关证书信息发生变更 | |
7. 证书颁发不当 | |
8.证书信息不准确 | |
9. 发行 CA 的发行权已到期、被撤销或以其他方式终止 | |
10. 证书因与 CA CP/CPS 相关的未指定原因而被撤销 | |
11. 由于密钥生成有缺陷,订阅者的私钥被泄露 |
OCSP 与 CRL:行业为何正在放弃 OCSP
行业领导者选择 OCSP 的主要原因有两个:
1. 数据隐私问题和注意事项
人们拥有隐私权和期望,而 OCSP 请求并不符合这一要求。为什么?因为发送的 OCSP 请求包含所请求的证书状态的序列号。如果该信息被传输,则意味着有人可以使用该信息来识别用户正在访问哪个网站和 / 或他们正在查看哪个特定页面。
根据 CA/B 论坛的理由文件:“OCSP 请求向 OCSP 响应器的操作员透露个人浏览历史记录的详细信息。这些可能会意外暴露(例如,通过日志数据泄露)或故意暴露(例如,通过传票)。”
因此,论坛表示倾向于强制使用有利于隐私的证书吊销状态检查方法(即 CRL 列表)。
2. OCSP 问题和财务考虑因素
有关 OCSP 的问题超出了隐私问题的范畴;性能问题和成本也是关键考虑因素。但性能并不是一个新问题。2017 年,由于性能相关问题,我们看到 Firefox 禁用了对域 (DV) 和组织验证 (OV) SSL/TLS 证书的 OCSP 检查。
就成本而言,CA/B 论坛领导人通过指出 OCSP 持续的财务可行性,进一步证明了他们的决定的合理性:“考虑到在全球网络范围内可靠地提供这些服务的成本过高,对 OCSP 的担忧进一步加剧。公钥基础设施”。
简而言之,CRL 成本较低,并且被认为是一致且可靠的证书吊销状态检查方法。此外,它们还保护隐私,因为查询 Web 客户端不需要发送与特定网站相关的信息。
OCSP 装订怎么样?
OSCP 装订是一种将证书有效性证明直接合并到 TLS 握手中的机制,以避免客户端必须联系 CA 来仔细检查其准确性。这有助于优化性能并增加数据隐私。
所有这一切听起来都很棒,对吧?那么,为什么 OCSP 装订没有发生更大的变化呢?坦率地说,这可以归结为采用率和使用率较低。但除此之外,还有其他紧迫的原因。
根据围绕选票 SC-63 的讨论:
“独立于使用统计数据,依赖方不能始终依赖 OCSP 装订来确保安全,除非在所有连接上都装订了响应。此外,即使 Web 服务器生态系统改进了对 OCSP 装订的支持,并且我们可能需要使用“必须装订”扩展,我们仍然依赖于强大且高度可靠的 OCSP 服务,这是一个持续的生态系统挑战。”
OCSP 与 CRL:让我们总结一下
我们希望您发现本文在区分 OCSP 与 CRL 吊销检查方法方面提供了丰富的信息。这两种工具都有其用途,并将在未来几年继续受到企业的依赖。不过,我们希望有关短期证书的变化将有助于缩小网络犯罪分子的潜在攻击窗口。此外,由于不要求将这些证书包含在 CRL 中,因此可能会减少全球组织越来越依赖的 CRL 的大小。
最近新闻
2024年11月12日
2024年11月12日
2024年11月12日
2024年11月12日
2024年10月28日
2024年10月28日
2024年10月28日
2024年10月28日
需要帮助吗?联系我们的支持团队 在线客服