RFC 6150
MD4 to Historic Status
Request for Comments 6150: MD4 to Historic Status π
Okay bestie, let's get into it! β¨ This is RFC 6150, titled MD4 to Historic Status, written by S. Turner from IECA and L. Chen from NIST. It's published as Informational (so it's not a Standards Track spec, just here to share info π), and the date is March 2011. It's an IETF document, the ISSN is 2070-1721, and it obsoletes RFC 1320 (the MD4 spec itself) π. No updates are listed in its header.
Abstract β¨
So the whole point of this doc is to retire RFC 1320, which is the one that documents the MD4 algorithm π«Ά. It also explains why we're retiring it, and moves RFC 1320 to Historic status π°οΈ.
Status of This Memo π
This doc is not an Internet Standards Track spec. It's published just for informational purposes, so no pressure π.
It's a product of the Internet Engineering Task Force (IETF), which means it represents the consensus of the IETF community π. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved doc is up for any level of Internet Standard, though. Check Section 2 of RFC 5741 for that π€.
If you want the latest on this doc's status, any errata, or how to send feedback, go to http://www.rfc-editor.org/info/rfc6150 π.
Copyright Notice π
Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved π.
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents, found at http://trustee.ietf.org/license-info as of the publication date. Please actually read these, because they lay out your rights and restrictions for this doc π. Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as the Simplified BSD License describes π«Ά.
1. Introduction π¦
Okay so, MD4 [MD4] is a message digest algorithm πΈ. It takes in a message of any length and spits out a 128-bit "fingerprint" or "message digest" of that input, which is honestly iconic π. This document retires [MD4]. More specifically, it moves RFC 1320 [MD4] to Historic status, and the reasons for doing that get discussed here π.
[HASH-Attack] covers how hashes get used across lots of protocols, and how attacks on a message digest algorithm's one-way and collision-free properties do and don't affect Internet protocols π§. You're expected to already be familiar with [HASH-Attack], so go read it if you haven't π.
2. Rationale π
MD4 was published in 1992 as an Informational RFC π. Ever since, it's been under attack [denBORBOS1992] [DOBB1995] [DOBB1996] [GLRW2010] [WLDCY2005] [LUER2008], so it's not exactly having a good time π. RSA, back in 1996, suggested that MD4 should not be used [RSA-AdviceOnMD4]. Microsoft also made similar statements [MS-AdviceOnMD4] π.
In Section 6, this doc goes over attacks against MD4 that show MD4 is no longer appropriate when collision resistance is required π₯. Section 6 also covers attacks against MD4's pre-image and second pre-image resistance. And on top of that, it looks at attacks on MD4 used for message authentication with a shared secret, which is HMAC-MD4 (i.e., HMAC-MD4) π.
3. Documents that Reference RFC 1320 π
Here's a list of RFCs that have specified the use of MD4, sorted by status. It's giving receipts π§Ύ.
Internet Standard (IS):
- [RFC2289] A One-Time Password System.
Draft Standard (DS):
- [RFC1629] Guidelines for OSI NSAP Allocation in the Internet.
Proposed Standard (PS):
- [RFC3961] Encryption and Checksum Specifications for Kerberos 5.
Best Current Practice (BCP):
- [RFC4086] Randomness Requirements for Security.
Informational:
- [RFC1760] The S/KEY One-Time Password System.
- [RFC1983] Internet Users' Glossary.
- [RFC2433] Microsoft PPP CHAP Extensions.
- [RFC2759] Microsoft PPP CHAP Extensions, Version 2.
- [RFC3174] US Secure Hash Algorithm 1 (SHA1).
- [RFC4757] The RC4-HMAC Kerberos Encryption Types Used by Microsoft Windows.
- [RFC5126] CMS Advanced Electronic Signatures (CAdES).
There are other RFCs that talk about MD2, but they've either been moved to Historic or obsoleted by a later RFC, so their references and discussions are left out π« . The notable exceptions are these:
- [RFC2313] PKCS #1: RSA Encryption Version 1.5.
- [RFC2437] PKCS #1: RSA Cryptography Specifications Version 2.0.
- [RFC3447] Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1.
4. Impact of Moving MD4 to Historic πΈ
Okay, the impact of moving MD4 to Historic is minimal π§. The one big exception is Microsoft's use of MD4 as part of RC4-HMAC in Windows, which I'll get into below π.
Let's start with the DS, PS, and BCP RFCs:
- The original One-Time Password systems, based on [RFC2289], have ostensibly been replaced by an HMAC-based mechanism, as specified in "HOTP: An HMAC-Based One-Time Password Algorithm" [RFC4226] β¨. [RFC4226] suggests following the recommendations in [RFC4086] for random input, and [RFC4086] goes over the weaknesses of MD4 π.
- MD4 was used in the Inter-Domain Routing Protocol (IDRP). Each IDRP message carries a 16-octet hash that's computed by applying the MD-4 algorithm (RFC 1320) to the context of the message itself π€. Over time, IDRP got replaced by BGP-4 [RFC4271], which required at least [MD5] π.
- Kerberos Version 5 [RFC3961] specifies the use of MD4 for DES encryption types and checksum types. They were specified, never really used, and are in the process of being deprecated by [DES-DIE] π. Plus, the mandatory-to-implement encryption types and checksum types specified by Kerberos are based on AES-256 and HMAC-SHA1 [RFC3962] π«Ά.
Now for the Informational RFCs:
- PKCS#1 v1.5 [RFC2313] said there was no reason to not use MD4 π¬. PKCS#1 v2.0 [RFC2437] and v2.1 [RFC3447] recommend against MD4, because cryptoanalytic progress uncovered weaknesses in MD4's collision resistance π₯.
- Randomness Requirements [RFC4086] does mention MD4, but not in a good way π. It explains how the algorithm works and says a bunch of attacks have been found against it.
- The "Internet Users' Glossary" [RFC1983] defined Message Digest and listed MD4 as one example π.
- The IETF OTP specification [RFC2289] was based on S/KEY technology. So S/KEY was replaced by OTP, at least in theory π. On top of that, the S/KEY implementations out in the wild have started using MD5 instead of MD4 π§.
- The CAdES document [RFC5126] lists MD4 as a hash algorithm, disparages it, and then never mentions it again π .
- The SHA-1 document [RFC3174] mentions MD4 in its acknowledgements section π.
- Three RFCs describe Microsoft protocols: [RFC2433], [RFC2759], and [RFC4757]. They're very widely deployed as MS-CHAP v1, MS-CHAP v2, and RC4-HMAC, respectively πͺ.
- MS-CHAP Version 1 is supported in Microsoft's Windows XP, 2000, 98, 95, NT 4.0, NT 3.51, and NT 3.5, but support was dropped in Vista π. MS-CHAP Version 2 is supported in Microsoft's Windows 7, Vista, XP, 2000, 98, 95, and NT 4.0 β¨. Both versions of MS-CHAP are also supported by RADIUS [RFC2548] and the Extensible Authentication Protocol (EAP) [RFC5281] π. In 2007, [RFC4962] listed MS-CHAP v1 and v2 as flawed and recommended against using them. These incidents were presented as a strong sign that built-in crypto-algorithm agility is needed in Authentication, Authorization, and Accounting (AAA) protocols π₯.
- RC4-HMAC is supported in Microsoft's Windows 2000 and later versions of Windows, for backwards compatibility with Windows 2000 πͺ. As [RFC4757] stated, RC4-HMAC doesn't rely on MD4's collision resistance property. It uses MD4 to generate a key from a password, and that key then gets used as input to HMAC-MD5 π§ . For an attacker to recover the password from RC4-HMAC, they first need to recover the key used with HMAC-MD5. As [RFC6151] notes, key recovery attacks on HMAC-MD5 are not yet practical π.
5. Other Considerations π·
rsync [RSYNC], a non-IETF protocol, once specified the use of MD4. But as of version 3.0.0, published in 2008, it has adopted MD5 [MD5] π.
6. Security Considerations π
This section is serious business, so pay attention π. It covers attacks against MD4's collisions, pre-image, and second pre-image resistance. It also discusses attacks against HMAC-MD4 π.
Some folks may find the guidance for key lengths and algorithm strengths in [SP800-57] and [SP800-131] useful π.
6.1. Collision Resistance π₯
A practical attack on MD4 was shown by Dobbertin in 1996, with a complexity of 2^20 MD4 hash computations [DOBB1996] π. Then in 2004, a much more devastating result presented by Xiaoyun Wang showed the complexity could be reduced to 2^8 MD4 hash operations π« . At the Rump Session of Crypto 2004, Wang said that, as a matter of fact, finding a collision of MD4 can be done with a pen and a piece of paper ποΈ. The formal result was presented at EUROCRYPT 2005 in [WLDCY2005] π.
6.2. Pre-Image and Second Pre-Image Resistance π
The first pre-image attack on full MD4 was done in [LUER2008] with a complexity of 2^100 π. Some improvements on pre-image and second pre-image attacks on MD4 were shown with certain pre-computations [GLRW2010], which brings the complexity down to 2^78.4 for pre-image and 2^69.4 for second pre-image, respectively π₯. The pre-image attacks on MD4 are practical. MD4 cannot be used as a one-way function. For example, it must not be used to hash a cryptographic key of 80 bits or longer π«.
6.3. HMAC π
The attacks on Hash-based Message Authentication Code (HMAC) algorithms [RFC2104] presented so far can be sorted into three types: distinguishing attacks, existential forgery attacks, and key recovery attacks. Of course, out of all of these, key recovery attacks are the most severe π.
The best results on key recovery attacks on HMAC-MD4 were published at EUROCRYPT 2008, with 2^72 queries and 2^77 MD4 computations [WOK2008] π±.
9. Informative References πβ¨
okay bestie, this is the reading list π€π it's giving research paper bibliography and i'm obsessed. every single one is kept exactly as written, so nothing gets dropped π
[denBORBOS1992]B. den Boer and A. Bosselaers. An attack on the last two rounds of MD4. In Advances in Cryptology - Crypto '91, pages 194-203, Springer-Verlag, 1992. π₯[DES-DIE]Astrand, L., "Deprecate DES support for Kerberos", Work in Progress, July 2010. π§[DOBB1995]H. Dobbertin. Alf swindles Ann. CryptoBytes, 1(3): 5, 1995. π[DOBB1996]H. Dobbertin. Cryptanalysis of MD4. In Proceedings of the 3rd Workshop on Fast Software Encryption, Cambridge, U.K., pages 53-70, Lecture Notes in Computer Science 1039, Springer-Verlag, 1996. π[GLRW2010]Guo, J., Ling, S., Rechberger, C., and H. Wang, "Advanced Meet-in-the-Middle Preimage Attacks: First Results on Full Tiger, and Improved Results on MD4 and SHA-2",http://eprint.iacr.org/2010/016.pdf. π¦[HASH-Attack]Hoffman, P. and B. Schneier, "Attacks on Cryptographic Hashes in Internet Protocols", RFC 4270, November 2005. πΈ[LUER2008]G. Leurent. MD4 is Not One-Way. Fast Software Encryption 2008, Lausanne, Switzerland, February 10-13, 2008, LNCS 5086. Springer, 2008. π[MD4]Rivest, R., "The MD4 Message-Digest Algorithm", RFC 1320, April 1992. π[MD5]Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992. π[MS-AdviceOnMD4]Howard, M., "Secure Habits: 8 Simple Rules For Developing More Secure Code",http://msdn.microsoft.com/en-us/magazine/cc163518.aspx#S6. π«Ά[RFC1629]Colella, R., Callon, R., Gardner, E., and Y. Rekhter, "Guidelines for OSI NSAP Allocation in the Internet", RFC 1629, May 1994. β[RFC1760]Haller, N., "The S/KEY One-Time Password System", RFC 1760, February 1995. π[RFC1983]Malkin, G., Ed., "Internet Users' Glossary", FYI 18, RFC 1983, August 1996. π[RFC2104]Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, February 1997. π[RFC2289]Haller, N., Metz, C., Nesser, P., and M. Straw, "A One-Time Password System", STD 61, RFC 2289, February 1998. π[RFC2313]Kaliski, B., "PKCS #1: RSA Encryption Version 1.5", RFC 2313, March 1998. π[RFC2433]Zorn, G. and S. Cobb, "Microsoft PPP CHAP Extensions", RFC 2433, October 1998. π[RFC2437]Kaliski, B., and J. Staddon, "PKCS #1: RSA Cryptography Specifications Version 2.0", RFC 2437, October 1998. π[RFC2548]Zorn, G., "Microsoft Vendor-specific RADIUS Attributes", RFC 2548, March 1999. π[RFC2759]Zorn, G., "Microsoft PPP CHAP Extensions, Version 2", RFC 2759, January 2000. π[RFC3174]Eastlake 3rd, D. and P. Jones, "US Secure Hash Algorithm 1 (SHA1)", RFC 3174, September 2001. π[RFC3447]Jonsson, J. and B. Kaliski, "Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1", RFC 3447, February 2003. π[RFC3961]Raeburn, K., "Encryption and Checksum Specifications for Kerberos 5", RFC 3961, February 2005. ποΈ[RFC3962]Raeburn, K., "Advanced Encryption Standard (AES) Encryption for Kerberos 5", RFC 3962, February 2005. ποΈ[RFC4086]Eastlake 3rd, D., Schiller, J., and S. Crocker, "Randomness Requirements for Security", BCP 106, RFC 4086, June 2005. π²[RFC4226]M'Raihi, D., Bellare, M., Hoornaert, F., Naccache, D., and O. Ranen, "HOTP: An HMAC-Based One-Time Password Algorithm", RFC 4226, December 2005. π[RFC4271]Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. π[RFC4757]Jaganathan, K., Zhu, L., and J. Brezak, "The RC4-HMAC Kerberos Encryption Types Used by Microsoft Windows", RFC 4757, December 2006. π[RFC4962]Housley, R. and B. Aboba, "Guidance for Authentication, Authorization, and Accounting (AAA) Key Management", BCP 132, RFC 4962, July 2007. πΈ[RFC5126]Pinkas, D., Pope, N., and J. Ross, "CMS Advanced Electronic Signatures (CAdES)", RFC 5126, March 2008. βοΈ[RFC5281]Funk, P. and S. Blake-Wilson, "Extensible Authentication Protocol Tunneled Transport Layer Security Authenticated Protocol Version 0 (EAP-TTLSv0)", RFC 5281, August 2008. π‘οΈ[RFC6151]Turner, S. and L. Chen, "Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms", RFC 6151, March 2011. π[RSA-AdviceOnMD4]Robshaw, M.J.B., "On Recent Results for MD2, MD4 and MD5", November 1996,ftp://ftp.rsasecurity.com/pub/pdfs/bulletn4.pdf. π§[RSYNC]rsync web pages,http://www.samba.org/rsync/. π[SHS]National Institute of Standards and Technology (NIST), FIPS Publication 180-3: Secure Hash Standard, October 2008. ποΈ[SP800-57]National Institute of Standards and Technology (NIST), Special Publication 800-57: Recommendation for Key Management - Part 1 (Revised), March 2007. ποΈ[SP800-131]National Institute of Standards and Technology (NIST), Special Publication 800-131: DRAFT Recommendation for the Transitioning of Cryptographic Algorithms and Key Sizes, June 2010. ποΈ[WLDCY2005]X. Wang, X. Lai, D. Feng, H. Chen, and X. Yu, Cryptanalysis of Hash Functions MD4 and RIPEMD, LNCS 3944, Advances in Cryptology - EUROCRYPT2005, Springer, 2005. π[WOK2008]L. Wang, K. Ohta, and N. Kunihiro, New Key-recovery Attacks on HMAC/NMAC-MD4 and NMAC-MD5, EUROCRYPT 2008, LNCS 4965, Springer, 2008. π
Authors' Addresses π¦
okay and here's how to reach the two legends who wrote this π«Ά Sean first:
Sean Turner
IECA, Inc.
3057 Nutley Street, Suite 106
Fairfax, VA 22031
USA
EMail: turners@ieca.com
and then Lily π
Lily Chen
National Institute of Standards and Technology
100 Bureau Drive, Mail Stop 8930
Gaithersburg, MD 20899-8930
USA
EMail: lily.chen@nist.gov
that's the whole RFC 6150 rewrite, periodt ππβ¨
π¦ where this page comes from
- ietf: rfc6150 2011-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms