WebAuthn
WebAuthn (Web Authentication) — это веб-стандарт, определяющий интерфейс программирования приложений (API) для аутентификации пользователей на веб-сайтах и в приложениях с использованием криптографических ключей вместо традиционных паролей. Разработанный Консорциумом Всемирной паутины (W3C) и альянсом FIDO (Fast IDentity Online), WebAuthn является ключевым компонентом инициативы FIDO2, направленной на создание безопасной и удобной беcпарольной аутентификации в интернете. Стандарт поддерживается всеми основными браузерами (Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge) и операционными системами (Windows, macOS, Android, iOS).
История
Разработка WebAuthn началась в 2015 году в рамках работы альянса FIDO над спецификацией FIDO2. Основной целью было создание открытого, стандартизированного протокола, который позволил бы заменить пароли на криптографическую аутентификацию, устойчивую к фишингу, перехвату и утечкам баз данных. В 2016 году проект был передан в W3C, где началась работа над стандартом Web Authentication API.
4 марта 2019 года W3C официально утвердил WebAuthn в качестве рекомендации (W3C Recommendation), что стало важным этапом в развитии веб-безопасности. В 2021 году стандарт был обновлён (WebAuthn Level 2), добавив поддержку новых типов устройств (например, платформенных аутентификаторов на мобильных устройствах) и улучшенных сценариев использования. К 2023 году WebAuthn стал широко применяться крупными технологическими компаниями, включая Google, Apple, Microsoft, а также банковскими и государственными системами.
Принцип работы
WebAuthn основан на асимметричной криптографии. При регистрации на сервисе (регистрация учётной записи) устройство пользователя (например, смартфон, ноутбук или внешний USB-ключ) генерирует пару криптографических ключей: закрытый (приватный) и открытый (публичный). Открытый ключ передаётся на сервер и связывается с учётной записью пользователя. Закрытый ключ остаётся на устройстве пользователя и никогда не покидает его, не передаётся по сети и не сохраняется на сервере.
При последующей аутентификации (входе в систему) сервер отправляет устройству пользователя случайный вызов (challenge). Устройство подписывает этот вызов закрытым ключом, и подпись отправляется обратно на сервер. Сервер проверяет подпись с помощью сохранённого открытого ключа. Если подпись верна, пользователь считается аутентифицированным. Таким образом, злоумышленник не может перехватить пароль (его нет) или подделать аутентификацию, не имея физического доступа к устройству пользователя.
Роли участников
- Пользователь — лицо, проходящее аутентификацию.
- Веб-сайт (реализующая сторона) — сервер, предоставляющий услугу и хранящий открытые ключи пользователей.
- Аутентификатор — устройство (встроенное или внешнее), которое генерирует и хранит закрытые ключи и выполняет криптографические операции. Аутентификаторы бывают двух типов:
- Платформенные — встроенные в устройство (например, датчик отпечатка пальца в смартфоне, камера Face ID, модуль TPM в ноутбуке).
- Кроссплатформенные — внешние устройства, подключаемые через USB, NFC или Bluetooth (например, USB-ключи YubiKey, смарт-карты, мобильные телефоны, работающие как аутентификаторы).
- Браузер — программное обеспечение, которое реализует WebAuthn API и выступает посредником между веб-сайтом и аутентификатором.
Преимущества
- Устойчивость к фишингу — аутентификация привязана к конкретному домену (origin) веб-сайта. Даже если пользователь попадёт на поддельный сайт, аутентификатор не подпишет вызов, так как домен не совпадёт с зарегистрированным.
- Отсутствие паролей — пользователю не нужно запоминать и вводить сложные пароли, что снижает риск их утечки или повторного использования.
- Защита от перехвата и атак «человек посередине» — закрытый ключ не передаётся по сети, а криптографическая подпись не может быть использована повторно.
- Удобство использования — аутентификация может выполняться одним касанием (биометрия) или подключением внешнего ключа.
- Стандартизация и кроссплатформенность — единый протокол работает во всех основных браузерах и операционных системах.
Недостатки и ограничения
- Требование к оборудованию — для использования WebAuthn необходимо устройство с поддержкой аутентификатора (встроенного или внешнего). Старые компьютеры без TPM или без биометрических датчиков могут не поддерживать платформенные аутентификаторы.
- Риск потери доступа — если пользователь потеряет устройство, на котором хранится закрытый ключ, и не настроит резервные методы аутентификации (например, резервные ключи или восстановление через электронную почту), доступ к учётной записи может быть утрачен.
- Сложность первоначальной настройки — для массового внедрения требуется обучение пользователей и настройка инфраструктуры со стороны сервисов.
- Конфиденциальность — некоторые типы аутентификаторов (например, на базе биометрии) могут вызывать опасения относительно сбора и хранения биометрических данных, хотя стандарт не требует их передачи на сервер.
Применение
WebAuthn используется в различных сферах, где требуется повышенная безопасность аутентификации:
- Корпоративные системы — для доступа к внутренним ресурсам, облачным сервисам (например, Microsoft Azure Active Directory, Google Workspace) и VPN.
- Финансовые услуги — для входа в интернет-банкинг, проведения платежей и подтверждения операций (например, PayPal, банки в Европе и США).
- Государственные порталы — для аутентификации граждан на порталах государственных услуг (например, в Эстонии, Великобритании, США).
- Социальные сети и онлайн-сервисы — для защиты учётных записей (например, Google, Apple, Facebook (компания Meta признана экстремистской и запрещена в РФ), GitHub, Twitter).
- Интернет вещей (IoT) — для безопасного доступа к устройствам и управления ими.
Примеры реализации
- Google — с 2022 года предлагает пользователям использовать WebAuthn в качестве основного метода аутентификации (Passkeys) для всех сервисов Google.
- Apple — в iOS 16 и macOS Ventura внедрила поддержку Passkeys на основе WebAuthn, позволяя аутентифицироваться с помощью Face ID или Touch ID.
- Microsoft — Windows Hello использует WebAuthn для входа в систему и доступа к веб-сайтам через браузер Edge.
- YubiKey — популярные USB-ключи, поддерживающие WebAuthn, используются для двухфакторной и беcпарольной аутентификации.
Критика
Основные критические замечания в адрес WebAuthn связаны с вопросами удобства для конечных пользователей. Некоторые эксперты отмечают, что процесс настройки и восстановления доступа может быть сложным для неопытных пользователей. Также существует критика в отношении централизации: хотя протокол децентрализован, крупные платформы (Google, Apple, Microsoft) фактически контролируют экосистему Passkeys, что может привести к vendor lock-in. Кроме того, высказываются опасения, что массовое использование биометрических аутентификаторов может создать риски для приватности, если биометрические данные будут скомпрометированы (хотя стандарт не предусматривает их передачу на сервер).
Перспективы
WebAuthn рассматривается как один из ключевых элементов перехода к беcпарольному будущему. Ожидается, что по мере распространения поддержки стандарта в операционных системах и браузерах, а также снижения стоимости внешних аутентификаторов, WebAuthn станет основным методом аутентификации в интернете. В 2023 году альянс FIDO и W3C объявили о начале работы над WebAuthn Level 3, который должен расширить поддержку для мобильных устройств и улучшить взаимодействие между разными платформами.
Источники
- W3C Recommendation: Web Authentication: An API for Public Key Credentials (WebAuthn), 4 March 2019.
- FIDO Alliance: FIDO2 Specification Overview, 2021.
- Google Security Blog: "Passkeys: A simpler and more secure way to sign in", 2022.
- Apple Developer Documentation: "Supporting Passkeys", 2022.
- Microsoft Learn: "Windows Hello and WebAuthn", 2023.
- Yubico: "WebAuthn: The Future of Authentication", 2020.
- Krebs on Security: "Why WebAuthn Matters", 2019.
- Ars Technica: "WebAuthn: The end of passwords as we know them?", 2021.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →