Duże, małe litery, cyfry, korzeń mandragory i szczypta soli, czyli przepis na silne hasło!

7 minut

Pewnie każdy z nas pomyślał kiedyś:

    • nikt nie odgadnie mojego hasła, bo stworzyłem je w oparciu o bardzo osobistą dla mnie informację!
    • moje hasło jest krótkie, ale za to jest bardzo skomplikowane!
    • moje dane nie mają wartości, nikomu nie jest potrzebny dostęp do mojego konta na Facebook’u.
    • To prawda, używam jednego hasła wszędzie, ale jest ono takie, że nikt go nie odgadnie!

❓ Dlaczego akurat każda z tych czterech myśli jest błędna lub niewłaściwa? 

❓ Czy rzeczywiście Twoje hasło musi mieć 8 znaków, dużą, małą literę, cyfrę i znak specjalny? 

❓ Czy musisz je zmieniać co miesiąc? 

❓ Czy musisz mieć inne hasło do różnych serwisów? ← Akurat na to pytanie odpowiem od razu – TAK, a dlaczego tak jest dowiesz się we wpisie Hasło do telefonu, do banku, do Fejsbuka, do Instagrama, do poczty – ile tego?! Czyli jak je wszystkie spamiętać

Na pozostałe pytania, udzielę Ci odpowiedzi w tym artykule. Będzie zarówno prosto, jak i trochę technicznie. Techniczna sekcja będzie oznaczona takim symbolem 🤓.

Kiedy długość (hasła) ma znaczenie

Dobra, ale zacznijmy od tego, czym jest hasło?

Hasło to przede wszystkim:

    • pierwsza linia obrony przed dostępem osób trzecich do Twoich danych
    • ciąg znaków będący sposobem na umożliwienie Tobie dostępu do danych zapisanych w jakimś systemie, czyli inaczej uwierzytelnienia.

Bardzo upraszczając na przykładzie logowania do poczty e-mail, kiedy wpisujesz swój adres e-mail oraz hasło komunikacja wygląda tak:

Twój komputer >> hej, chcę uzyskać dostęp do tej poczty imienazwisko@twojapoczta.pl

Serwer poczty >> Ok, podaj najpierw hasło

Twój komputer >> tutaj jest hasło dostępu: BardzoTrudneHaslo1!

Serwer poczty >> Ok, to co wpisałeś zgadza się z moją bazą haseł, udzielam Ci dostępu.

Dzieje się magia i Twój komputer uzyskuje dostęp do skrzynki odbiorczej.

Widzisz już zatem, że jeśli nie byłoby hasła, to każdy mógłby mieć dostęp do wszystkiego (ahhh czasy starego internetu…), a tak przynajmniej na tym etapie mamy już pierwszego “ochroniarza”, który mówi “dowodzik poproszę”. 

Ok, po krótkim wstępie przejdźmy do istoty problemu, czyli dlaczego długość (hasła) ma znaczenie. Odpowiedź na to pytanie jest prosta i logiczna, bo… matematyczna. 

Wersja krótka:

Im więcej symboli ma dany ciąg znaków, tym trudniej odgadnąć jest jego rzeczywistą treść, bo musimy wypróbować wszystkie możliwe kombinacje. Innymi słowy, żeby dojść do słowa Haslo123! musimy wypróbować wszystkie możliwe kombinacje zaczynając od a, aa, aaa, aaaa, aaaaa, aaaaaa… i tak dalej. A każda taka operacja wymaga zasobów komputera atakującego.

## Wersja trochę bardziej techniczna (dla nerdów) 🤓 ##

Na pewno słyszałeś/aś kiedyś o rachunku prawdopodobieństwa i algebrze, prawda? No właśnie, to na tym między innymi polega określanie siły hasła. Okay, sprawdźmy to na przykładzie:

Załóżmy, że to jest nasze hasło: Haslo123! Atakujący oczywiście nie widzi naszego hasła, ani nawet jak długie ono jest, musi więc odgadnąć każdy znak.

