Skip to main content

Prohibiting RC4 in all IETF Protocols
draft-luis140219-curdle-rc4-die-die-die-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Author Luís Câmara
Last updated 2017-06-16
Replaced by draft-ietf-curdle-rc4-die-die-die, draft-ietf-curdle-rc4-die-die-die, draft-ietf-curdle-rc4-die-die-die, draft-ietf-curdle-rc4-die-die-die, RFC 8758
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-luis140219-curdle-rc4-die-die-die-00
Internet Engineering Task Force (IETF)                         L. Camara
Internet-Draft                                             June 16, 2017
Obsoletes: 3078, 4345, 4757, 6229
Updates: 2118, 3961, 4120, 4253, 6150, 6649, 7457, 7905, xxxx
Intended Status: Best Current Practice
Expires: December 18, 2017

                 Prohibiting RC4 in all IETF Protocols
               draft-luis140219-curdle-rc4-die-die-die-00

[[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, nnn with
  its BCP number, MMMMMMMM with the month of its publishing as RFC, and
  YYYY with the year of its publishing as RFC.]]

[[RFC-Editor: please replace the second character of my surname by
U+00E2 when publishing as RFC in the header and in all pages.
Non-ASCII characters are allowed in RFCs as per RFC 7997.]]

Abstract

   RC4 is extremely weak as shown by RFC 6649 and RFC 7457, is
   prohibited in TLS by RFC 7465, is prohibited in Kerberos by RFC xxxx
   and it needs to be prohibited in all IETF protocols. Documents that
   provide technology that can only use RC4 are obsoleted by this
   document, so this document obsoletes and moves to Historic RFC 3078
   "Microsoft Point-to-Point Encryption (MPPE) Protocol" (only supports
   RC4), RFC 4345 "Improved Arcfour Modes for the Secure Shell (SSH)
   Transport Layer Protocol" (note Arcfour and RC4 are synonymous),
   RFC 4757 "The RC4-HMAC Kerberos Encryption Types Used by Microsoft
   Windows" (only supports RC4) and RFC 6229 "Test Vectors for the
   Stream Cipher RC4" (provides test vectors for historic cryptography).
   RFC 2118, RFC 3961, RFC 4120, RFC 4253, RFC 6150, RFC 6649, RFC 7457,
   RFC 7905 and RFC xxxx are updated to note the deprecation of RC4 in
   all IETF protocols. (Please do not confuse RFC 4757 with RFC 7457.)

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   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 December 18, 2017.

Camara                 Expires December 18, 2017                [Page 1]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

Copyright Notice

   Copyright (c) 2017 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
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1. Introduction  . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2. Why obsolete RFC 3078, RFC 4345, RFC 4757 and RFC 6229  . . . .  3
   3. Updates to RFC 2118 . . . . . . . . . . . . . . . . . . . . . .  3
   4. Updates to RFC 3961 . . . . . . . . . . . . . . . . . . . . . .  3
   5. Updates to RFC 4120 . . . . . . . . . . . . . . . . . . . . . .  3
   6. Updates to RFC 4253 . . . . . . . . . . . . . . . . . . . . . .  3
   7. Updates to RFC 6150 . . . . . . . . . . . . . . . . . . . . . .  4
   8. Updates to RFC 6649 . . . . . . . . . . . . . . . . . . . . . .  4
   9. Updates to RFC 7457 . . . . . . . . . . . . . . . . . . . . . .  5
   10. Updates to RFC 7465  . . . . . . . . . . . . . . . . . . . . .  5
   11. Updates to RFC xxxx  . . . . . . . . . . . . . . . . . . . . .  5
   12. Action to be taken . . . . . . . . . . . . . . . . . . . . . .  6
   13. IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  6
   14. Security Considerations  . . . . . . . . . . . . . . . . . . .  6
   16. References . . . . . . . . . . . . . . . . . . . . . . . . . .  6
   16.1. Normative References . . . . . . . . . . . . . . . . . . . .  7
   16.2. Informative References . . . . . . . . . . . . . . . . . . .  7
   17. Author's Address . . . . . . . . . . . . . . . . . . . . . . .  8
   Appendix A. Status of Updated Documents as of 2017-06-16 . . . . .  8
   Appendix B. Changelog  . . . . . . . . . . . . . . . . . . . . . . 10

1. Introduction

   RC4 is extremely weak [RFC6649, RFC7457, RFCxxxx] and this document
   prohibits its use in all IETF protocols, including Kerberos, Secure
   Shell (SSH). The reasons for obsoleting RFC 3078, RFC 4345 and
   RFC 4757 and moving them to Historic are discussed in Section 2. The
   updates to RFC 2118, RFC 3961, RFC 4120, RFC 4253, RFC 6150,
   RFC 6649, RFC 7457, RFC 7905 and RFC xxxx and the reasons for doing
   them are specified in sections 3, 4, 5, 6, 7, 8, 9, 10 and 11,
   respectively. The status of the updated RFCs as of the writing of
   this document is available in Appendix A.

