Spojení hashovacích funkcí

Gdhsjskksks

Spojení hashovacích funkcí
« kdy: 01. 02. 2016, 06:30:08 »
Zdravim,

Taka asi hlupa otazka:
Hashe maju problem v koliziach a v pripade ze nejaky hash ich ma lahko a vela tak sa da povazovat za zly, spravne?

A casom md5, sha1 atd.. Proste nie su standardami.

Ok a chapem nadsenie matematikov hladat lepsie a lepsie riesenia ale (a to viem ze kedze to tak nie je tak to asi neni riesenie, skor ma zauima vysvetlenie) co tak proste kombinacia dvoch hashov?

Md5(data)&&Sha1(data)?

Nemusel by potom utocnik hladat taky utok ktory by nasiel koliziu v dvoch na sebe nezavyslych hashovacich algorytmoch? Je vobec mozne najst takuto koliziu?

A nevyhody su ako?
- cas
- dlzka kontrolneho stringu

Je to vsetko?

Dik
« Poslední změna: 01. 02. 2016, 08:19:53 od Petr Krčmář »


Re:Problem s Hashami
« Odpověď #1 kdy: 01. 02. 2016, 07:52:30 »
Co myslis tim "&&"? Spojeni dvou stringu?

V takovem pripade bys zjednodusil (za nejakych podminek) zase hledani originalniho data. Stacilo by najit data tak, ze md5(data) da prvni kus hashe nebo sha(data) da konec hashe. Coz je o dost snazsi nez uloha hledat to ciste pro sha(data).

Re:Spojení hashovacích funkcí
« Odpověď #2 kdy: 01. 02. 2016, 09:07:42 »
Pokud pro jeden hash máte dvě kolize (dva různé vstupy), ještě to není takový problém. Problém pro hashovací funkci je hlavně to, když pro daný hash dokážete generovat libovolný počet vstupů. Například když budete mít v PDF souboru fakturu a ten soubor bude elektronicky podepsaný, asi vám nebude moc vadit, když někdo najde jeden jiný soubor, který povede na stejný hash – protože ten jiný soubor s vysokou pravděpodobností nebude mít žádný rozumný formát, bude to prostě jen náhodná změť znaků. Pokud ale někdo umí ten PDF soubor vzít, doplnit k částce zprava tři nuly, na nějaké nezajímavé místo v něm schovat „náhodné“ znaky a ty vybrat tak, aby mu hash souboru zase seděl, máte problém.

MD5 je už určitě prolomena tím druhým způsobem, tj. k danému hashi je možné vygenerovat na přání libovolný počet kolizí. A SHA-1 je jen o kousek pozadu, ale myslím, že už praktické útoky také existují. Takže ten váš postup bezpečnost nijak zásadně nezvyšuje. Funguje to podobně, jako kdybyste hash udělal třeba tak, že uděláte MD5 hash dokumentu, pak k dokumentu připojíte nulový bajt a znovu spočítáte MD5 hash, a spojíte tyhle dva hashe. Útočníkovi tím sice poněkud ztížíte práci, ale je to ztížení nepodstatné – útok mu bude trvat třeba dvakrát nebo desetkrát nebo klidně i tisíckrát déle. Jenže to je málo, vy mu útok potřebujete zkomplikovat ne násobky, ale mocninami.

Smysl by to mělo někde, kde na tom hashi zas tak moc nezáleží, třeba při přenosu souborů. Jenže proč to dělat, když tady už dlouho máme SHA-2, která je zatím bezpečná? A matematici jsou zatím docela napřed, takže se momentálně nemusíme bát, že bychom neměli k dispozici dostatečně silný hashovací algoritmus a bylo nutné se uchylovat k takovýmhle pseudořešením, o kterých nic nevíme.

ByCzech

Re:Spojení hashovacích funkcí
« Odpověď #3 kdy: 01. 02. 2016, 09:50:28 »
Pokud pro jeden hash máte dvě kolize (dva různé vstupy), ještě to není takový problém. Problém pro hashovací funkci je hlavně to, když pro daný hash dokážete generovat libovolný počet vstupů. Například když budete mít v PDF souboru fakturu a ten soubor bude elektronicky podepsaný, asi vám nebude moc vadit, když někdo najde jeden jiný soubor, který povede na stejný hash – protože ten jiný soubor s vysokou pravděpodobností nebude mít žádný rozumný formát, bude to prostě jen náhodná změť znaků. Pokud ale někdo umí ten PDF soubor vzít, doplnit k částce zprava tři nuly, na nějaké nezajímavé místo v něm schovat „náhodné“ znaky a ty vybrat tak, aby mu hash souboru zase seděl, máte problém.

MD5 je už určitě prolomena tím druhým způsobem, tj. k danému hashi je možné vygenerovat na přání libovolný počet kolizí. A SHA-1 je jen o kousek pozadu, ale myslím, že už praktické útoky také existují. Takže ten váš postup bezpečnost nijak zásadně nezvyšuje. Funguje to podobně, jako kdybyste hash udělal třeba tak, že uděláte MD5 hash dokumentu, pak k dokumentu připojíte nulový bajt a znovu spočítáte MD5 hash, a spojíte tyhle dva hashe. Útočníkovi tím sice poněkud ztížíte práci, ale je to ztížení nepodstatné – útok mu bude trvat třeba dvakrát nebo desetkrát nebo klidně i tisíckrát déle. Jenže to je málo, vy mu útok potřebujete zkomplikovat ne násobky, ale mocninami.

