draft-ietf-uta-tls-bcp-05.txt | draft-ietf-uta-tls-bcp-06.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: April 17, 2015 TUM | Expires: April 26, 2015 TUM | |||
P. Saint-Andre | P. Saint-Andre | |||
&yet | &yet | |||
October 14, 2014 | October 23, 2014 | |||
Recommendations for Secure Use of TLS and DTLS | Recommendations for Secure Use of TLS and DTLS | |||
draft-ietf-uta-tls-bcp-05 | draft-ietf-uta-tls-bcp-06 | |||
Abstract | Abstract | |||
Transport Layer Security (TLS) and Datagram Transport Security Layer | Transport Layer Security (TLS) and Datagram Transport Layer Security | |||
(DTLS) are widely used to protect data exchanged over application | (DTLS) are widely used to protect data exchanged over application | |||
protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the | protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the | |||
last few years, several serious attacks on TLS have emerged, | last few years, several serious attacks on TLS have emerged, | |||
including attacks on its most commonly used cipher suites and 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 deployed services that use TLS and DTLS. The | the security of deployed services that use TLS and DTLS. The | |||
recommendations are applicable to the majority of use cases. | recommendations are applicable to the majority of use cases. | |||
Status of This Memo | Status of This Memo | |||
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 April 17, 2015. | This Internet-Draft will expire on April 26, 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 | |||
skipping to change at page 2, line 17 | skipping to change at page 2, line 17 | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Intended Audience and Applicability Statement . . . . . . . . 4 | 2. Intended Audience and Applicability Statement . . . . . . . . 4 | |||
2.1. Security Services . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Security Services . . . . . . . . . . . . . . . . . . . . 4 | |||
2.2. Unauthenticated TLS . . . . . . . . . . . . . . . . . . . 5 | 2.2. Unauthenticated TLS . . . . . . . . . . . . . . . . . . . 5 | |||
3. Conventions used in this document . . . . . . . . . . . . . . 5 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
4. General Recommendations . . . . . . . . . . . . . . . . . . . 6 | 4. General Recommendations . . . . . . . . . . . . . . . . . . . 6 | |||
4.1. Protocol Versions . . . . . . . . . . . . . . . . . . . . 6 | 4.1. Protocol Versions . . . . . . . . . . . . . . . . . . . . 6 | |||
4.1.1. SSL/TLS Protocol Versions . . . . . . . . . . . . . . 6 | 4.1.1. SSL/TLS Protocol Versions . . . . . . . . . . . . . . 6 | |||
4.1.2. DTLS Protocol Versions . . . . . . . . . . . . . . . 7 | 4.1.2. DTLS Protocol Versions . . . . . . . . . . . . . . . 7 | |||
4.1.3. Fallback to Earlier Versions . . . . . . . . . . . . 7 | 4.1.3. Fallback to Lower Versions . . . . . . . . . . . . . 7 | |||
4.2. Strict TLS . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Strict TLS . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.3. Compression . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.3. Compression . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.4. TLS Session Resumption . . . . . . . . . . . . . . . . . 8 | 4.4. TLS Session Resumption . . . . . . . . . . . . . . . . . 9 | |||
4.5. TLS Renegotiation . . . . . . . . . . . . . . . . . . . . 9 | 4.5. TLS Renegotiation . . . . . . . . . . . . . . . . . . . . 9 | |||
4.6. Server Name Indication . . . . . . . . . . . . . . . . . 9 | 4.6. Server Name Indication . . . . . . . . . . . . . . . . . 10 | |||
5. Recommendations: Cipher Suites . . . . . . . . . . . . . . . 9 | 5. Recommendations: Cipher Suites . . . . . . . . . . . . . . . 10 | |||
5.1. General Guidelines . . . . . . . . . . . . . . . . . . . 10 | 5.1. General Guidelines . . . . . . . . . . . . . . . . . . . 10 | |||
5.2. Recommended Cipher Suites . . . . . . . . . . . . . . . . 11 | 5.2. Recommended Cipher Suites . . . . . . . . . . . . . . . . 11 | |||
5.3. Cipher Suite Negotiation Details . . . . . . . . . . . . 11 | 5.3. Cipher Suite Negotiation Details . . . . . . . . . . . . 12 | |||
5.4. Public Key Length . . . . . . . . . . . . . . . . . . . . 12 | 5.4. Public Key Length . . . . . . . . . . . . . . . . . . . . 12 | |||
5.5. Modular vs. Elliptic Curve DH Cipher Suites . . . . . . . 12 | 5.5. Modular vs. Elliptic Curve DH Cipher Suites . . . . . . . 13 | |||
5.6. Truncated HMAC . . . . . . . . . . . . . . . . . . . . . 13 | 5.6. Truncated HMAC . . . . . . . . . . . . . . . . . . . . . 14 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
7.1. Host Name Validation . . . . . . . . . . . . . . . . . . 14 | 7.1. Host Name Validation . . . . . . . . . . . . . . . . . . 14 | |||
7.2. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 7.2. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
7.3. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 14 | 7.3. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 15 | |||
7.4. Diffie-Hellman Exponent Reuse . . . . . . . . . . . . . . 15 | 7.4. Diffie-Hellman Exponent Reuse . . . . . . . . . . . . . . 16 | |||
7.5. Certificate Revocation . . . . . . . . . . . . . . . . . 16 | 7.5. Certificate Revocation . . . . . . . . . . . . . . . . . 16 | |||
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 17 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 17 | 9.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 20 | Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 21 | |||
A.1. draft-ietf-uta-tls-bcp-05 . . . . . . . . . . . . . . . . 20 | A.1. draft-ietf-uta-tls-bcp-06 . . . . . . . . . . . . . . . . 21 | |||
A.2. draft-ietf-uta-tls-bcp-04 . . . . . . . . . . . . . . . . 20 | A.2. draft-ietf-uta-tls-bcp-05 . . . . . . . . . . . . . . . . 21 | |||
A.3. draft-ietf-uta-tls-bcp-03 . . . . . . . . . . . . . . . . 20 | A.3. draft-ietf-uta-tls-bcp-04 . . . . . . . . . . . . . . . . 21 | |||
A.4. draft-ietf-uta-tls-bcp-02 . . . . . . . . . . . . . . . . 20 | A.4. draft-ietf-uta-tls-bcp-03 . . . . . . . . . . . . . . . . 21 | |||
A.5. draft-ietf-tls-bcp-01 . . . . . . . . . . . . . . . . . . 21 | A.5. draft-ietf-uta-tls-bcp-02 . . . . . . . . . . . . . . . . 21 | |||
A.6. draft-ietf-tls-bcp-00 . . . . . . . . . . . . . . . . . . 21 | A.6. draft-ietf-tls-bcp-01 . . . . . . . . . . . . . . . . . . 22 | |||
A.7. draft-sheffer-tls-bcp-02 . . . . . . . . . . . . . . . . 21 | A.7. draft-ietf-tls-bcp-00 . . . . . . . . . . . . . . . . . . 22 | |||
A.8. draft-sheffer-tls-bcp-01 . . . . . . . . . . . . . . . . 21 | A.8. draft-sheffer-tls-bcp-02 . . . . . . . . . . . . . . . . 22 | |||
A.9. draft-sheffer-tls-bcp-00 . . . . . . . . . . . . . . . . 22 | A.9. draft-sheffer-tls-bcp-01 . . . . . . . . . . . . . . . . 22 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | A.10. draft-sheffer-tls-bcp-00 . . . . . . . . . . . . . . . . 23 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | ||||
1. Introduction | 1. Introduction | |||
Transport Layer Security (TLS) and Datagram Transport Security Layer | Transport Layer Security (TLS) [RFC5246] and Datagram Transport | |||
(DTLS) are widely used to protect data exchanged over application | Security Layer (DTLS) [RFC6347] are widely used to protect data | |||
protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the | exchanged over application protocols such as HTTP, SMTP, IMAP, POP, | |||
last few years, several serious attacks on TLS have emerged, | SIP, and XMPP. Over the last few years, several serious attacks on | |||
including attacks on its most commonly used cipher suites and modes | TLS have emerged, including attacks on its most commonly used cipher | |||
of operation. For instance, both the AES-CBC and RC4 encryption | suites and modes of operation. For instance, both the AES-CBC | |||
algorithms, which together comprise most current usage, have been | [RFC3602] and RC4 [I-D.ietf-tls-prohibiting-rc4] encryption | |||
attacked in the context of TLS. A companion document | algorithms, which together are the most widely deployed ciphers, have | |||
been attacked in the context of TLS. A companion document | ||||
[I-D.ietf-uta-tls-attacks] provides detailed information about these | [I-D.ietf-uta-tls-attacks] provides detailed information about these | |||
attacks. | 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. This document | |||
this document provides guidance for deployed services as well as | provides guidance for deployed services as well as for software | |||
software implementations, assuming the implementer expects his or her | implementations, assuming the implementer expects his or her code to | |||
code to be deployed in environments defined in the following section. | be deployed in environments defined in the following section. In | |||
In fact, this document calls for the deployment of algorithms that | fact, this document calls for the deployment of algorithms that are | |||
are widely implemented but not yet widely deployed. Concerning | widely implemented but not yet widely deployed. Concerning | |||
deployment, this document targets a wide audience, namely all | deployment, this document targets a wide audience, namely all | |||
deployers who wish to add confidentiality and data integrity | deployers who wish to add authentication (be it one-way only or | |||
protection to their communications. In many (but not all) cases | mutual), confidentiality, and data integrity protection to their | |||
authentication is also desired. This document does not address the | communications. | |||
rare deployment scenarios where no confidentiality is desired. | ||||
The recommendations herein take into consideration the security of | The recommendations herein take into consideration the security of | |||
various mechanisms, their technical maturity and interoperability, | various mechanisms, their technical maturity and interoperability, | |||
and their prevalence in implementations at the time of writing. | and their prevalence in implementations at the time of writing. | |||
Unless noted otherwise, these recommendations apply to both TLS and | Unless noted otherwise, these recommendations apply to both TLS and | |||
DTLS. TLS 1.3, when it is standardized and deployed in the field, | DTLS. TLS 1.3, when it is standardized and deployed in the field, | |||
should resolve the current vulnerabilities while providing | should resolve the current vulnerabilities while providing | |||
significantly better functionality and will very likely obsolete this | significantly better functionality. It will very likely obsolete | |||
document. | this document. | |||
These are minimum recommendations for the use of TLS for the | These are minimum recommendations for the use of TLS for the | |||
specified audience. Individual specifications may have stricter | specified audience. Individual specifications can have stricter | |||
requirements related to one or more aspects of the protocol, based on | requirements related to one or more aspects of the protocol, based on | |||
their particular circumstances. When that is the case, implementers | their particular circumstances (e.g., for use with a particular | |||
MUST adhere to those stricter requirements. | application protocol). When that is the case, implementers are | |||
advised to 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. Intended Audience and Applicability Statement | 2. Intended Audience and Applicability Statement | |||
The deployment recommendations address the operators of application | The deployment recommendations of this document address the operators | |||
layer services that are most commonly used on the Internet, | of application layer services that are most commonly used on the | |||
including, but not limited to: | Internet, including, but not limited to: | |||
o Operators of WWW servers that wish to protect HTTP with TLS. | o Operators of WWW servers that wish to protect HTTP with TLS. | |||
o Operators of email servers who wish to protect the application- | o Operators of email servers who wish to protect the application- | |||
layer protocols with TLS (e.g., IMAP, POP3 or SMTP). | layer protocols with TLS (e.g., IMAP, POP3 or SMTP). | |||
o Operators of instant-messaging services who wish to protect their | o Operators of instant-messaging services who wish to protect their | |||
application-layer protocols with TLS (e.g. XMPP or IRC). | application-layer protocols with TLS (e.g., XMPP or IRC). | |||
2.1. Security Services | 2.1. Security Services | |||
This document provides recommendations for an audience that wishes to | This document provides recommendations for an audience that wishes to | |||
secure their communication with TLS to achieve the following: | secure their communication with TLS to achieve the following: | |||
o Confidentiality: all (payload) communication is encrypted with the | o Confidentiality: all (payload) communication is encrypted with the | |||
goal that no party should be able to decrypt it except the | goal that no party should be able to decrypt it except the | |||
intended receiver. | intended receiver. | |||
o Data integrity: any changes made to the communication in transit | o Data integrity: any changes made to the communication in transit | |||
are detectable by the receiver. | are detectable by the receiver. | |||
o Authentication: this means that an end-point of the TLS | o Authentication: an end-point of the TLS communication is | |||
communication is authenticated as the intended entity to | authenticated as the intended entity to communicate with. TLS | |||
communicate with. TLS allows to authenticate one or both end- | enables authentication of one or both end-points in the | |||
points in the communication. Some TLS usage scenarios do not | communication. Some TLS usage scenarios do not require | |||
require authentication, and are further discussed in Section 2.2. | authentication. They are not in the scope of this document. We | |||
discuss them under Section 2.2. | ||||
Deployers MUST verify that they do not need one of the above security | If deployers deviate from the recommendations given in this document, | |||
services if they deviate from the recommendations given in this | they MUST verify that they do not need one of the foregoing security | |||
document. | services. | |||
This document applies only to environments where confidentiality is | This document applies only to environments where confidentiality is | |||
required. It recommends algorithms and configuration options that | required. It recommends algorithms and configuration options that | |||
enforce secrecy of the data-in-transit. While this includes the | enforce secrecy of the data-in-transit. | |||
majority of the TLS use cases, there are some notable exceptions. | ||||
This document assumes that data integrity protection is always one of | This document also assumes that data integrity protection is always | |||
the goals of a deployment. In cases when integrity is not required, | one of the goals of a deployment. In cases where integrity is not | |||
it does not make sense to employ TLS in the first place. There are | required, it does not make sense to employ TLS in the first place. | |||
attacks against confidentiality-only protection that utilize the lack | There are attacks against confidentiality-only protection that | |||
of integrity to also break confidentiality (see e.g. [DegabrieleP07] | utilize the lack of integrity to also break confidentiality (see for | |||
in the context of IPsec). | instance [DegabrieleP07] in the context of IPsec). | |||
The intended audience covers those services that are most commonly | The intended audience covers those services that are most commonly | |||
used on the Internet. Typically, all communication between clients | used on the Internet. Typically, all communication between TLS | |||
and servers requires all three of the above security services. This | clients and TLS servers requires all three of the above security | |||
is particularly true where clients are user agents like Web browsers | services. This is particularly true where TLS clients are user | |||
or email software. | agents like Web browsers or email software. | |||
This document does not address the rare deployment scenarios where | This document does not address the rarer deployment scenarios where | |||
one of the above three properties is not desired, with the exception | one of the above three properties is not desired, such as the use | |||
of the use case described in Section 2.2 below. An example of an | case described under Section 2.2 below. Another example of an | |||
audience not needing confidentiality is the following: a monitored | audience not needing confidentiality is the following: a monitored | |||
network where the authorities in charge of the respective traffic | network where the authorities in charge of the respective traffic | |||
domain require full access to unencrypted (plaintext) traffic, and | domain require full access to unencrypted (plaintext) traffic, and | |||
where users collaborate and send their traffic in the clear. | where users collaborate and send their traffic in the clear. | |||
2.2. Unauthenticated TLS | 2.2. Unauthenticated TLS | |||
Several important applications use TLS to protect data between a | Several important applications use TLS to protect data between a TLS | |||
client and a server, but do so without the client verifying the | client and a TLS server, but do so without the TLS client verifying | |||
server's certificate. The reader is referred to | the server's certificate. The reader is referred to | |||
[I-D.dukhovni-smtp-opportunistic-tls] for additional details and an | [I-D.ietf-dane-smtp-with-dane] for an example and an explanation of | |||
explanation why this insecure practice is still common and likely to | why this less secure practice will likely remain common in the | |||
remain so for a while. | context of SMTP (especially for MTA-to-MTA communications). The | |||
practice is also encountered in similar contexts such as server-to- | ||||
server XMPP traffic. | ||||
In many of these scenarios the actual use of TLS is optional, i.e. | In some of these scenarios the use of TLS is optional, i.e. the | |||
the client decides dynamically ("opportunistically") whether to use | client decides dynamically ("opportunistically") whether to use TLS | |||
TLS with a particular server or to connect in the clear. | with a particular server or to connect in the clear. (Opportunistic | |||
Opportunistic encryption is described at length in Sec. 2 of | encryption is described at length in Section 2 of | |||
[I-D.farrelll-mpls-opportunistic-encrypt]. | [I-D.farrelll-mpls-opportunistic-encrypt].) In other scenarios, the | |||
use of TLS is required but certificates are not always checked (e.g., | ||||
this is often the case on the XMPP network, where multi-tenant | ||||
hosting environments make it difficult for operators to obtain proper | ||||
certificates for all of the domains they service). | ||||
Despite the threat model differing from "standard" authenticated | It can be argued that the recommendations provided in this document | |||
usage of TLS, the recommendations in this document are applicable to | ought to apply equally to unauthenticated TLS as well as | |||
unauthenticated uses of TLS, with the obvious exception of peer | authenticated TLS. That would keep TLS implementations and | |||
authentication. | deployments in sync, which is a desirable property given that servers | |||
can be used simultaneously for unauthenticated TLS and for | ||||
authenticated TLS (indeed, often a server will not know whether a | ||||
client might attempt authenticated or unauthenticated TLS). On the | ||||
other hand, it has been argued that some of the recommendations in | ||||
this document might be too strict for unauthenticated scenarios and | ||||
that any security is better than no security at all (i.e., sending | ||||
traffic in the clear), even if it means deploying outdated protocol | ||||
versions and ciphers in unauthenticated scenarios. The sense of the | ||||
UTA Working Group was to complete work on this document about | ||||
authenticated TLS and to initiate work on a separate document about | ||||
unauthenticated TLS. | ||||
3. Conventions used in this document | In summary: this document does not apply to unauthenticated TLS use | |||
cases. | ||||
3. Terminology | ||||
A number of security-related terms in this document are used in the | ||||
sense defined in [RFC4949]. | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
4. General Recommendations | 4. General Recommendations | |||
This section provides general recommendations on the secure use of | This section provides general recommendations on the secure use of | |||
TLS. Recommendations related to cipher suites are discussed in the | TLS. Recommendations related to cipher suites are discussed in the | |||
following section. | following section. | |||
skipping to change at page 6, line 28 | skipping to change at page 6, line 47 | |||
versions: | versions: | |||
o Implementations MUST NOT negotiate SSL version 2. | o Implementations MUST NOT negotiate SSL version 2. | |||
Rationale: Today, SSLv2 is considered insecure [RFC6176]. | Rationale: Today, SSLv2 is considered insecure [RFC6176]. | |||
o Implementations MUST NOT negotiate SSL version 3. | o Implementations MUST NOT negotiate SSL version 3. | |||
Rationale: SSLv3 [RFC6101] was an improvement over SSLv2 and | Rationale: SSLv3 [RFC6101] was an improvement over SSLv2 and | |||
plugged some significant security holes, but did not support | plugged some significant security holes, but did not support | |||
strong cipher suites. In addition, SSLv3 does not support TLS | strong cipher suites. SSLv3 does not support TLS extensions, some | |||
extensions, some of which (e.g. renegotiation_info) are security- | of which (e.g. renegotiation_info) are security-critical. In | |||
critical. | addition, with the emergence of the POODLE attack [POODLE], SSLv3 | |||
is now widely recognized as fundamentally insecure. | ||||
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) does not support many | Rationale: TLS 1.0 (published in 1999) does not support many | |||
modern, strong cipher suites. | modern, strong 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) is a security improvement | Rationale: TLS 1.1 (published in 2006) is a security improvement | |||
over TLS 1.0, but still does not support certain stronger cipher | over TLS 1.0, but still does not support certain stronger cipher | |||
skipping to change at page 7, line 11 | skipping to change at page 7, line 30 | |||
TLS 1.2 (published in 2008). In fact, the cipher suites | TLS 1.2 (published in 2008). In fact, the cipher suites | |||
recommended by this document (Section 5.2 below) are only | recommended by this document (Section 5.2 below) are only | |||
available in TLS 1.2. | available in TLS 1.2. | |||
This BCP applies to TLS 1.2. It is not safe for readers to assume | This BCP applies to TLS 1.2. It is not safe for readers to assume | |||
that the recommendations in this BCP apply to any future version of | that the recommendations in this BCP apply to any future version of | |||
TLS. | TLS. | |||
4.1.2. DTLS Protocol Versions | 4.1.2. DTLS Protocol Versions | |||
DTLS is an adaptation of TLS for UDP datagrams. | DTLS, an adaptation of TLS for UDP datagrams, was introduced when TLS | |||
1.1 was published. The following are the recommendations with | ||||
The following are the recommendations with respect to DTLS: | respect to DTLS: | |||
o Implementations MAY negotiate DTLS version 1.0 [RFC4347]. | o Implementations MAY negotiate DTLS version 1.0 [RFC4347]. | |||
o Implementations MUST negotiate DTLS version 1.2 [RFC6347]. | Version 1.0 of DTLS correlates to version 1.1 of TLS (see above). | |||
Rationale: DTLS is an adaptation of TLS for UDP that was introduced | o Implementations MUST support, and prefer to negotiate, DTLS | |||
when TLS 1.1 was published. Version 1.0 correlates to TLS 1.1 and | version 1.2 [RFC6347]. | |||
Version 1.2 correlates to TLS 1.2. There is no Version 1.1. | ||||
Version 1.2 of DTLS correlates to Version 1.2 of TLS 1.2 (see | ||||
above). (There is no Version 1.1 of DTLS.) | ||||
Note: DTLS and TLS are nearly identical. The most notable exception | Note: DTLS and TLS are nearly identical. The most notable exception | |||
is that RC4, which is a stream-based bulk encryption algorithm, | is that RC4, which is a stream-based bulk encryption algorithm, | |||
cannot be supported by DTLS. | cannot be supported by DTLS. | |||
4.1.3. Fallback to Earlier Versions | 4.1.3. Fallback to Lower Versions | |||
Clients that "fallback" to lower versions of the protocol after the | Clients that "fallback" to lower versions of the protocol after the | |||
server rejects higher versions of the protocol MUST NOT fallback to | server rejects higher versions of the protocol MUST NOT fallback to | |||
SSLv3. | SSLv3. | |||
Rationale: Some client implementations revert to lower versions of | Rationale: Some client implementations revert to lower versions of | |||
TLS or even to SSLv3 if the server rejected higher versions of the | TLS or even to SSLv3 if the server rejected higher versions of the | |||
protocol. This fallback can be forced by a man in the middle (MITM) | protocol. This fallback can be forced by a man in the middle (MITM) | |||
attacker. TLS 1.0 and SSLv3 are significantly less secure than TLS | attacker. TLS 1.0 and SSLv3 are significantly less secure than TLS | |||
1.2, the version recommended by this document. While TLS 1.0-only | 1.2, the version recommended by this document. While TLS 1.0-only | |||
skipping to change at page 8, line 7 | skipping to change at page 8, line 28 | |||
deployments a choice between strict TLS configuration and dynamic | deployments a choice between strict TLS configuration and dynamic | |||
upgrade from unencrypted to TLS-protected traffic (such as | upgrade from unencrypted to TLS-protected traffic (such as | |||
STARTTLS), clients and servers SHOULD prefer strict TLS | STARTTLS), clients and servers SHOULD prefer strict TLS | |||
configuration. | configuration. | |||
o In many application protocols, clients can be configured to use | o In many application protocols, clients can be configured to use | |||
TLS even if the server has not advertised that TLS is mandatory or | TLS even if the server has not advertised that TLS is mandatory or | |||
even supported (e.g., this is often the case in messaging | even supported (e.g., this is often the case in messaging | |||
protocols such as IMAP and XMPP). Application clients SHOULD use | protocols such as IMAP and XMPP). Application clients SHOULD use | |||
TLS by default, and disable this default only through explicit | TLS by default, and disable this default only through explicit | |||
configration by the user. | configuration by the user. | |||
o HTTP client and server implementations MUST support the HTTP | o HTTP client and server implementations MUST support the HTTP | |||
Strict Transport Security (HSTS) header [RFC6797], in order to | Strict Transport Security (HSTS) header [RFC6797], in order to | |||
allow Web servers to advertise that they are willing to accept | allow Web servers to advertise that they are willing to accept | |||
TLS-only clients. | TLS-only clients. | |||
o When applicable, Web servers SHOULD use HSTS to indicate that they | o When applicable, Web servers SHOULD use HSTS to indicate that they | |||
are willing to accept TLS-only clients. | are willing to accept TLS-only clients. | |||
Rationale: Combining unprotected and TLS-protected communication | Rationale: Combining unprotected and TLS-protected communication | |||
skipping to change at page 9, line 37 | skipping to change at page 10, line 13 | |||
during renegotiation. | during renegotiation. | |||
4.6. Server Name Indication | 4.6. Server Name Indication | |||
TLS implementations MUST support the Server Name Indication (SNI) | TLS implementations MUST support the Server Name Indication (SNI) | |||
extension for those higher level protocols which would benefit from | extension for those higher level protocols which would benefit from | |||
it, including HTTPS. However, unlike implementation, the use of SNI | it, including HTTPS. However, unlike implementation, the use of SNI | |||
in particular circumstances is a matter of local policy. | in particular circumstances is a matter of local policy. | |||
Rationale: SNI supports deployment of multiple TLS-protected virtual | Rationale: SNI supports deployment of multiple TLS-protected virtual | |||
servers on a single address, and therefore enables fine grain | servers on a single address, and therefore enables fine-grained | |||
security for these virtual servers, by allowing each one to have its | security for these virtual servers, by allowing each one to have its | |||
own certificate. | own certificate. | |||
5. Recommendations: Cipher Suites | 5. Recommendations: Cipher Suites | |||
TLS and its implementations provide considerable flexibility in the | TLS and its implementations provide considerable flexibility in the | |||
selection of cipher suites. Unfortunately many available cipher | selection of cipher suites. Unfortunately, some available cipher | |||
suites are insecure, and so misconfiguration can easily result in | suites are insecure, some do not provide the targeted security | |||
reduced security. This section includes recommendations on the | services, and some no longer provide enough security. Incorrectly | |||
selection and negotiation of cipher suites. | configuring a server leads to no or reduced security. This section | |||
includes recommendations on the selection and negotiation of cipher | ||||
suites. | ||||
5.1. General Guidelines | 5.1. General Guidelines | |||
Cryptographic algorithms weaken over time as cryptanalysis improves. | Cryptographic algorithms weaken over time as cryptanalysis improves. | |||
In other words, as time progresses, algorithms that were once | In other words, as time progresses, algorithms that were once | |||
considered strong but are now weak, need to be phased out over time | considered strong but are now weak, need to be phased out over time | |||
and replaced with more secure cipher suites to ensure that desired | and replaced with more secure cipher suites to ensure that desired | |||
security properties still hold. SSL/TLS has been in existence for | security properties still hold. SSL/TLS has been in existence for | |||
almost 20 years at this point and this section provides some much | almost 20 years at this point and this section provides some much | |||
needed recommendations concerning cipher suite selection: | needed recommendations concerning cipher suite selection: | |||
skipping to change at page 10, line 37 | skipping to change at page 11, line 12 | |||
note that this guideline does not apply to DTLS, which | note that this guideline does not apply to DTLS, which | |||
specifically forbids the use of RC4. | specifically forbids the use of 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 | o Implementations MUST NOT negotiate cipher suites offering less | |||
bits of security. | than 112 bits of security, including the so-called "export-level" | |||
encryption (which provide 40 or 56 bits of security). | ||||
Rationale: Based on [RFC3766], at least 112 bits of security is | ||||
needed. 40-bit and 56-bit security are considered insecure today. | ||||
TLS 1.1 and 1.2 never negotiate 40-bit or 56-bit export ciphers. | ||||
o Implementations SHOULD NOT negotiate cipher suites that use | o Implementations SHOULD NOT negotiate cipher suites that use | |||
algorithms offering less than 128 bits of security. | algorithms offering less than 128 bits of security. | |||
Rationale: Cipher suites that offer between 112-bits and 128-bits | Rationale: Cipher suites that offer between 112-bits and 128-bits | |||
of security are not considered weak at this time, however it is | of security are not considered weak at this time, however it is | |||
expected that their useful lifespan is short enough to justify | expected that their useful lifespan is short enough to justify | |||
supporting stronger cipher suites at this time. 128-bit ciphers | supporting stronger cipher suites at this time. 128-bit ciphers | |||
are expected to remain secure for at least several years, and | are expected to remain secure for at least several years, and | |||
256-bit ciphers "until the next fundamental technology | 256-bit ciphers "until the next fundamental technology | |||
skipping to change at page 11, line 25 | skipping to change at page 12, line 4 | |||
which attacks can be successful. | which attacks can be successful. | |||
5.2. Recommended Cipher Suites | 5.2. Recommended Cipher Suites | |||
Given the foregoing considerations, implementation and deployment of | Given the foregoing considerations, implementation and deployment of | |||
the following cipher suites is RECOMMENDED: | the following cipher suites is RECOMMENDED: | |||
o TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | o TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | |||
o TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | o TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | |||
o TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 | o TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 | |||
o TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | o TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | |||
It is noted that those cipher suites are supported only in TLS 1.2 | These cipher suites are supported only in TLS 1.2 since they are | |||
since they are authenticated encryption (AEAD) algorithms [RFC5116]. | authenticated encryption (AEAD) algorithms [RFC5116]. | |||
Typically, in order to prefer these suites, the order of suites needs | ||||
to be explicitly configured in server software. | ||||
[RFC4492] allows clients and servers to negotiate ECDH parameters | [RFC4492] allows clients and servers to negotiate ECDH parameters | |||
(curves). Both clients and servers SHOULD include the "Supported | (curves). Both clients and servers SHOULD include the "Supported | |||
Elliptic Curves" extension [RFC4492]. For interoperability, clients | Elliptic Curves" extension [RFC4492]. For interoperability, clients | |||
and servers SHOULD support the NIST P-256 (secp256r1) curve | and servers SHOULD support the NIST P-256 (secp256r1) curve | |||
[RFC4492]. In addition, clients SHOULD send an ec_point_formats | [RFC4492]. In addition, clients SHOULD send an ec_point_formats | |||
extension with a single element, "uncompressed". | extension with a single element, "uncompressed". | |||
5.3. Cipher Suite Negotiation Details | 5.3. Cipher Suite Negotiation Details | |||
skipping to change at page 14, line 27 | skipping to change at page 14, line 52 | |||
Readers are referred to [RFC6125] for further details regarding | Readers are referred to [RFC6125] for further details regarding | |||
generic host name validation in the TLS context. In addition, the | generic host name validation in the TLS context. In addition, the | |||
RFC contains a long list of example protocols, some of which | RFC contains a long list of example protocols, some of which | |||
implement a policy very different from HTTPS. | implement a policy very different from HTTPS. | |||
If the host name is discovered indirectly and in an insecure manner | If the host name is discovered indirectly and in an insecure manner | |||
(e.g., by an insecure DNS query for an MX or SRV record), it SHOULD | (e.g., by an insecure DNS query for an MX or SRV record), it SHOULD | |||
NOT be used as a reference identifier [RFC6125] even when it matches | NOT be used as a reference identifier [RFC6125] even when it matches | |||
the presented certificate. This proviso does not apply if the host | the presented certificate. This proviso does not apply if the host | |||
name is discovered securely (for further discussion, see for example | name is discovered securely (for further discussion, see for example | |||
[I-D.ietf-dane-srv] and [I-D.ietf-dane-smtp]). | [I-D.ietf-dane-srv] and [I-D.ietf-dane-smtp-with-dane]). | |||
7.2. AES-GCM | 7.2. AES-GCM | |||
Section 5.2 above recommends the use of the AES-GCM authenticated | Section 5.2 above recommends the use of the AES-GCM authenticated | |||
encryption algorithm. Please refer to [RFC5246], Sec. 11 for general | encryption algorithm. Please refer to [RFC5246], Sec. 11 for general | |||
security considerations when using TLS 1.2, and to [RFC5288], Sec. 6 | security considerations when using TLS 1.2, and to [RFC5288], Sec. 6 | |||
for security considerations that apply specifically to AES-GCM when | for security considerations that apply specifically to AES-GCM when | |||
used with TLS. | used with TLS. | |||
7.3. Forward Secrecy | 7.3. Forward Secrecy | |||
skipping to change at page 15, line 34 | skipping to change at page 16, line 8 | |||
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. A variant of the Diffie-Hellman scheme uses Elliptic Curves | chosen. A variant of the Diffie-Hellman scheme uses Elliptic Curves | |||
instead of the originally proposed modular arithmetics. | 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 | |||
feature 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. | |||
7.4. Diffie-Hellman Exponent Reuse | 7.4. Diffie-Hellman Exponent Reuse | |||
For performance reasons, many TLS implementations reuse Diffie- | For performance reasons, many TLS implementations reuse Diffie- | |||
Hellman and Elliptic Curve Diffie-Hellman exponents across multiple | Hellman and Elliptic Curve Diffie-Hellman exponents across multiple | |||
connections. Such reuse can result in major security issues: | connections. Such reuse can result in major security issues: | |||
o If exponents are reused for a long time (e.g., more than a few | o If exponents are reused for a long time (e.g., more than a few | |||
hours), an attacker who gains access to the host can decrypt | hours), an attacker who gains access to the host can decrypt | |||
skipping to change at page 16, line 7 | skipping to change at page 16, line 30 | |||
effects of forward secrecy. | effects of forward secrecy. | |||
o TLS implementations that reuse exponents should test the DH public | o TLS implementations that reuse exponents should test the DH public | |||
key they receive, in order to avoid some known attacks. These | key they receive, in order to avoid some known attacks. These | |||
tests are not standardized in TLS at the time of writing. See | tests are not standardized in TLS at the time of writing. See | |||
[RFC6989] for recipient tests required of IKEv2 implementations | [RFC6989] for recipient tests required of IKEv2 implementations | |||
that reuse DH exponents. | that reuse DH exponents. | |||
7.5. Certificate Revocation | 7.5. Certificate Revocation | |||
Unfortunately there is currently no effective, Internet-scale | Unfortunately, no mechanism exists at this time that we can recommend | |||
mechanism to effect certificate revocation: | as a complete and efficient solution for the problem of checking the | |||
revocation status of common public key certificates (a.k.a. PKIX | ||||
certificates, [RFC5280]). The current state of the art is as | ||||
follows: | ||||
o Certificate Revocation Lists (CRLs) are non-scalable and therefore | o Certificate Revocation Lists (CRLs) are not scalable and therefore | |||
rarely used. | rarely used. | |||
o The On-Line Certification Status Protocol (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 (Section 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 attacker because the attacker can simply ignore the client's | MITM attacker because the attacker can simply ignore the client's | |||
request for a stapled OCSP response. | request for a stapled OCSP response. | |||
o OCSP stapling as defined in [RFC6066] does not extend to | o OCSP stapling as defined in [RFC6066] does not extend to | |||
intermediate certificates used in a certificate chain. [RFC6961] | intermediate certificates used in a certificate chain. [RFC6961] | |||
addresses this shortcoming, but is a recent addition without much | addresses this shortcoming, but is a recent addition without much | |||
deployment. | 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 | With regard to PKIX certificates, servers SHOULD support OCSP and | |||
a "must staple" mechanism similar to HSTS, would finally resolve this | OCSP stapling, including the OCSP stapling extension defined in | |||
problem; in particular when used together with the extension defined | [RFC6961], as a best practice given the current state of the art and | |||
in [RFC6961]. But such a mechanism has not been standardized yet. | as a foundation for a possible future solution. | |||
The foregoing considerations do not apply to DANE certificates | ||||
[RFC6698], since they do not require a revocation mechanism. | ||||
8. Acknowledgments | 8. Acknowledgments | |||
We would like to thank Uri Blumenthal, Viktor Dukhovni, Stephen | We would like to thank Uri Blumenthal, Viktor Dukhovni, Stephen | |||
Farrell, Simon Josefsson, Watson Ladd, Orit Levin, Johannes Merkle, | Farrell, Simon Josefsson, Watson Ladd, Orit Levin, Johannes Merkle, | |||
Bodo Moeller, Yoav Nir, Kenny Paterson, Patrick Pelletier, Tom | Bodo Moeller, Yoav Nir, Kenny Paterson, Patrick Pelletier, Tom | |||
Ritter, Rich Salz, Sean Turner, Aaron Zauner for their review and | Ritter, Rich Salz, Sean Turner, and Aaron Zauner for their feedback | |||
improvements. Thanks to Brian Smith whose "browser cipher suites" | and suggested improvements. Thanks to Brian Smith whose "browser | |||
page is a great resource. Finally, thanks to all others who | cipher suites" page is a great resource. Finally, thanks to all | |||
commented on the TLS, UTA and other lists and are not mentioned here | others who commented on the TLS, UTA and other lists and are not | |||
by name. | mentioned here by name. | |||
9. References | 9. References | |||
9.1. Normative References | 9.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. | [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. | |||
[RFC3766] Orman, H. and P. Hoffman, "Determining Strengths For | ||||
Public Keys Used For Exchanging Symmetric Keys", BCP 86, | ||||
RFC 3766, April 2004. | ||||
[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 SHA- | [RFC5289] Rescorla, E., "TLS Elliptic Curve Cipher Suites with | |||
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 | [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and | |||
Verification of Domain-Based Application Service Identity | Verification of Domain-Based Application Service Identity | |||
within Internet Public Key Infrastructure Using X.509 | within Internet Public Key Infrastructure Using X.509 | |||
(PKIX) Certificates in the Context of Transport Layer | (PKIX) Certificates in the Context of Transport Layer | |||
skipping to change at page 18, line 16 | skipping to change at page 18, line 48 | |||
Degabriele, J. and K. Paterson, "Attacking the IPsec | Degabriele, J. and K. Paterson, "Attacking the IPsec | |||
standards in encryption-only configurations", 2007, | standards in encryption-only configurations", 2007, | |||
<http://dx.doi.org/10.1109/SP.2007.8>. | <http://dx.doi.org/10.1109/SP.2007.8>. | |||
[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.dukhovni-smtp-opportunistic-tls] | ||||
Dukhovni, V. and W. Hardaker, "SMTP security via | ||||
opportunistic DANE TLS", draft-dukhovni-smtp- | ||||
opportunistic-tls-01 (work in progress), July 2013. | ||||
[I-D.farrelll-mpls-opportunistic-encrypt] | [I-D.farrelll-mpls-opportunistic-encrypt] | |||
Farrel, A. and S. Farrell, "Opportunistic Encryption in | Farrel, A. and S. Farrell, "Opportunistic Encryption in | |||
MPLS Networks", draft-farrelll-mpls-opportunistic- | MPLS Networks", draft-farrelll-mpls-opportunistic- | |||
encrypt-02 (work in progress), February 2014. | encrypt-02 (work in progress), February 2014. | |||
[I-D.ietf-dane-smtp] | [I-D.ietf-dane-smtp-with-dane] | |||
Finch, T., "Secure SMTP using DNS-Based Authentication of | Dukhovni, V. and W. Hardaker, "SMTP security via | |||
Named Entities (DANE) TLSA records.", draft-ietf-dane- | opportunistic DANE TLS", draft-ietf-dane-smtp-with-dane-10 | |||
smtp-01 (work in progress), February 2013. | (work in progress), May 2014. | |||
[I-D.ietf-dane-srv] | [I-D.ietf-dane-srv] | |||
Finch, T., Miller, M., and P. Saint-Andre, "Using DNS- | Finch, T., Miller, M., and P. Saint-Andre, "Using DNS- | |||
Based Authentication of Named Entities (DANE) TLSA Records | Based Authentication of Named Entities (DANE) TLSA Records | |||
with SRV Records", draft-ietf-dane-srv-07 (work in | with SRV Records", draft-ietf-dane-srv-06 (work in | |||
progress), July 2014. | progress), June 2014. | |||
[I-D.ietf-tls-prohibiting-rc4] | [I-D.ietf-tls-prohibiting-rc4] | |||
Popov, A., "Prohibiting RC4 Cipher Suites", draft-ietf- | Popov, A., "Prohibiting RC4 Cipher Suites", draft-ietf- | |||
tls-prohibiting-rc4-00 (work in progress), July 2014. | tls-prohibiting-rc4-01 (work in progress), October 2014. | |||
[I-D.ietf-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-ietf-uta-tls- | Current Attacks on TLS and DTLS", draft-ietf-uta-tls- | |||
attacks-04 (work in progress), September 2014. | attacks-04 (work in progress), September 2014. | |||
[Kleinjung2010] | [Kleinjung2010] | |||
Kleinjung, T., "Factorization of a 768-Bit RSA Modulus", | Kleinjung, T., "Factorization of a 768-Bit RSA Modulus", | |||
CRYPTO 10, 2010, <https://eprint.iacr.org/2010/006.pdf>. | CRYPTO 10, 2010, <https://eprint.iacr.org/2010/006.pdf>. | |||
[POODLE] Moeller, B., Duong, T., and K. Kotowicz, "This POODLE | ||||
Bites: Exploiting the SSL 3.0 Fallback", 2014, <https:// | ||||
www.openssl.org/~bodo/ssl-poodle.pdf>. | ||||
[PatersonRS11] | [PatersonRS11] | |||
Paterson, K., Ristenpart, T., and T. Shrimpton, "Tag size | Paterson, K., Ristenpart, T., and T. Shrimpton, "Tag size | |||
does matter: attacks and proofs for the TLS record | does matter: attacks and proofs for the TLS record | |||
protocol", 2011, | protocol", 2011, | |||
<http://dx.doi.org/10.1007/978-3-642-25385-0_20>. | <http://dx.doi.org/10.1007/978-3-642-25385-0_20>. | |||
[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. | |||
[RFC3602] Frankel, S., Glenn, R., and S. Kelly, "The AES-CBC Cipher | ||||
Algorithm and Its Use with IPsec", RFC 3602, September | ||||
2003. | ||||
[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. | |||
[RFC4347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | [RFC4347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | |||
Security", RFC 4347, April 2006. | Security", RFC 4347, April 2006. | |||
[RFC4949] Shirey, R., "Internet Security Glossary, Version 2", RFC | [RFC4949] Shirey, R., "Internet Security Glossary, Version 2", RFC | |||
4949, August 2007. | 4949, August 2007. | |||
[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. | |||
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | ||||
Housley, R., and W. Polk, "Internet X.509 Public Key | ||||
Infrastructure Certificate and Certificate Revocation List | ||||
(CRL) Profile", RFC 5280, May 2008. | ||||
[RFC6066] Eastlake, D., "Transport Layer Security (TLS) Extensions: | [RFC6066] Eastlake, D., "Transport Layer Security (TLS) Extensions: | |||
Extension Definitions", RFC 6066, January 2011. | 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. | |||
[RFC6698] Hoffman, P. and J. Schlyter, "The DNS-Based Authentication | ||||
of Named Entities (DANE) Transport Layer Security (TLS) | ||||
Protocol: TLSA", RFC 6698, August 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) | [RFC6961] Pettersen, Y., "The Transport Layer Security (TLS) | |||
Multiple Certificate Status Request Extension", RFC 6961, | Multiple Certificate Status Request Extension", RFC 6961, | |||
June 2013. | June 2013. | |||
[RFC6989] Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman | [RFC6989] Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman | |||
Tests for the Internet Key Exchange Protocol Version 2 | Tests for the Internet Key Exchange Protocol Version 2 | |||
(IKEv2)", RFC 6989, July 2013. | (IKEv2)", RFC 6989, July 2013. | |||
skipping to change at page 20, line 21 | skipping to change at page 21, line 15 | |||
[triple-handshake] | [triple-handshake] | |||
Delignat-Lavaud, A., Bhargavan, K., and A. Pironti, | Delignat-Lavaud, A., Bhargavan, K., and A. Pironti, | |||
"Triple Handshakes Considered Harmful: Breaking and Fixing | "Triple Handshakes Considered Harmful: Breaking and Fixing | |||
Authentication over TLS", 2014, <https://secure- | Authentication over TLS", 2014, <https://secure- | |||
resumption.com/>. | resumption.com/>. | |||
Appendix A. Change Log | 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-uta-tls-bcp-05 | A.1. draft-ietf-uta-tls-bcp-06 | |||
o Undo unauthenticated TLS, following another long thread on the | ||||
list. | ||||
A.2. draft-ietf-uta-tls-bcp-05 | ||||
o Lots of comments by Sean Turner. | o Lots of comments by Sean Turner. | |||
o Unauthenticated TLS, following a long thread on the list. | o Unauthenticated TLS, following a long thread on the list. | |||
A.2. draft-ietf-uta-tls-bcp-04 | A.3. draft-ietf-uta-tls-bcp-04 | |||
o Some cleanup, and input from TLS WG discussion on applicability. | o Some cleanup, and input from TLS WG discussion on applicability. | |||
A.3. draft-ietf-uta-tls-bcp-03 | A.4. draft-ietf-uta-tls-bcp-03 | |||
o Disallow truncated HMAC. | o Disallow truncated HMAC. | |||
o Applicability to DTLS. | o Applicability to DTLS. | |||
o Some more text restructuring. | o Some more text restructuring. | |||
o Host name validation is sometimes irrelevant. | o Host name validation is sometimes irrelevant. | |||
o HSTS: MUST implement, SHOULD deploy. | o HSTS: MUST implement, SHOULD deploy. | |||
o Session identities are not protected, only tickets are. | o Session identities are not protected, only tickets are. | |||
o Clarified the target audience. | o Clarified the target audience. | |||
A.4. draft-ietf-uta-tls-bcp-02 | A.5. draft-ietf-uta-tls-bcp-02 | |||
o Rearranged some sections for clarity and re-styled the text so | o Rearranged some sections for clarity and re-styled the text so | |||
that normative text is followed by rationale where possible. | that normative text is followed by rationale where possible. | |||
o Removed the recommendation to use Brainpool curves. | o Removed the recommendation to use Brainpool curves. | |||
o Triple Handshake mitigation. | o Triple Handshake mitigation. | |||
o MUST NOT negotiate algorithms lower than 112 bits of security. | o MUST NOT negotiate algorithms lower than 112 bits of security. | |||
o MUST implement SNI, but use per local policy. | o MUST implement SNI, but use per local policy. | |||
o Changed SHOULD NOT negotiate or fall back to SSLv3 to MUST NOT. | o Changed SHOULD NOT negotiate or fall back to SSLv3 to MUST NOT. | |||
o Added hostname validation. | o Added hostname validation. | |||
o Non-normative discussion of DH exponent reuse. | o Non-normative discussion of DH exponent reuse. | |||
A.5. draft-ietf-tls-bcp-01 | A.6. 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 SHOULD 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.6. draft-ietf-tls-bcp-00 | A.7. draft-ietf-tls-bcp-00 | |||
o Initial WG version, with only updated references. | o Initial WG version, with only updated references. | |||
A.7. draft-sheffer-tls-bcp-02 | A.8. 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.8. draft-sheffer-tls-bcp-01 | A.9. 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. | |||
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.9. draft-sheffer-tls-bcp-00 | A.10. 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. 69 change blocks. | ||||
158 lines changed or deleted | 222 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |