Know-how / Bezpieczeństwo haseł

Jak działają ataki Brute‑Force

Dlaczego długość ma znaczenie: przykłady obliczeń i środki zaradcze.

Ostatnia aktualizacja: czerwiec 2026

Spis treści

W przypadku ataków Brute‑Force atakujący próbują odgadnąć hasło poprzez systematyczne sprawdzanie wszystkich możliwych kombinacji znaków. Podstawowa idea jest prosta: testować jak najwięcej kombinacji na sekundę – najlepiej na GPU lub w systemach rozproszonych. Mówi się również o wyszukiwaniu wyczerpującym (wyszukiwanie wyczerpujące).

W praktyce takie ataki niestety często kończą się powodzeniem, ponieważ wiele haseł jest zbyt krótkich , ogranicza się do kilku grup znaków (tylko litery) lub występuje na listach słów . To drastycznie zmniejsza przestrzeń wyszukiwania i ułatwia odgadnięcie. Co ważniejsze: rozróżnia się ataki online (na formularze logowania; tutaj pomagają ograniczanie liczby prób / blokady kont) oraz ataki offline (na skradzione hashe haseł; tutaj o czasie ataku decydują funkcja haszująca i siła hasła).

Łamanie haseł (offline) ≠ „odszyfrowywanie”

Hasła nie są odszyfrowywane, lecz przechowywane jako wartości skrótu i następnie wyszukiwane metodą zgadywanie + haszowanie (brute force, ataki słownikowe / maskowe). Wydajność obliczeniowa nowoczesnego sprzętu sięga miliardów na sekundę (w przypadku szybkich metod haszowania), dlatego długie i haszowane wolnymi metodami (np. Argon2, scrypt, PBKDF2, bcrypt) hasła mają kluczowe znaczenie.

Kontekst historyczny i aktualny: projekt RC5 distributed.net demonstruje surową moc wyszukiwania wyczerpującego w przestrzeni kluczy: 56 bitów znaleziono w 1997 roku po 250 dniach, 64 bity w 2002 roku po 1 757 dniach. Obecnie status proxy dla RC5-72 ok. 2,38 biliona kluczy na sekundę (stan na dzień dzisiejszy). To jest atak brute force na klucze a nie haszowanie haseł – dobrze pokazuje jednak, jak skutecznie skaluje się rozproszona moc obliczeniowa.

Kombinacja i długość hasła

Poniższe przykłady pokazują wpływ długości i doboru znaków. Dla zilustrowania przyjęto 2 miliardy prób na sekundę (bardzo wydajny pojedynczy komputer; rzeczywiste wartości znacznie się różnią w zależności od sprzętu oraz – w przypadku offline – od algorytmu haszowania).

Typowe grupy znaków:

  • Cyfry (10: 0–9)
  • Litery (52: A–Z i a–z)
  • Znaki specjalne (≈ 32; zależy od zestawu znaków dozwolonego przez daną usługę)

Liczba możliwych kombinacji wynika z:

Możliwe kombinacje = (zestaw znaków)długość hasła

Ważne: Tabela pokazuje maksymalny czas wyszukiwania. Średnio rzeczywisty czas wynosi około połowy tej wartości. Ponadto ataki słownikowe, regułowe i maskowe znacznie ograniczają przestrzeń przeszukiwania, podczas gdy wolne algorytmy haszowania haseł efektywną szybkość drastycznie obniżają.

Tabelę można przewijać w bok

Hasło składa się zWymagany czas (przy 2 mld/s)Możliwe kombinacje (wzór)
5 znaków
3 małe litery, 2 cyfry
0,009 sekundy(53) × 263 × 10217 576 000
7 znaków
1 wielka litera, 6 małych liter
≈ 28 sekund(71) × 261+656 222 671 232
8 znaków
4 małe litery, 2 znaki specjalne, 2 cyfry
≈ 2,73 godziny(84) × (42) × 264 × 322 × 10219 653 623 808 000
9 znaków
2 wielkie, 3 małe litery, 2 cyfry, 2 znaki specjalne
≈ 53 dni(92) × (73) × (42) × 262+3 × 102 × 3229 197 895 942 144 000
12 znaków
3 wielkie, 4 małe litery, 3 znaki specjalne, 2 cyfry
≈ 115 591 lat(123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021
14 znaków
4 wielkie, 4 małe litery, 3 cyfry, 3 znaki specjalne
≈ 455 812 388 lat(144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025

Wniosek: Każdy dodatkowy znak wielokrotnie zwiększa przestrzeń przeszukiwania. Długość jest ważniejsza niż reguły złożoności – szczególnie przeciwko Ataki offline – pod warunkiem, że usługi stosują odpowiednie, wolne algorytmy haszujące z użyciem salt.

Ochrona przed atakami brute force

Najskuteczniejszym działaniem po stronie użytkownika jest długie, losowe hasło główne lub passphrase (np. kilka losowych słów) – unikalne dla każdej usługi. Password Depot pomaga je generować i pokazuje szacowany czas ataku , który uwzględnia nie tylko długość/zestaw znaków, ale także słabości słownikowe.

  • Włącz MFA/2FA (np. aplikację TOTP lub token sprzętowy) – tam, gdzie to możliwe, Passkeys są jeszcze lepsze. Zobacz wskazówki BSI.
  • Nie używaj ponownie tych samych haseł. Każde konto potrzebuje własnego, silnego hasła.
  • Długość zamiast wymuszonej złożoności. Usługi powinny dopuszczać długie hasła/passphrase (co najmniej 64 znaki) i blokować hasła ujawnione w wyciekach (blacklist).
  • Wolne algorytmy haszujące po stronie serwera (np. Argon2, scrypt, PBKDF2, bcrypt) z użyciem salt i odpowiednich współczynników pracy; szybkie hashe, takie jak MD5/SHA-1, nie nadają się do przechowywania haseł.
  • Rate limiting/throttling i blokady: Ataki online muszą być spowalniane przez ograniczoną liczbę nieudanych prób, progresywne czasy oczekiwania i w razie potrzeby CAPTCHA.

Dodatkowo Password Depot utrudnia zgadywanie hasła online, na krótko blokując pole wprowadzania hasła głównego po błędnych próbach – z wydłużającym się czasem oczekiwania przy kolejnych nieudanych próbach.

Praktyczne wskazówki dla dostawców usług (zespołów technicznych)

  • Akceptuj wszystkie znaki drukowalne, w tym spacje/Unicode, i zezwalaj na kopiowanie i wklejanie.
  • Wdróż listy blokowanych haseł (skompromitowane/popularne hasła) oraz Rate-Limiting z jasnymi komunikatami dla użytkowników.
  • Przechowuj hasła wyłącznie jako wartości solone i haszowane z użyciem wolnych KDF i regularnie sprawdzaj współczynniki pracy.

Dalsze źródła

Jak tworzyć bezpieczne hasła

Dowiedz się, jak tworzyć hasła odporne na ataki brute force.

Wskazówki dotyczące bezpiecznych haseł