RFC 9852 使用 TLS 的新协议必须要求使用 TLS 2026年7月
Salz & Aviram 当前最佳实践 [页]
文档流:
互联网工程任务组(IETF)
RFC:
9852
BCP:
195
更新:
9325
类别:
当前最佳实践
发布日期:
ISSN:
2070-1721
作者:
R. Salz
Akamai Technologies
N. Aviram

RFC 9852

使用 TLS 的新协议必须要求使用 TLS 1.3

摘要

TLS 1.3 已得到广泛使用,经过了全面的安全性证明,并且 改善了 TLS 1.2 在安全性和隐私方面的缺陷。因此,使用 TLS 的新协议 必须要求使用 TLS 1.3。由于 DTLS 1.3 尚未广泛可用或 部署,因此本规定不适用于 DTLS(任何 DTLS 版本); 它仅适用于 TLS。

本文档更新了 RFC 9325。文中讨论了后量子密码学以及 TLS 1.3 在安全性和隐私方面的改进,以此作为此次更新的理由。

本备忘录的状态

本备忘录记录了一项互联网当前最佳实践。

本文档是互联网工程任务组 (IETF)的产物。它代表了 IETF 社区的共识。本文档已经 过公开评审,并经互联网工程指导组 (IESG)批准发布。有关 BCP 的更多信息 请参阅 RFC 7841 第 2 节。

有关本文档的当前状态、任何 勘误以及如何提供反馈的信息,可从 https://www.rfc-editor.org/info/rfc9852获取。

目录

1. 引言

本文档规定,使用 TLS 的新协议 必须假定 TLS 1.3 可用并要求使用它。 由于 DTLS 1.3 尚未广泛可用或 部署,因此本规定不适用于 DTLS(任何 DTLS 版本); 它仅适用于 TLS。

TLS 1.3 [TLS13] 已得到广泛 使用,并修复了 TLS 1.2 的大多数已知缺陷。其示例包括加密更多流量,使其 无法被外部人员读取,以及移除目前被认为较弱的大多数密码学原语。 重要的是,该协议已经过全面的 安全性证明,并且无需任何额外 配置即可提供出色的安全性。

TLS 1.2 [TLS12] 仍在使用,并且可以 配置为提供良好的 安全属性。但是,如第 6 节所述, TLS 1.2 存在若干缺陷。解决这些缺陷 通常需要 专门配置。

本文档更新了 [RFC9325]。 文中讨论了后量子密码学 以及 TLS 1.3 在安全性和隐私方面的改进,以此作为此次更新的理由。请参阅第 5 节

2. 约定

本文档中的关键词“必须”、“不得”、“必需”、“”、“不得”、 “应该”、“不应该”、“建议”、“不建议”、 “可以”和“可选”,仅当它们以如此处所示的 全部大写形式出现时,才应按照 BCP 14 [RFC2119] [RFC8174] 中的说明进行解释。

3. 对后量子密码学(PQC)的影响

一旦密码学相关量子计算机(CRQC)可用, 它们将对 TLS 流量产生巨大影响(例如,参见 [RFC9958]第 3 节)。 为了减轻这种影响,TLS 应用将 需要迁移到后量子密码学(PQC)[PQC]。关于 应用何时需要 PQC,或者 CRQC 何时会成为 应用需要防范的威胁等详细考量,超出了本文档的 范围。

需要特别指出的是, TLS 工作组正将工作重点放在 TLS 1.3 或更高版本上;TLS 1.2 将不再得到支持(参见 [TLS12FROZEN])。 这也是新协议要求 TLS 默认使用 TLS 1.3 的另一个原因, 因为 PQC 正在该版本中积极进行标准化,这使新应用 可以选择使用 PQC。

4. 其他协议和应用对 TLS 的使用

任何使用 TLS 的新协议都必须将 TLS 1.3 指定为其 默认版本。 例如,QUIC [QUICTLS] 要求使用 TLS 1.3,并 规定,如果使用了较旧版本,端点 必须终止连接。

如果需要考虑部署问题,协议可以 将 TLS 1.2 指定为 一个额外的非默认选项。 作为反例,基于 TLS 的 DNS 使用配置文件 [DNSTLS] 将 TLS 1.2 指定为默认版本,同时也允许使用 TLS 1.3。 对于选择支持 TLS 1.2 的较新规范,这些优先级 应当反过来。

初始 TLS 握手允许客户端指定其支持的 TLS 版本,而服务器应选择其同样支持的最高 版本。这称为“TLS 版本 协商”;协议和协商细节在 [TLS13]第 4.2.1 节[TLS12]附录 E中讨论。 许多 TLS 库都提供一种方式, 让应用指定其所需的版本范围,包括 仅指定最低版本或最高版本的开放区间。

