WebAuthn и FIDO2 часто воспринимают как одно и то же, потому что эти технологии используются вместе для входа без пароля и создания passkeys. Но между ними есть важное различие: WebAuthn — это веб-интерфейс для взаимодействия сайта с аутентификатором, а FIDO2 — более широкая система стандартов, включающая WebAuthn и протокол связи с устройствами. :contentReference[oaicite:0]{index=0}
Если объяснять коротко: WebAuthn отвечает за то, как сайт просит выполнить вход, а FIDO2 описывает полный механизм, благодаря которому устройство, браузер и аутентификатор могут безопасно подтвердить личность пользователя. Понимание этой разницы помогает правильно выбирать технологии для внедрения аутентификации и не путать отдельный API с целой архитектурой.
- Что такое WebAuthn
- Что такое FIDO2
- Главное отличие WebAuthn от FIDO2
- Как WebAuthn и FIDO2 работают вместе при входе
- Почему эти технологии часто называют вместе
- Какую роль играют CTAP и аппаратные ключи
- WebAuthn без FIDO2: возможно ли это?
- Чем FIDO2 отличается от обычной двухфакторной аутентификации
- Что выбирать разработчику: WebAuthn или FIDO2
- Типичные ошибки при понимании WebAuthn и FIDO2
- Считать WebAuthn и FIDO2 двумя конкурирующими технологиями
- Думать, что биометрия передаётся сайту
- Игнорировать восстановление доступа
- Как разобраться, что поддерживает конкретный сервис
- Главное, что нужно запомнить
Что такое WebAuthn
WebAuthn (Web Authentication) — это стандартный веб-API, который позволяет сайтам использовать криптографические ключи для регистрации и проверки пользователей вместо традиционных паролей или в дополнение к ним. Он разработан рабочей группой W3C и предназначен прежде всего для взаимодействия веб-приложения с браузером и устройствами аутентификации. :contentReference[oaicite:1]{index=1}
Когда пользователь создаёт учётную запись или включает вход через WebAuthn, сайт не получает пароль или биометрические данные. Вместо этого создаётся пара криптографических ключей:
- закрытый ключ хранится на устройстве пользователя и не передаётся серверу;
- открытый ключ сохраняется сервисом и используется для проверки подписи при входе.
При следующей авторизации сайт отправляет уникальный запрос, устройство подтверждает действие пользователя с помощью локальной проверки, например PIN-кода или биометрии, а затем возвращает криптографическое подтверждение. Сервер проверяет его с помощью открытого ключа. :contentReference[oaicite:2]{index=2}
Что такое FIDO2
FIDO2 — это набор стандартов, созданный FIDO Alliance совместно с W3C. Он объединяет два ключевых компонента:
- WebAuthn — веб-интерфейс для сайтов и приложений;
- CTAP (Client to Authenticator Protocol) — протокол связи между устройством-клиентом и внешним или встроенным аутентификатором.
Именно сочетание WebAuthn и CTAP формирует архитектуру FIDO2. Например, если пользователь подключает аппаратный ключ безопасности через USB или NFC, браузеру и операционной системе нужен механизм общения с этим ключом. Эту задачу решает CTAP, а WebAuthn обеспечивает взаимодействие веб-сайта с браузером. :contentReference[oaicite:3]{index=3}
Главное отличие WebAuthn от FIDO2
Основная разница заключается в масштабе понятия. WebAuthn является частью FIDO2, а не отдельной альтернативой ему.
| Критерий | WebAuthn | FIDO2 |
|---|---|---|
| Что это | Веб-API для аутентификации | Набор стандартов для всей схемы FIDO-аутентификации |
| Основная задача | Связать сайт, браузер и механизм проверки личности | Обеспечить работу сайта, устройства и аутентификатора вместе |
| Основной компонент | Web Authentication API | WebAuthn + CTAP |
| Где используется | В веб-приложениях и браузерах | В браузерах, операционных системах, аппаратных ключах и других аутентификаторах |
| Пример | Сайт вызывает запрос на вход через браузер | Телефон, ключ безопасности или встроенный модуль выполняет криптографическую проверку |
Как WebAuthn и FIDO2 работают вместе при входе
Чтобы понять разницу на практике, полезно рассмотреть обычный сценарий входа с passkey.
-
Сайт сообщает браузеру, что хочет выполнить аутентификацию через WebAuthn.
-
Браузер передаёт запрос операционной системе или подходящему аутентификатору.
-
Аутентификатор подтверждает действие пользователя через биометрию, PIN-код или другое разрешённое действие.
-
Устройство подписывает специальный запрос закрытым ключом.
-
Сайт проверяет подпись с помощью ранее сохранённого открытого ключа.
В этом процессе WebAuthn обеспечивает часть взаимодействия между сайтом и клиентом, а FIDO2 описывает общий механизм, включая связь с аутентификатором. :contentReference[oaicite:4]{index=4}
Почему эти технологии часто называют вместе
Путаница возникает из-за того, что пользователю обычно не нужно разделять WebAuthn и FIDO2. Большинство современных сценариев входа использует их одновременно.
Например, когда человек входит на сайт с помощью отпечатка пальца на смартфоне:
- сайт использует WebAuthn для запроса аутентификации;
- операционная система предоставляет доступ к встроенному аутентификатору;
- вся архитектура относится к FIDO2;
- если используются passkeys, они также основаны на этих стандартах.
Поэтому в документации можно встретить формулировки вроде «поддержка WebAuthn», «FIDO2-аутентификация» или «FIDO2/WebAuthn». Они могут описывать одну и ту же технологическую цепочку, но с разным акцентом.
Какую роль играют CTAP и аппаратные ключи
Главное, что добавляет FIDO2 по сравнению с одним WebAuthn, — возможность работать не только с функциями самого устройства, но и с внешними аутентификаторами.
К ним относятся:
- USB-ключи безопасности;
- устройства с поддержкой NFC или Bluetooth;
- встроенные защищённые модули смартфонов и компьютеров.
CTAP обеспечивает обмен командами между клиентским устройством и таким аутентификатором. Благодаря этому один и тот же подход может применяться как для встроенной биометрии телефона, так и для отдельного физического ключа. :contentReference[oaicite:5]{index=5}
WebAuthn без FIDO2: возможно ли это?
С практической точки зрения WebAuthn обычно рассматривают как часть FIDO2, но технически эти понятия описывают разные уровни системы.
Разработчик веб-сервиса может использовать WebAuthn API, не углубляясь в детали CTAP, потому что браузер и операционная система берут часть задач на себя. Однако полноценная поддержка различных типов аутентификаторов требует учитывать всю FIDO2-архитектуру.
Это особенно важно при создании корпоративных систем, где нужно заранее определить:
- какие устройства будут разрешены;
- нужны ли аппаратные ключи;
- требуется ли строгий контроль типа аутентификатора;
- как пользователь восстановит доступ при потере устройства.
Чем FIDO2 отличается от обычной двухфакторной аутентификации
FIDO2 часто используют как замену паролям или более безопасный второй фактор. Его отличие в том, что подтверждение строится на криптографии, а не на передаче одноразового кода.
При SMS-коде или некоторых приложениях-аутентификаторах пользователь вводит секрет, который может стать целью перехвата или социальной инженерии. В FIDO2 сервер получает только криптографическое подтверждение, а закрытый ключ остаётся у пользователя. :contentReference[oaicite:6]{index=6}
Это не означает, что FIDO2 полностью устраняет все риски. Например, остаются вопросы управления устройствами, восстановления доступа и защиты самого аккаунта пользователя.
Что выбирать разработчику: WebAuthn или FIDO2
Выбор зависит от задачи, потому что эти термины находятся на разных уровнях.
| Задача | На что ориентироваться |
|---|---|
| Добавить вход без пароля на сайт | Реализация WebAuthn |
| Поддержать аппаратные ключи безопасности | Архитектура FIDO2 с учётом CTAP |
| Внедрить passkeys | Совместимость с FIDO2/WebAuthn |
| Создать корпоративную систему аутентификации | Полная оценка возможностей FIDO2 и политики доступа |
Типичные ошибки при понимании WebAuthn и FIDO2
Считать WebAuthn и FIDO2 двумя конкурирующими технологиями
Это разные уровни одной экосистемы. WebAuthn не заменяет FIDO2, а является одной из его основных частей.
Думать, что биометрия передаётся сайту
При стандартной реализации сайт не получает отпечаток пальца или изображение лица. Биометрическая проверка обычно выполняется локально на устройстве, а сервис получает только результат криптографической проверки. :contentReference[oaicite:7]{index=7}
Игнорировать восстановление доступа
Отказ от паролей требует заранее продумать, что произойдёт при потере телефона, аппаратного ключа или доступа к учётной записи. Без этого даже безопасная система может стать неудобной для пользователей.
Как разобраться, что поддерживает конкретный сервис
Если вы выбираете сервис, платформу или способ внедрения аутентификации, полезно проверить не только наличие слова FIDO2 или WebAuthn в описании.
Обратите внимание на следующие вопросы:
- поддерживаются ли passkeys или только аппаратные ключи;
- какие устройства можно использовать для входа;
- работает ли восстановление доступа;
- можно ли применять несколько способов аутентификации;
- какие браузеры и платформы поддерживаются.
Главное, что нужно запомнить
WebAuthn и FIDO2 не являются альтернативами. WebAuthn — это интерфейс, через который сайт взаимодействует с механизмом аутентификации, а FIDO2 — более полная система, включающая WebAuthn и протокол связи с аутентификаторами CTAP.
Если задача связана с обычным веб-сайтом, чаще всего речь идёт о реализации WebAuthn. Если нужно построить полноценную инфраструктуру входа с passkeys, аппаратными ключами и разными устройствами, нужно рассматривать FIDO2 целиком.
Практический следующий шаг зависит от вашей роли: пользователю достаточно проверить поддержку passkeys или FIDO2 на нужном сервисе, а разработчику — определить требования к устройствам, восстановлению доступа и уровню контроля над аутентификацией.
