王金海,陳泓宇,崔 軍+,戴華林
(1.天津工業(yè)大學(xué) 電子與信息工程學(xué)院,天津 300387; 2.天津城建大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,天津 300384)
生物特征識別(biometric authentication)相關(guān)標(biāo)準(zhǔn)[1-4]定義了此類系統(tǒng)的總體結(jié)構(gòu)框架,包含注冊、驗(yàn)證和身份識別3種工作狀態(tài),指出了生物特征數(shù)據(jù)的來源與去向。生物特征識別系統(tǒng)的安全性問題已成為當(dāng)前研究的熱點(diǎn)方向。系統(tǒng)的安全性是指系統(tǒng)硬件、軟件及數(shù)據(jù)能受到保護(hù),不會(huì)因偶然或故意攻擊遭到破壞、篡改和泄露,可保證系統(tǒng)安全、連續(xù)正常運(yùn)行[5]。其中完整性和保密性是系統(tǒng)安全很關(guān)鍵的標(biāo)準(zhǔn)特征[6]。
以指紋識別系統(tǒng)為例,目前市場上常見的指紋識別系統(tǒng)均以系統(tǒng)內(nèi)保存的特征模板作為身份識別的基礎(chǔ),而特征模板的關(guān)鍵參數(shù)則是指紋的細(xì)節(jié)點(diǎn)的位置、方向等信息[7],可能導(dǎo)致用戶身份安全性和隱私性受到威脅。Ratha等[8]對生物特征識別系統(tǒng)易受到的攻擊進(jìn)行了具體分析,包括重放攻擊、模板攻擊等8類。通過對Elisardo等[9,10]提出的應(yīng)用BioAPI接口技術(shù)的生物特征識別系統(tǒng)的分析與研究,發(fā)現(xiàn)BioAPI接口具有快速適配眾多應(yīng)用系統(tǒng)和采集設(shè)備的優(yōu)點(diǎn),但是較少關(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ù)的保密性和完整性,保證傳輸安全,避免泄露與篡改。同時(shí)給出相應(yīng)安全模塊工作原理,最后提出改進(jìn)后的生物特征識別系統(tǒng)的實(shí)現(xiàn)過程及安全性分析。
數(shù)字簽名技術(shù)常用于解決網(wǎng)絡(luò)通信過程中發(fā)生偽造和篡改等安全問題[11]。用戶可以公開公鑰,并嚴(yán)密保護(hù)私鑰。任何人均可利用公開的公鑰驗(yàn)證簽名者簽名的正確性,但僅依靠公鑰無法偽造簽名者的有效簽名[12]。數(shù)字簽名處理過程如圖1所示。
本文依據(jù)文獻(xiàn)[15]所引用的符號定義,對應(yīng)使用在本文的加密函數(shù)、解密函數(shù)、簽名函數(shù)等函數(shù)及常量中。式(1)和式(2)代表數(shù)字簽名的簽名及驗(yàn)簽過程
(m,δ)=Sigprikey(m)
(1)
r=Verpubkey(m,δ)
(2)
數(shù)字信封[13]是一種使用對稱加密體制的安全加固方法,用于預(yù)防在公開網(wǎng)絡(luò)傳輸上存在的數(shù)據(jù)泄露的安全威脅,降低數(shù)據(jù)泄露的風(fēng)險(xiǎn)。此外,通過在數(shù)字信封上增加簽名操作,加入非對稱加密體制,能夠充分發(fā)揮兩種不同加密機(jī)制的優(yōu)勢,使系統(tǒng)保密性和完整性得到提升。其中保密性體現(xiàn)在數(shù)字信封使用對稱密鑰加密原文及公私鑰對加密對稱密鑰。完整性則體現(xiàn)在使用數(shù)字簽名對數(shù)字信封進(jìn)行簽名操作。將數(shù)字簽名及數(shù)字信封兩種加密方式進(jìn)行有機(jī)結(jié)合,提升信封的完整性和可信性。與對信封簽名前相比,簽名后的數(shù)字信封不僅保證數(shù)據(jù)密文傳輸,同時(shí)還可以通過簽名保證信封的完整性,預(yù)防加密數(shù)據(jù)及信封在傳輸過程中遭到泄露與篡改。圖2是簽名數(shù)字信封的封裝及解封過程。
圖2 簽名數(shù)字信封封裝及解封過程
文獻(xiàn)[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è)計(jì)的生物特征識別系統(tǒng)的分析與研究,應(yīng)用BioAPI接口的生物特征識別系統(tǒng)的優(yōu)勢在于該系統(tǒng)能夠發(fā)揮BioAPI應(yīng)用編程接口的優(yōu)點(diǎn),同時(shí)在接口內(nèi)定義了多種功能函數(shù),包括用于數(shù)據(jù)采集的BioAPI_ControlUnit()函數(shù)和用于圖像處理的BioAPI_Capture()函數(shù)等。按照相關(guān)標(biāo)準(zhǔn)[4]中的描述可知,通過調(diào)用接口內(nèi)部諸多函數(shù),可實(shí)現(xiàn)特征提取、模板生成等功能[14]。該系統(tǒng)主要包含數(shù)據(jù)采集、模板數(shù)據(jù)提取、數(shù)據(jù)壓縮打包發(fā)送、解壓還原后的注冊/驗(yàn)證和結(jié)果共享等多個(gè)步驟,具體實(shí)現(xiàn)過程已在文獻(xiàn)[15]中闡述。
但是該系統(tǒng)在實(shí)際應(yīng)用過程中,還需依賴公開網(wǎng)絡(luò)進(jìn)行模板和注冊/驗(yàn)證結(jié)果的傳輸。依據(jù)相關(guān)安全標(biāo)準(zhǔn)[4]對Elisardo等所提系統(tǒng)進(jìn)行安全性評估后,可知系統(tǒng)主要存在下列安全問題:①無法體現(xiàn)保密性:由于系統(tǒng)客戶端到系統(tǒng)服務(wù)端之間使用公開網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,同時(shí),在傳輸過程中,特征模板作為系統(tǒng)的核心數(shù)據(jù),未進(jìn)行加密操作,仍為明文狀態(tài)。易受到攻擊,導(dǎo)致數(shù)據(jù)泄露,不滿足保密性要求;②無法體現(xiàn)完整性:除模板數(shù)據(jù)外,由特征模板進(jìn)行注冊或驗(yàn)證的結(jié)果也在公開網(wǎng)絡(luò)傳輸,但在傳輸過程中均缺乏對數(shù)據(jù)的簽名,導(dǎo)致數(shù)據(jù)存在易被攻擊者替換或篡改的安全威脅,缺乏對數(shù)據(jù)完整性的保護(hù)綜上,本文針對以上兩點(diǎn)對系統(tǒng)提出了一種安全加固方法,并對應(yīng)用BioAPI接口實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)姆绞竭M(jìn)行了改進(jìn)。
圖3給出了兼容BioAPI的安全應(yīng)用框架,通過在客戶端和服務(wù)端側(cè)嵌入安全模塊和保存私鑰的密碼模塊,并將數(shù)據(jù)輸入/輸出接口與BioAPI接口相連。利用簽名數(shù)字信封及數(shù)字簽名技術(shù),將對稱和非對稱密碼體制應(yīng)用到改進(jìn)后系統(tǒng)中。實(shí)現(xiàn)加密傳輸及數(shù)字簽名,保護(hù)生物特征模板數(shù)據(jù)與注冊/驗(yàn)證結(jié)果安全。
圖3 兼容BioAPI的安全應(yīng)用框架
本文所提出的安全加固方法有以下創(chuàng)新之處:①在文獻(xiàn)[9]所提系統(tǒng)框架的基礎(chǔ)上,在系統(tǒng)客戶端與服務(wù)端側(cè)添加用于實(shí)現(xiàn)對模板和注冊/驗(yàn)證結(jié)果加密的安全模塊,并在其內(nèi)部使用數(shù)字信封及數(shù)字簽名技術(shù)對數(shù)據(jù)進(jìn)行加密,提升傳輸數(shù)據(jù)的保密性與完整性;②新增的安全模塊同時(shí)兼容BioAPI接口,在其內(nèi)部保存用于信封加解密及簽名操作所使用的公私鑰對。實(shí)現(xiàn)私鑰達(dá)到僅在計(jì)算過程中被調(diào)取參與計(jì)算,私鑰不傳輸,不脫離安全模塊的效果[15]。從而有效解決文獻(xiàn)[9]系統(tǒng)中所存在的數(shù)據(jù)未加密傳輸?shù)陌踩珕栴}。系統(tǒng)注冊及驗(yàn)證階段的過程如圖4所示,系統(tǒng)整體涉及三大主要模塊,分別是系統(tǒng)客戶端、系統(tǒng)服務(wù)端和模板數(shù)據(jù)庫。
(1)注冊階段
注冊階段主要包含數(shù)據(jù)采集、傳輸信封封裝、傳輸信封解封及身份注冊4部分。在傳輸信封封裝/解封過程中,使用含簽名的數(shù)字信封技術(shù),使用隨機(jī)生成的對稱密鑰對特征模板進(jìn)行加解密操作,并使用傳輸公私鑰對實(shí)現(xiàn)信封的簽名與驗(yàn)簽;在身份注冊過程中,依靠簽名公私鑰對實(shí)現(xiàn)對注冊結(jié)果的簽名與驗(yàn)簽。
具體注冊階段實(shí)現(xiàn)過程已由文獻(xiàn)[15]中給出,在此不再贅述。
本文依據(jù)文獻(xiàn)[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)驗(yàn)證階段
驗(yàn)證階段主要包含數(shù)據(jù)采集、傳輸信封封裝、傳輸信封解封及系統(tǒng)驗(yàn)證4部分。其中驗(yàn)證階段所涉及的數(shù)據(jù)采集、信封封裝及信封解封部分,與注冊階段一致。在系統(tǒng)驗(yàn)證過程中,使用簽名公私鑰對實(shí)現(xiàn)對驗(yàn)證結(jié)果的簽名與驗(yàn)簽功能。
系統(tǒng)驗(yàn)證過程具體步驟,在文獻(xiàn)[15]中也已給出,在此不再闡述。式(17)~式(24)代表驗(yàn)證階段相關(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)計(jì)算均在安全模塊內(nèi)部進(jìn)行,因此安全模塊除加密保護(hù)模板外,還保護(hù)了私鑰。
本文所提出的安全加固方法中涉及在系統(tǒng)中客戶端與服務(wù)端所增加的安全模塊(security module),需兼容BioAPI接口,其中包含一組隨機(jī)對稱密鑰k、客戶端內(nèi)的公私鑰對Cpub/Cpri;服務(wù)端內(nèi)的公私鑰對Spub/Spri[15]。
改進(jìn)后系統(tǒng)針對數(shù)據(jù)在傳輸過程中缺乏加密的問題,對BioAPI接口的數(shù)據(jù)傳輸方式進(jìn)行了優(yōu)化,降低模板數(shù)據(jù)與注冊/驗(yàn)證結(jié)果遭受泄露或篡改的安全風(fēng)險(xiǎn)。同時(shí)保留了BioAPI接口所具有的兼容性強(qiáng)和集成方便的優(yōu)點(diǎn)。圖5為應(yīng)用安全模塊和BioAPI的系統(tǒng)實(shí)現(xiàn)過程:
整個(gè)過程可分為6個(gè)部分:包括模板數(shù)據(jù)采集與生成、模板壓縮與簽名信封封裝、信封傳輸、簽名信封解密與模板還原、模板注冊/驗(yàn)證、注冊/驗(yàn)證結(jié)果的簽名發(fā)送與驗(yàn)簽。
在系統(tǒng)實(shí)現(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)實(shí)現(xiàn)的具體過程在文獻(xiàn)[15]中進(jìn)行了詳細(xì)說明,這里不再闡述。
BIR[14]文件是BioAPI接口下定義的數(shù)據(jù)傳輸文件,由BioAPI_BIR_HEADER,BDB(BioAPI_DATA_BiometricData)和一個(gè)可選的SB(security block)組成,其中頭文件中包含數(shù)據(jù)類型,特征類型和是否包含子類。BIR文件數(shù)據(jù)格式詳情見文獻(xiàn)[15]中的表3-1。
圖5 應(yīng)用安全模塊和BioAPI的系統(tǒng)實(shí)現(xiàn)過程
由于BIR文件中BDB支持?jǐn)?shù)據(jù)加密,SB用于進(jìn)行簽名操作。本文在BDB數(shù)據(jù)段中使用支持加密的BioAPI_BIR_Biometric_DATA_FORMAT類型,同時(shí)選擇將簽名值存放在SB內(nèi)。而文獻(xiàn)[9]中BDB段數(shù)據(jù)使用的是未加密的數(shù)據(jù)類型BioAPI_BIR_DATA_TYPE,且SB為空,不能體現(xiàn)保密性和完整性。文獻(xiàn)[15]中的表3-2為使用加密方法前后BioAPI接口函數(shù)格式內(nèi)容的對比。從該表中可看出,本方法通過對模板加密體現(xiàn)保密性,通過簽名數(shù)字信封及結(jié)果簽名體現(xiàn)完整性。
本文針對應(yīng)用BioAPI接口設(shè)計(jì)的生物特征識別系統(tǒng)在數(shù)據(jù)傳輸過程中由于缺乏加密與簽名而導(dǎo)致模板數(shù)據(jù)與注冊/驗(yàn)證結(jié)果存在的隱私泄露和數(shù)據(jù)篡改等安全隱患,在兼容BioAPI接口的基礎(chǔ)上,在系統(tǒng)客戶端與服務(wù)器側(cè)添加了安全模塊,通過數(shù)字簽名和簽名數(shù)字信封實(shí)現(xiàn)對模板及結(jié)果的加密與簽名。從保密性、和完整性兩個(gè)方面提升了系統(tǒng)的安全性。
從保密性角度看,由于原系統(tǒng)客戶端到系統(tǒng)服務(wù)端之間使用公開網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,且在傳輸過程中,特征模板作為系統(tǒng)的核心數(shù)據(jù),未進(jìn)行加密操作,仍為明文狀態(tài)。缺乏對模板的加密傳輸,使模板數(shù)據(jù)存在數(shù)據(jù)泄露的風(fēng)險(xiǎn)。因此,使用簽名數(shù)字信封對生物特征數(shù)據(jù)進(jìn)行加密傳輸后,傳輸過程中所發(fā)送的模板數(shù)據(jù)均為密文。同時(shí),由于安全模塊內(nèi)嵌于系統(tǒng)客戶端和服務(wù)端內(nèi)部,使加解密計(jì)算過程均為封閉環(huán)境,保證存儲在安全模塊中的公私鑰對不泄露,提升數(shù)字信封的安全,體現(xiàn)保密性的增強(qiáng)。
從完整性角度看,由于原系統(tǒng)未引入數(shù)字簽名技術(shù),導(dǎo)致模板及結(jié)果在傳輸過程中存在被篡改的安全威脅,本文基于此,使用數(shù)字簽名技術(shù)對模板數(shù)據(jù)及結(jié)果進(jìn)行簽名,能夠降低被篡改的風(fēng)險(xiǎn),保證數(shù)據(jù)方來源的準(zhǔn)確性和數(shù)據(jù)完整性,體現(xiàn)完整性的增強(qiáng)。
本文所提出的安全加固方法主要體現(xiàn)在使用數(shù)字信封和數(shù)字簽名技術(shù)實(shí)現(xiàn)系統(tǒng)的加密傳輸,從而有效解決應(yīng)用BioAPI接口的生物特征識別系統(tǒng)存在的隱私泄露和數(shù)據(jù)篡改等安全問題,同時(shí)在提升系統(tǒng)保密性與完整性的基礎(chǔ)上,仍兼容BioAPI接口在生物特征識別系統(tǒng)中功能。之后給出了本文提出的安全方法在現(xiàn)有系統(tǒng)中加固實(shí)現(xiàn)細(xì)節(jié),包含BioAPI內(nèi)各接口調(diào)用方法和安全模塊與接口間的安全數(shù)據(jù)傳輸格式。最后依據(jù)相關(guān)安全標(biāo)準(zhǔn)[4],對系統(tǒng)保密性和完整性的提高進(jìn)行理論驗(yàn)證與分析,在兼容BioAPI接口的同時(shí)全面提升系統(tǒng)安全性。由于本文所提安全加固方法主要提升了系統(tǒng)保密性和完整性,但是沒有考慮如何確保系統(tǒng)參與者的真實(shí)性與不可否認(rèn)等安全要求,后續(xù)將繼續(xù)深入研究系統(tǒng)與PKI/CA 等數(shù)字證書體系的結(jié)合,進(jìn)一步提升系統(tǒng)安全性的同時(shí)提升系統(tǒng)的使用價(jià)值。