FIDO认证 无密码的愿景

news2024/12/24 9:18:34

目录

1、简介

2、关于FIDO联盟

3、FIDO如何工作

3.1 FIDO 注册

3.2 FIDO登录

4、FIDO2

4.1 W3C WebAuthn

4.2 CTAP2

4.3 CTAP1

4.4 FIDO UAF

4.5 FIDO U2F

5、FIDO身份验证的优势

5.1 安全

5.2 便利性

5.3 隐私政策

5.4 可扩展性


1、简介

FIDO(在线快速身份认证)联盟名义上是 2012 年 7 月成立的,联盟是 501(c)6 非营利性组织,该组织旨在解决强身份认证设备之间缺乏可互操作性的问题,以及用户面临的设立、记忆多组用户名和密码的难题。FIDO 联盟通过制定开放的、可扩展的、可互操作的协议,正在从本质上改变着身份认证,从而取代依赖密码在在线服务中对用户进行安全地身份认证。这一适用于安全设备和浏览器插件的新标准允许任何网站或云端应用程序与现有的和即将完成FIDO认证的设备进行交互,从而使用户可享用更安全的网络体验。

2、关于FIDO联盟

FIDO 联盟的使命是重新定义在线身份认证:

  • 通过制定一套开放的、可扩展的、可互操作的技术规范,从而减少对通过密码认证用户身份的依赖。
  • 施行行业计划,确保全球范围内规范的成功部署。
  • 向公认的标准组织提交成熟的技术规范,以实现正式标准化。

制定并部署 FIDO 身份认证解决方案为 IT 供应商、企业、服务提供商和整个大行业带来了无数裨益,其中包括:

  • 更强的帐户/交易安全性 – 这会降低成本、并减少问题的产生,同时还能提高了客户的忠诚度并减少了客户的流失。改良后的身份认证还能降低风险,并能开发新的经营模式和收入来源。
  • 改善用户体验 – FIDO 解决方案可以为企业消费者和员工提供更多便利。用户无需再记忆复杂的密码,因此简化了用户开通工作并大幅削减了远程密码重置的相关费用。
  • 提高身份认证的投资回报 – 与当前单个设备类型与单个应用程序相关联的专项方法相比,显著减少了部署和支持新解决方案的相关费用。系统管理功能将由 FIDO 基础架构提供,各应用程序无需再分别进行搭建。所需进行的测试较少,因为所有设备都只需插入 FIDO 接口即可,因此引入新技术的时间也将会大幅缩减。
  • 降低受骗风险 – 所有启用 FIDO 的网站和云端/移动应用程序的用户遭遇身份欺骗的风险将会更低,同时还能享受较少依赖密码带来的便利。始终如一的用户体验和更高的安全性,将进一步促进人们对在线系统的信赖。

3、FIDO如何工作


FIDO协议使用标准公钥加密技术来提供更强的认证。在向在线服务注册期间,用户的客户端设备创建新的密钥对。它保留私钥并向在线服务注册公钥。认证由客户端设备通过签署质询来完成,以证明拥有服务的私钥。客户端的私钥只有在由用户在设备上本地解锁后才能使用。本地解锁通过用户友好且安全的动作来完成,例如滑动手指、输入PIN、对着麦克风说话、插入双因素设备或按下按钮。

FIDO协议的设计初衷是为了保护用户隐私。协议不提供可由不同在线服务使用以跨服务协作和跟踪用户的信息。生物识别信息(如果使用的话)永远不会离开用户的设备

3.1 FIDO 注册

注册如上图所示:

  1. 用户BOB选择与在线服务的接受策略匹配的可用FIDO验证器。
  2. 用户BOB使用指纹读取器、双因素设备上的按钮、安全输入的PIN或其他方法解锁FIDO认证器。
  3. 用户BOB的设备创建对于本地设备、在线服务和用户的帐户唯一的新的公钥/私钥对
  4. 用户BOB公钥被发送到在线服务并与用户的账户相关联。而私钥和一些私密信息则会存储在本地设备中.

3.2 FIDO登录

登录过程如上图所示:

  • 在线服务向用户询问,要求用户使用与服务的接受策略匹配的先前注册的设备登录。
  • 用户使用与注册时相同的方法解锁FIDO验证器。
  • 设备使用由服务提供的用户的账户标识符来选择正确的密钥并对服务的质询进行签名。
  • 客户端设备将签名的质询发送回服务,服务使用存储的公钥对其进行验证并登录用户。

从加密方式来说,这就是属于非对称加密方式。

在注册的时候,用户创建了密钥对,用公钥进行加密,然后发送到在线服务端,在线服务器存储了对应用户以及公钥信息,会出现一个锁住的图标。

在登录的时候,用户需要拿私钥进行签名,在线服务端需要拿到用户的私钥和已存在的公钥进行比对,比对通过,才能让用户登录,出现解锁的图表。公钥就相当于一个闭合的锁,而私钥就是唯一的钥匙,只有唯一的钥匙才能打开这把锁。

4、FIDO2

