четверг, 12 июня 2025 г.

Почему обычные методы MFA можно обойти, а аппаратные токены — нет

Многофакторная аутентификация (MFA) значительно снижает риск несанкционированного доступа, но не все её методы одинаково защищают от фишинга. В этой статье разберёмся, почему SMS, push-уведомления и TOTP можно обойти, а FIDO2/WebAuthn-токены — нет. Простыми словами: обычные методы MFA можно "переслать" злоумышленнику, а аппаратные токены "знают", на каком именно сайте вы находитесь.


Уязвимые методы MFA

1. SMS-коды

  • Злоумышленник создаёт фишинговый сайт, имитирующий оригинал (например, GMAI1.COM)
  • Пользователь вводит логин/пароль
  • Сайт запрашивает SMS-код, пользователь вводит его
  • Код в реальном времени передаётся злоумышленнику, который заходит на реальный сайт

Дополнительно уязвимы к:

  • Подмене SIM-карт
  • Перехвату SS7 (в сетях операторов)

2. Push-уведомления

  • Атака типа MFA fatigue: злоумышленник рассылает множество запросов авторизации
  • Пользователь по ошибке подтверждает вход, думая, что это он инициировал

3. TOTP (Time-based One-Time Password)

  • Генерируемый код в приложении (Google Authenticator, Microsoft Authenticator и др.)
  • Пользователь вводит код на поддельном сайте
  • Злоумышленник немедленно вводит код на настоящем сайте

Трудности для хакера:

  • Вводимый код можно переслать и использовать до истечения срока (обычно 30 сек)

Почему FIDO2/WebAuthn токены устойчивы к фишингу

1. Криптографическая привязка к домену

  • Подпись токена зависит от точного origin (домен + схема протокола)
  • Пример: токен, зарегистрированный для https://gmail.com, не сработает на https://gmai1.com
  • Используется схема challenge-response с публичным ключом
  • Аппаратный токен (например, YubiKey) криптографически проверяет, что вы находитесь именно на том сайте, для которого регистрировались

2. Отсутствие передачи секрета

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

3. Физическое подтверждение

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

Термины и стандарты

FIDO2

  • Открытый стандарт для фишинг-устойчивой аутентификации
  • Включает два компонента:
    • WebAuthn (Web Authentication API) — стандарт W3C для браузеров
    • CTAP2 (Client To Authenticator Protocol) — протокол взаимодействия между браузером/ОС и токеном (например, YubiKey)

WebAuthn

  • Интерфейс в браузере для аутентификации через токен или встроенный модуль (например, Touch ID, Windows Hello)
  • Привязывает криптографическую пару ключей к origin сайта

TOTP (RFC 6238)

  • Time-based One-Time Password
  • Одноразовые коды, зависящие от текущего времени и общего секрета
  • Коды можно переслать, нет привязки к домену

Сравнительная таблица

Метод MFA Устойчив к фишингу Можно «переслать» Привязан к сайту Требует физ. действия
SMS Нет Да Нет Нет
Push-уведомления Нет Да Нет Да
TOTP Нет Да Нет Нет
FIDO2/WebAuthn Да Нет Да Да

Источники