0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

秒懂鸿蒙OS 生物特征识别

王程 2024-01-29 16:26 次阅读

鸿蒙OS 生物特征识别概述

提供生物特征识别认证能力,即基于人体固有的生理特征和行为特征来识别用户身份,供第三方应用调用,可应用于设备解锁、支付、应用登录等身份认证场景。

当前生物特征识别能力提供 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 中。
  • 对于面部特征相似的人(比如双胞胎、兄弟姐妹等)、面部特征不断发育的儿童,人脸特征匹配率有所不同。如果对此担忧,可考虑其他认证方式。

鸿蒙OS 生物特征识别开发指导

场景介绍

当前生物特征识别支持 2D 人脸识别、3D 人脸识别,可应用于设备解锁、应用登录、支付等身份认证场景。

接口说明

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。

开发步骤

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

1.在应用配置权限文件中,增加 ohos.permission.ACCESS_BIOMETRIC 的权限声明。
2.在使用生物特征识别认证能力的代码文件中增加 import ohos.biometrics.authentication.BiometricAuthentication。

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

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

2.检测设备是否具有生物认证能力:
2D 人脸识别建议使用 SECURE_LEVEL_S2,3D 人脸识别建议使用 SECURE_LEVEL_S3。代码示例如下:

 int retChkAuthAvb = mBiometricAuthentication.checkAuthenticationAvailability(
 BiometricAuthentication.AuthType.AUTH_TYPE_BIOMETRIC_FACE_ONLY, BiometricAuthentication.SecureLevel.SECURE_LEVEL_S2, true);

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

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

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

 new Thread(new Runnable() {
       @Override
       public void run() {
           int retExcAuth;
           retExcAuth = mBiometricAuthentication.execAuthenticationAction(        BiometricAuthentication.AuthType.AUTH_TYPE_BIOMETRIC_FACE_ONLY,        BiometricAuthentication.SecureLevel.SECURE_LEVEL_S2, true, false, null);
       }
   }).start();

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

   AuthenticationTips  mTips = mBiometricAuthentication.getAuthenticationTips();

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

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

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

  int  ret = mBiometricAuthentication.cancelAuthenticationAction();
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人脸识别
    +关注

    关注

    76

    文章

    3955

    浏览量

    80558
  • 生物特征识别

    关注

    1

    文章

    17

    浏览量

    9953
  • 鸿蒙
    +关注

    关注

    55

    文章

    1634

    浏览量

    42120
  • HarmonyOS
    +关注

    关注

    79

    文章

    1843

    浏览量

    29266
收藏 人收藏

    评论

    相关推荐

    最酷的生物识别技术

      生物特征的多样性决定了这种生物识别的准确性,指纹、面部、虹膜等都是我们较为熟知的识别方式,然而,一部今年上映的《碟中谍5》,却让我们见识
    发表于 11-12 15:51

    HarmonyOS应用开发-生物特征识别安全

    `提供生物特征识别认证能力,即基于人体固有的生理特征和行为特征识别用户身份,供第三方应用调用,
    发表于 09-23 14:34

    生物识别技术可靠吗?

    其实,生物识别技术还可以称之为生物特征识别技术。这种技术是通过利用生物本身具备唯一性的特征来进行
    发表于 11-02 07:13

    什么是不同类型的生物识别传感器?

    生物特征识别”这个术语来源于“生物”和“度量”,前者意味着生命,后者意味着测量。生物特征
    发表于 03-25 10:44

    生物特征识别的关键技术与安全性思考

    简要的介绍生物特征识别系统的工作模式,阐述多模态生物特征识别系统的模型和各种数据融合技术,分析了
    发表于 08-31 09:43 23次下载

    基于自适应并行结构的多模态生物特征识别

    传统多模态生物特征识别方法当出现生物特征缺失时,识别性能会明显下降。针对此问题,提出一种融合人脸
    发表于 11-09 16:12 34次下载
    基于自适应并行结构的多模态<b class='flag-5'>生物</b><b class='flag-5'>特征</b><b class='flag-5'>识别</b>

    生物特征识别技术研究及应用韩玉峰

    生物特征识别技术研究及应用_韩玉峰
    发表于 03-14 08:00 0次下载

    多模态生物特征识别系统框架

    针对多模态生物特征识别系统并行融合模式中使用方便性和使用效率方面的问题,在现有序列化多模态生物特征识别
    发表于 01-02 18:47 0次下载
    多模态<b class='flag-5'>生物</b><b class='flag-5'>特征</b><b class='flag-5'>识别</b>系统框架

    基于生物特征识别的虹膜识别技术介绍及其应用

    生物特征识别是目前最为方便与安全的识别技术。它不需要随身携带任何证件,记住任何密码,是一种方便、快捷、可靠的识别方法。
    的头像 发表于 01-08 16:51 7880次阅读

    浅谈生物特征识别技术的历史、特点及意义

    生物识别有的时候也叫生物特征识别,有的时候也叫生物认证,这几个词都是一个含义。是指通过获取和分析
    的头像 发表于 01-25 14:37 1.6w次阅读

    浅谈基于物理特征生物识别技术

    生物识别有的时候也叫生物特征识别,有的时候也叫生物认证,这几个词都是一个含义。是指通过获取和分析
    的头像 发表于 02-05 08:51 4848次阅读

    生物特征识别技术面面观

    生物识别有的时候也叫生物特征识别,有的时候也叫生物认证,这几个词都是一个含义。是指通过获取和分析
    的头像 发表于 04-25 14:22 4157次阅读

    华为正式发布鸿蒙鸿蒙OS随时可用!

    华为在东莞发布了大家期待已久的华为鸿蒙OS系统。据余承东介绍,鸿蒙OS可以用在手表、手机、电视、PC等终端。鸿蒙
    的头像 发表于 08-09 17:48 3505次阅读

    鸿蒙os怎么升级

    6月2日,华为正式发布了鸿蒙armonyOS 2系统,那么鸿蒙os如何升级?现将鸿蒙os升级方式告知如下。
    的头像 发表于 06-08 16:26 2487次阅读

    机器视觉与生物特征识别的关系

    机器视觉与生物特征识别的关系 机器视觉和生物特征识别是目前科技领域非常热门的方向。机器视觉是指利
    的头像 发表于 08-09 17:43 496次阅读