„Twoje hasło powinno się składać z co najmniej 8 znaków, posiadać małe i wielkie litery, cyfry oraz znaki specjalne.” Jestem pewien, że takie „zabezpieczenie” wielokrotnie zepsuło Ci humor.

Po części administratorzy mają rację prosząc Cię o utrudnienie sobie (tak, sobie!) życia – najpopularniejsze w Polsce hasła to – wg analizy opisanej na Niebezpiecznik.pl – „123456”, „qwerty” czy „polska”. Dlaczego tak popularne są proste hasła? Cóż, proste hasła są popularne, bo są… proste. Nasz mózg zrobi wszystko, żeby nie komplikować sobie życia, stąd popularność rozwiązań, które są łatwe do zapamiętania. Jak połączyć jedno z drugim? Jak stworzyć hasło, które jest trudne do złamania a jednocześnie jego zapamiętanie nie przemęcza nas za bardzo? Okazuje się, że droga nie wiedzie wcale przez „wielkie i małe litery, cyfry oraz znaki specjalne”. Skąd w ogóle parcie informatyków na stosowanie tych znaków?

Entropia informacyjna

Teoria kryptografii mówi, że siła hasła jest ściśle związana z ilością możliwych kombinacji tego hasła. W 4-cyfrowym kodzie PIN istnieje 10.000 unikalnych kombinacji hasła (ilość wszystkich możliwych cyfr do potęgi ilości znaków w haśle). Jeśli 4 cyfry zamienimy na 4 litery, ilość unikalnych kombinacji rośnie (ilość liter alfabetu do potęgi ilości znaków). Jeśli dodamy wielkie i małe litery, cyfry, znaki specjalne, to poziom entropii informacyjnej (miara siły Twojego hasła) w 4-znakowym haśle jest olbrzymia. Tyle teoria i maszyny. Informatycy dążą do tego, byśmy zbudowali jak najbezpieczniejsze hasło za pomocą jak najmniejszej ilości znaków. Ta najmniejsza ilość znaków („twoje hasło musi mieć 4-16 znaków”) jest ważna dla programisty – do przechowywania długich haseł potrzeba więcej pamięci w bazie danych. Dla użytkownika jest całkowicie nieważna.

O hakerach i dzieweczkach

Które hasło jest łatwiej zapamiętać: H@x00r, czy SzlaDzieweczkaDoLaseczka? To drugie, choć nie wymaga żadnego wysiłku przy zapamiętywaniu, charakteryzuje się dużo wyższym poziomem entropii, niż pierwsze. Nasz mózg nie myśli jak maszyna, dużo lepiej mu zapamiętać nadmiar informacji w kontekście („Litwo, ojczyzno moja…” – ile słów dalej potrafisz wyrecytować?), niż krótką informację, która jest pozbawiona kontekstu (w którym roku urodził się Mickiewicz?). Dużo łatwiej nam zapamiętać, jak dojechać do konkretnego miejsca (przejedziesz koło kościółka, przy uschniętym drzewie skręcisz w piaszczystą drogę), niż wyrwany z kontekstu adres. Jeśli chcesz tworzyć hasła, które są łatwe do zapamiętania, a jednocześnie trudne do złamania, zdaj się na sekwencje, które znasz na pamięć, a nie na komplikowanie sobie życia mnogością znaków użytych w haśle. Tą właśnie drogą poszedł Hristo Bojinov z Uniwersytetu Stanforda, kiedy projektował swój eksperymentalny system kryptograficzny. Jego zespół musiał jednak stawić czoło jeszcze jednemu wyzwaniu…

Jesteś swoim najgorszym wrogiem

Znam ludzi, którzy mają bardzo skomplikowane hasła do różnych usług online, jeszcze bardziej skomplikowane hasła służą do szyfrowania zawartości ich twardego dysku w laptopie… Wyobrażają sobie, że ktoś, kto będzie chciał uzyskać dostęp do ich danych, ukradnie im laptop, podłączy do jakiegoś doskonałej klasy systemu łamiącego szyfr (w zaprojektowanie którego zainwestował mnóstwo czasu i pieniędzy) i będzie zgrzytał zębami, bo złamanie hasła zajmuje tak dużo czasu… Ja mam inne wyobrażenie o łamaniu haseł. Ktoś, kto będzie chciał uzyskać dostęp do mojego laptopa przejdzie się do najbliższego sklepu z artykułami metalowymi, zainwestuje 5 złotych w metalową rurkę i będzie mnie walił nią w kolano tak długo, aż podam mu hasło. Metoda szybsza, tańsza i o niebo bardziej efektywna, prawda? Bo najsłabszym ogniwem w zabezpieczaniu jakichkolwiek danych zawsze jest człowiek. Kevin Mitnick, legendarny hacker, ujął to najdobitniej: „Łamałem ludzi, nie hasła”.

