Как пользоваться
- Задайте длину с помощью ползунка или числового поля. Для паролей, которые хранятся в менеджере паролей, разумное значение по умолчанию — 16 символов или больше.
- Выберите типы символов: заглавные буквы, строчные буквы, цифры и спецсимволы. Параметр «Использовать все выбранные типы» включён по умолчанию: в каждом пароле будет хотя бы один символ каждого типа.
- При необходимости включите «Исключить похожие символы» (например, l, 1 и O) или «Исключить неоднозначные спецсимволы», а отдельные символы, которые не принимает сайт, укажите в поле «Исключить символы».
- Нажмите «Сгенерировать», проверьте оценку надёжности и энтропию, а затем скопируйте один пароль или нажмите «Копировать всё».
Что делает пароль надёжным
Надёжность случайно сгенерированного пароля измеряется энтропией: length × log2(pool size) бит, где length — длина пароля, а pool size — размер набора символов, из которого он составляется. Каждый дополнительный бит вдвое увеличивает число попыток, необходимых для подбора. Длина умножает энтропию, а более широкий набор символов прибавляет на каждый символ совсем немного, поэтому длина важнее: у 16-символьного пароля из строчных букв примерно в 11 миллионов раз больше вариантов, чем у 8-символьного, в котором смешаны все четыре типа.
| Длина | Символы | Размер набора | Энтропия |
|---|---|---|---|
| 4 | Цифры (PIN-код) | 10 | 13,3 бита |
| 8 | Строчные буквы | 26 | 37,6 бита |
| 8 | Все четыре типа | 89 | 51,8 бита |
| 12 | Буквы и цифры | 62 | 71,5 бита |
| 16 | Строчные буквы | 26 | 75,2 бита |
| 16 | Все четыре типа | 89 | 103,6 бита |
| 20 | Все четыре типа | 89 | 129,5 бита |
Все четыре типа дают здесь набор из 89 символов: 26 + 26 + 10 + 27 спецсимволов. Инструмент показывает энтропию, округлённую вниз до целого числа бит. Эти цифры верны только для случайных паролей: у пароля, придуманного человеком, энтропия гораздо ниже, чем можно предположить по его длине.
Что рекомендует NIST SP 800-63B
NIST SP 800-63B — федеральное руководство США по цифровой аутентификации — адресовано сервисам, которые проверяют пароли. Согласно его текущей редакции, SP 800-63B-4, такие сервисы:
- обязаны требовать не менее 15 символов, если пароль — единственный фактор аутентификации, или не менее 8 в сочетании с другим фактором, и им следует допускать пароли длиной не менее 64 символов;
- не должны вводить правила состава вроде «одна заглавная буква, одна цифра и один спецсимвол» или периодическую смену пароля, но обязаны требовать смены при признаках компрометации;
- обязаны сверять новые пароли с чёрным списком часто используемых, предсказуемых или скомпрометированных паролей;
- им также следует принимать все печатаемые символы ASCII и пробел и разрешать вставку пароля, чтобы можно было пользоваться менеджерами паролей.
Вывод для пользователей тот же: значение имеют длина и случайность, а предсказуемые замены вроде P@ssw0rd1 не помогают.
Менеджеры паролей и парольные фразы
Повторно используемый пароль часто опаснее короткого: после утечки злоумышленники пробуют попавшие в утечку пары «адрес электронной почты — пароль» на других сайтах (credential stuffing, или подстановка учётных данных). Используйте для каждой учётной записи свой случайный пароль и доверьте их хранение менеджеру паролей: тогда 20-символьный пароль потребует от вас не больше усилий, чем 8-символьный.
Для немногих паролей, которые вы вводите по памяти, например мастер-пароля от менеджера, удобнее парольная фраза — слова, выбранные случайным образом, например с помощью игральных костей и длинного списка слов EFF. Каждое слово из 7776 слов этого списка добавляет около 12,9 бита, поэтому шесть слов дают примерно 77,5 бита. Этот инструмент создаёт пароли из символов, а не парольные фразы; для API-ключей и других машинных секретов используйте генератор случайных строк Base64.
Как работает этот генератор
Пароли создаются на вашем устройстве с помощью crypto.getRandomValues() — криптографически стойкого генератора случайных чисел браузера — и никуда не отправляются и нигде не сохраняются. Простое взятие остатка от деления сделало бы некоторые символы чуть более вероятными, поэтому инструмент использует выборку с отклонением: 32-битные случайные значения, которые больше или равны наибольшему числу, кратному размеру набора символов, отбрасываются и генерируются заново, так что все символы строго равновероятны.
Параметр «Исключить похожие символы» убирает i l 1 L o 0 O; это полезно, когда пароль диктуют вслух или вводят с бумаги, как, например, ключи Wi-Fi. Параметр «Исключить неоднозначные спецсимволы» убирает скобки, косую черту, тильду и , ; : ., с которыми плохо справляются некоторые формы, командные оболочки и файлы конфигурации, и оставляет ! @ # $ % ^ & * - _ = + ?. Оба параметра уменьшают набор символов, поэтому для компенсации добавьте к длине символ-другой.
Часто задаваемые вопросы
Какой длины должен быть пароль?
Не менее 15 символов для учётной записи, защищённой только паролем: это минимум, который NIST SP 800-63B-4 устанавливает для однофакторных паролей. С менеджером паролей 16–24 случайных символа ничего вам не стоят. Для паролей, которые вы часто вводите вручную, подумайте о парольной фразе из пяти-шести случайных слов.
Безопасно ли использовать пароль, сгенерированный на сайте?
crypto.getRandomValues(), а пароли не передаются, не записываются в журналы и не сохраняются. Скопируйте нужный пароль прямо в менеджер паролей.Что означает энтропия в битах?
Это двоичный логарифм числа паролей, которые можно получить с вашими настройками. 80 бит означают 2 в степени 80 возможных паролей, и каждый дополнительный бит вдвое увеличивает объём работы при подборе. Энтропия описывает способ генерации пароля, поэтому применима только к случайным паролям.
Нужно ли регулярно менять пароли?
Не по фиксированному графику. NIST SP 800-63B-4 предписывает сервисам не требовать периодической смены, потому что люди отвечают на это предсказуемыми вариациями. Меняйте пароль, если сервис сообщил об утечке, если пароль обнаружился в слитых базах или если вы подозреваете, что его знает кто-то другой.
Становится ли пароль надёжнее, если требовать все типы символов?
Нет. Этот параметр, включённый по умолчанию, лишь гарантирует, что пароль примут сайты с правилами состава. Инструмент отбрасывает и генерирует заново пароли, в которых нет хотя бы одного из выбранных типов. Это исключает часть комбинаций и немного снижает реальную энтропию, сильнее всего у коротких паролей, поэтому показанное значение — верхняя граница. Повысить надёжность лучше за счёт длины.