370 likes | 483 Views
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í
E N D
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í • 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
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
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
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
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
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í.
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.
Bezpečnost • Pokud se najde „významná odchylka“ od náhodného chování, hašovací funkce se považuje za prolomenou.
Konstrukce moderních hašovacích funkcí Damgard-Merklovo zesílení Kompresní funkce f Blok zprávy mi Kontext Hi Inicializační hodnota (IV)
Davies-Meyer Příklad:Kompresní funkceMD5(64 rund)
Č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
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)
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
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,…
Současné problémy hašovacích funkcí • Zesílení haše - dvojí haš http://www.micr.cz/scripts/detail.php?id=672
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
Současné problémy hašovacích funkcí • Generický útok rozšířením zprávy (message extension)
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.
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
HMAC – zatím ohrožen není HMAC-H(K, M) = H( (K xor opad) || H((K xor ipad)|| M) )
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>
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
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é
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ší.
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
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
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
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
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
Č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