Наличие централизованного и/или локального механизма обеспечения сложности пароля

В AccentOS поддерживается аутентификация пользователей, базирующаяся на локальных механизмах модуля Keystone OpenStack и централизованных механизмах LDAP, в частности MS AD, FreeIPA, OpenLDAP.

Выбор механизма аутентификации

Аутентификация настраивается на локальный или внешний режим работы в Keystone.

  • Внешние централизованные механизмы (LDAP) — предпочтительны при работе в распределенных архитектурах и в организациях, где уже развернут LDAP для минимизации издержек на его поддержку

  • Локальные механизмы (Keystone) — используются для небольших установок или когда по соображениям безопасности необходимо отделить аутентификацию от любых других инструментов

Предупреждение

Абсолютно безопасного метода для сохранения паролей не существует ни в FreeIPA, ни в Keystone, поскольку угрозы проистекают из уязвимостей ОС Linux или Windows и в определенной мере связаны с криптографическими методами, которые являются основным риском при хранении хешей паролей.

Политики паролей в LDAP (на примере FreeIPA)

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

Основные параметры политики паролей FreeIPA

Параметр

Описание

Пример

Максимальный срок действия (--maxlife)

Максимальный срок действия пароля в днях. Значение по умолчанию — 90 дней. Если задано значение 0, срок действия пароля не ограничен.

--maxlife=180

Минимальный срок действия (--minlife)

Минимальный интервал между двумя операциями смены пароля (в часах).

--minlife=1

Размер журнала (--history)

Количество предыдущих паролей, которые нельзя повторно использовать. Если задано значение 0, пользователи могут повторно использовать любой из своих предыдущих паролей.

--history=0

Классы символов (--minclasses)

Минимальное количество различных классов символов в пароле. Значение по умолчанию — 0.

Классы символов:

  • Заглавные латинские буквы

  • Строчные латинские буквы

  • Цифры

  • Специальные символы (запятая, точка, звездочка и др.)

  • Другие символы UTF-8

Примечание

Повтор одного символа три и более раз подряд уменьшает эффективное количество классов на 1. Например:

  • Pa55word — 3 класса символов

  • Pa555word — 2 класса символов (3 − 1 за повтор цифры 5)

--minclasses=0

Минимальная длина (--minlength)

Минимальная длина пароля. Если заданы другие параметры политики, минимальная длина автоматически устанавливается в 6 символов.

--minlength=8

Максимальное количество ошибок (--maxfail)

Число неудачных попыток входа до блокировки учётной записи.

--maxfail=6

Интервал сброса ошибок (--failinterval)

Время (в секундах), после которого счётчик неудачных попыток сбрасывается.

--failinterval=60

Длительность блокировки (--lockouttime)

Время (в секундах), на которое блокируется учётная запись после превышения лимита ошибок.

--lockouttime=600

Преимущества использования LDAP с Kerberos

Преимуществом использования LDAP на основе FreeIPA и MS AD является протокол Kerberos, который реализует функции безопасности пользователей и функции безопасности при хранении, модификации, распространении, администрировании паролей пользователей.

Примечание

  • Современные реализации FreeIPA используют усиленные пароли на базе SPAKE и FAST

  • Kerberos поддерживает работу с несколькими доменами

  • Поддерживаются Kerberos tickets, которые позволяют проводить аутентификацию пользователей непосредственно на требуемых системах и ресурсах

Хранение паролей в FreeIPA

В FreeIPA не хранятся пароли пользователей, а только их хеши:

  • ipaNTHash — NT-хеш пароля пользователя для интеграции с LDAP

  • userPassword — основной атрибут, в котором хранится хеш пароля пользователя, используемый для LDAP-аутентификации

Предупреждение

Если администратор:

  • имеет root-права на сервере FreeIPA

  • владеет паролем от учетной записи Directory Manager

  • имеет возможность читать хеши паролей учетных записей в каталоге LDAP

у него существует возможность с помощью brute force получить информацию о паролях, если будет получен MasterKey и krbPrincipalKey.

Повышение прав до root возможно, если произойдет:

  • получение доступа к учетной записи из группы admins

  • повышение привилегий при помощи изменения HBAC- и Sudo-правил

  • эксплуатация какой-либо уязвимости

Данные ситуации должны четко отслеживаться администраторами LDAP, чтобы исключить компрометацию.

Политики паролей в Keystone OpenStack

При использовании Keystone OpenStack можно (и нужно) независимо друг от друга включать дополнительные функции обеспечения безопасности Keystone в соответствии с корпоративной политикой безопасности.

Хеширование паролей

Keystone использует методы хранения хешей, а не паролей в СУБД, использует современные криптографические методы:

  • bcrypt — используется по умолчанию

  • pbkdf2_sha512 — поддерживается

  • scrypt — поддерживается

Важно

Считается, что sha512_crypt недостаточен для безопасного хеширования паролей для хранения в базе данных. Keystone по умолчанию использует bcrypt, но может обрабатывать scrypt и pbkdf2_sha512 с рядом параметров настройки, если это необходимо.

Все доступные функции применяются только к SQL-серверу драйвера Identity.

Функции безопасности Keystone

Операция

Включить для всех пользователей

Изменить для конкретных пользователей

Принудить пользователя к смене пароля при первом использовании

change_password_upon_first_use: True

ignore_change_password_upon_first_use: True

Настройка срока действия пароля

password_expires_days: <NUM>

ignore_password_expiry: True

Пороговое значение блокировки учетной записи

lockout_failure_attempts: <NUM>

lockout_duration: <NUM>

ignore_lockout_failure_attempts: True

Запретить пользователю менять свой пароль

Н/Д

lock_password: True

Настройка требований к надежности паролей

password_regex: <STRING>

password_regex_description: <STRING>

Н/Д

Отключение неактивных пользователей

disable_user_account_days_inactive: <NUM>

Н/Д

Настройка уникальной истории паролей

unique_last_password_count: <NUM>

minimum_password_age: <NUM>

Н/Д

Ограничения и рекомендации

Keystone, централизованная система управления идентификацией и доступом для OpenStack, предоставляет базовые функции для аутентификации и авторизации. В нем также, как и во FreeIPA, существуют слабые места и отсутствие поддержки функций во многих областях, включая механизмы контроля доступа и механизмы аудита.