Know-how / Bezpieczeństwo haseł

Jak działają ataki Brute‑Force

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

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:

Mögliche Kombinationen = (Zeichenmenge)Passwortlänge

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ą.

Passwort besteht ausMögliche Kombinationen (Formel)Benötigte Zeit (bei 2 Mrd./s)
5 Zeichen
3 Kleinbuchstaben, 2 Zahlen
(53) × 263 × 10217.576.0000,009 Sekunden
7 Zeichen
1 Großbuchstabe, 6 Kleinbuchstaben
(71) × 261+656.222.671.232≈ 28 Sekunden
8 Zeichen
4 Kleinbuchstaben, 2 Sonderzeichen, 2 Zahlen
(84) × (42) × 264 × 322 × 10219.653.623.808.000≈ 2,73 Stunden
9 Zeichen
2 Groß-, 3 Kleinbuchstaben, 2 Zahlen, 2 Sonderzeichen
(92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000≈ 53 Tage
12 Zeichen
3 Groß-, 4 Kleinbuchstaben, 3 Sonderzeichen, 2 Zahlen
(123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021≈ 115.591 Jahre
14 Zeichen
4 Groß-, 4 Kleinbuchstaben, 3 Zahlen, 3 Sonderzeichen
(144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025≈ 455.812.388 Jahre

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 próby online Rate poprzez krótkie zablokowanie pola wprowadzania Master-Passwort po błędnych wpisach – 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ł