Как читать величину энтропии
Приведённые ниже полосы — это способ сгруппировать число бит для показа, выбранный так, чтобы отделить пароли, падающие под офлайн-атакой, от тех, что устоят. Указанные рядом последствия вычислены из энтропии, а не назначены.
| Энтропия | Полоса | Что это значит на практике |
|---|---|---|
| Меньше 40 бит | Слабый | Перебирается офлайн-атакой почти мгновенно |
| 40 – 59 бит | Средний | Устоит перед случайной атакой, падёт перед настойчивой офлайн-атакой |
| 60 – 79 бит | Надёжный | За пределами рутинной офлайн-атаки при удачно выбранном хеше |
| 80 бит и выше | Очень надёжный | Слабое место не полный перебор, а повторное использование и фишинг |
- Пароль генерируется в вашем браузере из криптографически стойкого источника случайности платформы и намеренно исключён из всех аналитических и ИИ-функций этого сайта. Он никогда не передаётся.
- NIST SP 800-63B советует проверяющим не требовать смеси типов символов и не принуждать к периодической смене пароля, но требовать смены при наличии признаков компрометации.
Что измеряет энтропия пароля
Энтропия измеряет, сколько равновероятных паролей мог бы породить генератор, и выражается в битах. Генератор, берущий каждый символ независимо из набора в N символов при длине L, даёт энтропию L x log2(N) бит, и каждый дополнительный бит удваивает число вариантов, которые придётся перебрать атакующему.
Энтропия — свойство генератора, а не строки, которую он выдал. У отдельного пароля нет собственной энтропии: вопрос лишь в том, насколько велико было пространство, из которого его взяли. Поэтому паролю, придуманному вами самими, нельзя честно приписать число бит, а сгенерированному — можно.
По этой же причине длина важнее сложности. Добавление одного символа к двадцатисимвольному паролю из набора в 76 символов прибавляет около 6,2 бита; добавление целого нового класса символов к короткому паролю прибавляет заметно меньше. Рекомендации NIST это отражают: SP 800-63B предписывает проверяющим не навязывать композиционные правила, требующие смеси типов символов, и разрешать пароли длиной не менее 64 символов.
Как пользоваться генератором паролей
- Выберите длину. Увеличить её — самое действенное отдельное изменение, которое вы можете сделать.
- Отметьте, какие классы символов включить. Каждый расширяет набор и тем самым повышает энтропию на символ.
- Исключите похожие символы, если пароль будут читать вслух или переписывать от руки: вы разменяете немного энтропии на меньшее число ошибок при переносе.
- Прочитайте величину энтропии. Это честная мера стойкости; число лет на перебор — то же самое число, выраженное как срок.
- Храните пароль в менеджере паролей, а не используйте повторно. Повторное использование обесценивает любую энтропию.
Формула, по которой считается энтропия
Каждый символ берётся независимо и равномерно из набора, поэтому число возможных паролей равно размеру набора в степени длины. Энтропия — двоичный логарифм этого числа.
Оценка времени предполагает офлайн-атаку на быструю, плохо защищённую хеш-функцию со скоростью триллион попыток в секунду и показывает ожидаемое время перебора половины пространства. Это иллюстрация масштаба, а не прогноз: правильно растянутый хеш пароля атакуется на порядки медленнее, а утёкший открытым текстом пароль не требует времени вовсе.
Частые ошибки
- Добавлять класс символов вместо длины. Длина поднимает энтропию значительно быстрее.
- Использовать надёжный пароль повторно на разных сайтах. Утечка у одной службы тогда компрометирует все, какой бы ни была энтропия.
- Подменять символы в знакомом слове, записывая 'P@ssw0rd' вместо 'password'. Программы взлома применяют ровно эти подстановки.
- Принимать вердикт индикатора надёжности о придуманном вами пароле за измерение энтропии. Энтропия описывает генератор, а не строку.
- Менять пароли по расписанию ради самого расписания, против чего NIST и предостерегает; меняйте при признаках компрометации.
Часто задаваемые вопросы
Какой длины должен быть пароль?
NIST SP 800-63B задаёт нижнюю границу в 8 символов для пароля, выбранного пользователем, и требует от проверяющих допускать не менее 64. Для сгенерированного пароля длина — самый значимый рычаг: при наборе в 76 символов каждый дополнительный символ прибавляет около 6,2 бита энтропии, удваивая пространство поиска примерно с каждым символом.
Что такое энтропия пароля в битах?
Это двоичный логарифм числа паролей, которые мог бы породить генератор: длина x log2(размер набора). Двадцатисимвольный пароль из набора в 76 символов несёт 20 x log2(76) = 125 бит. Каждый лишний бит удваивает число вариантов, которые придётся проверить атакующему.
Делает ли смешение типов символов пароль надёжнее?
Оно расширяет набор и потому повышает энтропию на символ — но заметно меньше, чем это делает длина, и NIST SP 800-63B прямо советует проверяющим не вводить композиционные правила, требующие таких смесей. Длинная парольная фраза из одного класса лучше короткого пароля из четырёх.
Передаётся ли пароль куда-либо?
Нет. Он генерируется в вашем браузере из криптографически стойкого источника случайности операционной системы, и этот калькулятор специально исключён из публикации результатов, питающей прочие функции сайта, поэтому пароль никогда не передаётся и не записывается в журнал.
Следует ли регулярно менять пароли?
NIST SP 800-63B не рекомендует произвольную периодическую смену на том основании, что она подталкивает людей к предсказуемым вариациям. Смена требуется при наличии признаков компрометации учётных данных. Уникальные пароли для каждого сайта, хранимые в менеджере паролей, приносят больше пользы, чем расписание ротации.
Источники
- Grassi PA, Garcia ME, Fenton JL. NIST Special Publication 800-63B: Digital Identity Guidelines — Authentication and Lifecycle Management. National Institute of Standards and Technology, 2017 (with subsequent errata). Section 5.1.1 on memorized secrets.
- Shannon CE. A Mathematical Theory of Communication. Bell System Technical Journal 1948; 27(3): 379-423 — entropy as a measure of uncertainty.
- World Wide Web Consortium. Web Cryptography API — Crypto.getRandomValues(), the cryptographically strong random source used here. w3.org.
- National Cyber Security Centre (UK). Password policy: updating your approach. ncsc.gov.uk.