1 / 37

Prolomení MD5, současné problémy hašovacích funkcí a doporučení k obraně

Prolomení MD5, současné problémy hašovacích funkcí a doporučení k obraně. Vlastimil Klíma nezávislý konzultant v klima at volny cz, http://cryptography.hyperlink.cz Security Upgrade 2006 , 12. – 13. 4. 2006, TOP Hotel, Praha. Obsah. Základní vlastnosti a konstrukce hašovacích funkcí

erling
Download Presentation

Prolomení MD5, současné problémy hašovacích funkcí a doporučení k obraně

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prolomení MD5,současné problémy hašovacích funkcí a doporučení k obraně Vlastimil Klíma nezávislý konzultant v klima at volny cz, http://cryptography.hyperlink.cz Security Upgrade 2006, 12. – 13. 4. 2006, TOP Hotel, Praha

  2. Obsah • Základní vlastnosti a konstrukce hašovacích funkcí • Současné problémy hašovacích funkcí • Kolize MD5 • Trik pro prolomení MD5 do třiceti sekund • Ukázka nejrychlejšího kolizního programu na světě • Ukázka možnosti zneužití kolizí MD5 v praxi • Obrana proti současným útokům • Konkrétní východiska • A něco navíc pro zoufalce

  3. I. Blok – Základní vlastnosti

  4. M h h(M) Základní vlastnosti hašovacích funkcí • Libovolný vstup M • Pevně definovaná délka výstupu (n bitů) n: MD5: 128 b SHA-1: 160 b SHA-256: 256 b SHA-512: 512 b • Vlastnosti: • Jednocestnost • Odolnost proti kolizi • Náhodnost

  5. Základní vlastnosti hašovacích funkcí • Jednocestnost, preimage resistance • Pro každé x je jednoduché vypočítat h(x) • Pro náhodně volené x je výpočetně neproveditelné z h(x) určit x • Využití: např. ukládání hesel

  6. Základní vlastnosti hašovacích funkcí • Odolnost proti kolizi druhého řádu, second preimage resistance • Je výpočetně neproveditelné k danému náhodnému x nalézt druhý vzory různý od x tak, že h(x) = h(y), složitost nalezení kolize cca 2n

  7. Základní vlastnosti hašovacích funkcí • Odolnost proti kolizi prvního řádu, collision resistance • Je výpočetně neproveditelné nalézt libovolné různé x, y tak, že h(x) = h(y), složitost nalezení kolize cca 2n/2 • Využití: v digitálních podpisech

  8. Základní vlastnosti hašovacích funkcí Narozeninový paradox: Kolizi lze nalézt pouze se složitostí 2n/2 operací (pro n-bitové hašovací kódy). V množině K zpráv je K(K-1)/2 dvojic. Pravděpodobnost, že dvojice má stejnou haš je 1/2n, pro K = 2n/2 máme K(K-1)/2 = cca 2n / 2 dvojic. Odtud tvrzení.

  9. Základní vlastnosti hašovacích funkcí H(„1“), H(„2“), H(„3“),… H(secret_seed , „1“), H(secret_ seed , „2“), H(secret_ seed , „3“),… Náhodnost: Na hašovací funkci se postupně kladly stejné nároky jako na náhodné orákulum. Náhodné orákulum vybírá funkční hodnoty náhodně z množiny všech možných hodnot. Pamatuje si pouze své předchozí odpovědi - na stejný dotaz odpovídá stejně. Využití v PRNG, KDF.

  10. Bezpečnost • Pokud se najde „významná odchylka“ od náhodného chování, hašovací funkce se považuje za prolomenou.

  11. Konstrukce moderních hašovacích funkcí Damgard-Merklovo zesílení Kompresní funkce f Blok zprávy mi Kontext Hi Inicializační hodnota (IV)

  12. II. Blok – MD5

  13. Davies-Meyer Příklad:Kompresní funkceMD5(64 rund)

  14. Červenec 2004 • V červenci 2004 byly útoky proti MD5 téměř nicotné • MD5 byla považována za bezpečnou, • Nebyla známa žádná metoda rychlejší než útok hrubou silou se složitostí 264 Duben 2006 • Praktická ukázka nalezení kolize za 31 sekund na tomto notebooku • Program dostupný na http://cryptography.hyperlink.cz/2004/kolize_hash.htm

  15. Wangová, srpen 2004, 50 hodin • Hawkes a kol, říjen 2004 • Klíma, březen 2005, 8 hodin • Wangová, květen 2005 • Yajima a Shimoyama, srpen 2005 • Sasaki a kol. listopad 2005, 1 hod. (jen teor.) • Liang – Lai, listopad 2005, 4 hod. • Klíma, 18.březen 2006:1 minuta, 28.březen: 31 sekund Současné problémy hašovacích funkcí: Postupné prolamování MD5 • M1 512 bitů • N1 512 bitů • M2 512 bitů • N2 512 bitů Časy vztaženy k tomuto notebooku (Pentium 1.6 GHz)

  16. Literatura k prolomení MD5 - chronologicky • [WFLY04] Xiaoyun Wang, Dengguo Feng , Xuejia Lai, Hongbo Yu: Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD, rump session, CRYPTO 2004, Cryptology ePrint Archive, Report 2004/199, first version (August 16, 2004), second version (August 17, 2004), http://eprint.iacr.org/2004/199.pdf • [HPR04] Philip Hawkes, Michael Paddon, Gregory G. Rose: Musings on the Wang et al. MD5 Collision, Cryptology ePrint Archive, Report 2004/264, 13 October 2004, http://eprint.iacr.org/2004/264.pdf • [Kli05b] Vlastimil Klima: Finding MD5 Collisions on a Notebook PC Using Multi-message Modifications, Cryptology ePrint Archive, 5 April 2005. http://eprint.iacr.org/2005/102.pdf • [WaYu05] X. Wang and H. Yu: How to Break MD5 and Other Hash Functions., Eurocrypt’05, Springer-Verlag, LNCS, Vol. 3494, pp. 19–35. Springer, 2005. • [YaSh05] Jun Yajima and Takeshi Shimoyama: Wang’s sufficient conditions of MD5 are not sufficient, Cryptology ePrint Archive: Report 2005/263, 10 Aug 2005, http://eprint.iacr.org/2005/263.pdf • [SNKO05] Yu Sasaki and Yusuke Naito and Noboru Kunihiro and Kazuo Ohta: Improved Collision Attack on MD5, Cryptology ePrint Archive: Report 2005/400, 7 Nov 2005, http://eprint.iacr.org/2005/400.pdf • [LiLa05] Liang J. and Lai X.: Improved Collision Attack on Hash Function MD5, Cryptology ePrint Archive: Report 425/2005, 23 Nov 2005, http://eprint.iacr.org/2005/425.pdf. • [Kli06] Vlastimil Klima: Tunnels in Hash Functions: MD5 Collisions Within a Minute (extended abstract), IACR ePrint archive Report 2006/105 , http://eprint.iacr.org/2006/105.pdf, 18 March, 2006, v češtině na http://cryptography.hyperlink.cz/2006/tunely.pdf, zdrojové kódy na http://cryptography.hyperlink.cz/2006/web_version_1.zip

  17. III. Blok – Ukázka generování kolizí

  18. IV. Blok – Ukázka zneužití kolizí

  19. Premiéra: ukázka zneužitelnosti kolizí • Program ukázky je k dispozici na domácí stránce projektu kolizí http://cryptography.hyperlink.cz/2004/kolize_hash.htm • Zneužitelnost různorodá – distribuce SW, digitální podpisy,…

  20. Princip zneužitelnosti kolizí

  21. Současné problémy hašovacích funkcí • Zesílení haše - dvojí haš http://www.micr.cz/scripts/detail.php?id=672

  22. Současné problémy hašovacích funkcí: generický problém konstrukce F(M) || G(M) • 80 bloků kolizí MD5 (40 minut) • Máme 280 zpráv se stejnou MD5 haší • Mezi nimi se najdou dvě také se stejnou SHA-1 haší • Nalezení kolize MD5(M) || SHA-1(M) = Nalezení kolize SHA-1(M) + 40 minut

  23. Současné problémy hašovacích funkcí • Generický útok rozšířením zprávy (message extension)

  24. Současné problémy hašovacích funkcí • Teoretický (generický) problém tvorby multikolizí. • Generování velkého počtu zpráv se stejnou haší je mnohem jednodušší než se všeobecně očekávalo a mnohem jednodušší než u náhodného orákula • Možnost nalezení N > 21500 zpráv o délce 254 bloků, majících stejnou haš, se složitostí pouze 64*2n/2, kde n je délka hašovacího kódu.

  25. Co je zatím bezpečné • Zatím nelze k dané zprávě vytvořit jinou, se stejnou haší (neumíme kolizi druhého řádu) • Zatím nejsou ohroženy minulé digitální podpisy pomocí MD5. Jsou ohroženy budoucí všude tam, kde útočník vytváří soubor k digitálnímu podpisu (nebezpečí vytvoření druhého falešného souboru). • Zatím nejsou ohroženy techniky HMAC a PRF(PRNG), využívající slabé hašovací funkce

  26. HMAC – zatím ohrožen není HMAC-H(K, M) = H( (K xor opad) || H((K xor ipad)|| M) )

  27. PRF/PRNG – pseudonáhodná funkce a generátor: zatím ohroženy nejsou PKCS#1 v.2.1, pseudonáhodný generátor MGF1 Seed - většinou náhodné nastavení H(seed || 0x00000000), H(seed || 0x00000001), H(seed || 0x00000002), H(seed || 0x00000003), .... …. …. PKCS#5, generování klíče z passwordu: T1 = H(P || S) T2 = H(T1) …Tc = H(Tc-1) šifrovací klíč DK = Tc<0..dkLen-1>

  28. SHA-1  • Dosud se pokládala za bezpečnou • Už není garantována její bezpečnost po roce 2010 • Navržen hardwarový SHA-1 Cracker • 303 PC, každé 16 desek • Cena/výkon: 1M $/2 dny, 100 000 $/20 dní (A. Satoh, ISC 2005) • Probíhá SW experiment k tvorbě dvou různých klíčů se stejným certifikátem SHA-1/RSA • NIST doporučuje ukončit používání SHA-1 tak rychle jak je to prakticky možné, nejpozději do konce r. 2010 • http://csrc.nist.gov/CryptoToolkit/tkhash.html • NIST doporučuje začít používat SHA-2

  29. Stručně a jasně – manažerský závěr k hašovacím funkcím • MD4, MD5, SHA-0, RIPEMD a HAVAL-128 jsou prolomené • SHA-1 není prolomena, ale může být • SHA-256, SHA-384 nebo SHA-512 jsou považovány za bezpečné

  30. Ještě pokračujeme

  31. A něco navíc: Poslední záchrana pro zoufalce • Máme k dispozici pouze slabou hašovací funkcí (MD5 resp. SHA-1) a můžeme ji v HW/FW/SW pouze volat. • Lze vytvořit bezpečnou haš ? • Ne! Můžeme ale vytvořit takovou hašovací funkci, u níž rozhodně nemůžeme použít ani současné metody, ani jejich myšlenky. Takže ve skutečnosti hašovací funkci bezpečnostně „podobnou“ SHA-2. • Uvádíme dvě metody, odolné proti současným útokům a pravděpodobně i proti mnoha dalším • Použití slabé hašovací funkce je vyváženo jejím mnohonásobným použitím (tj. zvýšeným výpočetním výkonem). V metodě 1 rozšiřujeme zprávu, v metodě 2 počítáme souběžně několik haší.

  32. Metoda 1 • Místo každého jednoho bloku zprávy Mi zpracovávat dva bloky: Mi , C(Mi), kde druhý blok je vhodný nelineární kontrolní kód k prvnímu bloku • Zabraňuje libovolné modifikaci v druhém bloku • Současné metody nelze aplikovat

  33. Metoda 1 - varianty • Mnoho variant. Popsány v pracích autorů Halevi - Krawczyk, Biham, Szydlo - Yin, Jutla - Patthak, Lucks, Rivest a Coron z • [6]Cryptographic Hash Workshop, NIST, USA, Oct. 31 - Nov. 1, 2005, http://www.csrc.nist.gov/pki/HashWorkshop/program.htm • [7] Conference on Hash Functions (Ecrypt), June 23-24, 2005, Przegorzaly (Krakow), Poland, http://www.ecrypt.eu.org/stvl/hfw/ • [8] WEWoRC 2005, Western European Workshop on Research in Cryptology, Leuven-Heverlee, Belgium, July 5-7, 2005, http://www.cosic.esat.kuleuven.be/WeWorc/allAbstracts.pdf

  34. Metoda 2 • Průběžně počítat souběžně několik instancí hašovací funkce • Instance se liší inicializačními vektory IV1, IV2, IV3, …IVL • Výslednou haší je • MD5IV1(M) || MD5IV2(M) || MD5IV3(M) || MD5IV4(M) || ….. || MD5IVL(M) • Složitost prolomení současnými metodami je větší než 26(L-2)+64, • Pro L = 14: • délka kódu je 14*128 = 1792 bitů • Složitost 2136

  35. Metoda 2a • Průběžně počítat souběžně několik instancí hašovací funkce • Instance se liší inicializačními vektory IV1, IV2, IV3, …IVL • Výslednou haší je • MD5 (MD5IV1(M) || MD5IV2(M) || MD5IV3(M) || ... || MD5IVL(M)) • Délka kódu 128 bitů • Složitost prolomení současnými metodami je 264

  36. Literatura • Adekvátní literaturu lze dohledat pomocí domácí stránky projektu http://cryptography.hyperlink.cz/2004/kolize_hash.htm • Obsahuje • Linky na články v češtině, vysvětlující nové i dřívější metody • Programy (viz ukázky), zdrojové kódy • Aktuální novinky

  37. Články v češtině • Dostupné z http://cryptography.hyperlink.cz/2004/kolize_hash.htm • Novinky na serveru crypto-world: http://crypto-world.info/news/index.php?prispevek=2955 http://crypto-world.info/news/index.php?prispevek=3015 • Článek o tunelech pro čtenáře serveru root.cz http://www.root.cz/clanky/tunely-v-hasovacich-funkcich-kolize-md5-do-minuty/ • Doplněk odborné zprávy pro čtenáře e-zinu Crypto-world „Kolize MD5 do minutyaneb co v odborných zprávách nenajdete“: http://cryptography.hyperlink.cz/2004/kolize_hash.htm • Odborná zpráva o metodě tunelování hašovacích funkcí: http://cryptography.hyperlink.cz/2006/tunely.pdf

More Related