我一直在研究使用 Google Chrome 实现 CTAP2 协议(Fido Authenticator 和 Fido 客户端(例如 Chrome)之间的协议),Chrome从版本 69 起应该支持该协议。
所以我在两种情况下将 chrome 请求转储给了身份验证器:
1. U2F (CTAP1) 与yubico 演示网站。
这里一切都按预期进行,chrome 遵循CTAP1 协议。
2. FIDO2/Webauthn (CTAP2) 与webauthn.org
浏览器有一个奇怪的行为:
- 它首先通过发送 AuthenticatorGetInfoRequest 遵循 CTAP2 协议
- Authenticator 回复 AuthenticatorGetInfoResponse
- 但随后 Chrome 通过发送注册请求消息 (U2F_REGISTER) 切换到 CTAP1 协议
Chrome 实现是否有问题:CTAP2 尚未完全启用(它似乎在 Chromium 源代码中实现)?
还是来自身份验证器的问题:发送使 Chrome 切换到 CTAP1 的响应?
还是完全不同的东西?