300 likes | 380 Views
Prolomení hashovacích funkcí MD5 a SHA1 a praktický dopad... Pavel Vondruška ČESKÝ TELECOM, a.s. Crypto-World e-mail: pavel.vondruska@ct.cz. IT SECURITY GigaCon , 23.11.2005, hotel Step, Praha. http://www.konferencje.software.com.pl/main/ http://www.bin.org.pl/cz/.
E N D
Prolomení hashovacích funkcí MD5 a SHA1 a praktický dopad...Pavel VondruškaČESKÝ TELECOM, a.s.Crypto-Worlde-mail: pavel.vondruska@ct.cz IT SECURITY GigaCon , 23.11.2005, hotel Step, Praha http://www.konferencje.software.com.pl/main/ http://www.bin.org.pl/cz/
http://paginas.terra.com.br/informatica/paulobarreto/hflounge.htmlhttp://paginas.terra.com.br/informatica/paulobarreto/hflounge.html
Vlastnosti hashovacích funkcí • Jednou z nejvýznamnějších kryptologických událostí posledních let se stalo objevení kolizí pro sérii hashovacích funkcí MD4, MD5, HAVAL-128 a RIPEMD čínským týmem v srpnu 2004 a druhou (související událostí) je postupné odhalování slabostí hashovací funkce SHA-1. • Vysvětlení toho, co se vlastně stalo je věnována tato přednáška. • Obsah: • Hashovací funkce • Prolomení MD5 ! • Nalezení kolizí hračka pro notebook („český příspěvek“) • SHA-1 (teoretické prolomení) ! • Co s tím ?
Vlastnosti hashovacích funkcí Obecně se hashovací funkcí chápe zobrazení h, které přiřazuje zprávě jako vstupu výstup označovaný slovem hash (hodnota hashe), resp. je to zobrazení, které řetězci libovolné délky přiřazuje řetězec pevné délky. Kryptografickou hashovací funkcí se pak rozumí funkce, která má navíc i určitou bezpečnostní vlastnost a to ve vztahu k možnostem vyhledávání kolizí. Popis hashovací funkce je veřejně znám, tj. samotný algoritmus není utajován.
Vlastnosti hashovacích funkcí V1. Praktická efektivnost: Pro dané x je výpočet h(x) efektivně proveditelný (přesněji - je proveditelný v čase, který je omezen polynomiální funkcí délky vstupu x). V2. Mixující zobrazení: Pro každý vstup x má výstupní hodnota "náhodný" charakter (definice je přesnější, vyžaduje však zavedení některých dalších pojmů). V3. Rezistance vůči kolizím: Je z výpočetního hlediska neuskutečnitelné nalézt dva různé vstupy x,y, aby h(x) = h(y). V4. Rezistance vzorů: Pro danou hodnotu hashe h je výpočetně neuskutečnitelné nalézt vstupní řetězec x tak, že h = h(x).
Vlastnosti hashovacích funkcí Menezes uvádí ještě následující vlastnosti: V5. Rezistance druhého vzoru: Je výpočetně neuskutečnitelné pro daný vstup x nalézt druhý vstupní řetězec y tak, že h(y) = h(x). Tato vlastnost se od vlastnosti V3 liší tím, že zde je jeden vstup již fixován. OWHF - one-way hash function - jednosměrné hashovací funkce. Pro ně jsou splněny vlastnosti V1+V2+V4+V5; CRHF - collision resistant hash function - hashovací funkce rezistantní vůči kolizím. Splňuje podmínky V1+V2+V3.
MD5 (Message Digest) Autor Ronald Rivest : 1989 (MD2), 1990 (MD4) a 1991 (MD5). Výstupem MD5 je řetězec (hash) v délce 128 bitů. Vstup zprávy je doplněn takovým způsobem, aby celková délka vstupu (v bitech) byla dělitelná 512. Zpráva je doplněna na konci: -jedním bitem rovným jedné. - Pak je doplňována nulami tak, aby vznikl soubor o délce, která je o 64 bitů kratší než násobek 512. - Zbylých 64 bitů je vyplněno číslem, které uvádí délku původní zprávy. http://en.wikipedia.org/wiki/MD5
MD5 (Message Digest) Autor Ronald Rivest 1991 (MD5) Algoritmus zpracovává vždy 512 bitový blok vstupu, výsledkem je nový stavový blok Algoritmus pracuje s blokem v délce 128 bitů (=stavový blok), který je rozdělen na 4 slova A, B, C a D v délce 32 bitů. V počátku algoritmu jsou hodnoty těchto slov rovné definované pevné inicializační hodnotě. Zpracování 512 bitového vstupu probíhá ve čtyřech cyklech, každý cyklus se skládá ze 16 operací založených na nelineární funkci F, modulárním součtu a levé rotaci. Obrázek ilustruje průběh jedné takovéto operace. Jsou použity čtyři možné funkce F, v každém cyklu je použita jiná. (Tj. na zpracování 512 bitů je potřeba 64 rund..) Detaily viz : http://adela.karlin.mff.cuni.cz/~tuma/nciphers/Symetricka_kryptografie_III.pdf http://en.wikipedia.org/wiki/MD5
Kolidující zprávy … !!!!! • Xiaoyun Wang, Dengguo Feng, Xuejia Lai, Hongbo Yu • Crypto (Santa Barbara, Rump Session, 16.8 / 17.8.2004) • d131dd02c5e6eec4 693d9a0698aff95c2fc ab58712467eab400458 3eb8fb7f8955ad34060 9f4b30283e488832571 415a085125e8f7cdc99 fd91dbdf280373c5b96 0b1dd1dc417b9ce4d89 7f45a6555d535739ac7 f0ebfd0c3029f166d10 9b18f75277f7930d55c eb22e8adba79cc155ce d74cbdd5fc5d36db19b 0ad835cca7e3 • d131dd02c5e6eec4 693d9a0698aff95c2fc ab50712467eab400458 3eb8fb7f8955ad34060 9f4b30283e4888325f1 415a085125e8f7cdc99 fd91dbd7280373c5b96 0b1dd1dc417b9ce4d89 7f45a6555d535739a47 f0ebfd0c3029f166d10 9b18f75277f7930d55c eb22e8adba794c155ce d74cbdd5fc5d36db19b 0a5835cca7e3 • ---- a4c0 d35c 95a6 3a80 5915 367d cfe6 b751 ----
Kolidující zprávy … !!!!! • 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 • Algoritmus nebyl zveřejněn! • Je zřejmé, že metoda nezávisí na inicializačním vektoru ! • Výpočet jsou schopni provést na IBM P690 cca za 1 hodina (cca 30 hodin na Intel Pentium 1,6 GHz) • ? Lze využít k nějakým praktickým útokům (V3 x V5 !) • ? Je metodou ohrožena i SHA-1 ? (laboratoře RSA doporučily již v roce 1996 přechod na algoritmus SHA-1.
Hledá se algoritmus … M N a) M // M* b) N // N* c) H1* - H1 = (0, +231+225, +231+225, +231+225) …. 1 hour on super comp. IBM P690 d) H2* - H2 = (0,0,0,0) 15s-5min. f f H 1 H IV 2 * H f f 1 M* N*
Algoritmus …. [1] 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 V říjnu 2004 se australský tým (Hawkes a kol.) pokusil čínskou metodu zrekonstruovat [1]. Nejdůležitější "čínský trik" se nepodařilo objevit, ale na základě dich práce bylo dobře popsáno diferenční schéma, kterým uveřejněné čínské kolize vyhovují. Naplnění podmínek tohoto schématu bylo však ještě přílišvýpočetně náročné a výpočetně složitější, než ukazovaly čínské výsledky …
Podmínky pro první blok … Q[ 1]=Q[0 ]+RL(F(Q[0 ],Q[-1],Q[-2])+Q[-3]+x[0 ]+0xd76aa478, 7); 0 conds Q[ 2]=Q[1 ]+RL(F(Q[1 ],Q[0 ],Q[-1])+Q[-2]+x[1 ]+0xe8c7b756,12); 0 conds Q[ 3]=Q[2 ]+RL(F(Q[2 ],Q[1 ],Q[0 ])+Q[-1]+x[2 ]+0x242070db,17); 3 conds Q[ 4]=Q[3 ]+RL(F(Q[3 ],Q[2 ],Q[1 ])+Q[0 ]+x[3 ]+0xc1bdceee,22); 5 conds Q[ 5]=Q[4 ]+RL(F(Q[4 ],Q[3 ],Q[2 ])+Q[1 ]+x[4 ]+0xf57c0faf, 7); 24 conds Q[ 6]=Q[5 ]+RL(F(Q[5 ],Q[4 ],Q[3 ])+Q[2 ]+x[5 ]+0x4787c62a,12); 24 conds Q[ 7]=Q[6 ]+RL(F(Q[6 ],Q[5 ],Q[4 ])+Q[3 ]+x[6 ]+0xa8304613,17); 32 conds Q[ 8]=Q[7 ]+RL(F(Q[7 ],Q[6 ],Q[5 ])+Q[4 ]+x[7 ]+0xfd469501,22); 28 conds Q[ 9]=Q[8 ]+RL(F(Q[8 ],Q[7 ],Q[6 ])+Q[5 ]+x[8 ]+0x698098d8, 7); 25 conds240 conds Q[10]=Q[9 ]+RL(F(Q[9 ],Q[8 ],Q[7 ])+Q[6 ]+x[9 ]+0x8b44f7af,12); 17 conds Q[11]=Q[10]+RL(F(Q[10],Q[9 ],Q[8 ])+Q[7 ]+x[10]+0xffff5bb1,17); 15 conds Q[12]=Q[11]+RL(F(Q[11],Q[10],Q[9 ])+Q[8 ]+x[11]+0x895cd7be,22); 12 conds Q[13]=Q[12]+RL(F(Q[12],Q[11],Q[10])+Q[9 ]+x[12]+0x6b901122, 7); 14 conds Q[14]=Q[13]+RL(F(Q[13],Q[12],Q[11])+Q[10]+x[13]+0xfd987193,12); 14 conds Q[15]=Q[14]+RL(F(Q[14],Q[13],Q[12])+Q[11]+x[14]+0xa679438e,17); 6 conds Q[16]=Q[15]+RL(F(Q[15],Q[14],Q[13])+Q[12]+x[15]+0x49b40821,22); 2 conds … Q[17]=Q[16]+RL(G(Q[16],Q[15],Q[14])+Q[13]+x[1 ]+0xf61e2562, 5); 4 conds Q[18]=Q[17]+RL(G(Q[17],Q[16],Q[15])+Q[14]+x[6 ]+0xc040b340, 9); 3 conds Q[19]=Q[18]+RL(G(Q[18],Q[17],Q[16])+Q[15]+x[11]+0x265e5a51,14); 2 conds43 conds Q[20]=Q[19]+RL(G(Q[19],Q[18],Q[17])+Q[16]+x[0 ]+0xe9b6c7aa,20); 1 cond … Q[17] - Q[64]: 43 conds
Algoritmus …. [3] Vlastimil Klima: Finding MD5 Collisions – a Toy For a Notebook, Cryptology ePrint Archive, Report 2005/075, http://eprint.iacr.org/2005/075.pdf, March 5, 2005 Výsledek na běžném notebooku (Acer TravelMate 450LMi, Intel Pentium 1.6 GHz) je tento: během 8 hodin bylo nalezeno 331 kolizí prvního bloku a 1 úplná kolize MD5. Vzhledem k tomu, že nalezení 1 kolize prvního bloku trvalo čínskému týmu 1 hodinu na počítači IBM p690, nalezení 331 těchto kolizí by trvalo cca 331 hodin, což je 40 krát více. … uvedený počítač je 25 - 50 krát rychlejší než notebook …dostáváme velmi hrubý odhad, že česká metoda hledání kolize prvního bloku je 1000 - 2000 krát rychlejší než v [1]. Naproti tomu hledání kolize druhého bloku je 2 - 80 krát pomalejší. Pokud srovnáme celkový čas hledání úplné kolize u čínského týmu (1.0 až 1.08 hodiny) s českým (8 hodin) na 25 - 50 krát pomalejším stroji, je tato metoda celkově 3 - 6 krát rychlejší.
Algoritmus …. [1] 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 [2] 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 [3] Vlastimil Klima: Finding MD5 Collisions – a Toy For a Notebook, Cryptology ePrint Archive, Report 2005/075, http://eprint.iacr.org/2005/075.pdf, March 5, 2005 [4] Xiaoyun Wang, Hongbo Yu: How to Break MD5 and Other Hash Functions, http://www.infosec.sdu.edu.cn/paper/md5-attack.pdf, published on the web on March 6, 2005
Algoritmus …. 7.11.2005 [5] 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.pdfWang, … : algoritmus se složitostí 2^37 Klíma : algoritmus se složitostí 2^33 Yu Sasaki, … : algoritmus se složitostí 2^30 Jsou upraveny některé tzv. postačující podmínky útoku a zavedeny nové a uvedeny nové způsoby mnohonásobné modifikace zpráv Klímy-Wangové.
Algoritmus …. 15.11.2005 Patrick Stach : MD4 and MD5 Collision Generators http://www.stachliu.com/collisions.html http://www.securiteam.com/tools/6O00E1FEKO.html První veřejný kód pro generování kolizí! Kolize MD5 generuje přibližně za 45 minut na P4 1.6Ghz a kolize MD4 přibližně za 4 vteřiny…
Hledá se útok…. • Seminář BIS • (Bezpečnost Informačních Systémův praxi) • (http://bis.modry.cz/), MFF UK Praha, 22. 11. 2004 • Je nalezení kolize typu V3 využitelné k nějakému praktickému útoku? • Pokud ano, lze najít útok na základě jediné zveřejněné „čínské“ kolize? • Pokud ano, lze takový útok jednoduše zkonstruovat?
Útoky…. [6] Ondrej Mikle: Practical Attacks on Digital Signatures Using MD5 Message Digest, Cryptology ePrint Archive, Report 2004/356, http://eprint.iacr.org/2004/356, 2nd December 2004 http://crypto-world.info/casop7/crypto01_05.pdf Student MFF UK Ondrej Mikle ukázal, že lze využít i jedinou publikovanou kolizi MD5 ke konstrukci reálných útoků. Jakékoliv dva různé soubory předáte pomocí určitého postupu dvěma uživatelům, a přitom si oba dva na základě vzájemné kontroly digitálních otisků MD5 budou myslet, že mají tentýž soubor...
Útoky…. [6] Ondrej Mikle: Practical Attacks on Digital Signatures Using MD5 Message Digest, Cryptology ePrint Archive, Report 2004/356, http://eprint.iacr.org/2004/356, 2nd December 2004 http://crypto-world.info/casop7/crypto01_05.pdf Hlavní idea využití oné jediné kolize MD5, která byla v té době k dispozici. Uživateli 1 zašleme soubory data1.pak a self-extract.exe, uživateli 2 zašleme soubory data2.pak a self-extract.exe. Soubory self-extract.exe jsou stejné, zatímco data.pak různé, ale mají stejnou MD5 hash. Oba uživatelé nyní mohou zkontrolovat hash obdržených souborů nebo jejich digitální podpisy proti sobě. Protože budou totožné, očekávají, že i soubory, které z nich extrahují po spuštění self-extraktoru, budou totožné. Avšak jeden extrahuje X, zatímco druhý Y.
Útoky…. [7] Arjen Lenstra, Xiaoyun Wang and Benne de Weger: Colliding X.509 Certificates, Cryptology ePrint Archive, Report 2005/067, http://eprint.iacr.org/2005/067 Je ukázán příklad podvržení jiného obsahu do certifikátu. Využívá se čínské metody nalézání kolizí MD5 pro různé inicializační vektory. To umožní konstruovat zprávy s libovolným začátkem (zarovnaným na 512 bitů) doplněných odlišnými bloky (1024 bitů) a pokračujícími libovolným dalším stejným obsahem. Oněch odlišných 1024 bitů se situuje do místa v certifikátu, kde je veřejný klíč (modul RSA), který je jádrem certifikátu, a který potvrzuje certifikační autorita svým elektronickým podpisem v certifikátu. Kolize tak míří přímo na jádro certifikátu. Ukazuje to, že MD5 opravdu nemůže být využívána v certifikátech…. http://www.win.tue.nl/~bdeweger/CollidingCertificates/index.html
Útoky…. [6] Ondrej Mikle: Practical Attacks on Digital Signatures Using MD5 Message Digest, Cryptology ePrint Archive, Report 2004/356, http://eprint.iacr.org/2004/356, 2nd December 2004 [8] Dan Kaminsky:MD5 To Be Considered Harmful Someday, Cryptology ePrint Archive, Report 2004/357, http://eprint.iacr.org/2004/357, 6 December 2004 [7] Arjen Lenstra, Xiaoyun Wang and Benne de Weger: Colliding X.509 Certificates, Cryptology ePrint Archive, Report 2005/067, http://eprint.iacr.org/2005/067
SHA-1 (Secure Hash Algorithm) SHA-1 – 1993, délka hashe = 160 bitů NIST (National Institute of Standards and Technology) FIPS 180 (180-1, 180-2) ----------------------------------------------------------------------------------------------------------------------------------------- CRYPTO 2004 Eli Biham (ve spolupráci s Rafi Chenem) prezentoval své výsledky již na konferenci SAC počátkem srpna 2004 a některá další vylepšení na Crypto 2004. Podařilo se jim na základě své analýzy nalézt milion kolizí pro SHA-1 redukované na 34 cyklů, přitom některé z kolizí jsou částečně "smysluplné" (obsahují pouze písmena v ASCII kódu či dokonce části textu v angličtině). Blízké kolize byly nalezeny pro SHA-1 redukované na 45 cyklů. Autoři však konstatují, že z hlediska současného stavu výzkumu neočekávají, že se jim podaří rozbít algoritmus SHA-1.
SHA-1 (Secure Hash Algorithm) 24.8.2004 http://csrc.ncsl.nist.gov/hash_standards_comments.pdf Oficiální komentář NIST k nedávným výsledkům kryptologů ohledně hashovacích funkcí Komentář je velmi stručný a vlastně jen konstatuje, že bezpečnost SHA-1 nebyla zatím dotčena a že existují silnější hashovací funkce (SHA-224, SHA-256, SHA-384, SHA-512), které lze používat. Postupné nahrazení SHA-1 a algoritmů s obdobnou kryptografickou silou se předpokládá okolo roku 2010. (23.2.2005 – NIST své stanovisko znovu potvrzuje)
SHA-1 (Secure Hash Algorithm) 15.2.2005 - SHA-1 byla (kryptograficky) prolomena ! Toto tvrzení se zakládalo na zprávě, kterou publikoval čínský kolektiv kryptologů Xiaoyun Wang, Yiqun Lisa Yin, Hongbo Yu. Poznamenejme, že v té době ještě nebyl znám ani jejich algoritmus pro výpočet kolizí u MD5… Hlavní výsledek zprávy se týká SHA-1, kde pro nalezení kolize podle nich stačí 2^69 operací. Pokud by SHA-1 byla kvalitní, mělo by nalezení kolizí narozeninovým paradoxem vyžadovat cca 2^80 operací. Množství operací 2^69 je však stále ještě vysoké, a tak mnoho lidí obhajovalo SHA-1 dále jako použitelnou a to pro velkou náročnost prolomení (viz NIST). [9] Xiaoyun Wang, Hongbo Yu: Collision search Attacks on SHA1, published February 13,2005 on http://www.financialcryptography.com/mt/archives/000357.html
SHA-1 (Secure Hash Algorithm) 17.08.2005 CRYPTO 2005 Na rump session, mělo být oznámeno paní prof. Xiaoyun Wang urychlení útoku na SHA-1 z původní složitosti 2^69 na 2^63. To je už je složitost výpočtu, který by mohl být dosažitelný distribuovaným výpočtem na internetu tak, jak jsme toho byli svědky i u jiných kryptoanalytických útoků. Vzhledem k tomu, že neobdržela vízum, musel její příspěvek na rump session přednést Adi Shamir. Urychlení bylo dosaženo jinou volbou diferenční cesty. Nevylučuje se, že bude nalezena další, ještě jednodušší cesta. http://www.iacr.org/conferences/crypto2005/program.html
SHA-1 (Secure Hash Algorithm) 23.9. 2005 - SHA-1 byla teoreticky prolomena ! Satohova práce obsahuje návrh hardware, který by nalezl kolize podle návrhu Wangové se složitostí 2^69. Navrhuje se architektura LSI na bázi 0.13-μm CMOS. Na základě toho byla vypočítána rychlost, velikost a spotřeba HW. Za 10 milionů dolarů lze sestavit zákaznický hardwarový systém, který by sestával z 303 PC, každý s 16 deskami (na každé je 32 jader SHA-1), pracujícími paralelně. Útok by trval 127 dní.[10] Akashi Satoh: Hardware Architecture and Cost Estimates for Breaking SHA-1, ISC 2005, Singapore, September 20-23, 2005, LNCS 3650, pp. 259-273, 2005
Co závěrem ? Hašovací funkce, u níž byla nalezena kolize, ztrácí generálně smysl, neboť hypotéza o tom, že se chová jako náhodné orákulum byla (prakticky) vyvrácena. Zejména by neměla být používána k digitálním podpisům (elektronickým), neboť tam kolize znamená, že je možné předložit dvě různé zprávy s tímtéž platným digitálním podpisem (elektronickým), ověřitelným pro obě zprávy. Existují techniky, kde nejsou využity všechny vlastnosti hashovací funkce a kde porušení bezkoliznosti (nebo částečné porušení bezkoliznosti) nevadí (PRNG, PRF, HMAC, hesla). Jsou připraveny metody, jak s využitím současných HW zařízení nebo SW balíků, které realizují funkce MD5 nebo SHA-1, zabránit současným kolizním útokům drobnou vnitřní změnou některých služebních funkcí (SHAInit, SHAUpdate, SHAFinal, MD5Init, MD5Update, MD5Final).
Co závěrem ? U systémů, které nepotřebují „všeobecnou“ kompatibilitu to není velký problém. U ostatních je podmínkou, aby se pro tyto funkce rychle připravil standard a nový identifikátor takto opravené hašovací funkce. Za všechny snahy o opravu např. [11] Charanjit S. Jutla and Anindya C. Patthak : Is SHA-1 conceptually sound?, 7.10.2005, Cryptology ePrint Archive: Report 2005/350, http://eprint.iacr.org/2005/350 A zejména práce publikované na : [12] CRYPTOGRAPHIC HASH WORKSHOP October 31 - November 1, 2005 http://www.csrc.nist.gov/pki/HashWorkshop/index.html (SHA-1, SHA-256, SHA-512, FORK-256, DHA-256, Truncation Mode for SHA …)
Diskuse Pavel Vondruška pavel.vondruska@ct.cz pavel.vondruska@crypto-world.info http://crypto-world.info ? ?