如何从以下位置获得"fido-u2f"证明



我尝试创建一个基本的webauthn实现,使用"Web身份验证api";使用用户的生物识别。

有一件事我不明白,我没有在网上找到答案,那就是:为什么我得到一个格式设置为'包装的证明'默认为而不是'fido-u2f"?我做错了什么?

这是"挑战"。当用户要求注册时,我返回给他:

{
challenge: randomBase64URLBuffer(32),
rp: {
name: "Fido"
},
user: {
id: id,
name: username,
displayName: displayName
}, 
attestation: 'direct',
pubKeyCredParams: [
{ type: "public-key", alg: -7 },
{ type: "public-key", alg: -257 }
]
}

然后在格式化响应客户端后,我将其作为publicKey传递给navigator.credentials.create({ publicKey })

一旦它被发送回api确认注册,我解码它与cbor.decodeAllSync(myAttestationBuffer),但我得到的是一个凭据响应与fmt设置为packed

我是这个问题的初学者,所以请随时纠正我:)是否有办法指定我想要的证明格式?我可能错过了什么…

谢谢你的帮助!

认证格式由您的浏览器和验证器支持的格式决定-您不能请求特定的格式。

在撰写本文时,Firefox 101.0.1在与我的fido2兼容的Yubikey一起使用时返回fido-u2f认证,因为它使用较旧的U2F协议进行通信。Firefox使用https://github.com/mozilla/authenticator-rs来实现这个功能。相同的密钥返回Chrome 102.0.5005.115较新的packed证明格式。

相关内容

  • 没有找到相关文章

最新更新