章节系列目录:点击跳转

  你有没有发现支付宝、银行、淘宝、华为pay等等都是使用指纹支付,为什么指纹验证、面容验证通过它就能通过呢?本篇来说说背后的原理。

根据华为开发者文档介绍如下

FIDO2线上快速身份验证客户端:

  • 提供基于WebAuthn标准的FIDO2线上快速身份验证客户端实现,为应用及浏览器提供安卓Java API

  • 支持使用USB、NFC、蓝牙漫游认证器。

  • 支持指纹和3D面容的平台认证器。

  • 将系统完整性检测结果作为FIDO2认证的前置条件,保障认证结果更安全。

BioAuthn本地生物特征认证:

  • 将系统完整性检测结果作为使用本地生物特征认证的前置条件,保证生物特征认证更安全。

  • 基于密钥校验机制,保障认证结果安全可信。

  用户登录和用户支付时,需要验证使用者是否是服务的合法用户,就需要FIDO2线上快速身份验证能力。
  这些能力最常见的就是指纹验证。还有其他的蓝牙、NFC、USB验证,验证方式就是使用物理的安全密钥,这个可以在淘宝买到,比如Yubikey,是形状类似于U盾或者动态令牌的认证器。
  采用该方式的手机既可以作为客户端,也可以作为认证器(比如手机中的指纹识别硬件),只要验证指纹,即可完成登陆。

流程介绍

我个人理解的图中的名词解释一下:

3rd App:第三方应用程序,理解为你公司的app
3rd FIDO Server:FIDO服务器,理解为华为服务器,当然也可以是小米服务器等等第三方厂商的服务器。
FIDO Client:FIDO客户端,是HMS的SDK能力的一部分
FIDO Authenticator:FIDO认证器,是HMS的SDK能力的一部分
BioAuthn:本地生物能力认证,是HMS的SDK能力的一部分,如果root设备,会提示不安全的设备环境,直接禁止该生物认证功能。

流程说明如下

官方晦涩难懂的解释如下:
1.应用程序集成FIDO2客户端SDK,向FIDO服务器发起注册请求。
2.FIDO服务器将随机生成挑战值返回给应用程序,应用程序将挑战值发给FIDO客户端,FIDO客户端连接认证器,发起注册。
3.认证器验证通过,生成一对用户公私钥,并将私钥保存在本地。然后用其预置的私钥将生成的公钥及挑战值进行签名。
4.认证器返回签名给FIDO客户端,FIDO客户端返回给应用程序。应用程序发给FIDO服务器进行注册。
5.FIDO服务验证签名,保存公钥,并将处理结果返回给应用程序。

我的通俗解释如下,以华为厂商为例:

1.付钱每次输入密码很麻烦,还容易被别人看到,现在我想输入指纹或者面容。app客户端集成FIDO2客户端(SDK),向华为后台服务器发起注册请求,告诉后台你要录入指纹了,以后可能就是要指纹登陆和支付了,所以华为得负责其中的安全。

  注意:hms已内置华为手机,SDK直接按文档声明集成,实现能力在于hms,不会在app里,所以app打包集成hmsSDK不像集成百度地图SDK一样,集成hmsSDKapp包几乎不增加,只是增加你调用的API的代码的体积,达不到MB级别,也许只有几十KB

2.华为后台服务器生成随机值给app客户端,app客户端就发送给FIDO客户端,FIDO客户端连接认证器,向指纹硬件或者面容硬件发起认证,认证通过就可以注册。

3.本地指纹验证通过,生成一对用户公私钥,并将私钥保存在本地。然后用厂商内置的私钥将生成的公钥及随机值进行签名。

4.认证器返回签名给FIDO客户端,FIDO客户端返回给app客户端。app客户端发给华为后台服务器进行注册。

5.华为后台用厂商公钥验证签名,公钥验证签名解密出来的随机值和最初发送的一样则验证成功。然后保存你的公钥,并将处理结果返回给app

这里app客户端指纹或者面容开关就算是开启了。

上面开启指纹或者面容认证算是注册过程,下面说说每一次应用指纹和面容的认证过程

官方晦涩难懂的解释如下:
1.应用程序集成FIDO2 SDK,并向FIDO服务器发起认证请求。
2.FIDO服务器将随机生成挑战值返回给应用程序,应用程序将挑战值发给FIDO客户端,FIDO客户端连接认证器,发起认证。
3.认证器验证通过,用其保存的私钥对挑战值进行签名。 认证器返回签名给FIDO客户端,及应用程序。应用程序发给FIDO服务器进行认证。
4.FIDO服务验证签名,并将处理结果返回给应用程序。

我的通俗解释如下,以华为厂商为例:

1.我现在需要付钱了。APP客户端向华为后台服务器发起认证请求,比如指纹验证。

2.华为后台服务器将生成随机值返回给app客户端,app又将随机值发给FIDO客户端,FIDO客户端连接指纹硬件,发起认证。

3.认证通过,用注册时生成的私钥对这个随机值进行签名。认证器把签名返回给FIDO客户端,FIDO客户端返回给appapp把这个签名发送给华为后台服务器认证。

4.华为后台服务器用我的公钥验证签名,公钥验证签名解密出来的随机值和最初发送的一样则验证成功。然后把结果返回给我的app

