在Chrome中未完全实现CTAP2(FIDO2)协议吗?

时间:2019-01-28 11:42:04

标签: google-chrome chromium fido-u2f webauthn fido

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

因此,在两种情况下,我将chrome请求转储到了身份验证器中:

1。具有yubico demo website的U2F(CTAP1)。

这里一切都按预期进行,chrome遵循CTAP1 protocol

2。具有webauthn.org

的FIDO2 / Webauthn(CTAP2)

浏览器的行为异常:

  • 通过发送AuthenticatorGetInfoRequest遵循CTAP2协议开始
  • 身份验证器以AuthenticatorGetInfoResponse答复
  • 但是随后Chrome通过发送注册请求消息(U2F_REGISTER)切换到CTAP1协议

Chrome实施是否有问题:CTAP2尚未完全启用(似乎已在Chromium来源中实现)?

还是问题出在身份验证器上:发送使Chrome切换到CTAP1的响应?

还是其他东西?

1 个答案:

答案 0 :(得分:2)

在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功能现在看起来稳定且合规。