王金海,陳泓宇,崔 軍+,戴華林
(1.天津工業(yè)大學(xué) 電子與信息工程學(xué)院,天津 300387; 2.天津城建大學(xué) 計算機與信息工程學(xué)院,天津 300384)
生物特征識別(biometric authentication)相關(guān)標(biāo)準[1-4]定義了此類系統(tǒng)的總體結(jié)構(gòu)框架,包含注冊、驗證和身份識別3種工作狀態(tài),指出了生物特征數(shù)據(jù)的來源與去向。生物特征識別系統(tǒng)的安全性問題已成為當(dāng)前研究的熱點方向。系統(tǒng)的安全性是指系統(tǒng)硬件、軟件及數(shù)據(jù)能受到保護,不會因偶然或故意攻擊遭到破壞、篡改和泄露,可保證系統(tǒng)安全、連續(xù)正常運行[5]。其中完整性和保密性是系統(tǒng)安全很關(guān)鍵的標(biāo)準特征[6]。
以指紋識別系統(tǒng)為例,目前市場上常見的指紋識別系統(tǒng)均以系統(tǒng)內(nèi)保存的特征模板作為身份識別的基礎(chǔ),而特征模板的關(guān)鍵參數(shù)則是指紋的細節(jié)點的位置、方向等信息[7],可能導(dǎo)致用戶身份安全性和隱私性受到威脅。Ratha等[8]對生物特征識別系統(tǒng)易受到的攻擊進行了具體分析,包括重放攻擊、模板攻擊等8類。通過對Elisardo等[9,10]提出的應(yīng)用BioAPI接口技術(shù)的生物特征識別系統(tǒng)的分析與研究,發(fā)現(xiàn)BioAPI接口具有快速適配眾多應(yīng)用系統(tǒng)和采集設(shè)備的優(yōu)點,但是較少關(guān)注其系統(tǒng)安全性,導(dǎo)致生物特征模板和系統(tǒng)處理結(jié)果易受到泄露與篡改,威脅系統(tǒng)安全。
本文針對應(yīng)用BioAPI接口的生物特征識別系統(tǒng)在數(shù)據(jù)傳輸方面存在的安全問題,提出了一種安全加固方法。該方法在系統(tǒng)客戶端與服務(wù)端中內(nèi)嵌安全模塊,并兼容BioAPI。使用數(shù)字簽名和數(shù)字信封技術(shù),提升生物特征數(shù)據(jù)的保密性和完整性,保證傳輸安全,避免泄露與篡改。同時給出相應(yīng)安全模塊工作原理,最后提出改進后的生物特征識別系統(tǒng)的實現(xiàn)過程及安全性分析。
數(shù)字簽名技術(shù)常用于解決網(wǎng)絡(luò)通信過程中發(fā)生偽造和篡改等安全問題[11]。用戶可以公開公鑰,并嚴密保護私鑰。任何人均可利用公開的公鑰驗證簽名者簽名的正確性,但僅依靠公鑰無法偽造簽名者的有效簽名[12]。數(shù)字簽名處理過程如圖1所示。
本文依據(jù)文獻[15]所引用的符號定義,對應(yīng)使用在本文的加密函數(shù)、解密函數(shù)、簽名函數(shù)等函數(shù)及常量中。式(1)和式(2)代表數(shù)字簽名的簽名及驗簽過程
(m,δ)=Sigprikey(m)
(1)
r=Verpubkey(m,δ)
(2)
數(shù)字信封[13]是一種使用對稱加密體制的安全加固方法,用于預(yù)防在公開網(wǎng)絡(luò)傳輸上存在的數(shù)據(jù)泄露的安全威脅,降低數(shù)據(jù)泄露的風(fēng)險。此外,通過在數(shù)字信封上增加簽名操作,加入非對稱加密體制,能夠充分發(fā)揮兩種不同加密機制的優(yōu)勢,使系統(tǒng)保密性和完整性得到提升。其中保密性體現(xiàn)在數(shù)字信封使用對稱密鑰加密原文及公私鑰對加密對稱密鑰。完整性則體現(xiàn)在使用數(shù)字簽名對數(shù)字信封進行簽名操作。將數(shù)字簽名及數(shù)字信封兩種加密方式進行有機結(jié)合,提升信封的完整性和可信性。與對信封簽名前相比,簽名后的數(shù)字信封不僅保證數(shù)據(jù)密文傳輸,同時還可以通過簽名保證信封的完整性,預(yù)防加密數(shù)據(jù)及信封在傳輸過程中遭到泄露與篡改。圖2是簽名數(shù)字信封的封裝及解封過程。

