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