--- 1/draft-ietf-uta-tls-bcp-00.txt 2014-06-23 15:14:24.496825475 -0700 +++ 2/draft-ietf-uta-tls-bcp-01.txt 2014-06-23 15:14:24.524826167 -0700 @@ -1,21 +1,21 @@ UTA Y. Sheffer Internet-Draft Porticor Intended status: Best Current Practice R. Holz -Expires: September 28, 2014 TUM +Expires: December 26, 2014 TUM P. Saint-Andre &yet - March 27, 2014 + June 24, 2014 Recommendations for Secure Use of TLS and DTLS - draft-ietf-uta-tls-bcp-00 + draft-ietf-uta-tls-bcp-01 Abstract Transport Layer Security (TLS) and Datagram Transport Security Layer (DTLS) are widely used to protect data exchanged over application protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the last few years, several serious attacks on TLS have emerged, including attacks on its most commonly used cipher suites and modes of operation. This document provides recommendations for improving the security of both software implementations and deployed services @@ -29,21 +29,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference 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 (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -53,41 +53,45 @@ the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions used in this document . . . . . . . . . . . . . . 3 3. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Protocol Versions . . . . . . . . . . . . . . . . . . . . 3 3.2. Fallback to SSL . . . . . . . . . . . . . . . . . . . . . 4 - 3.3. Cipher Suites . . . . . . . . . . . . . . . . . . . . . . 4 - 3.4. Public Key Length . . . . . . . . . . . . . . . . . . . . 6 - 3.5. Compression . . . . . . . . . . . . . . . . . . . . . . . 6 - 3.6. Session Resumption . . . . . . . . . . . . . . . . . . . 6 - 4. Detailed Guidelines . . . . . . . . . . . . . . . . . . . . . 6 + 3.3. Always Use TLS . . . . . . . . . . . . . . . . . . . . . 4 + 3.4. Cipher Suites . . . . . . . . . . . . . . . . . . . . . . 5 + 3.5. Public Key Length . . . . . . . . . . . . . . . . . . . . 6 + 3.6. Compression . . . . . . . . . . . . . . . . . . . . . . . 7 + 3.7. Session Resumption . . . . . . . . . . . . . . . . . . . 7 + 3.8. Renegotiation . . . . . . . . . . . . . . . . . . . . . . 7 + 4. Detailed Guidelines . . . . . . . . . . . . . . . . . . . . . 7 4.1. Cipher Suite Negotiation Details . . . . . . . . . . . . 7 - 4.2. Alternative Cipher Suites . . . . . . . . . . . . . . . . 7 - 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 - 6.1. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 6.2. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 8 - 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 - 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 8.1. Normative References . . . . . . . . . . . . . . . . . . 9 - 8.2. Informative References . . . . . . . . . . . . . . . . . 10 - Appendix A. Appendix: Change Log . . . . . . . . . . . . . . . . 11 - A.1. draft-ietf-tls-bcp-00 . . . . . . . . . . . . . . . . . . 11 - A.2. draft-sheffer-tls-bcp-02 . . . . . . . . . . . . . . . . 11 - A.3. draft-sheffer-tls-bcp-01 . . . . . . . . . . . . . . . . 11 - A.4. draft-sheffer-tls-bcp-00 . . . . . . . . . . . . . . . . 12 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 + 4.2. Alternative Cipher Suites . . . . . . . . . . . . . . . . 8 + 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 + 6.1. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 9 + 6.2. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 9 + 6.3. Certificate Revocation . . . . . . . . . . . . . . . . . 10 + 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 + 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 + 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 + 8.2. Informative References . . . . . . . . . . . . . . . . . 11 + Appendix A. Appendix: Change Log . . . . . . . . . . . . . . . . 13 + A.1. draft-ietf-tls-bcp-01 . . . . . . . . . . . . . . . . . . 13 + A.2. draft-ietf-tls-bcp-00 . . . . . . . . . . . . . . . . . . 13 + A.3. draft-sheffer-tls-bcp-02 . . . . . . . . . . . . . . . . 13 + A.4. draft-sheffer-tls-bcp-01 . . . . . . . . . . . . . . . . 13 + A.5. draft-sheffer-tls-bcp-00 . . . . . . . . . . . . . . . . 14 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 1. Introduction Transport Layer Security (TLS) and Datagram Transport Security Layer (DTLS) are widely used to protect data exchanged over application protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the last few years, several serious attacks on TLS have emerged, including attacks on its most commonly used cipher suites and modes of operation. For instance, both AES-CBC and RC4, which together comprise most current usage, have been attacked in the context of @@ -100,21 +104,27 @@ software implementations. In fact, this document calls for the deployment of algorithms that are widely implemented but not yet widely deployed. The recommendations herein take into consideration the security of various mechanisms, their technical maturity and interoperability, and their prevalence in implementatios at the time of writing. These recommendations apply to both TLS and DTLS. TLS 1.3, when it is standardized and deployed in the field, should resolve the current 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 feasible attacks can change quickly, and experience shows that a security BCP is a point-in-time statement. Readers are advised to seek out any errata or updates that apply to this document. 2. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this @@ -130,21 +140,21 @@ o Implementations MUST NOT negotiate SSL version 2. Rationale: SSLv2 has serious security vulnerabilities [RFC6176]. o Implementations SHOULD NOT negotiate SSL version 3. Rationale: SSLv3 [RFC6101] was an improvement over SSLv2 and plugged some significant security holes, but did not support strong cipher suites. - 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 the connection to SSLv3 and does not support more modern, strong cipher suites. o Implementations MAY negotiate TLS version 1.1 [RFC4346]. Rationale: TLS 1.1 (published in 2006) prevents downgrade attacks to SSL, but does not support certain stronger cipher suites. @@ -161,21 +171,34 @@ latest version of TLS is recommended. 3.2. Fallback to SSL Some client implementations revert to SSLv3 if the server rejected higher versions of SSL/TLS. This fallback can be forced by a MITM attacker. Moreover, IP scans [[reference?]] show that SSLv3-only servers amount to only about 3% of the current web server population. 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 start using modern, more secure cipher suites. Therefore: o Implementations MUST NOT negotiate the NULL cipher suites. Rationale: The NULL cipher suites offer no encryption whatsoever and thus are completely insecure. o Implementations MUST NOT negotiate RC4 cipher suites @@ -184,22 +207,25 @@ weaknesses, as documented in [I-D.popov-tls-prohibiting-rc4]. o Implementations MUST NOT negotiate cipher suites offering only so- called "export-level" encryption (including algorithms with 40 bits or 56 bits of security). Rationale: These cipher suites are deliberately "dumbed down" and are very easy to break. o Implementations SHOULD NOT negotiate cipher suites that use - algorithms offering less than 128 bits of security (even if they - advertise more bits, such as the 168-bit 3DES cipher suites). + algorithms offering less than 128 bits of security. Note that + 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 to breakage, their useful life is short enough that stronger cipher suites are desirable. o Implementations SHOULD prefer cipher suites that use algorithms 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 @@ -234,56 +260,66 @@ A future version of this document might recommend cipher suites for earlier versions of TLS. [RFC4492] allows clients and servers to negotiate ECDH parameters (curves). Clients and servers SHOULD prefer verifiably random curves (specifically Brainpool P-256, brainpoolp256r1 [RFC7027]), and fall back to the commonly used NIST P-256 (secp256r1) curve [RFC4492]. In addition, clients SHOULD send an ec_point_formats extension with a 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 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). + 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.5. Compression +3.6. 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 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 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 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 + + Where handshake renegotiation is implemented, both clients and + servers MUST implement the renegotiation_info extension, as defined + in [RFC5746]. + 4. Detailed Guidelines The following sections provide more detailed information about the recommendations listed above. 4.1. Cipher Suite Negotiation Details Clients SHOULD include TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 as the first proposal to any server, unless they have prior knowledge that the server cannot respond to a TLS 1.2 client_hello message. @@ -392,27 +428,54 @@ modular powers over certain cyclic groups. The properties of the so- called Discrete Logarithm Problem (DLP) allow to derive the session keys without an eavesdropper being able to do so. There is currently no known attack against DLP if sufficiently large parameters are chosen. 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 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 - We would like to thank Stephen Farrell, Simon Josefsson, Yoav Nir, - Kenny Paterson, Patrick Pelletier, and Rich Salz for their review. - Thanks to Brian Smith whose "browser cipher suites" page is a great - resource. Finally, thanks to all others who commented on the TLS and - other lists and are not mentioned here by name. + We would like to thank Stephen Farrell, Simon Josefsson, Johannes + Merkle, Yoav Nir, Kenny Paterson, Patrick Pelletier, Tom Ritter and + Rich Salz for their review. Thanks to Brian Smith whose "browser + cipher suites" page is a great resource. Finally, thanks to all + others who commented on the TLS and other lists and are not mentioned + here by name. 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4492] Blake-Wilson, S., Bolyard, N., Gupta, V., Hawk, C., and B. Moeller, "Elliptic Curve Cryptography (ECC) Cipher Suites @@ -422,20 +485,24 @@ (TLS) Protocol Version 1.2", RFC 5246, August 2008. [RFC5288] Salowey, J., Choudhury, A., and D. McGrew, "AES Galois Counter Mode (GCM) Cipher Suites for TLS", RFC 5288, August 2008. [RFC5289] Rescorla, E., "TLS Elliptic Curve Cipher Suites with SHA-256/384 and AES Galois Counter Mode (GCM)", RFC 5289, 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 (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 [CAB-Baseline] @@ -444,21 +511,21 @@ . [Heninger2012] Heninger, N., Durumeric, Z., Wustrow, E., and J. Halderman, "Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices", Usenix Security Symposium 2012, 2012. [I-D.popov-tls-prohibiting-rc4] 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] Sheffer, Y., Holz, R., and P. Saint-Andre, "Summarizing Current Attacks on TLS and DTLS", draft-sheffer-uta-tls- attacks-00 (work in progress), February 2014. [Kleinjung2010] Kleinjung, T., "Factorization of a 768-Bit RSA Modulus", CRYPTO 10, 2010. @@ -468,51 +535,75 @@ [RFC4346] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.1", RFC 4346, April 2006. [RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, "Transport Layer Security (TLS) Session Resumption without Server-Side State", RFC 5077, January 2008. [RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated 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 Sockets Layer (SSL) Protocol Version 3.0", RFC 6101, August 2011. [RFC6460] Salter, M. and R. Housley, "Suite B Profile for Transport 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] Soghoian, C. and S. Stamm, "Certified lies: Detecting and defeating government interception attacks against SSL.", Proc. 15th Int. Conf. Financial Cryptography and Data Security , 2011. Appendix A. Appendix: Change Log 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. -A.2. draft-sheffer-tls-bcp-02 +A.3. draft-sheffer-tls-bcp-02 o Reorganized the content to focus on recommendations. o Moved description of attacks to a separate document (draft- sheffer-uta-tls-attacks). o Strengthened recommendations regarding session resumption. -A.3. draft-sheffer-tls-bcp-01 +A.4. draft-sheffer-tls-bcp-01 o Clarified our motivation in the introduction. o Added a section justifying the need for PFS. o Added recommendations for RSA and DH parameter lengths. Moved from DHE to ECDHE, with a discussion on whether/when DHE is appropriate. o Recommendation to avoid fallback to SSLv3. @@ -511,28 +602,27 @@ o Added a section justifying the need for PFS. o Added recommendations for RSA and DH parameter lengths. Moved from DHE to ECDHE, with a discussion on whether/when DHE is appropriate. o Recommendation to avoid fallback to SSLv3. o Initial information about browser support - more still needed! - o More clarity on compression. o Client can offer stronger cipher suites. 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. Authors' Addresses Yaron Sheffer Porticor 29 HaHarash St. Hod HaSharon 4501303 Israel