Camara                 Expires December 18, 2017                [Page 2]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14
   [RFC2119, RFC8174].

2. Why obsolete RFC 3078, RFC 4345, RFC 4757 and RFC 6229

   RFC 3078 is no longer used by supported Microsoft Windows versions
   and is moved to Historic and obsoleted by this document as it only
   supports RC4 for encryption. RFC 2118 is updated to note the
   moving of RFC 3078 (that updated RFC 2118) to Historic and its
   obsoletion.

   RFC 4345 defines the "arcfour-128" and "arcfour-256" modes for Secure
   Shell (SSH), and is moved to Historic as RC4 is extremely weak
   [RFC6649, RFC7457, RFCxxxx] and there is research that is at least 5
   years old that totally breaks all practical usage of RC4 [RFC6649].

   RFC 4757 is obsoleted and moved to Historic as it is no longer used
   by supported Microsoft Windows versions (support for Windows XP ended
   8 April 2014, any unofficial support for officially unsupported
   Microsoft Windows versions will certainly remove RC4) and specifies
   RC4-HMAC as used by Microsoft Windows in Kerberos, that should have
   been obsoleted, not updated, by RFC 6649. RFC xxxx also obsoletes
   RFC 4757. Additionally, MD4 is extremely weak and not one-way
   [RFC6150] and this is another reason to move RFC 4757 to Historic,
   as well as the myriads of other reasons specified in [RFC6150].

   RFC 6229 provides test vectors for RC4 and is obsoleted and moved to
   Historic by this document as RC4 is deprecated in all IETF protocols.

3. Updates to RFC 2118

   RFC 2118 is updated to note the obsoletion of RFC 3078 and the
   moving of RFC 3078 to Historic (see Section 2).

4. Updates to RFC 3961

   RFC 3961 is updated to note the deprecation of rc4-hmac and
   rc4-hmac-exp (referred to in Section 8 of [RFC3961]).

5. Updates to RFC 4120

   RFC 4120 is updated to note the deprecation of rc4-hmac and
   rc4-hmac-exp.

6. Updates to RFC 4253

   RFC 4253 is updated to note the deprecation of arcfour and 3des-cbc.
   This document changes "OPTIONAL" to "NOT RECOMMENDED" for arcfour and
   "REQUIRED" to "OPTIONAL" for 3des-cbc in the table of

Camara                 Expires December 18, 2017                [Page 3]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

   Section 6.3 of [RFC4253] as 3DES is weak and maintaining the
   requirement will compromise systems. [RFC4253] was published in 2006,
   11 years ago, and states that """At some future time, it is expected
   that another algorithm, one with better strength, will become so
   prevalent and ubiquitous that the use of "3des-cbc" will be
   deprecated by another STANDARDS ACTION."""

   The "future time" referred to by [RFC4253] is set to 2017, the
   "STANDARDS ACTION" is set to the publication of this document and
   the "algorithm" is set to the Advanced Encryption Standard (AES), as
   AES is ubiquitous in Kerberos implementations (see Section 11).

   The paragraph on RC4 (called "arcfour" in [RFC4253]) in
   Section 6.3 of [RFC4253] currently reads:
   """
   The "arcfour" cipher is the Arcfour stream cipher with 128-bit keys.
   The Arcfour cipher is believed to be compatible with the RC4 cipher
   [SCHNEIER].  Arcfour (and RC4) has problems with weak keys, and
   should be used with caution.
   """

   It should read:
   """
   The "arcfour" cipher is the Arcfour stream cipher with 128-bit keys.
   The Arcfour cipher is believed to be compatible with the RC4 cipher
   [SCHNEIER].  Arcfour (and RC4) are extremely weak [RFC6649, RFC7457,
   RFCxxxx, RFCyyyy] and therefore their use is NOT RECOMMENDED.
   """

   References to RFC 6649, RFC 7457, RFC xxxx and this document (the
   reference to this document is RFCyyyy in the above paragraph) should
   be added to Section 6.3 of [RFC4253].

7. Updates to RFC 6150

   RFC 6150 moves MD4 to Historic. Note the RFC contains a typo: "MD2"
   should be "MD4". RFC 6150 references RFC 4757, obsoleted by this
   document, as using MD4. The expression "with the one exception of
   Microsoft's use of MD4 as part of RC4-HMAC in Windows,", as well as
   all expressions indicating algorithms using RC4 are a problem to the
   deprecation of MD4, should be removed from Section 4 of [RFC6150].

