Я делаю мобильный аутентификатор, который поддерживает CTAP BLE для связи с WebAuthn.Я следую этому документу: https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-client-to-authenticator-protocol-v2.0-id-20180227.html#ble-protocol-overview
Обзор протокола выглядит следующим образом:
Аутентификатор объявляет службу FIDO.
Клиент выполняет поиск средства проверки подлинности, рекламируя службу FIDO.
Клиент выполняет обнаружение признаков на устройстве проверки подлинности.
Если еще не было сопряжено, клиент иАутентификатор ДОЛЖЕН выполнить сопряжение BLE и создать LTK.Аутентификатор ДОЛЖЕН разрешать подключения только от ранее связанных клиентов без вмешательства пользователя.
Клиент проверяет, присутствует ли характеристика fidoServiceRevisionBitfield.Если это так, клиент выбирает поддерживаемую версию, записывая значение с одним установленным битом.
Клиент считывает характеристику fidoControlPointLength.
Клиентрегистры для уведомлений по признаку fidoStatus.
Клиент записывает запрос (например, запрос на регистрацию) в признак fidoControlPoint.
При желанииклиент записывает команду CANCEL в характеристику fidoControlPoint для отмены ожидающего запроса.
Аутентификатор оценивает запрос и отвечает, отправляя уведомления по характеристике fidoStatus.
Протокол завершается, когда:
- Клиент отменяет регистрацию для уведомлений по признаку fidoStatus или:
- Время ожидания истекло и закрывается аутентификатором.
На шаге 8 я получаю сообщение вроде этого: 0x83000700030000000000 , я понимаючто
0x83 - это команда MSG
0x0007 - это длина данных
00030000000000 - это данные
Когда я получаю такое сообщение, я не знаю, чтов ответ на WebAuthn, как указано в шаге 10 «Authenticator оценивает запрос и отвечает, отправляя уведомления по характеристике fidoStatus».