如果应用使用的是支持 TLS 版本协商的 TLS 实现, 并且它知道该 TLS 实现将使用所支持的最高版本, 那么 客户端应该仅指定其所需的最低版本。 根据上述段落所述的具体情况,该版本必须为 TLS 1.3 或 TLS 1.2。

5. 对 RFC 9325 的更改

[RFC9325] 提供了相关建议, 用于确保已部署的 TLS 服务以及与本文档不同的 DTLS 服务的安全性。 [RFC9325] 将 TLS 1.3 描述为“广泛可用”,并且自该文档发布以来,向 TLS 1.3 的迁移程度进一步提高。 因此,本文档对 [RFC9325]第 3.1.1 节中的建议作出两项更改:

再次强调,这些更改仅适用于 TLS,而不适用于 DTLS。

6. 安全注意事项

TLS 1.2 规定了若干密码学原语和设计选择, 而随着时间推移,它们已经显著变弱。本节旨在 简要概述影响该协议的若干突出问题。 但应当指出,TLS 1.2 可以安全地进行配置; 只是与使用其现代后继版本 TLS 1.3 相比, 安全配置 TLS 1.2 要困难得多。有关 安全部署 TLS 1.2 的 更全面指南,请参阅 [RFC9325]

首先,在不使用任何扩展的情况下,TLS 1.2 容易受到 重新协商攻击(参见 [RENEG1][RENEG2])以及 三重握手攻击(参见 [TRIPLESHAKE])。 概括而言,这些攻击 利用协议对重新协商的支持,将攻击者 选择的前缀注入明文流。实际上,这通常是一种破坏性极强的 威胁(例如,它允许攻击者在 Web 环境中获取机密 Cookie)。 鉴于 上述问题,[RFC5746] 规定了一种 防止此类攻击的扩展。为了安全地部署 TLS 1.2,必须 完全禁用重新协商,或者必须使用此扩展。此外,客户端 不得允许服务器在连接期间重新协商证书。

其次,最初为 TLS 1.2 规定的密钥交换方法,即 RSA 密钥交换和有限域 Diffie-Hellman,存在若干 弱点。为了安全地部署该协议, 必须禁用其中 大多数密钥交换方法。 有关详细信息,请参阅 [RFC10015]

第三,TLS 1.2 中广泛使用的对称密码,即 RC4 和密码分组链接(CBC)密码套件,存在若干弱点。RC4 的 密钥流中存在可利用的偏差;请参阅 [RFC7465]。多年来,CBC 密码套件一直是 漏洞的来源。这些密码套件的直接 实现本质上容易受到 Lucky13 计时 攻击 [LUCKY13]。首次尝试以 常量时间实现这些密码套件时, 引入了一个更加严重的漏洞 [LUCKY13FIX]。 有关 CBC 密码套件漏洞的另一个示例以及类似研究的概述, 请参阅 [CBCSCANNING]

此外,TLS 1.2 还受到其他若干攻击的影响, 而 TLS 1.3 不受这些攻击影响: BEAST [BEAST]、Logjam [WEAKDH]、FREAK [FREAK] 和 SLOTH [SLOTH]

最后,尽管 TLS 1.2 中的应用层流量始终经过加密,但握手 消息的大部分内容并未加密。因此,其提供的隐私保护并不理想。 这是一个无法通过配置解决的协议问题。

7. IANA 注意事项

本文档不要求 IANA 执行任何操作。

8. 参考资料

8.1. 规范性参考资料

[RFC2119]
Bradner, S.“RFC 中用于表示 要求级别的关键词”BCP 14RFC 2119DOI 10.17487/RFC2119<https://www.rfc-editor.org/info/rfc2119>
[RFC8174]
Leiba, B.“RFC 2119 关键词中 大写与小写的歧义”BCP 14RFC 8174DOI 10.17487/RFC8174<https://www.rfc-editor.org/info/rfc8174>
[RFC9325]
Sheffer, Y.Saint-Andre, P.T. Fossati“安全使用 传输层安全(TLS)和数据报传输层安全 (DTLS)的建议”BCP 195RFC 9325DOI 10.17487/RFC9325<https://www.rfc-editor.org/info/rfc9325>
[TLS12]
Dierks, T.E. Rescorla“传输层安全(TLS)协议 1.2 版”RFC 5246DOI 10.17487/RFC5246<https://www.rfc-editor.org/info/rfc5246>
[TLS12FROZEN]
Salz, R.N. Aviram“TLS 1.2 已进入功能冻结状态”RFC 9851DOI 10.17487/RFC9851<https://www.rfc-editor.org/info/rfc9851>
[TLS13]
Rescorla, E.“传输层 安全(TLS)协议 1.3 版”RFC 9846DOI 10.17487/RFC9846<https://www.rfc-editor.org/info/rfc9846>

8.2. 资料性参考资料

