W3C 网页身份验证 (WebAuthn)

2019 年 3 月 6 日 作者:Stian Thorgersen

W3C 网页身份验证 (WebAuthn) 最近成为官方网页标准。这是向为用户提供更安全、更简单的身份验证体验迈出的重要一步。

传统的身份验证(如密码和 OTP)依赖于用户和网页应用程序之间共享的秘密,而 WebAuthn 并非如此。WebAuthn 使用基于公钥的凭据,因此网页应用程序不再访问用户的秘密。这些密钥也对每个网页应用程序都是唯一的,这消除了网络钓鱼攻击的风险。

WebAuthn 提供了一个标准协议,用于网页应用程序通过相对简单的挑战/响应方式通过多种设备进行身份验证。所有主要浏览器供应商现在都支持 WebAuthn 和 FIDO2,其中 FIDO2 是使浏览器能够与不同的硬件设备进行通信的规范。

WebAuthn 可用作双因素机制,也可用于实现无密码身份验证。已经存在相当数量的设备可与 WebAuthn 配合使用。有许多安全密钥,例如 YubiKeyThinCTitan。许多新笔记本电脑还内置了指纹扫描仪,Android 最近也使得使用 Android 7+ 设备上的指纹扫描仪与 WebAuthn 配合使用成为可能。

我们当然计划在不久的将来将 WebAuthn 支持引入 Keycloak。webauthn4j 背后的团队一直在努力为 WebAuthn 创建一个高质量的 Java 库,并希望很快能够为 Keycloak 提供一个扩展。

我们首先将重点放在使用 WebAuth 进行双因素身份验证,作为此工作的一部分,我们将围绕双因素身份验证对 Keycloak 进行一些改进。有关更多详细信息,请查看 设计文档

稍后,我们还将在 Keycloak 中引入无密码体验。这也将为 Keycloak 引入基于身份的登录流程。通过首先询问用户的身份,Keycloak 可以根据用户的偏好提供更智能的身份验证决策。例如,要求用户按他们安全密钥上的按钮,而不是要求他们输入密码。

资源