RFC 10015:弃用 TLS 1.2 和 DTLS 1.2 中已过时的密钥交换方法
RFC 10015: Deprecating Obsolete Key Exchange Methods in TLS 1.2 and DTLS 1.2

原始链接: https://www.rfc-editor.org/rfc/rfc10015.html

本文旨在阐述 (D)TLS 1.2 密钥交换算法(特别是 RSA 和有限域 Diffie-Hellman,即 FFDHE)中存在的重大安全漏洞。 主要安全顾虑包括: * **缺乏前向安全性:** 非临时密钥交换及 RSA 均不具备前向安全性。 * **侧信道攻击:** 在 DH 和 ECDH 实现中重复使用公钥,容易导致“Raccoon”攻击和无效曲线攻击等计时攻击。由于实施必要的防御措施极其复杂,此类漏洞依然普遍存在。 * **FFDHE 问题:** FFDHE 面临互操作性挑战、缺乏安全组协商机制,且因使用弱群或自定义群,容易受到小子群攻击和离散对数攻击。 * **RSA 漏洞:** RSA 密钥交换天生易受 Bleichenbacher 类攻击。由于安全对策难以实现且 RSA 密钥缺乏域隔离,此类攻击反复以多种形式(如 ROBOT、DROWN)出现。 为降低上述风险,本文正式弃用并建议不再使用受影响的密码套件。本文更新了多项既往 RFC,并为 (D)TLS 1.2 提供了符合 BCP 195/RFC 9325 现行最佳实践的指导建议。

RFC 10015 通过废除过时的密钥交换方法,旨在加强 TLS 1.2 和 DTLS 1.2 的安全性。随后的 Hacker News 讨论凸显了在维护安全性与支持旧有系统之间的矛盾。 一些用户质疑为什么管理员不直接升级到 TLS 1.3。然而,该 RFC 的支持者认为,许多企业和政府依赖于旧有基础设施,由于成本、技术债务或硬件限制,这些设施无法轻易更新。对于这些组织而言,维护一个安全的 TLS 1.2 版本是实际的必要,而非可选。 批评废除措施的人士认为,强制执行这些标准可能会无意中“中断”现有连接,迫使管理员进行复杂的配置更改。相反,其他人则坚持认为,此类更新对于防止降级攻击至关重要,因为攻击者会利用陈旧且不安全的加密套件来削弱连接安全性。归根结底,这场讨论反映了一场更广泛的辩论:如何在互联网安全协议的快速发展与支持老旧且普及的技术这一现实之间取得平衡。
相关文章

原文

(D)TLS 1.2 supports a variety of key exchange algorithms, including RSA, Diffie-Hellman (DH) over a finite field, and Elliptic Curve Diffie-Hellman (ECDH).

DH key exchange, over any group, comes in ephemeral and non-ephemeral varieties. Non-ephemeral DH algorithms use static DH public keys included in the authenticating peer's certificate; see [RFC4492] for discussion. In contrast, ephemeral DH algorithms use ephemeral DH public keys sent in the handshake and authenticated by the peer's certificate. Ephemeral and non-ephemeral finite field DH algorithms are called DHE and DH (or FFDHE and FFDH), respectively, and ephemeral and non-ephemeral elliptic curve DH algorithms are called ECDHE and ECDH, respectively [RFC4492].

In general, non-ephemeral cipher suites are not recommended due to their lack of forward secrecy. Moreover, as demonstrated by the Raccoon attack [RACCOON] on finite field DH, public key reuse (either via non-ephemeral cipher suites or reused keys with ephemeral cipher suites) can lead to timing side channels that may leak connection secrets. For ECDH, invalid curve attacks similarly exploit secret reuse in order to break security [ICA], further demonstrating the risk of reusing public keys. While both side channels can be avoided in implementations, experience shows that in practice, implementations may fail to thwart such attacks due to the complexity and number of the required mitigations.

Additionally, RSA key exchange suffers from security problems that are independent of implementation choices as well as problems that stem purely from the difficulty of implementing security countermeasures correctly.

At a rough glance, the problems affecting FFDHE in (D)TLS 1.2 are as follows:

  1. FFDHE suffers from interoperability problems because there is no mechanism for negotiating the group, and some implementations only support small group sizes (see [RFC7919], Section 1).

  2. FFDHE groups may have small subgroups, which enables several attacks [SUBGROUPS]. When presented with a custom, non-standardized FFDHE group, a handshaking client cannot practically verify that the group chosen by the server does not suffer from this problem. There is also no mechanism for such handshakes to fall back to other key exchange parameters that are acceptable to the client. Custom FFDHE groups are widespread (as a result of advice based on [WEAK-DH]). Therefore, clients cannot simply reject handshakes that present custom, and thus potentially dangerous, groups.

  3. In practice, some operators use 1024-bit FFDHE groups since this is the maximum size that ensures wide support (see [RFC7919], Section 1). This size leaves only a small security margin versus the current discrete log record, which stands at 795 bits [DLOG795].

  4. Expanding on the previous point, just a handful of very large computations allow an attacker to cheaply decrypt a relatively large fraction of FFDHE traffic (namely, traffic encrypted using particular standardized groups) [WEAK-DH].

  5. When secrets are not fully ephemeral, FFDHE suffers from the Raccoon side-channel attack [RACCOON]. (Note that FFDH is inherently vulnerable to the Raccoon attack unless constant-time mitigations are employed.)

The problems affecting RSA key exchange in (D)TLS 1.2 are as follows:

  1. RSA key exchange offers no forward secrecy, by construction.

  2. RSA key exchange may be vulnerable to Bleichenbacher's attack [BLEI]. Experience shows that variants of this attack arise every few years because implementing the relevant countermeasure correctly is difficult (see [ROBOT], [NEW-BLEI], and [DROWN]).

  3. In addition to the above point, there is no convenient mechanism in (D)TLS 1.2 for the domain separation of keys. Therefore, a single endpoint that is vulnerable to Bleichenbacher's attack would affect all endpoints sharing the same RSA key (see [XPROT] and [DROWN]).

This document updates [RFC4162], [RFC4279], [RFC4346], [RFC4785], [RFC5246], [RFC5288], [RFC5289], [RFC5469], [RFC5487], [RFC5932], [RFC6209], [RFC6347], [RFC6367], [RFC6655], [RFC7905], [RFC8422], and [RFC9325] to remediate the above problems, by deprecating and discouraging the use of affected cipher suites, as listed in Sections 5.2, 5.3, 5.4, and 5.5.

BCP 195 [RFC8996] [RFC9325] contains the latest IETF recommendations for users of the (D)TLS protocol (and specifically, (D)TLS 1.2), and this document updates [RFC9325] in several points. Section 6 details the exact differences. All other recommendations in the BCP documents remain valid.

1.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

联系我们 contact @ memedata.com