FIDO联盟发布了三套规范,以实现更简单、更强大的用户身份验证:FIDO通用双因素(FIDO U2 F)、FIDO通用认证框架(FIDO UAF)和客户端到认证器协议(CTAP)。CTAP是对W3C的Web身份验证(WebAuthn)规范的补充
;它们一起被称为FIDO 2

FIDO2规范是万维网联盟(W3C)的Web认证(WebAuthn)规范和FIDO联盟的对应客户端到认证器协议(CTAP)。

FIDO2支持无密码、双因素和多因素用户体验,包括嵌入式(或绑定)身份验证器(如生物识别或PIN)或外部(或漫游)身份验证器(如FIDO安全密钥、移动的设备、可穿戴设备等)。  

4.1 W3C WebAuthn

WebAuthn定义了一个标准的Web API,该API被内置到浏览器和平台中,以支持FIDO身份验证。

4.2 CTAP2

CTAP2允许使用外部身份验证器(FIDO安全密钥、移动的设备),通过USB、NFC或BLE在支持FIDO2的浏览器和操作系统上进行身份验证,以实现无密码双因素多因素身份验证体验。

4.3 CTAP1

FIDO U2F的新名称CTAP1允许使用现有的FIDO U2F设备(如FIDO安全密钥)通过USB、NFC或BLE在支持FIDO2的浏览器和操作系统上进行身份验证, 以获得双因素体验

4.4 FIDO UAF

FIDO UAF支持无密码体验。使用FIDO UAF,用户携带安装有FIDO UAF堆栈的设备。然后,他们可以通过选择本地认证机制(诸如滑动手指、看着相机、对着麦克风说话、输入PIN等)来将他们的设备注册到在线服务。FIDO UAF协议允许服务选择向用户呈现哪些机制。

一旦注册,用户只要在需要向服务进行身份验证时就简单地重复本地身份验证操作。用户在从该设备进行身份验证时不再需要输入密码。FIDO UAF还允许联合收割机多种身份验证机制(如指纹+ PIN)的体验。

4.5 FIDO U2F

FIDO U2F支持双因素体验。FIDO U2F允许在线服务通过向用户登录添加强大的双因素来增强其现有密码基础设施的安全性。用户像以前一样使用用户名和密码登录。该服务还可以提示用户在其选择的任何时间呈现双因素设备(诸如FIDO安全密钥)。强双因素允许服务简化其密码(例如,4位数的PIN),而不会影响安全性。

在注册和认证期间,用户通过简单地按下USB设备上的按钮或通过NFC或BLE轻敲来呈现第二因素。用户可以在支持协议的所有在线服务中使用他们的FIDO U2F设备,利用Web浏览器中的内置支持。

随着FIDO2的发布,U2F被重新标记为CTAP1。

5、FIDO身份验证的优势

5.1 安全

FIDO2密码登录凭证在每个网站上都是唯一的,永远不会离开用户的设备,也不会存储在服务器上。此安全模型消除了网络钓鱼、所有形式的密码窃取和重放攻击的风险。

5.2 便利性

用户可以通过简单的内置方法(如设备上的指纹读取器或摄像头)或利用易于使用的FIDO安全密钥来解锁加密登录凭据。消费者可以选择最适合他们需求的设备。

5.3 隐私政策

因为FIDO加密密钥对于每个互联网站点是唯一的,所以它们不能用于跨站点跟踪用户。此外,生物识别数据在使用时永远不会离开用户的设备。

5.4 可扩展性

网站可以通过一个简单的JavaScript API调用启用FIDO2,该调用在消费者每天使用的数十亿设备上的领先浏览器和平台上得到支持。

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

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

相关文章

Python 爬虫(一):爬虫伪装

1 简介 对于一些有一定规模或盈利性质比较强的网站,几乎都会做一些防爬措施,防爬措施一般来说有两种:一种是做身份验证,直接把虫子挡在了门口,另一种是在网站设置各种反爬机制,让虫子知难而返。 2 伪装策…

【2023 · CANN训练营第一季】初识新一代开发者套件 Atlas 200I DK A2 第二章——安装Atlas 200I DK A2跑通第一个案例

准备相关软件 包括一台PC机(空间大于10g),读卡器,32gsd卡,一根网线。 具体步骤: 开始烧录开发板镜像:将sd卡插入读卡器,将读卡器插入PC机的USB接口,根据相关链接在PC机下载制卡工具…

混合云到底是什么?

大型企业不能再仅仅拥有本地系统就可以逃脱;因此,将一些数字化运营迁移到云端成为了必要。 第一步涉及选择是使用公共云还是私有云,或者两者都使用。使用两者是混合云。 但混合云到底是什么?在回答之前,让我们看看这…

图生图—AI图片生成Stable Diffusion参数及使用方式详细介绍

