
MFA (Multi-Factor Authentication) — метод аутентификации, при котором личность подтверждается через два или более независимых фактора. Смысл простой: даже если пароль утёк — а это случается регулярно через утечки баз данных — без второго фактора войти в аккаунт не получится.
Часто встречается термин 2FA (Two-Factor Authentication) — это частный случай MFA, где используются ровно два фактора. На практике “2FA” и “MFA” используются как синонимы, поскольку большинство реализаций двухфакторные. Разница лишь в том, что MFA теоретически допускает три фактора и более.
MFA необходим везде, где хранится что-то важное: GitHub и GitLab, облачные консоли AWS/GCP/Azure, корпоративная почта, менеджеры паролей, VPN-доступ к production-серверам.
Три категории факторов
Все факторы делятся на три группы:
- Знание (knowledge) — пароль, PIN-код, секретный вопрос
- Владение (possession) — телефон, аппаратный ключ, смарт-карта
- Биометрия (inherence) — отпечаток пальца, Face ID, сканирование сетчатки
Важный момент: два пароля — это не MFA. Факторы должны быть из разных категорий. Пароль + SMS-код — это MFA. Пароль + секретный вопрос — нет, оба из категории «знание».
Методы второго фактора — от слабых к сильным
SMS-коды — самый слабый вариант. Уязвимы к SIM swapping (мошеннический перевыпуск SIM-карты) и перехвату через устаревшие уязвимости протокола SS7. Тем не менее лучше, чем ничего.
TOTP (Time-based One-Time Password) — приложения вроде Google Authenticator или Aegis генерируют одноразовые коды локально. Код не передаётся по сети, перехватить его значительно сложнее. Минимальный стандарт для всех рабочих аккаунтов.
Push-уведомления — удобны, но подвержены атаке MFA fatigue: злоумышленник спамит запросами на вход, пока жертва случайно не нажмёт «Подтвердить».
Аппаратные ключи (YubiKey, Titan) — самый надёжный классический метод. Криптографическая аутентификация с физическим подтверждением нажатием кнопки на устройстве. Именно их стоит использовать для привилегированных учётных записей и production-доступа.
Реальный пример: Cloudflare vs Twilio, 2022
В августе 2022 года одна и та же группа атаковала сразу несколько технологических компаний, в том числе Twilio и Cloudflare. Схема одинаковая: сотрудники получали SMS с фишинговой ссылкой на поддельную страницу входа. Страница в реальном времени перехватывала логин, пароль и TOTP-код и передавала их атакующим — те мгновенно использовали данные для входа в настоящий аккаунт.
Twilio взломали. Cloudflare — нет. Разница: у сотрудников Cloudflare были аппаратные FIDO2-ключи (YubiKey). Такой ключ криптографически привязан к домену сайта и физически не может сработать на поддельном адресе. Даже получив логин и пароль, атакующие не смогли пройти второй фактор.
MFA — необходимый минимум для любого важного аккаунта. Но у всех перечисленных методов есть общая проблема: пароль по-прежнему существует, а значит — может утечь.
Этот пост также доступен в Telegram

