Политика паролей#

Политика паролей определяет требования к созданию, изменению, сроку действия и повторному использованию паролей пользователей.

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

Реализация в системе#

За включение парольной политики в системе отвечает флаг Настройка политики паролей на типе объекта (bPasswordSettingsInOT) в группе Безопасность и аутентификация в классе Btk_Setting (по умолчанию — false).

Путь: Приложение «Настройка системы» > Настройки и сервисы > Настройки модулей системы > Общие настройки модулей > btk > Безопасность и аутентификация > Настройка политики паролей на типе объекта.

  • Если флаг установлен (true), то парольная политика настраивается на типе объекта пользователя (Btk_UserPasswordSetting).

  • Если флаг не установлен или равен false, используются стандартные параметры паролей из класса Btk_User. Они настраиваются отдельно на каждом пользователе.

Параметры из класса Btk_User

Атрибуты, определяющие требования к паролю:

  • bPassSpecSymb — необходимость наличия хотя бы одного специального символа; по умолчанию — 0 (не требуется); допустимые символы: !@#$%^&*()-+\?/.,№;:;

  • bPassLetterDigit — обязательное наличие как букв, так и цифр; по умолчанию — 0;

  • bPassUpperLowerLetter — необходимость использования как строчных, так и прописных букв; по умолчанию — 0;

  • nPassMinSymbCnt — минимально допустимое количество символов в пароле; значение по умолчанию отсутствует (ограничение не применяется).

Настройки политики на типе объекта (Btk_UserPasswordSetting)

Атрибуты, определяющие политику управления паролем:

  • все атрибуты из класса Btk_User (bPassSpecSymb, bPassLetterDigit, bPassUpperLowerLetter, nPassMinSymbCnt) — действуют аналогично вышеописанным;

  • nNonRepeatPassAmount — количество последних паролей, которые нельзя повторно использовать; по умолчанию отсутствует (повтор разрешён);

  • nDayInactivityCntForUserBlocking — число дней без активности, после которого пользователь будет заблокирован; значение по умолчанию — 180;

  • nMinLifetime — минимальное количество дней между сменами пароля; запрещает слишком частую смену; по умолчанию отсутствует;

  • jTempBlockingForUnsuccessfulLogin — параметры временной блокировки при неудачных попытках входа; JSON-объект с полями:

    • nNumberOfAttempts — допустимое число ошибочных попыток входа;

    • nBlockingTimeMin — время блокировки (в минутах) при превышении лимита;

  • nValidityPeriod — срок действия постоянного пароля (в днях);

  • nValidityPeriodTemp — срок действия временного пароля (в днях);

  • sDaysForNotifyChangePass — количество дней до окончания срока действия пароля, за которое будет отправлено уведомление о необходимости его смены.

Настройка политики через типы объектов

При включении флага bPasswordSettingsInOT в классе Btk_Setting (установке галочки «Настройка политики паролей на типе объекта») политика применяется ко всей системе.

После включения управление политикой осуществляется через типы объектов класса Btk_User. Каждому пользователю назначается определённый тип объекта, который определяет применяемые к нему правила парольной политики. По умолчанию доступны предопределённые типы объектов, однако допускается создание новых.

Настройка параметров на типе объекта

Параметры парольной политики настраиваются непосредственно на типе объекта:

  1. Перейдите: Настройки системы > Сущности > Типы объектов.

  2. В фильтре укажите класс Btk_User.

  3. Выберите нужный тип объекта из списка.

  4. В левой панели перейдите в раздел «Настройки пользователей».

  5. Установите требуемые значения параметров парольной политики.

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

Тип объекта пользователя указывается в карточке учетной записи.

Путь: Приложение «Администратор» > Пользователи > открыть учетную запись пользователя > поле Тип в правой части карточки.

Валидация политики#

Проверка требований к сложности пароля

Происходит при смене пароля в методе Btk_ChangePasswordAvi.Card.beforeCloseForm. Используются следующие методы:

  • Btk_UserApi.validateUserPassword — проверяет соблюдение минимального срока жизни пароля (nMinLifetime);

  • Btk_UserApi.validateTempPassword — проверяет, не истёк ли срок действия текущего пароля (nValidityPeriod или nValidityPeriodTemp);

  • Btk_UserApi.checkPass — производит детальную проверку структуры нового пароля по заданным параметрам (bPassSpecSymb, bPassLetterDigit, bPassUpperLowerLetter, nPassMinSymbCnt).

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

Метод Btk_UserApi.setsPass вызывает Btk_UserPassHistoryApi.register, который сравнивает новый пароль с предыдущими.

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

Смена пароля при истечении срока действия

Срок действия пароля задается параметрами парольной политики на типе объекта пользователя: nValidityPeriod определяет срок действия постоянного пароля, nValidityPeriodTemp — срок действия временного пароля.

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

