draft-ietf-curdle-rc4-die-die-die-02.txt | draft-ietf-curdle-rc4-die-die-die-03.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) L. Camara | Internet Engineering Task Force (IETF) L. Camara | |||
Internet-Draft August 8, 2017 | Internet-Draft December 9, 2017 | |||
Obsoletes: 4345 | Obsoletes: 4345 | |||
Updates: 3501, 4253, 6649, 6733 | Updates: 3501, 4253, 6649, 6733 | |||
Intended Status: Best Current Practice | Intended Status: Best Current Practice | |||
Expires: February 9, 2018 | Expires: June 12, 2018 | |||
Deprecating RC4 in all IETF Protocols | Depreciating RC4 in all IETF Protocols | |||
draft-ietf-curdle-rc4-die-die-die-02 | draft-ietf-curdle-rc4-die-die-die-03 | |||
[[RFC-Editor: Please replace all instances of xxxx in this document with | [[RFC-Editor: Please replace all instances of xxxx in this document with | |||
the RFC number of draft-ietf-curdle-des-des-des-die-die-die.]] | the RFC number of draft-ietf-curdle-des-des-des-die-die-die.]] | |||
[[RFC-Editor: please replace the second character of my surname by | [[RFC-Editor: please replace the second character of my surname by | |||
U+00E2 when publishing as RFC in the header and in all pages. | U+00E2 when publishing as RFC in the header and in all pages. | |||
Non-ASCII characters are allowed in RFCs as per RFC 7997.]] | Non-ASCII characters are allowed in RFCs as per RFC 7997.]] | |||
Abstract | Abstract | |||
skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
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 January 4, 2018. | This Internet-Draft will expire on June 12, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 36 ¶ | skipping to change at page 2, line 36 ¶ | |||
10. Acknowlegdements . . . . . . . . . . . . . . . . . . . . . . . 5 | 10. Acknowlegdements . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . . . 6 | 11.1. Normative References . . . . . . . . . . . . . . . . . . . . 6 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . . . 6 | 11.2. Informative References . . . . . . . . . . . . . . . . . . . 6 | |||
12. Author's Address . . . . . . . . . . . . . . . . . . . . . . . 7 | 12. Author's Address . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
Appendix A. Changelog . . . . . . . . . . . . . . . . . . . . . . 8 | Appendix A. Changelog . . . . . . . . . . . . . . . . . . . . . . 8 | |||
1. Introduction | 1. Introduction | |||
RC4 is extremely weak [RFC6649] [RFC7457] [RFCxxxx] and this document | RC4 is extremely weak [RFC6649] [RFC7457] [RFCxxxx] and this document | |||
deprecates its use in all IETF protocols, including Kerberos and | depreciates its use in all IETF protocols, including Kerberos and | |||
Secure Shell (SSH). The reasons for obsoleting RFC 4345 are discussed | Secure Shell (SSH). The reasons for obsoleting RFC 4345 are | |||
in Section 2. The updates to RFC 3501, RFC 4253, RFC 6649 and RFC | discussed in Section 2. The updates to RFC 3501, RFC 4253, RFC 6649 | |||
RFC 6733 and the reasons for doing them are specified in sections 3, | and RFC 6733 and the reasons for doing them are specified in sections | |||
4, 5 and 6, respectively. | 3, 4, 5 and 6, respectively. | |||
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 | document are to be interpreted as described in | |||
BCP 14 [RFC2119, RFC8174]. | BCP 14 [RFC2119, RFC8174]. | |||
2. Why obsolete RFC 4345 | 2. Why obsolete RFC 4345 | |||
RFC 4345 defines the "arcfour-128" and "arcfour-256" modes for Secure | RFC 4345 defines the "arcfour-128" and "arcfour-256" modes for Secure | |||
Shell (SSH), and is moved to Historic as RC4 is extremely | Shell (SSH), and is moved to Historic as RC4 is extremely | |||
weak [RFC6649, RFC7457, RFCxxxx] and there is research that is at | weak [RFC6649, RFC7457, RFCxxxx] and there is research that is at | |||
least 5 years old that totally breaks all practical usage of | least 5 years old that totally breaks all practical usage of | |||
RC4 [RFC6649]. | RC4 [RFC6649]. | |||
3. Updates to RFC 3501 | 3. Updates to RFC 3501 | |||
The second paragraph of [RFC3501] required that implementations of | The second paragraph of [RFC3501] required that implementations of | |||
IMAP clients and servers implement a RC4 cipher suite in TLS | IMAP clients and servers implement a RC4 cipher suite in TLS | |||
(contradicts [RFC7465]) and recommends implementing a weak cipher | (contradicts [RFC7465]) and recommends implementing a weak cipher | |||
suite (3DES is used in the suite). Unfortunately, at the time of | suite (3DES is used in the suite). Unfortunately, at the time of | |||
writing of RFC 3501, AES cipher suites were extremely new (the first | writing of RFC 3501, AES cipher suites were extremely new (the first | |||
AES cipher suites were defined in RFC 3268, published in June 2002), | AES cipher suites were defined in RFC 3268, published in June 2002), | |||
less than 1 year old and the strongest choice they have come up with | less than 1 year old and the strongest choice they have come up with | |||
at the time was TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA. | at the time was TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA. | |||
As the document is over 14 years old, the second paragraph of | As the document is over 14 years old, the second paragraph of | |||
Section 11.1 of [RFC3501] is replaced with the following paragraph: | Section 11.1 of [RFC3501] is replaced with the following paragraph: | |||
""" | """ | |||
IMAP client and server implementations were formerly required to | IMAP client and server implementations were formerly required to | |||
implement TLS_RSA_WITH_RC4_128_MD5 {TLS}, an extremely weak cipher | implement TLS_RSA_WITH_RC4_128_MD5 {TLS}, an extremely weak cipher | |||
suite [RFC6151] [RFC6649] [RFC7457] [RFCxxxx] [RFCyyyy] that TLS | suite [RFC6151] [RFC6649] [RFC7457] [RFCxxxx] [RFCyyyy] that TLS | |||
clients MUST NOT implement per [RFC7465]. Compatibility requirements | clients MUST NOT implement per [RFC7465]. Compatibility requirements | |||
were removed in the grounds of security, and all clients and servers | were removed in the grounds of security, and all clients and servers | |||
SHOULD comply to [RFC7525]. | SHOULD comply to [RFC7525]. | |||
""" | """ | |||
The TLS reference in [RFC3501] should be replaced with a reference to | The TLS reference in [RFC3501] should be replaced with a reference to | |||
RFC 5246, and references to RFC 6151, RFC 6649, RFC 7457, RFC 7465, | RFC 5246, and references to RFC 6151, RFC 6649, RFC 7457, RFC 7465, | |||
RFC xxxx and this document (as RFC yyyy) should be added. | RFC xxxx and this document (as RFC yyyy) should be added. | |||
4. Updates to RFC 4253 | 4. Updates to RFC 4253 | |||
RFC 4253 is updated to note the deprecation of arcfour and 3des-cbc. | RFC 4253 is updated to note the deprecation of arcfour and 3des-cbc. | |||
This document changes "OPTIONAL" to "NOT RECOMMENDED" for arcfour and | This document changes "OPTIONAL" to "NOT RECOMMENDED" for arcfour and | |||
"REQUIRED" to "OPTIONAL" for 3des-cbc in the table of | "REQUIRED" to "OPTIONAL" for 3des-cbc in the table of | |||
Section 6.3 of [RFC4253] as 3DES is weak and maintaining the | Section 6.3 of [RFC4253] as 3DES is weak and maintaining the | |||
requirement will compromise systems. [RFC4253] was published in 2006, | requirement will compromise systems. [RFC4253] was published in | |||
11 years ago, and states that """At some future time, it is expected | 2006, 11 years ago, and states that """At some future time, it is | |||
that another algorithm, one with better strength, will become so | expected that another algorithm, one with better strength, will | |||
prevalent and ubiquitous that the use of "3des-cbc" will be | become so prevalent and ubiquitous that the use of "3des-cbc" will be | |||
deprecated by another STANDARDS ACTION.""" | deprecated by another STANDARDS ACTION.""" | |||
The "future time" referred to by [RFC4253] is set to 2017, the | The "future time" referred to by [RFC4253] is set to 2017, the | |||
"STANDARDS ACTION" is set to the publication of this document and | "STANDARDS ACTION" is set to the publication of this document and | |||
the "algorithm" is set to the Advanced Encryption Standard (AES), as | the "algorithm" is set to the Advanced Encryption Standard (AES), as | |||
AES is ubiquitous in Kerberos implementations (see Section 11). | AES is ubiquitous in Kerberos implementations (see Section 11). | |||
The last sentence of the paragraph on RC4 (called "arcfour" | The last sentence of the paragraph on RC4 (called "arcfour" | |||
in [RFC4253]) in Section 6.3 of [RFC4253] should read: "Arcfour (and | in [RFC4253]) in Section 6.3 of [RFC4253] should read: "Arcfour (and | |||
RC4) are extremely weak [RFC6649] [RFC7457] [RFCxxxx] [RFCyyyy] and | RC4) are extremely weak [RFC6649] [RFC7457] [RFCxxxx] [RFCyyyy] and | |||
therefore their use is NOT RECOMMENDED." | therefore their use is NOT RECOMMENDED." | |||
References to RFC 6649, RFC 7457, RFC xxxx and this document (the | References to RFC 6649, RFC 7457, RFC xxxx and this document (the | |||
reference to this document is RFCyyyy in the above paragraph) should | reference to this document is RFCyyyy in the above paragraph) should | |||
be added to Section 6.3 of [RFC4253]. | be added to Section 6.3 of [RFC4253]. | |||
5. Updates to RFC 6649 | 5. Updates to RFC 6649 | |||
RFC 6649, also known as BCP 179, deprecates DES, RC4-HMAC-EXP and | RFC 6649, also known as BCP 179, depreciates DES, RC4-HMAC-EXP and | |||
other weak cryptography in Kerberos. It is updated to note the | other weak cryptography in Kerberos. It is updated to note the | |||
deprecation of rc4-hmac and the deprecation of RC4 in all IETF | deprecation of rc4-hmac and the deprecation of RC4 in all IETF | |||
protocols. | protocols. | |||
The security considerations of [RFC6649] (Section 6 of [RFC6649]) | The security considerations of [RFC6649] (Section 6 of [RFC6649]) | |||
read, in their last paragraph: | read, in their last paragraph: | |||
""" | """ | |||
The security considerations of [RFC4757] continue to apply to | The security considerations of [RFC4757] continue to apply to | |||
RC4-HMAC, including the known weaknesses of RC4 and MD4, and this | RC4-HMAC, including the known weaknesses of RC4 and MD4, and this | |||
document does not change the Informational status of [RFC4757] for | document does not change the Informational status of [RFC4757] for | |||
skipping to change at page 4, line 43 ¶ | skipping to change at page 4, line 43 ¶ | |||
Section 13.1 of [RFC6733] required that clients implement two RC4 | Section 13.1 of [RFC6733] required that clients implement two RC4 | |||
cipher suites and a 3DES cipher suite (but recommends implementing an | cipher suites and a 3DES cipher suite (but recommends implementing an | |||
AES cipher suite). | AES cipher suite). | |||
RFC 6733 was published in October 2012, and all paragraphs but the | RFC 6733 was published in October 2012, and all paragraphs but the | |||
last of Section 13.1 of [RFC6733] are to be replaced with: | last of Section 13.1 of [RFC6733] are to be replaced with: | |||
""" | """ | |||
Diameter nodes were formerly required to implement insecure RC4 | Diameter nodes were formerly required to implement insecure RC4 | |||
cipher suites and weak 3DES cipher suites. RC4 MUST NOT be used | cipher suites and weak 3DES cipher suites. RC4 MUST NOT be used | |||
because it is prohibited by RFC 7465. | because it is prohibited by RFC 7465. | |||
Diameter nodes MUST comply to [RFC7525]. | Diameter nodes MUST comply to [RFC7525]. | |||
TLS_RSA_WITH_AES_128_CBC_SHA was not chosen to be absolutely required | TLS_RSA_WITH_AES_128_CBC_SHA was not chosen to be absolutely required | |||
as Diameter nodes may require all connections to use forward secrecy | as Diameter nodes may require all connections to use forward secrecy | |||
by only implementing cipher suites with forward secrecy. | by only implementing cipher suites with forward secrecy. | |||
TLS_RSA_WITH_AES_128_CBC_SHA is not a forward secrecy cipher suite | TLS_RSA_WITH_AES_128_CBC_SHA is not a forward secrecy cipher suite | |||
because all connections can be decrypted once the private RSA key is | because all connections can be decrypted once the private RSA key is | |||
known by an attacker. | known by an attacker. | |||
skipping to change at page 5, line 26 ¶ | skipping to change at page 5, line 26 ¶ | |||
(for example, using "NOT RECOMMENDED" or "SHOULD NOT"). | (for example, using "NOT RECOMMENDED" or "SHOULD NOT"). | |||
8. IANA Considerations | 8. IANA Considerations | |||
IANA may need to take action as the status for RC4 and 3DES | IANA may need to take action as the status for RC4 and 3DES | |||
algorithms for Secure Shell (SSH) is changed by this document | algorithms for Secure Shell (SSH) is changed by this document | |||
(see Section 6, that updates [RFC4253]). | (see Section 6, that updates [RFC4253]). | |||
9. Security Considerations | 9. Security Considerations | |||
This document deprecates RC4, that is obsolete cryptography, and | This document depreciates RC4, that is obsolete cryptography, and | |||
several attacks that render it useless have been published [RFC6649]. | several attacks that render it useless have been published [RFC6649]. | |||
Refer to Section 5 of [RFCxxxx] for further security considerations. | Refer to Section 5 of [RFCxxxx] for further security considerations. | |||
10. Acknowledgements | 10. Acknowledgements | |||
[[RFC-Editor: When possible, add native names according to the | [[RFC-Editor: When possible, add native names according to the | |||
conventions of RFC 7997.]] | conventions of RFC 7997.]] | |||
Thanks to the following people: | Thanks to the following people: | |||
* Sean Turner and Lily Chen for writing RFC 6151, that contains | * Sean Turner and Lily Chen for writing RFC 6151, that contains | |||
updated security considerations for MD5 and HMAC-MD5. | updated security considerations for MD5 and HMAC-MD5. | |||
* Love Hornquist Astrand and Tom Yu for writing RFC 6649, that | * Love Hornquist Astrand and Tom Yu for writing RFC 6649, that | |||
deprecates weak cryptographic algorithms in Kerberos. | depreciates weak cryptographic algorithms in Kerberos. | |||
* Yaron Sheffer, Ralph Holz and Peter Saint-Andre for writing | * Yaron Sheffer, Ralph Holz and Peter Saint-Andre for writing | |||
RFC 7457, that summarises known attacks against Transport Layer | RFC 7457, that summarises known attacks against Transport Layer | |||
Security (TLS), and RFC 7525, that provides recommendations for | Security (TLS), and RFC 7525, that provides recommendations for | |||
the use of TLS and Datagram Transport Layer Security (DTLS). | the use of TLS and Datagram Transport Layer Security (DTLS). | |||
* Andrei Popov for writing RFC 7465, that prohibits RC4 cipher | * Andrei Popov for writing RFC 7465, that prohibits RC4 cipher | |||
suites in Transport Layer Security (TLS). | suites in Transport Layer Security (TLS). | |||
* Julien Elie for sending me an email about the requirements to | * Julien Elie for sending me an email about the requirements to | |||
implement RC4 cipher suites in RFC 3501 and RFC 6733. | implement RC4 cipher suites in RFC 3501 and RFC 6733. | |||
Also thanks to SSL Labs for capping server grades to B (RC4 only used | ||||
with older protocols) and C (RC4 used with modern protocols) when | ||||
servers support RC4, and flagging cipher suites and clients using RC4 | ||||
with a red colour (for INSECURE and RC4). You can test any server at | ||||
<https://www.ssllabs.com/ssltest/>. | ||||
Refer to the acknowledgements section of RFC 6649, RFC 7457 and | Refer to the acknowledgements section of RFC 6649, RFC 7457 and | |||
RFC xxxx for further acknowledgements. | RFC xxxx for further acknowledgements. | |||
11. References | 11. References | |||
11.1. Normative References | 11.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. | |||
skipping to change at page 6, line 34 ¶ | skipping to change at page 6, line 28 ¶ | |||
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | |||
"Recommendations for Secure Use of Transport Layer | "Recommendations for Secure Use of Transport Layer | |||
Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
(DTLS)", BCP 195, RFC 7525, May 2015. | (DTLS)", BCP 195, RFC 7525, May 2015. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in | |||
RFC 2119 Key Words", BCP 14, RFC 8174, May 2017. | RFC 2119 Key Words", BCP 14, RFC 8174, May 2017. | |||
[RFCxxxx] Kaduk, B., and M. Short, "Deprecate 3DES and RC4 in | [RFCxxxx] Kaduk, B., and M. Short, "Deprecate 3DES and RC4 in | |||
Kerberos", draft-ietf-curdle-des-des-des-die-die-die-04, | Kerberos", draft-ietf-curdle-des-des-des-die-die-die-05, | |||
Work in Progress. | Work in Progress. | |||
11.2. Informative References | 11.2. Informative References | |||
[RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - Version | [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - Version | |||
4rev1", RFC 3501, March 2003. | 4rev1", RFC 3501, March 2003. | |||
[RFC4253] Ylonen, T., and C. Lonvick, Ed., "The Secure Shell (SSH) | [RFC4253] Ylonen, T., and C. Lonvick, Ed., "The Secure Shell (SSH) | |||
Transport Layer Protocol", RFC 4253, January 2006. | Transport Layer Protocol", RFC 4253, January 2006. | |||
skipping to change at page 8, line 9 ¶ | skipping to change at page 8, line 9 ¶ | |||
12. Author's Address | 12. Author's Address | |||
Luis Camara | Luis Camara | |||
EMail: <luis.camara@live.com.pt> | EMail: <luis.camara@live.com.pt> | |||
Appendix A. Changelog | Appendix A. Changelog | |||
[[RFC-Editor: please remove this section when publishing.]] | [[RFC-Editor: please remove this section when publishing.]] | |||
WG draft (draft-ietf-curdle-rc4-die-die-die): | WG draft: | |||
02 - addressed Todd Short's concerns. | 03 - Style changes, removed SSL Labs paragraph in the | |||
acknowledgements section and updated RFCxxxx reference to v05. | ||||
Now British English is used in all parts of the document, | ||||
except quotations. | ||||
01 - massive simplification: removed informational updates, removed | 02 - Addressed Todd Short's concerns. | |||
01 - Massive simplification: removed informational updates, removed | ||||
all Pre-5378 Material, retracted all "Obsoletes:" except for | all Pre-5378 Material, retracted all "Obsoletes:" except for | |||
RFC 4345, removed Appendix A and renamed changelog to Appendix A. | RFC 4345, removed Appendix A and renamed changelog to Appendix A. | |||
00 - dummy update to get the draft into the curdle WG. | 00 - Dummy update to get the draft into the curdle WG. | |||
Individual draft (draft-luis140219-curdle-rc4-die-die-die): | Individual draft: | |||
02 - changed title to "Deprecating RC4 in all IETF Protocols", changed | 02 - Changed title to "Deprecating RC4 in all IETF Protocols", changed | |||
the header of all pages to "Deprecating RC4 in all Protocols", | the header of all pages to "Deprecating RC4 in all Protocols", | |||
updated RFC 3501 and RFC 6733, simplified the reference to | updated RFC 3501 and RFC 6733, simplified the reference to | |||
draft-ietf-curdle-des-des-des-die-die-die to a simple "Work in | draft-ietf-curdle-des-des-des-die-die-die to a simple "Work in | |||
Progress" reference and fixed typos. | Progress" reference and fixed typos. | |||
01 - explained reasons for updating RFC 7905 and added an informative | 01 - Explained reasons for updating RFC 7905 and added an informative | |||
reference to RFC 4757 to take away a missing reference warning. | reference to RFC 4757 to take away a missing reference warning. | |||
00 - first version. [RFCxxxx] is a reference to | 00 - First version. [RFCxxxx] is a reference to | |||
draft-ietf-curdle-des-des-des-die-die-die. The quote in | draft-ietf-curdle-des-des-des-die-die-die. The quote in | |||
Section 11 is from version 03 of this draft (posted 2017-06-15) | Section 11 is from version 03 of this draft (posted 2017-06-15) | |||
End of changes. 22 change blocks. | ||||
36 lines changed or deleted | 35 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |