diverta/onecard-fido

[障害] ドングル再装着後、WebAuthnログインを実行するとBLE近接認証が失敗

Closed this issue · 2 comments

概要

MDBT50Q DongleをPCから外して再度装着後、WebAuthnサイトでログインを実行すると、「BLEデバイスによる自動認証」でタイムアウトエラーが発生する不具合が確認されています。

詳細確認

下記はnRF52840 DKで前述不具合を再現したときのデバッグ出力になります。

自動認証のためのBLEスキャンパラメーター(サービスUUID)が、FIDO authenticate実行時(だけ)正しくFlash ROMからロードされていないための障害に見えます。
デバッグ出力では、パラメーターのサービスUUIDがオールゼロになっているのが分かります。

<info> app: U2F Authenticate: waiting to complete the test of user presence
<debug> ble_scan: Scanning
<debug> ble_service_central: Scan started
<debug> ble_service_central: Scan stopped
<debug> ble_service_central_stat: Bluetooth address:4D181C22F051
<debug> ble_service_central_stat: Device name: (TX power=127, RSSI=-53), UUID(0 bytes):
<debug> ble_service_central_stat:                         |        
<debug> ble_service_central_stat: Bluetooth address:9462CEE96E5A
<debug> ble_service_central_stat: Device name: (TX power=127, RSSI=-47), UUID(0 bytes):
<debug> ble_service_central_stat:                         |        
<debug> ble_service_central_stat: Bluetooth address:25B71106EB43
<debug> ble_service_central_stat: Device name:ASUS_Z00AD (TX power=127, RSSI=-60), UUID(16 bytes):
<debug> ble_service_central_stat:  42 2E 00 00 E1 41 11 E5|B....A..
<debug> ble_service_central_stat:  A8 37 08 00 20 0C 9A 66|.7.. ..f
<debug> ble_service_central_stat: uuid_buf vs uuid_strict_string
<debug> ble_service_central_stat:  34 32 32 45 30 30 30 30|422E0000
<debug> ble_service_central_stat:  2D 45 31 34 31 2D 31 31|-E141-11
<debug> ble_service_central_stat:  45 35 2D 41 38 33 37 2D|E5-A837-
<debug> ble_service_central_stat:  30 38 30 30 32 30 30 43|0800200C
<debug> ble_service_central_stat:  00 00 00 00 00 00 00 00|........
<debug> ble_service_central_stat:  00 00 00 00 00 00 00 00|........
<debug> ble_service_central_stat:  00 00 00 00 00 00 00 00|........
<debug> ble_service_central_stat:  00 00 00 00 00 00 00 00|........
<debug> app: BLE peripheral device (for FIDO authenticate) not scanned.
<info> app: Canceled the U2F test of user presence

他方、FIDO register実行時は正しくロードされている様子です。
スキャンされたデバイスのサービスUUIDと、パラメーターのサービスUUIDがマッチしているので、後続の処理が正しく実行されたようです。


<info> app: U2F Register: waiting to complete the test of user presence
<debug> ble_scan: Scanning
<debug> ble_service_central: Scan started
<debug> ble_service_central: Scan stopped
<debug> ble_service_central_stat: Bluetooth address:4D181C22F051
<debug> ble_service_central_stat: Device name: (TX power=127, RSSI=-50), UUID(0 bytes):
<debug> ble_service_central_stat:                         |        
<debug> ble_service_central_stat: Bluetooth address:9462CEE96E5A
<debug> ble_service_central_stat: Device name: (TX power=127, RSSI=-50), UUID(0 bytes):
<debug> ble_service_central_stat:                         |        
<debug> ble_service_central_stat: Bluetooth address:1E3735F5C677
<debug> ble_service_central_stat: Device name:ASUS_Z00AD (TX power=127, RSSI=-78), UUID(16 bytes):
<debug> ble_service_central_stat:  42 2E 00 00 E1 41 11 E5|B....A..
<debug> ble_service_central_stat:  A8 37 08 00 20 0C 9A 66|.7.. ..f
<debug> ble_service_central_stat: uuid_buf vs uuid_strict_string
<debug> ble_service_central_stat:  34 32 32 45 30 30 30 30|422E0000
<debug> ble_service_central_stat:  2D 45 31 34 31 2D 31 31|-E141-11
<debug> ble_service_central_stat:  45 35 2D 41 38 33 37 2D|E5-A837-
<debug> ble_service_central_stat:  30 38 30 30 32 30 30 43|0800200C
<debug> ble_service_central_stat:  34 32 32 45 30 30 30 30|422E0000
<debug> ble_service_central_stat:  2D 45 31 34 31 2D 31 31|-E141-11
<debug> ble_service_central_stat:  45 35 2D 41 38 33 37 2D|E5-A837-
<debug> ble_service_central_stat:  30 38 30 30 32 30 30 43|0800200C
<debug> app: BLE peripheral device (for FIDO register) scanned (NAME=ASUS_Z00AD, ADDR=1E3735F5C677)
<debug> ble_service_central: Connected using bonding data
:
<info> app: U2F Register: completed the test of user presence
<info> app: U2F Register start
:
<info> app: U2F Register end

#379 の対応により問題が解消したのでクローズいたします。