stringtranslate.com

WebAuthn

Веб-аутентификация ( WebAuthn ) — это веб-стандарт , опубликованный Консорциумом Всемирной паутины (W3C). [1] [2] [3] WebAuthn — это основной компонент проекта FIDO2 под руководством Альянса FIDO . [4] Цель проекта — стандартизировать интерфейс для аутентификации пользователей в веб-приложениях и службах с использованием криптографии с открытым ключом . Учетные данные WebAuthn (которые сами по себе являются учетными данными FIDO), доступные на нескольких устройствах, обычно называются ключами доступа . [5]

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

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

Стандарты WebAuthn уровня 1 и 2 были опубликованы как Рекомендации W3C 4 марта 2019 года и 8 апреля 2021 года соответственно. [1] [10] [11] Спецификация уровня 3 в настоящее время является первым публичным рабочим проектом (FPWD). [12]

Фон

FIDO2 является преемником FIDO Universal 2nd Factor (U2F). В то время как U2F поддерживает только многофакторный режим, разработанный для усиления существующих потоков входа на основе имени пользователя/пароля, FIDO2 добавляет поддержку однофакторного режима. В многофакторном режиме аутентификатор активируется проверкой присутствия пользователя , которая обычно состоит из простого нажатия кнопки; пароль не требуется. В однофакторном режиме аутентификатор ( то, что у вас есть ) выполняет проверку пользователя . [13] В зависимости от возможностей аутентификатора это может быть: [14]

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

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

Преимущества по сравнению с традиционной аутентификацией на основе пароля

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

Обзор

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

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

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

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

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

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

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

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

Регистрация

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

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

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

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

Поддерживать

Пример реализации WebAuthn ( Bitwarden для Discord на Firefox )

Стандарт WebAuthn уровня 1 был опубликован в качестве рекомендации W3C рабочей группой по веб-аутентификации 4 марта 2019 года. [1] [10] [23] WebAuthn поддерживается Google Chrome , Mozilla Firefox , Microsoft Edge , Apple Safari [10] и Opera . [24]

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

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

Одним из первых совместимых с FIDO2 аутентификаторов стал Security Key второго поколения от Yubico, анонсированный 10 апреля 2018 года. [28] Первым совместимым с FIDO2 аутентификатором с дисплеем стал Trezor Model T от SatoshiLabs, анонсированный 6 ноября 2019 года. [29] Trezor Model T также был первым аутентификатором, который позволял пользователям выбирать, какие резидентные учетные данные FIDO2 следует использовать непосредственно на устройстве.

Первый сертифицированный ключ FIDO2 уровня безопасности 2, названный «Goldengate», был анонсирован годом позже компанией eWBM 8 апреля 2019 года. [30] [31]

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

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

API

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

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

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

Прием

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

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

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

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

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

Смотрите также

