Czy powinienem użyć losowego hasła czy frazy hasłowej?+−
Oba są uzasadnione, a wytyczne NIST dotyczące tożsamości cyfrowej z 2024 roku wyraźnie faworyzują długość nad wymuszonymi zasadami złożoności. Losowe hasło skupia więcej entropii na znak, co jest idealne, gdy menedżer haseł zapamięta je za Ciebie. Fraza hasłowa - kilka losowych słów połączonych razem - zamienia nieco entropii na znak na coś, co człowiek może faktycznie zapamiętać i wpisać, co ma znaczenie w przypadku haseł głównych lub czegokolwiek, co wpisujesz z pamięci.
Co właściwie oznaczają bity entropii?+−
Każdy dodatkowy bit entropii podwaja liczbę prób, jakie musiałby wykonać atakujący, aby wypróbować każdą możliwość. Hasło z 40 bitami entropii ma około biliona możliwych kombinacji; to z 80 bitami ma około biliona razy bilion. Wytyczne bezpieczeństwa zazwyczaj uznają 80+ bitów za doskonałe dla wszystkiego, czego nie można zabezpieczyć ograniczeniem prób lub blokadą, jak klucz szyfrowania czy hasło główne menedżera haseł.
Jak obliczany jest szacowany czas złamania?+−
Zakłada atakującego z offline'owym dostępem do skrótu hasła, wykonującego około 10 miliardów prób na sekundę - przybliżony odpowiednik nowoczesnego klastra GPU. Ma na celu przekazanie rzędu wielkości, a nie precyzyjną prognozę: rzeczywisty czas złamania w dużej mierze zależy od algorytmu hashującego używanego przez system docelowy, czego to narzędzie nie może znać.
Dlaczego wykluczane są mylące znaki, takie jak l, 1, I, O i 0?+−
Łatwo je pomylić podczas czytania na głos, pisania odręcznego lub wyświetlania w niektórych czcionkach. Wykluczenie ich zamienia niewielką ilość entropii na hasło mniej podatne na błędy podczas przepisywania z ekranu lub kartki papieru - przydatne w przypadku haseł, które musisz wpisać ręcznie zamiast wklejać z menedżera.
Czy generator losowy mógłby faworyzować niektóre znaki kosztem innych?+−
Nie - wykorzystuje próbkowanie odrzucające (rejection sampling) na bazie crypto.getRandomValues() zamiast prostej operacji modulo. Pobranie losowego bajtu i obliczenie bajt % rozmiarPuli dawałoby znakom znajdującym się bliżej początku puli nieznacznie lepsze szanse za każdym razem, gdy rozmiar puli nie dzieli 256 równo, dlatego generator zamiast tego odrzuca każdą wartość spoza zakresu i losuje ponownie, aż wynik znajdzie się w zakresie dzielącym się równo. Efekt jest taki, że każdy znak ma dokładnie takie samo prawdopodobieństwo wyboru, niezależnie od liczby włączonych typów znaków.
Dlaczego losowe hasło zawsze zawiera co najmniej jeden znak z każdego włączonego przeze mnie typu?+−
Po zbudowaniu puli znaków generator odkłada na bok jeden znak z każdej włączonej przez Ciebie kategorii - wielkie litery, małe litery, cyfry, symbole - zanim wypełni resztę długości z pełnej puli, a następnie tasuje wszystko w losowej kolejności. Gwarantuje to, że Twoje hasło przypadkowo nie okaże się złożone wyłącznie z liter bez cyfry, co ma znaczenie, ponieważ wiele witryn odrzuca hasło, w którym brakuje wymaganego typu znaku, nawet jeśli pula go zawierała. Etap tasowania korzysta z tego samego nieobciążonego losowego wyboru, więc gwarantowane znaki nie trafiają na przewidywalne pozycje.