日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HarmonyOS之生物特征识别的功能和使用

發布時間:2024/5/21 编程问答 96 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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() {@Overridepublic 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();

總結

以上是生活随笔為你收集整理的HarmonyOS之生物特征识别的功能和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。