鴻蒙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) | 調用者使用該方法進行生物認證??梢允褂米远x的認證界面,也可以使用系統提供的認證界面。當使用系統認證界面時,調用者可以自定義提示語。該方法直到認證結束才返回認證結果。 |
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文章
4020瀏覽量
82321 -
生物特征識別
+關注
關注
1文章
17瀏覽量
9993 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43058 -
HarmonyOS
+關注
關注
79文章
1982瀏覽量
30580
發布評論請先 登錄
相關推薦
基于生物特征識別的虹膜識別技術介紹及其應用
幾大生物特征識別技術對比淺析,你了解多少呢?
DERMALOG憑借其自動生物識別系統,推出多生物特征識別方案
生物識別技術觸手可及,多生物特征識別開始互相融合
![<b class='flag-5'>生物識別</b>技術觸手可及,多<b class='flag-5'>生物</b><b class='flag-5'>特征</b><b class='flag-5'>識別</b>開始互相融合](https://file.elecfans.com/web1/M00/68/FE/o4YBAFvQN6SAVtdIAAFmy6MdNsE548.png)
評論