如何区分FIDO2设备

问题描述

我想在webauthn中区分认证设备。

我想知道这是否可行,以及如果可能的话我该怎么做。

解决方法

不幸的是,没有您可以调用的简单 WebAuthn API 函数来说“给我可用的身份验证器的名称”。 WebAuthn API 的设计目的是让确定身份验证器 in the name of greater user privacy 的具体品牌和型号变得困难。

确定身份验证器的品牌和型号的唯一可靠方法是 request direct attestation during registration,然后将您返回的 aaguid 与您自己收集和维护的列表进行交叉引用,或者通过其他方式像Fido Alliance Metadata Service

注意:如果您不请求 "direct" 证明,您很可能是 to get back an obscured aaguidenter image description here

For platform authenticators specifically 您可以尝试根据浏览器屏幕尺寸和用户代理分析等内容创建“启发式”,尝试可靠地确定系统级身份验证器(如 Touch ID 或 Windows Hello)是否可用。在用户成功向您的站点注册凭据后,您希望将启发式分析的结果与凭据一起存储,以便稍后在身份验证期间提供 UX 提示(例如,“我们确定用户注册了 Windows Hello 凭据,因此向他们显示‘回车您的 Hello PIN 以在身份验证期间继续'用户界面。")