Internet-Draft Deprecating RSA and FFDH(E) June 2022
Bartle & Aviram Expires 16 December 2022 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-ietf-tls-deprecate-obsolete-kex-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
C. Bartle
Apple, Inc.
N. Aviram

Deprecating Obsolete Key Exchange Methods in TLS

Abstract

This document makes several prescriptions regarding the following key exchange methods in TLS, most of which have been superseded by better options:

  1. This document deprecates the use of RSA key exchange in TLS.
  2. It limits the use of Diffie Hellman key exchange over a finite field to avoid known vulnerabilities and improper security properties.
  3. It discourages the use of static elliptic curve Diffie Hellman cipher suites.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 16 December 2022.

Table of Contents

1. Introduction

TLS supports a variety of key exchange algorithms, including RSA, Diffie Hellman over a finite field, and elliptic curve Diffie Hellman (ECDH).

Diffie Hellman 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. However, as demonstrated by the [Raccoon] attack 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 elliptic curve DH, 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 are as follows:

  1. FFDHE suffers from interoperability problems because there is no mechanism for negotiating the group size, and some implementations only support small group sizes (see [RFC7919], Section 1).
  2. 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 vs. the current discrete log record, which stands at 795 bits [DLOG795].
  3. 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].
  4. When secrets are not fully ephemeral, FFDHE suffers from the [Raccoon] side channel attack. (Note that FFDH is inherently vulnerable to the Raccoon attack unless constant-time mitigations are employed.)
  5. FFDHE groups may have small subgroups, which enables several attacks [subgroups].

The problems affecting RSA key exchange 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], [DROWN]).
  3. In addition to the above point, there is no convenient mechanism in TLS 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], [DROWN]).

Given these problems, this document updates [RFC4346], [RFC5246], [RFC4162], [RFC6347], [RFC5932], [RFC5288], [RFC6209], [RFC6367], [RFC8422], [RFC5289], and [RFC5469] to remediate the above problems.

1.1. Requirements

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.

2. Non-Ephemeral Diffie Hellman

Clients MUST NOT offer non-ephemeral FFDH cipher suites in TLS 1.2 connections. (Note that TLS 1.0 and 1.1 are deprecated by [RFC8996] and TLS 1.3 does not support FFDH [RFC8446].) This includes all cipher suites listed in the table in Appendix A.

Clients SHOULD NOT offer non-ephemeral ECDH cipher suites in TLS 1.2 connections. (Note that TLS 1.0 and 1.1 are deprecated by [RFC8996] and TLS 1.3 does not support ECDH [RFC8446].) This includes all cipher suites listed in the table in Appendix B.

3. Ephemeral Finite Field Diffie Hellman

Clients and servers MAY offer fully ephemeral FFDHE cipher suites in TLS 1.2 connections under the following conditions:

  1. Clients and servers MUST NOT reuse ephemeral DHE public keys across TLS connections for all existing (and future) TLS versions. Doing so invalidates forward secrecy properties of these connections. For DHE, such reuse may also lead to vulnerabilities such as those used in the [Raccoon] attack. See Section 6 for related discussion.
  2. The group is one of the following well-known groups described in [RFC7919]: ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192.

(Note that TLS 1.0 and 1.1 are deprecated by [RFC8996]. TLS 1.3 satisfies the second point above [RFC8446] and is not vulnerable to the [Raccoon] Attack.)

We note that, previously, supporting the broadest range of clients would have required supporting either RSA key exchange or 1024-bit FFDHE. This is no longer the case, and it is possible to support most clients released since circa 2015 using 2048-bit FFDHE or more modern key exchange methods, and without RSA key exchange [server_side_tls].

All the cipher suites that do not meet the above requirements are listed in the table in Appendix C.

4. RSA

