md5() - do niedawna najpopularniejszy algorytm. Generował 32-znakowe ciągi, lecz niedawno ujawniono w nim poważne dziury.
Mógłby ktoś przedstawić te dziury?
mike
2.02.2008, 15:26:57
Jak cytujesz to wypadłoby podać źródło. Skąd mamy wiedzieć o co Ci chodzi?
Dziury w kontekście md5() to nic nowego. Sprawa stara jak sam algorytm, który można "złamać" brutalnym atakiem. Tęczowe tablice pozwalają na złamanie większości popularnych funkcji skrótu, w tym MD5, SHA-1, NTLM czy Cisco Pix.
MajareQ
2.02.2008, 15:32:14
Tęczowe tablice znam. W cytacie jest mowa: "niedawno ujawniono w nim" zatem sądziłem, że znaleziono nowe dziury w md5.
Być może autorom na Wiki chodziło o kolizje. Generalnie lepiej używać hashowania algorytmem sha1, gdyż trudniej natrafić na kolizję. Skoro jednak md5 jest algorytmem nieodwracalnym, wydaje mi się, że przy dobrym zabezpieczeniu hashowanych stringów nie jest wcale go tak łatwo złamać za pomocą brute force.
.radex
4.02.2008, 10:22:55
brute-force nie łamie hashy tylko odnajduje stringi (np. hasła) w postaci jawnej, więc nie ma to związku ze stopniem zabezpieczenia aplikacji
sobstel
4.02.2008, 10:50:15
Myślę, że warto jasno zaznaczyć, że fakt znalezienia kolizji nie oznacza, że hash przestaje nadawać się na szyfrowanie haseł. Pamiętajmy, że głównym przeznaczeniem hashy to sumy kontrolne i tutaj problem występowania kolizji ma badzo duże znaczenie. Natomiast dla przechowywania haseł praktycznie marginalne. Tutaj problemem są bazy hashy i wspomniane tęczowe tablice, ale na to wystarczy używać chociażby tzw. salt. Dla większej pewności można użyć np. mniej popularnych sha256, itp. (patrz: hash_algos" title="Zobacz w manualu PHP" target="_manual.