一、背景
传统的静态口令、证书、密码等。要求用户将手持凭证发送到服务器进行验证。
缺点:
1)易用性和安全性是互斥的,不能两者兼顾。简单易记的密码安全性较弱,复杂的静态密码安全性较高但难以记忆和维护;
2)安全性低,易受各种形式的安全攻击;
3)风险成本高。秘密一旦泄露,可能造成的损失最大,而在损失发生之前,通常不知道静态密码已经泄露;
4)使用和维护不方便,尤其是当一个用户有几个甚至几十个静态密码需要使用和维护时。当静态密码忘记后,挂失和重置通常需要花费大量的时间和精力,极大地影响了正常的使用体验。
二、FIDO2解决问题
1、利用生物特征(指纹、虹膜、人脸)等生物识别技术。
2.仅在本地可信执行环境(TEE)中存储用户的生物特征信息
FIDO2分为WebAuthn和CTAP协议。
1、网络认证
该标准由W3C和FIDO联盟制定。目前仅在Win10和Android下,有Chrome、Edge、Firefox三种主流浏览器提供原生支持。可以使用平台认证器(即内置PC)或漫游认证器(如手机、平板、智能手表等。)通过WebAuthn接口调用FIDO服务,完成Web应用的强身份认证。
2.CTAP议定书
CTAP本质上是U2F的延伸。使用独立的手机、USB设备或PC内置的平台认证器来完成Window 10系统上的认证。苹果也有类似的场景。比如没有指纹模块的MacBook,可以使用同一个Apple ID在macOS上的App Store中完成应用的购买和支付确认。
三。银行场景的典型实践(民生银行为例)
第一阶段是从2016年开始,实现手机银行支持FIDO协议、指纹、虹膜登录和支付能力,覆盖民生银行80%的app。
第二阶段,民生银行在意识到终端认证工具单一、不可否认性不足、场景适应能力较弱等问题后,启动了移动数字证书(phone as token)能力建设。
2018年,第三阶段,基于WebAuthn接口,主要针对内部系统的认证能力建设,减少内部员工密码的使用。
of FIDO担保的安全性,自身特有的便利性,和金融系统广泛使用的数字证书方案也可以很好的结合起来。
四。华为发展为例
1. 介绍
简介
FIDO2提供基于WebAuthn标准的FIDO2在线快速认证客户端实现,为应用和浏览器提供Android Java API,支持使用USB、NFC、蓝牙漫游认证器,以及指纹和3D人脸的平台认证器进行安全认证。
您将建立什么
在这个Codelab中,您将使用已经创建的DemoProject调用Huawei FIDO2客户端API。通过演示项目,您可以体验:
调用华为FIDO2客户端API完成注册过程。
调用华为FIDO2客户端API完成认证过程。
您将会学到什么
如何在AppGallery Connect上创建应用程序
如何在应用中集成华为FIDO2客户端?
其他特性
本地生物认证
2. 您需要什么
硬件要求
开发一台运行Windows 10/Windows 7操作系统的电脑(台式机或笔记本电脑)。
华为手机(带USB线)用于真机调试开发。
软件要求
Java JDK(推荐1.7)
Android Studio 3。X
SDK平台19及更高版本
Gradle 4.6及以上
HMS核心(APK)版本5.0.1.300及以上
3、开发流程
4、能力接入准备
要整合华为HMS核心能力,需要完成以下准备工作:
创建AGC应用程序
创建Android Studio项目
生成签名证书
生成签名证书指纹
配置签名证书指纹
添加包名并保存配置文件。
配置Maven仓库地址和AGC gradle插件
在Android Studio中配置签名文件
详情请按照《HUAWEI HMS Core集成准备》中的详细说明。
提示:需要注册为开发者来完成集成准备的操作。
5、语言支持
Android原生开发
1. 指纹认证
2. 3D面容认证
表示"受到某种对待的人":股息|牧师
参考:华为开发者官网