PASSWORD••••••factor 1+YubiKeyfactor 2two factors → access

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

10 хв. читанняБезпека

Лише пароль є одним із факторів — «щось, що ви знаєте». Зловмисник, який викрадає або здогадується про це, володіє обліковим записом. Двофакторна автентифікація додає другий, незалежний фактор — «щось у вас є» або «щось, що ви є», — що робить той самий викрадений пароль марним. Важка частина полягає не в тому, чи використовувати 2FA. Це те, який метод використовувати, оскільки методи не однаково сильні.

Повний текст статті подано англійською мовою нижче.

Двофакторна автентифікація (2FA) або багатофакторна автентифікація (MFA) вимагає додаткових облікових даних, окрім пароля, для входу. Категорії факторів:

  • Щось, що ви знаєте — пароль, PIN-код, безпека запитання
  • Щось у вас є — телефон, апаратний маркер, смарт-картка
  • Щось, що ви — відбиток пальця, обличчя, сітківка, голос

Два фактори з різних категорій — стандарт. Пароль і таємне запитання не є справжнім 2FA — і те, і інше є «тем, що ви знаєте».

Рейтинг факторів

Від найслабшого до найсильнішого:

  • SMS — оригінальний основний 2FA. Вразливий до заміни SIM-карти (зловмисник переконує оператора перенести ваш номер) і до перехоплення через слабкі місця SS7. Це все ж краще, ніж відсутність 2FA, але найслабший варіант, який досі широко використовується.
  • Коди, що надсилаються електронною поштою — настільки ж надійні, як і сам обліковий запис електронної пошти, який часто має слабший 2FA. Прийнятний як крайній засіб відновлення, а не як основний фактор.
  • TOTP (одноразовий пароль на основі часу) — коди, що генеруються програмою автентифікації (Aegis, Authy, Google Authenticator, 1Password) кожні 30 секунд, отримані зі спільного секрету. Піддається фішингу, оскільки зловмисник у режимі реального часу, який обманом змусить вас ввести код на підробленому сайті, може його відтворити.
  • Push-повідомлення — «підтвердити цей вхід?» сповіщення на надійному пристрої. Зручний, але вразливий до «втоми MFA», коли зловмисники спамять схвалення, доки користувач не торкнеться «так».
  • Апаратні ключі безпеки (FIDO2/WebAuthn) — фізичні маркери USB/NFC, як-от YubiKey, Solo, Google Titan. Ключ підписує виклик від сайту, криптографічно прив’язуючи відповідь до походження сайту, тобто фішинг неможливий, оскільки підроблений сайт не може активувати правильний підпис. Це золотий стандарт.

Як насправді працює TOTP

Після реєстрації на сайті відображається QR-код, який містить спільний 160-бітний секрет. Ваша програма автентифікації зберігає його. Щоб згенерувати код, програма:

  1. Дить поточний час Unix на 30 (дає лічильник, який збільшується кожні 30 секунд).
  2. HMAC-SHA1 зі спільним секретом через лічильник.
  3. Витягує 6 цифр із виводу HMAC (динамічний усічення).

Сервер самостійно обчислює те саме значення та приймає код, якщо він збігається. Протокол визначено в RFC 6238; він симетричний, повністю автономний і працює в кожній програмі автентифікатора.

Чому відрізняються апаратні ключі

FIDO2/WebAuthn прив’язує автентифікацію до джерела веб-сайту в самому протоколі. Апаратний ключ ніколи не відкриває свій закритий ключ; він лише підтверджує володіння шляхом підписання виклику, який включає домен сайту. Якщо фішинговий сайт evil.com просить підпис YubiKey, ключ означає виклик для evil.com, який сайт справжнього банку не прийме. За допомогою TOTP користувач може ввести свій 6-значний код на evil.com, який у режимі реального часу пересилає його справжньому банку. Апаратні ключі закривають цю діру.

Коди відновлення

