CTAP BLE をサポートして WebAuthn と通信するモバイル認証システムを作成しています。私はこのドキュメントに従っています:
プロトコルの概要は次のとおりです。
オーセンティケーターは、FIDO サービスをアドバタイズします。
クライアントは、FIDO サービスをアドバタイズするオーセンティケーターをスキャンします。
クライアントは、オーセンティケーターで特性ディスカバリーを実行します。
まだペアリングされていない場合、クライアントとオーセンティケーターは BLE ペアリングを実行し、LTK を作成する必要があります。オーセンティケーターは、ユーザーの介入なしに、以前に結合されたクライアントからの接続のみを許可する必要があります。
クライアントは、fidoServiceRevisionBitfield 特性が存在するかどうかを確認します。その場合、クライアントは、1 つのビットが設定された値を書き込むことによって、サポートされているバージョンを選択します。
クライアントは fidoControlPointLength 特性を読み取ります。
クライアントは、fidoStatus 特性に関する通知を登録します。
クライアントは、要求 (登録要求など) を fidoControlPoint 特性に書き込みます。
オプションで、クライアントは CANCEL コマンドを fidoControlPoint 特性に書き込み、保留中の要求をキャンセルします。
Authenticator はリクエストを評価し、fidoStatus 特性を介して通知を送信することで応答します。
プロトコルは、次のいずれかの場合に完了します。
- クライアントが fidoStatus 特性の通知の登録を解除するか、または:
- 接続がタイムアウトになり、オーセンティケーターによって閉じられます。
ステップ 8 で、次のようなメッセージを受け取ります: 0x83000700030000000000、理解しました
0x83 は MSG コマンドです
0x0007 はデータの長さ
00030000000000はデータ
このようなメッセージを受け取った場合、ステップ 10 で「Authenticator はリクエストを評価し、fidoStatus 特性を介して通知を送信することで応答します」と述べているため、WebAuthn に何を応答すればよいかわかりません。