Ataki na hasła - jak działają i ile kosztują

Złamanie Twojego hasła może kosztować mniej niż kawa w Starbucksie. Hakerzy wynajmują potężne komputery za kilka dolarów na godzinę i łamią miliony haseł z wycieków - nie włamując się do nikogo, po prostu testując kombinacje offline. Sprawdź, jak działają te ataki i ile naprawdę warte jest Twoje hasło.

Skąd hakerzy biorą dane?

Wycieki baz danych

Głównym źródłem są włamania do serwisów internetowych. Gdy haker uzyskuje dostęp do bazy danych, wykrada tabelę użytkowników zawierającą loginy i hashe haseł. W publicznych wyciekach znajduje się już ponad 17 miliardów skompromitowanych kont.

Największe wycieki w historii - źródło haveibeenpwned.com:

  • LinkedIn (2012): 164 miliony kont
  • Adobe (2013): 153 miliony kont
  • Dropbox (2012): 68 milionów kont
  • RockYou (2009): 32 miliony haseł w czystym tekście - do dziś używane jako słownik do ataków
  • Morele.net (2018): 2.5 miliona haseł - przykład z naszego podwórka

Skradzione bazy krążą na forach darknetowych, Telegramie i są sprzedawane za kryptowaluty. Wiele trafia ostatecznie do domeny publicznej.

Atak online vs offline

Atak online - haker próbuje logować się bezpośrednio do serwisu. Jest silnie ograniczony przez blokady konta, CAPTCHA i opóźnienia sieciowe. Może wykonać kilka-kilkanaście prób na minutę. Praktycznie niewykonalny dla haseł dłuższych niż 6-7 znaków.

Atak offline - haker ma kopię bazy danych i łamie hasła lokalnie. Brak jakichkolwiek ograniczeń poza mocą obliczeniową. Może testować miliardy kombinacji na sekundę. To główne zagrożenie i na nim koncentruje się reszta artykułu.

Credential stuffing

Szczególny typ ataku - wykorzystanie par login/hasło z jednego wycieku do logowania w innych serwisach. Badania pokazują, że ok 0.1% par działa w innych popularnych serwisach. Przy miliardach dostępnych danych to miliony potencjalnie przejętych kont. Źródło cloudflare.com

Jak serwisy przechowują hasła?

Sposób przechowywania haseł determinuje trudność ich złamania. Odpowiedzialne serwisy nie przechowują hasła w czystej formie, tylko jego "odcisk palca" (hash).

Hashowanie

Hasło jest przekształcane przez jednokierunkową funkcję - nie da się odzyskać hasła z hasha, ale to samo hasło zawsze daje ten sam hash. Podczas logowania serwis porównuje hash wprowadzonego hasła z zapisanym.

hasło: trudnehaslo123
hash:  370b4447a24e539b6c44cd5023736c0f

Sól (salt)

Losowy ciąg znaków dodawany do hasła przed hashowaniem. Każdy użytkownik ma unikalną sól. Dzięki temu nawet identyczne hasła mają różne hashe, a atakujący musi łamać każde hasło osobno.

Szybkie vs wolne algorytmy

Tu leży kluczowa różnica:

Algorytm Szybkość (RTX 4090) Ocena
MD5 164 miliardy/s ❌ Nigdy nie używać
SHA-1 51 miliardów/s ❌ Przestarzały
bcrypt (cost 10) ~6 tysięcy/s ⚠️ Tylko systemy legacy
Argon2id zależy od parametrów* ✅ Zalecany (OWASP)
* Argon2id jest algorytmem memory-hard - jego siła zależy od konfiguracji pamięci (m), iteracji (t) i równoległości (p). OWASP rekomenduje minimum m=19 MiB, t=2, p=1.
Źródło Sam Croley (jeden z programistów hashcat)

Różnica jest kolosalna: MD5 jest ~270 milionów razy szybszy do złamania niż bcrypt. Niestety, użytkownik zazwyczaj nie wie, jakiego algorytmu używa serwis.

Metody łamania haseł

Atak słownikowy

Testowanie haseł z przygotowanych list - popularnych haseł, słów ze słowników, znanych fraz. Lista "rockyou.txt" zawiera 14 milionów haseł z prawdziwego wycieku i jest standardem w branży.

Chroni: losowe hasła spoza słowników.
Nie chroni: popularne hasła, słowa ze słowników, znane frazy.

Atak brute-force

Systematyczne sprawdzanie wszystkich możliwych kombinacji. Gwarantuje sukces, ale czas rośnie wykładniczo z długością hasła.

Długość Małe litery + wielkie litery + cyfry + symbole
8 znaków 2.1 × 10¹¹ 6.6 × 10¹⁵
10 znaków 1.4 × 10¹⁴ 5.9 × 10¹⁹
12 znaków 9.5 × 10¹⁶ 5.4 × 10²³

Chroni: długie hasła (12+ znaków).
Nie chroni: krótkie hasła niezależnie od złożoności.

Atak hybrydowy

Kombinacja słownika z regułami transformacji - typowe modyfikacje stosowane przez użytkowników:

  • Wielka litera na początku: hasloHaslo
  • Cyfry na końcu: haslohaslo123
  • Zamiana liter: hasloh@sl0
  • Rok: haslohaslo2026

