在整合 WebAuthn 之前你应该知道的事情
介绍一些 WebAuthn 的基本概念,旨在帮助你在整合 WebAuthn 时做出更好的决定。
WebAuthn 提供了一种比传统密码更安全,用户体验更友好的选择。它的流行度正在不断上升,越来越多的网站正在接受这项技术。如果你渴望建立自己的网站时整合 WebAuthn,你并不孤单。然而,作为一项相对较新的技术,你可能对此有很多疑问。
当考虑将 WebAuthn 整合到你的网站或应用程序时,理解以下这些关键概念和考虑因素会帮助你做出是否现在实施的明智决定。
WebAuthn 和 Passkeys 是什么?
让我们明确些定义:
- Web Authentication API (WebAuthn) 是 Credential Management API 的一个扩展。它强调了对公钥加密的身份验证,实现无密码和安全的多因素身份验证 (MFA),无需接受短信。
- Passkeys 提供了一种引人入胜的基于 WebAuthn 的替代方案,取代了我们许多人所熟悉的常规“密码 + 第二要素”的方法。在这种情况下,passkeys 是 WebAuthn 标准中的一个特定用例。
我可以在多个设备上使用 passkey 吗
是的,你可以通过两种方式在多个设备上使用 Passkey:
- 通过密码管理器同步:如 iCloud Keychain、Google Password Manager 和 1Password 之类的流行密码管理器允许你同步 p。在注册响应中标记为“跨平台”的 Passkeys,如 GitHub 的“同步”标签,可以在不同设备上使用。
- QRCode 和 Bluetooth:另一种方式是使用 QR 码和 Bluetooth 从另一部设备登录。这种方法为用户提供了在不同平台上访问其帐户的灵活性。
它可以是唯一的身份验证方法吗
绝对可以,WebAuthn 是一个高度安全的身份验证因素。Passkey 包含一个“用户 ID”,在身份验证过程中,服务器接收到已验证的“用户 ID”作为标识符。这个“用户 ID”可以是统一唯一标识符(UUID)或其他独特的标识符,如电子邮件、电话号码或用户名。用户可以选择首先输入其“用户 ID”,然后搜索有效的 Passkey,或者从与当前域关联的列表中选择一个 Passkey。
兼容性如何
WebAuthn 可以在安全的上下文中使用 (HTTPS) 并且在大多数浏览器的最新版本中都得到支持。有关详细的兼容性信息,请参考 MDN 文档。
域是 passkey 的关键标识符
在 WebAuthn 操作中,无论是注册还是身份验证, “rp ID”( relying party ID) 都是必填字段。它代表当前网页的域主机名。如果它不匹配当前的域,浏览器将拒绝请求。这意味着 passkeys 绑定到一个特定的域,并且目前没有办法将现有的 passkeys 迁移到不同的域。此外,passkeys 不能跨不同的域使用。有关详细信息,请参看此 问题。
与验证器应用程序 (TOTP) 比较
将 WebAuthn 与传统的二次身份验证方法(如基于时间的一次性密码 (TOTP) 和验证器应用程序)进行比较,可以看出几个优点。WebAuthn 提供了一种更友好安全的身份验证体验。不像 TOTP ,需要手动输入一个不断变化的代码,或者验证器应用程序,如果设备被盗,可能会被攻击,WebAuthn 依赖于安全的硬件和生物识别技术,以实现无缝且强大的身份验证过程。
然而,需要注意的是,TOTP 仍然有其优点,如易于备份和跨设备使用,使它与几乎所有设备兼容。
结论
WebAuthn 无疑令人兴奋,但像任何突破性的技术一样,接受它之前,了解全面的信息至关重要。这篇文章的目标是为你提供关于 WebAuthn 整合的知识,使你做出知情的决定。当你考虑其潜在的好处时,陶醉于信息更新是你成功的关键。另外,保持关注,因为 Logto 的下一个主要功能将支持 WebAuthn,为无缝且安全的身份验证提供了更多可能性。