
Что такое двухфакторная аутентификация
Двухфакторная аутентификация (2FA) — это способ проверки подлинности пользователя, при котором для входа в систему требуется не только пароль, но и дополнительное подтверждение. Таким образом, личность пользователя подтверждается сразу по двум независимым факторам.
Необходимость 2FA возникла из-за уязвимости паролей. Их могут подобрать, перехватить с помощью фишинга или получить из утёкших баз данных. Даже сложный пароль не гарантирует безопасности при компрометации.
Использование двухфакторной аутентификации значительно снижает риск несанкционированного доступа. Даже если пароль стал известен злоумышленнику, без второго фактора вход в систему остаётся невозможным.
Из чего состоят два фактора аутентификации
Двухфакторная аутентификация опирается на использование двух различных категорий факторов, каждая из которых подтверждает личность пользователя по разному принципу. Классически выделяют три типа факторов:
Первый тип — фактор знания. Это информация, которую знает только пользователь, например пароль, PIN-код или ответ на секретный вопрос.
Второй тип — фактор владения. Он подтверждает, что у пользователя есть физический или цифровой объект: смартфон с приложением-аутентификатором, SIM-карта для получения SMS, аппаратный токен или USB-ключ безопасности.
Третий тип — биометрический фактор. К нему относятся уникальные характеристики человека, такие как отпечаток пальца, распознавание лица или радужки глаза.
Двухфакторная аутентификация использует комбинацию факторов из разных категорий, что делает подмену личности существенно сложнее.
Основные виды двухфакторной аутентификации
Существует несколько распространённых способов реализации двухфакторной аутентификации, отличающихся уровнем безопасности и удобством использования.
SMS-коды — один из самых простых и массовых вариантов. Пользователь получает одноразовый код по SMS и вводит его при входе. Метод удобен, но уязвим к перехвату сообщений и атакам на SIM-карты.
Приложения-аутентификаторы генерируют одноразовые коды на устройстве пользователя. Такие решения не зависят от мобильной сети и считаются более надёжными, чем SMS.
Аппаратные ключи безопасности представляют собой физические устройства, которые подключаются к компьютеру или смартфону. Они обеспечивают высокий уровень защиты, но требуют дополнительного оборудования.
Push-уведомления позволяют подтвердить вход одним нажатием в мобильном приложении.
Реализация двухфакторной аутентификации в Бересте
Береста поддерживает двухфакторную аутентификацию на основе временных одноразовых кодов (TOTP) и предоставляет два варианта проверки подлинности пользователя:
проверка с использованием встроенного TOTP-модуля на Мастере;
проверка с использованием внешнего RADIUS-сервера.
Встроенный TOTP-модуль позволяет включить двухфакторную аутентификацию для выбранных пользователей и LDAP-групп. Для каждого пользователя, у которого активирована 2FA, система генерирует индивидуальный QR-код. После его сканирования в приложении-аутентификаторе пользователь получает доступ к шестизначным одноразовым кодам, обновляющимся через заданный интервал времени.

При входе в систему пользователь сначала вводит логин и пароль. Если первый этап проверки проходит успешно, отображается дополнительное окно, в котором необходимо ввести актуальный TOTP-код для завершения авторизации.
Альтернативный вариант реализован через интеграцию со сторонним RADIUS-сервером. В этом случае администратор настраивает параметры подключения, включая адрес сервера и общий секрет.

Во время аутентификации Береста передаёт на RADIUS-сервер имя пользователя и введённый код второго фактора, после чего ожидает ответ Access-Accept или Access-Reject. Логика проверки TOTP-кода полностью реализуется на стороне RADIUS-сервера, а Береста использует его как внешний сервис проверки подлинности.

Для гибкой настройки доступа реализован механизм включения и исключения отдельных пользователей и LDAP-групп для каждого MFA-сервера. Это позволяет разграничивать способы двухфакторной проверки в соответствии с требованиями конкретной организации.
