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:
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 aus | Mögliche Kombinationen (Formel) | Benötigte Zeit (bei 2 Mrd./s) |
|---|---|---|
| 5 Zeichen 3 Kleinbuchstaben, 2 Zahlen | (53) × 263 × 10217.576.000 | 0,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
- NIST SP 800–63B (Rev. 4), Appendix: Strength of Passwords – długość, passphrase, ataki offline (miliardy hashy/s) oraz koncepcja Rate-Limiting.
- NIST SP 800–63B (Rev. 3) – m.in. minimalna długość, dopuszczanie długich haseł (≥ 64), czarne listy, zezwolenie na wklejanie; Rate-Limiting/Throttling z ograniczeniem do maks. 100 kolejnych nieudanych prób.
- OWASP Password Storage Cheat Sheet – odpowiednie metody (Argon2, scrypt, PBKDF2, bcrypt), Salt/współczynniki pracy.
- OWASP Authentication Cheat Sheet – wytyczne dotyczące wprowadzania haseł, długości, czarnych list i mechanizmów blokady.
- BSI: Jak tworzyć bezpieczne hasła – m.in. długie/złożone hasła i passphrase; praktyczne wskazówki.
- Komunikat prasowy BSI 31.01.2025 – bez wymuszonych regularnych zmian haseł; preferowane 2FA/Passkeys.
- distributed.net RC5 / aktualny status proxy – przykład poglądowy wyczerpującego przeszukiwania i rozproszonej mocy obliczeniowej.
Jak tworzyć bezpieczne hasła
Dowiedz się, jak tworzyć hasła odporne na ataki brute force.
Wskazówki dotyczące bezpiecznych haseł