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
并且浏览器有一个奇怪的行为:
- 它首先遵循 CTAP2 协议,发送 AuthenticatorGetInfoRequest
- 验证器回复 AuthenticatorGetInfoResponse
- 但随后 Chrome 通过发送注册请求消息 (U2F_REGISTER) 切换到 CTAP1 协议
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 功能现在看起来稳定且合规。
我一直在研究 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
并且浏览器有一个奇怪的行为:
- 它首先遵循 CTAP2 协议,发送 AuthenticatorGetInfoRequest
- 验证器回复 AuthenticatorGetInfoResponse
- 但随后 Chrome 通过发送注册请求消息 (U2F_REGISTER) 切换到 CTAP1 协议
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 功能现在看起来稳定且合规。