Більше ніж SMS: апаратні ключі, TOTP і passkeys
Двофакторна автентифікація на основі SMS може бути обійдена через підміну SIM-карти. Дізнайтеся різницю між автентифікаторами, апаратними ключами та ключами доступу.
Зміст
Чому SMS є найслабшим варіантом 2FA
Двофакторна автентифікація (2FA) додає другий крок верифікації поверх вашого пароля. Найпоширеніша форма — шестизначний код, надісланий через SMS — краще, ніж нічого, але має добре задокументовані слабкості:
- SIM-свопінг: зловмисники телефонують вашому мобільному оператору, видають себе за вас і переконують перенести ваш номер на SIM-картку під їхнім контролем. Отримавши номер, вони отримують усі ваші SMS-коди.
- Вразливості SS7: телефонний протокол, що лежить в основі SMS (Signaling System 7), має відомі недоліки, які дозволяють перехоплювати SMS-повідомлення складним акторам.
- Фішингові атаки: фішингові сайти в реальному часі можуть за секунди передати ваш SMS-код зловмиснику. Ви вводите код на підробленому сайті, а зловмисник використовує його на справжньому до закінчення терміну дії.
- Клонування SIM: фізично або через доступ до оператора зловмисник дублює вашу SIM-картку.
Атаки SIM-свопінгу спрямовані на власників криптовалюти, акаунти в соціальних мережах і керівників компаній. Для цінних акаунтів не слід покладатися виключно на SMS-2FA.
TOTP: одноразові паролі на основі часу
TOTP — стандарт, що лежить в основі застосунків-автентифікаторів на кшталт Google Authenticator, Authy, Aegis і Raivo. При налаштуванні 2FA на сайті:
- Сайт генерує спільний секрет (ключ у кодуванні base32), зазвичай представлений у вигляді QR-коду.
- Ваш застосунок-автентифікатор зберігає цей секрет.
- Кожні 30 секунд і застосунок, і сервер незалежно обчислюють 6-значний код за одним і тим самим алгоритмом (HMAC-SHA1), застосовуючи секрет і поточний часовий штамп.
- Оскільки обидві сторони використовують однаковий секрет і синхронізований час, коди збігаються.
TOTP значно надійніший за SMS, тому що:
- Жодного оператора не задіяно — коди генеруються виключно на вашому пристрої
- Коди не можна перехопити через SS7
- SIM-свопінг не впливає на TOTP-коди
Слабке місце, що залишається: TOTP все одно вразливий до фішингу в реальному часі — зловмисник може передати ваш TOTP-код у 30-секундному вікні. Саме тому найбезпечніші користувачі йдуть далі.
Найкращі TOTP-застосунки
- Aegis (Android, відкритий код): зашифрований бекап, імпорт/експорт, найкращий на Android
- Raivo OTP (iOS, відкритий код): чистий інтерфейс, резервна копія в iCloud
- Ente Auth (кросплатформний, відкритий код): E2EE-хмарний бекап, працює на iOS, Android і комп'ютері
- Уникайте Authy для нових налаштувань: хоча він популярний, функція синхронізації між пристроями Authy використовувалася в атаках SIM-свопінгу; він також обмежує параметри експорту
Апаратні ключі безпеки
Апаратні ключі (фізичні пристрої на кшталт YubiKey, Google Titan Key або Nitrokey) є золотим стандартом 2FA. Вони використовують протоколи FIDO2/WebAuthn і FIDO U2F.
Як працює апаратний ключ:
- При реєстрації ключа на сайті ключ генерує унікальну пару ключів для цього сайту. Відкритий ключ надсилається на сайт; приватний ключ ніколи не покидає апаратне забезпечення.
- При вході сайт надсилає криптографічний виклик.
- Користувач торкається ключа (фізична присутність є обов'язковою).
- Ключ підписує виклик приватним ключем — підтверджуючи факт фізичного володіння.
- Підпис включає URL-адресу походження сайту, тобто фішинговий сайт отримує підпис для власного походження, який реальний сервер відхиляє.
Ця прив'язка до походження є ключовою відмінністю: апаратні ключі є стійкими до фішингу. Фішингова атака в реальному часі не може передати дійсну відповідь, оскільки підпис прив'язаний до домену сайту.
Рекомендації щодо YubiKey
- YubiKey 5 NFC: найбільш універсальний — USB-A, NFC для мобільних, підтримує FIDO2, TOTP, OpenPGP, PIV та інше
- YubiKey 5C NFC: версія з USB-C для сучасних ноутбуків
- Security Key NFC: бюджетний варіант з підтримкою лише FIDO2/U2F (без TOTP або розширених функцій)
Завжди купуйте два ключі і реєструйте обидва — один основний, один запасний, що зберігається у захищеному місці. Втрата єдиного апаратного ключа без зареєстрованих резервних кодів може заблокувати вас.
Passkeys: майбутнє автентифікації
Passkeys — новіший стандарт на основі FIDO2/WebAuthn, що повністю усуває паролі. Вони використовують ту саму криптографію з відкритим ключем, що й апаратні ключі, але зберігають приватний ключ у захищеному анклаві вашого пристрою (Apple Secure Enclave, Android Strongbox або апаратному ключі), а не в окремому фізичному токені.
Як працюють passkeys:
- При реєстрації ваш пристрій генерує пару ключів. Приватний ключ залишається в захищеному анклаві. Відкритий ключ реєструється на сайті.
- Для автентифікації сайт надсилає виклик. Ваш пристрій розблоковує passkey за допомогою біометрії (Face ID, відбиток пальця) або PIN-коду пристрою та підписує виклик.
- Жодного пароля не вводять і не передають.
Passkeys пропонують:
- Стійкість до фішингу: прив'язка до походження запобігає атакам через передачу
- Немає пароля для крадіжки або повторного використання
- Зручність біометрії: автентифікація за відбитком пальця замість введення коду
- Синхронізація між пристроями: Apple Passkeys синхронізуються через iCloud Keychain; реалізація Google — через Google Password Manager
Passkeys підтримуються Apple, Google, Microsoft і великими сайтами, включно з GitHub, Shopify і PayPal. Для сайтів, які підтримують passkeys, — це рекомендований вибір.
Вибір правильного методу 2FA
| Метод | Стійкий до фішингу | Без ризику оператора | Рекомендація |
|---|---|---|---|
| SMS | Ні | Ні | Уникайте для важливих акаунтів |
| TOTP-застосунок | Ні | Так | Хороша база для більшості акаунтів |
| Апаратний ключ | Так | Так | Найкраще для пошти, фінансів, ідентифікації |
| Passkey | Так | Так | Найкраще там, де доступно |
Для більшості людей: використовуйте TOTP для повсякденних акаунтів, апаратні ключі — для пошти, фінансових і робочих акаунтів, і переходьте на passkeys там, де є така можливість.