Jak działa passphrase.guru
Spojrzenie pod maskę: jak wczytywane są listy słów, jak wybierane są losowe słowa i znaki, jak łączone są różne języki i jak obliczana jest entropia — wszystko w przeglądarce.
Jak wczytywane są listy słów
Każdy obsługiwany język ma starannie dobraną listę słów dołączoną do witryny. Gdy wybierzesz jeden lub kilka języków, generator wczytuje te listy w przeglądarce i buduje jedną połączoną pulę słów-kandydatów. Listy faworyzują częste, łatwe do wpisania słowa i unikają niemal-duplikatów, więc sekrety pozostają zarazem silne i czytelne.
Jak wybierane są losowe słowa
Aby wybrać słowo, generator prosi Web Crypto API o losowe bajty i odwzorowuje je na listę za pomocą próbkowania odrzucającego — odrzuca wartości, które wypadłyby poza dokładną wielokrotność rozmiaru listy, więc żadne słowo nie jest nawet odrobinę bardziej prawdopodobne niż inne. Pozwala to uniknąć subtelnego obciążenia, które wprowadziłaby naiwna „losowa liczba modulo długość listy”.
Jak łączone są różne języki
Wybranie kilku języków scala ich listy w jedną pulę. Generator pobiera następnie każde słowo z tej połączonej puli, więc jedno hasło frazowe może mieszać języki. Większa pula oznacza wyższą entropię na słowo, dlatego wielojęzyczne hasła frazowe mogą być silniejsze przy tej samej liczbie słów.
Jak obsługiwane są zduplikowane słowa
Niektóre słowa występują w więcej niż jednym języku. Generator odduplikowuje połączoną pulę, tak by każde odrębne słowo istniało w niej raz, i oblicza entropię na podstawie tego odduplikowanego rozmiaru. Dzięki temu szacunek siły pozostaje uczciwy — nigdy nie zostaje Ci przypisana różnorodność, której naprawdę nie ma.
Jak działają separatory i wielkość liter
Po wybraniu słów możesz połączyć je separatorem (łącznik, spacja, kropka lub brak) i zastosować wielkość liter (brak, pierwsza litera lub losowa). To wybory formatowania służące czytelności i spełnieniu reguł witryn. Dodają niewiele entropii w porównaniu z dodaniem słowa, więc narzędzie liczy je ostrożnie i podaje Ci rzeczywistą wartość.
Jak obliczana jest entropia
Dla hasła frazowego entropia to liczba słów pomnożona przez log2(rozmiar puli); dla hasła to długość pomnożona przez log2(rozmiar zestawu znaków). Ponieważ narzędzie kontroluje wybór, są to wartości dokładne, a nie szacunki. Opcjonalne dodatki, takie jak dołączona cyfra i symbol, są dodawane do sumy w ten sam pryncypialny sposób.
Dlaczego lokalne generowanie ma znaczenie
Wykonywanie tego wszystkiego w przeglądarce oznacza, że sekret powstaje na Twoim urządzeniu i nigdy nie jest nigdzie wysyłany. Nie musisz ufać, że serwer go odrzuci, bo serwer nigdy go nie widzi. To podstawowa właściwość prywatności tego narzędzia i dlatego generatory działają dalej, nawet jeśli przejdziesz w tryb offline po wczytaniu strony.
Często zadawane pytania
Skąd pochodzą listy słów?
Każdy język jest dostarczany ze starannie dobraną listą dołączoną do witryny, faworyzującą częste, łatwe do wpisania słowa. Atrybucja i licencje są wymienione na stronach prywatności/noty prawnej.
Dlaczego używać próbkowania odrzucającego zamiast modulo?
Branie losowej liczby modulo długość listy sprawia, że niektóre pozycje są nieco bardziej prawdopodobne niż inne (obciążenie modulo). Próbkowanie odrzucające odrzuca wartości spoza zakresu, więc każde słowo jest dokładnie jednakowo prawdopodobne.
Czy mieszanie języków naprawdę zwiększa siłę?
Tak, ponieważ powiększa odduplikowaną pulę słów, zwiększając entropię na słowo. Narzędzie liczy rzeczywisty rozmiar połączonej puli, więc wartość pozostaje dokładna.
Czy separatory i wielkość liter zwiększają siłę?
Tylko nieznacznie. Głównie poprawiają czytelność i spełniają reguły witryn. Dodanie jednego losowego słowa więcej zwiększa entropię znacznie bardziej.