WebAuthn - длина байта открытого ключа доступа - PullRequest
0 голосов
/ 04 января 2019

В WebAuthn данные аутентификатора содержат переменную длину attested credential data, за которой следует extensions, если есть: Authenticator data schema from the WebAuthn specification

attested credential data становится переменной из-за поля credential public key, которое является картой CBOR.

Если есть расширения, как заранее узнать длину в байтах этого поля, чтобы я мог передать это поле усеченным без расширений для библиотеки CBOR?

Библиотека CBOR, которую я использую, похоже, не обрабатывает лишние байты, и я недостаточно знаю CBOR, чтобы знать, есть ли хитрость для вычисления длины в байтах карты из ее первых байтов (или любой другой прием) .

1 Ответ

0 голосов
/ 06 января 2019

Насколько я понимаю, невозможно узнать заранее без использования декодера CBOR (или анализатора ключей COSE), поддерживающего сначала "дополнительные байты", чтобы определить, где заканчиваются "данные открытого ключа учетных данных" и где начинается «расширение данных».

Есть дополнительная заметка, обсуждающая именно это в Редакции (еще не в Рекомендации кандидата).

Определение длины аттестованных учетных данных, которая является переменной, включает определение начального местоположения credentialPublicKey длина предыдущего удостоверения личности, а затем определение длина credentialPublicKey (см. также раздел 7 [RFC8152]).

FWIW, обсуждается также в выпуске GitHub спецификации WebAuthn https://github.com/w3c/webauthn/issues/1012

...