Аутентификация
Tarantool Enterprise Edition предоставляет возможность применять дополнительные ограничения для аутентификации пользователей. Например, можно задать минимальное время между попытками аутентификации или отключить доступ для гостевых пользователей.
В приведенной ниже конфигурации для
параметра security.auth_retries установлено
значение 2, что означает, что Tarantool позволяет клиенту
попытаться аутентифицироваться с одним и тем же именем пользователя три
раза. При четвертой попытке применяется задержка аутентификации,
заданная параметром security.auth_delay.
Это означает, что после первой неудачной попытки клиенту нужно подождать 10 секунд.
security:auth_delay: 10auth_retries: 2disable_guest: true
Параметр disable_guest отключает доступ через удаленные соединения для неаутентифицированных пользователей или пользователей guest.
Политика паролей позволяет повысить безопасность базы данных за счет требования использовать надежные пароли, установки максимального срока действия пароля и т. д. При создании нового пользователя с помощью box.schema.user.create или обновлении пароля существующего пользователя с помощью box.schema.user.passwd пароль проверяется на соответствие настроенным параметрам политики паролей.
В примере ниже заданы следующие параметры:
- password_min_length — пароль должен содержать не менее 16 символов.
- password_enforce_lowercase и password_enforce_uppercase — пароль должен содержать строчные и прописные буквы.
- password_enforce_digits и password_enforce_specialchars — пароль должен содержать цифры и хотя бы один специальный символ.
- password_lifetime_days — максимальный срок действия пароля составляет 365 дней.
- password_history_length — новый пароль должен отличаться от трех последних паролей.
security:password_min_length: 16password_enforce_lowercase: truepassword_enforce_uppercase: truepassword_enforce_digits: truepassword_enforce_specialchars: truepassword_lifetime_days: 365password_history_length: 3
По умолчанию Tarantool использует протокол CHAP для
аутентификации пользователей и применяет хеширование SHA-1 к passwords.
Обратите внимание, что CHAP хранит хеши паролей в спейсе _user без соли.
Если злоумышленник получит доступ к базе данных, он может подобрать пароль, например,
используя радужную таблицу.
В Enterprise Edition можно включить аутентификацию PAP с
алгоритмом хеширования SHA256. При использовании PAP пароль солится
уникальной для пользователя солью перед сохранением в базе данных, что
защищает базу данных от подбора пароля с помощью радужной таблицы.
Чтобы включить PAP, задайте параметр security.auth_type следующим образом:
security:auth_type: 'pap-sha256'
Для новых пользователей метод box.schema.user.create генерирует
данные аутентификации с использованием PAP-SHA256. Для существующих пользователей необходимо сбросить пароль
с помощью box.schema.user.passwd,
чтобы использовать новый протокол аутентификации.
В примере ниже показано, как задать протокол аутентификации с помощью
параметра auth_type при подключении к экземпляру
с использованием net.box:
local connection = require('net.box').connect({uri = 'admin:topsecret@127.0.0.1:3301',params = { auth_type = 'pap-sha256',transport = 'ssl',ssl_cert_file = 'certs/server.crt',ssl_key_file = 'certs/server.key' }})
Если протокол аутентификации не указан явно на стороне клиента, клиент
использует протокол, настроенный на сервере с помощью security.auth_type.