Опубліковано: · Оновлено: · автор: kodewright
2FA чи MFA: що вам справді потрібно?
2FA — це MFA рівно з двома факторами. Важливіше, який другий фактор ви оберете: від чого захищають SMS, TOTP, push і passkeys, за правилами NIST Rev. 4.

Різниця між 2FA і MFA зводиться до підрахунку: двофакторна автентифікація (2FA) використовує рівно два різні види факторів, а багатофакторна (MFA) — два або більше. Тобто будь-яка 2FA є MFA, і на практиці майже вся «MFA» для звичайних користувачів — це 2FA. Для особистого акаунта третій фактор не потрібен. Потрібен правильний другий, бо SMS, застосунок-автентифікатор, push-запит і passkey зупиняють зовсім різні атаки.
Три види факторів і що не рахується за два
NIST SP 800-63B поділяє автентифікатори на три види: те, що ви знаєте (пароль або PIN), те, що у вас є (телефон, ключ безпеки, пристрій із приватним ключем), і те, ким ви є (відбиток пальця або обличчя). Два фактори рахуються як два лише тоді, коли вони різних видів.
Пароль плюс контрольне запитання — це все одно один фактор: обидва належать до того, що ви знаєте, і їх викрадають або виманюють фішингом разом. Біометрію NIST дозволяє лише як частину багатофакторної автентифікації, прив'язаної до фізичного пристрою, і ніколи окремо, бо біометрія не є секретом і її не можна відкликати, якщо її скопіювали.
2FA і MFA поруч
| 2FA | MFA | |
|---|---|---|
| Кількість факторів | Рівно 2 | 2 або більше |
| Співвідношення | Окремий випадок MFA | Включає 2FA |
| Де трапляється | Звичайні акаунти: пошта, банк, соцмережі | Корпоративний і державний доступ: смарт-картка + PIN, сертифікат пристрою + пароль + застосунок |
| Стійка до фішингу? | Залежить від другого фактора | Залежить від факторів, а не від їхньої кількості |
Найважливіший тут останній рядок. Третій фактор, який можна виманити фішингом так само, як і перші два, додає незручностей і дуже мало захисту. Правила NIST це відображають: для AAL2 (рівня, якого досягає більшість входів із другим фактором) Rev. 4 вимагає, щоб перевіряльники пропонували принаймні один стійкий до фішингу варіант, а AAL3 такий варіант вимагає обов'язково. Жоден рівень не вимагає більше ніж двох факторів.
Який другий фактор від якої атаки захищає
Це порівняння я хотів би мати перед вибором, тож зібрав його з того, як працює кожен метод, і з класифікації NIST Rev. 4. ✓ означає, що метод сам по собі блокує атаку; ✗ — що не блокує.
| Другий фактор | Викрадений або повторно використаний пароль | SIM-swap | Фішинг-проксі в реальному часі | Втома від push |
|---|---|---|---|---|
| SMS-код | ✓ | ✗ | ✗ | н/з |
| Код на пошту | ✓ (якщо поштову скриньку теж не захопили) | ✓ | ✗ | н/з |
| Застосунок TOTP (RFC 6238) | ✓ | ✓ | ✗ | н/з |
| Push-запит, просто «Схвалити» | ✓ | ✓ | ✗ | ✗ |
| Push зі звіркою числа | ✓ | ✓ | ✗ | ✓ |
| Passkey або ключ безпеки FIDO2 | ✓ | ✓ | ✓ | н/з |
Кожен метод зупиняє найпоширенішу атаку: пароль, куплений із бази витоку або повторно використаний з іншого сайту. Уже цього достатньо, щоб увімкнути 2FA всюди. Різниця між методами — у колонках праворуч.
SMS — єдиний метод, який не витримує SIM-swap (перевипуск SIM-картки шахраями): хтось умовляє або підкуповує працівника оператора перенести ваш номер на свою SIM-картку і отримує ваші коди. NIST Rev. 4 відносить доставку через номер телефону до обмежених автентифікаторів: перевіряльники, які її використовують, мусять пропонувати альтернативу і зважати на сигнали ризику, наприклад недавнє перенесення номера. X у березні 2023 року прибрав 2FA через SMS для безкоштовних акаунтів, і багатьом довелося перейти на застосунки-автентифікатори, хоч вони цього й не просили. Для мене це не теорія: я бачив спроби SIM-swap або фішингу SMS-кодів на власному досвіді чи через знайомих.
Коди на пошту не бояться SIM-swap, але NIST Rev. 4 узагалі забороняє використовувати пошту для позасмугової автентифікації, і причина видна в першій колонці: якщо впаде поштова скринька, впадуть обидва фактори.
Коди TOTP обчислюються зі спільного секрету й поточного 30-секундного інтервалу, тож оператор зв'язку тут ні до чого. Але вони не витримують фішинг-проксі (набори на кшталт Evilginx), який показує вам справжню форму входу, передає пароль і код у реальному часі та забирає cookie сесії. Ще одна менш очевидна слабкість: сервер мусить зберігати ваш секрет TOTP у придатному для використання вигляді, тож витік бази даних розкриває і другий фактор. Сервер passkeys зберігає лише публічний ключ. Якщо хочете побачити HMAC, на якому тримається кожен код TOTP, у Генераторі хешів є режим HMAC.
Push-запити й атаки втомою
На одних акаунтах я використовую push-сповіщення на телефоні, на інших — застосунок-автентифікатор. З push найпростіше жити, і саме в цьому його слабкість. Під час злому Uber у вересні 2022 року нападник мав пароль підрядника (за словами Uber, імовірно купений у даркнеті), надсилав push-запити, доки підрядник не схвалив один, і написав йому у WhatsApp від імені ІТ-відділу Uber, що запити припиняться, якщо підтвердити.
Розв'язання — звірка числа: екран входу показує число, і ви вводите його в телефоні, тож запит, який ви не ініціювали, не вдасться схвалити машинально. Microsoft зробила це обов'язковим для push в Authenticator 8 травня 2023 року. Якщо ваш застосунок для push це підтримує, увімкніть. Якщо прийшов запит, якого ви не ініціювали, відхиліть його і змініть пароль: сам запит означає, що пароль уже працює в чужих руках.
Passkeys: два фактори за один крок
Passkey (ключ доступу) — це облікові дані WebAuthn: приватний ключ на вашому пристрої, який стає доступним після перевірки відбитка, обличчя або PIN. Це те, що у вас є, плюс те, ким ви є або що знаєте, тож passkey сам по собі двофакторний. І це єдиний із поширених методів у таблиці вище, який зупиняє фішинг-проксі. Браузер прив'язує підпис до справжнього домену сайту, тож підроблений домен не отримує нічого, що можна передати далі.
NIST Rev. 4 допускає синхронізовані passkeys (ті, що Apple, Google і менеджери паролів копіюють між вашими пристроями) на AAL2. Для AAL3 потрібен ключ без можливості експорту, тобто на практиці апаратний ключ безпеки. Ранній етап упровадження вже позаду: у жовтні 2025 року FIDO Alliance повідомив про понад 3 млрд passkeys, які захищають акаунти користувачів.
Перш ніж покладатися на passkey, перевірте, що підтримує ваша система. Перевірка Passkey показує, які можливості WebAuthn мають ваш браузер і пристрій, і працює локально в браузері, нічого не надсилаючи на сервер.
Що я б налаштував для кожного акаунта
| Акаунт | Налаштування | Запасний варіант |
|---|---|---|
| Основна пошта | Passkey або ключ безпеки | Застосунок TOTP, коди відновлення надруковані або в менеджері паролів |
| Менеджер паролів | Passkey або ключ безпеки, де підтримується | Застосунок TOTP; першим фактором лишається майстер-пароль |
| GitHub, хмарні консолі, реєстратор доменів | Ключ безпеки або passkey | Застосунок TOTP |
| Банк | Те, що банк пропонує у своєму застосунку | Попросіть банк вимкнути запасний варіант через SMS, якщо можливо |
| Соцмережі | Застосунок TOTP або passkey | Коди відновлення |
| Акаунти, де є лише SMS | SMS | Додайте PIN або заборону перенесення номера, якщо оператор таке має |
Через усю таблицю проходять два правила. Перше: акаунт захищений не краще, ніж найслабший увімкнений метод. Якщо SMS лишається запасним варіантом, нападник натисне «надіслати код інакше». Друге: зберігайте коди відновлення щоразу, коли щось вмикаєте, бо втрачений телефон без кодів перетворюється на звернення в підтримку або втрачений акаунт. Коли я допомагав людям повернути доступ до акаунтів, звичайною проблемою було те, що вони не знали даних для входу у власну резервну пошту.
Пароль важить і з сильним другим фактором, бо щойно його дізналися, у вас лишається один фактор. Генеруйте унікальний пароль для кожного сайту в Генераторі паролів, щоб витік деінде не давав нікому робочого першого фактора. Покрокові налаштування для двох найважливіших акаунтів є в статті як захистити акаунт Google і Apple ID, а якщо пароль уже витік, почніть зі статті що робити в перші 48 годин після витоку.
FAQ
Чи безпечна 2FA через SMS у 2026 році?
Вона краща, ніж сам пароль, але це найслабший другий фактор: його обходять через SIM-swap і через фішингові сторінки, які передають код далі. NIST SP 800-63B Rev. 4 відносить доставку через номер телефону до обмежених методів. Використовуйте SMS лише там, де іншого варіанта немає.
Чи є passkey двофакторною автентифікацією?
Так, якщо пристрій перед використанням просить відбиток пальця, обличчя або PIN. Це поєднання того, що у вас є (пристрій із приватним ключем), з тим, ким ви є або що знаєте. NIST допускає синхронізовані passkeys на AAL2, але не на AAL3, де потрібен ключ без можливості експорту, наприклад апаратний ключ безпеки.