2FA (Двофакторна автентифікація)
Двофакторна автентифікація (2FA) — це процес безпеки, який вимагає від користувачів надання двох різних форм ідентифікації для підтвердження їхньої особи перед доступом до облікового запису чи системи.
Двофакторна автентифікація (2FA) — це метод багатофакторної автентифікації (MFA), який підвищує безпеку, вимагаючи два окремі фактори автентифікації для підтвердження особи користувача. Ці фактори зазвичай класифікуються на три типи: те, що користувач знає (наприклад, пароль, PIN-код), те, що користувач має (наприклад, фізичний токен, смартфон, смарт-карта), і те, чим користувач є (наприклад, відбиток пальця, сканування обличчя). Поширений варіант реалізації включає пароль (фактор знання) у поєднанні з одноразовим паролем (OTP), згенерованим додатком-автентифікатором або надісланим через SMS (фактор володіння). Процес починається з введення користувачем свого основного облікового запису, зазвичай пароля. Після успішної перевірки першого фактора система запитує другий фактор. Потім перевіряється дійсність другого фактора порівняно з попередньо зареєстрованим значенням або алгоритмом на основі часу. Якщо обидва фактори успішно автентифіковані, надається доступ. Основна перевага 2FA полягає в її стійкості до поширених векторів атак, таких як фішинг, підстановка облікових даних та атаки грубої сили, оскільки компрометація одного фактора недостатня для отримання несанкціонованого доступу. Однак компроміси включають збільшення тертя користувача, потенційну втрату або крадіжку другого фактора та залежність від безпеки механізму доставки другого фактора (наприклад, перехоплення SMS). Розширені реалізації можуть включати автентифікацію на основі ризиків, де система динамічно регулює кількість або тип необхідних факторів залежно від контексту, такого як місцезнаходження, пристрій або час доби.
graph LR
Center["2FA (Двофакторна автентифікація)"]:::main
Rel_asymmetric_encryption["asymmetric-encryption"]:::related -.-> Center
click Rel_asymmetric_encryption "/terms/asymmetric-encryption"
Rel_mfa_multi_factor_authentication["mfa-multi-factor-authentication"]:::related -.-> Center
click Rel_mfa_multi_factor_authentication "/terms/mfa-multi-factor-authentication"
Rel_multi_factor_authentication_mfa["multi-factor-authentication-mfa"]:::related -.-> Center
click Rel_multi_factor_authentication_mfa "/terms/multi-factor-authentication-mfa"
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-карти для OTP на основі SMS.
- Те, чим ви є: Біометричні дані, такі як відбитки пальців, сканування обличчя або візерунки райдужної оболонки ока.
Поширений варіант реалізації включає одноразові паролі на основі часу (TOTP), стандартизовані RFC 6238. Алгоритми TOTP генерують новий код кожні 30-60 секунд на основі спільного секретного ключа (наданого під час початкового налаштування) та поточного часу, часто синхронізованого через NTP. Серверна валідація включає перерахунок очікуваних OTP для заданого часового вікна та порівняння його з кодом, наданим користувачем.
Інший поширений метод — одноразові паролі на основі HMAC (HOTP), визначені в RFC 4226, які генерують коди на основі лічильника, що збільшується з кожним використанням. Сервер і клієнт повинні підтримувати синхронізовані лічильники.
Більш розширені реалізації використовують Universal 2nd Factor (U2F) та його наступника FIDO2, які використовують криптографію з відкритим ключем. Під час реєстрації на ключі безпеки генерується унікальна пара приватного/публічного ключа, а публічний ключ реєструється в службі. Автентифікація передбачає, що сервер надсилає виклик, який пристрій FIDO підписує своїм приватним ключем, що сервер потім перевіряє за допомогою зареєстрованого публічного ключа, забезпечуючи сильну стійкість до фішингових атак, оскільки ключ ніколи не залишає пристрій і прив'язаний до конкретного походження (домену) веб-сайту.