I teraz spójrz:

    • w łacińskim alfabecie mamy 26 liter, 

co oznacza, że mamy 1 na 26 szans aby odgadnąć co kryje się pod każdym ze znaków. Ale! To prawdopodobieństwo nie widzi różnicy między wielką a małą literą. Zatem, jeśli weźmiemy pod uwagę dużą i małą literę, to prawdopodobieństwo zmienia się i atakujący ma 1 na 52 szans aby odgadnąć co kryje się pod każdym ze znaków

    • mamy 10 cyfr

co oznacza, że atakujący ma 1 na 10 szan aby odgadnąć co kryje się pod każdym z tych znaków

    • znaków specjalnych mamy 33 (w zależności od konfiguracji administratora, ale załóżmy wersję 33)

co oznacza, że atakujący ma 1 na 33 szans aby odgadnąć co kryje się pod każdym z tych znaków.

Te rachunki prawdopodobieństwa oczywiście się sumują, co oznacza, że w powyższym scenariuszu atakujący ma 1 na 95 szans, że odgadnie każdy ze znaków. I tutaj dzieje się właśnie magia, bo:

      • jeśli hasło ma 2 znaki, to atakujący ma 1 na 9025 szans (95×95) aby je odgadnąć
      • jeśli hasło ma 3 znaki, to atakujący ma 1 na 857 375 (95x95x95) szans aby je odgadnąć
      • a jeśli hasło ma 9 znaków (jak w naszym przypadku), to atakujący ma 1 na… 630 249 409 724 609 375 szans! Dużo prawda?

Niestety nie jest to dużo dla współczesnych komputerów, które mogą tyle kombinacji sprawdzić niemal natychmiast. 

## Koniec części technicznej 🤓 ##

I teraz zdradzę Ci tajemnicę, ale musimy być bałdzo, bałdzo cicho…… Atakujący nie odgadują Twoich haseł wpisując każdą kombinację ręcznie!!! 😲😲 Korzystają z komputerów i programów, które robią to w sposób zautomatyzowany. To właśnie te programy sprawdzają miliony milionów haseł niemal natychmiast próbując wszystkich możliwych kombinacji liter i znaków. I to nazywa się atakiem siłowym (z ang. brute force). Więcej o tym (jak mi się napisze) przeczytasz tutaj.
Bardzo ciekawą grafikę, na której widać mniej-więcej ile czasu potrzeba na złamanie hasła metodą brute force jest ta tabela od HiveSystems:

Hasło kociołkiem Panoramixa

Ok, skoro zatem wiesz już, że im dłuższe hasło, tym lepiej, to co powinno ono zawierać? Czy musi posiadać duże i małe litery, znaki specjalne i cyfry?

Odpowiedzią na to jest TAK… ale też nie… [Tu wstaw mem – Well yes, but actually no.]

Pozwól, że wyjaśnię. 

Jak już wiesz, im dłuższe hasło, tym prawdopodobieństwo jego odgadnięcia jest mniejsze. Oznacza to, że jeśli użyjesz hasła zbudowanego wyłącznie z liter, ale będzie ono miało np. 14 znaków, to będzie o wiele trudniejsze do złamania aniżeli 8 znakowe, ale bardzo skomplikowane.

Pewnie zatem zachodzisz w głowę jak stworzyć tak długie hasła?!🤔

I tutaj wchodzę ja, cały na biało 👨‍⚕️,  z odpowiedzią – fraza zabezpieczająca (po angielsku brzmi to fajniej passphrase). Czyli coś jak hasło, ale oparte na całych zdaniach lub wielu losowych słowach, a nie pojedynczych wyrazach. Brzmi zagadkowo? 

Spójrz: 84rd20Trvdn3H45l0& ← to jest potencjalnie trudne, skomplikowane hasło zbudowane z cyfr, liter i znaków specjalnych. Ok, jest trudne do “odgadnięcia”, ale jest też trudne do zapamiętania.

