Autor Zpráva
caradoc
Profil *
nedávno jsem se tady dočetl že md5 v PHP je prolomeno a není bezpečné.. je tomu skutečně ještě tak a hodí se hashovat nějakou jinou formou???
děkuji za názory,..
Jack Finger
Profil
taky jsem to slyšel, já osobně používám sha1() ..
Jakuje
Profil
v hashování MD5 prý byla nalezena nějaká shoda dvou hodnot, pro které vyjde stejné MD5. Proto také odjakživa používám SHA1. Ještě jsou nšjaké funkce PASSWORD(), ... ale s tím nemám co zkušenosti. Zkus se mrknout na php.net do manuálu.
Alphard
Profil
v hashování MD5 prý byla nalezena nějaká shoda dvou hodnot, pro které vyjde stejné MD5. Proto také odjakživa používám SHA1.
ano je to tak, ale sha1 ti nepomůže, tam se může stát také
kolizní klíče lze najiít pro oba způsoby
Jack Finger
Profil
sha1 ti nepomůže, tam se může stát také, kolizní klíče lze najiít pro oba způsoby
ale pro sha1 ještě nebyl nalezen ;o)
Alphard
Profil
určitě byl
používej třeba salted hash, tím se zneužití kolizníhi klíče do jisté míry eliminuje
Makhiel
Profil *
Když si hash z md5() ještě poupravím (třeba proházím písmenka) tak je to zas o kus bezpečnější, ne?
Jakuje
Profil
No hůř se to asi odhalí, ale shoda tam také může nastat úplně stejně jako nez poházení písmenek.
Ni7R0
Profil
Makhiel
Tohle blbnutí s písmenky mi přijde jako blbost, stačí používat buď normální nebo, pro vyšší bezpečnost, salted hash.

caradoc
U md5 byly nalezeny kolize (existují algoritmy, které kolizi najdou řádově za minuty), ale to neznamená, že se toho dá nějak prakticky zneužít při prolamování hesla (čili během minut nenajdeme výchozí hodnotu před hashováním). Jestli chcete vědět o kolizích víc, na rootu jsou zajímavé články od pana Klímy. Ale stejně je lepší používat třeba sha1, jelikož se pro ně hůře shání tak rozsáhlé rainbow tables, jako existují pro md5.

Jack Finger
sha1 hash už je taky prolomen...
Keilew
Profil
Pravděpodobnost, že se trefíte do kolizního klíče je tak mizivá, že bych se tím vůbec nezabýval. Dnes jsou nejhorší sociální útoky = uhodnutí stupidního hesla uživatele...
Ni7R0
Profil
Keilew
Ale lidská blbost je bohužel sféra bezpečnosti, kterou jako tvůrce aplikace můžete jen minimálně ovlivnit. Lidé, kteří jsou schopni do odpovědi na 'mail od banky' napsat třeba svůj PIN, bohužel byli, jsou a ještě dlouho budou.
Keilew
Profil
Ni7R0
Už jsem viděl formuláře, který tě nepustí dál, dokud nebudeš mít heslo o 8 znacích minimálně, kde jsou i čísla a malá a velká písmena... ale je fakt, že když si to heslo vylepíš hned vedle monitoru, tak je i toto prd platný;-)
Jinak MD5 je z pohledu hashování hesel naprosto bezpečný. To, že maj dva klíče jeden hash, to nemění nic na bezpečnosti aplikace, je to problém, pokud se MD5 použije jako "opravdový" hash, ne jen na překrytí.
Mike8748
Profil
>> Lidé, kteří jsou schopni do odpovědi na 'mail od banky' napsat třeba svůj PIN, bohužel byli, jsou a ještě dlouho budou.

jsou i lide co si PIN napisou fixem primo na kreditku, s tim se proste nic delat neda


PS: takova technicka, kecy o "prolomeni" MD5/SHA1 jsou kravina, oboje jsou verejne zname a dostupne algoritmy, na tom neni co lamat

kolize existujou a budou existovat pro vsechny hashovaci algoritmy. staci trochu myslet. at uz pouzijete MD5 nebo SHA1 nebo cokoliv jinyho, tak z libovolnyho mnozstvi vstupnich dat VZDY dostanete hash, s omezenou delkou, slozeny z omezeneho poctu znaku.
caradoc
Profil *
díky za názory, zatím užívám md5, a asi to tak i nechám, četl jsem o něm v knize Mistrovství v PHP5, a tam píšou že md5 a sha1 jsou dostačující,.. kniha byla napsána v roce 2005.
Ni7R0
Profil
Mike8748
128-bitový md5 hash ma 2^128 kombinací, sha-1 2^160, je to snad málo? Prolomení znamená nalezení dvou odlišných vstupních hodnot, které se shodují, což by se u ideální hashovací funkce stát nemělo a u algoritmů jako je třeba sha-256 se to ještě nepovedlo, protože je šance nalézt kolizi minimální.
***
Profil *
Mike8748
Ale je rozdiel aka je ta sanca a 1/2^128 je pekne malo a ked sa nepaci tak mozno by sa nasiel aj nejaky 1/2^1024
krteczek
Profil
jen pro úplnost: u krátkých textů je teměř nemožne najít odpovídající druhý text, prostě u 10 znaků dlouhého hesla nenajdeš druhé stejně dlouhé heslo se stejným hashem. Hashování hesel se používá proto, aby nebylo tak jednoduche napadnout účty klientů, po případném nahlédnutí do db, prostě heslane jsou okamžitě po zhlédnutí použitelná... Ale má li útočník přístup k db, proč by se bavil s hesly?

Problém kolem kolizí je hlavně proto, že tyto funkce se používají také k ověřování identity například binárních dat. Je svým spůsobem reálná obava že by případný útočník mohl podsunout svůj balík se stejným hashem. Nakolik je tato obava v dnešní době reálná, je otázka pro pana Klímu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0