Что такое аутентификация с одним и несколькими факторами

«Аутентификация — это не только «введите пароль». Это архитектурное решение, которое определяет, насколько сложно злоумышленнику подделать личность пользователя. В российских реалиях, где требования 152-ФЗ и ФСТЭК диктуют необходимость защиты персональных данных, выбор между однофакторной и многофакторной аутентификацией перестаёт быть вопросом удобства, а становится требованием регулятора.»

Уровни защиты: от одного фактора к нескольким

Процесс доказательства личности системе — аутентификация — тем надёжнее, чем больше независимых доказательств она использует. Эти доказательства называются факторами.

Однофакторная аутентификация (SFA)

Система полагается на единственный тип подтверждения. Классический пример — пара «логин-пароль», оба элемента относятся к категории «то, что вы знаете». Этот метод остаётся самым распространённым, но и самым уязвимым для фишинга, brute-force атак и утечек данных из-за повторного использования паролей.

Двухфакторная аутентификация (2FA)

Требует предъявления двух доказательств разных типов. Например, пароль (знание) и одноразовый код, сгенерированный приложением (владение). Ключевой момент — факторы должны быть независимыми: запрос второго пароля или секретного вопроса не делает аутентификацию двухфакторной, так как это всё ещё знание.

Многофакторная аутентификация (MFA)

Обобщающий термин для использования двух и более факторов разных типов. 2FA — это частный случай MFA. Расширенный сценарий MFA может включать три фактора: PIN-код (знание), физический токен (владение) и сканер отпечатка пальца (то, чем вы являетесь — биометрия).

Важный критерий для регуляторов: При проверке соответствия требованиям ФСТЭК важно не путать количество шагов с количеством факторов. Система, запрашивающая пароль, а затем дополнительный «кодовое слово», реализует однофакторную аутентификацию, что может быть признано недостаточным для защиты информации ограниченного доступа.

Практическая реализация: от SMS до криптографии

На практике переход от теории к реализации 2FA/MFA упирается в выбор конкретной технологии.

TOTP: стандарт для приложений-аутентификаторов

TOTP (Time-based One-Time Password) — эволюция стандарта HOTP, где код генерируется на основе общего секретного ключа и текущего времени. Код действителен в коротком временном окне (обычно 30 секунд). Именно этот алгоритм работает в Google Authenticator, Яндекс.Ключе и их аналогах. Смартфон в данном случае выступает в роли программного токена (владение), обеспечивая второй фактор.

Email и SMS: удобство vs. безопасность

Метод, при котором одноразовый код доставляется через SMS или email, крайне популярен из-за простоты внедрения. Однако его безопасность вызывает серьёзные вопросы. Стандарт NIST SP 800-63B прямо не рекомендует использовать SMS для двухфакторной аутентификации в системах государственного значения из-за рисков перехвата сообщений оператором связи и атак типа SIM-своппинга. В контексте 152-ФЗ, где требуется обеспечить конфиденциальность персональных данных, опора на SMS может быть расценена как недостаточная мера.

Аппаратные токены и U2F/FIDO2

Для высокозащищённых сред используются физические устройства — аппаратные токены (например, Yubico Key). Стандарты U2F и его наследник FIDO2 позволяют реализовать аутентификацию на основе криптографических ключей, хранящихся внутри устройства. Это не только второй фактор (владение), но и защита от фишинга, так как токен подтверждает подлинность именно того сайта, на который пользователь собирается зайти.

HMAC: криптографический двигатель одноразовых паролей

За многими практическими реализациями стоит криптографический примитив HMAC (Hash-based Message Authentication Code) — алгоритм для проверки целостности и подлинности сообщения с использованием криптографической хеш-функции и секретного ключа.

  • Основа HOTP/TOTP: Стандарт HOTP (HMAC-based One-Time Password), предшественник TOTP, использует HMAC для генерации кодов. Сервер и клиент (токен) разделяют общий секрет. HMAC вычисляется от счётчика (HOTP) или времени (TOTP), результат усекается, формируя 6-значный код.
  • Веб-аутентификация и API: HMAC применяется для подписи запросов к API. Клиент отправляет запрос и вычисленный HMAC от его содержимого с использованием секретного ключа. Сервер, зная ключ, выполняет ту же операцию и сравнивает результат. Несовпадение означает повреждение данных или неавторизованный доступ.
  • Защита сетевого трафика: В протоколах безопасности, таких как IPsec, HMAC используется для аутентификации каждого пакета данных, гарантируя, что он пришёл от законного источника и не был изменён в пути.
Принцип работы HMAC (упрощённо):
Данные (например, счётчик или время) + Секретный ключ
                 |
                 ↓
          Хеш-функция (SHA-1, SHA-256)
                 |
                 ↓
           Код аутентификации (HMAC)

Выводы для практики

Выбор стратегии аутентификации — это всегда компромисс между безопасностью, удобством пользователя и стоимостью внедрения. Для систем, обрабатывающих персональные данные, требования 152-ФЗ и стандартов ФСТЭК часто делают этот выбор очевидным:

  • MFA — не роскошь, а необходимость для систем, попадающих под действие регуляторных требований.
  • TOTP через приложения-аутентификаторы — разумный баланс безопасности и доступности для большинства корпоративных сценариев.
  • SMS как второй фактор следует рассматривать критически, особенно для систем с повышенными требованиями к защите информации.
  • Понимание базовой криптографии (такой как HMAC) важно для корректной оценки и выбора готовых решений для аутентификации.

Архитектура аутентификации закладывается на этапе проектирования системы. Ошибка в выборе методов может привести не только к инцидентам безопасности, но и к проблемам при прохождении проверок на соответствие российским нормативным актам.

Оставьте комментарий