Открыть сервис

Энтропия пароля

Энтропия пароля — это мера неопределённости (случайности) пароля, выраженная в битах. Она количественно оценивает, насколько сложно угадать пароль методом полного перебора (brute force) или с использованием статистических атак. Чем выше энтропия, тем большее количество попыток требуется злоумышленнику для подбора пароля, и тем выше его криптостойкость.

Определение и математическая основа

Энтропия пароля основывается на понятии информационной энтропии, введённом Клодом Шенноном в 1948 году. Для пароля, состоящего из символов, выбираемых независимо и равновероятно из заданного алфавита, энтропия вычисляется по формуле:

\[ H = L \cdot \log_2 N \]

где:

  • \(H\) — энтропия в битах;
  • \(L\) — длина пароля (количество символов);
  • \(N\) — размер алфавита (количество возможных символов).

Например, для пароля длиной 8 символов, состоящего только из строчных латинских букв (26 символов), энтропия составит \(8 \cdot \log_2 26 \approx 8 \cdot 4,7 = 37,6\) бит. Это означает, что в среднем злоумышленнику потребуется \(2^{37,6}\) попыток для полного перебора.

Формула предполагает идеальную случайность выбора символов. На практике реальная энтропия часто ниже из-за неслучайных закономерностей (использование слов, дат, имён, повторяющихся символов).

Факторы, влияющие на энтропию

Размер алфавита

Чем больше различных символов разрешено использовать, тем выше энтропия на один символ. Типичные алфавиты:

  • Только цифры (0–9): \(N = 10\) (3,32 бита на символ).
  • Строчные латинские буквы: \(N = 26\) (4,7 бита).
  • Строчные и прописные латинские буквы: \(N = 52\) (5,7 бита).
  • Буквы, цифры и специальные символы (например, !@#$%^&*): \(N = 95\) (6,57 бита).

Длина пароля

Энтропия растёт линейно с увеличением длины. Удвоение длины пароля удваивает энтропию (при фиксированном алфавите). Например, пароль из 12 символов с алфавитом из 95 символов имеет энтропию \(12 \cdot 6,57 \approx 78,8\) бит.

Случайность выбора

Если пароль составлен из осмысленных слов (например, «password123») или содержит предсказуемые последовательности («qwerty», «123456»), его реальная энтропия значительно ниже расчётной. Для оценки таких паролей применяются эмпирические модели, учитывающие частоту встречаемости слов и паттернов.

Классификация уровней энтропии

В криптографии и информационной безопасности принято выделять следующие пороговые значения энтропии:

  • Менее 30 бит — очень низкая стойкость. Пароль может быть подобран за секунды или минуты на обычном компьютере. Пример: «123456» (энтропия около 19 бит).
  • 30–50 бит — низкая стойкость. Подходит для нечувствительных данных, но легко взламывается при атаке по словарю или перебору средней мощности.
  • 50–70 бит — средняя стойкость. Приемлемо для большинства онлайн-сервисов, если не используется атака с помощью специализированного оборудования (GPU-кластеры).
  • 70–100 бит — высокая стойкость. Рекомендуется для критически важных аккаунтов (банкинг, электронная почта, криптокошельки). Подбор на современных GPU может занять годы или десятилетия.
  • Более 100 бит — очень высокая стойкость. Практически не поддаётся полному перебору даже при использовании суперкомпьютеров.

Методы оценки энтропии

Теоретическая оценка (максимальная)

Используется формула Шеннона при условии идеальной случайности. Применяется для оценки паролей, сгенерированных автоматически (например, менеджерами паролей).

Эмпирическая оценка

Учитывает реальные вероятности появления символов и паттернов. Например, буква «e» в английском языке встречается чаще, чем «z», а последовательность «qwerty» — гораздо чаще, чем случайный набор. Для оценки используются:

  • Статистические модели (N-граммы, марковские цепи).
  • Словари распространённых паролей (RockYou, Have I Been Pwned).
  • Алгоритмы машинного обучения (нейросетевые модели, такие как PassGAN).

Инструменты для расчёта

Существуют онлайн-калькуляторы энтропии пароля (например, от компании KeePass или на сайтах информационной безопасности). Они учитывают длину, используемые наборы символов и иногда — проверку по словарям.

Практическое применение

Рекомендации по созданию паролей

  • Длина не менее 12–16 символов — основной фактор стойкости.
  • Использование всех четырёх типов символов (строчные, прописные, цифры, спецсимволы) — увеличивает алфавит.
  • Избегание осмысленных слов, дат, имён — снижает риск словарных атак.
  • Генерация случайных паролей с помощью менеджеров паролей (например, KeePass, Bitwarden, 1Password) — обеспечивает максимальную энтропию.

Оценка стойкости в системах

Многие сервисы (Google, Microsoft, Apple) при регистрации показывают индикатор «надёжности пароля», основанный на оценке энтропии. Однако такие индикаторы часто упрощены и могут не учитывать сложные паттерны.

Критика и ограничения

Энтропия пароля — лишь один из факторов безопасности. Даже пароль с высокой энтропией может быть скомпрометирован при:

  • Фишинговых атаках (пользователь сам вводит пароль на поддельном сайте).
  • Перехвате трафика (если соединение не защищено HTTPS).
  • Утечке базы данных сервиса (если пароли хранятся в открытом виде или с использованием слабого хеширования).
  • Использовании одного пароля на нескольких сайтах (компрометация одного аккаунта ведёт к компрометации других).

Альтернативные подходы

Парольные фразы (passphrases)

Состоят из нескольких случайных слов (например, «правильный-скрепка-батарейка-лошадь»). Энтропия оценивается по формуле: \(H = \log_2 (W^K)\), где \(W\) — размер словаря, \(K\) — количество слов. При \(W = 7776\) (стандартный словарь Diceware) и \(K = 4\) энтропия составляет около 51,6 бит. Такие фразы легче запоминаются, но длиннее.

Биометрическая аутентификация

Не заменяет пароли, а дополняет их. Биометрические данные (отпечатки пальцев, лицо) не являются секретом и не могут быть изменены при компрометации.

Многофакторная аутентификация (MFA)

Использование второго фактора (одноразовый код, аппаратный ключ) значительно повышает безопасность, даже если энтропия пароля невысока.

Интересные факты

  • В 2012 году компания SplashData опубликовала список худших паролей года, в который вошли «password», «123456», «12345678» и «qwerty». Энтропия таких паролей не превышает 20–25 бит.
  • Согласно исследованию Национального института стандартов и технологий США (NIST) 2017 года, рекомендуется отказаться от требований к обязательной смене паролей каждые 90 дней, так как это приводит к созданию слабых, предсказуемых последовательностей.
  • Самый длинный известный пароль, использованный в реальной атаке, состоял из 95 символов и был сгенерирован случайным образом (энтропия около 620 бит).

Источники

  • Shannon, C. E. (1948). «A Mathematical Theory of Communication». Bell System Technical Journal.
  • National Institute of Standards and Technology (NIST). (2017). «Digital Identity Guidelines» (SP 800-63B).
  • Bonneau, J. (2012). «The Science of Guessing: Analyzing an Anonymized Corpus of 70 Million Passwords». IEEE Symposium on Security and Privacy.
  • Florencio, D., Herley, C. (2007). «A Large-Scale Study of Web Password Habits». Proceedings of the 16th International Conference on World Wide Web.
  • KeePass Password Safe. (2024). «Password Quality Estimation». KeePass Documentation.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →