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-накопитель.
Проверяющая сторона WebAuthn (сайт, на который вы хотите зайти) сообщает о своих намерениях клиенту WebAuthn (то есть вашему браузеру) через JavaScript. Далее он связывается с аутентификатором с помощью API JavaScript, реализованного в браузере, получает подтверждение и разрешает вход.
В случае использования этого протокола, исключается использование персональной информации пользователя. Виду того, что слабые и стандартные пароли являются причиной кражи данных в большинстве случаев, реализация этого метода аутентификации поможет пользователям чувствовать себя защищеннее.
Читайте также: Челлендж #trashtag: как уборка мусора стала новым трендом в интернете
Какое ПО поддерживает протокол
Стандарт 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. Несмотря на то, что в компании не смогли найти какие-либо конкретные уязвимости, они выявили некоторые серьезные недостатки в том, как используется стандартная криптография.
Основные моменты, которые подверглись критике, заключаются в двух традиционно проблематичных для криптографических систем нюансах. Это:
- Благодаря обязательному использованию COSE (RFC 8152) WebAuthn также поддерживает RSA с отступом PKCS1v1.5. Известно, что эта конкретная схема ввода уязвима для определенных атак. В прошлом она успешно подвергалась атакам в других протоколах и реализациях криптосистемы RSA. Эту уязвимость сложно использовать в конкретных условиях в контексте WebAuthn, но, учитывая, что существуют более безопасные криптографические схемы заполнения, протокол больше не считается лучшей альтернативой паролям.
- Альянс FIDO стандартизирован в асимметричной криптографической схеме для создания электронных подписей ECDAA. Это версия прямой анонимной аттестации, основанная на группе точек эллиптических кривых. В случае WebAuthn она предназначена для проверки достоверности аутентификаторов, сохраняя при этом конфиденциальность пользователей. Однако ECDAA не включает в себя некоторые уроки, извлеченные за последние десятилетия исследований в области криптографии с эллиптической кривой. Проблема заключается в том, что, поскольку выбранная кривая имеет некоторые недостатки безопасности, свойственные этому типу кривых, это существенно снижает гарантии безопасности.
Читайте также: Возможно ли свободное цифровое будущее
Paragon Initiative Enterprises также критиковало эту разработку, поскольку стандарт не был анонсирован заранее. Разработчики не спросили мнение у других опытных криптографов, не учли отзывы специалистов. Это вызвало шквал возмущения со стороны последних. Кроме того, из-за скрытности разработок стандарт не был предметом широкого криптографического исследования в академическом мире.
Несмотря на эти недостатки, Paragon Initiative Enterprises по-прежнему поощряют пользователей в применении WebAuthn. Также в компании придумали некоторые рекомендации для потенциальных разработчиков стандарта, которые, как они надеются, могут быть реализованы до того, как протокол примет свой окончательный вид.
Как видите, этот протокол, в перспективе, поможет постепенно избавиться от однотипных и слабых паролей. Ими пользуется большинство из нас, поэтому такой подход поможет существенно увеличить безопасность пользователей в интернете.
По материалам Wikipedia