首页 > web教程 > 正文

WebAuthn 是什么

2024-01-07 21:53:43web教程阅读

WebAuthn(Web 身份验证)是由万维网联盟(W3C)发布的 Web 标准。WebAuthn 是 FIDO 联盟指导下的 FIDO2 项目的核心组成部分。该项目的目标是标准化用户对基于 Web 的应用程序和服务的公钥认证的接口。

WebAuthn

在客户端,可以通过多种方式实现对 WebAuthn 的支持。底层加密操作由验证器执行,验证器是一种抽象的功能模型,与关键材料的管理方式大多不相关。这使得可以纯粹在软件中实现对 WebAuthn 的支持,利用处理器的可信执行环境或可信平台模块(TPM)。敏感加密操作也可以卸载到漫游硬件验证器,而后者又可以通过 USB,蓝牙低功耗或近场通信(NFC)进行访问。漫游硬件验证器符合 FIDO 客户端到认证者协议(CTAP),使 WebAuthn 有效地向后兼容 FIDO 通用第二因子(U2F)标准。

与传统的 U2F 类似,Web 身份验证具有弹性到验证者模仿的能力,即它可以抵御主动的中间人攻击,但与 U2F 不同,WebAuthn 不需要传统的密码。此外,漫游硬件验证器可抵抗恶意软件,因为私有密钥材料在主机上运行的软件不会被访问。

WebAuthn 1 级标准于 2019 年 3 月 4 日作为 W3C 建议书发布。正在制定 2 级规范。

了解

与其前身 FIDO U2F 一样,W3C Web 身份验证(WebAuthn)涉及网站,Web 浏览器和身份验证器:

  • 该网站是一个符合 WebAuthn 的依赖方
  • 浏览器是符合 WebAuthn 的客户端
  • 验证者是 FIDO2 验证者,也就是说,它被认为与 WebAuthn 客户端兼容

WebAuthn 指定了索赔人如何向称为 WebAuthn 依赖方的验证者证明拥有和控制 FIDO2 验证者。身份验证过程由称为 WebAuthn Client 的实体调解,该实体仅仅是一个符合 Web 的浏览器。

出于说明的目的,我们假设验证器是漫游硬件验证器(参见下面的其他选项)。在任何情况下,身份验证器都是一个多因素加密身份验证器,它使用公钥加密来签署针对 WebAuthn 信赖方的身份验证断言。假设验证者使用 PIN 进行用户验证,验证者本身就是您所拥有的,而 PIN 是您所知道的。

WebAuthn 依赖方通过 JavaScript 向 WebAuthn 客户端(即浏览器)表明其意图。WebAuthn 客户端使用浏览器中实现的 JavaScript API 与身份验证器进行通信。验证器符合 FIDO 客户端到验证器协议。

WebAuthn 并不严格要求漫游硬件验证器。或者,可以使用软件认证器(例如在智能手机上实现)或平台认证器(即,直接在 WebAuthn 客户端设备上实现的认证器)。平台验证器的相关示例包括 Windows Hello 和 Android 操作系统。

所示流程依赖于基于 PIN 的用户验证,就可用性而言,其仅是对普通密码认证的适度改进。在实践中,使用生物识别技术进行用户验证可以显着提高 WebAuthn 的可用性。然而,生物识别背后的后勤仍然知之甚少。用户之间存在一种常见的误解,即生物识别数据以与密码相同的方式通过网络传输,但实际情况并非如此。

支持

WebAuthn Level 1 标准于 2019 年 3 月 4 日由 Web 身份验证工作组作为 W3C 推荐标准发布。WebAuthn 受以下 Web 浏览器支持:Google Chrome,Mozilla Firefox,Microsoft Edge 和 Apple Safari(预览版)。Opera Web 浏览器也支持 WebAuthn 。

自版本 67 以来,桌面版 Google Chrome 一直支持 WebAuthn。Firefox 已经完全支持以前的 FIDO U2F 标准,它包括并启用了 2018 年 5 月 9 日发布的 Firefox 60 版 WebAuthn。早期版本 Windows Insider 版本的 Microsoft Edge(Build 17682)实现了一个版本的 WebAuthn,它既适用于 Windows Hello,也适用于外部安全密钥。

现有的 FIDO U2F 安全密钥在很大程度上与 WebAuthn 标准兼容,尽管 WebAuthn 添加了引用唯一的每个帐户“用户句柄”标识符的功能,旧标识符无法存储。首批与 FIDO2 兼容的验证器之一是 Yubico 的第二代安全密钥,于 2018 年 4 月 10 日宣布。

Dropbox 于 2018 年 5 月 8 日宣布支持 WebAuthn 登录(作为第二因素)。

猜你喜欢

  • Webpack 是什么

    Webpack 是什么

    Webpack 是一个开源的前端打包工具。Webpack 提供了前端开发缺乏的模块化开发方式,将各种静态资源视为模块,并从它生成优化过的代码。 Webpack 可以从终端、或是更改 webpack.config.js 来设置各项功能。 要使用 Webpack 前须先安装 Node.js

    2024-01-07
  •  
  • WebHook 是什么

    WebHook 是什么

    WebHook 是网页开发中的一种通过自定义回调函数来增加或更改网页表现的方法。这些回调可被可能与原始网站或应用相关的第三方用户及开发者保存、修改与管理。术语“网络钩子”由杰夫·林德塞于 2007 年通过给计算机编程术语“钩子”加上前

    2024-01-07
  • Webmail是什么

    Webmail是什么

    Webmail 是因特网上一种主要使用网页浏览器来阅读或发送电子邮件的服务,因特网上的许多公司,诸如 Google、雅虎、国内的新浪邮箱、网易邮箱及 QQ 邮箱等,都提供有 webmail 服务。世界上第一个 webmail 服务是杰克·史密斯和印度的沙比尔·巴

    2024-01-07
  •  
  • WebDAV 是什么

    WebDAV 是什么

    WebDAV(万维网分布式创作和版本控制)是用于 Web 协作创作的 Internet 工程任务组(IETF)标准:超文本传输​​协议(HTTP)的一组扩展,便于远程用户之间的协作编辑和文件管理在互联网上互相访问。通过使远程组以新的方式协同工作,WebDAV 有望对虚拟企业

    2024-01-07