diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 | 
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 | 
| commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
| tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc7525.txt | |
| parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) | |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc7525.txt')
| -rw-r--r-- | doc/rfc/rfc7525.txt | 1515 | 
1 files changed, 1515 insertions, 0 deletions
diff --git a/doc/rfc/rfc7525.txt b/doc/rfc/rfc7525.txt new file mode 100644 index 0000000..665a572 --- /dev/null +++ b/doc/rfc/rfc7525.txt @@ -0,0 +1,1515 @@ + + + + + + +Internet Engineering Task Force (IETF)                        Y. Sheffer +Request for Comments: 7525                                        Intuit +BCP: 195                                                         R. Holz +Category: Best Current Practice                                    NICTA +ISSN: 2070-1721                                           P. Saint-Andre +                                                                    &yet +                                                                May 2015 + + +    Recommendations for Secure Use of Transport Layer Security (TLS) +              and Datagram Transport Layer Security (DTLS) + +Abstract + +   Transport Layer Security (TLS) and Datagram Transport Layer Security +   (DTLS) are widely used to protect data exchanged over application +   protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP.  Over the +   last few years, several serious attacks on TLS have emerged, +   including attacks on its most commonly used cipher suites and their +   modes of operation.  This document provides recommendations for +   improving the security of deployed services that use TLS and DTLS. +   The recommendations are applicable to the majority of use cases. + +Status of This Memo + +   This memo documents an Internet Best Current Practice. + +   This document is a product of the Internet Engineering Task Force +   (IETF).  It represents the consensus of the IETF community.  It has +   received public review and has been approved for publication by the +   Internet Engineering Steering Group (IESG).  Further information on +   BCPs is available in Section 2 of RFC 5741. + +   Information about the current status of this document, any errata, +   and how to provide feedback on it may be obtained at +   http://www.rfc-editor.org/info/rfc7525. + + + + + + + + + + + + + + + +Sheffer, et al.           Best Current Practice                 [Page 1] + +RFC 7525                   TLS Recommendations                  May 2015 + + +Copyright Notice + +   Copyright (c) 2015 IETF Trust and the persons identified as the +   document authors.  All rights reserved. + +   This document is subject to BCP 78 and the IETF Trust's Legal +   Provisions Relating to IETF Documents +   (http://trustee.ietf.org/license-info) in effect on the date of +   publication of this document.  Please review these documents +   carefully, as they describe your rights and restrictions with respect +   to this document.  Code Components extracted from this document must +   include Simplified BSD License text as described in Section 4.e of +   the Trust Legal Provisions and are provided without warranty as +   described in the Simplified BSD License. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sheffer, et al.           Best Current Practice                 [Page 2] + +RFC 7525                   TLS Recommendations                  May 2015 + + +Table of Contents + +   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4 +   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   5 +   3.  General Recommendations . . . . . . . . . . . . . . . . . . .   5 +     3.1.  Protocol Versions . . . . . . . . . . . . . . . . . . . .   5 +       3.1.1.  SSL/TLS Protocol Versions . . . . . . . . . . . . . .   5 +       3.1.2.  DTLS Protocol Versions  . . . . . . . . . . . . . . .   6 +       3.1.3.  Fallback to Lower Versions  . . . . . . . . . . . . .   7 +     3.2.  Strict TLS  . . . . . . . . . . . . . . . . . . . . . . .   7 +     3.3.  Compression . . . . . . . . . . . . . . . . . . . . . . .   8 +     3.4.  TLS Session Resumption  . . . . . . . . . . . . . . . . .   8 +     3.5.  TLS Renegotiation . . . . . . . . . . . . . . . . . . . .   9 +     3.6.  Server Name Indication  . . . . . . . . . . . . . . . . .   9 +   4.  Recommendations: Cipher Suites  . . . . . . . . . . . . . . .   9 +     4.1.  General Guidelines  . . . . . . . . . . . . . . . . . . .   9 +     4.2.  Recommended Cipher Suites . . . . . . . . . . . . . . . .  11 +       4.2.1.  Implementation Details  . . . . . . . . . . . . . . .  12 +     4.3.  Public Key Length . . . . . . . . . . . . . . . . . . . .  12 +     4.4.  Modular Exponential vs. Elliptic Curve DH Cipher Suites .  13 +     4.5.  Truncated HMAC  . . . . . . . . . . . . . . . . . . . . .  14 +   5.  Applicability Statement . . . . . . . . . . . . . . . . . . .  15 +     5.1.  Security Services . . . . . . . . . . . . . . . . . . . .  15 +     5.2.  Opportunistic Security  . . . . . . . . . . . . . . . . .  16 +   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  17 +     6.1.  Host Name Validation  . . . . . . . . . . . . . . . . . .  17 +     6.2.  AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . .  18 +     6.3.  Forward Secrecy . . . . . . . . . . . . . . . . . . . . .  18 +     6.4.  Diffie-Hellman Exponent Reuse . . . . . . . . . . . . . .  19 +     6.5.  Certificate Revocation  . . . . . . . . . . . . . . . . .  19 +   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  21 +     7.1.  Normative References  . . . . . . . . . . . . . . . . . .  21 +     7.2.  Informative References  . . . . . . . . . . . . . . . . .  22 +   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  26 +   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  27 + + + + + + + + + + + + + + + + +Sheffer, et al.           Best Current Practice                 [Page 3] + +RFC 7525                   TLS Recommendations                  May 2015 + + +1.  Introduction + +   Transport Layer Security (TLS) [RFC5246] and Datagram Transport +   Security Layer (DTLS) [RFC6347] are widely used to protect data +   exchanged over application protocols such as HTTP, SMTP, IMAP, POP, +   SIP, and XMPP.  Over the last few years, several serious attacks on +   TLS have emerged, including attacks on its most commonly used cipher +   suites and their modes of operation.  For instance, both the AES-CBC +   [RFC3602] and RC4 [RFC7465] encryption algorithms, which together +   have been the most widely deployed ciphers, have been attacked in the +   context of TLS.  A companion document [RFC7457] provides detailed +   information about these attacks and will help the reader understand +   the rationale behind the recommendations provided here. + +   Because of these attacks, those who implement and deploy TLS and DTLS +   need updated guidance on how TLS can be used securely.  This document +   provides guidance for deployed services as well as for software +   implementations, assuming the implementer expects his or her code to +   be deployed in environments defined in Section 5.  In fact, this +   document calls for the deployment of algorithms that are widely +   implemented but not yet widely deployed.  Concerning deployment, this +   document targets a wide audience -- namely, all deployers who wish to +   add authentication (be it one-way only or mutual), confidentiality, +   and data integrity protection to their communications. + +   The recommendations herein take into consideration the security of +   various mechanisms, their technical maturity and interoperability, +   and their prevalence in implementations at the time of writing. +   Unless it is explicitly called out that a recommendation applies to +   TLS alone or to DTLS alone, each recommendation applies to both TLS +   and DTLS. + +   It is expected that the TLS 1.3 specification will resolve many of +   the vulnerabilities listed in this document.  A system that deploys +   TLS 1.3 should have fewer vulnerabilities than TLS 1.2 or below. +   This document is likely to be updated after TLS 1.3 gets noticeable +   deployment. + +   These are minimum recommendations for the use of TLS in the vast +   majority of implementation and deployment scenarios, with the +   exception of unauthenticated TLS (see Section 5).  Other +   specifications that reference this document can have stricter +   requirements related to one or more aspects of the protocol, based on +   their particular circumstances (e.g., for use with a particular +   application protocol); when that is the case, implementers are +   advised to adhere to those stricter requirements.  Furthermore, this + + + + + +Sheffer, et al.           Best Current Practice                 [Page 4] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   document provides a floor, not a ceiling, so stronger options are +   always allowed (e.g., depending on differing evaluations of the +   importance of cryptographic strength vs. computational load). + +   Community knowledge about the strength of various algorithms and +   feasible attacks can change quickly, and experience shows that a Best +   Current Practice (BCP) document about security is a point-in-time +   statement.  Readers are advised to seek out any errata or updates +   that apply to this document. + +2.  Terminology + +   A number of security-related terms in this document are used in the +   sense defined in [RFC4949]. + +   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", +   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this +   document are to be interpreted as described in [RFC2119]. + +3.  General Recommendations + +   This section provides general recommendations on the secure use of +   TLS.  Recommendations related to cipher suites are discussed in the +   following section. + +3.1.  Protocol Versions + +3.1.1.  SSL/TLS Protocol Versions + +   It is important both to stop using old, less secure versions of SSL/ +   TLS and to start using modern, more secure versions; therefore, the +   following are the recommendations concerning TLS/SSL protocol +   versions: + +   o  Implementations MUST NOT negotiate SSL version 2. + +      Rationale: Today, SSLv2 is considered insecure [RFC6176]. + +   o  Implementations MUST NOT negotiate SSL version 3. + +      Rationale: SSLv3 [RFC6101] was an improvement over SSLv2 and +      plugged some significant security holes but did not support strong +      cipher suites.  SSLv3 does not support TLS extensions, some of +      which (e.g., renegotiation_info [RFC5746]) are security-critical. +      In addition, with the emergence of the POODLE attack [POODLE], +      SSLv3 is now widely recognized as fundamentally insecure.  See +      [DEP-SSLv3] for further details. + + + + +Sheffer, et al.           Best Current Practice                 [Page 5] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   o  Implementations SHOULD NOT negotiate TLS version 1.0 [RFC2246]; +      the only exception is when no higher version is available in the +      negotiation. + +      Rationale: TLS 1.0 (published in 1999) does not support many +      modern, strong cipher suites.  In addition, TLS 1.0 lacks a per- +      record Initialization Vector (IV) for CBC-based cipher suites and +      does not warn against common padding errors. + +   o  Implementations SHOULD NOT negotiate TLS version 1.1 [RFC4346]; +      the only exception is when no higher version is available in the +      negotiation. + +      Rationale: TLS 1.1 (published in 2006) is a security improvement +      over TLS 1.0 but still does not support certain stronger cipher +      suites. + +   o  Implementations MUST support TLS 1.2 [RFC5246] and MUST prefer to +      negotiate TLS version 1.2 over earlier versions of TLS. + +      Rationale: Several stronger cipher suites are available only with +      TLS 1.2 (published in 2008).  In fact, the cipher suites +      recommended by this document (Section 4.2 below) are only +      available in TLS 1.2. + +   This BCP applies to TLS 1.2 and also to earlier versions.  It is not +   safe for readers to assume that the recommendations in this BCP apply +   to any future version of TLS. + +3.1.2.  DTLS Protocol Versions + +   DTLS, an adaptation of TLS for UDP datagrams, was introduced when TLS +   1.1 was published.  The following are the recommendations with +   respect to DTLS: + +   o  Implementations SHOULD NOT negotiate DTLS version 1.0 [RFC4347]. + +      Version 1.0 of DTLS correlates to version 1.1 of TLS (see above). + +   o  Implementations MUST support and MUST prefer to negotiate DTLS +      version 1.2 [RFC6347]. + +      Version 1.2 of DTLS correlates to version 1.2 of TLS (see above). +      (There is no version 1.1 of DTLS.) + + + + + + + +Sheffer, et al.           Best Current Practice                 [Page 6] + +RFC 7525                   TLS Recommendations                  May 2015 + + +3.1.3.  Fallback to Lower Versions + +   Clients that "fall back" to lower versions of the protocol after the +   server rejects higher versions of the protocol MUST NOT fall back to +   SSLv3 or earlier. + +   Rationale: Some client implementations revert to lower versions of +   TLS or even to SSLv3 if the server rejected higher versions of the +   protocol.  This fallback can be forced by a man-in-the-middle (MITM) +   attacker.  TLS 1.0 and SSLv3 are significantly less secure than TLS +   1.2, the version recommended by this document.  While TLS 1.0-only +   servers are still quite common, IP scans show that SSLv3-only servers +   amount to only about 3% of the current Web server population.  (At +   the time of this writing, an explicit method for preventing downgrade +   attacks has been defined recently in [RFC7507].) + +3.2.  Strict TLS + +   The following recommendations are provided to help prevent SSL +   Stripping (an attack that is summarized in Section 2.1 of [RFC7457]): + +   o  In cases where an application protocol allows implementations or +      deployments a choice between strict TLS configuration and dynamic +      upgrade from unencrypted to TLS-protected traffic (such as +      STARTTLS), clients and servers SHOULD prefer strict TLS +      configuration. + +   o  Application protocols typically provide a way for the server to +      offer TLS during an initial protocol exchange, and sometimes also +      provide a way for the server to advertise support for TLS (e.g., +      through a flag indicating that TLS is required); unfortunately, +      these indications are sent before the communication channel is +      encrypted.  A client SHOULD attempt to negotiate TLS even if these +      indications are not communicated by the server. + +   o  HTTP client and server implementations MUST support the HTTP +      Strict Transport Security (HSTS) header [RFC6797], in order to +      allow Web servers to advertise that they are willing to accept +      TLS-only clients. + +   o  Web servers SHOULD use HSTS to indicate that they are willing to +      accept TLS-only clients, unless they are deployed in such a way +      that using HSTS would in fact weaken overall security (e.g., it +      can be problematic to use HSTS with self-signed certificates, as +      described in Section 11.3 of [RFC6797]). + + + + + + +Sheffer, et al.           Best Current Practice                 [Page 7] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   Rationale: Combining unprotected and TLS-protected communication +   opens the way to SSL Stripping and similar attacks, since an initial +   part of the communication is not integrity protected and therefore +   can be manipulated by an attacker whose goal is to keep the +   communication in the clear. + +3.3.  Compression + +   In order to help prevent compression-related attacks (summarized in +   Section 2.6 of [RFC7457]), implementations and deployments SHOULD +   disable TLS-level compression (Section 6.2.2 of [RFC5246]), unless +   the application protocol in question has been shown not to be open to +   such attacks. + +   Rationale: TLS compression has been subject to security attacks, such +   as the CRIME attack. + +   Implementers should note that compression at higher protocol levels +   can allow an active attacker to extract cleartext information from +   the connection.  The BREACH attack is one such case.  These issues +   can only be mitigated outside of TLS and are thus outside the scope +   of this document.  See Section 2.6 of [RFC7457] for further details. + +3.4.  TLS Session Resumption + +   If TLS session resumption is used, care ought to be taken to do so +   safely.  In particular, when using session tickets [RFC5077], the +   resumption information MUST be authenticated and encrypted to prevent +   modification or eavesdropping by an attacker.  Further +   recommendations apply to session tickets: + +   o  A strong cipher suite MUST be used when encrypting the ticket (as +      least as strong as the main TLS cipher suite). + +   o  Ticket keys MUST be changed regularly, e.g., once every week, so +      as not to negate the benefits of forward secrecy (see Section 6.3 +      for details on forward secrecy). + +   o  For similar reasons, session ticket validity SHOULD be limited to +      a reasonable duration (e.g., half as long as ticket key validity). + +   Rationale: session resumption is another kind of TLS handshake, and +   therefore must be as secure as the initial handshake.  This document +   (Section 4) recommends the use of cipher suites that provide forward +   secrecy, i.e. that prevent an attacker who gains momentary access to +   the TLS endpoint (either client or server) and its secrets from +   reading either past or future communication.  The tickets must be +   managed so as not to negate this security property. + + + +Sheffer, et al.           Best Current Practice                 [Page 8] + +RFC 7525                   TLS Recommendations                  May 2015 + + +3.5.  TLS Renegotiation + +   Where handshake renegotiation is implemented, both clients and +   servers MUST implement the renegotiation_info extension, as defined +   in [RFC5746]. + +   The most secure option for countering the Triple Handshake attack is +   to refuse any change of certificates during renegotiation.  In +   addition, TLS clients SHOULD apply the same validation policy for all +   certificates received over a connection.  The [triple-handshake] +   document suggests several other possible countermeasures, such as +   binding the master secret to the full handshake (see [SESSION-HASH]) +   and binding the abbreviated session resumption handshake to the +   original full handshake.  Although the latter two techniques are +   still under development and thus do not qualify as current practices, +   those who implement and deploy TLS are advised to watch for further +   development of appropriate countermeasures. + +3.6.  Server Name Indication + +   TLS implementations MUST support the Server Name Indication (SNI) +   extension defined in Section 3 of [RFC6066] for those higher-level +   protocols that would benefit from it, including HTTPS.  However, the +   actual use of SNI in particular circumstances is a matter of local +   policy. + +   Rationale: SNI supports deployment of multiple TLS-protected virtual +   servers on a single address, and therefore enables fine-grained +   security for these virtual servers, by allowing each one to have its +   own certificate. + +4.  Recommendations: Cipher Suites + +   TLS and its implementations provide considerable flexibility in the +   selection of cipher suites.  Unfortunately, some available cipher +   suites are insecure, some do not provide the targeted security +   services, and some no longer provide enough security.  Incorrectly +   configuring a server leads to no or reduced security.  This section +   includes recommendations on the selection and negotiation of cipher +   suites. + +4.1.  General Guidelines + +   Cryptographic algorithms weaken over time as cryptanalysis improves: +   algorithms that were once considered strong become weak.  Such +   algorithms need to be phased out over time and replaced with more +   secure cipher suites.  This helps to ensure that the desired security +   properties still hold.  SSL/TLS has been in existence for almost 20 + + + +Sheffer, et al.           Best Current Practice                 [Page 9] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   years and many of the cipher suites that have been recommended in +   various versions of SSL/TLS are now considered weak or at least not +   as strong as desired.  Therefore, this section modernizes the +   recommendations concerning cipher suite selection. + +   o  Implementations MUST NOT negotiate the cipher suites with NULL +      encryption. + +      Rationale: The NULL cipher suites do not encrypt traffic and so +      provide no confidentiality services.  Any entity in the network +      with access to the connection can view the plaintext of contents +      being exchanged by the client and server.  (Nevertheless, this +      document does not discourage software from implementing NULL +      cipher suites, since they can be useful for testing and +      debugging.) + +   o  Implementations MUST NOT negotiate RC4 cipher suites. + +      Rationale: The RC4 stream cipher has a variety of cryptographic +      weaknesses, as documented in [RFC7465].  Note that DTLS +      specifically forbids the use of RC4 already. + +   o  Implementations MUST NOT negotiate cipher suites offering less +      than 112 bits of security, including so-called "export-level" +      encryption (which provide 40 or 56 bits of security). + +      Rationale: Based on [RFC3766], at least 112 bits of security is +      needed.  40-bit and 56-bit security are considered insecure today. +      TLS 1.1 and 1.2 never negotiate 40-bit or 56-bit export ciphers. + +   o  Implementations SHOULD NOT negotiate cipher suites that use +      algorithms offering less than 128 bits of security. + +      Rationale: Cipher suites that offer between 112-bits and 128-bits +      of security are not considered weak at this time; however, it is +      expected that their useful lifespan is short enough to justify +      supporting stronger cipher suites at this time.  128-bit ciphers +      are expected to remain secure for at least several years, and +      256-bit ciphers until the next fundamental technology +      breakthrough.  Note that, because of so-called "meet-in-the- +      middle" attacks [Multiple-Encryption], some legacy cipher suites +      (e.g., 168-bit 3DES) have an effective key length that is smaller +      than their nominal key length (112 bits in the case of 3DES). +      Such cipher suites should be evaluated according to their +      effective key length. + + + + + + +Sheffer, et al.           Best Current Practice                [Page 10] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   o  Implementations SHOULD NOT negotiate cipher suites based on RSA +      key transport, a.k.a. "static RSA". + +      Rationale: These cipher suites, which have assigned values +      starting with the string "TLS_RSA_WITH_*", have several drawbacks, +      especially the fact that they do not support forward secrecy. + +   o  Implementations MUST support and prefer to negotiate cipher suites +      offering forward secrecy, such as those in the Ephemeral Diffie- +      Hellman and Elliptic Curve Ephemeral Diffie-Hellman ("DHE" and +      "ECDHE") families. + +      Rationale: Forward secrecy (sometimes called "perfect forward +      secrecy") prevents the recovery of information that was encrypted +      with older session keys, thus limiting the amount of time during +      which attacks can be successful.  See Section 6.3 for a detailed +      discussion. + +4.2.  Recommended Cipher Suites + +   Given the foregoing considerations, implementation and deployment of +   the following cipher suites is RECOMMENDED: + +   o  TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 + +   o  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + +   o  TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 + +   o  TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + +   These cipher suites are supported only in TLS 1.2 because they are +   authenticated encryption (AEAD) algorithms [RFC5116]. + +   Typically, in order to prefer these suites, the order of suites needs +   to be explicitly configured in server software.  (See [BETTERCRYPTO] +   for helpful deployment guidelines, but note that its recommendations +   differ from the current document in some details.)  It would be ideal +   if server software implementations were to prefer these suites by +   default. + +   Some devices have hardware support for AES-CCM but not AES-GCM, so +   they are unable to follow the foregoing recommendations regarding +   cipher suites.  There are even devices that do not support public key +   cryptography at all, but they are out of scope entirely. + + + + + + +Sheffer, et al.           Best Current Practice                [Page 11] + +RFC 7525                   TLS Recommendations                  May 2015 + + +4.2.1.  Implementation Details + +   Clients SHOULD include TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 as the +   first proposal to any server, unless they have prior knowledge that +   the server cannot respond to a TLS 1.2 client_hello message. + +   Servers MUST prefer this cipher suite over weaker cipher suites +   whenever it is proposed, even if it is not the first proposal. + +   Clients are of course free to offer stronger cipher suites, e.g., +   using AES-256; when they do, the server SHOULD prefer the stronger +   cipher suite unless there are compelling reasons (e.g., seriously +   degraded performance) to choose otherwise. + +   This document does not change the mandatory-to-implement TLS cipher +   suite(s) prescribed by TLS.  To maximize interoperability, RFC 5246 +   mandates implementation of the TLS_RSA_WITH_AES_128_CBC_SHA cipher +   suite, which is significantly weaker than the cipher suites +   recommended here.  (The GCM mode does not suffer from the same +   weakness, caused by the order of MAC-then-Encrypt in TLS +   [Krawczyk2001], since it uses an AEAD mode of operation.) +   Implementers should consider the interoperability gain against the +   loss in security when deploying the TLS_RSA_WITH_AES_128_CBC_SHA +   cipher suite.  Other application protocols specify other cipher +   suites as mandatory to implement (MTI). + +   Note that some profiles of TLS 1.2 use different cipher suites.  For +   example, [RFC6460] defines a profile that uses the +   TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 and +   TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 cipher suites. + +   [RFC4492] allows clients and servers to negotiate ECDH parameters +   (curves).  Both clients and servers SHOULD include the "Supported +   Elliptic Curves" extension [RFC4492].  For interoperability, clients +   and servers SHOULD support the NIST P-256 (secp256r1) curve +   [RFC4492].  In addition, clients SHOULD send an ec_point_formats +   extension with a single element, "uncompressed". + +4.3.  Public Key Length + +   When using the cipher suites recommended in this document, two public +   keys are normally used in the TLS handshake: one for the Diffie- +   Hellman key agreement and one for server authentication.  Where a +   client certificate is used, a third public key is added. + +   With a key exchange based on modular exponential (MODP) Diffie- +   Hellman groups ("DHE" cipher suites), DH key lengths of at least 2048 +   bits are RECOMMENDED. + + + +Sheffer, et al.           Best Current Practice                [Page 12] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   Rationale: For various reasons, in practice, DH keys are typically +   generated in lengths that are powers of two (e.g., 2^10 = 1024 bits, +   2^11 = 2048 bits, 2^12 = 4096 bits).  Because a DH key of 1228 bits +   would be roughly equivalent to only an 80-bit symmetric key +   [RFC3766], it is better to use keys longer than that for the "DHE" +   family of cipher suites.  A DH key of 1926 bits would be roughly +   equivalent to a 100-bit symmetric key [RFC3766] and a DH key of 2048 +   bits might be sufficient for at least the next 10 years +   [NIST.SP.800-56A].  See Section 4.4 for additional information on the +   use of MODP Diffie-Hellman in TLS. + +   As noted in [RFC3766], correcting for the emergence of a TWIRL +   machine would imply that 1024-bit DH keys yield about 65 bits of +   equivalent strength and that a 2048-bit DH key would yield about 92 +   bits of equivalent strength. + +   With regard to ECDH keys, the IANA "EC Named Curve Registry" (within +   the "Transport Layer Security (TLS) Parameters" registry [IANA-TLS]) +   contains 160-bit elliptic curves that are considered to be roughly +   equivalent to only an 80-bit symmetric key [ECRYPT-II].  Curves of +   less than 192 bits SHOULD NOT be used. + +   When using RSA, servers SHOULD authenticate using certificates with +   at least a 2048-bit modulus for the public key.  In addition, the use +   of the SHA-256 hash algorithm is RECOMMENDED (see [CAB-Baseline] for +   more details).  Clients SHOULD indicate to servers that they request +   SHA-256, by using the "Signature Algorithms" extension defined in +   TLS 1.2. + +4.4.  Modular Exponential vs. Elliptic Curve DH Cipher Suites + +   Not all TLS implementations support both modular exponential (MODP) +   and elliptic curve (EC) Diffie-Hellman groups, as required by +   Section 4.2.  Some implementations are severely limited in the length +   of DH values.  When such implementations need to be accommodated, the +   following are RECOMMENDED (in priority order): + +   1.  Elliptic Curve DHE with appropriately negotiated parameters +       (e.g., the curve to be used) and a Message Authentication Code +       (MAC) algorithm stronger than HMAC-SHA1 [RFC5289] + +   2.  TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 [RFC5288], with 2048-bit +       Diffie-Hellman parameters + +   3.  TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, with 1024-bit parameters + + + + + + +Sheffer, et al.           Best Current Practice                [Page 13] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   Rationale: Although Elliptic Curve Cryptography is widely deployed, +   there are some communities where its adoption has been limited for +   several reasons, including its complexity compared to modular +   arithmetic and longstanding perceptions of IPR concerns (which, for +   the most part, have now been resolved [RFC6090]).  Note that ECDHE +   cipher suites exist for both RSA and ECDSA certificates, so moving to +   ECDHE cipher suites does not require moving away from RSA-based +   certificates.  On the other hand, there are two related issues +   hindering effective use of MODP Diffie-Hellman cipher suites in TLS: + +   o  There are no standardized, widely implemented protocol mechanisms +      to negotiate the DH groups or parameter lengths supported by +      client and server. + +   o  Many servers choose DH parameters of 1024 bits or fewer. + +   o  There are widely deployed client implementations that reject +      received DH parameters if they are longer than 1024 bits.  In +      addition, several implementations do not perform appropriate +      validation of group parameters and are vulnerable to attacks +      referenced in Section 2.9 of [RFC7457]. + +   Note that with DHE and ECDHE cipher suites, the TLS master key only +   depends on the Diffie-Hellman parameters and not on the strength of +   the RSA certificate; moreover, 1024 bit MODP DH parameters are +   generally considered insufficient at this time. + +   With MODP ephemeral DH, deployers ought to carefully evaluate +   interoperability vs. security considerations when configuring their +   TLS endpoints. + +4.5.  Truncated HMAC + +   Implementations MUST NOT use the Truncated HMAC extension, defined in +   Section 7 of [RFC6066]. + +   Rationale: the extension does not apply to the AEAD cipher suites +   recommended above.  However it does apply to most other TLS cipher +   suites.  Its use has been shown to be insecure in [PatersonRS11]. + + + + + + + + + + + + +Sheffer, et al.           Best Current Practice                [Page 14] + +RFC 7525                   TLS Recommendations                  May 2015 + + +5.  Applicability Statement + +   The recommendations of this document primarily apply to the +   implementation and deployment of application protocols that are most +   commonly used with TLS and DTLS on the Internet today.  Examples +   include, but are not limited to: + +   o  Web software and services that wish to protect HTTP traffic with +      TLS. + +   o  Email software and services that wish to protect IMAP, POP3, or +      SMTP traffic with TLS. + +   o  Instant-messaging software and services that wish to protect +      Extensible Messaging and Presence Protocol (XMPP) or Internet +      Relay Chat (IRC) traffic with TLS. + +   o  Realtime media software and services that wish to protect Secure +      Realtime Transport Protocol (SRTP) traffic with DTLS. + +   This document does not modify the implementation and deployment +   recommendations (e.g., mandatory-to-implement cipher suites) +   prescribed by existing application protocols that employ TLS or DTLS. +   If the community that uses such an application protocol wishes to +   modernize its usage of TLS or DTLS to be consistent with the best +   practices recommended here, it needs to explicitly update the +   existing application protocol definition (one example is [TLS-XMPP], +   which updates [RFC6120]). + +   Designers of new application protocols developed through the Internet +   Standards Process [RFC2026] are expected at minimum to conform to the +   best practices recommended here, unless they provide documentation of +   compelling reasons that would prevent such conformance (e.g., +   widespread deployment on constrained devices that lack support for +   the necessary algorithms). + +5.1.  Security Services + +   This document provides recommendations for an audience that wishes to +   secure their communication with TLS to achieve the following: + +   o  Confidentiality: all application-layer communication is encrypted +      with the goal that no party should be able to decrypt it except +      the intended receiver. + +   o  Data integrity: any changes made to the communication in transit +      are detectable by the receiver. + + + + +Sheffer, et al.           Best Current Practice                [Page 15] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   o  Authentication: an endpoint of the TLS communication is +      authenticated as the intended entity to communicate with. + +   With regard to authentication, TLS enables authentication of one or +   both endpoints in the communication.  In the context of opportunistic +   security [RFC7435], TLS is sometimes used without authentication.  As +   discussed in Section 5.2, considerations for opportunistic security +   are not in scope for this document. + +   If deployers deviate from the recommendations given in this document, +   they need to be aware that they might lose access to one of the +   foregoing security services. + +   This document applies only to environments where confidentiality is +   required.  It recommends algorithms and configuration options that +   enforce secrecy of the data in transit. + +   This document also assumes that data integrity protection is always +   one of the goals of a deployment.  In cases where integrity is not +   required, it does not make sense to employ TLS in the first place. +   There are attacks against confidentiality-only protection that +   utilize the lack of integrity to also break confidentiality (see, for +   instance, [DegabrieleP07] in the context of IPsec). + +   This document addresses itself to application protocols that are most +   commonly used on the Internet with TLS and DTLS.  Typically, all +   communication between TLS clients and TLS servers requires all three +   of the above security services.  This is particularly true where TLS +   clients are user agents like Web browsers or email software. + +   This document does not address the rarer deployment scenarios where +   one of the above three properties is not desired, such as the use +   case described in Section 5.2 below.  As another scenario where +   confidentiality is not needed, consider a monitored network where the +   authorities in charge of the respective traffic domain require full +   access to unencrypted (plaintext) traffic, and where users +   collaborate and send their traffic in the clear. + +5.2.  Opportunistic Security + +   There are several important scenarios in which the use of TLS is +   optional, i.e., the client decides dynamically ("opportunistically") +   whether to use TLS with a particular server or to connect in the +   clear.  This practice, often called "opportunistic security", is +   described at length in [RFC7435] and is often motivated by a desire +   for backward compatibility with legacy deployments. + + + + + +Sheffer, et al.           Best Current Practice                [Page 16] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   In these scenarios, some of the recommendations in this document +   might be too strict, since adhering to them could cause fallback to +   cleartext, a worse outcome than using TLS with an outdated protocol +   version or cipher suite. + +   This document specifies best practices for TLS in general.  A +   separate document containing recommendations for the use of TLS with +   opportunistic security is to be completed in the future. + +6.  Security Considerations + +   This entire document discusses the security practices directly +   affecting applications using the TLS protocol.  This section contains +   broader security considerations related to technologies used in +   conjunction with or by TLS. + +6.1.  Host Name Validation + +   Application authors should take note that some TLS implementations do +   not validate host names.  If the TLS implementation they are using +   does not validate host names, authors might need to write their own +   validation code or consider using a different TLS implementation. + +   It is noted that the requirements regarding host name validation +   (and, in general, binding between the TLS layer and the protocol that +   runs above it) vary between different protocols.  For HTTPS, these +   requirements are defined by Section 3 of [RFC2818]. + +   Readers are referred to [RFC6125] for further details regarding +   generic host name validation in the TLS context.  In addition, that +   RFC contains a long list of example protocols, some of which +   implement a policy very different from HTTPS. + +   If the host name is discovered indirectly and in an insecure manner +   (e.g., by an insecure DNS query for an MX or SRV record), it SHOULD +   NOT be used as a reference identifier [RFC6125] even when it matches +   the presented certificate.  This proviso does not apply if the host +   name is discovered securely (for further discussion, see [DANE-SRV] +   and [DANE-SMTP]). + +   Host name validation typically applies only to the leaf "end entity" +   certificate.  Naturally, in order to ensure proper authentication in +   the context of the PKI, application clients need to verify the entire +   certification path in accordance with [RFC5280] (see also [RFC6125]). + + + + + + + +Sheffer, et al.           Best Current Practice                [Page 17] + +RFC 7525                   TLS Recommendations                  May 2015 + + +6.2.  AES-GCM + +   Section 4.2 above recommends the use of the AES-GCM authenticated +   encryption algorithm.  Please refer to Section 11 of [RFC5246] for +   general security considerations when using TLS 1.2, and to Section 6 +   of [RFC5288] for security considerations that apply specifically to +   AES-GCM when used with TLS. + +6.3.  Forward Secrecy + +   Forward secrecy (also called "perfect forward secrecy" or "PFS" and +   defined in [RFC4949]) is a defense against an attacker who records +   encrypted conversations where the session keys are only encrypted +   with the communicating parties' long-term keys.  Should the attacker +   be able to obtain these long-term keys at some point later in time, +   the session keys and thus the entire conversation could be decrypted. +   In the context of TLS and DTLS, such compromise of long-term keys is +   not entirely implausible.  It can happen, for example, due to: + +   o  A client or server being attacked by some other attack vector, and +      the private key retrieved. + +   o  A long-term key retrieved from a device that has been sold or +      otherwise decommissioned without prior wiping. + +   o  A long-term key used on a device as a default key [Heninger2012]. + +   o  A key generated by a trusted third party like a CA, and later +      retrieved from it either by extortion or compromise +      [Soghoian2011]. + +   o  A cryptographic break-through, or the use of asymmetric keys with +      insufficient length [Kleinjung2010]. + +   o  Social engineering attacks against system administrators. + +   o  Collection of private keys from inadequately protected backups. + +   Forward secrecy ensures in such cases that it is not feasible for an +   attacker to determine the session keys even if the attacker has +   obtained the long-term keys some time after the conversation.  It +   also protects against an attacker who is in possession of the long- +   term keys but remains passive during the conversation. + +   Forward secrecy is generally achieved by using the Diffie-Hellman +   scheme to derive session keys.  The Diffie-Hellman scheme has both +   parties maintain private secrets and send parameters over the network +   as modular powers over certain cyclic groups.  The properties of the + + + +Sheffer, et al.           Best Current Practice                [Page 18] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   so-called Discrete Logarithm Problem (DLP) allow the parties to +   derive the session keys without an eavesdropper being able to do so. +   There is currently no known attack against DLP if sufficiently large +   parameters are chosen.  A variant of the Diffie-Hellman scheme uses +   Elliptic Curves instead of the originally proposed modular +   arithmetics. + +   Unfortunately, many TLS/DTLS cipher suites were defined that do not +   feature forward secrecy, e.g., TLS_RSA_WITH_AES_256_CBC_SHA256.  This +   document therefore advocates strict use of forward-secrecy-only +   ciphers. + +6.4.  Diffie-Hellman Exponent Reuse + +   For performance reasons, many TLS implementations reuse Diffie- +   Hellman and Elliptic Curve Diffie-Hellman exponents across multiple +   connections.  Such reuse can result in major security issues: + +   o  If exponents are reused for too long (e.g., even more than a few +      hours), an attacker who gains access to the host can decrypt +      previous connections.  In other words, exponent reuse negates the +      effects of forward secrecy. + +   o  TLS implementations that reuse exponents should test the DH public +      key they receive for group membership, in order to avoid some +      known attacks.  These tests are not standardized in TLS at the +      time of writing.  See [RFC6989] for recipient tests required of +      IKEv2 implementations that reuse DH exponents. + +6.5.  Certificate Revocation + +   The following considerations and recommendations represent the +   current state of the art regarding certificate revocation, even +   though no complete and efficient solution exists for the problem of +   checking the revocation status of common public key certificates +   [RFC5280]: + +   o  Although Certificate Revocation Lists (CRLs) are the most widely +      supported mechanism for distributing revocation information, they +      have known scaling challenges that limit their usefulness (despite +      workarounds such as partitioned CRLs and delta CRLs). + +   o  Proprietary mechanisms that embed revocation lists in the Web +      browser's configuration database cannot scale beyond a small +      number of the most heavily used Web servers. + + + + + + +Sheffer, et al.           Best Current Practice                [Page 19] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   o  The On-Line Certification Status Protocol (OCSP) [RFC6960] +      presents both scaling and privacy issues.  In addition, clients +      typically "soft-fail", meaning that they do not abort the TLS +      connection if the OCSP server does not respond.  (However, this +      might be a workaround to avoid denial-of-service attacks if an +      OCSP responder is taken offline.) + +   o  The TLS Certificate Status Request extension (Section 8 of +      [RFC6066]), commonly called "OCSP stapling", resolves the +      operational issues with OCSP.  However, it is still ineffective in +      the presence of a MITM attacker because the attacker can simply +      ignore the client's request for a stapled OCSP response. + +   o  OCSP stapling as defined in [RFC6066] does not extend to +      intermediate certificates used in a certificate chain.  Although +      the Multiple Certificate Status extension [RFC6961] addresses this +      shortcoming, it is a recent addition without much deployment. + +   o  Both CRLs and OCSP depend on relatively reliable connectivity to +      the Internet, which might not be available to certain kinds of +      nodes (such as newly provisioned devices that need to establish a +      secure connection in order to boot up for the first time). + +   With regard to common public key certificates, servers SHOULD support +   the following as a best practice given the current state of the art +   and as a foundation for a possible future solution: + +   1.  OCSP [RFC6960] + +   2.  Both the status_request extension defined in [RFC6066] and the +       status_request_v2 extension defined in [RFC6961] (This might +       enable interoperability with the widest range of clients.) + +   3.  The OCSP stapling extension defined in [RFC6961] + +   The considerations in this section do not apply to scenarios where +   the DANE-TLSA resource record [RFC6698] is used to signal to a client +   which certificate a server considers valid and good to use for TLS +   connections. + + + + + + + + + + + + +Sheffer, et al.           Best Current Practice                [Page 20] + +RFC 7525                   TLS Recommendations                  May 2015 + + +7.  References + +7.1.  Normative References + +   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate +              Requirement Levels", BCP 14, RFC 2119, March 1997, +              <http://www.rfc-editor.org/info/rfc2119>. + +   [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000, +              <http://www.rfc-editor.org/info/rfc2818>. + +   [RFC3766]  Orman, H. and P. Hoffman, "Determining Strengths For +              Public Keys Used For Exchanging Symmetric Keys", BCP 86, +              RFC 3766, April 2004, +              <http://www.rfc-editor.org/info/rfc3766>. + +   [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, May 2006, +              <http://www.rfc-editor.org/info/rfc4492>. + +   [RFC4949]  Shirey, R., "Internet Security Glossary, Version 2", FYI +              36, RFC 4949, August 2007, +              <http://www.rfc-editor.org/info/rfc4949>. + +   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security +              (TLS) Protocol Version 1.2", RFC 5246, August 2008, +              <http://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, +              August 2008, <http://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, +              August 2008, <http://www.rfc-editor.org/info/rfc5289>. + +   [RFC5746]  Rescorla, E., Ray, M., Dispensa, S., and N. Oskov, +              "Transport Layer Security (TLS) Renegotiation Indication +              Extension", RFC 5746, February 2010, +              <http://www.rfc-editor.org/info/rfc5746>. + +   [RFC6066]  Eastlake 3rd, D., "Transport Layer Security (TLS) +              Extensions: Extension Definitions", RFC 6066, January +              2011, <http://www.rfc-editor.org/info/rfc6066>. + + + + + + +Sheffer, et al.           Best Current Practice                [Page 21] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   [RFC6125]  Saint-Andre, P. and J. Hodges, "Representation and +              Verification of Domain-Based Application Service Identity +              within Internet Public Key Infrastructure Using X.509 +              (PKIX) Certificates in the Context of Transport Layer +              Security (TLS)", RFC 6125, March 2011, +              <http://www.rfc-editor.org/info/rfc6125>. + +   [RFC6176]  Turner, S. and T. Polk, "Prohibiting Secure Sockets Layer +              (SSL) Version 2.0", RFC 6176, March 2011, +              <http://www.rfc-editor.org/info/rfc6176>. + +   [RFC6347]  Rescorla, E. and N. Modadugu, "Datagram Transport Layer +              Security Version 1.2", RFC 6347, January 2012, +              <http://www.rfc-editor.org/info/rfc6347>. + +   [RFC7465]  Popov, A., "Prohibiting RC4 Cipher Suites", RFC 7465, +              February 2015, <http://www.rfc-editor.org/info/rfc7465>. + +7.2.  Informative References + +   [BETTERCRYPTO] +              bettercrypto.org, "Applied Crypto Hardening", April 2015, +              <https://bettercrypto.org/static/ +              applied-crypto-hardening.pdf>. + +   [CAB-Baseline] +              CA/Browser Forum, "Baseline Requirements for the Issuance +              and Management of Publicly-Trusted Certificates Version +              1.1.6", 2013, <https://www.cabforum.org/documents.html>. + +   [DANE-SMTP] +              Dukhovni, V. and W. Hardaker, "SMTP security via +              opportunistic DANE TLS", Work in Progress, draft-ietf- +              dane-smtp-with-dane-16, April 2015. + +   [DANE-SRV] Finch, T., Miller, M., and P. Saint-Andre, "Using DNS- +              Based Authentication of Named Entities (DANE) TLSA Records +              with SRV Records", Work in Progress, +              draft-ietf-dane-srv-14, April 2015. + +   [DEP-SSLv3] +              Barnes, R., Thomson, M., Pironti, A., and A. Langley, +              "Deprecating Secure Sockets Layer Version 3.0", Work in +              Progress, draft-ietf-tls-sslv3-diediedie-03, April 2015. + + + + + + + +Sheffer, et al.           Best Current Practice                [Page 22] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   [DegabrieleP07] +              Degabriele, J. and K. Paterson, "Attacking the IPsec +              Standards in Encryption-only Configurations", IEEE +              Symposium on Security and Privacy (SP '07), 2007, +              <http://dx.doi.org/10.1109/SP.2007.8>. + +   [ECRYPT-II] +              Smart, N., "ECRYPT II Yearly Report on Algorithms and +              Keysizes (2011-2012)", 2012, +              <http://www.ecrypt.eu.org/ecrypt2/>. + +   [Heninger2012] +              Heninger, N., Durumeric, Z., Wustrow, E., and J. +              Halderman, "Mining Your Ps and Qs: Detection of Widespread +              Weak Keys in Network Devices", Usenix Security Symposium +              2012, 2012. + +   [IANA-TLS] IANA, "Transport Layer Security (TLS) Parameters", +              <http://www.iana.org/assignments/tls-parameters>. + +   [Kleinjung2010] +              Kleinjung, T., "Factorization of a 768-Bit RSA modulus", +              CRYPTO 10, 2010, <https://eprint.iacr.org/2010/006.pdf>. + +   [Krawczyk2001] +              Krawczyk, H., "The Order of Encryption and Authentication +              for Protecting Communications (Or: How Secure is SSL?)", +              CRYPTO 01, 2001, +              <https://www.iacr.org/archive/crypto2001/21390309.pdf>. + +   [Multiple-Encryption] +              Merkle, R. and M. Hellman, "On the security of multiple +              encryption", Communications of the ACM, Vol. 24, 1981, +              <http://dl.acm.org/citation.cfm?id=358718>. + +   [NIST.SP.800-56A] +              Barker, E., Chen, L., Roginsky, A., and M. Smid, +              "Recommendation for Pair-Wise Key Establishment Schemes +              Using Discrete Logarithm Cryptography", NIST Special +              Publication 800-56A, 2013, +              <http://nvlpubs.nist.gov/nistpubs/SpecialPublications/ +              NIST.SP.800-56Ar2.pdf>. + +   [POODLE]   US-CERT, "SSL 3.0 Protocol Vulnerability and POODLE +              Attack", Alert TA14-290A, October 2014, +              <https://www.us-cert.gov/ncas/alerts/TA14-290A>. + + + + + +Sheffer, et al.           Best Current Practice                [Page 23] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   [PatersonRS11] +              Paterson, K., Ristenpart, T., and T. Shrimpton, "Tag size +              does matter: attacks and proofs for the TLS record +              protocol", 2011, +              <http://dx.doi.org/10.1007/978-3-642-25385-0_20>. + +   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision +              3", BCP 9, RFC 2026, October 1996, +              <http://www.rfc-editor.org/info/rfc2026>. + +   [RFC2246]  Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", +              RFC 2246, January 1999, +              <http://www.rfc-editor.org/info/rfc2246>. + +   [RFC3602]  Frankel, S., Glenn, R., and S. Kelly, "The AES-CBC Cipher +              Algorithm and Its Use with IPsec", RFC 3602, September +              2003, <http://www.rfc-editor.org/info/rfc3602>. + +   [RFC4346]  Dierks, T. and E. Rescorla, "The Transport Layer Security +              (TLS) Protocol Version 1.1", RFC 4346, April 2006, +              <http://www.rfc-editor.org/info/rfc4346>. + +   [RFC4347]  Rescorla, E. and N. Modadugu, "Datagram Transport Layer +              Security", RFC 4347, April 2006, +              <http://www.rfc-editor.org/info/rfc4347>. + +   [RFC5077]  Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, +              "Transport Layer Security (TLS) Session Resumption without +              Server-Side State", RFC 5077, January 2008, +              <http://www.rfc-editor.org/info/rfc5077>. + +   [RFC5116]  McGrew, D., "An Interface and Algorithms for Authenticated +              Encryption", RFC 5116, January 2008, +              <http://www.rfc-editor.org/info/rfc5116>. + +   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S., +              Housley, R., and W. Polk, "Internet X.509 Public Key +              Infrastructure Certificate and Certificate Revocation List +              (CRL) Profile", RFC 5280, May 2008, +              <http://www.rfc-editor.org/info/rfc5280>. + +   [RFC6090]  McGrew, D., Igoe, K., and M. Salter, "Fundamental Elliptic +              Curve Cryptography Algorithms", RFC 6090, February 2011, +              <http://www.rfc-editor.org/info/rfc6090>. + +   [RFC6101]  Freier, A., Karlton, P., and P. Kocher, "The Secure +              Sockets Layer (SSL) Protocol Version 3.0", RFC 6101, +              August 2011, <http://www.rfc-editor.org/info/rfc6101>. + + + +Sheffer, et al.           Best Current Practice                [Page 24] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   [RFC6120]  Saint-Andre, P., "Extensible Messaging and Presence +              Protocol (XMPP): Core", RFC 6120, March 2011, +              <http://www.rfc-editor.org/info/rfc6120>. + +   [RFC6460]  Salter, M. and R. Housley, "Suite B Profile for Transport +              Layer Security (TLS)", RFC 6460, January 2012, +              <http://www.rfc-editor.org/info/rfc6460>. + +   [RFC6698]  Hoffman, P. and J. Schlyter, "The DNS-Based Authentication +              of Named Entities (DANE) Transport Layer Security (TLS) +              Protocol: TLSA", RFC 6698, August 2012, +              <http://www.rfc-editor.org/info/rfc6698>. + +   [RFC6797]  Hodges, J., Jackson, C., and A. Barth, "HTTP Strict +              Transport Security (HSTS)", RFC 6797, November 2012, +              <http://www.rfc-editor.org/info/rfc6797>. + +   [RFC6960]  Santesson, S., Myers, M., Ankney, R., Malpani, A., +              Galperin, S., and C. Adams, "X.509 Internet Public Key +              Infrastructure Online Certificate Status Protocol - OCSP", +              RFC 6960, June 2013, +              <http://www.rfc-editor.org/info/rfc6960>. + +   [RFC6961]  Pettersen, Y., "The Transport Layer Security (TLS) +              Multiple Certificate Status Request Extension", RFC 6961, +              June 2013, <http://www.rfc-editor.org/info/rfc6961>. + +   [RFC6989]  Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman +              Tests for the Internet Key Exchange Protocol Version 2 +              (IKEv2)", RFC 6989, July 2013, +              <http://www.rfc-editor.org/info/rfc6989>. + +   [RFC7435]  Dukhovni, V., "Opportunistic Security: Some Protection +              Most of the Time", RFC 7435, December 2014, +              <http://www.rfc-editor.org/info/rfc7435>. + +   [RFC7457]  Sheffer, Y., Holz, R., and P. Saint-Andre, "Summarizing +              Known Attacks on Transport Layer Security (TLS) and +              Datagram TLS (DTLS)", RFC 7457, February 2015, +              <http://www.rfc-editor.org/info/rfc7457>. + +   [RFC7507]  Moeller, B. and A. Langley, "TLS Fallback Signaling Cipher +              Suite Value (SCSV) for Preventing Protocol Downgrade +              Attacks", RFC 7507, April 2015. + + + + + + + +Sheffer, et al.           Best Current Practice                [Page 25] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   [SESSION-HASH] +              Bhargavan, K., Ed., Delignat-Lavaud, A., Pironti, A., +              Langley, A., and M. Ray, "Transport Layer Security (TLS) +              Session Hash and Extended Master Secret Extension", Work +              in Progress, draft-ietf-tls-session-hash-05, April 2015. + +   [Smith2013] +              Smith, B., "Proposal to Change the Default TLS +              Ciphersuites Offered by Browsers.", 2013, +              <https://briansmith.org/browser-ciphersuites-01.html>. + +   [Soghoian2011] +              Soghoian, C. and S. Stamm, "Certified lies: Detecting and +              defeating government interception attacks against SSL", +              Proc. 15th Int. Conf. Financial Cryptography and Data +              Security, 2011. + +   [TLS-XMPP] Saint-Andre, P. and a. alkemade, "Use of Transport Layer +              Security (TLS) in the Extensible Messaging and Presence +              Protocol (XMPP)", Work in Progress, +              draft-ietf-uta-xmpp-07, April 2015. + +   [triple-handshake] +              Delignat-Lavaud, A., Bhargavan, K., and A. Pironti, +              "Triple Handshakes Considered Harmful: Breaking and Fixing +              Authentication over TLS", 2014, +              <https://secure-resumption.com/>. + +Acknowledgments + +   Thanks to RJ Atkinson, Uri Blumenthal, Viktor Dukhovni, Stephen +   Farrell, Daniel Kahn Gillmor, Paul Hoffman, Simon Josefsson, Watson +   Ladd, Orit Levin, Ilari Liusvaara, Johannes Merkle, Bodo Moeller, +   Yoav Nir, Massimiliano Pala, Kenny Paterson, Patrick Pelletier, Tom +   Ritter, Joe St. Sauver, Joe Salowey, Rich Salz, Brian Smith, Sean +   Turner, and Aaron Zauner for their feedback and suggested +   improvements.  Thanks also to Brian Smith, who has provided a great +   resource in his "Proposal to Change the Default TLS Ciphersuites +   Offered by Browsers" [Smith2013].  Finally, thanks to all others who +   commented on the TLS, UTA, and other discussion lists but who are not +   mentioned here by name. + +   Robert Sparks and Dave Waltermire provided helpful reviews on behalf +   of the General Area Review Team and the Security Directorate, +   respectively. + + + + + + +Sheffer, et al.           Best Current Practice                [Page 26] + +RFC 7525                   TLS Recommendations                  May 2015 + + +   During IESG review, Richard Barnes, Alissa Cooper, Spencer Dawkins, +   Stephen Farrell, Barry Leiba, Kathleen Moriarty, and Pete Resnick +   provided comments that led to further improvements. + +   Ralph Holz gratefully acknowledges the support by Technische +   Universitaet Muenchen.  The authors gratefully acknowledge the +   assistance of Leif Johansson and Orit Levin as the working group +   chairs and Pete Resnick as the sponsoring Area Director. + +Authors' Addresses + +   Yaron Sheffer +   Intuit +   4 HaHarash St. +   Hod HaSharon  4524075 +   Israel + +   EMail: yaronf.ietf@gmail.com + + +   Ralph Holz +   NICTA +   13 Garden St. +   Eveleigh 2015 NSW +   Australia + +   EMail: ralph.ietf@gmail.com + + +   Peter Saint-Andre +   &yet + +   EMail: peter@andyet.com +   URI:   https://andyet.com/ + + + + + + + + + + + + + + + + + +Sheffer, et al.           Best Current Practice                [Page 27] +  |