WebAuthn无密码身份验证技术

news2025/7/21 18:35:46

背景

WebAuthn全称是Web Authentication API,是由W3C和FIDO在 Google、Mozilla、Microsoft、Yubico 等公司的参与下编写的规范。WebAuthn是一组在服务器、浏览器和身份验证器之间启用无密码身份验证技术。一般使用非对称加密技术,用公钥代替传统的密码,来注册和验证用户。主流浏览器Chrome、Firefox、Edge 和 Safari 都支持 WebAuthn。

注册流程

  1. 用户进入注册页面,填写个人资料后,提交给服务端。

  1. 服务端收到个人资料后,生成Challenge(随机字符串)和凭证 ID(用户的userID)返回给客户端。

  1. 客户端将Challenge 、凭证 ID和服务器域名信息发送给验证器(Authenticator),验证器可以是FaceID、实体秘钥等认证设备,存在多个设备可以让用户选择一种验证器。

  1. 验证器判断域名+凭证 ID是否存在密钥对,不存在就创建新的密钥对(公私钥)。验证器将私钥存在域名+凭证 ID下,再用私钥签名Challenge,将签名结果、凭证 ID和公钥返回给客户端(浏览器)。

  1. 浏览器把结果传给服务器

  1. 服务器取出凭证 ID对应的Challenge,用公钥签名Challenge,将结果和浏览器返回的签名比较,一致表面验证通过。然后,把凭证 ID对应的公钥存下来。

认证流程

  1. 用户进入登录页面,输入用户名后点击登录

  1. 服务器返回凭证 ID(userID)和Challenge

  1. 浏览器将域名、凭证 ID(userID)和Challenge发给验证器

  1. 验证器通过域名、凭证 ID找到私钥,通过私钥签名Challenge,将签名结果返回给浏览器。

  1. 浏览器将将签名结果、凭证 ID发给服务器

  1. 服务器取出凭证 ID对应的Challenge,用公钥签名Challenge,将结果和浏览器返回的签名比较,一致表面验证通过,允许用户登录。

引用

接口文档: https://webauthn.guide/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/395164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue实例的常用属性 Vue实例常用方法

vm.$ el和 vm.$ data 在new Vue()实例中经常设置el,data选项,data选项里面又可以定义很多属性(常称为数据属性),Vue提供了一些有用的实例属性与方法,它们都有前缀$,以便与用户定义的属性相区别。 使用Vue…

Linux服务:LVS负载均衡+keepalived架构

目录 一、LVS 1、负载均衡的结构 2、LVS三种工作模式 3、LVS调度算法 5、ipvsadm工具 二、KEEPALIVED 1、KEEPALIVED作用 2、KEEPALIVED原理 3、KEEPALIVED工作模式 4、KEEPLIVED问题及优化 三、LVSKEEPALIVED架构实现 1、实验目的 2、实验拓扑 3、实验准备 4、…

关于几种求最短路算法的碎碎念(Dijkstra、spfa、floyd)

目录 一、求1号点到n号点的最短路 1、所有边都是正数——Dijkstra (1)朴素版dijkstra - 邻接矩阵 (2)堆优化版dijstra - 邻接表 2、存在负权边——spfa 3、dijkstra和spfa的区别 二、起点和终点未知,求某两点间…

【16】linux命令每日分享——chmod修改权限

大家好,这里是sdust-vrlab,Linux是一种免费使用和自由传播的类UNIX操作系统,Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途;linux涉及到IT行业的方方面面,在我们日常的学习中&…

使用QIS(Quantum Image Sensor)图像重建总结(1)

最近看了不少使用QIS重建图像的文章,觉得比较完整详细的还是Abhiram Gnanasambandam的博士论文:https://hammer.purdue.edu/articles/thesis/Computer_vision_at_low_light/20057081 1 介绍 讲述了又墨子的小孔成像原理,到交卷相机&#xf…

[AI助力] 2022.3.3 考研英语学习 2012 英语二翻译

[AI助力] 2022.3.3 考研英语学习 2012 英语二翻译 文章目录[AI助力] 2022.3.3 考研英语学习 2012 英语二翻译2012年英语二翻译真题总结积累🧐来点好玩的想法~ 这次试试让AI做更多的事情它居然给出了流汗黄豆😅让它评价一下参考答案让AI评价我的翻译让AI …