圖2 簽名數(shù)字信封封裝及解封過程
文獻[15]中已給出了簽名數(shù)字信封具體的封裝加密和解封還原過程中主要過程及具體步驟。式(3)~式(5)代表數(shù)字信封封裝階段協(xié)議

(3)
A=c+C
(4)
(A,δ)=Sigprikey_sig&ver(A)
(5)
式(6)~式(8)代表信封解封階段協(xié)議
r=Verpubkey_sig&ver(A,δ)
(6)
c+C=A
(7)

(8)
通過對Elisardo等應(yīng)用BioAPI接口設(shè)計的生物特征識別系統(tǒng)的分析與研究,應(yīng)用BioAPI接口的生物特征識別系統(tǒng)的優(yōu)勢在于該系統(tǒng)能夠發(fā)揮BioAPI應(yīng)用編程接口的優(yōu)點,同時在接口內(nèi)定義了多種功能函數(shù),包括用于數(shù)據(jù)采集的BioAPI_ControlUnit()函數(shù)和用于圖像處理的BioAPI_Capture()函數(shù)等。按照相關(guān)標(biāo)準[4]中的描述可知,通過調(diào)用接口內(nèi)部諸多函數(shù),可實現(xiàn)特征提取、模板生成等功能[14]。該系統(tǒng)主要包含數(shù)據(jù)采集、模板數(shù)據(jù)提取、數(shù)據(jù)壓縮打包發(fā)送、解壓還原后的注冊/驗證和結(jié)果共享等多個步驟,具體實現(xiàn)過程已在文獻[15]中闡述。
但是該系統(tǒng)在實際應(yīng)用過程中,還需依賴公開網(wǎng)絡(luò)進行模板和注冊/驗證結(jié)果的傳輸。依據(jù)相關(guān)安全標(biāo)準[4]對Elisardo等所提系統(tǒng)進行安全性評估后,可知系統(tǒng)主要存在下列安全問題:①無法體現(xiàn)保密性:由于系統(tǒng)客戶端到系統(tǒng)服務(wù)端之間使用公開網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,同時,在傳輸過程中,特征模板作為系統(tǒng)的核心數(shù)據(jù),未進行加密操作,仍為明文狀態(tài)。易受到攻擊,導(dǎo)致數(shù)據(jù)泄露,不滿足保密性要求;②無法體現(xiàn)完整性:除模板數(shù)據(jù)外,由特征模板進行注冊或驗證的結(jié)果也在公開網(wǎng)絡(luò)傳輸,但在傳輸過程中均缺乏對數(shù)據(jù)的簽名,導(dǎo)致數(shù)據(jù)存在易被攻擊者替換或篡改的安全威脅,缺乏對數(shù)據(jù)完整性的保護綜上,本文針對以上兩點對系統(tǒng)提出了一種安全加固方法,并對應(yīng)用BioAPI接口實現(xiàn)數(shù)據(jù)傳輸?shù)姆绞竭M行了改進。
圖3給出了兼容BioAPI的安全應(yīng)用框架,通過在客戶端和服務(wù)端側(cè)嵌入安全模塊和保存私鑰的密碼模塊,并將數(shù)據(jù)輸入/輸出接口與BioAPI接口相連。利用簽名數(shù)字信封及數(shù)字簽名技術(shù),將對稱和非對稱密碼體制應(yīng)用到改進后系統(tǒng)中。實現(xiàn)加密傳輸及數(shù)字簽名,保護生物特征模板數(shù)據(jù)與注冊/驗證結(jié)果安全。

