Открыть сервис

Двухфакторная аутентификация

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

История

Концепция многофакторной аутентификации возникла задолго до цифровой эпохи. Первые примеры включали использование комбинации ключа (фактор владения) и замка с кодом (фактор знания) в банковских сейфах. В компьютерной сфере прообразом 2FA стали системы, требующие пароль и физический ключ для доступа к мейнфреймам в 1960-х годах.

Массовое внедрение двухфакторной аутентификации началось в 1990-х годах с развитием интернет-банкинга и корпоративных сетей. Компания RSA Security в 1986 году выпустила линейку аппаратных токенов SecurID, которые генерировали одноразовые пароли (OTP) через определённые интервалы времени. В 2000-х годах, с ростом числа утечек баз данных и фишинговых атак, 2FA стала стандартом для критически важных сервисов. Google внедрила двухфакторную аутентификацию для своих пользователей в 2011 году, что способствовало её популяризации. В 2010-х годах широкое распространение получили программные токены (приложения-аутентификаторы) и биометрические методы, встроенные в мобильные устройства.

Принцип работы

Двухфакторная аутентификация требует одновременного выполнения двух условий из разных категорий. Стандартная процедура включает следующие этапы:

  1. Ввод первого фактора (обычно пароль или PIN-код).
  2. Запрос второго фактора (система отправляет push-уведомление, SMS-код или ожидает ввод кода из приложения-аутентификатора).
  3. Предоставление второго фактора (пользователь вводит полученный код, прикладывает палец к сканеру или подтверждает вход на устройстве).
  4. Проверка и предоставление доступа.

Ключевое отличие 2FA от двухшаговой верификации (2SV) заключается в том, что второй шаг не обязательно должен быть отдельным фактором. Например, отправка кода по электронной почте является двухшаговой верификацией, но не двухфакторной аутентификацией, так как и пароль, и доступ к почте могут быть скомпрометированы через одно устройство.

Категории факторов

Факторы аутентификации делятся на три основные группы:

Фактор знания (Something you know)

Это информация, известная только пользователю. Наиболее распространённый пример — пароль, PIN-код, ответ на секретный вопрос. Данный фактор наиболее уязвим для фишинга, кейлоггеров и социальной инженерии. При использовании в составе 2FA он обычно выступает в качестве первого фактора.

Фактор владения (Something you have)

Это физический объект, которым обладает пользователь. Примеры:

Фактор присущности (Something you are)

Это биометрические характеристики пользователя. Примеры:

Биометрия удобна, но имеет недостатки: биометрические данные не могут быть изменены при компрометации, а точность сканеров может быть снижена из-за внешних факторов.

Методы реализации

TOTP (Time-based One-Time Password)

Самый распространённый метод программной 2FA. Пользователь и сервер используют общий секретный ключ и текущее время для генерации одноразового кода, действительного в течение 30-60 секунд. Реализован в стандарте RFC 6238.

U2F / FIDO2 (Universal 2nd Factor / Fast IDentity Online)

Открытые стандарты, разработанные альянсом FIDO (Fast IDentity Online). Используют асимметричную криптографию: приватный ключ хранится на аппаратном токене, а публичный — на сервере. При аутентификации токен подписывает запрос, что исключает фишинг, так как подпись привязана к домену сайта. U2F считается одним из самых безопасных методов.

SMS и голосовые звонки

Код отправляется через SMS или озвучивается в телефонном звонке. Метод широко распространён, но признаётся устаревшим из-за уязвимости к атакам перехвата (SIM swapping) и отсутствия шифрования.

Push-аутентификация

Пользователь получает на мобильное устройство уведомление с запросом на подтверждение входа (например, «Подтвердить вход с IP 192.168.1.1?»). Метод удобен и безопасен, так как не требует ввода кода.

Преимущества и недостатки

Преимущества

Недостатки

Применение

Двухфакторная аутентификация используется в различных сферах:

Критика и уязвимости

Несмотря на высокую эффективность, 2FA не является абсолютной защитой. Основные критикуемые аспекты:

В ответ на эти уязвимости разрабатываются более совершенные методы, такие как FIDO2/WebAuthn, которые исключают ввод кода и привязывают аутентификацию к конкретному сайту.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →