鴻蒙OS 生物特征識別概述
提供生物特征識別認(rèn)證能力,即基于人體固有的生理特征和行為特征來識別用戶身份,供第三方應(yīng)用調(diào)用,可應(yīng)用于設(shè)備解鎖、支付、應(yīng)用登錄等身份認(rèn)證場景。
當(dāng)前生物特征識別能力提供 2D 人臉識別、3D 人臉識別兩種人臉識別能力,設(shè)備具備哪種識別能力,取決于設(shè)備的硬件能力和技術(shù)實現(xiàn)。3D 人臉識別技術(shù)識別率、防偽能力都優(yōu)于 2D 人臉識別技術(shù),但具有 3D 人臉能力(比如 3D 結(jié)構(gòu)光、3D TOF 等)的設(shè)備才可以使用 3D 人臉識別技術(shù)。
基本概念
生物特征識別(又叫生物認(rèn)證):通過計算機與光學(xué)、聲學(xué)、生物傳感器和生物統(tǒng)計學(xué)原理等高科技手段密切結(jié)合,利用人體固有的生理特性(如指紋、面容、虹膜等)和行為特征(如筆跡、聲音、步態(tài)等)來進(jìn)行個人身份的鑒定。
人臉識別:基于人的臉部特征信息進(jìn)行身份識別的一種生物特征識別技術(shù),用攝像機或攝像頭采集含有人臉的圖像或視頻流,并自動在圖像中檢測和跟蹤人臉,進(jìn)而對檢測到的人臉進(jìn)行臉部識別,通常也叫做人像識別、面部識別、人臉認(rèn)證。
運作機制
人臉識別會在攝像頭和 TEE(Trusted Execution Environment)之間建立安全通道,人臉圖像信息通過安全通道傳遞到 TEE 中,由于人臉圖像信息從 REE(Rich Execution Environment)側(cè)無法獲取,從而避免了惡意軟件從 REE 側(cè)進(jìn)行攻擊。對人臉圖像采集、特征提取、活體檢測、特征比對等處理完全在 TEE 中,基于 TrustZone 進(jìn)行安全隔離,外部的人臉框架只負(fù)責(zé)人臉的認(rèn)證發(fā)起和處理認(rèn)證結(jié)果等數(shù)據(jù),不涉及人臉數(shù)據(jù)本身。
人臉特征數(shù)據(jù)通過 TEE 的安全存儲區(qū)進(jìn)行存儲,采用高強度的密碼算法對人臉特征數(shù)據(jù)進(jìn)行加密和完整性保護(hù),外部無法獲取到加密人臉特征數(shù)據(jù)的密鑰,保證用戶的人臉特征數(shù)據(jù)不會泄露。本能力采集和存儲的人臉特征數(shù)據(jù)不會在用戶未授權(quán)的情況下被傳出TEE,這意味著,用戶未授權(quán)時,無論是系統(tǒng)應(yīng)用還是三方應(yīng)用都無法獲得人臉特征數(shù)據(jù),也無法將人臉特征數(shù)據(jù)傳送或備份到任何外部存儲介質(zhì)。
約束與限制
- 當(dāng)前版本提供的生物特征識別能力只包含人臉識別,且只支持本地認(rèn)證,不提供認(rèn)證界面。
- 要求設(shè)備上具備攝像器件,且人臉圖像像素大于100*100。
- 要求設(shè)備上具有 TEE 安全環(huán)境,人臉特征信息高強度加密保存在 TEE 中。
- 對于面部特征相似的人(比如雙胞胎、兄弟姐妹等)、面部特征不斷發(fā)育的兒童,人臉特征匹配率有所不同。如果對此擔(dān)憂,可考慮其他認(rèn)證方式。
鴻蒙OS 生物特征識別開發(fā)指導(dǎo)
場景介紹
當(dāng)前生物特征識別支持 2D 人臉識別、3D 人臉識別,可應(yīng)用于設(shè)備解鎖、應(yīng)用登錄、支付等身份認(rèn)證場景。
接口說明
BiometricAuthentication 類提供了生物認(rèn)證的相關(guān)方法,包括檢測認(rèn)證能力、認(rèn)證和取消認(rèn)證等,用戶可以通過人臉等生物特征信息進(jìn)行認(rèn)證操作。在執(zhí)行認(rèn)證前,需要檢查設(shè)備是否支持該認(rèn)證能力,具體指認(rèn)證類型、安全級別和是否本地認(rèn)證。如果不支持,需要考慮使用其他認(rèn)證能力。
接口名 | 功能描述 |
---|---|
getInstance(Ability ability) | 獲取 BiometricAuthentication的單例對象。 |
checkAuthenticationAvailability(AuthType type,SecureLevel level, boolean isLocalAuth) | 檢測設(shè)備是否具有生物認(rèn)證能力。 |
execAuthenticationAction(AuthType type, SecureLevel level, boolean isLocalAuth,boolean isAppAuthDialog, SystemAuthDialogInfo information) | 調(diào)用者使用該方法進(jìn)行生物認(rèn)證??梢允褂米远x的認(rèn)證界面,也可以使用系統(tǒng)提供的認(rèn)證界面。當(dāng)使用系統(tǒng)認(rèn)證界面時,調(diào)用者可以自定義提示語。該方法直到認(rèn)證結(jié)束才返回認(rèn)證結(jié)果。 |
getAuthenticationTips() | 獲取生物認(rèn)證過程中的提示信息。 |
cancelAuthenticationAction() | 取消生物認(rèn)證操作。 |
setSecureObjectSignature(Signature sign) | 設(shè)置需要關(guān)聯(lián)認(rèn)證結(jié)果的Signature 對象,在進(jìn)行認(rèn)證操作后,如果認(rèn)證成功則Signature 對象被授權(quán)可以使用。設(shè)置前 Signature 對象需要正確初始化,且配置為認(rèn)證成功才能使用。 |
getSecureObjectSignature() | 在認(rèn)證成功后,可通過該方法獲取已授權(quán)的 Signature 對象。如果未設(shè)置過 Signature 對象,則返回 null。 |
setSecureObjectCipher(Cipher cipher) | 設(shè)置需要關(guān)聯(lián)認(rèn)證結(jié)果的 Cipher 對象,在進(jìn)行認(rèn)證操作后,如果認(rèn)證成功則 Cipher 對象被授權(quán)可以使用。設(shè)置前 Cipher 對象需要正確初始化,且配置為認(rèn)證成功才能使用。 |
getSecureObjectCipher() | 在認(rèn)證成功后,可通過該方法獲取已授權(quán)的 Cipher 對象。如果未設(shè)置過 Cipher 對象,則返回 null。 |
setSecureObjectMac(Mac mac) | 設(shè)置需要關(guān)聯(lián)認(rèn)證結(jié)果的 Mac 對象,在進(jìn)行認(rèn)證操作后,如果認(rèn)證成功則 Mac 對象被授權(quán)可以使用。設(shè)置前 Mac 對象需要正確初始化,且配置為認(rèn)證成功才能使用。 |
getSecureObjectMac() | 在認(rèn)證成功后,可通過該方法獲取已授權(quán)的 Mac 對象。如果未設(shè)置過 Mac 對象,則返回 null。 |
開發(fā)步驟
開發(fā)前請完成以下準(zhǔn)備工作:
1.在應(yīng)用配置權(quán)限文件中,增加 ohos.permission.ACCESS_BIOMETRIC 的權(quán)限聲明。
2.在使用生物特征識別認(rèn)證能力的代碼文件中增加 import ohos.biometrics.authentication.BiometricAuthentication。
開發(fā)過程:
1.獲取 BiometricAuthentication 的單例對象,代碼示例如下:
BiometricAuthentication mBiometricAuthentication = BiometricAuthentication.getInstance(MainAbility.mAbility);
2.檢測設(shè)備是否具有生物認(rèn)證能力:
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.(可選)設(shè)置需要關(guān)聯(lián)認(rèn)證結(jié)果的 Signature 對象或 Cipher 對象或 Mac 對象,代碼示例如下:
// 定義一個Signature對象sign;
mBiometricAuthentication.setSecureObjectSignature(sign);
// 定義一個Cipher對象cipher;
mBiometricAuthentication.setSecureObjectCipher(cipher);
// 定義一個Mac對象mac;
mBiometricAuthentication.setSecureObjectMac(mac);
4.在新線程里面執(zhí)行認(rèn)證操作,避免阻塞其他操作,代碼示例如下:
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.獲得認(rèn)證過程中的提示信息,代碼示例如下:
AuthenticationTips mTips = mBiometricAuthentication.getAuthenticationTips();
6.(可選)認(rèn)證成功后獲取已設(shè)置的 Signature 對象或 Cipher 對象或 Mac 對象,代碼示例如下:
Signature sign = mBiometricAuthentication.getSecureObjectSignature();
Cipher cipher = mBiometricAuthentication.getSecureObjectCipher();
Mac mac = mBiometricAuthentication.getSecureObjectMac();
7.認(rèn)證過程中取消認(rèn)證,代碼示例如下:
int ret = mBiometricAuthentication.cancelAuthenticationAction();
-
人臉識別
+關(guān)注
關(guān)注
76文章
4021瀏覽量
82384 -
生物特征識別
+關(guān)注
關(guān)注
1文章
17瀏覽量
9998 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2397瀏覽量
43098 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
1983瀏覽量
30633
發(fā)布評論請先 登錄
相關(guān)推薦
最酷的生物識別技術(shù)
HarmonyOS應(yīng)用開發(fā)-生物特征識別安全
生物識別技術(shù)可靠嗎?
基于自適應(yīng)并行結(jié)構(gòu)的多模態(tài)生物特征識別
![基于自適應(yīng)并行結(jié)構(gòu)的多模態(tài)<b class='flag-5'>生物</b><b class='flag-5'>特征</b><b class='flag-5'>識別</b>](https://file.elecfans.com/web2/M00/49/6B/pYYBAGKhtE6AI7j5AAAUds7kfDY186.jpg)
自適應(yīng)并行結(jié)構(gòu)的多模態(tài)生物特征識別
![自適應(yīng)并行結(jié)構(gòu)的多模態(tài)<b class='flag-5'>生物</b><b class='flag-5'>特征</b><b class='flag-5'>識別</b>](https://file.elecfans.com/web2/M00/4A/08/pYYBAGKhvIyAL2riAAAy14aHGHI188.png)
基于生物特征識別的虹膜識別技術(shù)介紹及其應(yīng)用
生物特征識別,身體就是密碼鑰匙
幾大生物特征識別技術(shù)對比淺析,你了解多少呢?
DERMALOG憑借其自動生物識別系統(tǒng),推出多生物特征識別方案
生物識別技術(shù)觸手可及,多生物特征識別開始互相融合
![<b class='flag-5'>生物識別</b>技術(shù)觸手可及,多<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)
評論