Если пользователь не сменил временный пароль до окончания срока nValidityPeriodTemp, учетная запись блокируется. Для восстановления доступа пользователь должен обратиться к администратору.

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

Методы обработки:

  • processUpdatingOutdatedPass — используется в составе job-процесса; при истечении срока действия постоянного пароля переводит пароль во временное состояние и устанавливает Btk_User.bChangePasswd = true;

  • emailNotifyUserForNeedChangePassword — отправляет уведомление пользователю, если до окончания срока действия постоянного пароля осталось количество дней, заданное в sDaysForNotifyChangePass.

Временная блокировка при неудачных попытках входа

Метод validateBlockingUserResult контролирует количество подряд неудачных попыток входа.

При превышении лимита jTempBlockingForUnsuccessfulLogin.nNumberOfAttempts пользователь временно блокируется. Длительность блокировки задаётся параметром jTempBlockingForUnsuccessfulLogin.nBlockingTimeMin.

Рекомендации по парольной политике#

Требования к паролю

Минимальная длина:

  • 8 символов — для обычных пользователей;

  • 12 символов — для администраторов и привилегированных учётных записей.

Сложность: пароль должен содержать символы из трёх и более категорий:

  • прописные латинские буквы (A–Z);

  • строчные латинские буквы (a–z);

  • цифры (0–9);

  • специальные символы (!, @, #, $, %, ^, &, * и др.).

Дополнительные требования:

  • допускается использование кириллицы;

  • максимальная длина — до 64 символов;

  • запрещено использовать простые или предсказуемые пароли (например, Password123, Qwerty!);

  • запрещено использовать персональные данные (имена, даты рождения, номера телефонов);

  • запрещено использовать клавиатурные последовательности (например, qwerty, 1qaz2wsx);

  • запрещено использовать повторяющиеся символы (например, aaaaaa);

  • запрещено использовать пароли из списков скомпрометированных.

Рекомендуемые сроки и случаи смены пароля

Смена пароля выполняется из интерфейса системы: Сервис > Регистрация > Сменить пароль.

Рекомендуемые сроки действия постоянного пароля:

  • не более 180 дней — для обычных пользователей;

  • не более 90 дней — для администраторов и привилегированных учетных записей.

Пароль должен быть изменен при:

  • первом входе с временным паролем;

  • подозрении на утечку;

  • передаче пароля третьим лицам;

  • компрометации учетной записи или средств аутентификации.

Дополнительные рекомендации:

  • новый пароль не должен совпадать с двумя последними;

  • новый пароль должен отличаться от старого минимум на 4 символа;

  • новый пароль не должен содержать фрагменты старого пароля длиной ≥ 2 символа на тех же позициях;

  • рекомендуется хранить не менее 24 последних паролей;

  • временная блокировка после 10 неудачных попыток минимум на 3 минуты.

Учётные записи

Требования к управлению:

  • при увольнении, переводе без доступа или прекращении отношений учётная запись немедленно блокируется в течение следующего рабочего дня;

  • запрещено передавать пароль уволенного или перемещённого сотрудника;

  • после блокировки учётная запись отключается во всех системах;

  • отключённая запись сохраняется в каталоге (например, Active Directory) для аудита;

  • срок хранения — от 6 до 36 месяцев;

  • по истечении срока запись удаляется из всех систем.

Использование и хранение паролей

Общие требования:

  • пароль должен быть известен только владельцу;

  • запрещено передавать пароль (включая руководителей);

  • запрещено работать под чужим паролем;

  • запрещено регистрировать других пользователей под своим аккаунтом.

Запрещено хранить пароли:

  • на бумаге (кроме сейфа);

  • в заметках, файлах, на стикерах, под клавиатурой.

Допускается:

  • хранение на бумажном носителе в запирающемся шкафу или сейфе;

  • хранение в зашифрованном виде (bcrypt, scrypt, PBKDF2).

Рекомендации:

  • использование корпоративного менеджера паролей (Bitwarden, 1Password, Keeper);

  • при вводе обеспечивать конфиденциальность (защита от «глазков»);

  • не произносить пароль вслух;

  • учитывать регистр.

Особые положения

MFA обязательно для:

  • администраторов;

  • пользователей с расширенными правами;

  • доступа к системам с персональными данными.

Дополнительные требования к MFA:

  • предпочтительно: мобильные аутентификаторы, аппаратные ключи;

  • SMS-коды как единственный фактор — запрещены.

Дополнительные положения:

  • групповые учётные записи — строго запрещены;

  • восстановление пароля — только через генерацию нового;

  • восстановление пароля — после личной верификации (визит или видеозвонок с документом);

  • запрещено отправлять временные пароли по email без подтверждения;

  • аудит аутентификации — все попытки входа (успешные и нет) должны логироваться;

  • логи хранятся не менее 180 дней.