Открыть сервис

U2F

U2F (Universal 2nd Factor, универсальный второй фактор) — это открытый стандарт аутентификации, предназначенный для усиления безопасности учётных записей в интернете путём использования физического устройства (токена) в качестве второго фактора. Стандарт был разработан в 2012—2014 годах консорциумом FIDO Alliance (Fast IDentity Online) с участием таких компаний, как Google, Yubico и NXP Semiconductors. U2F позволяет пользователю подтвердить свою личность, вставив USB-ключ или используя устройство с поддержкой NFC или Bluetooth, и нажав на нём кнопку, без необходимости ввода одноразового кода.

История

Предпосылки создания

К началу 2010-х годов традиционные методы двухфакторной аутентификации, основанные на одноразовых паролях (TOTP, HOTP), отправляемых через SMS или генерируемых приложениями, показали ряд уязвимостей. Атаки с перехватом SMS (SIM-swapping), фишинг, при котором пользователь вводит код на поддельном сайте, и вредоносное ПО, перехватывающее ввод с клавиатуры, делали такие методы недостаточно надёжными. Потребность в физическом, криптографически защищённом устройстве, устойчивом к фишингу, стала очевидной.

Разработка и принятие

В 2012 году компания Google запустила внутренний проект по созданию аппаратного ключа безопасности. Параллельно с этим формировался консорциум FIDO Alliance. В 2014 году был опубликован первый проект спецификации U2F 1.0. Стандарт быстро получил поддержку: браузеры Google Chrome и Opera внедрили его на уровне платформы, а сервисы Google, Dropbox, GitHub и Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ) начали поддерживать U2F-токены.

Эволюция и преемственность

В 2018 году FIDO Alliance представил стандарт WebAuthn (Web Authentication), который стал частью спецификации W3C. WebAuthn расширил возможности U2F, добавив поддержку биометрической аутентификации (отпечатки пальцев, Face ID) и встроенных в устройства датчиков (например, Touch ID на Mac). Однако U2F остаётся обратно совместимым с WebAuthn: большинство современных U2F-токенов работают и по новому протоколу.

Принцип работы

Криптографическая основа

U2F использует асимметричную криптографию (алгоритм ECDSA на эллиптической кривой P-256). Каждый токен при регистрации генерирует уникальную пару ключей: закрытый ключ хранится в защищённой памяти устройства и никогда не покидает его, открытый ключ передаётся серверу.

Процесс регистрации

  1. Пользователь вводит логин и пароль (первый фактор) на сайте.
  2. Сервер запрашивает регистрацию U2F-устройства, отправляя клиенту случайную строку (challenge) и идентификатор приложения (appID).
  3. Браузер передаёт запрос токену через USB, NFC или Bluetooth.
  4. Пользователь физически подтверждает действие, нажав кнопку на токене.
  5. Токен создаёт новую пару ключей, подписывает challenge закрытым ключом и возвращает сертификат устройства (аттестацию) вместе с открытым ключом.
  6. Сервер сохраняет открытый ключ и метаданные устройства для последующей аутентификации.

Процесс аутентификации

  1. После ввода пароля сервер отправляет новый challenge и appID.
  2. Токен подписывает challenge своим закрытым ключом и возвращает подпись.
  3. Сервер проверяет подпись с помощью сохранённого открытого ключа. Если подпись верна, аутентификация считается успешной.

Защита от фишинга

Ключевая особенность U2F — привязка к appID (домену сайта). Токен подписывает challenge вместе с appID, поэтому подпись, созданная для одного сайта (например, google.com), не может быть использована на поддельном сайте (g00gle.com). Браузер также проверяет соответствие appID текущему домену, что делает атаки типа «человек посередине» (MITM) практически невозможными.

Устройство и типы токенов

Аппаратная реализация

U2F-токен представляет собой компактное устройство (обычно размером с флеш-накопитель), содержащее:

Основные типы

ТипИнтерфейсОсобенности применения
USB-ключUSB-A / USB-CПодключается напрямую к компьютеру. Наиболее распространённый тип.
NFC-токенNFCИспользуется с мобильными устройствами (Android, iPhone).
КомбинированныйUSB + NFCУниверсальное решение для работы и с ПК, и со смартфонами.
Bluetooth-токенBLEПодходит для устройств без USB-порта (например, iPad).

Примеры устройств

Поддержка и применение

Поддерживаемые сервисы

U2F поддерживается крупнейшими интернет-платформами, в том числе:

Поддержка в браузерах и операционных системах

Применение в корпоративной среде

U2F широко используется в организациях для защиты административных панелей, систем управления доступом (IAM), VPN и облачных сервисов. Компании, такие как Google, внедрили U2F для всех своих сотрудников, полностью отказавшись от SMS-кодов.

Преимущества и недостатки

Преимущества

Недостатки

Критика и уязвимости

Атаки на физический доступ

Если злоумышленник получает физический доступ к токену, он может использовать его для аутентификации, если знает пароль (первый фактор). Однако кнопка на устройстве предотвращает автоматическое использование.

Атаки на протокол

В 2019 году исследователи из Университета Бирмингема выявили уязвимость, связанную с возможностью перехвата и повторного использования подписи в некоторых реализациях U2F. Однако производители быстро выпустили обновления прошивок.

Проблемы совместимости

Некоторые старые версии браузеров или операционных систем не поддерживают U2F, что вынуждает пользователей использовать альтернативные методы аутентификации.

Будущее стандарта

Стандарт U2F фактически поглощён более широким стандартом WebAuthn, который является частью спецификации W3C. WebAuthn сохраняет все преимущества U2F, добавляя поддержку биометрии, встроенных датчиков устройств (например, Touch ID) и аутентификации без пароля (passwordless). Однако существующие U2F-токены продолжают работать и поддерживаются всеми современными браузерами.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →