Spec-Zone .ru
спецификации, руководства, описания, API

6.1.2.6. Плагин Проверки допустимости Пароля

validate_password плагин может использоваться, чтобы протестировать пароли и улучшить безопасность. Этот плагин реализует две возможности:

Например, пароль в виде открытого текста в следующем операторе проверяется. Под политикой паролей значения по умолчанию, которая требует, чтобы пароли были по крайней мере 8 символами долго, пароль слаб, и оператор производит ошибку:

mysql> SET PASSWORD =
        PASSWORD('abc');ERROR 1819 (HY000): Your password does not satisfy the current policyrequirements

Пароли, определенные, поскольку уже, хешированные значения не проверяются, потому что исходное значение пароля не доступно:

mysql> SET PASSWORD =
        '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';Query OK, 0 rows affected (0.01 sec)

Параметры, которые управляют проверкой пароля, доступны как значения системных переменных, имеющих имена формы validate_password_xxx. Эти переменные могут быть изменены, чтобы сконфигурировать проверку пароля; см. Раздел 6.1.2.6.2, "Опции Плагина Проверки допустимости пароля и Переменные".

Три уровня проверки пароля LOW, MEDIUM, и STRONG. Значение по умолчанию MEDIUM; чтобы изменить это, измените значение validate_password_policy. Политики реализуют все более и более строгие тесты пароля. Следующие описания относятся к значениям параметра значения по умолчанию; они могут быть изменены, заменяя соответствующие системные.

Если validate_password плагин не устанавливается, validate_password_xxx системные переменные не доступны, пароли в операторах не проверяются, и VALIDATE_PASSWORD_STRENGTH() всегда возвраты 0. Например, учетные записи могут быть присвоенными паролями короче чем 8 символов.

6.1.2.6.1. Установка Плагина Проверки допустимости пароля

Плагин проверки допустимости пароля называют validate_password. Чтобы быть применимым сервером, сменный объектный файл библиотеки должен быть расположен в каталоге плагина MySQL (каталог, названный plugin_dir системная переменная). В случае необходимости установите значение plugin_dir в сервере запускаются, чтобы сказать серверу расположение сменного каталога.

Чтобы загрузить плагин при запуске сервера, используйте --plugin-load опция, чтобы назвать объектный файл, который содержит плагин. С этим загружающим плагин методом опция должна быть дана каждый раз, когда сервер запускается. Например, вставьте эти строки Ваш my.cnf файл:

[mysqld]plugin-load=validate_password.so

Если у объектных файлов есть суффикс, отличающийся от .so на Вашей системе замените корректным суффиксом (например, .dll на Windows).

Альтернативно, чтобы зарегистрировать плагин во времени выполнения, используйте этот оператор (изменяющий расширение по мере необходимости):

mysql> INSTALL PLUGIN validate_password SONAME
            'validate_password.so';

INSTALL PLUGIN загружает плагин, и также регистрирует это в mysql.plugins таблица, чтобы заставить плагин, который будет загружаться для каждого последующего нормального запуска сервера.

Если плагин был ранее зарегистрирован в INSTALL PLUGIN или загружается --plugin-load, можно использовать --validate-password опция в сервере запускается, чтобы управлять сменной активацией. Например, чтобы загрузить плагин и препятствовать тому, чтобы он был удален во времени выполнения, используйте эти опции:

[mysqld]plugin-load=validate_password.sovalidate-password=FORCE_PLUS_PERMANENT

Если это требуется, чтобы препятствовать тому, чтобы сервер работал без плагина проверки допустимости пароля, использовать --validate-password со значением FORCE или FORCE_PLUS_PERMANENT вынудить запуск сервера перестать работать, если плагин не инициализирует успешно.

Для получения общей информации об установке плагинов, см. Раздел 5.1.8, "Плагины Сервера". Чтобы проверить сменную установку, исследуйте INFORMATION_SCHEMA.PLUGINS таблица или использование SHOW PLUGINS оператор. См. Раздел 5.1.8.2, "Получая информацию о Плагине Сервера".

6.1.2.6.2. Опции Плагина Проверки допустимости пароля и Переменные

Управлять активацией validate_password плагин, используйте эту опцию:

Если validate_password плагин устанавливается, он представляет несколько системных переменных, которые указывают на параметры, которые управляют проверкой пароля:

mysql> SHOW VARIABLES LIKE
            'validate_password%';+--------------------------------------+--------+| Variable_name                        | Value  |+--------------------------------------+--------+| validate_password_dictionary_file    |        || validate_password_length             | 8      || validate_password_mixed_case_count   | 1      || validate_password_number_count       | 1      || validate_password_policy             | MEDIUM || validate_password_special_char_count | 1      |+--------------------------------------+--------+