8. Updates to RFC 6649

   [RFC6649], also known as BCP 179, deprecates DES, RC4-HMAC-EXP and
   other weak cryptography in Kerberos. It is updated to note the
   deprecation of rc4-hmac and the deprecation of RC4 in all IETF
   protocols.

   The security considerations of [RFC6649] (Section 6 of [RFC6649])
   read, in their last paragraph:

Camara                 Expires December 18, 2017                [Page 4]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

   """
   The security considerations of [RFC4757] continue to apply to
   RC4-HMAC, including the known weaknesses of RC4 and MD4, and this
   document does not change the Informational status of [RFC4757] for
   now.  The main reason to not actively discourage the use of RC4-HMAC
   is that it is the only encryption type that interoperates with older
   versions of Microsoft Windows once DES and RC4-HMAC-EXP are removed.
   These older versions of Microsoft Windows will likely be in use until
   at least 2015.
   """

   This is updated to note that Windows XP is without official support
   for 3 years (support for Windows XP ended 8 April 2014).

   An important quote from [RFC6649] (Section 6 of [RFC6649]):
   """
   Removing support for single DES improves security because DES is
   considered to be insecure.  RC4-HMAC-EXP has a similarly inadequate
   key size, so removing support for it also improves security.
   """

9. Updates to RFC 7457

   [RFC7457], an Informational RFC describing attacks against Transport
   Layer Security (TLS) and Datagram Transport Layer Security (DTLS), is
   updated to note the deprecation of RC4 in all IETF protocols.

10. Updates to RFC 7465

   [RFC7465] prohibits RC4 cipher suites in Transport Layer Security
   (TLS) and is updated to note the deprecation of RC4 in all IETF
   protocols.

11. Updates to RFC xxxx

   [RFCxxxx] deprecates 3DES and RC4 in Kerberos, obsoletes RFC 4757 and
   updates RFC 3961, and is updated by this document to note the
   moving of RC4 RFCs (RFC 4345 and RFC 6229) and Microsoft technology
   dependent on RC4 (RFC 3078 and RFC 4757).

Camara                 Expires December 18, 2017                [Page 5]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

   An important quote from [RFCxxxx] (Section 5.4 of [RFCxxxx]):
   """
   Fortuntately, modern (i.e., supported) Kerberos implementations
   support a secure alternative to RC4, in the form of AES.  Windows has
   supported AES since 2007-2008 with the release of Windows Vista and
   Server 2008, respectively; MIT Kerberos [MITKRB5] has fully supported
   AES (including the GSSAPI mechanism) since 2004 with the release of
   version 1.3.2; Heimdal [HEIMDAL] has fully supported AES since 2005
   with the release of version 0.7.  Though there may still be issues
   running ten-year-old unsupported software in mixed environments with
   new software, issues of that sort seem unlikely to be unique to
   Kerberos, and the aministrators of such environments are expected to
   be capable of devising workarounds.
   """
   (note the quote contains typos: "Fortuntately" and "aministrators")

12. Action to be taken

   RC4 MUST NOT be used in new implementations of IETF protocols, and
   RC4 MUST be eliminated as fast as possible from the existing Internet
   infrastructure, as RC4 is extremely weak [RFC6649, RFC7457, RFCxxxx].
   New RFCs MAY use the phrase "RC4 is extremely weak [RFC6649, RFC7457,
   RFCxxxx]" with references to RFC 6649, RFC 7457 and RFC xxxx. Whether
   the references to these documents is normative or informative is
   determined by BCP 9 and BCP 97, whose relevant documents for this
   purpose are RFC 2026, RFC 3967, RFC 4897, RFC 6410 and RFC 8067.

   Microsoft Corporation SHOULD take action to eradicate RC4 in all
   its software and systems.

13. IANA Considerations

   IANA may need to take action as the status for RC4 and 3DES
   algorithms for Secure Shell (SSH) is changed by this document
   (see Section 6, that updates [RFC4253]).

14. Security Considerations

   This document deprecates RC4, that is obsolete cryptography, and
   several attacks that render it useless have been published [RFC6649].
   Refer to Section 5 of [RFCxxxx] for further security considerations.

15. Acknowledgements

   [[RFC-Editor: When possible, add native names according to the
   conventions of RFC 7997.]]

   Thanks to the following people for writing reference material:

   * Love Hornquist Astrand and Tom Yu for writing RFC 6649, that
     deprecates weak cryptographic algorithms in Kerberos.

