Jak działają ataki brute force
Dlaczego długość ma znaczenie: przykłady obliczeniowe i środki zaradcze.
W przypadku ataków brute force atakujący próbują odgadnąć hasło poprzez systematyczne wypróbowywanie wszystkich możliwych kombinacji znaków. Podstawowa idea jest prosta: przetestować jak najwięcej kombinacji na sekundę – najlepiej na procesorach graficznych lub w systemach rozproszonych. Mówi się również o wyczerpującym przeszukiwaniu (exhaustive search).
W praktyce takie ataki są niestety często skuteczne, ponieważ wiele haseł jest zbyt krótkich, ogranicza się do kilku grup znaków (tylko litery) lub występuje w listach słów. To drastycznie zmniejsza obszar wyszukiwania i ułatwia odgadnięcie hasła. Co ważniejsze: rozróżnia się ataki online (na formularze logowania, gdzie pomocne są ograniczenia częstotliwości/blokady kont) i ataki offline (na skradzione skróty haseł, gdzie o czasie ataku decyduje funkcja skrótu i siła hasła).
Łamanie haseł (offline) ≠ „deszyfrowanie”
Hasła nie są deszyfrowane, ale zapisywane jako wartości hash, a następnie wyszukiwane za pomocą odgadywania + hashowania</ em> (brute force, ataki słownikowe/maski). Szybkość obliczeniowa nowoczesnego sprzętu wynosi miliardy na sekundę (w przypadku szybkich algorytmów hash), dlatego długie i powolnych procedur (np. Argon2, scrypt, PBKDF2, bcrypt) .
Kombinacja i długość hasła
Poniższe przykłady pokazują wpływ długości i wyboru znaków. Dla ilustracji obliczenia opierają się na 2 miliardach prób na sekundę (bardzo wydajny pojedynczy komputer; rzeczywiste wartości różnią się znacznie w zależności od sprzętu i – w przypadku trybu offline – algorytmu haszującego).
Typowe grupy znaków:
- Cyfry (10: 0–9)
- Litery (52: A–Z i a–z)
- Znaki specjalne (≈ 32; zależy od zestawu znaków dozwolonych przez usługę)
Liczba możliwych kombinacji wynika z:
Możliwe kombinacje = (zbiór 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ą obszar wyszukiwania, podczas gdy powolne metody haszowania haseł drastycznie obniżają efektywną szybkość.
| Hasło składa się z | Możliwe kombinacje (wzór) | Wymagany czas (przy 2 mld/s) |
|---|---|---|
|
5 znaków |
( 53) ×
263 × 102 = |
17 576 000 / 2 000 000 000 = |
|
7 znaków |
( 71) ×
261+6 = |
56 222 671 232 / 2 000 000 000 = |
|
8 znaków |
( 84) × ( 42 ) × 264
× 322 × 102 = |
19 653 623 808 000 / 2 000 000 000 = |
|
9 znaków |
( 92 ) × ( 73) × ( 42 ) ×
262+3 × 102 × 322 = |
9 197 895 942 144 000 / 2 000 000 000 = |
|
12 znaków |
( 123) × ( 94 ) × ( 53) ×
263+4 × 323 × 102 = |
7 295 525 784 083 496 960 000 / 2 000 000 000 = |
|
14 znaków |
( 144 ) × (
104) × ( 63 ) ×
264+4 × 103 × 323 = |
28 768 690 008 569 256 345 600 000 / 2 000 000 000 = |
Wniosek: Każdy dodatkowy znak zwielokrotnia obszar wyszukiwania. Długość przeważa nad zasadami złożoności – szczególnie w przypadku ataków offline – pod warunkiem, że usługi wykorzystują odpowiednie, powolne procedury hashowania z solą.
Ochrona przed atakami brute force
Najskuteczniejszym środkiem stosowanym przez użytkownika jest długie, losowe hasło główne lub fraza hasła (np. kilka losowych słów) – unikalne dla każdej usługi. Password Depot pomaga w generowaniu i wyświetla szacowany czas ataku, uwzględniający długość/zestaw znaków oraz słabe punkty słownika.
- Włącz MFA/2FA (np. aplikacja TOTP lub token sprzętowy) – tam, gdzie to możliwe, jeszcze lepszym rozwiązaniem są klucze dostępu. Zobacz wskazówki BSI.
- Nie należy ponownie wykorzystywać haseł. Każde konto wymaga osobnego, silnego hasła.
- Długie hasła zamiast obowiązkowej złożoności. Usługi powinny zezwalać na długie hasła/frazy haseł (co najmniej 64 znaki) i blokować hasła, które zostały ujawnione (czarna lista).
- Powolne procedury hashowania po stronie serwera (np. Argon2, scrypt, PBKDF2, bcrypt) z saltem i odpowiednimi współczynnikami pracy; szybkie hashe, takie jak MD5/SHA-1, są nie nadają się do przechowywania haseł.
- ataki online muszą być hamowane poprzez ograniczenie liczby nieudanych prób, progresywne czasy oczekiwania i, w razie potrzeby, CAPTCHA.
Ponadto Password Depot utrudnia próby online, blokując na krótko maskę wprowadzania hasła głównego po wprowadzeniu nieprawidłowych danych – z rosnącym czasem oczekiwania w przypadku powtarzających się nieudanych prób.
Dodatkowe źródła
- NIST SP 800‑63B (Rev. 4), Dodatek: Siła haseł – długość, frazy haseł, ataki offline (miliardy skrótów/sek.) i koncepcja ograniczania szybkości.
- NIST SP 800‑63B (wersja 3) – m.in. minimalna długość, zezwolenie na długie hasła (≥ 64), czarne listy, zezwolenie na wklejanie; ograniczanie szybkości/throttling z ograniczeniem do maks. 100 kolejnych nieudanych prób.
- OWASP Password Storage Cheat Sheet – odpowiednie procedury (Argon2, scrypt, PBKDF2, bcrypt), współczynniki Salt/Work.
- OWASP Authentication Cheat Sheet – wytyczne dotyczące wprowadzania hasła, długości, czarnych list i mechanizmów blokujących.
- BSI: Tworzenie bezpiecznych haseł – m.in. długie/złożone hasła i frazy haseł; praktyczne wskazówki.
- BSI‑Presse 31.01.2025 – brak wymogu regularnej zmiany hasła; preferowanie 2FA/kluczy dostępu.
- distributed.net RC5 / aktualny status proxy – przykład ilustrujący wyczerpujące wyszukiwanie i rozproszoną moc obliczeniową.