Длина важнее сложности
Длинный пароль из небольшого алфавита обычно надёжнее короткого, набитого
спецсимволами. Энтропия равна длина × log₂(размер алфавита), поэтому каждый
дополнительный символ добавляет фиксированное число бит, а добавление класса
символов — всё меньшую величину. Переход с 12 символов на 20 даёт гораздо
больше, чем добавление пунктуации к 12-символьному паролю, — и его проще вставить.
Что означает число энтропии
Биты в строке состояния описывают этот генератор, а не пароль, придуманный человеком. Это двоичный логарифм количества равновероятных паролей, которые могут получиться при текущих настройках:
| Бит | Примерно соответствует | Разумно для | | --- | --- | --- | | 40 | Фраза из 4 слов небольшого словаря | Ничего важного | | 60 | 10 случайных букв и цифр | Аккаунт с ограничением попыток | | 90 | 14 случайных букв и цифр | Запись в менеджере паролей | | 128 | 20 случайных букв и цифр | Мастер-ключ или пароль шифрования |
«P@ssw0rd!» — девять символов и стойкость примерно как у двухбуквенного слова, потому что подстановки известны атакующим. Именно поэтому пароли надо генерировать, а не сочинять.
Где им место
Генерируйте по одному на аккаунт и храните в менеджере паролей. Повторное использование — та ошибка, из-за которой на практике и происходят взломы: одна утёкшая база превращает один слабый пароль в доступ ко всему, где он повторён. Генератор решает только половину задачи; вторая половина — место для хранения.
Вопросы
Случайность действительно криптостойкая?+
Да. Используется crypto.getRandomValues — криптографически стойкий генератор браузера, а каждый символ выбирается методом отбраковки, чтобы ни один не был вероятнее другого. Math.random() не применяется нигде: он предсказуем по предыдущему выводу и не годится для того, что кто-то будет считать секретом.
Пароль покидает браузер?+
Нет. Он создаётся после загрузки страницы и никуда не отправляется. По этой же причине пароля нет в HTML страницы: пароль в серверном ответе осел бы в кеше каждого прокси между сервером и вами.
Сколько бит энтропии нужно?+
Для аккаунта с ограничением попыток входа 60 бит более чем достаточно. Для того, что можно перебирать офлайн — мастер-пароль менеджера, ключ шифрования диска, пароль от архива с бэкапом — стоит целиться в 90 бит и выше. Строка состояния показывает цифру, чтобы решать, а не угадывать.
Что убирает опция «без похожих символов»?+
Символы, которые трудно различить при чтении или ручном переписывании: 0 и O, 1 и l и I, а также несколько кавычек и точек. Алфавит становится короче, поэтому энтропия немного падает — добавьте пару символов длины, чтобы сохранить прежнюю стойкость.
Может, лучше парольная фраза?+
Для всего, что приходится вводить по памяти, — да. Четыре-пять случайных слов набрать проще, чем шестнадцать случайных символов, а энтропия сопоставима — но только если слова выбрала машина случайно. Фраза, придуманная вами, гораздо слабее, чем кажется.