Łatwiejsze do zapamiętania jest na przykład to: HejPieskuPieskuWracajJuzDoLasuHejPieskuPieskuSzkodaTwegoCzasu

Chodzi o to aby zamiast jednego słowa lub przypadkowej zbitki znaków skorzystać z całego zdania, które nam będzie łatwo zapamiętać. Zamiast zdania, możesz też skorzystać z innych metod wykorzystujących różne słowa, jak np. 2., 1., 3. i 7. wyraz kolejnych wierszy piosenki, która siedzi Ci ostatnio w głowie. 

Chodzi zatem o to aby stworzyć swój własny algorytm doboru słów do hasła. Wtedy nie tylko będzie ono bezpieczniejsze w przypadku ataku siłowego, ale także w przypadku ataku słownikowego! Twoje hasło nie zawsze musi być zatem złożone z różnych rzeczy, jak napój studenta – kociołek Panoramixa.

🚫🚫🚫

Nie korzystaj jednak WPROST z tekstów piosenek czy cytatów z filmów, gier, książek. Dlaczego? Dlatego że są one popularne i łatwo wyszukiwalne. Możesz wziąć wers swojej ulubionej piosenki i zmienić w nim kilka słów tak aby dla Ciebie nadal było ono łatwe do zapamiętania, ale nie będzie łatwe do znalezienia czy powiązania w Internetach.

Atak słownikowy to taka próba odgadnięcia haseł, która polega na skorzystaniu z jakiejś bazy haseł lub słów zamiast podstawiania wszystkich możliwych kombinacji liter. Może to być np baza 100.000 najpopularniejszych haseł lub baza haseł które ostatnio wyciekły do sieci. Więcej o tym ataku (jak już się napisze) przeczytasz tutaj.

Jak często je zmieniać?

Przejdźmy zatem do odpowiedzi na ostatnie pytanie – czy muszę zmieniać hasło co 30/60/90/120/x dni?

Wersja krótsza

Odpowiedź: NIE, jeśli masz długie hasło (14+ znaków)

## Wersja trochę bardziej techniczna (dla nerdów) 🤓 ##

Odpowiedź: To zależy. I to zależy od wielu czynników:

1) Czy jest to super skomplikowane hasło;

Im dłuższe hasło, tym rzadziej musisz je zmieniać, bo jak już przeczytałeś/aś w poprzednim rozdziale, niemal nieskończoność zajmie odgadnięcie 14 znakowego hasła metodą siłową.

2) Jak ważny jest dostęp do tego systemu

Do bardziej krytycznych systemów (jak konta bankowe, czy tzw. master-hasło do menedżera haseł, lub inne ważne systemy w pracy) warto regularnie zmieniać hasła aby zmniejszyć atakującym szansę i skrócić czas w trakcie którego mogą przełamać lub odgadnąć Twoje hasło.

3) Czy jesteś paranoikiem (jak ja) i wolisz dmuchać na zimne;

Tego chyba nie muszę tłumaczyć. :v

## Koniec części technicznej 🤓 ##

The end…?

Na zakończenie, podsumowanie najważniejszych zasad:

❗️ stosuj długie hasła – min. 14 znaków;

❗️nie używaj jako haseł słów, które można z Tobą powiązać;

❗️nie używaj jako haseł nazw serwisów;

❗️nie używaj jako haseł słów powszechnie znanych;

❗️nie używaj takich samych ani podobnych haseł (nawet w ramach jednego serwisu);

❗️nie podawaj nigdy, nikomu swojego hasła do jakiegokolwiek serwisu;

❗️korzystaj z generatorów losowych haseł lub jeszcze lepiej, fraz zabezpieczających;

❗️nie idź na łatwiznę w tworzeniu haseł!

Posłowie

Siłę haseł jednak szlag trafi, gdy na szerszą skalę będą wykorzystywane komputery kwantowe. 🙃🙃🙃🙃🙃 Ale o tym w innym odcinku…