37
1 Prolomení MD5, Prolomení MD5, současné problémy současné problémy hašovacích funkcí hašovacích funkcí a doporučení k obraně 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

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

  • Upload
    erling

  • View
    39

  • Download
    1

Embed Size (px)

DESCRIPTION

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í - PowerPoint PPT Presentation

Citation preview

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

1

Prolomení MD5,Prolomení MD5,současné problémy hašovacích funkcí současné problémy hašovacích funkcí

a doporučení k obraněa doporučení k obraně

Vlastimil Klímanezávislý konzultant

v klima at volny cz, http://cryptography.hyperlink.cz

Security Upgrade 2006, 12. – 13. 4. 2006, TOP Hotel, Praha

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

2

ObsahObsah

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

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

3

I. Blok – Základní vlastnostiI. Blok – Základní vlastnosti

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

4

Základní vlastnosti hašovacích funkcíZákladní vlastnosti hašovacích funkcí

n:

MD5: 128 bSHA-1: 160 b SHA-256: 256 b SHA-512: 512 b

• Libovolný vstup M• Pevně definovaná

délka výstupu (n bitů)

M

h(M)

h

Vlastnosti:• Jednocestnost• Odolnost proti kolizi• Náhodnost

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

5

Základní vlastnosti hašovacích funkcí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

2 D+1 -1 vzorů {0, 1} 0 až D M

H

H

H

H H H H

2 128 obrazů {0, 1} 128

H(M) = H(M´)

D = 2 -1 64

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

6

Základní vlastnosti hašovacích funkcí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ý vzor y různý od x tak, že h(x) = h(y), složitost nalezení kolize cca 2n

2 D+1 -1 vzorů {0, 1} 0 až D M

H

H

H

H H H H

2 128 obrazů {0, 1} 128

H(M) = H(M´)

D = 2 -1 64

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

7

Základní vlastnosti hašovacích funkcí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

2 D+1 -1 vzorů {0, 1} 0 až D M

H

H

H

H H H H

2 128 obrazů {0, 1} 128

H(M) = H(M´)

D = 2 -1 64

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

8

Základní vlastnosti hašovacích funkcí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í.

2 D+1 -1 vzorů {0, 1} 0 až D M

H

H

H

H H H H

2 128 obrazů {0, 1} 128

H(M) = H(M´)

D = 2 -1 64

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

9

Základní vlastnosti hašovacích funkcíZákladní vlastnosti hašovacích funkcí

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.

H(„1“), H(„2“), H(„3“),…H(secret_seed , „1“), H(secret_ seed , „2“), H(secret_ seed , „3“),…

h

{0,1}n {0,1}n

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

10

BezpečnostBezpečnost

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

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

11

Konstrukce moderních hašovacích funkcíKonstrukce moderních hašovacích funkcí

Kompresní funkce f

Blok zprávy mi

Kontext Hi

Inicializační hodnota (IV)

m (1 ) m (2 ) m (3) m (n )............

..sm luvní strany....

01100001 01100010 01100011 1 0 ........0 0 ....011000

Kupní sm louva...

.... text ....

nec doplněk

fIV H (n)f f

m (i)

fH (i-1 ) H (i)

n e c 1 64423

kom presní funkce f

iterativní hašovací funkce

Damgard-Merklovo zesílení

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

12

II. Blok – MD5II. Blok – MD5

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

13

Příklad:Příklad:

Kompresní Kompresní funkcefunkce

MD5MD5

(64 rund)(64 rund)

m (i)

fH (i-1 ) H (i)

H (i)

H (i-1 )M 1

M 2

M 3

...M 15

M 16

jináperm u

taceM i

jináperm u

taceM i

jináperm u

taceM i

m (i)

.

.

.

64rund

Schém azpracování

jednoho b lokuzprávy kom presní

funkcí

Davies-Meyer

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

14

Červenec 2004Č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 2006Duben 2006 Praktická ukázka nalezení kolize za 31 sekund na

tomto notebooku Program dostupný na

http://cryptography.hyperlink.cz/2004/kolize_hash.htm

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

15

Současné problémy hašovacích funkcí:Současné problémy hašovacích funkcí: Postupné prolamování Postupné prolamování

MD5MD5 M1 512 bitů N1 512 bitů

M2 512 bitů N2 512 bitů

f

H 2

f

M 1 N 1

H 1

IV

f f

M 2 N 2

H 1´

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

Časy vztaženy k tomuto notebooku (Pentium 1.6 GHz)

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

16

Literatura k prolomení MD5 - chronologickyLiteratura 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

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

17

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

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

18

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

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

19

Premiéra:Premiéra: ukázka zneužitelnosti ukázka zneužitelnosti kolizí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,…

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

20

Princip zneužitelnosti kolizíPrincip zneužitelnosti kolizí

ffIV

X Y.....

předřazená zpráva T

f f

M 1 N 1

f f

M 2 N 2

ff

X Y.....

doplněná zpráva W

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

21

Zesílení haše - dvojí haš

http://www.micr.cz/scripts/detail.php?id=672

Současné problémy hašovacích funkcíSoučasné problémy hašovacích funkcí

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

22

Současné problémy hašovacích funkcí: Současné problémy hašovacích funkcí: generický problém generický problém konstrukce F(M) konstrukce F(M) || G|| G(M)(M)

M 1

X

N1

M 2 N2

O 1

Y

P1

O 2 P2

Q 1

Z

R1

Q 2 R2

T

X M 1 N1 Y O 2 P2 Z Q 1 R1 T

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

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

23

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

extension)

h

{0,1}n {0,1}n

m(1) m(2) m(3) m(n) ............

f IV f f

m(i)

f H(i-1) H(i)

kompresní funkce f

m(n+ 1)

H(M´) f H(M)

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

24

Současné problémy hašovacích funkcí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.

h

{0,1}n {0,1}n

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

25

Co je zatím bezpečné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

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

26

HMAC – zatím ohrožen neníHMAC – zatím ohrožen není

HMAC-H(K, M) = H( (K xor opad) || H((K xor ipad)|| M) )

K xor ipad

K

K xor opad

M

H

...

H

HMAC

f H(i-1) H(i) jakoby nová (tajná)

inicializační hodnota pro hašování M

jedna aplikace kompresní funkce f

pro K xor ipad

jakoby nová (tajná) inicializační hodnota

pro hašování ...

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

27

PRFPRF//PRNG – pseudonáhodná funkce a PRNG – pseudonáhodná funkce a generátor: generátor:

zatím ohroženy nejsouzatím ohroženy nejsou

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> H

ash

H 1000101100101000010....

seed

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), .... …. ….

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

28

SHA-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

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

29

Stručně a jasně – manažerský Stručně a jasně – manažerský závěr k hašovacím funkcímzá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ýtSHA-256, SHA-384 nebo SHA-512 jsou

považovány za bezpečné

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

30

Ještě pokračujemeJeště pokračujeme

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

31

A něco navíc: A něco navíc: Poslední záchrana pro zoufalcePoslední 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ší.

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

32

Metoda 1Metoda 1Mí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

f f

M C(M)

M – Zabraňuje libovolné modifikaci v druhém bloku

– Současné metody nelze aplikovat

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

33

Metoda 1 - variantyMetoda 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

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

34

Metoda 2Metoda 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

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

35

Metoda 2aMetoda 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

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

37

Články v češtiněČ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.czhttp://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 minuty aneb 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