| < draft-turner-md5-seccon-update-00.txt | draft-turner-md5-seccon-update-01.txt > | |||
|---|---|---|---|---|
| Network Working Group S. Turner | Network Working Group S. Turner | |||
| Internet Draft IECA | Internet Draft IECA | |||
| Updates: 1321 (once approved) L. Chen | Updates: 1321, 2202 (once approved) L. Chen | |||
| Intended Status: Informational NIST | Intended Status: Informational NIST | |||
| Expires: January 5, 2011 July 5, 2010 | Expires: January 8, 2011 July 8, 2010 | |||
| Updated Security Considerations for the MD5 Message-Digest Algorithm | Updated Security Considerations for the | |||
| draft-turner-md5-seccon-update-00.txt | MD5 Message-Digest Algorithm and HMAC-MD5 | |||
| draft-turner-md5-seccon-update-01.txt | ||||
| Abstract | Abstract | |||
| This document updates the security considerations for the MD5 message | This document updates the security considerations for the MD5 message | |||
| digest algorithm. | digest algorithm. It also updates the security considerations for | |||
| HMAC-MD5. | ||||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. This document may contain material | provisions of BCP 78 and BCP 79. This document may contain material | |||
| from IETF Documents or IETF Contributions published or made publicly | from IETF Documents or IETF Contributions published or made publicly | |||
| available before November 10, 2008. | available before November 10, 2008. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 41 ¶ | |||
| 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." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on January 5, 2011. | This Internet-Draft will expire on January 8, 2011. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 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 21 ¶ | skipping to change at page 2, line 24 ¶ | |||
| 1. Introduction | 1. Introduction | |||
| MD5 [MD5] is a message digest algorithm that takes as input a message | MD5 [MD5] is a message digest algorithm that takes as input a message | |||
| of arbitrary length and produces as output a 128-bit "fingerprint" or | of arbitrary length and produces as output a 128-bit "fingerprint" or | |||
| "message digest" of the input. The published attacks against MD5 | "message digest" of the input. The published attacks against MD5 | |||
| show and that it is not prudent to use MD5 when collision resistance | show and that it is not prudent to use MD5 when collision resistance | |||
| is required. This document replaces the security considerations in | is required. This document replaces the security considerations in | |||
| RFC 1321 [MD5]. | RFC 1321 [MD5]. | |||
| [HMAC] defined a mechanism for message authentication using | ||||
| cryptographic hash functions. Any message digest algorithm can be | ||||
| used, but the cryptographic strength of HMAC depends on the | ||||
| properties of the underlying hash function. [HMAC-MD5] defined test | ||||
| cases for HMAC-MD5. This document updates the security | ||||
| considerations in [HMAC-MD5]. | ||||
| [HASH-Attack] summarizes the use of hashes in many protocols and | [HASH-Attack] summarizes the use of hashes in many protocols and | |||
| discusses how attacks against a message digest algorithm's one-way | discusses how attacks against a message digest algorithm's one-way | |||
| and collision-free properties affect and do not affect Internet | and collision-free properties affect and do not affect Internet | |||
| protocols. | protocols. | |||
| 2. Security Considerations | 2. Security Considerations | |||
| MD5 was published in 1992 as an Informational RFC. Since that time, | MD5 was published in 1992 as an Informational RFC. Since that time, | |||
| MD5 has been studied extensively. What follows are recent attacks | MD5 has been studied extensively. What follows are recent attacks | |||
| against MD5's collisions, pre-image, and second pre-image resistance. | against MD5's collisions, pre-image, and second pre-image resistance. | |||
| Additionally, attacks against MD5 used in message authentication with | Additionally, attacks against MD5 used in message authentication with | |||
| a shared secret (i.e., HMAC-MD5) are discussed. | a shared secret (i.e., HMAC-MD5) are discussed. | |||
| Some may find the guidance for key lengths and algorithm strengths in | Some may find the guidance for key lengths and algorithm strengths in | |||
| [SP800-57] and [SP800-131] useful. | [SP800-57] and [SP800-131] useful. | |||
| 2.1. Collision Resistance | 2.1. Collision Resistance | |||
| The first paper that demonstrates actual collisions of MD5 was | The first paper that demonstrates actual collisions of MD5 was | |||
| published in 2004 [MD5-Analysis1]. The detailed attack techniques for | published in 2004 [WFLY2004]. The detailed attack techniques for MD5 | |||
| MD5 were published at EUROCRYPT 2005 [MD5-Analysis2]. Since then, a | were published at EUROCRYPT 2005 [WAYU2005]. Since then, a lot of | |||
| lot of research results have been published to improve collision | research results have been published to improve collision attacks on | |||
| attacks on MD5. The attacks presented in [MD5-Analysis3] can find MD5 | MD5. The attacks presented in [KLIM2006] can find MD5 collision in | |||
| collision in about one minute on a standard notebook PC (Intel | about one minute on a standard notebook PC (Intel Pentium, 1.6 GHz.). | |||
| Pentium, 1.6 GHz.). In [MD5-Analysis4], the collision attack on MD5 | In [STEV2007], he claim that it takes 10 seconds or less on a 2.6Ghz | |||
| was successfully applied to X.509 certificates. | Pentium4 to find collisions. In | |||
| [STEV2007][SLdeW2007][SSALMOdeW2009][SLdeW2009], the collision | ||||
| attacks on MD5 were successfully applied to X.509 certificates. | ||||
| Notice that the collision attack on MD5 can also be applied to | Notice that the collision attack on MD5 can also be applied to | |||
| password based challenge-and-response authentication protocols such | password based challenge-and-response authentication protocols such | |||
| as APOP protocol used in post office authentication as presented in | as APOP protocol used in post office authentication as presented in | |||
| [MD5-Analysis5]. | [LEUR2007]. | |||
| In fact, more delicate attacks on MD5 to improve the speed of finding | In fact, more delicate attacks on MD5 to improve the speed of finding | |||
| collisions have published recently. However, the aforementioned | collisions have published recently. However, the aforementioned | |||
| results have provided sufficient reason to eliminate MD5 usage in | results have provided sufficient reason to eliminate MD5 usage in | |||
| applications where collision resistance is required such as digital | applications where collision resistance is required such as digital | |||
| signatures. | signatures. | |||
| 2.2. Pre-image and Second Pre-image Resistance | 2.2. Pre-image and Second Pre-image Resistance | |||
| Even though the best result can find a pre-image attack of MD5 faster | Even though the best result can find a pre-image attack of MD5 faster | |||
| than exhaustive search as presented in [MD5-Analysis6], the | than exhaustive search as presented in [SAAO2009], the complexity | |||
| complexity 2^123.4 is still pretty high. | 2^123.4 is still pretty high. | |||
| 2.3. HMAC | 2.3. HMAC | |||
| The cryptanalysis of HMAC-MD5 usually conducted together with NMAC | The cryptanalysis of HMAC-MD5 usually conducted together with NMAC | |||
| (Nested MAC) since they are closely related. NMAC uses two | (Nested MAC) since they are closely related. NMAC uses two | |||
| independent keys K1 and K2 such that NMAC(K1, K2, M) = H(K1, H(K2, | independent keys K1 and K2 such that NMAC(K1, K2, M) = H(K1, H(K2, | |||
| M), where K1 and K2 are used as secret IVs for hash functions | M), where K1 and K2 are used as secret IVs for hash functions | |||
| H(IV,M). If we re-write HMAC equation using two secret IVs such that | H(IV,M). If we re-write HMAC equation using two secret IVs such that | |||
| IV2 = H(K Xor ipad) and IV1 = H(K Xor opad), then HMAC(K, M) = | IV2 = H(K Xor ipad) and IV1 = H(K Xor opad), then HMAC(K, M) = | |||
| NMAC(IV1, IV2, M). Here it is very important to notice that IV1 and | NMAC(IV1, IV2, M). Here it is very important to notice that IV1 and | |||
| IV2 are not independently selected. | IV2 are not independently selected. | |||
| The first analysis was explored on NMAC-MD5 using related keys in | The first analysis was explored on NMAC-MD5 using related keys in | |||
| [HMAC-Analysis1]. The partial key recovery attack cannot be extended | [COYI2006]. The partial key recovery attack cannot be extended to | |||
| to HMAC-MD5, since for HMAC, recovering partial secret IVs can hardly | HMAC-MD5, since for HMAC, recovering partial secret IVs can hardly | |||
| lead to recovering (partial) key K. Another paper presented at Crypto | lead to recovering (partial) key K. Another paper presented at Crypto | |||
| 2007 [HMAC-Analysis2] extended results of [HMAC-Analysis1] to a full | 2007 [FLN2007] extended results of [COYI2006] to a full key recovery | |||
| key recovery attack on NMAC-MD5. Since it also uses related key | attack on NMAC-MD5. Since it also uses related key attack, it does | |||
| attack, it does not seem applicable to HMAC-MD5. | not seem applicable to HMAC-MD5. | |||
| A EUROCRYPT 2009 paper presented a distinguishing attack on HMAC-MD5 | A EUROCRYPT 2009 paper presented a distinguishing attack on HMAC-MD5 | |||
| [HMAC-Analysis3] without using related keys. It can distinguish an | [WYWZZ2009] without using related keys. It can distinguish an | |||
| instantiation of HMAC with MD5 from an instantiation with a random | instantiation of HMAC with MD5 from an instantiation with a random | |||
| function with 2^97 queries with probability 0.87. This is called | function with 2^97 queries with probability 0.87. This is called | |||
| distinguishing-H. Using the distinguishing attack, it can recover | distinguishing-H. Using the distinguishing attack, it can recover | |||
| some bits of the intermediate status of the second block. However, as | some bits of the intermediate status of the second block. However, as | |||
| it is pointed in [HMAC-Analysis3], it cannot be used to recover the | it is pointed in [WYWZZ2009], it cannot be used to recover the | |||
| (partial) inner key H(K Xor ipad). It is not obvious how the attack | (partial) inner key H(K Xor ipad). It is not obvious how the attack | |||
| can be used to form a forgery attack either. | can be used to form a forgery attack either. | |||
| The attacks on HMAC-MD5 do not seem to indicate a practical | The attacks on HMAC-MD5 do not seem to indicate a practical | |||
| vulnerability when used as a message authentication code. Considering | vulnerability when used as a message authentication code. Considering | |||
| that the distinguishing-H attack is different from distinguishing-R | that the distinguishing-H attack is different from distinguishing-R | |||
| attack, which distinguishes an HMAC from a random function, the | attack, which distinguishes an HMAC from a random function, the | |||
| practical impact on HMAC usage as a PRF such as in a key derivation | practical impact on HMAC usage as a PRF such as in a key derivation | |||
| function is not well understood. | function is not well understood. | |||
| skipping to change at page 4, line 16 ¶ | skipping to change at page 4, line 27 ¶ | |||
| protocols. However, since MD5 must not be used for digital | protocols. However, since MD5 must not be used for digital | |||
| signatures, for a new protocol design, a ciphersuite with HMAC-MD5 | signatures, for a new protocol design, a ciphersuite with HMAC-MD5 | |||
| should not be included. | should not be included. | |||
| 3. IANA Considerations | 3. IANA Considerations | |||
| None. | None. | |||
| 4. Normative References | 4. Normative References | |||
| [HASH-Attack] Hoffman, P., and B. Schneier, "Attacks on | [COYI2006] S. Contini, Y.L. Yin. Forgery and partial key- | |||
| Cryptographic Hashes in Internet Protocols", RFC | ||||
| 4270, November 2005. | ||||
| [HMAC-Analysis1] S. Contini, Y.L. Yin. Forgery and partial key- | ||||
| recovery attacks on HMAC and NMAC using hash | recovery attacks on HMAC and NMAC using hash | |||
| collisions. ASIACRYPT 2006. LNCS 4284, Springer, | collisions. ASIACRYPT 2006. LNCS 4284, Springer, | |||
| 2006. | 2006. | |||
| [HMAC-Analysis2] Fouque, P.-A., Leurent, G., Nguyen, P.Q.: Full key- | [FLN2007] Fouque, P.-A., Leurent, G., Nguyen, P.Q.: Full key- | |||
| recovery attacks on HMAC/NMAC-MD4 and NMAC-MD5. | recovery attacks on HMAC/NMAC-MD4 and NMAC-MD5. | |||
| CRYPTO 2007. LNCS, 4622, Springer, 2007. | CRYPTO 2007. LNCS, 4622, Springer, 2007. | |||
| [HMAC-Analysis3] X. Wang, H. Yu, W. Wang, H. Zhang, and T. Zhan. | [HASH-Attack] Hoffman, P., and B. Schneier, "Attacks on | |||
| Cryptanalysis of HMAC/NMAC-MD5 and MD5-MAC. LNCS | Cryptographic Hashes in Internet Protocols", RFC | |||
| 5479. Advances in Cryptology - EUROCRYPT2009, | 4270, November 2005. | |||
| Springer 2009. | ||||
| [MD5] Rivest, R., "The MD5 Message-Digest Algorithm", RFC | ||||
| 1321, April 1992. | ||||
| [MD5-Analysis1] X. Wang, D. Feng, X. Lai, H. Yu, Collisions for | [HMAC] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: | |||
| Hash Functions MD4, MD5, HAVAL-128 and RIPEMD, | Keyed-Hashing for Message Authentication", RFC | |||
| 2004, http://eprint.iacr.org/2004/199.pdf | 2104, February 1997. | |||
| [MD5-Analysis2] X. Wang and H. Yu. How to Break MD5 and other Hash | [HMAC-MD5] Cheng, P., and R. Glenn, "Test Cases for HMAC-MD5 | |||
| Functions. LNCS 3494. Advances in Cryptology - | and HMAC-SHA-1", RC 2201, September 1997. | |||
| EUROCRYPT2005, Springer 2005. | ||||
| [MD5-Analysis3] V. Klima. Tunnels in Hash Functions: MD5 Collisions | [KLIM2006] V. Klima. Tunnels in Hash Functions: MD5 Collisions | |||
| within a Minute. Cryptology ePrint Archive, Report | within a Minute. Cryptology ePrint Archive, Report | |||
| 2006/105 (2006), http://eprint.iacr.org/2006/105. | 2006/105 (2006), http://eprint.iacr.org/2006/105. | |||
| [MD5-Analysis4] Stevens, M., Lenstra, A., de Weger, B., Target | [LEUR2007] G. Leurent, Message freedom in MD4 and MD5 | |||
| Collisions for MD5 and Colliding X.509 | ||||
| Certificates for Different Identities. Cryptology | ||||
| ePrint Archive, Report 2006/360 (2006), | ||||
| http://eprint.iacr.org/2006/360. | ||||
| [MD5-Analysis5] G. Leurent, Message freedom in MD4 and MD5 | ||||
| collisions: Application to APOP. Proceedings of | collisions: Application to APOP. Proceedings of | |||
| FSE 2007. Lecture Notes in Computer Science 4715. | FSE 2007. Lecture Notes in Computer Science 4715. | |||
| Springer 2007. | Springer 2007. | |||
| [MD5-Analysis6] Y. Sasaki and K. Aoki. Finding preimages in full | [MD5] Rivest, R., "The MD5 Message-Digest Algorithm", RFC | |||
| 1321, April 1992. | ||||
| [SAAO2009] Y. Sasaki and K. Aoki. Finding preimages in full | ||||
| MD5 faster than exhaustive search. Advances in | MD5 faster than exhaustive search. Advances in | |||
| Cryptology - EUROCRYPT 2009, LNCS 5479 of Lecture | Cryptology - EUROCRYPT 2009, LNCS 5479 of Lecture | |||
| Notes in Computer Science, Springer, 2009. | Notes in Computer Science, Springer, 2009. | |||
| [SLdeW2007] Stevens, M., Lenstra, A., de Weger, B., Chosen- | ||||
| prefix Collisions for MD5 and Colliding X.509 | ||||
| Certificates for Different Identities. EuroCrypt | ||||
| 2007. | ||||
| [SLdeW2009] Stevens, M., Lenstra, A., de Weger, B., "Chosen- | ||||
| prefix Collisions for MD5 and Applications", | ||||
| Journal of Cryptology, 2009. | ||||
| http://deweger.xs4all.nl/papers/%5B42%5DStLedW- | ||||
| MD5-JCryp%5B2009%5D.pdf. | ||||
| [SSALMOdeW2009] Stevens, M., Sotirov, A., Appelbaum, J., Lenstra, | ||||
| A., Molnar, D., Osvik, D., and B. de Weger. Short | ||||
| chosen-prefix collisions for MD5 and the creation | ||||
| of a rogue CA certificate, Crypto 2009. | ||||
| [SP800-57] National Institute of Standards and Technology | [SP800-57] National Institute of Standards and Technology | |||
| (NIST), Special Publication 800-57: Recommendation | (NIST), Special Publication 800-57: Recommendation | |||
| for Key Management - Part 1 (Revised), March 2007. | for Key Management - Part 1 (Revised), March 2007. | |||
| [SP800-131] National Institute of Standards and Technology | [SP800-131] National Institute of Standards and Technology | |||
| (NIST), Special Publication 800-131: DRAFT | (NIST), Special Publication 800-131: DRAFT | |||
| Recommendation for the Transitioning of | Recommendation for the Transitioning of | |||
| Cryptographic Algorithms and Key Sizes, June 2010. | Cryptographic Algorithms and Key Sizes, June 2010. | |||
| [STEV2007] Stevens, M., On Collisions for MD5. | ||||
| http://www.win.tue.nl/hashclash/On%20Collisions%20 | ||||
| for%20MD5%20-%20M.M.J.%20Stevens.pdf. | ||||
| [WAYU2005] X. Wang and H. Yu. How to Break MD5 and other Hash | ||||
| Functions. LNCS 3494. Advances in Cryptology - | ||||
| EUROCRYPT2005, Springer 2005. | ||||
| [WFLY2004] X. Wang, D. Feng, X. Lai, H. Yu, Collisions for | ||||
| Hash Functions MD4, MD5, HAVAL-128 and RIPEMD, | ||||
| 2004, http://eprint.iacr.org/2004/199.pdf | ||||
| [WYWZZ2009] X. Wang, H. Yu, W. Wang, H. Zhang, and T. Zhan. | ||||
| Cryptanalysis of HMAC/NMAC-MD5 and MD5-MAC. LNCS | ||||
| 5479. Advances in Cryptology - EUROCRYPT2009, | ||||
| Springer 2009. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Sean Turner | Sean Turner | |||
| IECA, Inc. | IECA, Inc. | |||
| 3057 Nutley Street, Suite 106 | 3057 Nutley Street, Suite 106 | |||
| Fairfax, VA 22031 | Fairfax, VA 22031 | |||
| USA | USA | |||
| EMail: turners@ieca.com | EMail: turners@ieca.com | |||
| End of changes. 23 change blocks. | ||||
| 51 lines changed or deleted | 83 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||