问题标签 [windows-hello]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
touch-id - 使用内置身份验证器时 FIDO2/WebAuthn 的注册策略
这更像是一个哲学问题而不是技术问题,但我认为它仍然具有相关性,即使它更多地归结为 UX 设计而不是其他任何东西。
现在是 2021 年,几乎没有人拥有 Yubikey 或类似设备,但几乎每个人都拥有带有 TPM 和支持 FIDO2 和 WebAuthn 的操作系统或浏览器的手机、平板电脑或台式机/笔记本电脑。因此,我想探索使内置身份验证器注册过程尽可能流畅的方法,并且不要求他们(至少暂时)进行常规密码身份验证以使其完成。
有没有人知道类似于 OpenID Connect 设备流程的野外方法,有人可以去公共注册端点,为他们的设备进行注册仪式,然后使用生成的唯一代码将其链接到另一个已经存在的帐户注册设备?
我会看到它像这样工作:
- 用户通过链接或一些说明访问https://idp.mycompany.com/enroll
- 他们点击“注册此设备”按钮并触发创建凭证交互(可能需要在此处提示输入用户 ID,因为我们需要它来设置常驻密钥)
- 我们将生成的凭证存储在后端并交换一个唯一的代码(例如 ABC123)
- 用户在已经注册的设备上访问https://idp.mycompany.com/enroll/ABC123(或者可能访问可以输入代码的 UI)
- 提示用户使用其已注册设备上的常驻密钥进行身份验证
- 用户登录后,存储的凭据将添加到相关用户帐户中,并且他们会收到视觉确认
- 用户可以在新注册的设备上使用凭据登录
这对我来说是非常安全的,因为即使可以猜到一个代码,你可以做的最糟糕的事情就是将其他人的凭据添加到你的帐户中,并且由于这是在经过身份验证的上下文中发生的,因此我们可以轻松地实现速率限制。用户可以在事后自由管理他们的凭据,但他们认为可以通过管理 UI 进行管理。
第 2 步可能是我最不清楚的一点,但我的想法是,用户是否为常驻密钥提供垃圾用户详细信息并不重要,因为无论如何我们都将根据后端的凭证 ID 进行链接。如果他们胡说八道,那么他们只会影响他们自己的用户体验,不会影响其他任何事情,如果他们愿意,他们可以自由地纠正错误。
想法?
附录:经过深思熟虑,我认为这种方法(以及与此相关的 OIDC/OAuth2 设备流程)打开了一个重要的网络钓鱼向量,因此可能应该避免。
uart - 将 UART 指纹传感器集成到 Windows 生物识别框架中
我有一个指纹传感器,它通过一个包含 Silicon Labs CP2102 芯片的 USB 转 TTL 模块连接到我的计算机。将 COM 端口连接集成到 Windows 生物识别框架的最佳方式是什么?示例 USB 驱动程序 UMDF 代码目前对我来说毫无用处。
另外,我可以加载未签名或未经认证的驱动程序来测试我的传感器的 Windows Hello 吗?