使用 WebAuthN 是否可以拒绝某些类型的身份验证方法 FIDO2)

With WebAuthN is it possible to deny certain types of authentication methods FIDO2)

使用 WebAuthN (https://w3c.github.io/webauthn/) 进行身份验证时,是否可以隐藏某些身份验证选项?

例如,在 webauthn.io 上进行测试时,我的 android 设备显示可用的身份验证类型,例如硬件密钥、蓝牙和指纹。我是否可以通过某种方式将其配置为不接受硬件密钥和蓝牙。

Also, when selecting and using my fingerprint to login, if I force it to fail by using the wrong finger, it defaults to then asking for my unlock pattern and if I enter my unlock pattern, I still get a success .在我看来,解锁图案并不安全,因为脏的屏幕会在屏幕上留下带有污迹的图案。另外 parents 将密码提供给 children。如果指纹失败错误,我可以停止此行为吗?

不是专家,但这是我最近在我们的身份提供商中实施 WebAuthn/FIDO2 支持时发现的:

  1. authenticatorSelection.authenticatorAttachment - 当您为 navigator.credentials.create() 创建请求时,您可以指定它应该使用 platform(即内置 biometric/PIN)还是 cross-platform(例如,外部 USB/BT/NFC 设备)。请注意,这只是给用户代理一个关于您所追求的内容的提示。
  2. authenticatorSelection.userVerification - 将其设置为 required,它将要求用户提供一个额外的因素,而不仅仅是验证存在 - 即 PIN 或生物识别挑战
  3. 证明 - 符合 FIDO2 标准的设备可以提供可以通过元数据服务验证的证明信息。这将公开设备的功能,您可以以此为基础制定政策。例如。你可以坚持它必须使用防篡改硬件来保护私钥。
  4. 身份验证结果 - 可以提供有关如何验证用户的信息,以便您可以围绕该信息制定政策。此扩展的规范在这里:https://www.w3.org/TR/webauthn/#sctn-uvm-extension

建议不是专门针对自己的 black/white-list 设备,但 MDS 确实支持撤销认证,依赖方应尊重这一点。