本文为博主原创文章,未经博主允许不得转载。 本文为专栏《Python从零开始进行AIGC大模型训练与推理》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/130169592”。 Stable Diffusion webui的详细安装步骤以及文生图(txt2…

【Linux】Linux入门学习之常用命令四

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

Jenkins教程-Docker安装Jenkins,并构建任务等

本文主要介绍如何在docker中安装Jenkins,启动容器后,如何使用Jenkins构建自己的项目,创建任务等 文章目录 前言Docker安装Jenkins访问Jenkins并配置Jenkins构建项目创建任务源码管理构建触发器BuildPost Steps 设置手工触发构建 前言 参考链…

Redis集群安全加固

本博客地址:https://security.blog.csdn.net/article/details/130692909 一、为Redis启用密码验证 默认情况下,Redis不执行任何密码身份验证。能够通过IP端口连接Redis的客户端均可以直接访问Redis中的数据。在启动Redis服务时,通过设置req…

玩转自动化操作神器n8n之(1)n8n的简介与安装

文章目录 1. 简介 2. 安装2.1. 使用npx进行安装2.2. 使用docker进行安装 2.3. 设置端口(可选) 3. 登录4. 搜索工作流 1. 简介 n8n是一款强大的工作流程自动化工具,可以自定义想要使用的功能和应用程序。n8n基于节点能够将任何工具连接在一起…

使用插件快速生成代码

使用插件快速生成代码 咋们常说,授人以鱼不如授人以渔,在这里给大家提供一些技巧性的东西,方便一些新手同学可以快速上手,同时,也提高我们的开发兴趣与开发热情! 主要讲什么呢,我们来学一学如何…

低代码信创开发核心技术(二):手撕灵活好用的Vue拖拉拽布局系统

前言 随着信息化时代的到来,软件已经成为企业和个人不可或缺的工具。然而,许多人在开发软件时遇到了各种问题,比如开发周期长、技术门槛高、成本高昂等等。为了解决这些问题,低代码平台应运而生。低代码平台是一种快速开发工具&a…

Golang每日一练(leetDay0067) 第十行、打家劫舍I

目录 195. 第十行 Tenth Line 🌟 198. 打家劫舍 I House Robber 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 195. 第十行 Tenth Line 给定一…

PySide6/PyQT多线程之 异常情况和优先级指南

前言 在PySide6/PyQT 中使用多线程时,线程的优先级和异常情况处理同样是重要的概念。 本文纯理论知识,无实操。换句话说,就是水文~~ 尽管在一般情况下我们不需要过多关注线程的优先级,但了解它的概念对于特定场景下的多线程编程仍…

Java每日一练(20230516) 最小栈、组合总和II、相同的树

目录 1. 最小栈 🌟 2. 组合总和 II 🌟🌟 3. 相同的树 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 最小栈 设计一个支持 push…

[入门必看]数据结构5.4:树、森林

[入门必看]数据结构5.4:树、森林 第五章 树与二叉树5.4 树、森林知识总览5.4.1 树的存储结构5.4.2 树、森林与二叉树的转化5.4.3 树和森林的遍历 5.4.1 树的存储结构树的逻辑结构回顾:二叉树的顺序存储如何实现树的顺序存储?树的存储1&#x…

【连续介质力学】张量的范数、各向同性和各向异性张量、同轴张量和极分解

张量的范数 张量的大小,使用Frobenius 范数: ∣ ∣ v ⃗ ∣ ∣ v ⃗ ⋅ v ⃗ v i v i (向量) ||\vec v|| \sqrt{\vec v \cdot \vec v} \sqrt{v_iv_i} (向量) ∣∣v ∣∣v ⋅v ​vi​vi​ ​&#xff…

okhttp篇2:Dispatcher

Dispatchers维护着一个线程池,3个双端队列,准备执行的AsynCall,正在执行的AsynCall,正在执行的同步Call(RealCall)。 同时规定每个Host最多同时请求5个Request,同时可最多执行64个Request。 p…

玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest

一、前言 本篇将介绍一些gtest的基本使用,包括下载,安装,编译,建立我们第一个测试Demo工程,以及编写一个最简单的测试案例。 二、下载 如果不记得网址, 直接在google里搜gtest,第一个就是。目…

Docker下Gitlab配置Let’s Encrypt证书

Docker下Gitlab配置Let’s Encrypt证书 1 参考文档2 常见问题2.1 前置条件2.2 不支持ip2.3 重复签发2.4 外网无法访问 ※3 内网穿透配置(可选)4 Gitlab 创建并配置Let’s Encrypt证书4.1 开放Let’s Encrypt签发所需端口4.2 新增存储HTTPS证书文件夹4.3 …

多态与虚函数(补)

多态与虚函数(补) 静态联编与动态联编的深层次理解多态底层原理 示例示例一示例二示例三示例四 对象与内存虚析构函数构造函数为什么不能是虚函数? 静态联编与动态联编的深层次理解 我们首先看下面一段代码 class object { private: int va…

C learning_12 操作符前篇(算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符)

目录 算术操作符 移位操作符 移位规则 位操作符 交换两个整形变量的写法 赋值操作符 单目操作符 sizeof和数组的纠缠 和--运算符 多组输入的方案 关系操作符 逻辑操作符 算术操作符 -- 加法操作符():用于将两个值相加。 -- 减法操…