圖3 兼容BioAPI的安全應(yīng)用框架
本文所提出的安全加固方法有以下創(chuàng)新之處:①在文獻[9]所提系統(tǒng)框架的基礎(chǔ)上,在系統(tǒng)客戶端與服務(wù)端側(cè)添加用于實現(xiàn)對模板和注冊/驗證結(jié)果加密的安全模塊,并在其內(nèi)部使用數(shù)字信封及數(shù)字簽名技術(shù)對數(shù)據(jù)進行加密,提升傳輸數(shù)據(jù)的保密性與完整性;②新增的安全模塊同時兼容BioAPI接口,在其內(nèi)部保存用于信封加解密及簽名操作所使用的公私鑰對。實現(xiàn)私鑰達到僅在計算過程中被調(diào)取參與計算,私鑰不傳輸,不脫離安全模塊的效果[15]。從而有效解決文獻[9]系統(tǒng)中所存在的數(shù)據(jù)未加密傳輸?shù)陌踩珕栴}。系統(tǒng)注冊及驗證階段的過程如圖4所示,系統(tǒng)整體涉及三大主要模塊,分別是系統(tǒng)客戶端、系統(tǒng)服務(wù)端和模板數(shù)據(jù)庫。
(1)注冊階段
注冊階段主要包含數(shù)據(jù)采集、傳輸信封封裝、傳輸信封解封及身份注冊4部分。在傳輸信封封裝/解封過程中,使用含簽名的數(shù)字信封技術(shù),使用隨機生成的對稱密鑰對特征模板進行加解密操作,并使用傳輸公私鑰對實現(xiàn)信封的簽名與驗簽;在身份注冊過程中,依靠簽名公私鑰對實現(xiàn)對注冊結(jié)果的簽名與驗簽。
具體注冊階段實現(xiàn)過程已由文獻[15]中給出,在此不再贅述。
本文依據(jù)文獻[15]所引用的符號定義,對應(yīng)使用在本文的加密函數(shù)、解密函數(shù)、簽名函數(shù)等函數(shù)及常量中。式(9)~式(16)代表注冊階段協(xié)議。
Client→Server

(9)
A=c+C;(A,δ)=SigCpri(A)
(10)
Server
VerCpub(A,δ)=r
(11)
(12)
m=Dk(C)
(13)
R=Enroll(m)
(14)
Server→Client
(R,δ′)=SigSpri(R)
(15)
Client
r′=VerSpub(R,δ′)
(16)
(2)驗證階段
驗證階段主要包含數(shù)據(jù)采集、傳輸信封封裝、傳輸信封解封及系統(tǒng)驗證4部分。其中驗證階段所涉及的數(shù)據(jù)采集、信封封裝及信封解封部分,與注冊階段一致。在系統(tǒng)驗證過程中,使用簽名公私鑰對實現(xiàn)對驗證結(jié)果的簽名與驗簽功能。
系統(tǒng)驗證過程具體步驟,在文獻[15]中也已給出,在此不再闡述。式(17)~式(24)代表驗證階段相關(guān)協(xié)議。
Client→Server

(17)
B=c+C;(B,δ)=SigCpri(B)
(18)
Server
VerCpub(B,δ)=r
(19)

(20)
m′=Dk(C)
(21)
R=Match(m,m′)
(22)
Server→Client
(R,δ′)=SigSpri(R)
(23)
Client
r′=VerSpub(R,δ′)
(24)
另外,由于安全模塊內(nèi)嵌于系統(tǒng)中,且涉及私鑰的相關(guān)計算均在安全模塊內(nèi)部進行,因此安全模塊除加密保護模板外,還保護了私鑰。
本文所提出的安全加固方法中涉及在系統(tǒng)中客戶端與服務(wù)端所增加的安全模塊(security module),需兼容BioAPI接口,其中包含一組隨機對稱密鑰k、客戶端內(nèi)的公私鑰對Cpub/Cpri;服務(wù)端內(nèi)的公私鑰對Spub/Spri[15]。
改進后系統(tǒng)針對數(shù)據(jù)在傳輸過程中缺乏加密的問題,對BioAPI接口的數(shù)據(jù)傳輸方式進行了優(yōu)化,降低模板數(shù)據(jù)與注冊/驗證結(jié)果遭受泄露或篡改的安全風(fēng)險。同時保留了BioAPI接口所具有的兼容性強和集成方便的優(yōu)點。圖5為應(yīng)用安全模塊和BioAPI的系統(tǒng)實現(xiàn)過程:
整個過程可分為6個部分:包括模板數(shù)據(jù)采集與生成、模板壓縮與簽名信封封裝、信封傳輸、簽名信封解密與模板還原、模板注冊/驗證、注冊/驗證結(jié)果的簽名發(fā)送與驗簽。
在系統(tǒng)實現(xiàn)過程中,調(diào)用了BSP采集生物特征,并調(diào)用了BioAPI中的BioAPI_ControlUnit()函數(shù)、BioAPI_Capture()函數(shù)、BioAPI_QueryUnits()函數(shù)、BioAPI_LinkToPoint()函數(shù)、BioAPI_CreateTemplate()函數(shù)和BioAPI_VerifyMatch()函數(shù),與簽名數(shù)字信封和數(shù)字簽名技術(shù)相結(jié)合,共同保障數(shù)據(jù)傳輸?shù)陌踩浴?/p>
系統(tǒng)實現(xiàn)的具體過程在文獻[15]中進行了詳細說明,這里不再闡述。
BIR[14]文件是BioAPI接口下定義的數(shù)據(jù)傳輸文件,由BioAPI_BIR_HEADER,BDB(BioAPI_DATA_BiometricData)和一個可選的SB(security block)組成,其中頭文件中包含數(shù)據(jù)類型,特征類型和是否包含子類。BIR文件數(shù)據(jù)格式詳情見文獻[15]中的表3-1。

圖5 應(yīng)用安全模塊和BioAPI的系統(tǒng)實現(xiàn)過程
由于BIR文件中BDB支持數(shù)據(jù)加密,SB用于進行簽名操作。本文在BDB數(shù)據(jù)段中使用支持加密的BioAPI_BIR_Biometric_DATA_FORMAT類型,同時選擇將簽名值存放在SB內(nèi)。而文獻[9]中BDB段數(shù)據(jù)使用的是未加密的數(shù)據(jù)類型BioAPI_BIR_DATA_TYPE,且SB為空,不能體現(xiàn)保密性和完整性。文獻[15]中的表3-2為使用加密方法前后BioAPI接口函數(shù)格式內(nèi)容的對比。從該表中可看出,本方法通過對模板加密體現(xiàn)保密性,通過簽名數(shù)字信封及結(jié)果簽名體現(xiàn)完整性。
本文針對應(yīng)用BioAPI接口設(shè)計的生物特征識別系統(tǒng)在數(shù)據(jù)傳輸過程中由于缺乏加密與簽名而導(dǎo)致模板數(shù)據(jù)與注冊/驗證結(jié)果存在的隱私泄露和數(shù)據(jù)篡改等安全隱患,在兼容BioAPI接口的基礎(chǔ)上,在系統(tǒng)客戶端與服務(wù)器側(cè)添加了安全模塊,通過數(shù)字簽名和簽名數(shù)字信封實現(xiàn)對模板及結(jié)果的加密與簽名。從保密性、和完整性兩個方面提升了系統(tǒng)的安全性。
從保密性角度看,由于原系統(tǒng)客戶端到系統(tǒng)服務(wù)端之間使用公開網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,且在傳輸過程中,特征模板作為系統(tǒng)的核心數(shù)據(jù),未進行加密操作,仍為明文狀態(tài)。缺乏對模板的加密傳輸,使模板數(shù)據(jù)存在數(shù)據(jù)泄露的風(fēng)險。因此,使用簽名數(shù)字信封對生物特征數(shù)據(jù)進行加密傳輸后,傳輸過程中所發(fā)送的模板數(shù)據(jù)均為密文。同時,由于安全模塊內(nèi)嵌于系統(tǒng)客戶端和服務(wù)端內(nèi)部,使加解密計算過程均為封閉環(huán)境,保證存儲在安全模塊中的公私鑰對不泄露,提升數(shù)字信封的安全,體現(xiàn)保密性的增強。
從完整性角度看,由于原系統(tǒng)未引入數(shù)字簽名技術(shù),導(dǎo)致模板及結(jié)果在傳輸過程中存在被篡改的安全威脅,本文基于此,使用數(shù)字簽名技術(shù)對模板數(shù)據(jù)及結(jié)果進行簽名,能夠降低被篡改的風(fēng)險,保證數(shù)據(jù)方來源的準確性和數(shù)據(jù)完整性,體現(xiàn)完整性的增強。
本文所提出的安全加固方法主要體現(xiàn)在使用數(shù)字信封和數(shù)字簽名技術(shù)實現(xiàn)系統(tǒng)的加密傳輸,從而有效解決應(yīng)用BioAPI接口的生物特征識別系統(tǒng)存在的隱私泄露和數(shù)據(jù)篡改等安全問題,同時在提升系統(tǒng)保密性與完整性的基礎(chǔ)上,仍兼容BioAPI接口在生物特征識別系統(tǒng)中功能。之后給出了本文提出的安全方法在現(xiàn)有系統(tǒng)中加固實現(xiàn)細節(jié),包含BioAPI內(nèi)各接口調(diào)用方法和安全模塊與接口間的安全數(shù)據(jù)傳輸格式。最后依據(jù)相關(guān)安全標(biāo)準[4],對系統(tǒng)保密性和完整性的提高進行理論驗證與分析,在兼容BioAPI接口的同時全面提升系統(tǒng)安全性。由于本文所提安全加固方法主要提升了系統(tǒng)保密性和完整性,但是沒有考慮如何確保系統(tǒng)參與者的真實性與不可否認等安全要求,后續(xù)將繼續(xù)深入研究系統(tǒng)與PKI/CA 等數(shù)字證書體系的結(jié)合,進一步提升系統(tǒng)安全性的同時提升系統(tǒng)的使用價值。