5.收到验证成功的消息,我的app就能成功付钱了。

  聪明的小伙伴已经发现了,注册过程和认证过程基本就是第3、5步不同,注册是用的华为厂商内置的私钥签名,这是每个华为手机通用的,后续使用的是你自己私钥签名随机值(这和数字证书原理一样),这就代表你就是你,不是别人要付款,是你要付款。

综上所述:
  把敏感信息需要的验证交给华为,华为认证通过则可以处理接下来的逻辑。

关注、留言,我们一起学习。

----------------------Talk is cheap, show me the code-----------------------

九、从华为HMS快速身份验证能力FIDO2看密码学知识相关推荐

  1. .NET6之MiniAPI(九):基于角色的身份验证和授权

    身份验证是这样一个过程:由用户提供凭据,然后将其与存储在操作系统.数据库.应用或资源中的凭据进行比较. 在授权过程中,如果凭据匹配,则用户身份验证成功,可执行已向其授权的操作. 授权指判断允许用户执行 ...

  2. 835 由于安全层无法对远程计算机进行身份验证_干货 | 看黑客都是这样远程桌面安全设置...

    世界那么大,谢谢你来看我!!关注我你就是个网络.电脑.手机小达人 远程桌面经常用到,同时也是黑客经常扫描的端口. 这就需要更改远程桌面默认的端口: 以windows7 为例 1.远程桌面修改默认端口3 ...

  3. 华为HMS生态解析与移动生态盘点

    导读:在今天的移动应用商业领域,我们常常谈及"生态"这个词语. "商业生态"(Business Ecosystem)的概念最早出现在1993年5月<哈佛商 ...

  4. 官方出品!手把手教你在华为HMS平台开发App

    HMS Core是华为面向开发者提供的开放能力合集,包括账号.支付.Push.地图等核心能力.华为通过HMS Core全面开放"芯-端-云"的能力,帮助开发者实现高效开发.快速增长 ...

  5. 无密码身份验证如何保障用户隐私安全?

    在互联网世界,验证用户身份是一个常见又重要的场景,应用最广泛的方式当属帐号密码验证.随着开发者对身份验证安全性要求不断提升,加之用户更加注重过程中的隐私与便捷,身份验证的方式逐渐多样化,有动态令牌.短 ...

  6. java对接华为推送服务_华为HMS Core 4.0版本即将来袭:包含新推送服务

    据官方消息,在12月27日的HUAWEI Developer Groups(简称HDG)大连活动上,华为消费者云服务HMS运营经理透露HMS Core 4.0版本即将上线,由原来的14项增加至24项核 ...

  7. android core apps华为,华为HMS Core 4.0全面上线 让开发者专注于应用创新发

    日前,华为面向全球发布了HMS Core 4.0.HMS Core是华为终端云服务开放能力的合集,汇聚了华为终端芯-端-云能力,包含一整套开放的HMS Apps和HMS Core.HMS Capabi ...

  8. 激光雷达 eai g6_如何配置TAMeb 6.0 EAI以实现复杂的身份验证要求

    激光雷达 eai g6 本文介绍了如何使用TAMeb 6.0版来满足复杂的身份验证要求. TAMeb 6.0的一项新功能称为EAI,旨在提供身份验证的灵活性. 在本文中,使用TAMeb构建并配置了一个 ...

  9. Java支付宝身份验证接口接入指南(人脸验证)

    Java支付宝身份验证接口接入指南 最近公司项目有人脸身份核验的需求,首先就想到了支付宝的身份验证接口,于是就需要看支付宝的开放api文档,这里就有些坑,然后就本次接入遇到的坑,做个整理.(基于web ...

最新文章

  1. zookeeper在搭建的时候,解决后台启动为standalone模式问题
  2. 记一次validator jar冲突导致的启动异常
  3. 代码动态创建checkbox
  4. 机制 linux_从一道面试题谈linux下fork的运行机制
  5. 电大计算机网考上机操作题,电大计算机上机考试模拟题及答案 (1)
  6. layui 如何去dom_常用元素操作 - layui.element
  7. linux nfs用的用户权限,权限 – Linux特定用户安装NFS
  8. 读书笔记 effective c++ Item 34 区分接口继承和实现继承
  9. 幽冥岛争霸 - 和女儿一起开发的游戏-单机版基本完成
  10. js excel 矫正
  11. webpack遇见的坑:Please install 'webpack-cli' in addition to webpack itself to use the CLI.
  12. Java对接西门子S7
  13. Function的用法
  14. PLSQL7配置免安装Oracle客户端
  15. 【odoo15】odoo中的fa-xxx小图标
  16. ABAP tRFC和qRFC
  17. 洛谷 Cantor 表
  18. http://www.blogjava.net/beansoft/archive/2007/03/09/102812.html
  19. 认识字符集、ASCII、GBK、Unicode、UTF-8
  20. 空间直角坐标系(XYZ)转经纬度(BLH)

热门文章

  1. 【MQSQL】DDLDML
  2. MySQL-DDLDMLDQL
  3. 新版白话空间统计(14):空间关系概念化综述
  4. PS减小照片大小kb且比较清晰
  5. 【相机】(1)——Intent调相机的2种方式以及那些你知道的和不知道的坑
  6. 【业务数据分析】——Excel公式与函数(三)
  7. IDEA建立jsp文件
  8. 中睿天下获国家计算机网络应急技术处理协调中心(CNCERT)致信感谢
  9. word 标题编号变成黑色方块怎么解决
  10. centos上安装TeamViewer