Политика паролей#
Реализация в системе#
За включение парольной политики в системе отвечает флаг «Настройка политики паролей на типе объекта» (bPasswordSettingsInOT) в группе «Безопасность и аутентификация» в классе Btk_Setting (по умолчанию — false).
Если флаг установлен (
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.Каждому пользователю назначается определённый тип объекта, который определяет применяемые к нему правила парольной политики.
По умолчанию доступны предопределённые типы объектов, однако допускается создание новых.
Настройка параметров на типе объекта#
Параметры парольной политики настраиваются непосредственно на типе объекта:
Перейдите: Настройки системы → Сущности → Типы объектов.
В фильтре укажите класс
Btk_User.Выберите нужный тип объекта из списка.
В левой панели перейдите в раздел «Настройки пользователей».
Установите требуемые значения параметров парольной политики.
Каждый пользователь, имеющий данный тип объекта, будет подчиняться соответствующей политике при создании или изменении пароля.
Валидация политики#
Проверка требований к сложности пароля#
Происходит при смене пароля в методе 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система не позволит использовать пароль, совпадающий с любым из двух предыдущих.
Обработка устаревших паролей и уведомлений#
Методы:
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 обязательно для:
администраторов;
пользователей с расширенными правами;
доступа к системам с персональными данными.
→ Предпочтительно: мобильные аутентификаторы, аппаратные ключи.
→ SMS-коды как единственный фактор — запрещены.
Групповые учётные записи — строго запрещены.
Восстановление пароля:
только через генерацию нового;
после личной верификации (визит или видеозвонок с документом);
запрещено отправлять временные пароли по email без подтверждения.
Аудит аутентификации:
все попытки входа (успешные и нет) должны логироваться;
логи хранятся не менее 180 дней.