工具及方法 - Windows下出现“IPv4/IPv6 No Internet Access“错误

家里的PS4,突然用电信网刷新不了PS会员游戏了。同样的网,登录微软账号也登不上。难道是网络问题? 可我换成手机热点就是好的,而且PS4再用电信网络就恢复了。 让我郁闷了一下,开始怀疑人生。后来上网查了一下&#xf…

IM即时通讯开发用Netty实现心跳机制、断线重连机制

所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性。注:心跳包还有另一个作用,经常被忽略,即:一个连接如果长时间不用,防火墙或者路由器就会…

百天百题(1/100)Java创建线程的方式?

首先创建线程有四种种方式: 1.继承Thread类 缺点:1.Java是不支持多继承的,所以我们不能在继承其他的类了 2.不能通过线程池来此操作,每次创建一个线程都需要先创建一个类,创建和销毁线程对整体的资源开销是非常大的。…

Thread 类的基本用法

1.线程创建 Thread类:创建的线程都是一样的 1.继承Thread,重写run; 2.实现Runable,重写run; 3.使用匿名内部类,继承Thread; 4.使用匿名内部类,实现Runnable; 5.使用lambda表达式(常用&#xff…

IDEA插件系列(3):Maven Helper插件

一、引言在写Java代码的时候,我们可能会出现Jar包的冲突的问题,这时候就需要我们去解决依赖冲突了,而解决依赖冲突就需要先找到是那些依赖发生了冲突,当项目比较小的时候,还比较依靠IEDA的【Diagrams】查看依赖关系&am…

嵌入式学习笔记——使用寄存器编程操作GPIO

使用寄存器编程操作GPIO前言GPIO相关的寄存器GPIO 端口模式寄存器 (GPIOx_MODER) (x A..I)位操作GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x A..I)GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR) (x A..I/)GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR) (x A..I/)GPIO 端口输入数据寄…

Python bool 到底怎么用? 【源码拆解】

人生苦短 我用python 一、布尔类型描述 布尔类型是计算机中最基本的类型, 它是计算机二进制世界的体现,一切都是 0 和 1 。 Python中的布尔类型只有两种值:True 和 False 。 (注意:首字母都是大写,与C、Ja…

女生学习大数据怎么样~有前景么

当前大数据发展前景非常不错,且大数据领域对于人才类型的需求比较多元化,女生学习大数据也会有比较多的工作机会。大数据是一个交叉学科涉及到的知识量比较大学习有一定的难度,女生则有女生的优势,只要认真学习了都是可以做大数据…

STM32定时器的编码器接口模式

MCU为STM32L431,通用定时器框图: 编码器接口模式一共有三种,通过TIMx_SMCR寄存器的SMS[3:0]位来选择。模式1计数器仅在TI1FP1的边沿根据TI2FP2的电平来判断向上/下计数;模式2计数器仅在TI2FP2的边沿根据TI1FP1的电平来判断向上/下…

Python面向对象的三大特征 - - 封装、继承、多态

目录 一、三大特征介绍 1、封装(隐藏) 2、继承 3、多态 二、继承 1、子类扩展父类 1.语法格式 2.构造函数 2、类成员的继承和重写 1. 成员继承 2. 方法重写 3、查看类的继承层次结构 4、object根类 1.描述 2. dir() 查看对象属性&#xff…

JVM-可达性分析算法

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈…

maven的学习

为啥要用maven 1、不用认为添加jar包所依赖的其他jar包 2、能在本地仓库只保留一份jar包,避免了多个工程使用相同jar包,需要重复导入的问题,减少冗余 3、能够规范添加jar包,在下载需要的jar包时有多种方法,但是不能保…

TeeChart VCL/FMX v2023 crack

TeeChart VCL/FMX v2023 crack TeeChart Pro VCL允许您为所有领域(包括商业、工程、金融、统计、科学、医疗、实时和网络)创建通用和专用图表和绘图应用程序。TeeChart Pro VCL具有多种图表类型的图表库,包括2D或3D线条、条形图、水平条、区域、点、饼图、箭头、气泡…

MySQL OCP888题解043-GTID模式下如何解决主键冲突问题

文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析3、知识点3.1、知识点1:GTID模式下跳过一个事务的方法4、总结1、原题 1.1、英文原题 A simple master-to-slave replication is currently being used. This information is extracted from the SH…