2FA (двухфакторная аутентификация)
Триф-аутентификация (триф-авторизация) усилит безопасность путем добавления дополнительного уровня защиты за пределами пароля. Она обычно включает то, что знает пользователь (пароль), то, что имеет пользователь (например, смартфон с приложением для аутентификации или физический ключ безопасности), или то, что есть у пользователя (биометрические данные). Этот комбайн сделает значительно труднее несанкционированным лицам получить доступ к аккаунту даже если они имеют пароль пользователя. Второй фактор часто является временной одной-единственной кодовой токеном (TOTP), кодом, отправленным посредством SMS, или уведомлением от приложения для аутентификации.
Двухфакторная аутентификация (2FA) — это метод многофакторной аутентификации (MFA), который повышает безопасность, требуя два различных фактора аутентификации для подтверждения личности пользователя. Эти факторы обычно делятся на три типа: что-то, что знает пользователь (например, пароль, PIN-код), что-то, что есть у пользователя (например, физический токен, смартфон, смарт-карта), и что-то, что является пользователем (например, отпечаток пальца, сканирование лица). Распространенная реализация включает пароль (фактор знания) в сочетании с одноразовым паролем (OTP), сгенерированным приложением-аутентификатором или отправленным по SMS (фактор владения). Процесс начинается с того, что пользователь вводит свои основные учетные данные, обычно пароль. После успешной проверки первого фактора система запрашивает второй фактор. Затем проверяется достоверность второго фактора по предварительно зарегистрированному значению или алгоритму, основанному на времени. Если оба фактора успешно аутентифицированы, доступ предоставляется. Основное преимущество 2FA заключается в его устойчивости к распространенным векторам атак, таким как фишинг, подстановка учетных данных и атаки методом перебора, поскольку компрометация одного фактора недостаточна для получения несанкционированного доступа. Однако компромиссы включают повышенное трение для пользователя, возможность потери или кражи второго фактора, а также зависимость от безопасности механизма доставки второго фактора (например, перехват SMS). Расширенные реализации могут включать аутентификацию на основе риска, когда система динамически корректирует количество или тип требуемых факторов в зависимости от контекста, такого как местоположение, устройство или время суток.
graph LR
Center["2FA (двухфакторная аутентификация)"]:::main
Rel_authorization["authorization"]:::related -.-> Center
click Rel_authorization "/terms/authorization"
Rel_mfa_multi_factor_authentication["mfa-multi-factor-authentication"]:::related -.-> Center
click Rel_mfa_multi_factor_authentication "/terms/mfa-multi-factor-authentication"
Rel_single_sign_on_sso["single-sign-on-sso"]:::related -.-> Center
click Rel_single_sign_on_sso "/terms/single-sign-on-sso"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простыми словами
Представь, что ты зашел в библиотеку. Твой читательский билет — это подтверждение личности. Но только библиотекарь решает, можешь ли ты взять редкую старую книгу с полки или тебе можно читать только в общем зале. Эти правила — твоя авторизация.
🤓 Expert Deep Dive
Двухфакторная аутентификация (2FA) фундаментально повышает безопасность, добавляя дополнительный механизм проверки поверх основного учетного данных (обычно пароля или кодовой фразы). Этот процесс соответствует принципу многофакторной аутентификации (MFA), требуя два различных фактора из следующих категорий:
- Что-то, что вы знаете: Пароли, PIN-коды, ответы на секретные вопросы.
- Что-то, что у вас есть: Физические токены (например, YubiKey, RSA SecurID), смартфоны с приложениями-аутентификаторами (например, Google Authenticator, Authy) или SIM-карты для SMS- OTP.
- Что-то, что вы есть: Биометрические данные, такие как отпечатки пальцев, сканирование лица или рисунок радужной оболочки глаза.
Распространенная реализация включает одноразовые пароли, основанные на времени (TOTP), стандартизированные RFC 6238. Алгоритмы TOTP генерируют новый код каждые 30-60 секунд на основе общего секретного ключа (предоставленного при первоначальной настройке) и текущего времени, часто синхронизируемого через NTP. Серверная проверка включает пересчет ожидаемых OTP для данного временного окна и сравнение его с кодом, предоставленным пользователем.
Другой распространенный метод — одноразовые пароли на основе HMAC (HOTP), определенные в RFC 4226, которые генерируют коды на основе счетчика, увеличивающегося с каждым использованием. Сервер и клиент должны поддерживать синхронизированные счетчики.
Более продвинутые реализации используют Universal 2nd Factor (U2F) и его преемник FIDO2, которые используют криптографию с открытым ключом. Во время регистрации на ключе безопасности генерируется уникальная пара закрытого/открытого ключа, а открытый ключ регистрируется в сервисе. Аутентификация включает отправку сервером вызова, который устройство FIDO подписывает своим закрытым ключом, что сервер затем проверяет с помощью зарегистрированного открытого ключа, обеспечивая сильную устойчивость к фишинговым атакам, поскольку ключ никогда не покидает устройство и привязан к конкретному происхождению (домену) веб-сайта.