FIDO 2.0 Authenticator Conformance Tests - HID-1 Transport

61 views
Skip to first unread message

Mike McDonald

unread,
Jun 2, 2022, 7:40:30 PM6/2/22
to fido...@fidoalliance.org
Hi all,

I am developing a FIDO 2.0 authenticator and all of the conformance tests have passed except for one (HID-1 Test CTAP2 HID support - test P-11) as shown in the following screenshot.  I've tested with both the version 1.5.2 and 1.6.48 conformance tools and both yield the exact same results.

Fido2Conformance-Transport.png

I've captured all of the USB reports being sent and received over the USB HID interface and all of them appear correct.  However the conformance test assertion regarding the CTAPHID_KEEPALIVE with STATUS_UPNEEDED is failing.  It is expecting the CTAPHID_KEEPALIVE (0x3B) but it's reporting that it received undefined (0x00).  I've spent countless hours trying to figure out why the conformance tool is complaining and am at a loss as to what I could possibly be doing wrong.  What's odd is the previous test (P-10) follows a similar pattern where it sends a MakeCredential request, waits for a CTAPHID_KEEPALIVE, and then sends a CTAPHID_CANCEL - that test is successful.

Can anybody offer any suggestions for further troubleshooting?  For example, is there a way to capture all of the USB reports being sent and received inside the conformance tool itself?  And are there any subtle timing dependencies in the conformance tool that might be contributing to what I am seeing?  From the USB HID driver's perspective it is successfully sending and receiving all USB reports to/from the authenticator on behalf of the conformance tool application.  There are no errors and all I/O requests from the conformance tool to read/write USB reports are being completed successfully as shown in the following trace.  Any help would be greatly appreciated.

Client sends CTAPHID_INIT and authenticator responds with a CID of 0x2F.

01-Jun-2022 21:02:51 - 5300:4500 - outputReport=
01-Jun-2022 21:02:51 - 5300:4500 - {
01-Jun-2022 21:02:51 - 5300:4500 -    ff ff ff ff 86 00 08 bd 74 49 4e 99 a6 d0 51 00  ........tIN...Q.
01-Jun-2022 21:02:51 - 5300:4500 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:51 - 5300:4500 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:51 - 5300:4500 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:51 - 5300:4500 - }

01-Jun-2022 21:02:51 - 5300:6444 - inputReport=
01-Jun-2022 21:02:51 - 5300:6444 - {
01-Jun-2022 21:02:51 - 5300:6444 -    ff ff ff ff 86 00 11 bd 74 49 4e 99 a6 d0 51 2f  ........tIN...Q/
01-Jun-2022 21:02:51 - 5300:6444 -    00 00 00 02 00 00 00 05 eb ef 45 00 00 00 00 00  ..........E.....
01-Jun-2022 21:02:51 - 5300:6444 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:51 - 5300:6444 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:51 - 5300:6444 - }


Client sends CTAPHID_CBOR with a GetAssertion request containing a non-existent credential id.

01-Jun-2022 21:02:51 - 5300:4500 - outputReport=
01-Jun-2022 21:02:51 - 5300:4500 - {
01-Jun-2022 21:02:51 - 5300:4500 -    2f 00 00 00 90 00 6c 02 a3 01 6d 6b 69 77 69 70  /.....l...mkiwip
01-Jun-2022 21:02:51 - 5300:4500 -    6f 69 73 65 64 2e 6b 79 02 58 20 89 c9 52 25 28  oised.ky.X ..R%(
01-Jun-2022 21:02:51 - 5300:4500 -    c2 42 9f cd 05 89 60 88 34 c2 9f 5e cf 29 03 99  .B....`.4..^.)..
01-Jun-2022 21:02:51 - 5300:4500 -    2e 5c ef d2 0c c2 3b 18 c6 66 79 03 81 a2 62 69  .\....;..fy...bi
01-Jun-2022 21:02:51 - 5300:4500 - }

01-Jun-2022 21:02:51 - 5300:4500 - outputReport=
01-Jun-2022 21:02:51 - 5300:4500 - {
01-Jun-2022 21:02:51 - 5300:4500 -    2f 00 00 00 00 64 58 20 8d fd 95 74 23 e5 84 63  /....dX ...t#..c
01-Jun-2022 21:02:51 - 5300:4500 -    a8 d5 7d 0f ec d5 8d 6d b2 19 06 af 54 f8 51 49  ..}....m....T.QI
01-Jun-2022 21:02:51 - 5300:4500 -    85 3e a5 38 3f 93 c0 44 64 74 79 70 65 6a 70 75  .>.8?..Ddtypejpu
01-Jun-2022 21:02:51 - 5300:4500 -    62 6c 69 63 2d 6b 65 79 00 00 00 00 00 00 00 00  blic-key........
01-Jun-2022 21:02:51 - 5300:4500 - }


Authenticator responds with CTAPHID_KEEPALIVE containing STATUS_UPNEEDED. [NOTE: The Conformance Test tool does not appear to receive this USB report even though the USB driver has successfully reported the I/O read request as being completed.]

01-Jun-2022 21:02:51 - 5300:6444 - inputReport=
01-Jun-2022 21:02:51 - 5300:6444 - {
01-Jun-2022 21:02:51 - 5300:6444 -    2f 00 00 00 bb 00 01 02 00 00 00 00 00 00 00 00  /...............
01-Jun-2022 21:02:51 - 5300:6444 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:51 - 5300:6444 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:51 - 5300:6444 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:51 - 5300:6444 - }

Authenticator responds with CTAPHID_CBOR containing a status of CTAP2_ERR_NO_CREDENTIALS (0x2E).

01-Jun-2022 21:02:52 - 5300:6444 - inputReport=
01-Jun-2022 21:02:52 - 5300:6444 - {
01-Jun-2022 21:02:52 - 5300:6444 -    2f 00 00 00 90 00 01 2e 00 00 00 00 00 00 00 00  /...............
01-Jun-2022 21:02:52 - 5300:6444 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:52 - 5300:6444 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:52 - 5300:6444 -    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01-Jun-2022 21:02:52 - 5300:6444 - }

Regards,
Mike McDonald

This message (including any attachments) may contain confidential, proprietary, privileged and/or private information. The information is intended to be for the use of the individual or entity designated above. If you are not the intended recipient of this message, please notify the sender immediately, and delete the message and any attachments. Any disclosure, reproduction, distribution or other use of this message or any attachments by an individual or entity other than the intended recipient is prohibited.

nuno sung

unread,
Jun 2, 2022, 11:16:36 PM6/2/22
to FIDO Dev (fido-dev), Mike McDonald
You may check the similar issue here, https://github.com/fido-alliance/conformance-test-tools-resources/issues/624
Besides, the tool's top-right corner's MENU>Open inspector can show tool's log in detail.
Mike McDonald 在 2022年6月3日 星期五上午7:40:30 [UTC+8] 的信中寫道:
Reply all
Reply to author
Forward
0 new messages