Smysl by to mělo někde, kde na tom hashi zas tak moc nezáleží, třeba při přenosu souborů. Jenže proč to dělat, když tady už dlouho máme SHA-2, která je zatím bezpečná? A matematici jsou zatím docela napřed, takže se momentálně nemusíme bát, že bychom neměli k dispozici dostatečně silný hashovací algoritmus a bylo nutné se uchylovat k takovýmhle pseudořešením, o kterých nic nevíme.

No to je zase ale krávovina co jste napsal...

Můžete mi vysvětlit příklad útoku, kdy na třeba vámi zmiňovanou PDF fakturu provedu útok tak, že pak bude sedět předem vytvořený MD5 i SHA1 hash?

Tazatel totiž přesně uhodil hřebíček na hlavičku. Spočítáte-li 2 různé typy hashů pro konkrétní soubor je pak nemožné na něj provést útok tak, aby oba hashe seděly. Buď bude po útoku sedět jeden nebo druhý, ale nikoli oba.

Logik

  • *****
  • 1 049
    • Zobrazit profil
    • E-mail
Re:Spojení hashovacích funkcí
« Odpověď #4 kdy: 01. 02. 2016, 09:57:10 »
ByCzech:Dvě haše ti sice radikálně sníží počet kolizí, ale principiálně ty kolize tam pořád budou a pokud je umím efektivně generovat množiny kolizních hašů, tak není zas tak takový problém najít jejich průnik.

PS: A doporučoval bych Ti být méně arogantní, když evidentně o věci zas tolik nevíš.


Re:Spojení hashovacích funkcí
« Odpověď #5 kdy: 01. 02. 2016, 10:13:51 »
Kolize nejsou jediny problem, ktery muze u hashovani nastat!

Re:Spojení hashovacích funkcí
« Odpověď #6 kdy: 01. 02. 2016, 10:44:02 »
Dělal jsem úpravy jednoto webu a tam do administarce bylo toto:
Kód: [Vybrat]
md5(sha(md5(heslo)))
Jen tak jsem si na to vzpomel :D
Když chceš, dokážeš vše!

Lol Phirae

Re:Spojení hashovacích funkcí
« Odpověď #7 kdy: 01. 02. 2016, 10:50:20 »
To je nějaký teoretická otázka, nebo to chceš někde využit? Pokud za b/, tak bych doporučil nevynalézat rovnák na vohejbák a použít aktuálně bezpečný hashovací algoritmus.  ::)

ByCzech

Re:Spojení hashovacích funkcí
« Odpověď #8 kdy: 01. 02. 2016, 11:50:59 »
ByCzech:Dvě haše ti sice radikálně sníží počet kolizí, ale principiálně ty kolize tam pořád budou a pokud je umím efektivně generovat množiny kolizních hašů, tak není zas tak takový problém najít jejich průnik.

PS: A doporučoval bych Ti být méně arogantní, když evidentně o věci zas tolik nevíš.

Prosím tedy ukažte útok nebo pošlete informace které to potvrzují, pokud tvrdíte, kolize jsou.

PS: Pokud můj příspěvek vyzněl arogantně, omlouvám se, nebyl tak myšlen.

Re:Spojení hashovacích funkcí
« Odpověď #9 kdy: 01. 02. 2016, 11:52:09 »
Dělal jsem úpravy jednoto webu a tam do administarce bylo toto:
Kód: [Vybrat]
md5(sha(md5(heslo)))
Jen tak jsem si na to vzpomel :D

A na prvni pohled to vypada jako dobrej napad, co? :-D

ByCzech

Re:Spojení hashovacích funkcí
« Odpověď #10 kdy: 01. 02. 2016, 12:02:14 »
Dělal jsem úpravy jednoto webu a tam do administarce bylo toto:
Kód: [Vybrat]
md5(sha(md5(heslo)))
Jen tak jsem si na to vzpomel :D

A na prvni pohled to vypada jako dobrej napad, co? :-D

To ale s dotazem nesouvisí, ne? Já dotaz pochopil tak, že se spočítají 2 nezávislé hashe nad danými daty, ne že se udělá hash hashe...

Re:Spojení hashovacích funkcí
« Odpověď #11 kdy: 01. 02. 2016, 12:14:03 »
Dělal jsem úpravy jednoto webu a tam do administarce bylo toto:
Kód: [Vybrat]
md5(sha(md5(heslo)))
Jen tak jsem si na to vzpomel :D

A na prvni pohled to vypada jako dobrej napad, co? :-D

To ale s dotazem nesouvisí, ne? Já dotaz pochopil tak, že se spočítají 2 nezávislé hashe nad danými daty, ne že se udělá hash hashe...

Ja to taky tak pochopil, ale to spis spekuluji, co vlastne Gdhsjskksks myslel tim &&

Karel

Re:Spojení hashovacích funkcí
« Odpověď #12 kdy: 01. 02. 2016, 12:33:42 »

Re:Spojení hashovacích funkcí
« Odpověď #13 kdy: 01. 02. 2016, 13:48:00 »
Prosím tedy ukažte útok nebo pošlete informace které to potvrzují, pokud tvrdíte, kolize jsou.
Před deseti lety bylo možné kolize MD5 na běžném notebooku generovat v řádu minut.

ByCzech

Re:Spojení hashovacích funkcí
« Odpověď #14 kdy: 01. 02. 2016, 16:34:19 »
Prosím tedy ukažte útok nebo pošlete informace které to potvrzují, pokud tvrdíte, kolize jsou.
Před deseti lety bylo možné kolize MD5 na běžném notebooku generovat v řádu minut.

Já chci vidět útok na soubor, který bude mít předem spočítaný MD5 a SHA1 hash a po útoku bude soubor změněn a OBA vypočítané hashe budou stejné.

Jsem ochoten vám k tomu zapůjčit i výrazně výkonnější HW než byly notebooky před 10 lety.