Zdravim. Tohle asi nezna kazdej user, ale kazdej admin a programator to uz vi ... jak uz nekdo napsal. Ocekaval sjem slozitejsi tema, kde se bude hovorit o tom, ze certifikaty s md5 fingerprintem jsou v dnesni dobe zfalsovatelne ... vyplyva to z jiz znamych rychlich algoritmu na vytvoreni kolizni dvou md5 hashu, ktere budou kolidovat. V tom pripade totiz browser, nebo jiny klient, klidne pusti komunikaci dal bez dotazu na usera :)).
MD5 bych do toho vůbec netahal. Až někdo ukáže jak zfalšovatelné, tak se teprve toho můžeme obávat. A pro zajímavost SHA1 má taky problémy a řekl bych, že těch certifikátů s ní bude nepoměrně víc.
Já za článek děkuji.
K falsovani certifikatu byste potreboval nikoliv "najit dva ruzne texty, ktere vedou ke kolizi", ale "najit k danemu, urcitym zpusobem zformatovanemu textu jiny text zformatovany podle teze logiky, ale zmeneny dle Vaseho prani tak, aby hashe byly porad jeste stejne".
Rozdil je dosti znacny.
Je to asi jako rozdil mezi ulohou "najdete dva lidi, kteri se narodili ve stejny den" a "najdi dalsiho cloveka, ktery se narodil v ten samy den a hodinu co ja, bydli v prvnim patre, studuje obor XXX a pred tydnem ho vylili z druheho terminu zkousky". Na to prvni Vam staci par desitek pokusu, na to druhe abyste prosel peknou radku lidi, mozna i celou zapadni civilizaci :-)
Pokud jsem to spravne pochopil, tak kolizi lze najit pro jakoukoli vstupni hodnotu.
Zde jsou vytazky ze studii:
Metoda pracuje projakoukoli zvolenou inicializační hodnotu a je celkově rychlejší než původní čínská metoda[1]. http://cryptography.hyperlink.cz/md5/MD5_kolize.pdf.
A i kdyby platilo jen Vase tvrzeni tak,
kdyz si zalozim nejakou platebni spolecnost a umyslene vytvorim kolidujici par certifikatu a pak druhy certifikat prodam hackerovi, ktery ho vyuzije... tak vysledne na tom lidi ztrati duveru a penize. A ja jako utocnik budu jeste zahrabany v penezich. Ale tohle je myslim uz "nepopiratelnost" :)
druhý jmenovaný link nefunguje (404 not found). Nemáte soubor na disku? Ocenil bych jeho zaslání na inglor at seznam.cz.
Pod pojmem inicializační hodnota není myšlena hodnota výsledného MD5, ale hodnota, na niž
se inicializuji buffery hashovací funkce. Viz RFC 1321, definující standard MD5:
3.3 Step 3. Initialize MD Buffer
A four-word buffer (A,B,C,D) is used to compute the message digest.
Here each of A, B, C, D is a 32-bit register. These registers are
initialized to the following values in hexadecimal, low-order bytes
first):
word A: 01 23 45 67
word B: 89 ab cd ef
word C: fe dc ba 98
word D: 76 54 32 10
Naráží se na ni proto, že v původním čínském článku převrátili pořadí bajtů v těchto čtyřech integerech.
To že je metoda rychlejší vám mnoho nepomůže. Cílem není najití kolize, ale najití kolize pro takový řetězec, kterým můžete původní nahradit.
Jistě se shodneme na tom, že pokud najdete kolizi pro zprávu "Setkání provedeme v Praze, Čínské čajovně v Dejvicích v 14:30" ve znění "*h7{'y ░«]"§ 2wUj║:", pak jste si moc nepomohl ;) A to ani v případě, že tuto kolizi najdete o dvě hodiny dřív.
Ale pomuze Vam to v pripade, ze staci puvodni text zamenit za "Setkani provedeme v Brne, U soudku v 11:00. Komentar ktery se nezobrazi %*@*&DJU@%SJ55&$%!".
Problem pak nastane ve chvili, kdy zprava se dale formatuje (HTML, PDF, DOC,...) a komentare ci jiny balast se nezobrazi. V takovem pripade nema obycejny uzivatel sanci zjistit, ze se nejedna o puvodni zpravu.