Чтобы измениться, как пароли проверяются, можно установить любую из этих переменных при запуске сервера, и большинство из них во времени выполнения. Следующий список описывает значение каждой переменной.

  • validate_password_dictionary_file

    Системное Имя переменной validate_password_dictionary_file
    Переменный Контекст Глобальная переменная
    Динамическая Переменная Нет
    Разрешенные Значения
    Ввести file name

    Путь файла словаря, используемого validate_password плагин для того, чтобы проверить пароли. Эта переменная недоступна, если тот плагин не устанавливается.

    По умолчанию у этой переменной есть пустое значение, и проверки словаря не выполняются. Чтобы включить проверкам словаря, следует установить эту переменную в непустое значение. Если файл называют как относительный путь, он интерпретируется относительно каталога серверных данных. Его содержание должно быть нижним регистром, одним словом на строку. Содержание обрабатывается как наличие набора символов utf8. Максимальный разрешенный размер файла составляет 1 МБ.

    Для файла словаря, который будет использоваться во время проверки пароля, политика паролей должна быть установлена в 2 (STRONG); см. описание validate_password_policy системная переменная. Принятие этого является истиной, каждой подстрокой пароля длины 4, до 100 по сравнению со словами в файле словаря. Любое соответствие заставляет пароль быть отклоненным. Сравнения не являются чувствительными к регистру.

    Для VALIDATE_PASSWORD_STRENGTH() пароль проверяется по всем политикам, включая STRONG, таким образом, оценка силы включает проверку словаря независимо от validate_password_policy значение.

    Изменения к файлу словаря, в то время как сервер работает, требуют, чтобы перезапуск для сервера распознал изменения.

  • validate_password_length

    Системное Имя переменной validate_password_length
    Переменный Контекст Глобальная переменная
    Динамическая Переменная Да
    Разрешенные Значения
    Ввести numeric
    Значение по умолчанию 8
    Минимальное Значение 0

    Минимальное число символов, что пароли, проверенные validate_password плагин должен иметь. Эта переменная недоступна, если тот плагин не устанавливается.

    validate_password_length минимальное значение является функцией нескольких других связанных системных переменных. Сервер не будет устанавливать значение меньше чем значение этого выражения:

    validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)

    Если validate_password плагин корректирует значение validate_password_length из-за предыдущего ограничения, это пишет сообщение в журнал ошибок.

  • validate_password_mixed_case_count

    Системное Имя переменной validate_password_mixed_case_count
    Переменный Контекст Глобальная переменная
    Динамическая Переменная Да
    Разрешенные Значения
    Ввести numeric
    Значение по умолчанию 1
    Минимальное Значение 0

    Минимальное число символов нижнего регистра и символов верхнего регистра, что пароли, проверенные validate_password плагин должен иметь, если политика паролей MEDIUM или более сильный. Эта переменная недоступна, если тот плагин не устанавливается.

  • validate_password_number_count

    Системное Имя переменной validate_password_number_count
    Переменный Контекст Глобальная переменная
    Динамическая Переменная Да
    Разрешенные Значения
    Ввести numeric
    Значение по умолчанию 1
    Минимальное Значение 0

    Минимальное число числовых (цифра) символы, что пароли, проверенные validate_password плагин должен иметь, если политика паролей MEDIUM или более сильный. Эта переменная недоступна, если тот плагин не устанавливается.

  • validate_password_policy

    Системное Имя переменной validate_password_policy
    Переменный Контекст Глобальная переменная
    Динамическая Переменная Да
    Разрешенные Значения
    Ввести enumeration
    Значение по умолчанию 1
    Допустимые Значения 0
    1
    2

    Политика паролей, осуществленная validate_password плагин. Эта переменная недоступна, если тот плагин не устанавливается.

    validate_password_policy значение может быть определено, используя числовые значения 0, 1, 2, или соответствующие символьные значения LOW, MEDIUM, STRONG. Следующая таблица описывает тесты, выполняемые для каждой политики. Для теста длины необходимая длина является значением validate_password_length системная переменная. Точно так же необходимые значения для других тестов даются другим validate_password_xxx переменные.

    Политика Выполняемые тесты
    0 или LOW Длина
    1 или MEDIUM Длина; числовой, нижний регистр/верхний регистр, и специальные символы
    2 или STRONG Длина; числовой, нижний регистр/верхний регистр, и специальные символы; dictionaryfile
  • validate_password_special_char_count

    Системное Имя переменной validate_password_special_char_count
    Переменный Контекст Глобальная переменная
    Динамическая Переменная Да
    Разрешенные Значения
    Ввести numeric
    Значение по умолчанию 1
    Минимальное Значение 0

    Минимальное число неалфавитно-цифровых символов, что пароли, проверенные validate_password плагин должен иметь, если политика паролей MEDIUM или более сильный. Эта переменная недоступна, если тот плагин не устанавливается.