Entropia hasła - czym jest i jak ją obliczyć
„Silne hasło" to pojęcie względne - 8 znaków, które w 2005 roku wymagało lat łamania, dziś pada w kilka godzin. Entropia pozwala zmierzyć siłę hasła w sposób uniwersalny, niezależny od aktualnej mocy komputerów. To liczba, która mówi Ci dokładnie, ile wysiłku musi włożyć atakujący - dziś, za rok i za dekadę.
Ten artykuł jest bardziej techniczny niż pozostałe w bazie wiedzy. Jeśli szukasz prostych zasad tworzenia haseł, zacznij od: Jak stworzyć bezpieczne hasło.
Czym jest entropia?
Entropia to pojęcie z teorii informacji, wprowadzone przez Claude'a Shannona w 1948 roku. W kontekście haseł entropia mierzy nieprzewidywalność - ile informacji zawiera hasło, której atakujący nie może zgadnąć.
Entropię wyrażamy w bitach. Jeden bit entropii oznacza wybór między dwiema równie prawdopodobnymi opcjami (jak rzut monetą). Dwa bity to wybór między czterema opcjami, trzy bity - między ośmioma, i tak dalej.
Intuicja za entropią
Wyobraź sobie, że ustawiasz 4-cyfrowy PIN. Każda cyfra może mieć wartość 0-9, czyli 10 opcji. Łącznie masz:
10 × 10 × 10 × 10 = 10 000 możliwych kombinacji
Entropia tego PIN-u to logarytm dwójkowy z liczby kombinacji:
log₂(10 000) ≈ 13.3 bita
Co to oznacza w praktyce? Atakujący, który zgaduje losowo, musi średnio sprawdzić połowę wszystkich kombinacji, czyli około 5000 prób. Każdy dodatkowy bit entropii podwaja tę liczbę.
Dlaczego entropia to najlepsza miara siły hasła?
Niezależność od technologii
Moc komputerów rośnie z roku na rok. Hasło, które w 2010 roku wymagało miesiąca łamania, dziś pada w godziny. Mierzenie siły hasła w „czasie łamania" jest zawodne - wynik zmienia się z każdą generacją sprzętu.
Entropia jest stała. Hasło o entropii 60 bitów zawsze oznacza 2⁶⁰ kombinacji do sprawdzenia - niezależnie od tego, czy atakujący używa komputera z 2010, czy 2030 roku. Zmienia się tylko czas potrzebny na przeszukanie tej przestrzeni, nie jej rozmiar.
Porównywalność różnych typów haseł
Jak porównać siłę hasła xK9#mL2$ z passphrase krowa lampa ocean zegar?
Jedno ma 8 znaków, drugie
23. Jedno wygląda „skomplikowanie", drugie to zwykłe słowa.
Entropia daje wspólną jednostkę:
xK9#mL2$(8 losowych znaków z 95): ~52 bitykrowa lampa ocean zegar(4 słowa z 7776): ~51 bitów
Oba hasła mają praktycznie identyczną siłę, mimo zupełnie różnej formy.
Obiektywność
Subiektywne oceny („to hasło wygląda na silne") są zawodne. Hasło p@ssw0rd2024! wygląda
imponująco,
ale opiera się na przewidywalnym wzorcu - jego efektywna entropia jest znacznie niższa niż sugeruje
długość.
Entropia zmusza do precyzyjnego myślenia: ile jest naprawdę możliwych kombinacji, które atakujący musi sprawdzić?
Jak obliczyć entropię hasła?
Wzór podstawowy
Dla hasła składającego się z losowo wybranych elementów:
Entropia = log₂(liczba możliwych kombinacji) = log₂(N^L) = L × log₂(N)
Gdzie:
- N - rozmiar alfabetu (liczba możliwych znaków lub słów)
- L - długość hasła (liczba znaków lub słów)
Entropia na znak
Przydatne jest pojęcie entropii na pojedynczy znak:
| Alfabet | Rozmiar (N) | Entropia na znak |
|---|---|---|
| Cyfry (0-9) | 10 | 3.32 bita |
| Małe litery (a-z) | 26 | 4.70 bita |
| Małe + wielkie litery | 52 | 5.70 bita |
| Litery + cyfry | 62 | 5.95 bita |
| Litery + cyfry + symbole | 95 | 6.57 bita |
Przykłady obliczeń
Hasło 8-znakowe (małe litery)
Alfabet: 26 znaków Długość: 8 Kombinacje: 26⁸ = 208 827 064 576 Entropia: 8 × 4.70 = 37.6 bita
Hasło 12-znakowe (litery + cyfry + symbole)
Alfabet: 95 znaków Długość: 12 Kombinacje: 95¹² ≈ 5.4 × 10²³ Entropia: 12 × 6.57 = 78.8 bita
PIN 6-cyfrowy
Alfabet: 10 cyfr Długość: 6 Kombinacje: 10⁶ = 1 000 000 Entropia: 6 × 3.32 = 19.9 bita
Entropia passphrase
Dla passphrase obliczenia są analogiczne, ale zamiast znaków liczymy słowa:
Entropia = liczba słów × log₂(rozmiar słownika)
Entropia na słowo
| Słownik | Rozmiar | Entropia na słowo |
|---|---|---|
| Diceware (standard) | 7 776 | 12.9 bita |
| EFF Large Wordlist | 7 776 | 12.9 bita |
| Słownik niezgadniesz.pl | 19 000 | 14.2 bita |
| Pełny słownik języka polskiego | ~350 000 | 18.4 bita |
Wartość entropii dla passphrase generowanych przez niezgadniesz.pl jest w rzeczywistości nieco trudniejsza do policzenia. Wynika to ze sposóbu, w jaki słowa dobierane są z poszczególnych kategorii gramatycznych, których generator wykorzystuje prawie 200. Wartość 14.2 jest wartością maksymalną w przypadku całkowicie losowego doboru słów. W rzeczywistości jest nieco mniejsza.
Przykłady obliczeń
Passphrase 4 słowa (Diceware)
Słownik: 7 776 słów Liczba słów: 4 Kombinacje: 7776⁴ ≈ 3.66 × 10¹⁵ Entropia: 4 × 12.9 = 51.7 bita
Passphrase 5 słów (Diceware)
Słownik: 7 776 słów Liczba słów: 5 Kombinacje: 7776⁵ ≈ 2.84 × 10¹⁹ Entropia: 5 × 12.9 = 64.6 bita
Passphrase 6 słów (słownik niezgadniesz.pl 19 000 słów)
Słownik: 19 000 słów Liczba słów: 6 Kombinacje: 19000⁶ ≈ 4.7 × 10²⁵ Entropia: 6 × 14.2 = 85.2 bita
Porównanie: hasło losowe vs passphrase
| Hasło | Entropia | Łatwość zapamiętania |
|---|---|---|
| 8 znaków (a-z, A-Z, 0-9, symbole) | 52.6 bita | Bardzo trudne |
| 4 słowa (Diceware) | 51.7 bita | Łatwe |
| 12 znaków (pełny alfabet) | 78.8 bita | Praktycznie niemożliwe |
| 6 słów (Diceware) | 77.5 bita | Umiarkowanie łatwe |
Passphrase oferuje podobną entropię przy znacznie lepszej zapamiętywalności.
Ile entropii potrzebujesz?
Wymagana entropia zależy od wartości chronionego zasobu i możliwości atakującego.
Orientacyjne poziomy bezpieczeństwa
| Entropia | Kombinacje | Zastosowanie |
|---|---|---|
| ~20 bitów | ~1 milion | PIN do telefonu (z blokadą po kilku próbach) |
| ~40 bitów | ~1 bilion | Konta o niskiej wartości, ataki online |
| ~50-60 bitów | ~10¹⁵ - 10¹⁸ | Większość kont internetowych |
| ~70-80 bitów | ~10²¹ - 10²⁴ | Hasło główne do managera haseł |
| ~100+ bitów | ~10³⁰+ | Szyfrowanie długoterminowe, klucze kryptograficzne |
Wpływ algorytmu hashującego
Wymagana entropia zależy też od tego, jak serwis przechowuje hasła:
- Słaby hash (MD5, SHA-1) - atakujący testuje ~10¹¹ haseł/s na jednym GPU. Potrzebujesz więcej entropii.
- Silny hash (bcrypt, Argon2) - atakujący testuje ~10³-10⁴ haseł/s. Mniejsza entropia wystarczy.
Ponieważ nie wiesz, jakiego algorytmu używa serwis, bezpiecznie jest zakładać najgorszy scenariusz.
Pułapki przy szacowaniu entropii
Entropia teoretyczna vs efektywna
Obliczenia entropii zakładają, że hasło jest naprawdę losowe. W praktyce ludzie wprowadzają wzorce, które drastycznie obniżają efektywną entropię.
Przykład: Tr0ub4dor&3
Teoretycznie: 11 znaków z alfabetu 95 = ~72 bity.
Efektywnie: słowo troubador + przewidywalne zamiany (o→0, a→4) + symbol i cyfra na
końcu. Atakujący
z regułami hybrydowymi złamie to w minuty.
Przykład: KochamMojegoPsa123
Teoretycznie: 18 znaków = ~85 bitów.
Efektywnie: sensowna fraza po polsku + cyfry na końcu. Znajduje się w słownikach ataków. Entropia bliska zeru.
Atakujący zna Twoją metodę
Przy obliczaniu entropii zakładamy, że atakujący wie, jakiej metody użyłeś:
- Jeśli używasz Diceware, atakujący wie, że testujesz kombinacje z 7776 słów
- Jeśli używasz losowych znaków, atakujący wie, że testujesz alfabet 95 znaków
To konserwatywne założenie (tzw. zasada Kerckhoffsa) - bezpieczeństwo nie powinno zależeć od tajności metody, tylko od losowości wyniku.
Nie dodawaj entropii tam, gdzie jej nie ma
Częsty błąd: „dodam znak specjalny, to zwiększy entropię". To prawda tylko dla haseł losowych. Jeśli
zawsze dodajesz ! na końcu, atakujący to wie - entropia wzrasta o ułamek bita, nie o
pełne
log₂(33) ≈ 5 bitów.
Losowość musi być prawdziwa
Ludzki mózg jest fatalny w generowaniu losowości. Gdy prosisz kogoś o „losowe" słowo, dostaniesz
nieproporcjonalnie często: kot, dom, drzewo - słowa krótkie,
częste, podstawowe.
Prawdziwa losowość wymaga generatora: kryptograficznie bezpiecznego generatora liczb losowych w komputerze lub fizycznych kostek w metodzie Diceware.
Podsumowanie
Entropia to uniwersalna miara siły hasła, wyrażona w bitach. Mówi, ile kombinacji musi sprawdzić atakujący - niezależnie od formy hasła czy aktualnej mocy komputerów.
Kluczowe wzory:
- Hasło losowe:
Entropia = długość × log₂(rozmiar alfabetu)
- Passphrase:
Entropia = liczba słów × log₂(rozmiar słownika)
Praktyczne minimum to 70+ bitów - dla hasła głównego warto celować w 80+, by mieć margines bezpieczeństwa. Passphrase z 5 słów (Diceware) daje ~65 bitów, hasło 12-znakowe z pełnego alfabetu - ~79 bitów.
Pamiętaj: obliczenia entropii są prawdziwe tylko dla haseł naprawdę losowych. Każdy przewidywalny wzorzec - słowa ze słownika, typowe zamiany, sensowne frazy - drastycznie obniża efektywną entropię, często do zera.