API WebAuthn для проверки подлинности без пароля в Windows

Пароли могут сделать ваших клиентов уязвимыми к нарушениям данных и атакам безопасности со стороны злоумышленников.

Корпорация Майкрософт уже давно является сторонником проверки подлинности без пароля и представила API платформы W3C/Fast IDentity Online 2 (FIDO2) Win32 WebAuthn в Windows 10 (версия 1903).

Начиная с Windows 11 версии 22H2 API WebAuthn поддерживают алгоритмы ECC.

Что это значит?

Используя API WebAuthn, партнеры разработчиков и сообщество разработчиков могут использовать ключи безопасности Windows Hello или FIDO2 для реализации многофакторной проверки подлинности без пароля для своих приложений на устройствах Windows.

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

Разработчики должны использовать API WebAuthn для согласованной поддержки ключей проверки подлинности FIDO2 для пользователей. Кроме того, разработчики могут использовать все транспорты, доступные в соответствии со спецификациями FIDO2 (USB, NFC и BLE), избегая затрат на взаимодействие и управление.

Примечание.

При использовании этих API Windows 10 браузерах или приложениях не имеют прямого доступа к транспорту FIDO2 для обмена сообщениями, связанным с FIDO.

Общая картина

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

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

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

На следующей схеме показано взаимодействие CTAP и WebAuthn. Светло-синие пунктирные стрелки представляют взаимодействия, которые зависят от конкретной реализации API платформы.

На схеме показано, как API WebAuthn взаимодействует с проверяющими сторонами и API CTAPI2.

Связи компонентов, участвующих в проверке подлинности без пароля

Объединенный танец WebAuthn/CTAP2 включает следующий набор символов:

  • Клиентское устройство. Клиентское устройство — это оборудование, на котором размещена определенная строчная проверка подлинности. Ноутбуки и телефоны являются примерами клиентских устройств.

  • Проверяющие стороны и клиенты. Проверяющими сторонами являются веб-приложения или собственные приложения, которые используют надежные учетные данные. Проверяющие стороны выполняются на клиентских устройствах.

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

    • Как проверяющая сторона веб-приложение не может напрямую взаимодействовать с API WebAuthn. Проверяющая сторона должна посредником сделки через браузер.

    Примечание.

    На приведенной выше схеме не показана проверка подлинности с одним Sign-On (SSO). Будьте осторожны, чтобы не путать проверяющие стороны FIDO с федеративными проверяющими сторонами.

  • API WebAuthn. API WebAuthn позволяет клиентам отправлять запросы к аутентификаторам. Клиент может запросить у аутентификатора создание ключа, предоставление утверждения о ключе, создание отчетов, управление ПИН-кодом и т. д.

  • Платформа или узел CTAP2. Платформа (также называемая узлом в спецификации CTAP2) является частью клиентского устройства, которое ведет переговоры с аутентификаторами. Платформа отвечает за безопасное сообщение о происхождении запроса и вызов API-интерфейсов представления краткого двоичного объекта CTAP2 (CBOR). Если платформа не поддерживает CTAP2, клиенты сами берут на себя больше нагрузки. В этом случае компоненты и взаимодействия, показанные на предыдущей схеме, могут отличаться.

  • Средство проверки подлинности платформы. Средство проверки подлинности платформы обычно находится на клиентском устройстве. Примеры средств проверки подлинности платформы включают технологию распознавания отпечатков пальцев, которая использует встроенное устройство чтения отпечатков пальцев ноутбука и технологию распознавания лиц, использующая встроенную камеру смартфона. Кроссплатформенные транспортные протоколы, такие как USB, NFC или BLE, не могут получить доступ к аутентификаторам платформы.

  • Перемещаемый аутентификатор. Перемещаемый средство проверки подлинности может подключаться к нескольким клиентским устройствам. Клиентские устройства должны использовать поддерживаемый транспортный протокол для согласования взаимодействий. Примерами перемещаемых аутентификаторов являются USB-ключи безопасности, приложения для смартфонов с поддержкой BLE и карты близкого взаимодействия с поддержкой NFC. Перемещаемые аутентификаторы могут поддерживать протоколы CTAP1, CTAP2 или оба протокола.

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

Взаимодействия