Clients and servers MUST NOT offer RSA cipher suites in TLS 1.2 connections. (Note that TLS 1.0 and 1.1 are deprecated by [RFC8996], and TLS 1.3 does not support static RSA [RFC8446].) This includes all cipher suites listed in the table in Appendix D. Note that these cipher suites are already marked as not recommended in the "TLS Cipher Suites" registry.

5. IANA Considerations

This document makes no requests to IANA. Note that all cipher suites listed in Section 4 and in Section 2 are already marked as not recommended in the "TLS Cipher Suites" registry.

6. Security Considerations

Non-ephemeral finite field DH cipher suites (TLS_DH_*), as well as ephemeral key reuse for finite field DH cipher suites, are prohibited due to the [Raccoon] attack. Both are already considered bad practice since they do not provide forward secrecy. However, Raccoon revealed that timing side channels in processing TLS premaster secrets may be exploited to reveal the encrypted premaster secret.

As for non-ephemeral elliptic curve DH cipher suites, forgoing forward secrecy not only allows retroactive decryption in the event of key compromise but may also enable a broad category of attacks where the attacker exploits key reuse to repeatedly query a cryptographic secret.

This category includes, but is not necessarily limited to, the following examples:

  1. Invalid curve attacks, where the attacker exploits key reuse to repeatedly query and eventually learn the key itself. These attacks have been shown to be practical against real-world TLS implementations [ICA].
  2. Side channel attacks, where the attacker exploits key reuse and an additional side channel to learn a cryptographic secret. As one example of such attacks, refer to [MAY4].
  3. Fault attacks, where the attacker exploits key reuse and incorrect calculations to learn a cryptographic secret. As one example of such attacks, see [PARIS256].

Such attacks are often implementation-dependent, including the above examples. However, these examples demonstrate that building a system that reuses keys and avoids this category of attacks is difficult in practice. In contrast, avoiding key reuse not only prevents decryption in the event of key compromise, but also precludes this category of attacks altogether. Therefore, this document discourages the reuse of elliptic curve DH public keys.

7. Acknowledgments

This document was inspired by discussions on the TLS WG mailing list and a suggestion by Filippo Valsorda following the release of the [Raccoon] attack. Thanks to Christopher A. Wood for writing up the initial draft of this document.

8. References

