Как реализовать FIDO U2F с помощью API Webauthn? - PullRequest
0 голосов
/ 05 декабря 2018

В настоящее время я использую API window.u2f для реализации двухфакторной аутентификации U2F на моем веб-сайте.Они изначально доступны в Firefox (когда включен флаг about: config) и через Chromium с библиотекой u2f-api.js .

Моя реализация использует window.u2f.register(...) во время настройки ключа иwindow.u2f.sign(...) во время входа в систему.

Я прочитал, что новый API веб-аутентификации обратно совместим и также поддерживает FIDO U2F, однако я не могу найти никакой информации о том, как его реализовать.Кажется, что во всех примерах демонстрируется только вход в FIDO2 без пароля, что я не хочу делать.

Как реализовать FIDO U2F с эквивалентными функциями window.u2f.register и window.u2f.sign с помощью API веб-аутентификации?

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Вы можете прочитать это , чтобы понять, что они подразумевают под обратной совместимостью

То, что вам нужно выделить

Аутентификатор CTAP1 / U2F возвращает ошибку командыили неправильно отформатированный ответ CBOR.В случае любого сбоя платформа может использовать протокол CTAP1 / U2F.

WebAuthn связывается с аутентификатором посредством сообщений CBOR.Если средство проверки подлинности не поддерживает FIDO2, средство проверки подлинности вернет код ошибки, а затем WebAuthn свяжется с средством проверки подлинности с помощью необработанных сообщений U2F.

Вы можете просто реализовать WebAuthn так, как прочитали. API веб-аутентификации

Вы можете обратиться к этому для вашей реализации

0 голосов
/ 28 декабря 2018

Отличный вопрос.Некоторые невероятные примеры реализации U2F можно найти из учетной записи Yubico Github .Более конкретно, если вам нужен рабочий пример регистрации ключа и его аутентификации с использованием javascript на стороне клиента, реализация криптографии на бэкэнде с API Flask, этот пример находится здесь .Он поддерживает как FIDO2, так и устаревший U2F.Кроме того, если вы хотите получить видео с кем-то, проходящим пошаговый пример того, как работает реализация, , который находится здесь. Надеюсь, это поможет:)

...