Czym są bity entropii i dlaczego nie dajemy ci procentów

Opublikowano autor David Carrero

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.

← Wróć do bloga