8.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC4162]
Lee, H.J., Yoon, J.H., and J.I. Lee, "Addition of SEED Cipher Suites to Transport Layer Security (TLS)", RFC 4162, DOI 10.17487/RFC4162, , <https://www.rfc-editor.org/info/rfc4162>.
[RFC4279]
Eronen, P., Ed. and H. Tschofenig, Ed., "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)", RFC 4279, DOI 10.17487/RFC4279, , <https://www.rfc-editor.org/info/rfc4279>.
[RFC4346]
Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.1", RFC 4346, DOI 10.17487/RFC4346, , <https://www.rfc-editor.org/info/rfc4346>.
[RFC4785]
Blumenthal, U. and P. Goel, "Pre-Shared Key (PSK) Ciphersuites with NULL Encryption for Transport Layer Security (TLS)", RFC 4785, DOI 10.17487/RFC4785, , <https://www.rfc-editor.org/info/rfc4785>.
[RFC5246]
Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, , <https://www.rfc-editor.org/info/rfc5246>.
[RFC5288]
Salowey, J., Choudhury, A., and D. McGrew, "AES Galois Counter Mode (GCM) Cipher Suites for TLS", RFC 5288, DOI 10.17487/RFC5288, , <https://www.rfc-editor.org/info/rfc5288>.
[RFC5289]
Rescorla, E., "TLS Elliptic Curve Cipher Suites with SHA-256/384 and AES Galois Counter Mode (GCM)", RFC 5289, DOI 10.17487/RFC5289, , <https://www.rfc-editor.org/info/rfc5289>.
[RFC5469]
Eronen, P., Ed., "DES and IDEA Cipher Suites for Transport Layer Security (TLS)", RFC 5469, DOI 10.17487/RFC5469, , <https://www.rfc-editor.org/info/rfc5469>.
[RFC5487]
Badra, M., "Pre-Shared Key Cipher Suites for TLS with SHA-256/384 and AES Galois Counter Mode", RFC 5487, DOI 10.17487/RFC5487, , <https://www.rfc-editor.org/info/rfc5487>.
[RFC5932]
Kato, A., Kanda, M., and S. Kanno, "Camellia Cipher Suites for TLS", RFC 5932, DOI 10.17487/RFC5932, , <https://www.rfc-editor.org/info/rfc5932>.
[RFC6209]
Kim, W., Lee, J., Park, J., and D. Kwon, "Addition of the ARIA Cipher Suites to Transport Layer Security (TLS)", RFC 6209, DOI 10.17487/RFC6209, , <https://www.rfc-editor.org/info/rfc6209>.
[RFC6347]
Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, , <https://www.rfc-editor.org/info/rfc6347>.
[RFC6367]
Kanno, S. and M. Kanda, "Addition of the Camellia Cipher Suites to Transport Layer Security (TLS)", RFC 6367, DOI 10.17487/RFC6367, , <https://www.rfc-editor.org/info/rfc6367>.
[RFC6655]
McGrew, D. and D. Bailey, "AES-CCM Cipher Suites for Transport Layer Security (TLS)", RFC 6655, DOI 10.17487/RFC6655, , <https://www.rfc-editor.org/info/rfc6655>.
[RFC7905]
Langley, A., Chang, W., Mavrogiannopoulos, N., Strombergson, J., and S. Josefsson, "ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS)", RFC 7905, DOI 10.17487/RFC7905, , <https://www.rfc-editor.org/info/rfc7905>.
[RFC7919]
Gillmor, D., "Negotiated Finite Field Diffie-Hellman Ephemeral Parameters for Transport Layer Security (TLS)", RFC 7919, DOI 10.17487/RFC7919, , <https://www.rfc-editor.org/info/rfc7919>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8422]
Nir, Y., Josefsson, S., and M. Pegourie-Gonnard, "Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS) Versions 1.2 and Earlier", RFC 8422, DOI 10.17487/RFC8422, , <https://www.rfc-editor.org/info/rfc8422>.
[RFC8446]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, , <https://www.rfc-editor.org/info/rfc8446>.
[RFC8996]
Moriarty, K. and S. Farrell, "Deprecating TLS 1.0 and TLS 1.1", BCP 195, RFC 8996, DOI 10.17487/RFC8996, , <https://www.rfc-editor.org/info/rfc8996>.

8.2. Informative References

