Анастасия Кириченко
Начинающий художник, настольный игроман и жуткий любитель природы

Что такое WebAuthn и как работает протокол

Что такое WebAuthn и как работает протокол

WebAuthn (Web Authentication) — это веб-стандарт, разработанный Консорциумом Всемирной паутины (W3C) и Альянсом FIDO. Он предназначен для стандартизации интерфейса и аутентификации пользователей с помощью открытого ключа на веб-основе.

Он реализует расширение обобщенного API-управления учетными данными W3C, которое является попыткой упорядочить взаимодействие между веб-сайтами и веб-браузерами при обмене учетными данными пользователя.

WebAuthn может использоваться в однофакторном режиме, при этом пользователю не нужно предоставлять какую-либо дополнительную информацию, такую ​​как имя пользователя и пароли. Однако для дополнительной безопасности сторона, запрашивающая аутентификацию (сайт), может по-прежнему требовать эти данные, создавая схему многофакторной аутентификации.

Эта система также может быть объединена с другими факторами аутентификации, такими как жесты, биометрическая проверка или отправка кодов в приложения, что повышает общую безопасность. В это же время пользователям по-прежнему не нужно будет вводить множественные личные длинные и целые строки сложных символов.

Стандарт WebAuthn может быть реализован различными способами. Основные криптографические операции выполняются аутентификатором, который представляет собой абстрактную функциональную модель. Она, в основном, не зависит от деталей управления.

Это позволяет реализовать WebAuthn исключительно в программном обеспечении, а также использовать доверенную среду исполнения или криптографический процессор для защиты информации (TPM).

Таким образом, криптографические операции проходят с использованием внешних аппаратных носителей, через USB, Bluetooth с низким энергопотреблением или технологии беспроводной передачи данных NFC. Этот метод аутентификации, как правило, куда безопаснее. Дело в том, что материал с закрытым ключом никогда не будет доступен программному обеспечению и вредоносному ПО на компьютере. Связь с внешними аппаратными устройствами предназначена для работы с протоколом Client-Authenticator Protocol (CTAP).

WebAuthn и CTAP являются результатом проекта FIDO2, целью которого считается стандартизация безопасных и беспарольных схем аутентификации. Область применения протокола выходит за рамки браузера и интернета. В основе новой системы лежит предыдущая работа, проделанная FIDO, в частности стандарты Universal Authentication Framework (UAF) и Universal 2nd Factor (U2F).

Особенности работы

Как и его предшественник FIDO U2F, веб-аутентификация WebAuthn включает в себя 3 основных компонента. Это веб-сайт, веб-браузер и аутентификатор:

  • Веб-сайт является проверяющей стороной в протоколе WebAuthn.
  • Браузер — это пользователь WebAuthn.
  • Аутентификатор представляет собой совокупность средств и методов, позволяющих идентифицировать аккаунт без необходимости ввода персональных данных.

Во время процесса аутентификации, WebAuthn показывает верификатору, что пользователь демонстрирует владение всеми данными, позволяющими подтвердить его личность согласно протоколу FIDO2 .

В качестве многофакторного криптографического аутентификатора могут выступать биометрические данные, включая отпечатки пальцев и сетчатку роговицы глаза. Также может использоваться ключ безопасности FIDO, который обычно представляет собой USB-накопитель.

Упрощенная схема работы  стандарта © Wikipedia
Упрощенная схема работы стандарта © Wikipedia

Проверяющая сторона WebAuthn (сайт, на который вы хотите зайти) сообщает о своих намерениях клиенту WebAuthn (то есть вашему браузеру) через JavaScript. Далее он связывается с аутентификатором с помощью API JavaScript, реализованного в браузере, получает подтверждение и разрешает вход.

В случае использования этого протокола, исключается использование персональной информации пользователя. Виду того, что слабые и стандартные пароли являются причиной кражи данных в большинстве случаев, реализация этого метода аутентификации поможет пользователям чувствовать себя защищеннее.

Какое ПО поддерживает протокол

