zxcvbn. Оценщик надежности пароля#
В исходном дистрибутиве установлено по умолчанию: да.
Связанные компоненты: отсутствуют.
Схема размещения:
ext.
Библиотека zxcvbn предоставляет альтернативный к синтаксическим (например, количество символов, количество заглавных букв) проверкам способ проверки сложности пароля. Основные задачи библиотеки:
отсечь простые для подбора пароли, которые могут пройти классические методы оценки сложности пароля;
принять пароли, сложные для подбора, но которые не пройдут классически методы оценки сложности пароля, а также просты для запоминания.
Библиотека использует:
словарь самых распространенных паролей.
частотный словарь имен и фамилий США.
словарь английского языка.
Библиотеку можно использовать совместно с другими механизмами проверки пароля.
Параметры конфигурации#
Параметр |
Описание |
Тип |
POSIX шаблон |
Ограничение значения |
Значение по умолчанию |
Аналог в pg_pp_policy |
|---|---|---|---|---|---|---|
|
Включение использования библиотеки |
|
|
|
|
|
|
Минимальная оценка сложности пароля |
|
[0-4] |
0-4 |
|
|
Алгоритм работы библиотеки zxcvbn#
Из введенного пароля выделяются словарные слова или популярные парольные фразы. При этом учитываются возможные замены символов (o → 0, A → 4, l → |).
Вычисляется, что может быть известно злоумышленнику, укравшему кеш пароля. Рассматривается комбинация словарных слов и оставшихся символов. Примеры:
rrrrr– нужно перебрать 26 вариантов повторяющейся буквы.correcthorsebatterystaple– нужно перебрать все варианты фраз из 4 слов общей длинной 25 символов.Tr0ub4dour&3– нужно перебрать все варианты слов длинной 10 символов + 2 случайных символа.
Количество попыток делится пополам, для получения среднего количества слов из словаря, которые нужно проверить злоумышленнику.
Вычисляется сложность пароля.
Проверка сложности пароля с использованием библиотеки zxcvbn#
Для проверки сложности пароля требуется включить функциональность проверки пароля и использование библиотеки zxcvbn.
Сложность пароля оценивается количеством итераций, необходимых для подбора пароля:
Сложность |
Описание |
|---|---|
0 |
Слишком простой пароль (< 10^3) |
1 |
Скорее подбираемый (< 10^6) |
2 |
Возможно подбираемый (< 10^8) |
3 |
Надежный пароль (< 10^10) |
4 |
Очень надежный пароль (>= 10^10) |
Минимальная сложность пароля для парольной политики указывается в поле passwordstrengthestimatorscore таблицы pg_pp_policy и в параметре password_policy.password_strength_estimator_score (см. раздел «Парольные политики» документа «Функциональное администрирование»).
Недостатки библиотеки zxcvbn#
К недостаткам библиотеки zxcvbn относятся:
малое количество используемых словарей, общеупотребимых фраз, индексов;
нет обработки опечаток.
Доработка#
Доработка не проводилась.
Ограничения#
Ограничения отсутствуют.
Установка#
Установка не требуется.
Настройка#
Настройка выполняется посредством параметров конфигурации, применяемых для парольных политик.
Использование модуля#
Добавление политики, проверяющей сложность пароля с помощью библиотеки zxcvbn:
Создайте парольную политику с использованием библиотеки:
SELECT * FROM set_role_policies('user1', use_password_strength_estimator('1'), password_strength_estimator_score(1), check_syntax('1'), policy_enable('1'));Задайте пароль пользователю не соответствующий созданной политике:
ALTER USER user1 WITH ENCRYPTED PASSWORD '12345679';При попытке создания пользователя с паролем, не проходящим проверку, выводится сообщение:
ERROR: Syntax check fail: minimum number of special characters for password is 1 Syntax check fail: minimum number of uppercase characters for password is 1Задайте надежный пароль пользователю:
ALTER USER user1 WITH ENCRYPTED PASSWORD '165A!@qwert';Команда проходит успешно
ALTER ROLE
Ссылки на документацию разработчика#
Дополнительно поставляемый модуль zxcvbn: https://github.com/dropbox/zxcvbn.