[BLEI]
Bleichenbacher, D., "Chosen Ciphertext Attacks against Protocols Based on RSA Encryption Standard PKCS #1", Advances in Cryptology -- CRYPTO'98, LNCS vol. 1462, pages: 1-12 , .
[DLOG795]
Boudot, F., Gaudry, P., Guillevic, A., Heninger, N., Thomé, E., and P. Zimmermann, "Comparing the difficulty of factorization and discrete logarithm: a 240-digit experiment", , <https://eprint.iacr.org/2020/697>.
[DROWN]
Aviram, N., Schinzel, S., Somorovsky, J., Heninger, N., Dankel, M., Steube, J., Valenta, L., Adrian, D., Halderman, J. A., Dukhovni, V., Käsper, E., Cohney, S., Engels, S., Paar, C., and Y. Shavitt, "DROWN: Breaking TLS using SSLv2", , <https://drownattack.com/drown-attack-paper.pdf>.
[ICA]
Jager, T., Schwenk, J., and J. Somorovsky, "Practical invalid curve attacks on TLS-ECDH", , <https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.704.7932&rep=rep1&type=pdf>.
[MAY4]
Genkin, D., Valenta, L., and Y. Yarom, "May the fourth be with you: A microarchitectural side channel attack on several real-world applications of curve25519", n.d., <https://dl.acm.org/doi/pdf/10.1145/3133956.3134029>.
[NEW-BLEI]
Meyer, C., Somorovsky, J., Weiss, E., Schwenk, J., Schinzel, S., and E. Tews, "Revisiting SSL/TLS Implementations: New Bleichenbacher Side Channels and Attacks", , <https://www.usenix.org/system/files/conference/usenixsecurity14/sec14-paper-meyer.pdf>.
[PARIS256]
Devlin, S. and F. Valsorda, "The PARIS256 Attack", n.d., <https://i.blackhat.com/us-18/Wed-August-8/us-18-Valsorda-Squeezing-A-Key-Through-A-Carry-Bit-wp.pdf>.
[Raccoon]
Merget, R., Brinkmann, M., Aviram, N., Somorovsky, J., Mittmann, J., and J. Schwenk, "Raccoon Attack: Finding and Exploiting Most-Significant-Bit-Oracles in TLS-DH(E)", , <https://raccoon-attack.com/RacoonAttack.pdf>.
[RFC4492]
Blake-Wilson, S., Bolyard, N., Gupta, V., Hawk, C., and B. Moeller, "Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)", RFC 4492, DOI 10.17487/RFC4492, , <https://www.rfc-editor.org/info/rfc4492>.
[ROBOT]
Boeck, H., Somorovsky, J., and C. Young, "Return Of Bleichenbacher's Oracle Threat (ROBOT)", 27th USENIX Security Symposium , .
[SC-tls-des-idea-ciphers-to-historic]
"Moving single-DES and IDEA TLS ciphersuites to Historic", , <https://datatracker.ietf.org/doc/status-change-tls-des-idea-ciphers-to-historic/>.
[server_side_tls]
King, A., "Server Side TLS", , <https://wiki.mozilla.org/Security/Server_Side_TLS>.
[subgroups]
Valenta, L., Adrian, D., Sanso, A., Cohney, S., Fried, J., Hastings, M., Halderman, J. A., and N. Heninger, "Measuring small subgroup attacks against Diffie-Hellman", , <https://eprint.iacr.org/2016/995/20161017:193515>.
[weak-dh]
Adrian, D., Bhargavan, K., Durumeric, Z., Gaudry, P., Green, M., Halderman, J. A., Heninger, N., Springall, D., Thomé, E., Valenta, L., VanderSloot, B., Wustrow, E., Zanella-Béguelin, S., and P. Zimmermann, "Weak Diffie-Hellman and the Logjam Attack", , <https://weakdh.org/>.
[XPROT]
Jager, T., Schwenk, J., and J. Somorovsky, "On the Security of TLS 1.3 and QUIC Against Weaknesses in PKCS#1 v1.5 Encryption", Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security , .

Appendix A. DH Cipher Suites Deprecated by This Document

Table 1
Ciphersuite Reference
TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_DH_DSS_WITH_DES_CBC_SHA [RFC5469]
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 [RFC5469]
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 [RFC5469]
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]

Appendix B. ECDH Cipher Suites Whose Use Is Discouraged by This Document

Table 2
Ciphersuite Reference
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]

Appendix C. DHE Cipher Suites Refered to by This Document

Table 3
Ciphersuite Reference
TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_DHE_DSS_WITH_DES_CBC_SHA [RFC5469][SC-tls-des-idea-ciphers-to-historic]
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 [RFC5469][SC-tls-des-idea-ciphers-to-historic]
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]

Appendix D. RSA Cipher Suites Deprecated by This Document

Table 4
Ciphersuite Reference
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 [RFC5469][SC-tls-des-idea-ciphers-to-historic]
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_RSA_WITH_DES_CBC_SHA [RFC5469][SC-tls-des-idea-ciphers-to-historic]
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]

Authors' Addresses

Carrick Bartle
Apple, Inc.
Nimrod Aviram