Стандарт WebAuthn Level 1 был представлен 4 марта 2019 года W3C в качестве рекомендуемой рабочей модели по веб-аутентификации. На сегодняшний день протокол WebAuthn поддерживается следующими веб-браузерами:

  • Google Chrome.
  • Mozilla Firefox.
  • Microsoft Edge.
  • Apple Safari.
  • Opera.

Браузер Firefox, который не полностью поддерживал предыдущий стандарт FIDO U2F, включил и добавил WebAuthn в Firefox версии 60, выпущенной еще 9 мая 2018 года. В ранней версии Microsoft Edge для Windows Insider была реализована версия WebAuthn, которая работает как с Windows Hello, так и с внешними ключами безопасности.

Существующие ключи безопасности FIDO U2F, по большому счету, совместимы со стандартом WebAuthn. Одним из первых FIDO2-совместимых аутентификаторов был ключ безопасности второго поколения от Yubico, анонсированный 10 апреля 2018 года. Также о поддержке такой системы идентификации 8 мая 2018 года объявили и в Dropbox.

API

API WebAuthn расширяет методы JavaScript для управления учетными данными navigator.credentials.create () и navigator.credentials.get (), чтобы они принимали параметр publicKey. Метод create () используется для регистрации аутентификаторов с открытым ключом, как часть их связи с учетными записями пользователей (может быть и во время изначального создания учетной записи, но вероятнее при добавлении нового ключа безопасности к существующей учетной записи), в то время как метод get () используется для проверки подлинности (например, при входе в систему).

© ВКонтакте
© ВКонтакте

API не позволяет получить прямой доступ к закрытым ключам или осуществить манипулирование ими. Чтобы узнать, поддерживает ли браузер WebAuthn, нужно проверить, определен ли интерфейс window.PublicKeyCredential.

Критика

В августе 2018 года Paragon Initiative Enterprises провела аудит безопасности стандарта WebAuthn. Несмотря на то, что в компании не смогли найти какие-либо конкретные уязвимости, они выявили некоторые серьезные недостатки в том, как используется стандартная криптография.

Основные моменты, которые подверглись критике, заключаются в двух традиционно проблематичных для криптографических систем нюансах. Это:

  1. Благодаря обязательному использованию COSE (RFC 8152) WebAuthn также поддерживает RSA с отступом PKCS1v1.5. Известно, что эта конкретная схема ввода уязвима для определенных атак. В прошлом она успешно подвергалась атакам в других протоколах и реализациях криптосистемы RSA. Эту уязвимость сложно использовать в конкретных условиях в контексте WebAuthn, но, учитывая, что существуют более безопасные криптографические схемы заполнения, протокол больше не считается лучшей альтернативой паролям.
  2. Альянс FIDO стандартизирован в асимметричной криптографической схеме для создания электронных подписей ECDAA. Это версия прямой анонимной аттестации, основанная на группе точек эллиптических кривых. В случае WebAuthn она предназначена для проверки достоверности аутентификаторов, сохраняя при этом конфиденциальность пользователей. Однако ECDAA не включает в себя некоторые уроки, извлеченные за последние десятилетия исследований в области криптографии с эллиптической кривой. Проблема заключается в том, что, поскольку выбранная кривая имеет некоторые недостатки безопасности, свойственные этому типу кривых, это существенно снижает гарантии безопасности.
© TechSpot
© TechSpot

Paragon Initiative Enterprises также критиковало эту разработку, поскольку стандарт не был анонсирован заранее. Разработчики не спросили мнение у других опытных криптографов, не учли отзывы специалистов. Это вызвало шквал возмущения со стороны последних. Кроме того, из-за скрытности разработок стандарт не был предметом широкого криптографического исследования в академическом мире.

Несмотря на эти недостатки, Paragon Initiative Enterprises по-прежнему поощряют пользователей в применении WebAuthn. Также в компании придумали некоторые рекомендации для потенциальных разработчиков стандарта, которые, как они надеются, могут быть реализованы до того, как протокол примет свой окончательный вид.


Как видите, этот протокол, в перспективе, поможет постепенно избавиться от однотипных и слабых паролей. Ими пользуется большинство из нас, поэтому такой подход поможет существенно увеличить безопасность пользователей в интернете.

По материалам Wikipedia