WebAuthn

редактировать
Стандарт аутентификации с открытым ключом Кнопка WebAuthn и биометрические ключи безопасности (USB) по отпечатку пальца по KEY-ID USB-ключи безопасности FIDO2: биометрический отпечаток пальца и кнопочный

Web-аутентификация ( WebAuthn ) - это веб-стандарт, опубликованный Консорциумом Всемирной паутины (W3C). WebAuthn является основным компонентом проекта FIDO2 Project под руководством FIDO Alliance. Цель проекта - стандартизировать интерфейс для аутентификации пользователей для веб-приложений и сервисов с использованием криптографии с открытым ключом.

роумингового криптографического аппаратного аутентификатора с интерфейсом USB

На стороне клиента поддержка WebAuthn может быть реализован разными способами. Основные криптографические операции выполняются аутентификатором, который представляет собой абстрактную функциональную модель, которая в основном не зависит от того, как управляется ключевой материал. Это позволяет реализовать поддержку WebAuthn исключительно в программном обеспечении с использованием доверенной среды выполнения процессора или доверенного платформенного модуля (TPM). Чувствительные криптографические операции также могут быть переданы роуминговому аппаратному аутентификатору, к которому, в свою очередь, можно получить доступ через USB, Bluetooth Low Energy или связь ближнего поля (NFC). Аппаратный аутентификатор роуминга соответствует протоколу FIDO Client to Authenticator (CTAP), что делает WebAuthn обратно совместимым со стандартом FIDO Universal 2nd Factor (U2F).

Подобно устаревшему U2F, веб-аутентификация устойчива к олицетворению проверяющего, то есть устойчива к активным атакам типа «злоумышленник в середине», но в отличие от U2F, WebAuthn не требует традиционного пароля. Более того, аппаратный аутентификатор в роуминге устойчив к вредоносным программам, поскольку материал закрытого ключа никогда не доступен для программного обеспечения, работающего на хост-машине.

Стандарт WebAuthn уровня 1 был опубликован в качестве рекомендации W3C 4 марта 2019 года. Спецификация уровня 2 находится в стадии разработки.

Содержание

  • 1 Предпосылки
  • 2 Обзор
    • 2.1 Аутентификация
    • 2.2 Регистрация
  • 3 Поддержка
  • 4 API
  • 5 Прием
  • 6 Ссылки
  • 7 Внешние ссылки

Общие сведения

FIDO2 является преемником FIDO Universal 2nd Factor (U2F) устаревший протокол. Аутентификация FIDO2 имеет все преимущества U2F - основное отличие состоит в том, что аутентификатор FIDO2 также может быть однофакторным (без пароля) аутентификатором. Протокол U2F разработан как второй фактор для усиления существующих потоков входа в систему на основе имени пользователя и пароля.

Аутентификатор FIDO2 может использоваться как в однофакторном, так и в многофакторном режимах. В однофакторном режиме аутентификатор активируется путем проверки присутствия пользователя, которая обычно состоит из простого нажатия кнопки. В многофакторном режиме аутентификатор (то, что у вас есть) выполняет проверку пользователя. В зависимости от возможностей аутентификатора это может быть:

  • что-то, что вы знаете: секрет, такой как PIN, код доступа или шаблон смахивания
  • то, что вы: биометрический, такой как отпечаток пальца, радужная оболочка или голос

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

Секретные данные и биометрические данные на аутентификаторе могут использоваться вместе, аналогично тому, как они используются на смартфоне. Например, отпечаток пальца используется для обеспечения удобного доступа к вашему смартфону, но иногда доступ по отпечатку пальца не выполняется, и в этом случае можно использовать PIN-код.

Обзор

Как и его предшественник FIDO U2F, веб-аутентификация W3C (WebAuthn) включает веб-сайт, веб-браузер и аутентификатор:

  • Веб-сайт является соответствующей проверяющей стороной WebAuthn
  • Браузер является соответствующим клиентом WebAuthn
  • Аутентификатором является аутентификатор FIDO2, то есть предполагается, что он совместим с клиентом WebAuthn

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

Аутентификация

Типичный поток веб-аутентификации (WebAuthn)

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

Чтобы инициировать поток аутентификации WebAuthn, Проверяющая сторона WebAuthn сообщает о своих намерениях клиенту WebAuthn (то есть браузеру) через JavaScript. Клиент WebAuthn взаимодействует с аутентификатором с помощью JavaScript API, реализованного в браузере. Роуминг-аутентификатор соответствует протоколу FIDO Client to Authenticator..

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

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

Регистрация

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

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

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

Тип подтверждения, указанный в JavaScript, определяет модель доверия. Например, может потребоваться тип аттестации, называемый самоаттестацией, для которого модель доверия по существу доверие при первом использовании.

Поддержка

Стандарт WebAuthn Level 1 был опубликован как Рекомендация W3C компанией Рабочая группа по веб-аутентификации 4 марта 2019 г. WebAuthn поддерживается следующими веб-браузерами: Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari и веб-браузер Opera.

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

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

Первый сертифицированный FIDO2 уровень безопасности 2 ключ, названный "Goldengate", был объявлен годом позже eWBM 8 апреля 2019 г., а

Dropbox объявил о поддержке логинов WebAuthn (в качестве второго фактора) 8 мая 2018 г.

Apple Safari объявила, что 24 июня 2020 года Face ID или Touch ID может использоваться в качестве аутентификатора платформы WebAuthn.

API

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

Чтобы проверить, поддерживает ли браузер WebAuthn, сценарии должны проверять, определен ли интерфейс window.PublicKeyCredential. В дополнение к PublicKeyCredential, стандарт также определяет интерфейсы AuthenticatorResponse, AuthenticatorAttestationResponseи AuthenticatorAssertionResponseв дополнение к множеству словарей и других типы данных.

API не разрешает прямой доступ к закрытым ключам или манипулирование ими, кроме запроса их первоначального создания.

Приемная

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

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

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

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

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

ECDAA была разработана только для использования в сочетании с аттестацией устройств. Эта особенность WebAuthn не обязательно требуется для работы аутентификации. Текущие реализации позволяют пользователю решить, будет ли отправлено подтверждение во время церемонии регистрации. Независимо от того, требуется ли подтверждение, доверяющие стороны могут выбирать. ECDAA был удален из WebAuthn Level 2, поскольку он не был реализован ни браузерами, ни проверяющими сторонами.

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-20 10:27:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте