一文读懂华为FIDO2指纹/3D 面容登录技术
前言
随着人们对于个人信息安全越来越重视,用户对APP安全要求也越来越高,尤其是金融类APP,很多都已支持指纹&3D登录功能。相较于传统登录方法,指纹&3D面容登录可省去输入账户、密码、验证码等环节,在最大限度地方便用户的同时,也保证了用户信息的私密。那么,如何让自己的APP增加指纹/面容登录功能呢?
只要接入HMS线上快速验证服务(FIDO),即可帮助你的APP实现指纹&3D面容登录功能。
HMS Core FIDO2 是个啥?
Fast Identity Online是一套身份鉴别框架协议。FIDO联盟于2012年7月成立,至2019年5月已达251家,囊括业界领先厂商,技术规范包括UAF和U2F两大系列,并推出FIDO 2.0项目。FIDO联盟成员网址 https://fidoalliance.org/members/
FIDO成员举例
FIDO (Fast Identity Online)规范旨在提供通用、安全、便捷的无密码和多因子线上用户身份验证技术方案。支持应用于用户登录、转账支付等各种需要验证用户身份的场景。FIDO 2(读音:“faìduo兔”或“faìdōu 兔”)规范定义了一个强大的身份验证解决方案。
FIDO2典型的应用场景有如下三种:
- 指纹/3D面容登录;
- 指纹/3D面容转账/支付;
- 双因子认证;
本期我们将介绍第一个应用场景:指纹/3D面容登录。在应用内登录帐号时,不需要用户输密码,只需要验证指纹/3D面容即完成登录,避免密码、撞库等安全风险。
场景演示
下方的Gif图展示FIDO2如何完成指纹/3D面容登录的过程。
HMS Core FIDO2 怎么做到的?
FIDO规范定义了一套在线身份认证的技术架构。其中,除了应用和应用服务器以外,还包括3个组件:FIDO认证器、FIDO客户端和FIDO服务器。
FIDO认证器:用来进行本地认证的机制或设备,分为平台认证器和漫游认证器。在面向最终用户时,认证器通常被称为安全密钥。
平台认证器:集成在使用FIDO的设备上的认证器,比如手机或笔记本电脑上基于指纹识别硬件的认证器。漫游认证器:游离于使用FIDO的设备,通过蓝牙、NFC或USB连接的认证器,比如形状类似于U盾或动态令牌的认证器。
FIDO客户端:集成在平台中(如Windows、MacOS和HMS Core)中,提供SDK给应用集成;或集成在浏览器中(如Chrome、Firefox和华为浏览器),提供JavaScript API给服务集成。FIDO客户端是应用调用FIDO服务器和FIDO认证器完成认证的桥梁。
FIDO服务器:在应用服务器需要发起FIDO认证时,生成符合FIDO规范的认证请求,发送给应用服务器;并在FIDO认证器完成本地认证后,接收应用服务器返回的FIDO认证响应,并进行较验。
FIDO规范定义了两个主要流程:注册和认证。从用户登录这个实际应用场景来说,注册流程对应开通指纹/3D面容登录的过程,认证流程对应使用指纹/3D面容完成登录的过程。
在注册流程中,FIDO认证器产生一对用户公私钥对作为认证凭据,私钥存储在FIDO认证器中,公钥发送给FIDO服务器存储。同时,FIDO服务器建立用户和认证凭据的关联关系,在认证流程中使用。
在认证流程中,FIDO认证器使用用户私钥对挑战值进行签名,FIDO服务器使用用户公钥验证签名,验证通过即认为是合法用户。
如何集成华为HMS Core FIDO2?
开发前准备
FIDO2的集成准备,超级简单,除了接入HMS SDK必备的agc、maven和混淆等配置之外,只需加上FIDO2的编译依赖即可,坐标如下:
implementation ‘com.huawei.hms:fido-fido2:5.0.0.301’
开发(表格性的,错误码、返回值、编译依赖参考ML)
FIDO2分成两个操作,注册和认证,处理流程类似。关键过程代码如下:
- 初始化一个Fido2Client实例
Fido2Client fido2Client = Fido2.getFido2Client(activity); - 调用Fido2Client.getRegistrationIntent()发起注册。或调用Fido2Client.getAuthenticationIntent()发起认证。从FIDO服务器获取挑战值及相关策略,并组装请求消息。(这里仅提供FIDO客户端的API,涉及与FIDO服务器的交互,请参考相关规范,并联系FIDO服务器供应商获取相关接口说明。)然后调用Fido2Client.getRegistrationIntent()发起注册。或调用Fido2Client.getAuthenticationIntent()发起认证。
在回调中调用Fido2Intent.launchFido2Activity(),启动注册(requestCode为Fido2Client.REGISTRATION_REQUEST)或认证(requestCode为Fido2Client.AUTHENTICATION_REQUEST)。该回调在主线程中执行。
fido2Client.getRegistrationIntent(registrationRequest, registrationOptions, new Fido2IntentCallback() {
@Overridepublic void onSuccess(Fido2Intent fido2Intent) {fido2Intent.launchFido2Activity(XXXActivity.this, Fido2Client.REGISTRATION_REQUEST);}@Overridepublic void onFailure(int errorCode, CharSequence errString) {Log.e("errorCode: "+ errorCode + ", errorMsg: " + errString);}
});
- 在回调Activity.onActivityResult()中,调用getFido2RegistrationResponse()或Fido2Client.getFido2AuthenticationResponse()获取注册或认证的结果。
Fido2RegistrationResponse fido2RegistrationResponse = fido2Client.getFido2RegistrationResponse(data)
- 把注册或认证的结果发送给FIDO服务器进行验证。
(这里仅提供FIDO客户端的API,涉及与FIDO服务器的交互,请参考相关规范,并联系FIDO服务器供应商获取相关接口说明,代码略)
更多信息
华为开发者官网上也有相应的演示demo,示例代码和开发文档。
Github演示Demo和示例代码:
https://github.com/HMS-Core/hms-FIDO-demo-java
华为FIDO2慕课视频:
https://developer.huawei.com/consumer/cn/training/detail/101583008688294169
开发指南:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/introduction-0000001051069988-V5
API参考:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References-V5/fido2overview-0000001050176660-V5
后期预告
基于线上快速身份验证服务,下期聊聊FIDO2定制开发能力,认证器选择策略、UI界面定制,后面还会有实战经验分享,大家可以持续关注~
原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?fid=18&tid=0201315130192110308
原作者:别吃草莓
一文读懂华为FIDO2指纹/3D 面容登录技术相关推荐
- java中fido_一文读懂华为FIDO2指纹/3D 面容登录技术
前言 随着人们对于个人信息安全越来越重视,用户对APP安全要求也越来越高,尤其是金融类APP,很多都已支持指纹&3D登录功能.相较于传统登录方法,指纹&3D面容登录可省去输入账户.密码 ...
- 一文读懂华为的组织绩效和个人绩效管理
一文读懂华为的组织绩效和个人绩效管理 本文作者 | 谢宁,<华为战略管理法:DSTE实战体系>.<智慧研发管理>作者 添加图片注释,不超过 140 字(可选) 本文主要包含两大 ...
- 一文读懂华为Mate20系列三大看点
关注网易智能,聚焦AI大事件,读懂下一个大时代! 北京时间10月16日21点,华为在英国伦敦召开新品发布会,余承东依然用他那不太流利的中式英语赢得了阵阵掌声. 此次华为正式推出Mate20系列四款手机 ...
- 开放鸿蒙,未来可循:一文读懂华为开发者大会2021主题演讲
2021年10月22日,华为开发者大会2021(Together)在东莞如期揭幕. 在长达将近三个小时的主题演讲中,华为不但发布了HarmonyOS 3开发者预览版.HMS Core 6等一系列全新开 ...
- Android3d结构光,一文看懂OPPO Find X 3D结构光技术有多牛
法国时间6月19日,OPPO在巴黎卢浮宫正式举办未来旗舰Find X发布会.此次亮相的Find X新机,既有充满艺术感的3D玻璃机身设计,又有3D结构光.曲面全景屏.双轨潜望结构等多项黑科技.众多黑科 ...
- 一文读懂华为LTC流程和变革精髓
所有企业都希望通过重新打通流程,甚至是进行流程化组织建设来推倒部门墙.大家的认识都很统一,但最终大部分企业都雷声大雨点小:一是难有组织保障,跨部门的流程建设需要强大的组织资源和执行力:二是思想不足思路 ...
- 一文读懂 IoT 物联网场景 5G 专网技术
5G专用网络(private 5G network)是一种局域网(LAN),它将使用5G技术创建具有统一连接性.优化服务和特定区域内安全通信方式的专用网络 .此前,机构曾预测2020年全球5G专网市场 ...
- 一文读懂知识图谱的商业应用进程及技术背景
原文地址 https://www.leiphone.com/news/201709/QlkeCEGmeXP3h9VZ.html 知识图谱(Knowledge Graph/Vault,以下简称KG)本质 ...
- 一文读懂云计算:发展历程、概念技术与现状分析
掐指一算,云计算已经有了十年的历史,发展到今天几乎可以算是近十年最伟大的技术进步之一. 「云计算」这个术语,也早已从一个新鲜词汇,成为了妇孺皆知的流行语. 任何事物的诞生和发展一定有其前提条件和土壤, ...
最新文章
- jquery学习开发资料
- Vim替换小技巧(兼浅谈Vim哲学)
- no.8 C控制语句:循环 01
- 根据姓名得到名字首字母
- IDEA的UML图介绍(一)
- 批处理命令 / rd 和 del
- image打开rgb16 qt_QT中显示图像数据
- MySQL入门 (六) : 字元集与资料库
- 关闭窗口(window.close)
- MSSQL-Server On Docker
- Java HashSet和ArrayList的查找Contains()时间复杂度
- 分布式存储系统学习笔记(一)—什么是分布式系统(7)—跨机房部署的三种方案
- SpringApplication.run 做了哪些事?
- 利用新浪api获取ip归属地
- 客户服务器与p2p文件分发,P2P大文件分发技术 | 点量软件
- Newifi Y1S刷潘多拉(Pandora)固件
- 360网络测速器电脑版
- Cherno OpenGL 教程
- 2014年最新珍藏版XP系统GHO镜像文件下载,史上驱动最齐全XP终结版(定时更新)
- 最新资料!工银亚洲开户见证业务受理网点(广东地区,除了深圳)
热门文章
- python语言的主网站网址-python官方网站
- 1.4_4 Axure RP 9 for mac 高保真原型图 - 案例3 【跳转】微信听一听
- Linux查询某个端口被谁占用,如何查看某个端口被谁占用(Linux如何查询哪些端口被占用)...
- 如何用python画圣诞树(附圣诞树代码)
- [Python]常用国内pip镜像源合集
- 翻回头看自己走过的路
- 另一个伊甸 VC灵晶效果汇总 23-07-10
- cooki与session区别
- mooc哈尔滨c语言作业答案,C语言程序设计下mooc答案
- 【180930】坦克大战小游戏源码