[BEAST]
Duong, T.J. Rizzo“XOR 忍者来了”<http://www.hpcc.ecs.soton.ac.uk/dan/talks/bullrun/Beast.pdf>
[CBCSCANNING]
Merget, R.Somorovsky, J.Aviram, N.Young, C.Fliegenschmidt, J.Schwenk, J.Y. Shavitt“TLS 填充预言机漏洞的 可扩展扫描和自动分类”第 28 届 USENIX 安全研讨会(USENIX Security 19)<https://www.usenix.org/system/files/sec19-merget.pdf>
[DNSTLS]
Dickinson, S.Gillmor, D.T. Reddy“基于 TLS 的 DNS 和基于 DTLS 的 DNS 使用配置文件”RFC 8310DOI 10.17487/RFC8310<https://www.rfc-editor.org/info/rfc8310>
[FREAK]
Beurdouche, B.Bhargavan, K.Delignat-Lavaud, A.Fournet, C.Kohlweiss, M.Pironti, A.Strub, P.-Y.J. K. Zinzindohoue“混乱的联盟状态: 驯服 TLS 的复合状态机”2015 年 IEEE 安全与隐私研讨会HAL ID: hal-01114250<https://inria.hal.science/hal-01114250/file/messy-state-of-the-union-oakland15.pdf>
[LUCKY13]
Al Fardan, N. J.K. G. Paterson“幸运十三:破解 TLS 和 DTLS 记录协议”<http://www.isg.rhul.ac.uk/tls/TLStiming.pdf>
[LUCKY13FIX]
Somorovsky, J.“TLS 库的系统化模糊测试 与测试”CCS '16:2016 年 ACM SIGSAC 计算机与通信安全会议论文集,第 1492-1504 页DOI 10.1145/2976749.2978411<https://nds.rub.de/media/nds/veroeffentlichungen/2016/10/19/tls-attacker-ccs16.pdf>
[PQC]
NIST“什么是后量子 密码学?”<https://www.nist.gov/cybersecurity/what-post-quantum-cryptography>
[QUICTLS]
Thomson, M.,编者S. Turner, 编者“使用 TLS 保护 QUIC”RFC 9001DOI 10.17487/RFC9001<https://www.rfc-editor.org/info/rfc9001>
[RENEG1]
Rescorla, E.“理解 TLS 重新协商攻击”Wayback Machine 存档<https://web.archive.org/web/20091231034700/http://www.educatedguesswork.org/2009/11/understanding_the_tls_renegoti.html>
[RENEG2]
Ray, M.“TLS 重新协商中的身份验证缺口”Wayback Machine 存档<https://web.archive.org/web/20091228061844/http://extendedsubset.com/?p=8>
[RFC5746]
Rescorla, E.Ray, M.Dispensa, S.N. Oskov“传输层安全(TLS)重新协商指示 扩展”RFC 5746DOI 10.17487/RFC5746<https://www.rfc-editor.org/info/rfc5746>
[RFC7465]
Popov, A.“禁止使用 RC4 密码套件”RFC 7465DOI 10.17487/RFC7465<https://www.rfc-editor.org/info/rfc7465>
[RFC9958]
Banerjee, A.Reddy.K, T.Schoinianakis, D.Hollebeek, T.M. Ounsworth“面向工程师的后量子密码学”RFC 9958DOI 10.17487/RFC9958<https://www.rfc-editor.org/info/rfc9958>
[RFC10015]
Aviram, N.“弃用 TLS 1.2 和 DTLS 1.2 中过时的密钥交换方法”RFC 10015DOI 10.17487/RFC10015<https://www.rfc-editor.org/info/rfc10015>
[SLOTH]
Bhargavan, K.G. Leurent“记录碰撞攻击:破解 TLS、IKE 和 SSH 中的身份验证”网络与分布式系统安全 研讨会——NDSS 2016DOI 10.14722/ndss.2016.23418HAL ID: hal-01244855<https://inria.hal.science/hal-01244855/file/SLOTH_NDSS16.pdf>
[TRIPLESHAKE]
“三重握手被认为有害:破解并修复 TLS 上的身份验证”Wayback Machine 存档<https://web.archive.org/web/20250804151857/https://mitls.org/pages/attacks/3SHAKE>
[WEAKDH]
Adrian, D.Bhargavan, K.Durumeric, Z.Gaudry, P.Green, M.Halderman, J. A.Heninger, N.Springall, D.Thome, E.Valenta, L.VanderSloot, B.Wustrow, E.Zanella-Beguelin, S.P. Zimmerman“不完美的前向保密性:Diffie-Hellman 在实践中如何失效”CCS '15:第 22 届 ACM SIGSAC 计算机与通信安全会议论文集,第 5-17 页DOI 10.1145/2810103.2813707<https://dl.acm.org/doi/pdf/10.1145/2810103.2813707>

作者地址

Rich Salz
Akamai Technologies
Nimrod Aviram