A to problem jest zrobic skrot md5/sha1 z nazwiska/imienia i najczesciej stosowanych slow i porownac ze skrotem w bazie?

a wyobrażasz sobie ile by musiała zajmować taka baza, albo inaczej. Ile czasu by zajęło jej wygenerowanie? Pierwsze kryterium to długość hasła. Wygeneruj teraz bazę skrótów dla wszystkich haseł krótszych niż 6 znaków. Uwzględnij oczywiście WSZYSTKIE możliwe kombinacje WSZYSTKICH znaków. potem weź wszystkie wyrazy słownikowe, nazwy użytkowników, imiona, nazwiska, proste ciągli liczb. Teraz pisownia tego małymi, dużymi literami. Z dużej litery, z ostatnią dużą itp...
Trochę dużo roboty jak na akcję gdzie nie znasz hasła...
Problem jest taki, że różnica między md5(imie) a md5(imię) jest bardzo duża i analizując sam skrót nie ma możliwości stwierdzić podobieństwa obu ciągów znaków - co swoja drogą jest główną zaletą każdego algorytmu haszującego. Więc albo trzymają hasła w postaci jawnej, albo mówiąc "hasła łatwe" brali hasła, które powinny być wycinane już na etapie zakładania konta wycięte.
Ale kto mowi o wszystkich kombinacjach liter/liczb/znakow specjalnych? Bardziej mi chodzi o liste md5 wszystkich loginow, nazwisk i imion z bazy. Moze i by powstal duzy zbior ale nie tak duzy zeby nie szlo tego ogarnac. Dodatkowo trzeba by bylo dorzucic kilka hasel typu "qwerty","12345","haslo" itp.
Po wykonaniu md5 pozostaje tylko porownac haslo uzytkowanika (skrot) ze stworzona baza slabych hasel i tyle. Osobiscie nie wierze za bardzo w to ze trzymaja gole hasla.
Jeśli trzymają hasła w MD5, mogli wygenerować i skorzystać z Rainbow Tables, które w bardzo krótkim czasie są w stanie złamać proste hasła. Nawet metodą brute-force dość szybko można złamać 5 czy 6 znakowe hasło, a wspierając się słownikiem popularnych haseł/słów/imion, jeszcze szybciej.
Nie podejrzewałbym, że Allegro trzyma hasła niezahashowane przynajmniej MD5, chociaż wszystko możliwe ;)
Przepraszam - niedoczytałem tego o krótkich hasłach.
Oczywiście, że mogą trzymać hasła w plaintexcie, ale policzę za Was:
powiedzmy, że jest 64 znaki używalne w haśle.
Krótsze niż 6, to oznacza do 5 znaków.
Hasz md5 ma 16 bajtów.
>>> sum([ 64**k for k in range(1,6) ])
1090785344
Przeliczmy już sobie na czyste GB:
>>> 16.0 * sum([ 64**k for k in range(1,6) ]) / 1024**3
16.253968238830566
Po zrobieniu sobie kompresji (Rainbow Tables), będzie tego jeszcze mniej, ale właściwie można powtórnie pohaszować hasze czymś prostszym - i zastosować Running Karp Rabin - wyszukiwanie skrótów skrótów ;)
To tyle na temat "technicznej niewykonalności"
hasła na pewno są przechowywane w formie zaszyfrowanej, słabość hasła sprawdzają zapewne licząc ile ma znaków w czasie logowania. nie trzeba tu nic rozkodowywać/łamać, generować rainbow table czy zapisywać hasło w sposób jawny.
prosty warunek w czasie logowanie:
if(strlen($_POST['password'])<6)
Ale w ten sposób można sprawdzić hasła tylko osób, które się logowały w najbliższym czasie. A co z użytkownikami, którzy nie logowali się od roku albo więcej? Ich sprawa też dotyczy, a nie wierzę, żeby akcja "popraw hasło" trwała tak długo. Gdyby sprawdzanie długości hasła mieli od początku, to nie byłoby teraz problemu z krótkimi hasłami.
Wnioski: akcja "popraw hasło" trwa od niedawna, a krótkie hasła (i ich użytkownicy) musiały zostać w jakiś sposób wytypowane z bazy danych.


© 1998-2026 Dziennik Internautów Sp. z o.o.