Procent siły hasła to opinia podana z dokładnością do dwóch miejsc po przecinku.
Kiedy strona mówi ci, że twoje hasło jest „w 92% bezpieczne”, nasuwa się oczywiste pytanie: 92% czego? Gdzie jest to 100%? Nie ma go. Nikt nigdy nie opublikował hasła doskonałego, do którego mierzy się całą resztę. Ta liczba pochodzi z przelicznika, który ktoś naprędce wymyślił we wtorek — tyle punktów za wielką literę, tyle za znak specjalny — a jej jedyne prawdziwe zadanie to zapalić zielony pasek, żebyś poszedł dalej.
Bity natomiast zawsze znaczą dokładnie to samo. I znaczą coś, czego da się użyć.
Bit to pytanie na tak albo nie
Cała idea mieści się w jednym zdaniu: każdy bit podwaja liczbę prób potrzebnych komuś, kto nie wie o tobie nic.
Jeden bit to dwie możliwości. Dwa bity to cztery. Trzy — osiem. Dziesięć bitów to 1024, a dwadzieścia bitów to nieco ponad milion. Ta liczba nie rośnie, ona się podwaja, a podwajanie jest tym, co strąca intuicję w przepaść.
Dlatego zdanie „40 bitów jest dwa razy lepsze niż 20” jest fałszywe w sposób niemal komiczny. Między 20 a 40 bitami jest dwadzieścia podwojeń, czyli współczynnik 2²⁰: 40 bitów nie jest dwa razy większe od 20, jest milion razy większe. A 60 bitów nie jest trzy razy większe od 20: jest milion razy większe od 40. Nasza głowa czyta tę skalę tak, jakby to była linijka, a to nie linijka. To skala taka jak ta od trzęsień ziemi albo od decybeli, gdzie mały kroczek w liczbie to potworny skok w rzeczywistości.
Na tym polega cała przewaga bitu nad procentem. Procent daje ci wrażenie. Bit daje ci ilość pracy.
Skąd wzięło się to słowo
Słowo entropia w odniesieniu do informacji pochodzi z artykułu z 1948 roku: A Mathematical Theory of Communication autorstwa Claude’a Shannona.
Warto to powiedzieć precyzyjnie, bo bywa cytowane błędnie: Shannon nie myślał o hasłach. Nie istniały wtedy komputerowe hasła warte wzmianki. Pracował w Bell Labs nad zupełnie innym problemem — ile informacji naprawdę przenosi wiadomość i jak bardzo można ją skompresować, zanim się rozsypie — i potrzebował zmierzyć coś nieuchwytnego: niepewność tego, kto siedzi po drugiej stronie.
Jego odkrycie, mówiąc grubo, brzmi tak: informacja i zaskoczenie to jedno i to samo. Wiadomość, którą już znałeś, nie informuje cię o niczym. Wiadomość niemożliwa do przewidzenia informuje cię ogromnie. Entropia mierzy, ile zaskoczenia jest w źródle, które produkuje wiadomości, i mierzy się ją w bitach.
To, że przydaje się to do haseł, jest niemal szczęśliwym przypadkiem. Hasło jest dokładnie tym: wiadomością, której nie da się przewidzieć.
Zamek szyfrowy z bębenkami
Oto jedyny wzór w tym artykule i obiecuję, że nic za niego nie płacisz:
H = L × log₂(N)
Zapomnij na chwilę o logarytmie i pomyśl o jednym z tych rowerowych zamków szyfrowych z obracanymi bębenkami. Masz dwa sposoby, żeby utrudnić życie temu, kto chce go otworzyć:
- Dodać więcej bębenków. To jest długość (
L): ile znaków ma twoje hasło. - Umieścić więcej symboli na każdym bębenku. To jest alfabet (
N): czy każdy bębenek ma tylko dziesięć cyfr, czy 26 liter, czy litery, cyfry i znaki.
Logarytm robi tylko jedną rzecz: tłumaczy „ile symboli ma jeden bębenek” na „ile bitów wnosi ten bębenek”. Bębenek z 26 literami wnosi około 4,7 bita. Bębenek z 95 drukowalnymi znakami z klawiatury wnosi około 6,6.
I tu jest cały dowcip. Przyjrzyj się, gdzie we wzorze siedzi każda z tych rzeczy. Alfabet jest w środku logarytmu, zgnieciony; długość jest na zewnątrz i mnoży.
Prawie czterokrotne zwiększenie liczby symboli na bębenku — z 26 liter do 95
znaków — kupuje ci mniej niż dwa bity na bębenek. Dołożenie jednego bębenka kupuje
ci całe log₂(N), i jeszcze raz, i jeszcze, i jeszcze. Dlatego dwanaście małych
liter i nic więcej (jakieś 56 bitów) wygrywa z ośmioma znakami z wielką literą,
cyfrą i symbolem, których domagają się formularze (jakieś 53). P@ssw0rd
przegrywa z poprawnykonbateriazszywka i nawet nie jest blisko.
NIST w swoim SP 800-63B doszedł w to samo miejsce inną drogą: wyrzucił za burtę reguły składania hasła — jedna wielka litera, jedna cyfra, jeden symbol — i został przy długości oraz przy sprawdzaniu hasła na listach wycieków. Warto nie wkładać mu w usta tego, czego nie mówi: jego argument nie jest tym o wzorze, tylko taki, że zmuszanie ludzi do wciśnięcia symbolu nie czyni ich nieprzewidywalnymi, czyni ich przewidywalnymi w inny sposób. Sam dokument zresztą nie ufa szacowaniu entropii hasła wymyślonego przez człowieka. Dwa różne rozumowania, ten sam wniosek. Obowiązkowa złożoność pracuje w środku logarytmu. Długość pracuje na zewnątrz.
Drobny druk, którego prawie nikt nie czyta
Jest tu pułapka i to najuczciwsza część całej sprawy: entropia nie mierzy twojego hasła, mierzy proces, który je stworzył.
4$Kp!9zQ nie ma tych 53 bitów dlatego, że wygląda trudno. Ma je wtedy — i tylko
wtedy — kiedy wyszło z prawdziwego losowania spośród 95 klawiszy. Jeśli napisałeś
je sam, starając się wyglądać na losowego, wzór nie ma zastosowania: ty nie jesteś
losowaniem. Wielką literę stawiasz na początku, cyfrę na końcu, a symbolem jest
!. Ten, kto cię atakuje, nie sprawdza 95 opcji na każdej pozycji: sprawdza
najpierw te, które robią ludzie.
Stąd bierze się niewygodna asymetria bezpieczeństwa haseł. Entropia to sufit, a nie podłoga. Jeśli generuje ją maszyna, sufit jest prawdziwy. Jeśli wybierasz je ty, wiesz tylko tyle, że jesteś poniżej — i nie wiesz, o ile.
Dlatego są dwa narzędzia, a nie jedno. Generator losuje naprawdę i dlatego
może pokazać ci bity z poważną miną: wie, ile ma bębenków (L), wie, ile symboli
ma każdy z nich (N), i wykonuje mnożenie na twoich oczach. Kiedy przesuwasz
suwak i widzisz rosnącą liczbę, patrzysz na L przy pracy. Narzędzie
sprawdzające nie może natomiast zrobić tego samego z hasłem,
które już istnieje: nie ma pojęcia, jak ono powstało, więc robi jedyną rozsądną
rzecz — szuka go w słownikach, imionach i wzorcach klawiatury i zakłada
najgorsze.
Co z tego wynieść
Trzy zdania:
- Bit to podwojenie. Dziesięć bitów więcej to tysiąc razy więcej pracy; dwadzieścia bitów więcej — milion.
- Długość mnoży, alfabet ledwie dodaje. Dorzucenie słowa jest warte więcej niż dorzucenie wykrzyknika.
- Bity są warte tyle, ile prawdziwa losowość. Maszyna może je obiecać. Ty, pisząc ręcznie, nie.
Shannon szukał odpowiedzi na pytanie, ile zaskoczenia mieści się w wiadomości. Siedemdziesiąt kilka lat później okazuje się, że było to dokładnie właściwe pytanie do hasła: nie czy wygląda skomplikowanie, tylko ile zaskoczenia niesie w środku dla kogoś, kto nie zna cię w ogóle.
Źródła: C. E. Shannon, „A Mathematical Theory of Communication”, Bell System Technical Journal, 1948 · NIST SP 800-63B, Digital Identity Guidelines (Authentication and Lifecycle Management) · generator password.es, który oblicza H = L × log₂(N) i pokazuje L, N oraz wynikowe bity.