| RFC 10015 | 弃用 (D 中已过时的密钥交换 | 2026 年 7 月 |
| Aviram | 标准跟踪 | [页码] |
对于 (D)TLS 1.2,本文档弃用两种密钥交换方法,即 有限域上的 Diffie-Hellman (DH) 和 RSA。本文档还不建议使用静态椭圆曲线 Diffie-Hellman (ECDH) 密码套件。¶
这些规定仅适用于 (D)TLS 1.2,因为 (D)TLS 1.0 和 TLS 1.1 已被 RFC 8996 弃用,而 (D)TLS 1.3 要么不使用受影响的 算法,要么不共用相关的配置选项。 (不存在 DTLS 1.1 版本。)¶
本文档更新了 RFC 4162、4279、4346、4785、5246、5288、5289、5469、 5487、5932、6209、6347、6367、6655、7905、8422 和 9325,以弃用或 不建议在 (D)TLS 1.2 连接中使用采用上述密钥交换 方法的密码套件。¶
本文档是一份互联网标准跟踪文档。¶
本文档是互联网工程任务组 (IETF) 的产品。它代表了 IETF 社区的共识。本文档已经 过公开审查,并已获得互联网工程指导组 (IESG) 批准发布。有关 互联网标准的更多信息,请参阅 RFC 7841 第 2 节。¶
有关本文档的当前状态、任何 勘误以及如何提供反馈的信息,可从 https://www.rfc-editor.org/info/rfc10015 获取。¶
版权所有 (c) 2026 IETF Trust 及被认定为本文档 作者的人员。保留所有权利。¶
本文档受 BCP 78 以及在本文档 发布之日有效的《IETF Trust 关于 IETF 文档的法律 条款》 (https://trustee.ietf.org/license-info) 约束。请仔细审阅这些文档, 因为它们说明了您对于本文档所享有的权利和受到的 限制。从本文档提取的代码组件 必须包含 Trust 法律条款第 4.e 节中所述的 修订版 BSD 许可证文本,并按修订版 BSD 许可证中的说明 不附带任何保证。¶
(D)TLS 1.2 支持多种密钥交换算法,包括 RSA、有限域上的 Diffie-Hellman (DH) 和椭圆曲线 Diffie-Hellman (ECDH)。¶
任何群上的 DH 密钥交换都分为临时和非临时 两类。非临时 DH 算法使用包含在 执行身份验证的对等方证书中的静态 DH 公钥;相关讨论请参阅 [RFC4492]。相比之下, 临时 DH 算法使用在握手中发送并由对等方证书 认证的临时 DH 公钥。临时和非临时有限域 DH 算法分别称为 DHE 和 DH(或 FFDHE 和 FFDH), 临时和非临时椭圆曲线 DH 算法则 分别称为 ECDHE 和 ECDH [RFC4492]。¶
一般而言,不建议使用非临时密码套件,因为它们缺乏 前向保密性。此外,正如针对有限域 DH 的 Raccoon 攻击 [RACCOON] 所证明的那样,公钥复用(无论是通过 非临时密码套件,还是在临时密码套件中复用密钥) 都可能导致计时侧信道,从而泄露连接 机密。对于 ECDH,无效曲线攻击同样会利用机密 复用来破坏安全性 [ICA],进一步 证明了复用公钥的风险。虽然这两种侧信道都可以在实现中避免, 但经验表明,在实践中,由于所需缓解措施的 复杂性和数量,实现可能无法抵御此类攻击。¶
此外,RSA 密钥交换既存在与实现选择无关的安全问题, 也存在完全源于难以正确实现安全 对策的问题。¶
粗略来看,影响 (D)TLS 1.2 中 FFDHE 的问题如下:¶
FFDHE 存在互操作性问题,因为没有用于 协商群的机制,而且一些实现仅支持较小的群 (请参阅 [RFC7919] 的第 1 节)。¶
FFDHE 群可能包含小子群,从而使多种攻击成为可能 [SUBGROUPS]。当遇到 自定义的、非标准化的 FFDHE 群时,正在握手的客户端无法切实验证 服务器所选择的群是否存在此问题。此类握手也没有 回退到客户端可接受的其他密钥交换参数的机制。 自定义 FFDHE 群被广泛使用(这是基于 [WEAK-DH] 的建议所产生的结果)。 因此,客户端不能直接拒绝提供自定义群、因而可能 具有危险性的握手。¶
在实践中,一些运营者使用 1024 位 FFDHE 群,因为这是 能够确保广泛支持的最大尺寸(请参阅 [RFC7919] 的第 1 节)。 相较于目前 795 位的离散对数纪录, 该尺寸只留下很小的安全余量 [DLOG795]。¶
在上一点的基础上,只需少数几次规模很大的计算, 攻击者便能以较低成本解密相当大比例的 FFDHE 流量 (即使用特定标准化群加密的流量)[WEAK-DH]。¶
当机密并非完全临时时,FFDHE 会受到 Raccoon 侧信道攻击 [RACCOON]。(请注意, 除非采用恒定时间缓解措施,否则 FFDH 从根本上容易受到 Raccoon 攻击。)¶
影响 (D)TLS 1.2 中 RSA 密钥交换的问题如下:¶
从构造上看,RSA 密钥交换不提供前向保密性。¶
RSA 密钥交换可能容易受到 Bleichenbacher 攻击 [BLEI]。 经验表明,由于难以正确实现相关对策, 此攻击的变体每隔几年便会出现一次(请参阅 [ROBOT]、[NEW-BLEI] 和 [DROWN])。¶
除上述问题外,(D)TLS 1.2 中没有便于进行 密钥域分离的机制。因此,只要有一个端点容易受到 Bleichenbacher 攻击,所有共享同一 RSA 密钥的端点都会受到影响(请参阅 [XPROT] 和 [DROWN])。¶
本文档更新了 [RFC4162]、[RFC4279]、[RFC4346]、[RFC4785]、[RFC5246]、[RFC5288]、[RFC5289]、[RFC5469]、[RFC5487]、[RFC5932]、[RFC6209]、[RFC6347]、[RFC6367]、[RFC6655]、[RFC7905]、[RFC8422] 和 [RFC9325],通过弃用和 不建议使用受影响的密码套件来修复上述问题,具体列表见第 5.2、5.3、5.4 和 5.5 节。¶
BCP 195 [RFC8996] [RFC9325] 包含 IETF 针对 (D)TLS 协议用户 (尤其是 (D)TLS 1.2 用户)的最新建议,本文档 在若干方面更新了 [RFC9325]。第 6 节详细说明了具体差异。 BCP 文档中的所有其他建议仍然有效。¶
客户端不得提供且服务器不得 在 (D)TLS 1.2 连接中选择非临时 FFDH 密码套件。 (请注意,(D)TLS 1.0 和 TLS 1.1 已被 [RFC8996] 弃用,而 (D)TLS 1.3 不支持 FFDH [RFC9846] [RFC9147]。)这包括 第 5.1 节中 表 1所列的所有密码套件。¶
客户端不应提供且服务器不应在 (D)TLS 1.2 连接中选择非临时 ECDH 密码套件。 (此要求已包含在 [RFC9325] 中。 请注意,(D)TLS 1.0 和 TLS 1.1 已被 [RFC8996] 弃用,而 (D)TLS 1.3 不支持 ECDH [RFC9846] [RFC9147]。)这包括 第 5.2 节中 表 2所列的所有密码套件。¶
此外,为避免使用非临时 DH,客户端不应 使用且服务器不应接受具有固定 DH 参数的证书。这些证书类型为 rsa_fixed_dh、dss_fixed_dh、rsa_fixed_ecdh 和 ecdsa_fixed_ecdh, 如第 5.5 节所列。这些值仅适用于 1.2 及以下版本的 (D)TLS。¶
客户端不得提供且服务器不得 在 (D)TLS 1.2 连接中选择 FFDHE 密码套件。 这包括 第 5.3 节中 表 3所列的所有密码套件。 (请注意,(D)TLS 1.0 和 TLS 1.1 已被 [RFC8996] 弃用。)(D)TLS 1.3 中的 FFDHE 密码套件不存在 第 1 节所述的问题;请参阅 [RFC9846] 和 [RFC9147]。因此,客户端和服务器可以在 (D)TLS 1.3 连接中提供 FFDHE 密码套件。¶
客户端不得提供且服务器不得 在 (D)TLS 1.2 连接中选择 RSA 密码套件。(请注意,(D)TLS 1.0 和 TLS 1.1 已被 [RFC8996] 弃用,而 (D)TLS 1.3 不支持静态 RSA [RFC9846] [RFC9147]。)这包括 第 5.4 节中 表 4所 列的所有密码套件。请注意,这些密码套件此前在“TLS Cipher Suites”注册表 [TLS-REGISTRY]中被标记为不建议使用。¶
以下各小节提及了在“TLS Cipher Suites”和“TLS ClientCertificateType Identifiers”注册表 [TLS-REGISTRY]的“Recommended”列中使用“D”。有关“D”用法的信息,请参阅 [RFC9847]。¶
IANA 已将“Recommended”列设置为“D”,并将本文档添加为 “TLS Cipher Suites”注册表 [TLS-REGISTRY]中以下条目的参考文献:¶
| 密码套件 | 参考文献 |
|---|---|
| TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA | [RFC4346] |
| TLS_DH_DSS_WITH_DES_CBC_SHA | [RFC8996] |
| TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA | [RFC5246] |
| TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA | [RFC4346] |
| TLS_DH_RSA_WITH_DES_CBC_SHA | [RFC8996] |
| TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA | [RFC5246] |
| TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 | [RFC4346] [RFC6347] |
| TLS_DH_anon_WITH_RC4_128_MD5 | [RFC5246] [RFC6347] |
| TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA | [RFC4346] |
| TLS_DH_anon_WITH_DES_CBC_SHA | [RFC8996] |
| TLS_DH_anon_WITH_3DES_EDE_CBC_SHA | [RFC5246] |
| TLS_DH_DSS_WITH_AES_128_CBC_SHA | [RFC5246] |
| TLS_DH_RSA_WITH_AES_128_CBC_SHA | [RFC5246] |
| TLS_DH_anon_WITH_AES_128_CBC_SHA | [RFC5246] |
| TLS_DH_DSS_WITH_AES_256_CBC_SHA | [RFC5246] |
| TLS_DH_RSA_WITH_AES_256_CBC_SHA | [RFC5246] |
| TLS_DH_anon_WITH_AES_256_CBC_SHA | [RFC5246] |
| TLS_DH_DSS_WITH_AES_128_CBC_SHA256 | [RFC5246] |
| TLS_DH_RSA_WITH_AES_128_CBC_SHA256 | [RFC5246] |
| TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA | [RFC5932] |
| TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA | [RFC5932] |
| TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA | [RFC5932] |
| TLS_DH_DSS_WITH_AES_256_CBC_SHA256 | [RFC5246] |
| TLS_DH_RSA_WITH_AES_256_CBC_SHA256 | [RFC5246] |
| TLS_DH_anon_WITH_AES_128_CBC_SHA256 | [RFC5246] |
| TLS_DH_anon_WITH_AES_256_CBC_SHA256 | [RFC5246] |
| TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA | [RFC5932] |
| TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA | [RFC5932] |
| TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA | [RFC5932] |
| TLS_DH_DSS_WITH_SEED_CBC_SHA | [RFC4162] |
| TLS_DH_RSA_WITH_SEED_CBC_SHA | [RFC4162] |
| TLS_DH_anon_WITH_SEED_CBC_SHA | [RFC4162] |
| TLS_DH_RSA_WITH_AES_128_GCM_SHA256 | [RFC5288] |
| TLS_DH_RSA_WITH_AES_256_GCM_SHA384 | [RFC5288] |
| TLS_DH_DSS_WITH_AES_128_GCM_SHA256 | [RFC5288] |
| TLS_DH_DSS_WITH_AES_256_GCM_SHA384 | [RFC5288] |
| TLS_DH_anon_WITH_AES_128_GCM_SHA256 | [RFC5288] |
| TLS_DH_anon_WITH_AES_256_GCM_SHA384 | [RFC5288] |
| TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 | [RFC5932] |
| TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 | [RFC5932] |
| TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 | [RFC5932] |
| TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 | [RFC5932] |
| TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 | [RFC5932] |
| TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 | [RFC5932] |
| TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
| TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
| TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
[RFC9325] 规定实现 不应协商以下密码套件; 因此,它们在 IANA“TLS Cipher Suites” 注册表 [TLS-REGISTRY]的“Recommended”列中以“N”表示。根据本 文档,IANA 已将其“Recommended”列更新为“D”,以与 [RFC9847] 保持一致(并为每个条目添加了本文档作为 参考文献)。本文档还记录了不建议使用这些 密码套件的理由,并引用了证明相关风险的既有分析和攻击 (请参阅第 8 节)。¶
| 密码套件 | 参考文献 |
|---|---|
| TLS_ECDH_ECDSA_WITH_NULL_SHA | [RFC8422] |
| TLS_ECDH_ECDSA_WITH_RC4_128_SHA | [RFC8422] [RFC6347] |
| TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA | [RFC8422] |
| TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA | [RFC8422] |
| TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA | [RFC8422] |
| TLS_ECDH_RSA_WITH_NULL_SHA | [RFC8422] |
| TLS_ECDH_RSA_WITH_RC4_128_SHA | [RFC8422] [RFC6347] |
| TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA | [RFC8422] |
| TLS_ECDH_RSA_WITH_AES_128_CBC_SHA | [RFC8422] |
| TLS_ECDH_RSA_WITH_AES_256_CBC_SHA | [RFC8422] |
| TLS_ECDH_anon_WITH_NULL_SHA | [RFC8422] |
| TLS_ECDH_anon_WITH_RC4_128_SHA | [RFC8422] [RFC6347] |
| TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA | [RFC8422] |
| TLS_ECDH_anon_WITH_AES_128_CBC_SHA | [RFC8422] |
| TLS_ECDH_anon_WITH_AES_256_CBC_SHA | [RFC8422] |
| TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 | [RFC5289] |
| TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 | [RFC5289] |
| TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 | [RFC5289] |
| TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 | [RFC5289] |
| TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 | [RFC5289] |
| TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 | [RFC5289] |
| TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 | [RFC5289] |
| TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 | [RFC5289] |
| TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 | [RFC6367] |
| TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 | [RFC6367] |
| TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 | [RFC6367] |
| TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 | [RFC6367] |
| TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
| TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
IANA 已将“Recommended”列设置为“D”,并将本文档添加为 “TLS Cipher Suites”注册表 [TLS-REGISTRY]中以下条目的参考文献:¶
| 密码套件 | 参考文献 |
|---|---|
| TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA | [RFC4346] |
| TLS_DHE_DSS_WITH_DES_CBC_SHA | [RFC8996] |
| TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA | [RFC5246] |
| TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA | [RFC4346] |
| TLS_DHE_RSA_WITH_DES_CBC_SHA | [RFC8996] |
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA | [RFC5246] |
| TLS_DHE_PSK_WITH_NULL_SHA | [RFC4785] |
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA | [RFC5246] |
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA | [RFC5246] |
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA | [RFC5246] |
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA | [RFC5246] |
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 | [RFC5246] |
| TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA | [RFC5932] |
| TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA | [RFC5932] |
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 | [RFC5246] |
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 | [RFC5246] |
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 | [RFC5246] |
| TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA | [RFC5932] |
| TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA | [RFC5932] |
| TLS_DHE_PSK_WITH_RC4_128_SHA | [RFC4279] [RFC6347] |
| TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA | [RFC4279] |
| TLS_DHE_PSK_WITH_AES_128_CBC_SHA | [RFC4279] |
| TLS_DHE_PSK_WITH_AES_256_CBC_SHA | [RFC4279] |
| TLS_DHE_DSS_WITH_SEED_CBC_SHA | [RFC4162] |
| TLS_DHE_RSA_WITH_SEED_CBC_SHA | [RFC4162] |
| TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | [RFC5288] |
| TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 | [RFC5288] |
| TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 | [RFC5288] |
| TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 | [RFC5288] |
| TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 | [RFC5487] |
| TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 | [RFC5487] |
| TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 | [RFC5487] |
| TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 | [RFC5487] |
| TLS_DHE_PSK_WITH_NULL_SHA256 | [RFC5487] |
| TLS_DHE_PSK_WITH_NULL_SHA384 | [RFC5487] |
| TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 | [RFC5932] |
| TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 | [RFC5932] |
| TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 | [RFC5932] |
| TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 | [RFC5932] |
| TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
| TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
| TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
| TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 | [RFC6367] |
| TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 | [RFC6367] |
| TLS_DHE_RSA_WITH_AES_128_CCM | [RFC6655] |
| TLS_DHE_RSA_WITH_AES_256_CCM | [RFC6655] |
| TLS_DHE_RSA_WITH_AES_128_CCM_8 | [RFC6655] |
| TLS_DHE_RSA_WITH_AES_256_CCM_8 | [RFC6655] |
| TLS_DHE_PSK_WITH_AES_128_CCM | [RFC6655] |
| TLS_DHE_PSK_WITH_AES_256_CCM | [RFC6655] |
| TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | [RFC7905] |
| TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 | [RFC7905] |
| TLS_PSK_DHE_WITH_AES_128_CCM_8 | [RFC6655] |
| TLS_PSK_DHE_WITH_AES_256_CCM_8 | [RFC6655] |
IANA 已将“Recommended”列设置为“D”,并将本文档添加为 “TLS Cipher Suites”注册表 [TLS-REGISTRY]中以下条目的参考文献:¶
| 密码套件 | 参考文献 |
|---|---|
| TLS_RSA_WITH_NULL_MD5 | [RFC5246] |
| TLS_RSA_WITH_NULL_SHA | [RFC5246] |
| TLS_RSA_EXPORT_WITH_RC4_40_MD5 | [RFC4346] [RFC6347] |
| TLS_RSA_WITH_RC4_128_MD5 | [RFC5246] [RFC6347] |
| TLS_RSA_WITH_RC4_128_SHA | [RFC5246] [RFC6347] |
| TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 | [RFC4346] |
| TLS_RSA_WITH_IDEA_CBC_SHA | [RFC8996] |
| TLS_RSA_EXPORT_WITH_DES40_CBC_SHA | [RFC4346] |
| TLS_RSA_WITH_DES_CBC_SHA | [RFC8996] |
| TLS_RSA_WITH_3DES_EDE_CBC_SHA | [RFC5246] |
| TLS_RSA_PSK_WITH_NULL_SHA | [RFC4785] |
| TLS_RSA_WITH_AES_128_CBC_SHA | [RFC5246] |
| TLS_RSA_WITH_AES_256_CBC_SHA | [RFC5246] |
| TLS_RSA_WITH_NULL_SHA256 | [RFC5246] |
| TLS_RSA_WITH_AES_128_CBC_SHA256 | [RFC5246] |
| TLS_RSA_WITH_AES_256_CBC_SHA256 | [RFC5246] |
| TLS_RSA_WITH_CAMELLIA_128_CBC_SHA | [RFC5932] |
| TLS_RSA_WITH_CAMELLIA_256_CBC_SHA | [RFC5932] |
| TLS_RSA_PSK_WITH_RC4_128_SHA | [RFC4279] [RFC6347] |
| TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA | [RFC4279] |
| TLS_RSA_PSK_WITH_AES_128_CBC_SHA | [RFC4279] |
| TLS_RSA_PSK_WITH_AES_256_CBC_SHA | [RFC4279] |
| TLS_RSA_WITH_SEED_CBC_SHA | [RFC4162] |
| TLS_RSA_WITH_AES_128_GCM_SHA256 | [RFC5288] |
| TLS_RSA_WITH_AES_256_GCM_SHA384 | [RFC5288] |
| TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 | [RFC5487] |
| TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 | [RFC5487] |
| TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 | [RFC5487] |
| TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 | [RFC5487] |
| TLS_RSA_PSK_WITH_NULL_SHA256 | [RFC5487] |
| TLS_RSA_PSK_WITH_NULL_SHA384 | [RFC5487] |
| TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 | [RFC5932] |
| TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 | [RFC5932] |
| TLS_RSA_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_RSA_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_RSA_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_RSA_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 | [RFC6209] |
| TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 | [RFC6209] |
| TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 | [RFC6209] |
| TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 | [RFC6209] |
| TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
| TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 | [RFC6367] |
| TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 | [RFC6367] |
| TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 | [RFC6367] |
| TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 | [RFC6367] |
| TLS_RSA_WITH_AES_128_CCM | [RFC6655] |
| TLS_RSA_WITH_AES_256_CCM | [RFC6655] |
| TLS_RSA_WITH_AES_128_CCM_8 | [RFC6655] |
| TLS_RSA_WITH_AES_256_CCM_8 | [RFC6655] |
| TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 | [RFC7905] |
IANA 已将“Recommended”列设置为“D”,并将本文档添加为 “TLS ClientCertificateType Identifiers”注册表 [TLS-REGISTRY]中以下条目的参考文献:¶
| 证书类型 | 参考文献 |
|---|---|
| rsa_fixed_dh (3) | [RFC5246] [RFC9847] |
| dss_fixed_dh (4) | [RFC5246] [RFC9847] |
| rsa_fixed_ecdh (65) | [RFC8422] [RFC9847] |
| ecdsa_fixed_ecdh (66) | [RFC8422] [RFC9847] |
本文档针对 (D)TLS 1.2 的使用更新了 [RFC9325], 表 6 列出了具体变更。所有这些变更均针对 [RFC 9325 第 4.1 节]。¶
| RFC 9325 | RFC 10015 | |
|---|---|---|
| 非临时 FFDH | 不应 | 不得 |
| 非临时 ECDH | 不应 | 无变更 |
| 固定 DH 证书类型 | 未规定 | 不应 |
| 临时 FFDH | 不应 | 不得 |
| 静态 RSA | 不应 | 不得 |
“TLS Cipher Suites”和“TLS ClientCertificateType Identifiers”注册表均 位于“Transport Layer Security (TLS) Parameters”注册表组 [TLS-REGISTRY]中。IANA 已按照第 5.1、5.2、5.3 和 5.4 节所述,更新了“TLS Cipher Suites”注册表 [TLS-REGISTRY]中的条目。IANA 还按照第 5.5 节所述,更新了“TLS ClientCertificateType Identifiers”注册表中的条目。¶
对于第 5.1、5.2、5.3、5.4 和 5.5 节列出的每个条目, IANA 已将“Recommended”列设置为“D”,并更新了条目的“Reference”列,使其引用本文档。 有关“Recommended”列中“D”的用法,请参阅 [RFC9847]。¶
由于 Raccoon 攻击 [RACCOON],禁止使用非临时有限域 DH 密码套件 (TLS_DH_*), 也禁止为有限域 DH 密码套件复用临时密钥。这两种做法 已被视为不良实践,因为它们不提供前向保密性。然而, Raccoon 攻击揭示了处理 TLS 预主机密时的计时侧信道可能被 利用,以泄露加密的预主机密。¶
对于非临时 ECDH 密码套件 (TLS_ECDH_*),放弃前向保密性 不仅会在密钥泄露时允许追溯解密, 还可能促成一大类攻击:攻击者利用密钥复用 重复查询密码学机密。¶
此类攻击包括但不一定限于以下 示例:¶
此类攻击通常依赖于具体实现,上述示例亦是如此。 然而,这些示例表明,在实践中构建一个复用密钥且 能避开此类攻击的系统非常困难。相比之下,避免 密钥复用不仅可以防止密钥泄露时发生解密, 还可以从根本上排除此类攻击。因此,本文档 不建议复用 ECDH 公钥。¶
对于 (D)TLS 1.2 中的临时有限域 DH(TLS_DHE_* 和 TLS_PSK_DHE_*),如 上文所述,客户端无法在确保只协商其可接受的安全参数的同时,切实支持这些密码套件。 在 (D)TLS 1.2 中,由服务器选择 DH 群,而自定义群十分常见。因此,一旦客户端在 握手中包含这些密码套件,而服务器提供了自定义群,客户端就无法在确保安全的同时 完成握手。验证群结构对客户端而言代价高得难以承受。使用已知安全群的 安全列表也不切实际,因为服务器运营者过去曾被建议生成 自己的自定义群。此外,握手没有回退到客户端和服务器均可接受的其他 参数的机制。¶
本文档包含 Carrie Bartle 的许多重要贡献,她撰写了大部分正文,并多次 在 IETF TLS 工作组中作了介绍。¶
本文档的灵感源于 TLS 工作组邮件列表上的讨论,以及 Raccoon 攻击 [RACCOON] 发布后 Filippo Valsorda 提出的一项建议。 感谢 Christopher A. Wood 编写本文档的初始草案。 还要感谢 Thomas Fossati、Sean Turner、Joe Salowey、Yaron Sheffer、Christian Buchgraber、John Preuß Mattsson 和 Manuel Pégourié-Gonnard 提供的意见和建议。¶