Chrome 中 CTAP2 (FIDO2) 协议的不完整实施?

Incomplete Implementation of CTAP2 (FIDO2) protocol in Chrome?

我一直在研究 Google Chrome 的 CTAP2 协议的实现(Fido Authenticator 和 Fido Client 之间的协议(例如 Chrome)),应该在 Chrome since version 69

所以我在两种情况下将 chrome 请求转储到身份验证器:

1。 U2F (CTAP1) yubico demo website.

此处一切如预期,chrome 遵循 CTAP1 protocol

2。 FIDO2/Webauthn (CTAP2) 与 webauthn.org

并且浏览器有一个奇怪的行为:

Chrome 实现是否存在问题:CTAP2 尚未完全启用(它似乎在 Chromium 源代码中实现)?

或者问题是否来自身份验证器:发送使 Chrome 切换到 CTAP1 的响应?

或者完全不同的东西?

在 AuthenticatorGetInfoRequest 中,验证器必须以 "U2F_V2" 和 "FIDO_2_0" 之间支持的版本的字符串列表进行响应。另请注意,在 NFC 或 CCID 的情况下,只有 "FIDO_2_0" (CTAP2) 的身份验证器应在 SELECT 命令上直接回答 "FIDO_2_0"。我不知道 HID 和 BLE。

所以也许您的身份验证器在 AuthenticatorGetInfoRequest 的协议版本列表中列出 "U2F_V2"。

我还想象 Chrome 关于此的代码库正在快速发展,可能是部分的或不严格的。根据我在 2020 年初的测试,Chrome CTAP 功能现在看起来稳定且合规。