W3C Web 身份验证 (WebAuthn)

2019 年 3 月 6 日,作者:Stian Thorgersen

W3C Web 身份验证 (WebAuthn) 最近成为了正式的网络标准。这是朝着为用户提供更安全、更简单的身份验证体验迈出的重要一步。

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

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

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

我们当然计划在不久的将来为 Keycloak 带来 WebAuthn 支持。 webauthn4j 背后的团队一直在努力创建一个高质量的 WebAuthn Java 库,并有望很快推出 Keycloak 的扩展程序。

我们将首先专注于使用 WebAuth 进行双因素身份验证,并以此为契机,我们将对 Keycloak 进行一系列关于双因素身份验证的改进。有关更多详细信息,请查看设计文档

稍后,我们还将为 Keycloak 带来无密码体验。 这还将把 Keycloak 引入到身份优先的登录流程中。 通过首先询问用户的身份,Keycloak 可以根据用户的偏好,就如何验证用户身份做出更明智的决策。 例如,请求用户按下安全密钥上的按钮,而不是要求输入密码。

资源