Najlepiej, gdybyś nie znał swojego hasła

Poważnie, nie żartuję z tym tytułem. Najlepszym zabezpieczeniem byłoby takie, którego nie byłbyś w stanie przekazać osobom trzecim nawet pod presją, szantażem czy na torturach. „Nie podam Ci kodu wstępu do laboratorium, bo go nie znam!” Dziś nikt nie uwierzy Jamesowi Bondowi, który tak mówi na przesłuchaniu. Ale czy nie da się tego zrobić? Wspomniany wyżej Hristo Bojinov rzucił się właśnie na rozwiązanie tego problemu. Jego zespół złożony z kryptologów i neuropsychologów postanowił zaprojektować system, który pozwoli użytkownikowi wpisać hasło, ale sam użytkownik nie będzie tego hasła znał ani pamiętał.

Nauka przez zabawę. Wpisywanie hasła przez grę.

Jak to działa? Widziałeś film Karate Kid? Mądry nauczyciel, pan Miyagi, podejmuje się nauczyć Daniela (wymoczkowatego ucznia) karate. Jednak nie ma tam żadnych lekcji w tradycyjnym ujęciu tego słowa – Daniel maluje płot, nosi wodę… A jednak w pewnym momencie okazuje się, że czynności te nauczyły go podstawowych ruchów. Daniel zna karate, choć nie wiedział, kiedy się go nauczył. Proces ten nazywa się implicit learning (przetłumaczyłbym to jako „nauka przy okazji”). Wielu rzeczy uczymy się bezwiednie, powtarzając je wielokrotnie. Im dłużej piszesz na klawiaturze komputera, tym szybciej Ci to idzie. Nazywamy to wprawą. Rzeczy, w których jesteśmy wprawni przestają zajmować naszą uwagę, zaczynają się odbywać mniej lub bardziej automatycznie. Mało tego – jeśli zaczynamy się na tym koncentrować, robimy to gorzej. Zapytaj pianistę, który pomylił się w środku utworu. Zamiast koncentrować się na zagraniu konkretnego akordu, dużo łatwiej cofnąć się, zacząć od początku i pozwolić nawykom przejąć kontrolę – wyjdzie dużo lepiej, płynniej. Ta płynność pokazuje, że utwór masz opanowany. A gdyby utwór właśnie był Twoim hasłem? A system poznawał, że masz je opanowane właśnie po płynności, z jaką je wpisujesz? To właśnie rewolucyjny pomysł, który stoi za badaniami zespołu Bojinova. Zaprojektowali oni grę podobną do Guitar Hero, w której wielokrotnie musisz powtarzać 30-znakową sekwencję złożoną ze znaków S, D, F, J, K oraz L. Entropia takiego hasła (ilość kombinacji to sześć do potęgi trzydziestej) jest dużo większa, niż znakomita część stosowanych dziś zabezpieczeń. Innowacyjność tego rozwiązania polega na tym, że „Twoja” sekwencja w grze jest przeplatana innymi, losowymi sekwencjami. W konsekwencji nie wiesz, która sekwencja jest „Twoja”, a jednocześnie, kiedy musisz zagrać w grę, nieświadomie wykonujesz „swoją” sekwencję z większą wprawą – z płynnością, którą da się zmierzyć.

Zagraj mi hasło

Czy to działa? Działa już dziś. Znam osoby, które nie pamiętają haseł, ale potrafią je wpisać na klawiaturze. Taką wprawę nazywamy pamięcią ruchową. Dołóżmy do tego elementy frajdy (grywalizacja w pełni, prawda?) i warunki, w których nawet pomimo szczerych chęci nie będziesz znać swojego hasła i… mamy dużo lepsze (i przyjemniejsze w obsłudze) zabezpieczenia.