Ссылки

  1. ^ abcde Balfanz, Dirk; Czeskis, Alexei; Hodges, Jeff; Jones, JC; Jones, Michael B.; Kumar, Akshay; Liao, Angelo; Lindemann, Rolf; Lundberg, Emil (ред.). "Web Authentication: An API for accessing Public Key Credentials Level 1 (latest)". World Wide Web Consortium . Получено 4 марта 2019 г. .
  2. ^ "Рабочая группа по веб-аутентификации". World Wide Web Consortium . Получено 11 мая 2018 г.
  3. ^ Стрикленд, Джонатан (18 марта 2019 г.). «Что такое WebAuthn». TechStuff . iHeartMedia . 20:35 минут в . Получено 20 марта 2019 г. .
  4. ^ "Проект FIDO2". Альянс FIDO . Получено 11 мая 2018 г.
  5. ^ "White Paper: Multi-Device FIDO Credentials" (PDF) . FIDO Alliance . Март 2022 г. стр. 6 . Получено 20 мая 2024 г.
  6. ^ Бранд, Кристиан; Ческис, Алексей; Эренсвард, Якоб; Джонс, Майкл Б.; Кумар, Акшай; Линдеманн, Рольф; Пауэрс, Адам; Веррепт, Йохан, ред. (30 января 2019 г.). «Протокол клиент-аутентификатор (CTAP)». FIDO Alliance . Получено 7 марта 2019 г. .
  7. ^ "WebAuthn / CTAP: Современная аутентификация" (PDF) . World Wide Web Consortium . 10 декабря 2018 г. . Получено 11 марта 2019 г. .
  8. ^ Кан, Майкл (7 марта 2019 г.). «Google: число фишинговых атак, способных обойти двухфакторную аутентификацию, растет». PC Magazine . Получено 8 марта 2019 г.
  9. ^ «Практическая аутентификация без пароля становится на шаг ближе с WebAuthn». Ars Technica . 10 апреля 2018 г. Получено 16 октября 2024 г.
  10. ^ abc "W3C и FIDO Alliance завершают разработку веб-стандарта для безопасных беспарольных входов". World Wide Web Consortium . 4 марта 2019 г. Получено 4 марта 2019 г.
  11. ^ Balfanz, Dirk; Czeskis, Alexei; Hodges, Jeff; Jones, JC; Jones, Michael B.; Kumar, Akshay; Lindemann, Rolf; Lundberg, Emil, ред. (8 апреля 2021 г.). «Web Authentication: An API for accessing Public Key Credentials Level 2» (последняя ред.). World Wide Web Consortium . Получено 27 ноября 2022 г. .
  12. ^ Balfanz, Dirk; Czeskis, Alexei; Hodges, Jeff; Jones, JC; Jones, Michael B.; Kumar, Akshay; Lindemann, Rolf; Lundberg, Emil, ред. (4 апреля 2021 г.). «Web Authentication: An API for accessing Public Key Credentials Level 3» (первый публичный рабочий черновик, ред.). World Wide Web Consortium . Получено 24 декабря 2021 г. .
  13. ^ "Присутствие пользователя против проверки пользователя" . Получено 19 февраля 2024 г. .
  14. ^ Багдасарян, Давид; Хилл, Брэд (2 июля 2018 г.). «Реестр предопределенных значений FIDO». fidoalliance.org . Альянс FIDO . Получено 16 июня 2019 г. .
  15. ^ «Веб-аутентификация: API для доступа к учетным данным открытого ключа уровня 1 § Терминология: Проверка пользователя». www.w3.org . W3C. 4 марта 2019 г. . Получено 16 июня 2019 г. .
  16. ^ "API веб-аутентификации". Mozilla . Раздел Аутентификация . Получено 18 марта 2019 .
  17. ^ Саймонс, Алекс (20 ноября 2018 г.). «Безопасный вход без пароля для вашей учетной записи Microsoft с использованием ключа безопасности или Windows Hello». Microsoft . Получено 6 марта 2019 г. .
  18. ^ "Android Now FIDO2 Certified, Accelerating Global Migration Beyond Passwords". БАРСЕЛОНА: FIDO Alliance . 25 февраля 2019 г. Получено 6 марта 2019 г.
  19. ^ "Touch ID и дальше: планы Duo относительно WebAuthn". Duo Security. 5 марта 2019 г. Получено 8 марта 2019 г.
  20. ^ Стил, Ник (27 февраля 2019 г.). «Как WebAuthn стремится решить проблему с паролями». Help Net Security . Получено 8 марта 2019 г.
  21. ^ "API веб-аутентификации". Mozilla . Раздел Регистрация . Получено 18 марта 2019 .
  22. ^ "Metadata Service". FIDO Alliance . Получено 18 марта 2019 г.
  23. ^ Проталински, Эмиль (4 марта 2019 г.). «W3C одобряет WebAuthn в качестве веб-стандарта для входа без пароля».
  24. ^ «Могу ли я использовать API веб-аутентификации?» . Получено 7 марта 2019 г.
  25. ^ Бранд, Кристиан (3 июня 2018 г.). «Включение строгой аутентификации с помощью WebAuthn». Google Developers . Получено 25 июня 2018 г.
  26. ^ Шенкленд, Стивен (9 мая 2018 г.). «Firefox переводит браузеры в будущее без паролей с технологией WebAuthn». CNET . Получено 11 мая 2018 г.
  27. ^ Sarkar; et al. (23 мая 2018 г.). «Анонс Windows 10 Insider Preview Build 17682». Microsoft . Получено 25 июня 2018 г. .
  28. ^ «Yubico запускает новую программу для разработчиков и ключ безопасности для спецификаций FIDO2 и WebAuthn W3C» (пресс-релиз). 10 апреля 2018 г. Получено 11 мая 2018 г.
  29. ^ «Оставьте пароли в прошлом, FIDO2 теперь доступен на Trezor Model T». 6 ноября 2019 г. Получено 6 ноября 2019 г.
  30. ^ "eWBM: сканер отпечатков пальцев Goldengate от eWBM первым получил сертификацию FIDO L2" (пресс-релиз). 8 апреля 2019 г. Получено 15 июня 2019 г.
  31. ^ "Mobile ID World, Алекс Перала: сканер отпечатков пальцев Goldengate от eWBM первым получил сертификацию FIDO L2" (пресс-релиз). 9 апреля 2019 г. Получено 15 июня 2019 г.
  32. ^ Жирардо, Брэд (8 мая 2018 г.). «Введение в поддержку WebAuthn для безопасного входа в Dropbox». Dropbox Tech Blog . Dropbox . Получено 11 мая 2018 г.
  33. ^ "Safari 14 Release Notes". Документация для разработчиков Apple . 16 декабря 2022 г. Получено 16 декабря 2022 г.
  34. ^ "API веб-аутентификации". Mozilla . Получено 16 марта 2019 .
  35. ^ Акерманн, Юрий (15 января 2019 г.). "Введение в API WebAuthn". Medium . Получено 8 марта 2019 г. .
  36. ^ «Проблемы безопасности, связанные с WebAuthn: не внедряйте ECDAA (пока)». Блог Paragon Initiative Enterprises. 23 августа 2018 г. Получено 9 октября 2018 г.
  37. ^ "Алгоритм FIDO ECDAA" . Альянс ФИДО. 27 февраля 2018 года . Проверено 9 октября 2018 г.
  38. ^ "Удалить ECDAA? · Проблема № 1410 · w3c/webauthn". GitHub . 28 апреля 2020 г. . Получено 3 июня 2020 г. .

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