Кожний обліковий запис, захищений 2FA, має роздрукувати та зберігати фізично резервні коди відновлення — у сейфі з важливими документами, де завгодно, крім того самого пристрою, на якому зберігається другий фактор. Втрата другого фактора без кодів відновлення назавжди блокує доступ до більшості послуг. Потік відновлення відрізняється: деякі служби приймають підтвердження особи службою підтримки, але існує тенденція до жорсткого блокування для облікових записів без кодів відновлення.

Паролі: 2FA в одному натисканні

Паролі (облікові дані FIDO2, що зберігаються у вашій брелоку ОС або менеджері паролів) згортають пароль + другий фактор в одну біометричну перевірку або перевірку PIN-коду на пристрої, який уже пройшов авторизація на рівні пристрою. Вони захищені від фішингу з тієї ж причини, що й апаратні ключі, і вони синхронізуються через iCloud Keychain, Google Password Manager, 1Password тощо. Середньостроковий напрямок — замінити пароль + 2FA на ключі доступу для нових сайтів, зберігаючи пароль + апаратний ключ для застарілих.

Там, де 2FA має найбільше значення

Цінні облікові записи, які потребують надійного 2FA: ваша основна електронна адреса (вектор відновлення для всього іншого), ваш менеджер паролів, ваш банк, реєстратор домену, ваші хмарні облікові записи (AWS/GCP/Azure) і ваші сховища коду (GitHub/GitLab). Для них апаратний ключ — бажано два для резервного копіювання — є відповідною інвестицією. Для всього іншого, TOTP через програму автентифікації є практичним за замовчуванням.

Часті запитання

Чи варто використовувати SMS 2FA?
Так, якщо кращого варіанту не запропоновано. SMS 2FA значно кращий, ніж відсутність 2FA — він зупиняє більшість атак із підкиданням облікових даних. Але для будь-якого облікового запису, де замість цього можна використовувати TOTP або апаратний ключ, зробіть це. Атаки обміну SIM-картою на облікові записи, захищені SMS-повідомленнями, призвели до реальних втрат, особливо для криптовалютних і гучних соціальних облікових записів.
Яку програму автентифікації слід використовувати?
Aegis (з відкритим вихідним кодом, Android) і Raivo (з відкритим кодом, iOS) є чистим вибором. 1Password і Bitwarden можуть зберігати секрети TOTP поряд з паролями. Уникайте Google Authenticator, якщо у вас немає резервної копії — донедавна він не синхронізувався, і багато користувачів втратили облікові записи після втрати телефону. Authy синхронізується, але у 2024 році була зламана база даних контактів.
Чи варті вартості апаратних ключів?
Для ваших важливих рахунків, так. Пара YubiKeys (один основний, один резервний у сейфі) коштує приблизно 90 доларів США, і це найвища інвестиція в безпеку, яку будь-коли зробить більшість людей. Будь-який обліковий запис, для якого можна налаштувати апаратний ключ, і багато критично важливих облікових записів можуть бути такими.
Чи можна обійти 2FA?
TOTP і push-сповіщення можна обійти за допомогою фішингу в реальному часі (зловмисник проксі-сервер для входу на справжній сайт). Апаратні ключі (FIDO2) не можуть, оскільки прив’язка джерела робить підпис специфічним для сайту. Потоки відновлення облікового запису також послаблюють 2FA — якщо ви можете скинути 2FA за допомогою SMS, SMS стає поверхнею атаки.
Чому деякі сайти підтримують лише SMS 2FA?
Вартість реалізації та доступність. SMS працює на кожному телефоні без встановлення програми; TOTP/FIDO вимагають одноразового налаштування, що деяких користувачів бентежить. Великі банки повільно впроваджували FIDO; хмарні та технічні служби прийняли його кілька років тому. Хороша новина: кожен сайт, який має найбільше значення для вашої безпеки, підтримує принаймні TOTP, а більшість підтримує апаратні ключі.
Пояснення щодо двофакторної автентифікації: TOTP, Push, SMS і апаратні ключі