Camara                 Expires December 18, 2017                [Page 6]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

   * Yaron Sheffer, Ralph Holz and Peter Saint-Andre for writing
     RFC 7457, that summarises known attacks against Transport Layer
     Security (TLS).

   * Andrei Popov for writing RFC 7465, that prohibits RC4 cipher
     suites.

   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. You can test any server at
   <https://www.ssllabs.com/ssltest/>.

   Refer to the acknowledgements section of RFC 6649, RFC 7457 and
   RFC xxxx for further acknowledgements.

16. References

16.1. Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC6649]  Hornquist Astrand, L. and T. Yu, "Deprecate DES, RC4-HMAC-
              EXP, and Other Weak Cryptographic Algorithms in Kerberos",
              BCP 179, RFC 6649, July 2012.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in
              RFC 2119 Key Words", BCP 14, RFC 8174, May 2017.

   [RFCxxxx]  Kaduk, B., and M. Short, "Deprecate 3DES and RC4 in
              Kerberos", BCP nnn, RFC xxxx, [[RFC-Editor: this is
              Internet-Draft draft-ietf-curdle-des-des-des-die-die-die,
              and remove this notice when publishing]], MMMMMMMM YYYY.

16.2. Informative References

   [HEIMDAL]  Heimdal Project, "Heimdal Kerberos Implementation", April
              2017, <https://www.h5l.org/>.

   [MITKRB5]  MIT, "MIT Kerberos Implementation", March 2017,
              <https://web.mit.edu/kerberos/>.

   [RFC3961]  Raeburn, K., "Encryption and Checksum Specifications for
              Kerberos 5", RFC 3961, February 2005.

   [RFC4253]  Ylonen, T., and C. Lonvick, Ed., "The Secure Shell (SSH)
              Transport Layer Protocol", RFC 4253, January 2006.

   [RFC6150]  Turner, S., and L. Chen, "MD4 to Historic Status",
              RFC 6150, March 2011.

Camara                 Expires December 18, 2017                [Page 7]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

   [RFC7457]  Sheffer, Y., Holz, R., and P. Saint-Andre, "Summarizing
              Known Attacks on Transport Layer Security (TLS) and
              Datagram TLS (DTLS)", RFC 7457, February 2015.

   [RFC7465]  Popov, A., "Prohibiting RC4 Cipher Suites", RFC 7465,
              February 2015.

   [SCHNEIER] Schneier, B., "Applied Cryptography Second Edition:
              protocols algorithms and source in code in C", John Wiley
              and Sons, New York, NY, 1996.

   [[RFC-Editor: please replace the 'i' in my name by U+00ED and the
   first 'a' in the surname by U+00E2, as non-ASCII characters are
   allowed as per RFC 7997]]

17. Author's Address

   Luis Camara

   EMail: <luis.camara@live.com.pt>

Appendix A. Status of Updated Documents as of 2017-06-16

   [[RFC-Editor: Please replace with updated data when publishing as RFC
   and replace "2017-06-16" by the date of publishing.
   Leave the table below in a page of its own.]]

Camara                 Expires December 18, 2017                [Page 8]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

   +----------+-----------------------+--------------------------------+
   | RFC #### | Status                | Updated by                     |
   +----------+-----------------------+--------------------------------+
   | RFC 2118 | Informational         | RFC 3078                       |
   +----------+-----------------------+--------------------------------+
   | RFC 3961 | Proposed Standard     | RFC xxxx                       |
   +----------+-----------------------+--------------------------------+
   |          |                       | RFC 4537, RFC 5021, RFC 5896,  |
   | RFC 4120 | Proposed Standard     | RFC 6111, RFC 6112, RFC 6113,  |
   |          |                       | RFC 6649, RFC 6806, RFC 7751,  |
   |          |                       | RFC 8062, RFC 8129             |
   +----------+-----------------------+--------------------------------+
   | RFC 4253 | Proposed Standard     | RFC 6668                       |
   +----------+-----------------------+--------------------------------+
   | RFC 6150 | Informational         |                                |
   +----------+-----------------------+--------------------------------+
   | RFC 6649 | Best Current Practice |                                |
   |          | (BCP 179)             |                                |
   +----------+-----------------------+--------------------------------+
   | RFC 7457 | Informational         |                                |
   +----------+-----------------------+--------------------------------+
   | RFC 7465 | Proposed Standard     |                                |
   +----------+-----------------------+--------------------------------+
   | RFC xxxx | Best Current Practice | This draft is [RFCxxxx]        |
   |          | (BCP nnn)             |                                |
   +----------+-----------------------+--------------------------------+

Camara                 Expires December 18, 2017                [Page 9]
Internet-Draft      Prohibiting RC4 in all Protocols           June 2017

Appendix B. Changelog

  [[RFC-Editor: please remove this section when publishing.]]

  00 - first version. [RFCxxxx] is a reference to
       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)

Camara                 Expires December 18, 2017               [Page 10]