2FA (Two-Factor Authentication, двухфакторная аутентификация) — это способ подтверждения личности, при котором для входа в аккаунт или систему используются два разных фактора authentication. Например, пользователь вводит пароль и подтверждает вход одноразовым кодом из приложения-аутентификатора.
В отличие от входа только по паролю, 2FA добавляет дополнительный уровень защиты. Даже если злоумышленник узнает пароль, ему потребуется второй фактор для доступа к аккаунту.
Как работает 2FA
При обычной авторизации пользователь вводит логин и пароль. При включённой двухфакторной аутентификации система после проверки пароля запрашивает дополнительное подтверждение.
Типичный сценарий выглядит так:
- Пользователь вводит логин и пароль.
- Система проверяет основные учётные данные.
- Пользователь вводит одноразовый код, подтверждает push-уведомление или использует другой фактор.
- Система проверяет второй фактор.
- При успешной проверке пользователь получает доступ.
Если пароль окажется скомпрометирован, одного его будет недостаточно для входа.
Факторы аутентификации
Фактор аутентификации — это категория признаков, с помощью которых система проверяет личность пользователя. Обычно выделяют три основных типа:
Что пользователь знает
Информация, известная только пользователю:
- пароль;
- PIN-код;
- кодовая фраза;
- ответ на секретный вопрос.
Пароль обычно используется как первый фактор.
Что пользователь имеет
Физический предмет или устройство, находящееся у пользователя:
- смартфон;
- приложение-аутентификатор;
- аппаратный токен;
- USB-ключ безопасности;
- смарт-карта;
- SIM-карта.
Одноразовый код из приложения или подтверждение на зарегистрированном устройстве относятся к фактору владения.
Что пользователь представляет собой
Уникальная биометрическая характеристика:
- отпечаток пальца;
- лицо;
- радужная оболочка глаза;
- голос;
- другие биометрические признаки.
Для 2FA используются два фактора из разных категорий. Например, пароль и отпечаток пальца — это два разных фактора. Пароль и код из резервного списка относятся к одной категории — «что пользователь знает», поэтому такой вариант не даёт полноценного разделения факторов.
Основные способы 2FA
Одноразовые коды из приложения
Приложение-аутентификатор генерирует временные коды, которые меняются через определённый интервал. Для их создания интернет обычно не требуется.
Преимущество такого способа — независимость от мобильной связи. Однако при потере телефона важно заранее сохранить резервные коды или настроить восстановление доступа.
SMS-коды
Система отправляет одноразовый код на номер телефона пользователя.
SMS удобно использовать, если другие способы недоступны, но этот вариант считается менее защищённым. Риски связаны с перехватом сообщений, атакой на SIM-карту и социальной инженерией. Поэтому для важных аккаунтов лучше использовать приложение-аутентификатор или аппаратный ключ.
Push-подтверждение
Пользователь получает уведомление в приложении и подтверждает или отклоняет попытку входа одним нажатием.
Такой способ удобнее ручного ввода кода, но может быть опасен при так называемой атаке «усталостью от MFA», когда злоумышленник многократно отправляет запросы на подтверждение в надежде, что пользователь согласится по ошибке.
Аппаратные ключи безопасности
USB-, NFC- или Bluetooth-устройства подтверждают вход криптографически. К этому типу относятся ключи, совместимые с FIDO2 и WebAuthn.
Аппаратные ключи защищают от многих фишинговых атак, потому что подтверждение связано с конкретным доменом. Microsoft указывает FIDO2-ключи как один из наиболее надёжных современных вариантов многофакторной аутентификации.
Биометрия
Система использует отпечаток пальца, распознавание лица или другой биометрический признак.
Биометрия удобна, но обычно применяется вместе с устройством или паролем. Важно учитывать, что биометрические данные нельзя заменить так же просто, как пароль, поэтому их хранение и обработка требуют особой защиты.
2FA и MFA
Термины 2FA и MFA часто используют как синонимы, но между ними есть различие:
- 2FA требует ровно два разных фактора.
- MFA (Multi-Factor Authentication, многофакторная аутентификация) требует два или более фактора.
Таким образом, 2FA является частным случаем MFA. Например, пароль, код из приложения и аппаратный ключ — это уже MFA с тремя факторами, а не 2FA.
Преимущества
- Защита аккаунта даже при утечке пароля.
- Снижение риска несанкционированного доступа.
- Дополнительная защита почты, социальных сетей, банковских и корпоративных систем.
- Возможность обнаружить подозрительную попытку входа.
- Соответствие требованиям безопасности для критичных сервисов.
- Защита административных учётных записей и удалённого доступа.
Ограничения и риски
- Пользователь может потерять доступ к телефону или приложению-аутентификатору.
- SMS-коды уязвимы для атак на номер и SIM-карту.
- Push-подтверждение может быть принято случайно.
- Фишинговые сайты могут выманивать одноразовые коды.
- Неправильно настроенное восстановление доступа может свести защиту к минимуму.
- Временная недоступность устройства может помешать входу.
2FA значительно повышает безопасность, но не устраняет все угрозы. Пользователь всё ещё может передать код злоумышленнику, перейти по фишинговой ссылке или подтвердить подозрительный вход.
Рекомендации по настройке
- Используйте уникальный сложный пароль вместе с 2FA.
- По возможности выбирайте приложение-аутентификатор или аппаратный ключ вместо SMS.
- Сохраните резервные коды в защищённом месте.
- Не передавайте одноразовые коды другим людям.
- Проверяйте домен сайта перед вводом пароля и кода.
- Не подтверждайте неожиданные push-запросы.
- Защитите резервный email и номер телефона.
- Настройте 2FA прежде всего для почты, банковских сервисов, облачных хранилищ и рабочих систем.
- Периодически проверяйте список устройств и активных сессий.
Пример использования
Пользователь входит в корпоративный сервис:
- Вводит рабочую почту и пароль.
- Сервис запрашивает код из приложения-аутентификатора.
- Пользователь вводит шестизначный код.
- Сервер проверяет код и открывает доступ.
Если пароль был украден, злоумышленник не сможет войти без доступа к зарегистрированному устройству.
Итог
2FA, или двухфакторная аутентификация, — это способ защиты аккаунтов с помощью двух разных факторов подтверждения личности. Наиболее распространённая схема — пароль и одноразовый код, но для важных систем предпочтительнее использовать приложение-аутентификатор, push-подтверждение или аппаратный ключ.
Включение 2FA снижает риск взлома аккаунта, однако требует внимательного отношения к кодам, уведомлениям, резервным способам восстановления и фишинговым атакам.
