IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> HarmonyOS之生物特征识别的功能和使用 -> 正文阅读

[人工智能]HarmonyOS之生物特征识别的功能和使用

一、简介

① 基本概念
  • 生物特征识别(又叫生物认证):通过计算机与光学、声学、生物传感器和生物统计学原理等高科技手段密切结合,来进行个人身份的鉴定。
  • 人脸识别:基于人的脸部特征信息进行身份识别的一种生物特征识别技术,用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别,通常也叫做人像识别、面部识别、人脸认证。
  • 生物特征识别提供生物特征识别认证能力,可应用于设备解锁、支付、应用登录等身份认证场景。
  • 当前生物特征识别能力提供 2D 人脸识别、3D 人脸识别两种人脸识别能力,设备具备哪种识别能力,取决于设备的硬件能力和技术实现。
  • 3D 人脸识别技术识别率、防伪能力都优于 2D 人脸识别技术,但具有 3D 人脸能力(比如 3D 结构光、3D TOF 等)的设备才可以使用 3D 人脸识别技术。
② 运作机制
  • 人脸识别会在摄像头和 TEE(Trusted Execution Environment)之间建立安全通道,人脸图像信息通过安全通道传递到 TEE 中,由于人脸图像信息从 REE(Rich Execution Environment)侧无法获取,从而避免了恶意软件从REE侧进行攻击。
  • 对人脸图像采集、特征提取、活体检测、特征比对等处理完全在 TEE 中,基于 TrustZone 进行安全隔离,外部的人脸框架只负责人脸的认证发起和处理认证结果等数据,不涉及人脸数据本身。
  • 人脸特征数据通过 TEE 的安全存储区进行存储,采用高强度的密码算法对人脸特征数据进行加密和完整性保护,外部无法获取到加密人脸特征数据的密钥,保证用户的人脸特征数据不会泄露。本能力采集和存储的人脸特征数据不会在用户未授权的情况下被传出 TEE,这意味着,用户未授权时,无论是系统应用还是三方应用都无法获得人脸特征数据,也无法将人脸特征数据传送或备份到任何外部存储介质。
③ 限制
  • 当前版本提供的生物特征识别能力只包含人脸识别,且只支持本地认证,不提供认证界面。
  • 要求设备上具备摄像器件,且人脸图像像素大于100*100。
  • 要求设备上具有TEE安全环境,人脸特征信息高强度加密保存在 TEE 中。
  • 对于面部特征相似的人、面部特征不断发育的儿童,人脸特征匹配率有所不同。如果对此担忧,可考虑其他认证方式。
④ 应用场景
  • 当前生物特征识别支持 2D 人脸识别、3D 人脸识别,可应用于设备解锁、应用登录、支付等身份认证场景。

二、生物特征识别 API

  • BiometricAuthentication 类提供了生物认证的相关方法,包括检测认证能力、认证和取消认证等,用户可以通过人脸等生物特征信息进行认证操作。在执行认证前,需要检查设备是否支持该认证能力,具体指认证类型、安全级别和是否本地认证,如果不支持,需要考虑使用其他认证能力。
  • 生物特征识别开放能力列表:
接口名功能描述
getInstance(Ability ability)获取BiometricAuthentication的单例对象
checkAuthenticationAvailability(AuthType type, SecureLevel level, boolean isLocalAuth)检测设备是否具有生物认证能力
execAuthenticationAction(AuthType type, SecureLevel level, boolean isLocalAuth,boolean isAppAuthDialog, SystemAuthDialogInfo information)调用者使用该方法进行生物认证
getAuthenticationTips()获取生物认证过程中的提示信息
cancelAuthenticationAction()取消生物认证操作
setSecureObjectSignature(Signature sign)设置需要关联认证结果的Signature对象,在进行认证操作后,如果认证成功则Signature对象被授权可以使用。设置前Signature对象需要正确初始化,且配置为认证成功才能使用
getSecureObjectSignature()在认证成功后,可通过该方法获取已授权的Signature对象。如果未设置过Signature对象,则返回null
setSecureObjectCipher(Cipher cipher)设置需要关联认证结果的Cipher对象,在进行认证操作后,如果认证成功则Cipher对象被授权可以使用。设置前Cipher对象需要正确初始化,且配置为认证成功才能使用
getSecureObjectCipher()在认证成功后,可通过该方法获取已授权的Cipher对象。如果未设置过Cipher对象,则返回null
setSecureObjectMac(Mac mac)设置需要关联认证结果的Mac对象,在进行认证操作后,如果认证成功则Mac对象被授权可以使用。设置前Mac对象需要正确初始化,且配置为认证成功才能使用
getSecureObjectMac()在认证成功后,可通过该方法获取已授权的Mac对象。如果未设置过Mac对象,则返回null

三、生物特征识别的使用路程

① 准备工作
  • 在应用配置权限文件中,增加 ohos.permission.ACCESS_BIOMETRIC 的权限声明。
  • 在使用生物特征识别认证能力的代码文件中增加 import ohos.biometrics.authentication.BiometricAuthentication。
② 开发流程
  • 获取 BiometricAuthentication 的单例对象,代码示例如下:
	BiometricAuthentication  biometricAuthentication = BiometricAuthentication.getInstance(MainAbility.mAbility);
  • 检测设备是否具有生物认证能力:2D 人脸识别建议使用 SECURE_LEVEL_S2,3D 人脸识别建议使用 SECURE_LEVEL_S3。代码示例如下:
	int retChkAuthAvb = biometricAuthentication.checkAuthenticationAvailability(
	    BiometricAuthentication.AuthType.AUTH_TYPE_BIOMETRIC_FACE_ONLY, 
	    BiometricAuthentication.SecureLevel.SECURE_LEVEL_S2, true);
  • (可选)设置需要关联认证结果的 Signature 对象或 Cipher 对象或 Mac 对象,代码示例如下:
	// 定义一个Signature对象sign;
	biometricAuthentication.setSecureObjectSignature(sign);
	
	// 定义一个Cipher对象cipher;
	biometricAuthentication.setSecureObjectCipher(cipher);
	
	// 定义一个Mac对象mac;
	biometricAuthentication.setSecureObjectMac(mac);
  • 在新线程里面执行认证操作,避免阻塞其他操作,代码示例如下:
	new Thread(new Runnable() {
	    @Override
	    public void run() {
	        int retExcAuthretExcAuth = biometricAuthentication.execAuthenticationAction( 
	            BiometricAuthentication.AuthType.AUTH_TYPE_BIOMETRIC_FACE_ONLY, 
	            BiometricAuthentication.SecureLevel.SECURE_LEVEL_S2, true, false, null);
	    }
	}).start();
  • 获得认证过程中的提示信息,代码示例如下:
	AuthenticationTips tips = biometricAuthentication.getAuthenticationTips();
  • (可选)认证成功后获取已设置的 Signature 对象或 Cipher 对象或 Mac 对象,代码示例如下:
	Signature sign = biometricAuthentication.getSecureObjectSignature();
	
	Cipher cipher = biometricAuthentication.getSecureObjectCipher();
	
	Mac mac = biometricAuthentication.getSecureObjectMac();
  • 认证过程中取消认证,代码示例如下:
	int ret = biometricAuthentication.cancelAuthenticationAction();
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-09 17:32:00  更:2021-07-09 17:32:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:49:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码