Entropia, czyli co sprawia, że hasło jest silne
Entropia mierzy nieprzewidywalność hasła w bitach. Wylicza się ją jako długość hasła pomnożoną przez logarytm dwójkowy z rozmiaru puli znaków. Hasło szesnastoznakowe z pełnej puli 94 znaków drukowalnych ma około 105 bitów, a ośmioznakowe z tej samej puli 52 bity. Każdy dodatkowy bit podwaja liczbę kombinacji, które musi sprawdzić atakujący.
Entropia opisuje sposób powstania hasła, a nie jego wygląd. Ciąg „P@ssw0rd!” wygląda na złożone hasło, ale powstał z jednego słownikowego wyrazu i kilku typowych podstawień liter na cyfry i symbole, więc realna liczba możliwości jest bliska liczbie słów w słowniku. Program łamiący hasła stosuje te podstawienia automatycznie i odgadnie taki ciąg w kilka sekund. Hasło wylosowane z pełnej puli, o tej samej długości, jest miliardy razy mocniejsze, choć wygląda podobnie.
Skąd przeglądarka bierze losowe znaki
Funkcja Math.random zwraca liczby z generatora pseudolosowego zoptymalizowanego pod kątem szybkości, nie bezpieczeństwa. Jego stan wewnętrzny da się odtworzyć z kilku kolejnych wyników. W animacji nie ma to znaczenia, ale przy generowaniu haseł oznacza tyle, że po jednym haśle z sesji można przewidzieć pozostałe.
Tutaj każdy znak pochodzi z crypto.getRandomValues, czyli z generatora kryptograficznego dostarczanego przez system operacyjny. Z tego samego źródła korzystają funkcje kryptograficzne przeglądarki. Algorytm odrzuca przy tym liczby, które zaburzałyby równomierność rozkładu przy sprowadzaniu do rozmiaru puli, i losuje w ich miejsce nowe. Bez tej korekty pierwsze znaki puli wypadałyby odrobinę częściej niż ostatnie. Różnica jest niewielka, ale całkowicie zbędna.
Hasło z wyrazów, czyli kombinacja do zapamiętania
Generator losuje kilka wyrazów z polskiego słownika i łączy je znakiem rozdzielającym. Entropia zależy wyłącznie od liczby wyrazów i rozmiaru słownika. Przy słowniku tysiąca wyrazów jeden wyraz wnosi około 10 bitów, cztery wyrazy dają około 40 bitów, a sześć około 60. Wielka litera na początku każdego wyrazu i cyfra na końcu podnoszą wynik o kilka bitów.
Przewaga tej metody jest praktyczna. Hasło „malina-kotwica-piorun-szafa” da się zapamiętać po dwóch przeczytaniach i podyktować przez telefon bez literowania. Warunek jest jeden i nie wolno go pominąć: wyrazy muszą pochodzić z losowania. Ciąg ułożony samodzielnie ma entropię bliską zeru, ponieważ ludzie sięgają po wyrazy przewidywalnie i te same pierwsze skojarzenia powtarzają się w tysiącach haseł.
Ile czasu zajmuje złamanie hasła metodą brute force
Szacunek zależy od tego, jak zaatakowany serwis przechowuje hasła. Przy szybkiej funkcji skrótu, na przykład niesolonym SHA-256, zestaw kart graficznych sprawdza rzędu biliona kombinacji na sekundę. W takim tempie hasło o 50 bitach entropii pada w kilkadziesiąt minut, hasło o 65 bitach po roku, a hasło o 80 bitach dopiero po czasie liczonym w milionach lat. Stąd próg mocnego hasła przy 75 bitach.
Jeśli serwis stosuje bcrypt albo Argon2 z sensownymi parametrami, tempo ataku spada do kilkudziesięciu tysięcy prób na sekundę, czyli mniej więcej dziesięć milionów razy wolniej. Nie wiesz jednak, jak robi to konkretny serwis, a dowiadujesz się o tym dopiero po wycieku. Dlatego wskaźnik w kolumnie obok zakłada wariant pesymistyczny i przyjmuje, że hasło ma wytrzymać atak na źle zabezpieczoną bazę.
Jak przechowywać hasła do kont online
Mocne hasło działa tylko wtedy, gdy jest unikalne dla jednego serwisu. Najczęstszą przyczyną przejęcia konta jest ponowne użycie tego samego ciągu w kilku miejscach. Baza wycieka z małego forum sprzed lat, a te same dane logowania pasują do skrzynki pocztowej. Menedżer haseł zdejmuje ten problem z głowy, bo zapamiętujesz jedno długie hasło główne, a dla każdego konta trzymasz osobne losowe hasło, którego nie musisz znać.
Haseł nie zapisuj w pliku tekstowym, w notatkach telefonu ani w arkuszu w chmurze. Nie przesyłaj ich pocztą ani komunikatorem, bo wiadomość zostaje w skrzynce nadawcy i odbiorcy na lata. Gdy musisz przekazać komuś hasło, użyj serwisu z jednorazowym odnośnikiem, a login podaj inną drogą.
Czy darmowy generator haseł online jest bezpieczny
Całe ryzyko generatora działającego w sieci sprowadza się do jednego pytania: gdzie powstaje hasło. To narzędzie działa lokalnie w przeglądarce. Serwer Szeruj.pl nie ma technicznej możliwości poznania wyniku, bo losowanie wykonuje się w kodzie strony na Twoim urządzeniu, a to oznacza, że nie przechowujemy haseł, nie odzyskujemy ich po zgubieniu i nie jesteśmy w stanie odtworzyć niczego, co tu powstało.
Sprawdzenie tego zajmuje minutę. Otwórz narzędzia deweloperskie przeglądarki, wejdź na zakładkę z ruchem sieciowym i kliknij „Generuj hasła”. Nie zobaczysz żadnego zapytania do serwera, bo losowanie i wyliczenie entropii dzieją się po stronie klienta. Strona pracuje nawet po odłączeniu komputera od sieci, a wynik traktujemy jak każdą inną daną poufną, na równi z numerem PESEL albo numerem konta.
Hakerzy nie mają w tym układzie czego przechwycić, skoro hasło nie przechodzi przez sieć. Realnym zagrożeniem zostaje samo urządzenie, bo złośliwe oprogramowanie i keylogger widzą wszystko, co wpisujesz, bez względu na to, skąd hasło pochodzi.