До WebAuthn и CTAP2 существовали U2F и CTAP1. U2F — это универсальная спецификация второго фактора FIDO Alliance. Существует множество аутентификаторов, которые говорят CTAP1 и управляют учетными данными U2F. WebAuthn был разработан для взаимодействия с CTAP1 Authenticators. Проверяющая сторона, использующая WebAuthn, по-прежнему может использовать учетные данные U2F, если проверяющей стороне не требуется функциональность только FIDO2.

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

Следующие варианты могут быть полезны в будущем, но они еще не наблюдались в дикой природе:

  • Утверждение транзакций
  • Индекс проверки пользователей (серверы могут определить, изменялись ли с течением времени биометрические данные, хранящиеся локально)
  • Метод проверки пользователя (средство проверки подлинности возвращает точный метод)
  • Биометрические границы производительности (проверяющая сторона может указать допустимые коэффициенты ложного принятия и ложного отклонения)

Реализация Майкрософт

Реализация Microsoft FIDO2 уже много лет. Программное обеспечение и службы реализуются независимо как сущности, соответствующие стандартам. По состоянию на выпуск Windows 10, версия 1809 (октябрь 2018 г.) все компоненты Майкрософт используют последний выпуск-кандидат WebAuthn. Это стабильный выпуск, который, как ожидается, не изменится нормативным образом до окончательной ратификации спецификации. Так как корпорация Майкрософт является одной из первых в мире по развертыванию FIDO2, некоторые сочетания популярных компонентов, не относящихся к Корпорации Майкрософт, пока не будут совместимы.

Ниже приведен примерный макет битов Майкрософт:

На схеме показано, как API WebAuthn взаимодействует с проверяющими сторонами Майкрософт и API CTAPI2.

Реализация API WebAuthn и CATP2 корпорацией Майкрософт

  • Проверяющая сторона WebAuthn: учетная запись Майкрософт. Если вы не знакомы с учетной записью Майкрософт, это служба входа для Xbox, Outlook и многих других сайтов. При входе используется клиентский JavaScript для активации Microsoft Edge для взаимодействия с API WebAuthn. Для учетной записи Майкрософт требуется, чтобы средства проверки подлинности имели следующие характеристики:

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

    Важно.

    Так как для учетной записи Майкрософт требуются функции и расширения, уникальные для средств проверки подлинности FIDO2 CTAP2, она не принимает учетные данные CTAP1 (U2F).

  • Клиент WebAuthn: Microsoft Edge. Microsoft Edge может обрабатывать пользовательский интерфейс для функций WebAuthn и CTAP2, которые описаны в этой статье. Он также поддерживает расширение AppID. Microsoft Edge может взаимодействовать с средствами проверки подлинности CTAP1 и CTAP2. Это область взаимодействия означает, что он может создавать и использовать учетные данные U2F и FIDO2. Однако Microsoft Edge не говорит по протоколу U2F. Поэтому проверяющие стороны должны использовать только спецификацию WebAuthn. Microsoft Edge в Android не поддерживает WebAuthn.

    Примечание.

    Достоверные сведения о поддержке Microsoft Edge для WebAuthn и CTAP см. в документации разработчика microsoft Edge для устаревших версий.

  • Платформа: Windows 10, Windows 11. Windows 10 и Windows 11 размещают API-интерфейсы Win32 Platform WebAuthn.

  • Перемещаемые аутентификаторы. Вы можете заметить, что нет средства проверки подлинности в роуминге (Майкрософт ). Причина в том, что уже существует сильная экосистема продуктов, которые специализируются на строгой проверке подлинности, и каждый клиент (будь то корпорации или частные лица) имеет различные требования к безопасности, простоте использования, распространению и восстановлению учетной записи. Дополнительные сведения о постоянно растущем списке сертифицированных fiDO2 аутентификаторов см. в разделе FiDO Certified Products. Список включает в себя встроенные средства проверки подлинности, роуминг-аутентификаторы и даже производители микросхем, которые имеют сертифицированные конструкции.

Ссылки для разработчиков

API WebAuthn описаны в репозитории Microsoft/webauthn GitHub. Чтобы понять, как работают средства проверки подлинности FIDO2, ознакомьтесь со следующими двумя спецификациями: