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人脸识别,可应用于设备解锁、应用登录、支付等身份认证场景。


接口说明

BiometricAuthentication类提供了生物认证的相关方法,包括检测认证能力、认证和取消认证等,用户可以通过人脸等生物特征信息进行认证操作。在执行认证前,需要检查设备是否支持该认证能力,具体指认证类型、安全级别和是否本地认证。如果不支持,需要考虑使用其他认证能力。


image.png

image.pngimage.png


开发步骤

开发前请完成以下准备工作:


在应用配置权限文件中,增加ohos.permission.ACCESS_BIOMETRIC的权限声明。

在使用生物特征识别认证能力的代码文件中增加import ohos.biometrics.authentication.BiometricAuthentication。

开发过程:


1. 获取BiometricAuthentication的单例对象,代码示例如下:


BiometricAuthentication  biometricAuthentication = BiometricAuthentication.getInstance(MainAbility.mAbility);

2. 检测设备是否具有生物认证能力:


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);

3. (可选)设置需要关联认证结果的Signature对象或Cipher对象或Mac对象,代码示例如下


// 定义一个Signature对象sign;
biometricAuthentication.setSecureObjectSignature(sign);
// 定义一个Cipher对象cipher;
biometricAuthentication.setSecureObjectCipher(cipher);
// 定义一个Mac对象mac;
biometricAuthentication.setSecureObjectMac(mac);

4. 在新线程里面执行认证操作,避免阻塞其他操作,代码示例如下:


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();

5. 获得认证过程中的提示信息,代码示例如下:


AuthenticationTips tips = biometricAuthentication.getAuthenticationTips();

6. (可选)认证成功后获取已设置的Signature对象或Cipher对象或Mac对象,代码示例如下:

Signature sign = biometricAuthentication.getSecureObjectSignature();
Cipher cipher = biometricAuthentication.getSecureObjectCipher();
Mac mac = biometricAuthentication.getSecureObjectMac();

7. 认证过程中取消认证,代码示例如下:


int ret = biometricAuthentication.cancelAuthenticationAction();


相关文章
|
4天前
|
人工智能 API 开发者
HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析
本书深入解析HarmonyOS应用框架开发,聚焦Ability Kit与Accessibility Kit两大核心组件。Ability Kit通过FA/PA双引擎架构实现跨设备协同,支持分布式能力开发;Accessibility Kit提供无障碍服务构建方案,优化用户体验。内容涵盖设计理念、实践案例、调试优化及未来演进方向,助力开发者打造高效、包容的分布式应用,体现HarmonyOS生态价值。
61 27
|
4天前
|
人工智能 API 语音技术
HarmonyOS Next~鸿蒙AI功能开发:Core Speech Kit与Core Vision Kit的技术解析与实践
本文深入解析鸿蒙操作系统(HarmonyOS)中的Core Speech Kit与Core Vision Kit,探讨其在AI功能开发中的核心能力与实践方法。Core Speech Kit聚焦语音交互,提供语音识别、合成等功能,支持多场景应用;Core Vision Kit专注视觉处理,涵盖人脸检测、OCR等技术。文章还分析了两者的协同应用及生态发展趋势,展望未来AI技术与鸿蒙系统结合带来的智能交互新阶段。
54 31
|
1天前
|
API
鸿蒙开发:单一手势实现长按事件
虽然说我们可以通过onTouch来实现一个长按事件,但是如果想要实现连续,多指那么就比较麻烦,远远没有LongPressGesture实现起来简单,所以在实际的开发中,大家还是以LongPressGesture为主。
鸿蒙开发:单一手势实现长按事件
|
2天前
鸿蒙开发:单一手势实现多次点击事件
TapGesture点击手势,在实际的开发中,更多的是运用于双击或者需要多次点击的场景,如果仅仅是单次点击,建议大家直接使用onClick即可。
鸿蒙开发:单一手势实现多次点击事件
|
3天前
|
存储
鸿蒙开发:openCustomDialog关闭指定Dialog
以上呢就是两种隐藏指定的Dialog方式,比较的简单,具体的场景,常见于,页面多个弹出Dialog,但是需要隐藏指定的Dialog场景,当然了,也适用于常见的普通场景。
29 14
|
1天前
|
IDE 程序员 Go
鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键
本文介绍了 HarmonyOS开发中常用的 DevEco Studio快捷键,帮助开发者提升效率。内容涵盖编辑、查找替换、编译运行、调试及其他功能的快捷键操作,适用于 Win 和 Mac 系统。例如,`Ctrl + E`(快速切换文件)、`Shift + F10`(运行程序)和 `F8`(单步调试)等常用组合。由黑马程序员整理,欢迎补充或修正!
59 5
鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键
|
3天前
|
存储
鸿蒙开发:父组件如何调用子组件中的方法?
也许大家可能会有疑问,子组件更新UI,直接由装饰器触发不就行了,希望大家能够明白,以上呢只是简单的案例,在实际的开发中,子组件方法中可能很多的逻辑,比如网络请求,比如数据存储等等,并不是简单的UI更新。
|
7天前
|
开发者
鸿蒙开发:了解分割线
在实际的开发中,如果自带的分割线能够满足我们的需求,以自身的分割线属性为主,如果不满足,我们可以使用组件进行绘制。
63 16
鸿蒙开发:了解分割线
|
8天前
|
JSON 数据安全/隐私保护 数据格式
鸿蒙开发,远场通信服务rcp拦截器问题
关于rcp的拦截器问题,最重要的就是会话复用的时候,如果Request对象中有需要的参数,就直接用Request中的,而不是使用session中的。
鸿蒙开发,远场通信服务rcp拦截器问题
|
10天前
|
开发框架 JavaScript 前端开发
鸿蒙开发:什么是ArkTs?
本小结主要简单介绍了ArkTs语言的相关知识,都是一些概念性质的内容,大家作为一个了解即可
107 61