




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ICS33.050
CCSM30
團(tuán)體標(biāo)準(zhǔn)
T/TAF001—2023
代替T/TAF001—2016
基于TEE的指紋識(shí)別技術(shù)要求
TechnicalrequirementsforfingerprintrecognitionbasedonTEE
2023-02-08發(fā)布2023-02-08實(shí)施
電信終端產(chǎn)業(yè)協(xié)會(huì)發(fā)布
T/TAF001—2023
基于TEE的指紋識(shí)別技術(shù)要求
1范圍
本文件規(guī)范了移動(dòng)智能終端基于TEE指紋識(shí)別的技術(shù)要求。
本文件規(guī)范適用于具有TEE運(yùn)行環(huán)境的移動(dòng)智能終端的指紋識(shí)別研發(fā)、設(shè)計(jì)、測(cè)試等活動(dòng)。
2規(guī)范性引用文件
下列文件中的內(nèi)容通過(guò)文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用
文件,僅該日期對(duì)應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)
適用于本文件。
GB/T41388-2022信息安全技術(shù)可信執(zhí)行環(huán)境基本安全規(guī)范
3術(shù)語(yǔ)和定義
下列術(shù)語(yǔ)和定義適用于本文件。
3.1
可信執(zhí)行環(huán)境trustedexecutionenvironment
移動(dòng)智能終端上基于硬件級(jí)隔離及安全啟動(dòng)機(jī)制,為確保安全敏感應(yīng)用相關(guān)數(shù)據(jù)和代碼的機(jī)密
性、完整性、真實(shí)性和不可否認(rèn)性目標(biāo)構(gòu)建的一種軟件運(yùn)行環(huán)境。
注:硬件級(jí)隔離是指基于硬件安全擴(kuò)展機(jī)制,通過(guò)對(duì)計(jì)算資源的固定劃分或動(dòng)態(tài)共享,保證隔離資源不被富執(zhí)行
環(huán)訪問(wèn)的一種安全機(jī)制。
[來(lái)源:GB/T41388-2022,3.3,有改寫(xiě)]
3.2
富執(zhí)行環(huán)境richexecutionenvironment
移動(dòng)智能終端上為應(yīng)用程序提供基礎(chǔ)功能和計(jì)算資源的一種軟件軟件環(huán)境。
注:富執(zhí)行環(huán)境是相對(duì)可信執(zhí)行環(huán)境獨(dú)立存在的運(yùn)行環(huán)境。
[來(lái)源:GB/T41388-2022,3.4,有改寫(xiě)]
3.3
錯(cuò)誤接受率falseacceptancerate
指紋樣本特征與存儲(chǔ)的指紋模板的比對(duì)過(guò)程中,發(fā)生錯(cuò)誤接受結(jié)果的比對(duì)次數(shù)與總比對(duì)次數(shù)的
比值。
3.4
錯(cuò)誤拒絕率falserejectionrate
指紋樣本特征與存儲(chǔ)的指紋模板的比對(duì)過(guò)程中,發(fā)生錯(cuò)誤拒絕結(jié)果的比對(duì)次數(shù)與總比對(duì)次數(shù)的
比值。
4縮略語(yǔ)
下列縮略語(yǔ)適用于本文件。
API:應(yīng)用程序接口(ApplicationProgramInterface)
3
T/TAF001—2023
FAR:錯(cuò)誤接受率(FalseAcceptanceRate)
FRR:錯(cuò)誤拒絕率(FalseRejectionRate)
REE:富執(zhí)行環(huán)境(RichExecutionEnvironment)
SE:安全元件(SecureElement)
TA:可信應(yīng)用(TrustedApplication)
TEE:可信應(yīng)用執(zhí)行壞境TrustedExecutionEnvironment
5指紋識(shí)別流程
5.1指紋注冊(cè)流程
指紋注冊(cè)消息流程見(jiàn)圖1。
圖1指紋注冊(cè)消息流程
指紋注冊(cè)消息流程具體如下:
a)業(yè)務(wù)客戶端向業(yè)務(wù)服務(wù)器發(fā)起注冊(cè)請(qǐng)求,業(yè)務(wù)服務(wù)器調(diào)用校驗(yàn)服務(wù)器;
b)校驗(yàn)服務(wù)器生成注冊(cè)請(qǐng)求(包含用戶名、挑戰(zhàn)數(shù)),返回業(yè)務(wù)服務(wù)器,然后返回業(yè)務(wù)客戶
端,業(yè)務(wù)客戶端將注冊(cè)請(qǐng)求發(fā)送到校驗(yàn)服務(wù);
c)校驗(yàn)服務(wù)調(diào)用可信執(zhí)行環(huán)境中的校驗(yàn)安全應(yīng)用,發(fā)起指紋校驗(yàn)。用戶完成校驗(yàn)后,校驗(yàn)安
全應(yīng)用校驗(yàn)請(qǐng)求消息,生成用戶公私鑰對(duì),在本地保存開(kāi)通記錄(用戶私鑰+用戶名+指紋
索引),生成注冊(cè)響應(yīng)(包含用戶公鑰),將注冊(cè)響應(yīng)消息返回校驗(yàn)服務(wù);
d)校驗(yàn)服務(wù)將注冊(cè)響應(yīng)消息返回業(yè)務(wù)客戶端,然后發(fā)送到業(yè)務(wù)服務(wù)器,最終發(fā)送到校驗(yàn)服務(wù)
器;
e)校驗(yàn)服務(wù)器校驗(yàn)響應(yīng)消息,保存用戶開(kāi)通記錄(用戶公鑰+用戶名+指紋索引+設(shè)備標(biāo)識(shí))。
5.2指紋校驗(yàn)流程
指紋校驗(yàn)消息流程見(jiàn)圖2。
4
T/TAF001—2023
圖2指紋校驗(yàn)消息流程
指紋校驗(yàn)消息流程具體如下:
a)業(yè)務(wù)客戶端進(jìn)行業(yè)務(wù)前置處理,向業(yè)務(wù)服務(wù)器發(fā)起校驗(yàn)請(qǐng)求,業(yè)務(wù)服務(wù)器調(diào)用校驗(yàn)服務(wù)器;
b)校驗(yàn)服務(wù)器生成校驗(yàn)請(qǐng)求(包含用戶名、挑戰(zhàn)數(shù)、交易信息),返回業(yè)務(wù)服務(wù)器,然后返
回業(yè)務(wù)客戶端,業(yè)務(wù)客戶端將校驗(yàn)請(qǐng)求發(fā)送到校驗(yàn)服務(wù);
c)校驗(yàn)服務(wù)發(fā)起指紋校驗(yàn),用戶完成校驗(yàn)后,調(diào)用可信執(zhí)行環(huán)境中的校驗(yàn)安全應(yīng)用,校驗(yàn)安
全應(yīng)用校驗(yàn)請(qǐng)求消息,獲取校驗(yàn)結(jié)果,比對(duì)指紋索引,最后生成校驗(yàn)響應(yīng)(使用注冊(cè)時(shí)生
成的用戶私鑰簽名),將校驗(yàn)響應(yīng)消息返回校驗(yàn)服務(wù);
d)校驗(yàn)服務(wù)將校驗(yàn)響應(yīng)消息返回業(yè)務(wù)客戶端,然后發(fā)送到業(yè)務(wù)服務(wù)器,最終發(fā)送到校驗(yàn)服務(wù)
器;
e)校驗(yàn)服務(wù)器校驗(yàn)響應(yīng)消息,使用用戶開(kāi)通時(shí)生成的公鑰進(jìn)行簽名校驗(yàn),返回結(jié)果到業(yè)務(wù)服
務(wù)器,業(yè)務(wù)服務(wù)器進(jìn)行業(yè)務(wù)推進(jìn)。
5.3指紋去注冊(cè)流程
指紋去注冊(cè)消息流程見(jiàn)圖3。
5
T/TAF001—2023
圖3指紋去注冊(cè)消息流程
指紋去注冊(cè)消息流程具體如下:
a)業(yè)務(wù)客戶端向業(yè)務(wù)服務(wù)器發(fā)起去注冊(cè)請(qǐng)求,業(yè)務(wù)服務(wù)器調(diào)用校驗(yàn)服務(wù)器;
b)校驗(yàn)服務(wù)器生成去注冊(cè)請(qǐng)求,返回業(yè)務(wù)服務(wù)器,然后返回業(yè)務(wù)客戶端,業(yè)務(wù)客戶端將去注
冊(cè)請(qǐng)求發(fā)送到校驗(yàn)服務(wù);
c)校驗(yàn)服務(wù)調(diào)用可信執(zhí)行環(huán)境中的校驗(yàn)安全應(yīng)用,校驗(yàn)安全應(yīng)用校驗(yàn)請(qǐng)求消息,清除用戶開(kāi)
通記錄。
6指紋信息的采集、管理、加密、存儲(chǔ)和驗(yàn)證要求
6.1指紋信息的采集與管理要求
要求如下:
a)指紋信息的采集和管理工作應(yīng)由設(shè)備廠商提供的指紋管理應(yīng)用完成;
b)指紋管理應(yīng)用應(yīng)運(yùn)行在安全環(huán)境(如TEE)中,指紋傳感器驅(qū)動(dòng)應(yīng)運(yùn)行在安全環(huán)境(如TEE)
中;
c)指紋數(shù)據(jù)在采集成功后,每一個(gè)指紋模版應(yīng)和一個(gè)唯一ID關(guān)聯(lián);
d)指紋傳感器和TEE之間建立安全通道,指紋信息通過(guò)安全通道傳遞到TEE中。
6.2指紋信息加密及存儲(chǔ)要求
要求如下:
a)由指紋原始圖片提取的指紋模板應(yīng)存儲(chǔ)在安全環(huán)境(如TEE、SE)中,并加密存儲(chǔ);
b)安全環(huán)境應(yīng)提供高強(qiáng)度的非對(duì)稱加密算法(如SM2、RSA2048)及對(duì)稱加密算法(如SM4、
AES256CBC)。
6.3指紋比對(duì)要求
要求如下:
a)指紋比對(duì)過(guò)程應(yīng)在安全環(huán)境(如TEE、SE)中完成;
6
T/TAF001—2023
b)應(yīng)提供REE及TEE的指紋校驗(yàn)接口,指紋驗(yàn)證完成后返回校驗(yàn)結(jié)果。如校驗(yàn)通過(guò),還應(yīng)返
回匹配指紋模版對(duì)應(yīng)的唯一ID。
7運(yùn)行環(huán)境要求
7.1總則
指紋關(guān)鍵模塊應(yīng)運(yùn)行在安全環(huán)境(如TEE、SE)中。
7.2性能要求
性能要求如下:
a)RSA2048密鑰對(duì)的生成時(shí)間應(yīng)在6秒以內(nèi);
b)應(yīng)滿足在FAR≤1/50000的情況下FRR≤3%。
8REE指紋接口要求
8.1REE指紋接口功能要求
REE指紋接口應(yīng)支持的功能包括:
a)支持指紋校驗(yàn)查詢接口;
b)啟動(dòng)指紋校驗(yàn);
c)檢查是否存在已經(jīng)注冊(cè)的指紋模版;
d)跳轉(zhuǎn)到系統(tǒng)指紋管理器界面;
e)校驗(yàn)成功之后,返回指紋模板對(duì)應(yīng)的唯一ID;
f)通過(guò)唯一I獲取指紋模版的名稱;
g)啟動(dòng)指紋校驗(yàn)時(shí),可以指定一個(gè)或多個(gè)唯一ID對(duì)應(yīng)的指紋模版來(lái)進(jìn)行校驗(yàn);
h)校驗(yàn)過(guò)程中,可以返回指紋校驗(yàn)過(guò)程的狀態(tài)和結(jié)果;
i)通過(guò)聲明權(quán)限來(lái)保護(hù)指紋的接口。
8.2是否支持指紋校驗(yàn)查詢接口
描述如下:
a)URL:content://rmation;
b)在運(yùn)行Android的設(shè)備上,如果支持指紋識(shí)別器并且具備可信執(zhí)行環(huán)境,設(shè)備可以通過(guò)
ContentProvider的形式來(lái)標(biāo)示該支持的情況,可以在Android層使用API進(jìn)行查詢;
c)model用于標(biāo)示一個(gè)系列的設(shè)備,該設(shè)備使用相同的TEE環(huán)境,并且內(nèi)置相同的私鑰以保
證該環(huán)境和REE中Android環(huán)境通信的安全;
d)fingerprint用于標(biāo)示該設(shè)備是否支持指紋且具有完整的TEE和指紋的安全解決方案。
參數(shù)見(jiàn)表1。
表1是否支持指紋校驗(yàn)查詢接口參數(shù)
列必填說(shuō)明備注
model是型號(hào)格式:OME廠商-型號(hào)
fingerprint是是否支持指紋1:支持,0:不支持
8.3REE環(huán)境指紋相關(guān)操作接口
8.3.1AbstractFingerprint類(lèi)
描述
描述如下:
a)AbstractFingerprint類(lèi)定義了8.1描述的需要實(shí)現(xiàn)的指紋功能;
b)該類(lèi)為abstractclass,需有具體的實(shí)現(xiàn);
7
T/TAF001—2023
c)該類(lèi)應(yīng)被放到系統(tǒng)中,com.ifaa.android.fingerprint域中;
d)應(yīng)通過(guò)動(dòng)態(tài)的方式被調(diào)用,并應(yīng)在相同的package下面實(shí)現(xiàn)Fingerprint類(lèi);
e)至為該類(lèi)應(yīng)實(shí)現(xiàn)的方法。
open方法
AbstractFingerprintFingerprint.open()throwsUnsupportedException{
}
該方法應(yīng)由設(shè)備廠商使用自己的指紋服務(wù)類(lèi)實(shí)現(xiàn),且Fingerprint類(lèi)應(yīng)繼承于
AbstractFingerprint類(lèi),由該方法返回指紋服務(wù)的實(shí)例,如果不支持指紋或有異常情況應(yīng)拋出異
常。指紋實(shí)例繼承了AbstractFingerprint類(lèi),因此也應(yīng)實(shí)現(xiàn)AbstractFingerprint類(lèi)
所描述的方法。
release方法
/**
*release實(shí)例
*
*@return
*/
publicabstractintrelease();
a)描述
指紋服務(wù)的實(shí)例提供release()接口用于釋放實(shí)例化對(duì)象。當(dāng)使用實(shí)例對(duì)象進(jìn)行識(shí)別完畢
后,或因其他情形不再使用實(shí)例化對(duì)象時(shí),應(yīng)調(diào)用該接口釋放對(duì)象。且應(yīng)和open成對(duì)
使用。
b)返回值
0:調(diào)用成功;
-1:調(diào)用失敗。
getFpIDs方法
/**
*獲取指紋模板ID集合
*
*@return
*/
publicabstractint[]getFpIDs();
a)描述
8
T/TAF001—2023
通過(guò)指紋服務(wù)對(duì)象獲取以及錄入在設(shè)備中的指紋唯一ID集合。該ID在身份認(rèn)證時(shí)傳入
TEE,用于查看其是否存在或者用于身份的驗(yàn)證。
b)返回值
null:未開(kāi)通指紋;
0:用戶未錄入指紋;
int[]:指紋管理器中每個(gè)指紋的唯一ID值的集合。
getFpName()方法
/**
*取id對(duì)應(yīng)的指紋模板的名稱
*
*@paramid指紋索引
*@return指紋模板名稱
*/
publicabstractStringgetFpName(intid);
a)描述
通過(guò)傳入指紋的ID來(lái)獲取指紋模板在指紋管理器中的可視化名稱,例如“指紋1”等。
該信息可以用于可視化的顯示,在交互場(chǎng)景使用。
b)參數(shù)
intid:用于查詢索引名字的唯一ID。
c)返回值
String:索引對(duì)于id的指紋模板名稱。
startFpManager(Contextcontext)方法
/**
*取id對(duì)應(yīng)的指紋模板的名稱
*
*@paramcontext上下文
*@return調(diào)用結(jié)果
*/
publicabstractintstartFpManager(Contextcontext);
a)描述
跳轉(zhuǎn)至設(shè)備廠商的指紋管理器。該接口一般用于未錄入指紋的情況,方便用戶錄入指
紋,以提升用戶體驗(yàn)。指紋管理器通常有密碼控制,因此該接口也不應(yīng)繞過(guò)密碼直接允許用戶
添加或者刪除指紋。
b)參數(shù)
Contextcontext:Android上下文。
c)返回值
9
T/TAF001—2023
0:調(diào)用成功;
-1:調(diào)用失敗。
startFpIdentify()方法
/**
*開(kāi)始指紋校驗(yàn)
*
*@paramidentifyListener回調(diào)listener
*@paramtimeout超時(shí)時(shí)間,<=0:無(wú)超時(shí);>0:超時(shí)時(shí)間(毫秒)
*@paramids期望的指紋索引集
*@paramuserData用戶數(shù)據(jù)
*@returnIFingerprintAPI.CMD_RESULT_OK:成功;IFingerprintAPI.CMD_RESULT_FAIL:失
敗
*/
publicabstractintstartFpIdentify(IdentifyListeneridentifyListener,inttimeout,int[]ids,Bundle
userData);
a)描述
該接口是指紋校驗(yàn)服務(wù)在Android層的重要接口。通過(guò)指紋服務(wù)對(duì)象調(diào)用指紋芯片對(duì)
已經(jīng)錄入的指紋進(jìn)行識(shí)別。并且動(dòng)態(tài)的返回手指觸碰指紋芯片的情況以及校驗(yàn)的結(jié)果;
該接口應(yīng)支持2個(gè)特性:可以在任意的位置調(diào)用該接口,包括主線程或者其他的線程。
該接口調(diào)用之后指紋識(shí)別器應(yīng)一直對(duì)放上去的手指進(jìn)行校驗(yàn),直至方法中設(shè)定的超時(shí)
時(shí)間為止。
b)參數(shù)
IdentifyListeneridentifyListener:指紋回調(diào)接口類(lèi)。見(jiàn)8.3.2;
inttimeout:此次執(zhí)行識(shí)別的整個(gè)過(guò)程的超時(shí)時(shí)間,如果超過(guò)傳入的時(shí)間,應(yīng)主動(dòng)調(diào)
用cancel接口;
int[]ids:指紋模板列表集合,指定需要進(jìn)行驗(yàn)證的指紋模板集合。該集合是指紋管
理器中所有模板的子集,為null時(shí)表示認(rèn)證所有手機(jī)上的指紋;否則表示認(rèn)證限制
在指定的指紋ID列表當(dāng)中進(jìn)行,只有進(jìn)行校驗(yàn)的指紋在指定的ID中,才認(rèn)為通過(guò);
BundleuserData:用于傳入額外的擴(kuò)展信息。
c)返回值
RESULT_SUCCESS=100:調(diào)用成功;
RESULT_FAILURE=101:調(diào)用失敗。
cancel()方法
10
T/TAF001—2023
/**
*canceltheoperation
*
*@return
*/
publicabstractintcancel();
a)描述
取消正在進(jìn)行的認(rèn)證操作,調(diào)用該接口可觸發(fā)IdentifyListener的onResult返回
RESULT_USER_CANCEL。通常和startFpIdentify成對(duì)使用。
b)返回值
0:調(diào)用成功;
-1:調(diào)用失敗。
8.3.2IdentifyListener類(lèi)
描述
描述如下:
a)IdentifyListener類(lèi)定義調(diào)用指紋識(shí)別的時(shí)候回調(diào)的方法以及值;
b)該類(lèi)是一個(gè)接口類(lèi),需要被實(shí)現(xiàn);
c)和為該類(lèi)應(yīng)實(shí)現(xiàn)的方法。
onResult方法
/**
*onRult
*
*@paramresult結(jié)果,見(jiàn)"8.3.3"表格RESULT_開(kāi)頭
*@paramid索引
*@paramuserData用戶數(shù)據(jù)
*/
voidonResult(intresult,intid,B
a)描述
IdentifyListener的回調(diào)方法。用于接收調(diào)用認(rèn)證方法的返回結(jié)果。
b)參數(shù)
intresult:回調(diào)接口的返回值,見(jiàn)8.3.3RESULT_開(kāi)頭;
intid:如指紋識(shí)別成功并且匹配,此id則為校驗(yàn)匹配的指紋模板ID;
BundleuserData:識(shí)別成功后可以附帶的額外信息。
onStatus()方法
11
T/TAF001—2023
/**
*onStatus
*
*@paramstatus狀態(tài),見(jiàn)"8.3.3"表格STATUS_開(kāi)頭
*@paramuserData用戶數(shù)據(jù)
*/
voidonStatus(intstatus,BundleuserData);
a)描述
IdentifyListener的回調(diào)方法。用于接收手指和指紋識(shí)別器的交互狀態(tài)。
b)參數(shù)
intstatus:標(biāo)示用戶和指紋傳感器的交互的狀態(tài),見(jiàn)8.3.3表格STATUS_開(kāi)頭的定
義;
BundleuserData:狀態(tài)返回后可以附帶的額外信息。
8.3.3指紋識(shí)別狀態(tài)及結(jié)果定義
指紋識(shí)別結(jié)果定義見(jiàn)表2,指紋識(shí)別狀態(tài)定義見(jiàn)表3。
表2指紋識(shí)別結(jié)果定義
結(jié)果取值說(shuō)明
RESULT_SUCCESS100成功
RESULT_FAILURE101失敗
RESULT_CANCELED102用戶取消
RESULT_NO_MATCH103無(wú)匹配指紋
RESULT_NOT_SUPPORT111機(jī)器不支持指紋
RESULT_NO_ENROLLED114本機(jī)未錄入任何指紋
RESULT_TIMEOUT113超時(shí)
RESULT_SENSOR_ERROR116傳感器錯(cuò)誤
RESULT_NOT_ENABLED115指紋功能未開(kāi)啟
表3指紋識(shí)別狀態(tài)定義
狀態(tài)取值說(shuō)明
STATUS_WAITING_INPUT1等待輸入指紋
STATUS_INPUTTING2正在輸入指紋
STATUS_INPUT_COMPLETED3輸入指紋完成
9TEE指紋接口要求
9.1TEE指紋接口功能要求
12
T/TAF001—2023
TEE指紋接口需要支持的功能如下:
a)支持40字節(jié)硬件唯一ID,此ID用來(lái)唯一標(biāo)識(shí)一臺(tái)設(shè)備;
b)能夠正確獲得上次成功驗(yàn)證指紋的模版ID,同時(shí)能夠保證此ID在3s外是失效的;
c)能夠正確獲得已經(jīng)在設(shè)備中成功錄入指紋的模版ID列表及個(gè)數(shù);
d)能夠使用檢驗(yàn)器私鑰對(duì)原始數(shù)據(jù)正確簽名;
e)能夠提供正確的檢驗(yàn)器版本,和檢驗(yàn)器的私鑰匹配,不同版本的檢驗(yàn)器對(duì)應(yīng)不同的私鑰;
f)能夠提供正確生成大于2048位非對(duì)稱密鑰的生成方法;
g)能夠提供私鑰簽名接口;
h)能夠提供公鑰驗(yàn)證簽名接口;
i)能夠提供key/value存取及刪除接口。
9.2指紋接口
9.2.1TEE_EXT_GetDeviceUniqueId
TEE_ResultTEE_EXT_GetDeviceUniqueId(
[inbuf/outbuf]uint32_t*output,
[inbuf/outbuf]uint32*outlen)
a)描述
獲取本設(shè)備唯一ID。設(shè)備廠商需要提供硬件級(jí)的、永久不變的,40字節(jié)的唯一ID。用來(lái)標(biāo)
識(shí)一臺(tái)設(shè)備。提供給業(yè)務(wù)方在開(kāi)通指紋的時(shí)候使用。
b)參數(shù)
uint32_t*output輸入:設(shè)備指紋分配的buf,由外部分配和釋放,長(zhǎng)度應(yīng)大于40字節(jié);
輸出:設(shè)備唯一ID;
uint32*outlen輸入:為設(shè)備指紋分配buf的長(zhǎng)度;
輸出:設(shè)備指紋的長(zhǎng)度。
c)返回值
TEE_SUCCESS:成功;
TEE_FAIL:失敗。
d)能夠確保REE與TEE通道正確、穩(wěn)定通信。
9.2.2TEE_FpGetLastIdentifyResult
intTEE_FpGetLastIdentifyResult(
[inbuf/outbuf]int*id)
a)描述
獲取上一次成功驗(yàn)證指紋模版對(duì)應(yīng)唯一ID。在TEE中根據(jù)獲取的指紋模版ID和注冊(cè)時(shí)綁定
的指紋模版ID比對(duì),判斷是否驗(yàn)證通過(guò)。觸發(fā)在REE,在實(shí)現(xiàn)時(shí)需要確保從REE真正觸發(fā)
到TEE成功獲取的時(shí)間間隔不超過(guò)3s。超過(guò)3s則返回失敗,id置0。
b)參數(shù)
Int*id:上一次成功調(diào)用指紋驗(yàn)證接口對(duì)應(yīng)的ID。內(nèi)存需要由調(diào)用方分配和管理,傳入整型
指針,成功后輸出指紋模版ID。
c)返回值
TEE_SUCCESS:成功;
TEE_FP_GET_ID_ERROR:獲取指紋ID失敗。
9.2.3TEE_FpGetIds
13
T/TAF001—2023
intTEE_FpGetIds(
[inbuf/outbuf]int*ids,
[inbuf/outbuf]int*idsCount)
a)描述
獲取本設(shè)備上已注冊(cè)的指紋模版?zhèn)€數(shù)及指紋模版對(duì)應(yīng)的唯一ID列表。業(yè)務(wù)方需根據(jù)此ID
列表查詢指定指紋模版ID是否在已注冊(cè)的指紋模版列表中。
b)參數(shù)
int*ids:輸入整型數(shù)組,由調(diào)用方維護(hù)內(nèi)存,返回已經(jīng)錄入的指紋唯一ID列表;
int*idsCount:輸入整型指針,由調(diào)用方維護(hù)內(nèi)存,輸出為已經(jīng)錄入指紋唯一ID的
個(gè)數(shù)。如ids的buf過(guò)小,則直接返回需要buf的大小。
c)返回值
TEE_SUCCESS:成功;
TEE_FP_GET_IDS_FAIL:獲取指紋ID列表失敗。
9.2.4TEE_FpGetAuthorticatorVersion
intTEE_FpGetAuthorticatorVersion(
[inbuf/outbuf]uint32*ver)
a)描述
獲取指紋檢驗(yàn)器的版本,此方法用與TEE_FpAuthenticatorSign的私鑰配對(duì)。不同的
版本匹配不同的TEE_FpAuthenticatorSign私鑰。
b)參數(shù)
uint32*ver:檢驗(yàn)器的版本。
c)返回值
TEE_SUCCESS:成功;
TEE_FP_FAIL:獲取指紋ID列表失敗。
9.2.5TEE_FpAuthenticatorSign
intTEE_Fp_AuthenticatorSign(
[inbuf]uint32_t*src,[inbuf]uint32src_len,
[outbuf]uint32_t*des,[outbuf]uint32*deslen)
a)描述
使用指紋檢驗(yàn)器的私鑰對(duì)傳入的數(shù)據(jù)簽名。指紋檢驗(yàn)器的私鑰由設(shè)備廠商維護(hù),不能
離開(kāi)TEE(SE)。在初期測(cè)試階段,設(shè)備廠商需要提供測(cè)試公鑰給業(yè)務(wù)方,完成簽名驗(yàn)
證。線上環(huán)境需要更新線上的密鑰。簽名算法使用SM2_SM3或RSA_SHA256。
b)參數(shù)
uint32_t*src:需要簽名的原數(shù)據(jù);
uint32src_len:需求簽名的原數(shù)據(jù)的長(zhǎng)度;
uint32_t*des:簽名后的數(shù)據(jù);
14
T/TAF001—2023
uint32*des_len:簽名后的數(shù)據(jù)長(zhǎng)度。
c)返回值
TEE_SUCCESS:成功;
TEE_FP_SIGN_FAIL:指紋檢驗(yàn)器簽名失敗。
9.3基礎(chǔ)接口
9.3.1TEE_Generatekey
TEE_ResultTEE_GenerateKey(
TEE_ObjectHandleobject,uint32_t
keySize,TEE_Attribute*params,uint32_t
paramCount)
a)描述
生成隨機(jī)密鑰或密鑰對(duì)。
b)參數(shù)
TEE_ObjectHandleobject:密鑰操作對(duì)象;
uint32_tkeySize:所生成的密鑰的大??;
TEE_Attribute*params:生成密鑰所需要的參數(shù);
uint32_tparamCount:生成密鑰所需要的參數(shù)個(gè)數(shù)。
c)返回值
TEE_SUCCESS:成功;
TEE_ERROR_BAD_PARAMETERS:輸入的參數(shù)錯(cuò)誤。
9.3.2TEE_FpRsaPrivateSign
TEE_ResultTEE_FpRsaPrivateSign(
[in]TEE_OperationHandleoperation,[inbuf]unsignedchar*src,
[inbuf]intsrc_len,[inbuf/outbuf]unsignedchar*des,
[inbuf/outbuf]int*des_len,[inbuf]sign_typetype)
a)描述
使用私鑰對(duì)傳入的數(shù)據(jù)根據(jù)指定的type簽名,type支持SM3和sha256,優(yōu)先選擇
sha256。
b)參數(shù)
TEE_OperationHandleoperation:密鑰操作對(duì)象;
unsignedchar*src:需要簽名的原始數(shù)據(jù);
intsrc_len:需要簽名的原始數(shù)據(jù)的長(zhǎng)度;
unsigneddes:簽名后的數(shù)據(jù);
int*des_len:簽名后數(shù)據(jù)的長(zhǎng)度。
c)返回值
TEE_SUCCESS:成功;
TEE_RSA_PRI_SIGN_FAIL:私鑰簽名失敗。
9.3.3TEE_FP_Rsa_Pubverify
15
T/TAF001—2023
TEE_ResultTEE_FP_Rsa_PubVerify(
[in]TEE_OperationHandleoperation,[inbuf]unsignedchar*src,
[inbuf]intsrc_len,[inbuf/outbuf]unsignedchar*des,
[inbuf/outbuf]int*des_len,[inbuf]sign_typetype)
a)描述
使用公鑰對(duì)指定的數(shù)據(jù)按照指定的type驗(yàn)證簽名。type和私鑰簽名支持的類(lèi)型一
致;
sign_typetype:簽名類(lèi)型。
b)參數(shù)
TEE_OperationHandleoperation:密鑰操作對(duì)象;
unsignedchar*src:私鑰生成簽名的原數(shù)據(jù);
intsrc_len:私鑰生成簽名的原始數(shù)據(jù)的長(zhǎng)度;
unsignedchar*des:私鑰簽名后的數(shù)據(jù);
int*des_len:私鑰簽名后數(shù)據(jù)的長(zhǎng)度;
sign_typetype:簽名類(lèi)型。
c)返回值
TEE_SUCCESS:成功;
TEE_RSA_PUB_VERIFY_FAIL:公鑰驗(yàn)簽失敗。
9.3.4TEE_GenerrateRandom
voidTEE_GenerateRandom(
[inbuf/outbuf]void*randomBuffer,
[inbuf]size_trandomBufferLen)
a)描述
生成指定長(zhǎng)度的真隨機(jī)數(shù)。
b)參數(shù)
void*randomBuffer:真隨機(jī)數(shù)buf,輸入為外部分配需要長(zhǎng)度的buf,由外部管理;
輸出為指定長(zhǎng)度的隨機(jī)數(shù);
size_trandomBufferLen:生成的真隨機(jī)數(shù)長(zhǎng)度。
c)返回值
TEE_SUCCESS:成功;
TEE_FP_RANDOM_FAIL:生成隨機(jī)數(shù)失敗。
9.3.5TEE_GetSystemTime
voidTEE_GetSystemTime(
[outbuf]TEE_Time*time
)
a)描述
16
T/TAF001—2023
獲取時(shí)間。
b)參數(shù)
time:參見(jiàn)GP標(biāo)準(zhǔn)time。
c)返回值
無(wú)。
9.3.6TEE_Save
intTEE_save(
[inbuf]uint32_t*key,[inbuf]uint32key_len,[inbuf]uint32_t*value,
[inbuf]uint32value_len)
a)描述
存儲(chǔ)數(shù)據(jù)到TEE。一些需要存儲(chǔ)的敏感數(shù)據(jù)需要調(diào)用此接口。
b)參數(shù)
uint32_t*key:存儲(chǔ)數(shù)據(jù)的關(guān)鍵字;
uint32key_len:存儲(chǔ)數(shù)據(jù)關(guān)鍵字的長(zhǎng)度;
uint32_t*value:需要存儲(chǔ)數(shù)據(jù);
uint32value_len:要存儲(chǔ)的數(shù)據(jù)的長(zhǎng)度。
c)返回值
TEE_SUCCESS:成功。
9.3.7TEE_Load
intTEE_load(
[inbuf]uint32_t*key,[inbuf]uint32key_len,[outbuf]
uint32_t*value,[outbuf]uint32value_len)
a)描述
從TEE讀取數(shù)據(jù)。
b)參數(shù)
uint32_t*key:需要讀取數(shù)據(jù)的關(guān)鍵字;
uint32key_len:需要讀取數(shù)據(jù)的關(guān)鍵字的長(zhǎng)度;
uint32_t*Value:需要讀取數(shù)據(jù)的buf;
uint32value_len:需要讀取數(shù)據(jù)的長(zhǎng)度。
c)返回值
TEE_SUCCESS:成功;
TEE_FAIL:失??;
FAIL:失敗。
9.3.8TEE_Remove
intTEE_Remove(
[inbuf]uint32_t*key,[inbuf]uint32
key_len)
17
T/TAF001—2023
a)描述
從TEE根據(jù)關(guān)鍵字刪除數(shù)據(jù)。
b)參數(shù)
uint32_t*key:需要讀取數(shù)據(jù)的關(guān)鍵字;
uint32key_len:需要讀取數(shù)據(jù)的關(guān)鍵字的長(zhǎng)度。
c)返回值
TEE_SUCCESS:成功;
TEE_FAIL:失敗。
9.3.9TEE_Malloc
void*TEE_Malloc([inbuf]size_tsize,[inbuf]
uint32_thint)
a)描述
分配指定大小的內(nèi)存。
b)參數(shù)
size_tsize:需要分配的內(nèi)存大?。?/p>
uint32_thint:初始化值。
c)返回值
如果分配成功,則返回指針指向特定大小的空間buffer;
如果分配失敗,則返回NULL。
9.3.10TEE_Free
voidTEE_Free(void*buffer)
a)描述
釋放指定buffer的內(nèi)存空間。如果傳入的參數(shù)是NULL,則不需要做任何事情,如果
傳入的內(nèi)存空間不是TEE_MALLOC分配的,則會(huì)出現(xiàn)參數(shù)錯(cuò)誤。
b)參數(shù)
void*buffer:需要釋放內(nèi)存空間的buffer的指針。
c)返回值
無(wú)。
9.4數(shù)據(jù)結(jié)構(gòu)
typedefenumrsa_sign_type{
RSA_SIGN_TYPE_SM3=0,//RSASIGNWITHSM3
RSA_SIGN_TYPE_SHA256//RSASIGNWITHSHA256
}sign_type;
描述:RSA簽名類(lèi)型,目前支持SM3和sha256。
9.5狀態(tài)碼
18
T/TAF001—2023
狀態(tài)碼見(jiàn)表4。
表4狀態(tài)碼
名稱值
TEE_SUCCESS0x00000000
TEE_FAIL0xffffffff
TEE_FP_NOT_MATCH0x00010000
TEE_FP_GET_ID_FAIL0x00020000
TEE_GEN_RSA_KEY_FAIL0x00030000
TEE_EXT_RSA_PRI_SIGN_FAIL0x00040000
TEE_EXT_RSA_PUB_VERIFY_FAIL0x00050000
TEE_FP_SIGN_FAIL0x00060000
TEE_FP_GET_IDS_FAIL0x00070000
10REE與TEE通信及TA更新接口要求
10.1總則
REE與TEE通信及TA更新接口應(yīng)實(shí)現(xiàn)以下功能:
a)支持REE到TEE的數(shù)據(jù)透明傳輸;
b)支持根據(jù)指定路徑更新TA。
10.2AbstractTEEClient類(lèi)
10.2.1描述
描述如下:
a)AbstractTEEClient類(lèi)定義了需要實(shí)現(xiàn)的REE與TEE通信及TA更新接口;
b)該類(lèi)是一個(gè)abstractclass,應(yīng)有具體的實(shí)現(xiàn)。
10.2.2AbstractTEEClient()方法
/**
*TEEClient的構(gòu)造方法
*
*/
publicAbstractTEEClient(Contextcontext,Stringpath);
a)描述
構(gòu)造AbstractTEEClient對(duì)象,其生命周期和teeclient一致。在此構(gòu)造方法中實(shí)
現(xiàn)teeclient的創(chuàng)建。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 七夕節(jié)活動(dòng)方案 (15篇)
- 《綠野仙蹤》讀后感集合15篇
- 綠色制造工藝改造項(xiàng)目可行性研究報(bào)告
- 空調(diào)與照明系統(tǒng)優(yōu)化在標(biāo)準(zhǔn)廠房節(jié)能中的作用
- 海洋科技創(chuàng)新的路徑與行動(dòng)計(jì)劃
- 光伏電站光伏區(qū)技改項(xiàng)目可行性研究報(bào)告
- 工業(yè)遺產(chǎn)活化利用項(xiàng)目可行性研究報(bào)告
- 高效能電機(jī)研發(fā)項(xiàng)目可行性研究報(bào)告
- 家庭對(duì)學(xué)生心理健康教育
- 新疆維吾爾自治區(qū)塔城地區(qū)烏蘇市第一中學(xué)2022-2023學(xué)年高一下學(xué)期3月月考政治 含解析
- 陽(yáng)光心理-健康人生小學(xué)生心理健康主題班會(huì)課件
- 樂(lè)理知識(shí)考試題庫(kù)130題(含答案)
- 2023年廣東廣州中考滿分作文《一樣的舞臺(tái)不一樣的我》
- 2024-2030年中國(guó)商用顯示產(chǎn)業(yè)投資策略及發(fā)展規(guī)劃建議研究研究報(bào)告
- 2024年共青團(tuán)入團(tuán)積極分子團(tuán)校結(jié)業(yè)考試試題庫(kù)及答案
- 小學(xué)五年級(jí)數(shù)學(xué)奧林匹克競(jìng)賽試卷及答案
- 中西文化鑒賞智慧樹(shù)知到答案2024年鄭州大學(xué)
- 人教PEP版英語(yǔ)六上Unit 5《What does he do》(B Let's learn)說(shuō)課稿
- DL∕T 5494-2014 電力工程場(chǎng)地地震安全性評(píng)價(jià)規(guī)程
- DL∕T 1630-2016 氣體絕緣金屬封閉開(kāi)關(guān)設(shè)備局部放電特高頻檢測(cè)技術(shù)規(guī)范
- 實(shí)驗(yàn)室可靠性測(cè)試計(jì)劃表
評(píng)論
0/150
提交評(píng)論