codecamp

鸿蒙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 权限应用权限列表
鸿蒙OS 生物特征识别开发指导
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }