| < 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.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||