首页 > 解决方案 > 使用 WebAuthN 可以拒绝某些类型的身份验证方法 FIDO2)

问题描述

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

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

此外,在选择并使用我的指纹登录时,如果我使用错误的手指强制它失败,它默认会询问我的解锁图案,如果我输入我的解锁图案,我仍然会成功。在我看来,解锁图案并不安全,因为脏屏幕会在屏幕上留下带有污迹的图案。父母也把别针给孩子。我可以停止这种行为吗?如果指纹失败,则改为错误?

标签: securityauthenticationwebauthnfidopassword-less

解决方案


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

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

建议不要自己专门将设备列入黑/白名单,但 MDS 确实支持撤销认证,依赖方应该尊重这一点。


推荐阅读