Atak słownikowy

Odmiana łamania haseł, w której zamiast wszystkich kombinacji testuje się listę popularnych słów i znanych haseł. Szybszy niż brute force przy słabych hasłach.

Atak słownikowy (ang. dictionary attack) to metoda łamania haseł, w której zamiast sprawdzać wszystkie możliwe kombinacje znaków, przepuszczasz przez mechanizm logowania (albo przez skradzioną bazę hashy) gotową listę kandydatów: popularne słowa, imiona, nazwy zespołów, daty i hasła wyciekłe w poprzednich incydentach. Założenie jest brutalnie proste i niestety skuteczne: większość ludzi nie wymyśla losowych ciągów, tylko bierze qwerty, haslo123 albo imię kota.

Jak to działa

Atak słownikowy to wariant ataku brute force, ale z głową. Czysty brute force testuje każdą kombinację po kolei (aaaa, aaab, aaac…), co przy dłuższych hasłach trwa wieki. Atak słownikowy zawęża pole: zakłada, że hasło to coś, co człowiek jest w stanie zapamiętać, więc prawdopodobnie już gdzieś się pojawiło. Narzędzie bierze listę słów, dla każdego liczy hash tą samą funkcją co system ofiary i porównuje z hashem celu. Trafienie = hasło złamane.

W praktyce dzieli się to na dwa scenariusze. Online — bijesz w żywy formularz logowania albo usługę (SSH, RDP), co jest wolne i łatwe do wykrycia oraz zablokowania. Offline — masz już wykradzioną bazę hashy i kręcisz nimi lokalnie na własnym GPU, bez limitów prób. To dlatego wycieki baz są tak groźne.

Przykład z praktyki

Klasyk to hashcat albo John the Ripper w połączeniu ze słownikiem rockyou.txt — listą ponad 14 milionów haseł z wycieku serwisu RockYou z 2009 roku, do dziś dołączaną do Kali Linux. Łamanie hashy MD5 wygląda mniej więcej tak:

hashcat -m 0 -a 0 hashes.txt rockyou.txt

Tu -m 0 to tryb MD5, -a 0 to atak słownikowy (straight). Często dokłada się jeszcze reguły (-r rules/best64.rule), które automatycznie modyfikują słowa: dopisują cyfry, zamieniają a na @, dodają wielką literę. Dzięki temu Haslo staje się też Haslo1, H@slo! i setką wariantów — to tzw. atak hybrydowy.

Mity i na co uważać

Najczęstszy błąd to wiara, że leetspeak chroni. P@ssw0rd wygląda sprytnie, ale jest w każdym sensownym słowniku reguł od lat. Drugi mit: „mam silny algorytm hashujący, jestem bezpieczny”. Jeśli zahashujesz słabe hasło bez soli, atakujący użyje gotowych rainbow tables. Dlatego po stronie obrony liczą się: wolne funkcje (bcrypt, argon2), unikalna sól, limitowanie prób (rate limiting), MFA i wymuszanie długich, losowych haseł z menedżera. Długość bije skomplikowanie — passphrase z czterech losowych słów rozkłada słownik, bo nie ma takiej frazy na liście.

Pojęcia powiązane: brute force, atak hybrydowy, rainbow tables, salt (sól), hashowanie haseł, credential stuffing, hashcat, John the Ripper, MFA, password spraying.