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

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

10 минута чтенияБезопасность

Один только пароль является одним из факторов — «то, что вы знаете». Злоумышленник, который украл или угадал, что владеет учетной записью. Двухфакторная аутентификация добавляет второй, независимый фактор — «что-то, что у вас есть» или «что-то, чем вы являетесь», — который делает тот же украденный пароль бесполезным. Самое сложное не в том, использовать ли 2FA. Вопрос в том, какой метод использовать, потому что эти методы не одинаково сильны.

Полный текст статьи на английском языке представлен ниже.

TДвухфакторная аутентификация (2FA) или Многофакторная аутентификация (MFA) требует дополнительных учетных данных помимо пароля для входа в систему. Категории факторов:

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

TДва фактора из разные категории — это стандарт. Пароль и контрольный вопрос — это не настоящий двухфакторный аутентификация — оба являются «чем-то, что вы знаете».

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

От самого слабого к сильному:

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

Как на самом деле работает TOTP

При регистрации на сайте отображается QR-код, содержащий общий 160-битный секрет. Ваше приложение для аутентификации хранит его. Чтобы сгенерировать код, приложение:

  1. Tберёт текущее время Unix, делённое на 30 (даёт счётчик, который увеличивается каждые 30 секунд).
  2. HMAC-SHA1 с общим секретом счетчика.
  3. Извлекает 6 цифр из вывода HMAC (динамический). усечение).

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

Почему аппаратные ключи отличаются

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

Коды восстановления

В каждой учетной записи, защищенной 2FA, должны быть напечатаны резервные коды восстановления, которые хранятся физически — в сейфе, с важными документами, где угодно, кроме того же устройства, на котором хранится второй фактор. Потеря второго фактора без кодов восстановления навсегда блокирует доступ к большинству услуг. Поток восстановления варьируется: некоторые службы принимают проверку личности службой поддержки, но тенденция направлена ​​на жесткую блокировку учетных записей без кодов восстановления. Они защищены от фишинга по той же причине, что и аппаратные ключи, и синхронизируются через iCloud Keychain, Google Password Manager, 1Password и т. д. Среднесрочное направление — замена пароля + 2FA ключами доступа для новых сайтов, сохраняя при этом пароль + аппаратный ключ для устаревших.

Где 2FA имеет наибольшее значение

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

Часто задаваемые вопросы

Стоит ли использовать SMS 2FA?
Да, если не будет предложено лучшего варианта. Двухфакторная аутентификация по SMS значительно лучше, чем отсутствие двухфакторной аутентификации: она предотвращает большую часть атак с подбросом учетных данных. Но для любой учетной записи, где вместо этого вы можете использовать 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 и аппаратные ключи