F.28. passwordcheck — проверка надежности пароля#
F.28. passwordcheck — проверка надежности пароля #
Модуль passwordcheck
проверяет пароли пользователей
каждый раз, когда они устанавливаются с помощью
CREATE ROLE или
ALTER ROLE.
Если пароль считается слишком слабым, он будет отклонен и
команда завершится с ошибкой.
Чтобы включить этот модуль, добавьте '$libdir/passwordcheck'
в shared_preload_libraries в postgresql.conf
, затем перезапустите сервер.
Вы можете адаптировать этот модуль под свои нужды, изменив исходный код.
Например, вы можете использовать CrackLib для проверки паролей - для этого достаточно раскомментировать две строки в Makefile
и пересобрать модуль. (Мы не можем включить CrackLib по умолчанию по причинам лицензии).
Без CrackLib модуль применяет несколько простых правил для проверки надежности пароля, которые вы можете изменить или расширить по своему усмотрению.
Предостережение
Чтобы предотвратить отправку незашифрованных паролей по сети, запись в журнал сервера или кражу администратором базы данных, Tantor BE позволяет пользователю предоставить предварительно зашифрованные пароли. Многие клиентские программы используют эту функциональность и шифруют пароль перед отправкой на сервер.
Это ограничивает полезность модуля passwordcheck
,
потому что в этом случае он может только попытаться угадать пароль.
По этой причине passwordcheck
не рекомендуется,
если ваши требования к безопасности высоки.
Более безопасно использовать внешний метод аутентификации, такой как GSSAPI
(см. Глава 19) вместо использования
паролей в базе данных.
Альтернативно, вы можете изменить passwordcheck
так, чтобы отклонять предварительно зашифрованные пароли, но принудительное установление паролей пользователями в открытом виде несет свои собственные риски для безопасности.