Narzędzie Hashcat z zestawem reguł może przetestować miliardy takich kombinacji.
Chroni: prawdziwie losowe hasła.
Nie chroni: hasła z przewidywalnymi wzorcami, nawet "skomplikowane" jak H@s1o2026!

Atak na passphrase

Testowanie kombinacji słów ze słownika. Przestrzeń do przeszukania:

Liczba słów Słownik 7776 słów Słownik niezgadniesz.pl (~85000 słów)
4 słowa 3.7 × 1015 52.2 × 1018
5 słów 28.4 × 1018 4.4 × 1024
6 słów 221.1 × 1021 377.1 × 1027

Chroni: passphrase z losowo wybranych słów (5+).
Nie chroni: sensowne zdania, cytaty, teksty piosenek - są w słownikach ataków.

Realne koszty i czasy łamania

Hakerzy wynajmują karty graficzne w chmurze. Klaster 8x RTX 4090 kosztuje około $3/h (platformy takie jak Vast.ai, RunPod). Poniżej realne koszty złamania passphrase.

MD5 (słaby algorytm) - 8x RTX 4090, ~1.3 biliona H/s

Passphrase Słownik 7776 słów Słownik niezgadniesz.pl
(~85000 słów)
Czas Koszt Czas Koszt
4 słowa 23 minuty <$1 232 dni $17000
5 słów 127 dni $9000 54100 lat $1.4 mld
6 słów 2700 lat $70.9 mln 4.6 mld lat $120.9 bln

bcrypt cost 10 (silny algorytm) - 8x RTX 4090, ~46 tys. H/s

Passphrase Słownik 7776 słów Słownik niezgadniesz.pl (~85000 słów)
Czas Koszt Czas Koszt
4 słowa 1300 lat $33.1 mln 18 mln lat $472.8 mld
5 słów 10 mln lat $257.5 mld 2 bln lat $40.2 bld
6 słów 76 mld lat $2.0 bld 130 bln lat atronomiczny

Argon2id (zalecany algorytm) - szacunki dla 8x RTX 4090

Argon2id jest algorytmem memory-hard, co oznacza, że jego szybkość łamania zależy głównie od przepustowości pamięci GPU, nie mocy obliczeniowej. Przy zalecanej przez OWASP konfiguracji (m=19 MiB, t=2, p=1) szacowana szybkość to ~10-50 tys. H/s dla 8x RTX 4090.

Przyjmując konserwatywnie ~35 tys. H/s:

Passphrase Słownik 7776 słów Słownik 85000 słów
Czas Koszt Czas Koszt
4 słowa 1700 lat $43.5 mln 24 mln lat $621.4 mld
5 słów 13 mln lat $338.5 mld 2 bln lat $52.8 bld
6 słów 100 mld lat $2.6 bld 171 bln lat atronomiczny

Uwaga: Powyższe szacunki dla Argon2id są przybliżone. Przy wyższych ustawieniach pamięci (np. m=64 MiB czy m=128 MiB) czasy łamania rosną proporcjonalnie. Argon2id z odpowiednią konfiguracją jest obecnie najtrudniejszym do złamania algorytmem hashowania haseł.

Co z tego wynika?

  • Algorytm ma ogromne znaczenie - ta sama passphrase 4-wyrazowa to 23 minuty przy MD5, ale 1300 lat przy bcrypt
  • 4 słowa to za mało przy słabym hashu - koszt poniżej dolara
  • 5 słów to bezpieczne minimum - $9000 przy MD5, miliardy przy bcrypt
  • Większy słownik pomaga - przejście z 7776 na 85000 słów zwiększa koszty setki tysięcy, a nawet milion razy
  • Każde dodatkowe słowo = ~85000x trudniej - najefektywniejszy sposób zwiększania bezpieczeństwa

Źródła: benchmarki Hashcat v6.2.6 (Sam Croley), ceny Vast.ai/RunPod 2025

Jak się skutecznie chronić?

Które hasła chronią przed którymi atakami?

Typ hasła Słownikowy Hybrydowy Brute-force
haslo123, qwerty
P@ssw0rd2024! ⚠️
Kocham Mojego Psa
Losowe 12+ znaków
Losowa passphrase 5+ słów

Legenda: ✅ skuteczna ochrona, ⚠️ częściowa, ❌ brak ochrony

A co z credential stuffingiem? Siła hasła nie chroni przed tym atakiem. Credential stuffing polega na testowaniu skradzionych par login/hasło z wycieków - jeśli Twoje hasło wyciekło, atakujący już je zna, niezależnie od tego, jak silne było. Jedyna ochrona to używanie unikalnego hasła dla każdego serwisu i włączenie 2FA.

Praktyczne zasady

  1. Używaj managera haseł - jedno silne hasło główne (passphrase 5-6 słów), reszta generowana automatycznie
  2. Unikalne hasło dla każdego serwisu - wyciek w jednym miejscu nie zagraża innym kontom
  3. Włącz weryfikację dwuetapową (2FA) - nawet złamane hasło nie wystarczy do włamania
  4. Sprawdź swoje dane - haveibeenpwned.com pokazuje, czy Twoje konta wyciekły
  5. Nie wymyślaj haseł sam - używaj generatora, ludzie są przewidywalni
  6. Zakładaj najgorszy scenariusz - nie wiesz, jakiego algorytmu używa serwis, więc twórz hasła odporne nawet na słabe hashe

Powiązane artykuły