Android 版 Chrome 是否支持使用 Webauthn / FIDO2 对安全密钥进行用户验证?

pet*_*ekr 5 android google-chrome fido-u2f webauthn fido

我正在构建一个使用Webauthn进行无密码登录的站点。目前,这在适用于 Windows 和 macOS 的 Chrome 上运行良好。

我正在使用 YubiKey 5 来测试我的实现,它支持使用 PIN 来提供用户验证,而不仅仅是简单的用户状态(即用户触摸按键的按钮)。

Windows PIN 提示

但是,当我尝试在 Android 9 上的 Chrome 76 上使用同一个站点时,系统不会提示我输入 pin,因此未设置用户验证标志,并且我的登录(按设计)失败。

Google 在 Android 7+ 兼容 FIDO2 方面做了大量工作,但除了一篇提到以下内容的过时文章外,我似乎找不到任何提及此关键缺失功能的内容

我们还致力于开发由 CTAP 2 和 WebAuthn 支持的更高级流程,例如受 PIN 保护的身份验证器、本地帐户选择(而不是输入用户名或密码)和指纹注册。

现已支持指纹注册;即使 Windows 和 macOS 版本的 Chrome 76 支持,是否仍然不支持受 PIN 保护的身份验证器?

这是我呼吁的相关部分navigator.credentials.create(),应该要求用户验证:

"authenticatorSelection": {"requireResidentKey": false, "userVerification": "required"}
Run Code Online (Sandbox Code Playgroud)

pet*_*ekr 2

事实证明,目前 Android 的 Google Play 服务中还没有实现这一点。我已经向 Chromium 项目提交了一个错误,该项目正在跟踪其最终实施。