| < draft-ietf-uta-tls-bcp-00.txt | draft-ietf-uta-tls-bcp-01.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: September 28, 2014 TUM | Expires: December 26, 2014 TUM | |||
| P. Saint-Andre | P. Saint-Andre | |||
| &yet | &yet | |||
| March 27, 2014 | June 24, 2014 | |||
| Recommendations for Secure Use of TLS and DTLS | Recommendations for Secure Use of TLS and DTLS | |||
| draft-ietf-uta-tls-bcp-00 | draft-ietf-uta-tls-bcp-01 | |||
| 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 September 28, 2014. | This Internet-Draft will expire on December 26, 2014. | |||
| 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 | |||
| skipping to change at page 2, line 18 ¶ | skipping to change at page 2, line 18 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions used in this document . . . . . . . . . . . . . . 3 | |||
| 3. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. Protocol Versions . . . . . . . . . . . . . . . . . . . . 3 | 3.1. Protocol Versions . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3.2. Fallback to SSL . . . . . . . . . . . . . . . . . . . . . 4 | 3.2. Fallback to SSL . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.3. Cipher Suites . . . . . . . . . . . . . . . . . . . . . . 4 | 3.3. Always Use TLS . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.4. Public Key Length . . . . . . . . . . . . . . . . . . . . 6 | 3.4. Cipher Suites . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.5. Compression . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.5. Public Key Length . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.6. Session Resumption . . . . . . . . . . . . . . . . . . . 6 | 3.6. Compression . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Detailed Guidelines . . . . . . . . . . . . . . . . . . . . . 6 | 3.7. Session Resumption . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.8. Renegotiation . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
| 4. Detailed Guidelines . . . . . . . . . . . . . . . . . . . . . 7 | ||||
| 4.1. Cipher Suite Negotiation Details . . . . . . . . . . . . 7 | 4.1. Cipher Suite Negotiation Details . . . . . . . . . . . . 7 | |||
| 4.2. Alternative Cipher Suites . . . . . . . . . . . . . . . . 7 | 4.2. Alternative Cipher Suites . . . . . . . . . . . . . . . . 8 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 6.1. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 6.1. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 6.2. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 8 | 6.2. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | 6.3. Certificate Revocation . . . . . . . . . . . . . . . . . 10 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
| Appendix A. Appendix: Change Log . . . . . . . . . . . . . . . . 11 | 8.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
| A.1. draft-ietf-tls-bcp-00 . . . . . . . . . . . . . . . . . . 11 | Appendix A. Appendix: Change Log . . . . . . . . . . . . . . . . 13 | |||
| A.2. draft-sheffer-tls-bcp-02 . . . . . . . . . . . . . . . . 11 | A.1. draft-ietf-tls-bcp-01 . . . . . . . . . . . . . . . . . . 13 | |||
| A.3. draft-sheffer-tls-bcp-01 . . . . . . . . . . . . . . . . 11 | A.2. draft-ietf-tls-bcp-00 . . . . . . . . . . . . . . . . . . 13 | |||
| A.4. draft-sheffer-tls-bcp-00 . . . . . . . . . . . . . . . . 12 | A.3. draft-sheffer-tls-bcp-02 . . . . . . . . . . . . . . . . 13 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | A.4. draft-sheffer-tls-bcp-01 . . . . . . . . . . . . . . . . 13 | |||
| A.5. draft-sheffer-tls-bcp-00 . . . . . . . . . . . . . . . . 14 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
| 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 | |||
| skipping to change at page 3, line 18 ¶ | skipping to change at page 3, line 21 ¶ | |||
| 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 implementatios at the time of writing. These | |||
| recommendations apply to both TLS and DTLS. TLS 1.3, when it is | recommendations apply to both TLS and DTLS. TLS 1.3, when it is | |||
| standardized and deployed in the field, should resolve the current | 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 the current document. | and will very likely obsolete this document. | |||
| These are minimum recommendations for the general use of TLS. | ||||
| Individual specifications may have stricter requirements related to | ||||
| one or more aspects of the protocol, and based on their particular | ||||
| circumstances. When that is the case, implementers MUST adhere to | ||||
| 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 | |||
| skipping to change at page 3, line 48 ¶ | skipping to change at page 4, line 9 ¶ | |||
| 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 has serious security vulnerabilities [RFC6176]. | |||
| o Implementations SHOULD NOT negotiate SSL version 3. | o Implementations SHOULD 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. | |||
| o Implementations MAY 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) includes a way to downgrade | |||
| the connection to SSLv3 and does not support more modern, strong | the connection to SSLv3 and does not support more 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) prevents downgrade attacks | |||
| to SSL, but does not support certain stronger cipher suites. | to SSL, but does not support certain stronger cipher suites. | |||
| skipping to change at page 4, line 30 ¶ | skipping to change at page 4, line 40 ¶ | |||
| latest version of TLS is recommended. | 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 SSLv3 if the server rejected | |||
| higher versions of SSL/TLS. This fallback can be forced by a MITM | higher versions of SSL/TLS. This fallback can be forced by a MITM | |||
| attacker. Moreover, IP scans [[reference?]] show that SSLv3-only | attacker. Moreover, IP scans [[reference?]] show that SSLv3-only | |||
| servers amount to only about 3% of the current web server population. | servers amount to only about 3% of the current web server population. | |||
| Therefore, by default clients SHOULD NOT fall back from TLS to SSLv3. | Therefore, by default clients SHOULD NOT fall back from TLS to SSLv3. | |||
| 3.3. Cipher Suites | 3.3. Always Use TLS | |||
| Combining unprotected and TLS-protected communication opens the way | ||||
| to SSL Stripping and similar attacks. In cases where an application | ||||
| protocol allows implementations or deployments a choice between | ||||
| strict TLS configuration and dynamic upgrade from unencrypted to TLS- | ||||
| protected traffic (such as STARTTLS), clients and servers SHOULD | ||||
| prefer strict TLS configuration. | ||||
| 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. Cipher Suites | ||||
| 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 6 ¶ | skipping to change at page 5, line 28 ¶ | |||
| weaknesses, as documented in [I-D.popov-tls-prohibiting-rc4]. | weaknesses, as documented in [I-D.popov-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 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 (even if they | algorithms offering less than 128 bits of security. Note that | |||
| advertise more bits, such as the 168-bit 3DES cipher suites). | some legacy cipher suites (e.g. 168-bit 3DES) have an effective | |||
| key length which is smaller than their nominal key length. Such | ||||
| cipher suites should be evaluated accoring 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 life is short enough that stronger | |||
| cipher suites are desirable. | cipher suites are desirable. | |||
| o Implementations SHOULD prefer cipher suites that use algorithms | o Implementations SHOULD prefer cipher suites that use algorithms | |||
| with at least 128 (and, if possible, 256) bits of security. | with at least 128 (and, if possible, 256) bits of security. | |||
| Rationale: Although the useful life of such cipher suites is | Rationale: Although the useful life of such cipher suites is | |||
| unknown, it is probably at least several years for the 128-bit | unknown, it is probably at least several years for the 128-bit | |||
| skipping to change at page 6, line 7 ¶ | skipping to change at page 6, line 33 ¶ | |||
| A future version of this document might recommend cipher suites for | A future version of this document might recommend cipher suites for | |||
| earlier versions of TLS. | 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). Clients and servers SHOULD prefer verifiably random curves | |||
| (specifically Brainpool P-256, brainpoolp256r1 [RFC7027]), and fall | (specifically Brainpool P-256, brainpoolp256r1 [RFC7027]), and fall | |||
| back to the commonly used NIST P-256 (secp256r1) curve [RFC4492]. In | back to the commonly used NIST P-256 (secp256r1) curve [RFC4492]. In | |||
| addition, clients SHOULD send an ec_point_formats extension with a | addition, clients SHOULD send an ec_point_formats extension with a | |||
| single element, "uncompressed". | single element, "uncompressed". | |||
| 3.4. Public Key Length | 3.5. Public Key Length | |||
| Because Diffie-Hellman keys of 1024 bits are estimated to be roughly | 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 | equivalent to 80-bit symmetric keys, it is better to use longer keys | |||
| for the "DH" family of cipher suites. Unfortunately, some existing | for the "DH" family of cipher suites. Unfortunately, some existing | |||
| software cannot handle (or cannot easily handle) key lengths greater | software cannot handle (or cannot easily handle) key lengths greater | |||
| than 1024 bits. The most common workaround for these systems is to | than 1024 bits. The most common workaround for these systems is to | |||
| prefer the "ECDHE" family of cipher suites instead of the "DH" | prefer the "ECDHE" family of cipher suites instead of the "DH" | |||
| family, then use longer keys. Key lengths of at least 2048 bits are | family, then use longer keys. Key lengths of at least 2048 bits are | |||
| RECOMMENDED, since they are estimated to be roughly equivalent to | RECOMMENDED, since they are estimated to be roughly equivalent to | |||
| 112-bit symmetric keys and might be sufficient for at least the next | 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 | 10 years. | |||
| SHA-256 fingerprints is RECOMMENDED (see [CAB-Baseline] for more | ||||
| details). | 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 | Note: The foregoing recommendations are preliminary and will likely | |||
| be corrected and enhanced in a future version of this document. | be corrected and enhanced in a future version of this document. | |||
| 3.5. Compression | 3.6. Compression | |||
| Implementations and deployments SHOULD disable TLS-level compression | Implementations and deployments SHOULD disable TLS-level compression | |||
| ([RFC5246], Sec. 6.2.2). | ([RFC5246], Sec. 6.2.2), because it has been subject to security | |||
| attacks. | ||||
| 3.6. Session Resumption | 3.7. Session Resumption | |||
| If TLS session resumption is used, care ought to be taken to do so | If TLS session resumption is used, care ought to be taken to do so | |||
| safely. In particular, the resumption information (either session | safely. In particular, the resumption information (either session | |||
| IDs [RFC5246] or session tickets [RFC5077]) needs to be authenticated | IDs [RFC5246] or session tickets [RFC5077]) needs to be authenticated | |||
| and encrypted to prevent modification or eavesdropping by an | and encrypted to prevent modification or eavesdropping by an | |||
| attacker. For session tickets, a strong cipher suite SHOULD be used | attacker. For session tickets, a strong cipher suite MUST be used | |||
| when encrypting the ticket (as least as strong as the main TLS cipher | 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, | suite); ticket keys MUST be changed regularly, e.g. once every week, | |||
| so as not to negate the effect of forward secrecy. Session ticket | 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 | validity SHOULD be limited to a reasonable duration (e.g. 1 day), so | |||
| as not to negate the benefits of forward secrecy. | as not to negate the benefits of forward secrecy. | |||
| 3.8. Renegotiation | ||||
| Where handshake renegotiation is implemented, both clients and | ||||
| servers MUST implement the renegotiation_info extension, as defined | ||||
| in [RFC5746]. | ||||
| 4. Detailed Guidelines | 4. Detailed Guidelines | |||
| The following sections provide more detailed information about the | The following sections provide more detailed information about the | |||
| recommendations listed above. | recommendations listed above. | |||
| 4.1. Cipher Suite Negotiation Details | 4.1. 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. | |||
| skipping to change at page 9, line 24 ¶ | skipping to change at page 10, line 11 ¶ | |||
| 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. | |||
| 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 | enable 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 | ||||
| Unfortunately there is currently no effective, Internet-scale | ||||
| mechanism to affect certificate revocation: | ||||
| o Certificate Revocation Lists (CRLs) are non-scalable and therefore | ||||
| often unused. | ||||
| o The On-Line Certification Status Prorocol (OCSP) presents both | ||||
| scaling and privacy issues when used for heavy traffic Web | ||||
| servers. In addition, clients typically "soft-fail", meaning they | ||||
| do not abort the TLS connection if the OCSP server does not | ||||
| respond. | ||||
| o OCSP stapling (Sec. 8 of [RFC6066]) resolves the operational | ||||
| issues with OCSP, but is still ineffective in the presence of a | ||||
| MITM atacker, because they can simply ignore the client's request. | ||||
| o Proprietary mechanisms that embed revocation lists in the Web | ||||
| browser's configuration database cannot scale beyond a small | ||||
| number of the most heavily used Web servers. | ||||
| The current consensus appears to be that OCSP stapling, combined with | ||||
| a "must staple" mechanism similar to HSTS, would finally resolve this | ||||
| problem. But such a mechanism has not been standardized yet. | ||||
| 7. Acknowledgements | 7. Acknowledgements | |||
| We would like to thank Stephen Farrell, Simon Josefsson, Yoav Nir, | We would like to thank Stephen Farrell, Simon Josefsson, Johannes | |||
| Kenny Paterson, Patrick Pelletier, and Rich Salz for their review. | Merkle, Yoav Nir, Kenny Paterson, Patrick Pelletier, Tom Ritter and | |||
| Thanks to Brian Smith whose "browser cipher suites" page is a great | Rich Salz for their review. Thanks to Brian Smith whose "browser | |||
| resource. Finally, thanks to all others who commented on the TLS and | cipher suites" page is a great resource. Finally, thanks to all | |||
| other lists and are not mentioned here by name. | others who commented on the TLS 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. | |||
| [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 | |||
| skipping to change at page 10, line 9 ¶ | skipping to change at page 11, line 27 ¶ | |||
| (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, | ||||
| "Transport Layer Security (TLS) Renegotiation Indication | ||||
| Extension", RFC 5746, February 2010. | ||||
| [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 | [RFC7027] Merkle, J. and M. Lochter, "Elliptic Curve Cryptography | |||
| (ECC) Brainpool Curves for Transport Layer Security | (ECC) Brainpool Curves for Transport Layer Security | |||
| (TLS)", RFC 7027, October 2013. | (TLS)", RFC 7027, October 2013. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [CAB-Baseline] | [CAB-Baseline] | |||
| skipping to change at page 10, line 31 ¶ | skipping to change at page 12, line 7 ¶ | |||
| <https://www.cabforum.org/documents.html>. | <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.popov-tls-prohibiting-rc4] | |||
| Popov, A., "Prohibiting RC4 Cipher Suites", draft-popov- | Popov, A., "Prohibiting RC4 Cipher Suites", draft-popov- | |||
| tls-prohibiting-rc4-01 (work in progress), October 2013. | tls-prohibiting-rc4-02 (work in progress), April 2014. | |||
| [I-D.sheffer-uta-tls-attacks] | [I-D.sheffer-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-sheffer-uta-tls- | |||
| attacks-00 (work in progress), February 2014. | attacks-00 (work in progress), February 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. | |||
| skipping to change at page 11, line 8 ¶ | skipping to change at page 12, line 31 ¶ | |||
| [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. | |||
| [RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated | [RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated | |||
| Encryption", RFC 5116, January 2008. | Encryption", RFC 5116, January 2008. | |||
| [RFC6066] Eastlake, D., "Transport Layer Security (TLS) Extensions: | ||||
| Extension Definitions", RFC 6066, January 2011. | ||||
| [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 | ||||
| Transport Security (HSTS)", RFC 6797, November 2012. | ||||
| [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 | Appendix A. Appendix: 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-00 | A.1. draft-ietf-tls-bcp-01 | |||
| o Clarified that specific TLS-using protocols may have stricter | ||||
| requirements. | ||||
| o Changed TLS 1.0 from MAY to SHUOLD NOT. | ||||
| o Added discussion of "optional TLS" and HSTS. | ||||
| o Recommended use of the Signature Algorithm and Renegotiation Info | ||||
| extensions. | ||||
| o Use of a strong cipher for a resumption ticket: changed SHOULD to | ||||
| MUST. | ||||
| o Added an informational discussion of certificate revocation, but | ||||
| no recommendations. | ||||
| A.2. draft-ietf-tls-bcp-00 | ||||
| o Initial WG version, with only updated references. | o Initial WG version, with only updated references. | |||
| A.2. draft-sheffer-tls-bcp-02 | A.3. 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.3. draft-sheffer-tls-bcp-01 | A.4. 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 11, line 51 ¶ | skipping to change at page 14, line 4 ¶ | |||
| 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.4. draft-sheffer-tls-bcp-00 | A.5. 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 | |||
| End of changes. 29 change blocks. | ||||
| 49 lines changed or deleted | 139 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/ | ||||