draft-ietf-uta-tls-bcp-01.txt | draft-ietf-uta-tls-bcp-02.txt | |||
---|---|---|---|---|
UTA Y. Sheffer | UTA Y. Sheffer | |||
Internet-Draft Porticor | Internet-Draft Porticor | |||
Intended status: Best Current Practice R. Holz | Intended status: Best Current Practice R. Holz | |||
Expires: December 26, 2014 TUM | Expires: February 25, 2015 TUM | |||
P. Saint-Andre | P. Saint-Andre | |||
&yet | &yet | |||
June 24, 2014 | August 24, 2014 | |||
Recommendations for Secure Use of TLS and DTLS | Recommendations for Secure Use of TLS and DTLS | |||
draft-ietf-uta-tls-bcp-01 | draft-ietf-uta-tls-bcp-02 | |||
Abstract | Abstract | |||
Transport Layer Security (TLS) and Datagram Transport Security Layer | Transport Layer Security (TLS) and Datagram Transport Security Layer | |||
(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 modes | including attacks on its most commonly used cipher suites and modes | |||
of operation. This document provides recommendations for improving | of operation. This document provides recommendations for improving | |||
the security of both software implementations and deployed services | the security of both software implementations and deployed services | |||
skipping to change at page 1, line 40 | skipping to change at page 1, line 40 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on December 26, 2014. | This Internet-Draft will expire on February 25, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions used in this document . . . . . . . . . . . . . . 3 | |||
3. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. General Recommendations . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Protocol Versions . . . . . . . . . . . . . . . . . . . . 3 | 3.1. Protocol Versions . . . . . . . . . . . . . . . . . . . . 4 | |||
3.2. Fallback to SSL . . . . . . . . . . . . . . . . . . . . . 4 | 3.2. Fallback to SSL . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.3. Always Use TLS . . . . . . . . . . . . . . . . . . . . . 4 | 3.3. Always Use TLS . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.4. Cipher Suites . . . . . . . . . . . . . . . . . . . . . . 5 | 3.4. Compression . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.5. Public Key Length . . . . . . . . . . . . . . . . . . . . 6 | 3.5. Session Resumption . . . . . . . . . . . . . . . . . . . 5 | |||
3.6. Compression . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.6. Renegotiation . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.7. Session Resumption . . . . . . . . . . . . . . . . . . . 7 | 3.7. Server Name Indication . . . . . . . . . . . . . . . . . 6 | |||
3.8. Renegotiation . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Recommendations: Cipher Suites . . . . . . . . . . . . . . . 6 | |||
4. Detailed Guidelines . . . . . . . . . . . . . . . . . . . . . 7 | 4.1. Cipher Suite Selection . . . . . . . . . . . . . . . . . 6 | |||
4.1. Cipher Suite Negotiation Details . . . . . . . . . . . . 7 | 4.2. Public Key Length . . . . . . . . . . . . . . . . . . . . 8 | |||
4.2. Alternative Cipher Suites . . . . . . . . . . . . . . . . 8 | 4.3. Cipher Suite Negotiation Details . . . . . . . . . . . . 8 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 4.4. Modular vs. Elliptic Curve DH Cipher Suites . . . . . . . 9 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
6.1. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
6.2. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 9 | 6.1. Host Name Validation . . . . . . . . . . . . . . . . . . 10 | |||
6.3. Certificate Revocation . . . . . . . . . . . . . . . . . 10 | 6.2. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | 6.3. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 10 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 6.4. Diffie Hellman Exponent Reuse . . . . . . . . . . . . . . 11 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 6.5. Certificate Revocation . . . . . . . . . . . . . . . . . 12 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 11 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
Appendix A. Appendix: Change Log . . . . . . . . . . . . . . . . 13 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
A.1. draft-ietf-tls-bcp-01 . . . . . . . . . . . . . . . . . . 13 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 13 | |||
A.2. draft-ietf-tls-bcp-00 . . . . . . . . . . . . . . . . . . 13 | 8.2. Informative References . . . . . . . . . . . . . . . . . 13 | |||
A.3. draft-sheffer-tls-bcp-02 . . . . . . . . . . . . . . . . 13 | Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 15 | |||
A.4. draft-sheffer-tls-bcp-01 . . . . . . . . . . . . . . . . 13 | A.1. draft-ietf-tls-bcp-02 . . . . . . . . . . . . . . . . . . 15 | |||
A.5. draft-sheffer-tls-bcp-00 . . . . . . . . . . . . . . . . 14 | A.2. draft-ietf-tls-bcp-01 . . . . . . . . . . . . . . . . . . 15 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | A.3. draft-ietf-tls-bcp-00 . . . . . . . . . . . . . . . . . . 16 | |||
A.4. draft-sheffer-tls-bcp-02 . . . . . . . . . . . . . . . . 16 | ||||
A.5. draft-sheffer-tls-bcp-01 . . . . . . . . . . . . . . . . 16 | ||||
A.6. draft-sheffer-tls-bcp-00 . . . . . . . . . . . . . . . . 16 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | ||||
1. Introduction | 1. Introduction | |||
Transport Layer Security (TLS) and Datagram Transport Security Layer | Transport Layer Security (TLS) and Datagram Transport Security Layer | |||
(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 modes | including attacks on its most commonly used cipher suites and modes | |||
of operation. For instance, both AES-CBC and RC4, which together | of operation. For instance, both AES-CBC and RC4, which together | |||
comprise most current usage, have been attacked in the context of | comprise most current usage, have been attacked in the context of | |||
TLS. A companion document [I-D.sheffer-uta-tls-attacks] provides | TLS. A companion document [I-D.ietf-uta-tls-attacks] provides | |||
detailed information about these attacks. | detailed information about these attacks. | |||
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. Note that | need updated guidance on how TLS can be used securely. Note that | |||
this document provides guidance for deployed services, as well as | this document provides guidance for deployed services, as well as | |||
software implementations. In fact, this document calls for the | software implementations. In fact, this document calls for the | |||
deployment of algorithms that are widely implemented but not yet | deployment of algorithms that are widely implemented but not yet | |||
widely deployed. | widely deployed. | |||
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 implementatios at the time of writing. These | and their prevalence in implementations at the time of writing. | |||
recommendations apply to both TLS and DTLS. TLS 1.3, when it is | These recommendations apply to both TLS and DTLS. TLS 1.3, when it | |||
standardized and deployed in the field, should resolve the current | is standardized and deployed in the field, should resolve the current | |||
vulnerabilities while providing significantly better functionality, | vulnerabilities while providing significantly better functionality, | |||
and will very likely obsolete this document. | and will very likely obsolete this document. | |||
These are minimum recommendations for the general use of TLS. | These are minimum recommendations for the general use of TLS. | |||
Individual specifications may have stricter requirements related to | Individual specifications may have stricter requirements related to | |||
one or more aspects of the protocol, and based on their particular | one or more aspects of the protocol, based on their particular | |||
circumstances. When that is the case, implementers MUST adhere to | circumstances. When that is the case, implementers MUST adhere to | |||
those stricter requirements. | those stricter requirements. | |||
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 | |||
security BCP is a point-in-time statement. Readers are advised to | security BCP is a point-in-time statement. Readers are advised to | |||
seek out any errata or updates that apply to this document. | seek out any errata or updates that apply to this document. | |||
2. Conventions used in this document | 2. Conventions used in this document | |||
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]. | |||
3. Recommendations | 3. General Recommendations | |||
This section provides general recommendations on the secure use of | ||||
TLS. Recommendations related to cipher suites are discussed in the | ||||
following section. | ||||
3.1. Protocol Versions | 3.1. Protocol Versions | |||
It is important both to stop using old, less secure versions of SSL/ | It is important both to stop using old, less secure versions of SSL/ | |||
TLS and to start using modern, more secure versions. Therefore: | TLS and to start using modern, more secure versions. Therefore: | |||
o Implementations MUST NOT negotiate SSL version 2. | o Implementations MUST NOT negotiate SSL version 2. | |||
Rationale: SSLv2 has serious security vulnerabilities [RFC6176]. | Rationale: SSLv2 is considered today as insecure [RFC6176]. | |||
o Implementations SHOULD 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 cipher suites. | strong cipher suites. In addition, SSLv3 does not support TLS | |||
extensions, some of which are considered security-critical today. | ||||
o Implementations SHOULD NOT negotiate TLS version 1.0 [RFC2246]. | o Implementations SHOULD NOT negotiate TLS version 1.0 [RFC2246]. | |||
Rationale: TLS 1.0 (published in 1999) includes a way to downgrade | Rationale: TLS 1.0 (published in 1999) does not support many | |||
the connection to SSLv3 and does not support more modern, strong | modern, strong cipher suites. | |||
cipher suites. | ||||
o Implementations MAY negotiate TLS version 1.1 [RFC4346]. | o Implementations MAY negotiate TLS version 1.1 [RFC4346]. | |||
Rationale: TLS 1.1 (published in 2006) prevents downgrade attacks | Rationale: TLS 1.1 (published in 2006) is a security improvement | |||
to SSL, but does not support certain stronger cipher suites. | over TLS 1.0, but still does not support certain stronger cipher | |||
suites. | ||||
o Implementations MUST support, and prefer to negotiate, TLS version | o Implementations MUST support, and prefer to negotiate, TLS version | |||
1.2 [RFC5246]. | 1.2 [RFC5246]. | |||
Rationale: Several stronger cipher suites are available only with | Rationale: Several stronger cipher suites are available only with | |||
TLS 1.2 (published in 2008). | TLS 1.2 (published in 2008). | |||
As of the date of this writing, the latest version of TLS is 1.2. | This BCP applies to TLS 1.2. It is not safe for readers to assume | |||
When TLS is updated to a newer version, this document will be updated | that the recommendations in this BCP apply to any future version of | |||
to recommend support for the latest version. If this document is not | TLS. | |||
updated in a timely manner, it can be assumed that support for the | ||||
latest version of TLS is recommended. | ||||
3.2. Fallback to SSL | 3.2. Fallback to SSL | |||
Some client implementations revert to SSLv3 if the server rejected | Some client implementations revert to lower versions of TLS or even | |||
higher versions of SSL/TLS. This fallback can be forced by a MITM | to SSLv3 if the server rejected higher versions of the protocol. | |||
attacker. Moreover, IP scans [[reference?]] show that SSLv3-only | ||||
servers amount to only about 3% of the current web server population. | This fall back can be forced by a man in the middle (MITM) attacker. | |||
Therefore, by default clients SHOULD NOT fall back from TLS to SSLv3. | By default, such clients MUST NOT fall back to SSLv3. | |||
Rationale: TLS 1.0 and SSLv3 are significantly less secure than TLS | ||||
1.2, the version recommended by this document. While TLS 1.0-only | ||||
servers are still quite common, IP scans show that SSLv3-only servers | ||||
amount to only about 3% of the current Web server population. | ||||
3.3. Always Use TLS | 3.3. Always Use TLS | |||
Combining unprotected and TLS-protected communication opens the way | Combining unprotected and TLS-protected communication opens the way | |||
to SSL Stripping and similar attacks. In cases where an application | to SSL Stripping and similar attacks. Therefore: | |||
protocol allows implementations or deployments a choice between | ||||
strict TLS configuration and dynamic upgrade from unencrypted to TLS- | ||||
protected traffic (such as STARTTLS), clients and servers SHOULD | ||||
prefer strict TLS configuration. | ||||
When applicable, Web servers SHOULD advertise that they are willing | o In cases where an application protocol allows implementations or | |||
to accept TLS-only clients, using the HTTP Strict Transport Security | deployments a choice between strict TLS configuration and dynamic | |||
(HSTS) header [RFC6797]. | upgrade from unencrypted to TLS-protected traffic (such as | |||
STARTTLS), clients and servers SHOULD prefer strict TLS | ||||
configuration. | ||||
3.4. Cipher Suites | o When applicable, Web servers SHOULD advertise that they are | |||
willing to accept TLS-only clients, using the HTTP Strict | ||||
Transport Security (HSTS) header [RFC6797]. | ||||
3.4. Compression | ||||
Implementations and deployments SHOULD disable TLS-level compression | ||||
([RFC5246], Sec. 6.2.2), because it has been subject to security | ||||
attacks. | ||||
Implementers should note that compression at higher protocol levels | ||||
can allow an active attacker to extract cleartext information from | ||||
the connection. The BREACH attack is one such case. These issues | ||||
can only be mitigated outside of TLS and are thus out of scope of the | ||||
current document. See Sec. 2.5 of [I-D.ietf-uta-tls-attacks] for | ||||
further details. | ||||
3.5. Session Resumption | ||||
If TLS session resumption is used, care ought to be taken to do so | ||||
safely. In particular, the resumption information (either session | ||||
IDs [RFC5246] or session tickets [RFC5077]) MUST be authenticated and | ||||
encrypted to prevent modification or eavesdropping by an attacker. | ||||
Further recommendations apply to session tickets: | ||||
o A strong cipher suite MUST be used when encrypting the ticket (as | ||||
least as strong as the main TLS cipher suite). | ||||
o Ticket keys MUST be changed regularly, e.g. once every week, so as | ||||
not to negate the benefits of forward secrecy (see Section 6.3 for | ||||
details on forward secrecy). | ||||
o Session ticket validity SHOULD be limited to a reasonable duration | ||||
(e.g. 1 day), for similar reasons. | ||||
3.6. Renegotiation | ||||
Where handshake renegotiation is implemented, both clients and | ||||
servers MUST implement the renegotiation_info extension, as defined | ||||
in [RFC5746]. | ||||
To counter the Triple Handshake attack, we adopt the recommendation | ||||
from [triple-handshake]: TLS clients SHOULD ensure that all | ||||
certificates received over a connection are valid for the current | ||||
server endpoint, and abort the handshake if they are not. In some | ||||
usages, it may be simplest to refuse any change of certificates | ||||
during renegotiation. | ||||
3.7. Server Name Indication | ||||
TLS implementations MUST support the Server Name Indication (SNI) | ||||
extension for those higher level protocols which would benefit from | ||||
it, including HTTPS. However, unlike implementation, the use of SNI | ||||
in particular circumstances is a matter of local policy. | ||||
4. Recommendations: Cipher Suites | ||||
TLS and its implementations provide considerable flexibility in the | ||||
selection of cipher suites. Unfortunately many available cipher | ||||
suites are insecure, and so misconfiguration can easily result in | ||||
reduced security. This section includes recommendations on the | ||||
selection and negotiation of cipher suites. | ||||
4.1. Cipher Suite Selection | ||||
It is important both to stop using old, insecure cipher suites and to | It is important both to stop using old, insecure cipher suites and to | |||
start using modern, more secure cipher suites. Therefore: | start using modern, more secure cipher suites. Therefore: | |||
o Implementations MUST NOT negotiate the NULL cipher suites. | o Implementations MUST NOT negotiate the NULL cipher suites. | |||
Rationale: The NULL cipher suites offer no encryption whatsoever | Rationale: The NULL cipher suites offer no encryption whatsoever | |||
and thus are completely insecure. | and thus are completely insecure. | |||
o Implementations MUST NOT negotiate RC4 cipher suites | o Implementations MUST NOT negotiate RC4 cipher suites | |||
skipping to change at page 5, line 16 | skipping to change at page 7, line 4 | |||
It is important both to stop using old, insecure cipher suites and to | It is important both to stop using old, insecure cipher suites and to | |||
start using modern, more secure cipher suites. Therefore: | start using modern, more secure cipher suites. Therefore: | |||
o Implementations MUST NOT negotiate the NULL cipher suites. | o Implementations MUST NOT negotiate the NULL cipher suites. | |||
Rationale: The NULL cipher suites offer no encryption whatsoever | Rationale: The NULL cipher suites offer no encryption whatsoever | |||
and thus are completely insecure. | and thus are completely insecure. | |||
o Implementations MUST NOT negotiate RC4 cipher suites | o Implementations MUST NOT negotiate RC4 cipher suites | |||
Rationale: The RC4 stream cipher has a variety of cryptographic | Rationale: The RC4 stream cipher has a variety of cryptographic | |||
weaknesses, as documented in [I-D.popov-tls-prohibiting-rc4]. | weaknesses, as documented in [I-D.ietf-tls-prohibiting-rc4]. | |||
o Implementations MUST NOT negotiate cipher suites offering only so- | o Implementations MUST NOT negotiate cipher suites offering only so- | |||
called "export-level" encryption (including algorithms with 40 | called "export-level" encryption (including algorithms with 40 | |||
bits or 56 bits of security). | bits or 56 bits of security). | |||
Rationale: These cipher suites are deliberately "dumbed down" and | Rationale: These cipher suites are deliberately "dumbed down" and | |||
are very easy to break. | are very easy to break. | |||
o Applications MUST NOT negotiate cipher suites of less than 112 | ||||
bits of security. | ||||
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. Note that | algorithms offering less than 128 bits of security. Note that | |||
some legacy cipher suites (e.g. 168-bit 3DES) have an effective | some legacy cipher suites (e.g. 168-bit 3DES) have an effective | |||
key length which is smaller than their nominal key length. Such | key length which is smaller than their nominal key length (112 | |||
cipher suites should be evaluated accoring to their effective key | bits in the case of 3DES). Such cipher suites should be evaluated | |||
length. | according to their effective key length. | |||
Rationale: Although these cipher suites are not actively subject | Rationale: Although these cipher suites are not actively subject | |||
to breakage, their useful life is short enough that stronger | to breakage, their useful lifespan is short enough that stronger | |||
cipher suites are desirable. | cipher suites are desirable. 128-bit ciphers are expected to | |||
remain secure for at least several years, and 256-bit ciphers | ||||
o Implementations SHOULD prefer cipher suites that use algorithms | "until the next fundamental technology breakthrough". | |||
with at least 128 (and, if possible, 256) bits of security. | ||||
Rationale: Although the useful life of such cipher suites is | ||||
unknown, it is probably at least several years for the 128-bit | ||||
ciphers and "until the next fundamental technology breakthrough" | ||||
for 256-bit ciphers. | ||||
o Implementations MUST support, and SHOULD prefer to negotiate, | o Implementations MUST support, and SHOULD prefer to negotiate, | |||
cipher suites offering forward secrecy, such as those in the | cipher suites offering forward secrecy, such as those in the | |||
"EDH", "DHE", and "ECDHE" families. | Ephemeral Diffie-Hellman and Elliptic Curve Ephemeral Diffie | |||
Hellman ("DHE" and "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. | which attacks can be successful. | |||
Given the foregoing considerations, implementation of the following | Given the foregoing considerations, implementation of the following | |||
cipher suites is RECOMMENDED (see [RFC5289] for details): | cipher suites is RECOMMENDED (see [RFC5289] for details): | |||
o TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | o TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | |||
skipping to change at page 6, line 17 | skipping to change at page 8, line 4 | |||
Given the foregoing considerations, implementation of the following | Given the foregoing considerations, implementation of the following | |||
cipher suites is RECOMMENDED (see [RFC5289] for details): | cipher suites is RECOMMENDED (see [RFC5289] for details): | |||
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 | |||
We suggest that TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 be preferred in | We suggest that TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 be preferred in | |||
general. | general. | |||
Unfortunately, those cipher suites are supported only in TLS 1.2 | It is noted that those cipher suites are supported only in TLS 1.2 | |||
since they are authenticated encryption (AEAD) algorithms [RFC5116]. | since they are authenticated encryption (AEAD) algorithms [RFC5116]. | |||
A future version of this document might recommend cipher suites for | ||||
earlier versions of TLS. | ||||
[RFC4492] allows clients and servers to negotiate ECDH parameters | [RFC4492] allows clients and servers to negotiate ECDH parameters | |||
(curves). Clients and servers SHOULD prefer verifiably random curves | (curves). For interoperability, clients and servers SHOULD support | |||
(specifically Brainpool P-256, brainpoolp256r1 [RFC7027]), and fall | the NIST P-256 (secp256r1) curve [RFC4492]. In addition, clients | |||
back to the commonly used NIST P-256 (secp256r1) curve [RFC4492]. In | SHOULD send an ec_point_formats extension with a single element, | |||
addition, clients SHOULD send an ec_point_formats extension with a | "uncompressed". | |||
single element, "uncompressed". | ||||
3.5. Public Key Length | ||||
Because Diffie-Hellman keys of 1024 bits are estimated to be roughly | ||||
equivalent to 80-bit symmetric keys, it is better to use longer keys | ||||
for the "DH" family of cipher suites. Unfortunately, some existing | ||||
software cannot handle (or cannot easily handle) key lengths greater | ||||
than 1024 bits. The most common workaround for these systems is to | ||||
prefer the "ECDHE" family of cipher suites instead of the "DH" | ||||
family, then use longer keys. Key lengths of at least 2048 bits are | ||||
RECOMMENDED, since they are estimated to be roughly equivalent to | ||||
112-bit symmetric keys and might be sufficient for at least the next | ||||
10 years. | ||||
In addition to 2048-bit server certificates, the use of SHA-256 | ||||
fingerprints is RECOMMENDED (see [CAB-Baseline] for more details). | ||||
Clients SHOULD indicate to servers that they request SHA-256, by | ||||
using the "Signature Algorithms" extension defined in TLS 1.2. | ||||
Note: The foregoing recommendations are preliminary and will likely | ||||
be corrected and enhanced in a future version of this document. | ||||
3.6. Compression | ||||
Implementations and deployments SHOULD disable TLS-level compression | ||||
([RFC5246], Sec. 6.2.2), because it has been subject to security | ||||
attacks. | ||||
3.7. Session Resumption | ||||
If TLS session resumption is used, care ought to be taken to do so | ||||
safely. In particular, the resumption information (either session | ||||
IDs [RFC5246] or session tickets [RFC5077]) needs to be authenticated | ||||
and encrypted to prevent modification or eavesdropping by an | ||||
attacker. For session tickets, a strong cipher suite MUST be used | ||||
when encrypting the ticket (as least as strong as the main TLS cipher | ||||
suite); ticket keys MUST be changed regularly, e.g. once every week, | ||||
so as not to negate the effect of forward secrecy. Session ticket | ||||
validity SHOULD be limited to a reasonable duration (e.g. 1 day), so | ||||
as not to negate the benefits of forward secrecy. | ||||
3.8. Renegotiation | 4.2. Public Key Length | |||
Where handshake renegotiation is implemented, both clients and | With a key exchange based on modular Diffie-Hellman ("DHE" cipher | |||
servers MUST implement the renegotiation_info extension, as defined | suites), key lengths of at least 2048 bits are RECOMMENDED. | |||
in [RFC5746]. | ||||
4. Detailed Guidelines | Rationale: because Diffie-Hellman keys of 1024 bits are estimated to | |||
be roughly equivalent to 80-bit symmetric keys, it is better to use | ||||
longer keys for the "DHE" family of cipher suites. Unfortunately, | ||||
some existing software cannot handle (or cannot easily handle) key | ||||
lengths greater than 1024 bits. The most common workaround for these | ||||
systems is to prefer the "ECDHE" family of cipher suites instead of | ||||
the "DHE" family. For modular groups, key lengths of at least 2048 | ||||
bits are estimated to be roughly equivalent to 112-bit symmetric keys | ||||
and might be sufficient for at least the next 10 years. | ||||
The following sections provide more detailed information about the | Servers SHOULD authenticate using 2048-bit certificates. In | |||
recommendations listed above. | addition, the use of SHA-256 fingerprints is RECOMMENDED (see | |||
[CAB-Baseline] for more details). Clients SHOULD indicate to servers | ||||
that they request SHA-256, by using the "Signature Algorithms" | ||||
extension defined in TLS 1.2. | ||||
4.1. Cipher Suite Negotiation Details | 4.3. Cipher Suite Negotiation Details | |||
Clients SHOULD include TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 as the | Clients SHOULD include TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 as the | |||
first proposal to any server, unless they have prior knowledge that | first proposal to any server, unless they have prior knowledge that | |||
the server cannot respond to a TLS 1.2 client_hello message. | the server cannot respond to a TLS 1.2 client_hello message. | |||
Servers SHOULD prefer this cipher suite (or a similar but stronger | Servers SHOULD prefer this cipher suite whenever it is proposed, even | |||
one) whenever it is proposed, even if it is not the first proposal. | if it is not the first proposal. | |||
Both clients and servers SHOULD include the "Supported Elliptic | Both clients and servers SHOULD include the "Supported Elliptic | |||
Curves" extension [RFC4492]. | Curves" extension [RFC4492]. | |||
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. | |||
Note that other profiles of TLS 1.2 exist that use different cipher | Note that other profiles of TLS 1.2 exist that use different cipher | |||
suites. For example, [RFC6460] defines a profile that uses the | suites. For 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. | |||
This document is not an application profile standard, in the sense of | This document is not an application profile standard, in the sense of | |||
Sec. 9 of [RFC5246]. As a result, clients and servers are still | Sec. 9 of [RFC5246]. As a result, clients and servers are still | |||
required to support the TLS mandatory cipher suite, | REQUIRED to support the mandatory TLS cipher suite, | |||
TLS_RSA_WITH_AES_128_CBC_SHA. | TLS_RSA_WITH_AES_128_CBC_SHA. | |||
4.2. Alternative Cipher Suites | 4.4. Modular vs. Elliptic Curve DH Cipher Suites | |||
Elliptic Curves Cryptography is not universally deployed for several | Not all TLS implementations support both modular and EC Diffie- | |||
reasons, including its complexity compared to modular arithmetic and | Hellman groups, as required by Section 4.1. Some implementations are | |||
longstanding IPR concerns. On the other hand, there are two related | severely limited in the length of DH values. When such | |||
issues hindering effective use of modular Diffie-Hellman cipher | implementations need to be accommodated, we recommend using (in | |||
suites in TLS: | priority order): | |||
1. Elliptic Curve DHE with negotiated parameters [RFC5289] | ||||
2. TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 [RFC5288], with 2048-bit | ||||
Diffie-Hellman parameters | ||||
3. The same cipher suite, with 1024-bit parameters. | ||||
Rationale: Elliptic Curve Cryptography is not universally deployed | ||||
for several reasons, including its complexity compared to modular | ||||
arithmetic and longstanding IPR concerns. On the other hand, there | ||||
are two related issues hindering effective use of modular Diffie- | ||||
Hellman cipher suites in TLS: | ||||
o There are no protocol mechanisms to negotiate the DH groups or | o There are no protocol mechanisms to negotiate the DH groups or | |||
parameter lengths supported by client and server. | parameter lengths supported by client and server. | |||
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. | received DH parameters if they are longer than 1024 bits. | |||
We note that with DHE and ECDHE cipher suites, the TLS master key | We note that with DHE and ECDHE cipher suites, the TLS master key | |||
only depends on the Diffie Hellman parameters and not on the strength | only depends on the Diffie Hellman parameters and not on the strength | |||
the the RSA certificate; moreover, 1024 bits DH parameters are | of the RSA certificate; moreover, 1024 bit modular DH parameters are | |||
generally considered insufficient at this time. | generally considered insufficient at this time. | |||
Because of the above, we recommend using (in priority order): | ||||
1. Elliptic Curve DHE with negotiated parameters [RFC5289] | ||||
2. TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 [RFC5288], with 2048-bit | ||||
Diffie-Hellman parameters | ||||
3. The same cipher suite, with 1024-bit parameters. | ||||
With modular ephemeral DH, deployers SHOULD carefully evaluate | With modular ephemeral DH, deployers SHOULD carefully evaluate | |||
interoperability vs. security considerations when configuring their | interoperability vs. security considerations when configuring their | |||
TLS endpoints. | TLS endpoints. | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document requests no actions of IANA. | This document requests no actions of IANA. [Note to RFC Editor: | |||
please remove this whole section before publication.] | ||||
6. Security Considerations | 6. Security Considerations | |||
6.1. AES-GCM | This entire document discusses security practices, and this section | |||
adds a few security considerations and includes further discussion of | ||||
particular recommendations. | ||||
6.1. Host Name Validation | ||||
Application authors should take note that TLS implementations | ||||
frequently do not validate host names, and must therefore determine | ||||
if the TLS implementation they are using does, and if not write their | ||||
own validation code or consider changing the TLS implementation. | ||||
It is noted that the requirements regarding host name validation (and | ||||
in general, binding between the TLS layer and the protocol that runs | ||||
above it) vary between different protocols. For HTTPS, these | ||||
requirements are defined by Sec. 3 of [RFC2818]. | ||||
Readers are referred to [RFC6125] for further details regarding | ||||
generic host name validation in the TLS context. In addition, the | ||||
RFC contains a long list of example protocols, some of which | ||||
implement a policy very different from HTTPS. | ||||
6.2. AES-GCM | ||||
Please refer to [RFC5246], Sec. 11 for general security | Please refer to [RFC5246], Sec. 11 for general security | |||
considerations when using TLS 1.2, and to [RFC5288], Sec. 6 for | considerations when using TLS 1.2, and to [RFC5288], Sec. 6 for | |||
security considerations that apply specifically to AES-GCM when used | security considerations that apply specifically to AES-GCM when used | |||
with TLS. | with TLS. | |||
6.2. Forward Secrecy | 6.3. Forward Secrecy | |||
Forward secrecy (also often called Perfect Forward Secrecy or "PFS") | Forward secrecy (also often called Perfect Forward Secrecy or "PFS") | |||
is a defense against an attacker who records encrypted conversations | is a defense against an attacker who records encrypted conversations | |||
where the session keys are only encrypted with the communicating | where the session keys are only encrypted with the communicating | |||
parties' long-term keys. Should the attacker be able to obtain these | parties' long-term keys. Should the attacker be able to obtain these | |||
long-term keys at some point later in the future, he will be able to | long-term keys at some point later in time, he will be able to | |||
decrypt the session keys and thus the entire conversation. In the | decrypt the session keys and thus the entire conversation. In the | |||
context of TLS and DTLS, such compromise of long-term keys is not | context of TLS and DTLS, such compromise of long-term keys is not | |||
entirely implausible. It can happen, for example, due to: | entirely implausible. It can happen, for 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. | |||
skipping to change at page 10, line 8 | skipping to change at page 11, line 30 | |||
possession of the long-term keys, but remains passive during the | possession of the long-term keys, but remains passive during the | |||
conversation. | conversation. | |||
PFS is generally achieved by using the Diffie-Hellman scheme to | PFS is generally achieved by using the Diffie-Hellman scheme to | |||
derive session keys. The Diffie-Hellman scheme has both parties | derive session keys. The Diffie-Hellman scheme has both parties | |||
maintain private secrets and send parameters over the network as | maintain private secrets and send parameters over the network as | |||
modular powers over certain cyclic groups. The properties of the so- | modular powers over certain cyclic groups. The properties of the so- | |||
called Discrete Logarithm Problem (DLP) allow to derive the session | called Discrete Logarithm Problem (DLP) allow to derive the session | |||
keys without an eavesdropper being able to do so. There is currently | keys without an eavesdropper being able to do so. There is currently | |||
no known attack against DLP if sufficiently large parameters are | no known attack against DLP if sufficiently large parameters are | |||
chosen. | chosen. A variant of the Diffie-Hellman scheme uses Elliptic Curves | |||
instead of the originally proposed modular arithmetics. | ||||
Unfortunately, many TLS/DTLS cipher suites were defined that do not | Unfortunately, many TLS/DTLS cipher suites were defined that do not | |||
enable PFS, e.g. TLS_RSA_WITH_AES_256_CBC_SHA256. We thus advocate | feature PFS, e.g. TLS_RSA_WITH_AES_256_CBC_SHA256. We thus advocate | |||
strict use of PFS-only ciphers. | strict use of PFS-only ciphers. | |||
6.3. Certificate Revocation | 6.4. Diffie Hellman Exponent Reuse | |||
For performance reasons, many TLS implementations reuse Diffie- | ||||
Hellman and Elliptic Curve Diffie-Hellman exponents across multiple | ||||
connections. Such reuse can result in major security issues: | ||||
o If exponents are reused for a long time (e.g., more than a few | ||||
hours), an attacker who gains access to the host can decrypt | ||||
previous connections. In other words, exponent reuse negates the | ||||
effects of forward secrecy. | ||||
o TLS implementations that reuse exponents should test the DH public | ||||
key they receive, in order to avoid some known attacks. These | ||||
tests are not standardized in TLS at the time of writing. See | ||||
[RFC6989] for recipient tests required of IKEv2 implementations | ||||
that reuse DH exponents. | ||||
6.5. Certificate Revocation | ||||
Unfortunately there is currently no effective, Internet-scale | Unfortunately there is currently no effective, Internet-scale | |||
mechanism to affect certificate revocation: | mechanism to affect certificate revocation: | |||
o Certificate Revocation Lists (CRLs) are non-scalable and therefore | o Certificate Revocation Lists (CRLs) are non-scalable and therefore | |||
often unused. | rarely used. | |||
o The On-Line Certification Status Prorocol (OCSP) presents both | o The On-Line Certification Status Protocol (OCSP) presents both | |||
scaling and privacy issues when used for heavy traffic Web | scaling and privacy issues when used for heavy traffic Web | |||
servers. In addition, clients typically "soft-fail", meaning they | servers. In addition, clients typically "soft-fail", meaning they | |||
do not abort the TLS connection if the OCSP server does not | do not abort the TLS connection if the OCSP server does not | |||
respond. | respond. | |||
o OCSP stapling (Sec. 8 of [RFC6066]) resolves the operational | o OCSP stapling (Sec. 8 of [RFC6066]) resolves the operational | |||
issues with OCSP, but is still ineffective in the presence of a | issues with OCSP, but is still ineffective in the presence of a | |||
MITM atacker, because they can simply ignore the client's request. | MITM attacker because they can simply ignore the client's request | |||
for a stapled OCSP response. | ||||
o OCSP stapling as defined in [RFC6066] does not extend to | ||||
intermediate certificates used in a certificate chain. [RFC6961] | ||||
addresses this shortcoming, but is a recent addition without much | ||||
deployment. | ||||
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. | |||
The current consensus appears to be that OCSP stapling, combined with | The current consensus appears to be that OCSP stapling, combined with | |||
a "must staple" mechanism similar to HSTS, would finally resolve this | a "must staple" mechanism similar to HSTS, would finally resolve this | |||
problem. But such a mechanism has not been standardized yet. | problem; in particular when used together with the extension defined | |||
in [RFC6961]. But such a mechanism has not been standardized yet. | ||||
7. Acknowledgements | 7. Acknowledgments | |||
We would like to thank Stephen Farrell, Simon Josefsson, Johannes | We would like to thank Stephen Farrell, Simon Josefsson, Watson Ladd, | |||
Merkle, Yoav Nir, Kenny Paterson, Patrick Pelletier, Tom Ritter and | Johannes Merkle, Bodo Moeller, Yoav Nir, Kenny Paterson, Patrick | |||
Rich Salz for their review. Thanks to Brian Smith whose "browser | Pelletier, Tom Ritter, Rich Salz, Aaron Zauner for their review. | |||
cipher suites" page is a great resource. Finally, thanks to all | Thanks to Brian Smith whose "browser cipher suites" page is a great | |||
others who commented on the TLS and other lists and are not mentioned | resource. Finally, thanks to all others who commented on the TLS, | |||
here by name. | UTA and other lists and are not mentioned here by name. | |||
8. References | 8. References | |||
8.1. Normative References | 8.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. | |||
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. | ||||
[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. | |||
[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. | |||
[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. | |||
[RFC5289] Rescorla, E., "TLS Elliptic Curve Cipher Suites with | [RFC5289] Rescorla, E., "TLS Elliptic Curve Cipher Suites with | |||
SHA-256/384 and AES Galois Counter Mode (GCM)", RFC 5289, | SHA-256/384 and AES Galois Counter Mode (GCM)", RFC 5289, | |||
August 2008. | August 2008. | |||
[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. | |||
[RFC6125] Saint-Andre, P. and J. Hodges, "Representation and | ||||
Verification of Domain-Based Application Service Identity | ||||
within Internet Public Key Infrastructure Using X.509 | ||||
(PKIX) Certificates in the Context of Transport Layer | ||||
Security (TLS)", RFC 6125, March 2011. | ||||
[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. | |||
[RFC7027] Merkle, J. and M. Lochter, "Elliptic Curve Cryptography | ||||
(ECC) Brainpool Curves for Transport Layer Security | ||||
(TLS)", RFC 7027, October 2013. | ||||
8.2. Informative References | 8.2. Informative References | |||
[CAB-Baseline] | [CAB-Baseline] | |||
"Baseline Requirements for the Issuance and Management of | CA/Browser Forum, , "Baseline Requirements for the | |||
Publicly-Trusted Certificates Version 1.1.6", 2013, | Issuance and Management of Publicly-Trusted Certificates | |||
<https://www.cabforum.org/documents.html>. | Version 1.1.6", 2013, <https://www.cabforum.org/ | |||
documents.html>. | ||||
[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.popov-tls-prohibiting-rc4] | [I-D.ietf-tls-prohibiting-rc4] | |||
Popov, A., "Prohibiting RC4 Cipher Suites", draft-popov- | Popov, A., "Prohibiting RC4 Cipher Suites", draft-ietf- | |||
tls-prohibiting-rc4-02 (work in progress), April 2014. | tls-prohibiting-rc4-00 (work in progress), July 2014. | |||
[I-D.sheffer-uta-tls-attacks] | [I-D.ietf-uta-tls-attacks] | |||
Sheffer, Y., Holz, R., and P. Saint-Andre, "Summarizing | Sheffer, Y., Holz, R., and P. Saint-Andre, "Summarizing | |||
Current Attacks on TLS and DTLS", draft-sheffer-uta-tls- | Current Attacks on TLS and DTLS", draft-ietf-uta-tls- | |||
attacks-00 (work in progress), February 2014. | attacks-01 (work in progress), June 2014. | |||
[Kleinjung2010] | [Kleinjung2010] | |||
Kleinjung, T., "Factorization of a 768-Bit RSA Modulus", | Kleinjung, T., "Factorization of a 768-Bit RSA Modulus", | |||
CRYPTO 10, 2010. | CRYPTO 10, 2010, <https://eprint.iacr.org/2010/006.pdf>. | |||
[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. | |||
[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. | |||
[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. | |||
skipping to change at page 12, line 44 | skipping to change at page 14, line 44 | |||
[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. | |||
[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. | |||
[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. | |||
[RFC6961] Pettersen, Y., "The Transport Layer Security (TLS) | ||||
Multiple Certificate Status Request Extension", RFC 6961, | ||||
June 2013. | ||||
[RFC6989] Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman | ||||
Tests for the Internet Key Exchange Protocol Version 2 | ||||
(IKEv2)", RFC 6989, July 2013. | ||||
[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. | |||
Appendix A. Appendix: Change Log | [triple-handshake] | |||
Delignat-Lavaud, A., Bhargavan, K., and A. Pironti, | ||||
"Triple Handshakes Considered Harmful: Breaking and Fixing | ||||
Authentication over TLS", 2014, <https://secure- | ||||
resumption.com/>. | ||||
Appendix A. Change Log | ||||
Note to RFC Editor: please remove this section before publication. | Note to RFC Editor: please remove this section before publication. | |||
A.1. draft-ietf-tls-bcp-01 | A.1. draft-ietf-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.2. draft-ietf-tls-bcp-01 | ||||
o Clarified that specific TLS-using protocols may have stricter | o Clarified that specific TLS-using protocols may have stricter | |||
requirements. | requirements. | |||
o Changed TLS 1.0 from MAY to SHUOLD NOT. | o Changed TLS 1.0 from MAY to SHOULD NOT. | |||
o Added discussion of "optional TLS" and HSTS. | o Added discussion of "optional TLS" and HSTS. | |||
o Recommended use of the Signature Algorithm and Renegotiation Info | o Recommended use of the Signature Algorithm and Renegotiation Info | |||
extensions. | extensions. | |||
o Use of a strong cipher for a resumption ticket: changed SHOULD to | o Use of a strong cipher for a resumption ticket: changed SHOULD to | |||
MUST. | MUST. | |||
o Added an informational discussion of certificate revocation, but | o Added an informational discussion of certificate revocation, but | |||
no recommendations. | no recommendations. | |||
A.2. draft-ietf-tls-bcp-00 | A.3. draft-ietf-tls-bcp-00 | |||
o Initial WG version, with only updated references. | o Initial WG version, with only updated references. | |||
A.3. draft-sheffer-tls-bcp-02 | A.4. draft-sheffer-tls-bcp-02 | |||
o Reorganized the content to focus on recommendations. | o Reorganized the content to focus on recommendations. | |||
o Moved description of attacks to a separate document (draft- | o Moved description of attacks to a separate document (draft- | |||
sheffer-uta-tls-attacks). | sheffer-uta-tls-attacks). | |||
o Strengthened recommendations regarding session resumption. | o Strengthened recommendations regarding session resumption. | |||
A.4. draft-sheffer-tls-bcp-01 | A.5. draft-sheffer-tls-bcp-01 | |||
o Clarified our motivation in the introduction. | o Clarified our motivation in the introduction. | |||
o Added a section justifying the need for PFS. | o Added a section justifying the need for PFS. | |||
o Added recommendations for RSA and DH parameter lengths. Moved | o Added recommendations for RSA and DH parameter lengths. Moved | |||
from DHE to ECDHE, with a discussion on whether/when DHE is | from DHE to ECDHE, with a discussion on whether/when DHE is | |||
appropriate. | appropriate. | |||
o Recommendation to avoid fallback to SSLv3. | o Recommendation to avoid fallback to SSLv3. | |||
skipping to change at page 14, line 4 | skipping to change at page 16, line 37 | |||
o Added a section justifying the need for PFS. | o Added a section justifying the need for PFS. | |||
o Added recommendations for RSA and DH parameter lengths. Moved | o Added recommendations for RSA and DH parameter lengths. Moved | |||
from DHE to ECDHE, with a discussion on whether/when DHE is | from DHE to ECDHE, with a discussion on whether/when DHE is | |||
appropriate. | appropriate. | |||
o Recommendation to avoid fallback to SSLv3. | o Recommendation to avoid fallback to SSLv3. | |||
o Initial information about browser support - more still needed! | o Initial information about browser support - more still needed! | |||
o More clarity on compression. | o More clarity on compression. | |||
o Client can offer stronger cipher suites. | o Client can offer stronger cipher suites. | |||
o Discussion of the regular TLS mandatory cipher suite. | o Discussion of the regular TLS mandatory cipher suite. | |||
A.5. draft-sheffer-tls-bcp-00 | A.6. draft-sheffer-tls-bcp-00 | |||
o Initial version. | o Initial version. | |||
Authors' Addresses | Authors' Addresses | |||
Yaron Sheffer | Yaron Sheffer | |||
Porticor | Porticor | |||
29 HaHarash St. | 29 HaHarash St. | |||
Hod HaSharon 4501303 | Hod HaSharon 4501303 | |||
Israel | Israel | |||
Email: yaronf.ietf@gmail.com | Email: yaronf.ietf@gmail.com | |||
Ralph Holz | Ralph Holz | |||
Technische Universitaet Muenchen | Technische Universitaet Muenchen | |||
End of changes. 75 change blocks. | ||||
199 lines changed or deleted | 323 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |