周致成,李立新,郭 松,李作輝
(信息工程大學(xué),鄭州450001)
(*通信作者電子郵箱alphalilixin@163.com)
在分布式環(huán)境中,各個(gè)地區(qū)、行業(yè)、部門(mén)為了方便管理用戶,設(shè)置相應(yīng)的資源訪問(wèn)控制系統(tǒng),形成相對(duì)獨(dú)立的域。然而單個(gè)獨(dú)立的域不能提供完整的應(yīng)用服務(wù),用戶訪問(wèn)其他域的資源需要進(jìn)行跨域認(rèn)證。傳統(tǒng)的跨域認(rèn)證主要基于對(duì)稱密碼體制和公鑰密碼體制。而基于對(duì)稱密碼體制的跨域認(rèn)證主要指Kerberos提供的跨域認(rèn)證服務(wù),但Kerberos系統(tǒng)所有用戶的密鑰都存儲(chǔ)在中心服務(wù)器,危及服務(wù)器的安全的行為將危及所有密鑰的安全。而基于公鑰密鑰體制(Public Key Cryptography,PKC)的跨域認(rèn)證方案主要基于公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)和基于身份的公鑰密碼體制(IDentity-based Public Key Cryptography,ID-PKC)?;?PKI的跨域認(rèn)證存在證書(shū)管理復(fù)雜、認(rèn)證路徑過(guò)長(zhǎng)的問(wèn)題;而ID-PKC存在密鑰托管的問(wèn)題,且認(rèn)證效率不高,實(shí)際應(yīng)用困難。
生物特征具有唯一性和在一定時(shí)間內(nèi)不顯著改變的穩(wěn)定性[1],使用生物特征進(jìn)行認(rèn)證具有簡(jiǎn)便、快捷、易用的特點(diǎn),因此生物特征識(shí)別在身份認(rèn)證領(lǐng)域得到了廣泛的應(yīng)用。傳統(tǒng)的生物特征識(shí)別方案在識(shí)別匹配時(shí)要傳輸生物特征模板。生物特征模板是由采集到的生物特征圖像通過(guò)提取細(xì)節(jié)點(diǎn)的方式產(chǎn)生,所以生物特征模板存儲(chǔ)的是該生物特征細(xì)節(jié)點(diǎn)的相關(guān)信息,而不是該生物特征圖像。以指紋特征為例,指紋特征模板的數(shù)據(jù)結(jié)構(gòu)通常由指紋細(xì)節(jié)點(diǎn)的位置、方向等信息構(gòu)成。由于生物特征模板具有唯一性與隱私性,在開(kāi)放的網(wǎng)絡(luò)上直接傳輸生物特征模板是不安全的,因此后來(lái)出現(xiàn)了借助智能卡的支持在客戶端上進(jìn)行生物識(shí)別。文獻(xiàn)[2]最早提出將生物特征引入智能卡認(rèn)證,通過(guò)識(shí)別階段重新采集的指紋特征模板與注冊(cè)階段采集并已經(jīng)存儲(chǔ)在智能卡中的指紋特征模板進(jìn)行識(shí)別匹配,然后借助于ElGamal公鑰加密系統(tǒng)和離散對(duì)數(shù)問(wèn)題實(shí)現(xiàn)遠(yuǎn)程的用戶身份認(rèn)證。但當(dāng)智能卡受到攻擊甚至丟失時(shí),遠(yuǎn)程身份認(rèn)證方案將受到嚴(yán)重的安全威脅,甚至方案不能實(shí)現(xiàn)。因此如何從兩個(gè)差別不大的生物特征中提取出相同的秘密值作為遠(yuǎn)程生物特征比對(duì)匹配的因子,是實(shí)現(xiàn)在分布式開(kāi)放網(wǎng)絡(luò)中實(shí)現(xiàn)生物特征識(shí)別的關(guān)鍵。
2004年,Dodis等[3]提出了模糊提取技術(shù),實(shí)現(xiàn)了將兩個(gè)在誤差允許范圍內(nèi)的生物特征模板通過(guò)模糊提取產(chǎn)生一個(gè)相同且秘密的隨機(jī)字符作為用戶的隨機(jī)密鑰,不僅解決了同一個(gè)生物特征在噪聲等干擾因素下能夠提取出一個(gè)唯一的秘密值的問(wèn)題,而且解決了因生物特征表征信息或生物模板泄露導(dǎo)致的生物特征永久不可用的問(wèn)題。文獻(xiàn)[4]提出將模糊提取技術(shù)與口令放大技術(shù)結(jié)合,克服基于低熵口令認(rèn)證的低安全性問(wèn)題,但其對(duì)模糊提取的安全性假設(shè)是基于被動(dòng)攻擊的,不能應(yīng)對(duì)遭受主動(dòng)攻擊面臨被篡改公開(kāi)信息的威脅。文獻(xiàn)[5]提出了無(wú)線傳感器網(wǎng)絡(luò)下使用智能卡和模糊提取器的認(rèn)證與密鑰協(xié)商協(xié)議,但是用戶需要攜帶智能卡,如果智能卡丟失,用戶將不能登錄認(rèn)證服務(wù)器,必須重新注冊(cè),所以使用智能卡在一定程度上對(duì)用戶帶來(lái)了不便。文獻(xiàn)[6]基于模糊提取技術(shù)和橢圓曲線性Diffie-Hellman假設(shè),提出生物特征和口令雙因子認(rèn)證與密鑰協(xié)商協(xié)議,實(shí)現(xiàn)了用戶無(wú)需智能卡的認(rèn)證。雖然,文獻(xiàn)[4]實(shí)現(xiàn)了遠(yuǎn)程認(rèn)證,文獻(xiàn)[5]的無(wú)線傳感器網(wǎng)絡(luò)環(huán)境是一種分布式的網(wǎng)絡(luò)環(huán)境,但文獻(xiàn)[4-6]均未實(shí)現(xiàn)基于生物特征與口令的跨域認(rèn)證。
區(qū)塊鏈技術(shù)最早由Nakamoto[7]提出,作為比特幣的底層技術(shù)。區(qū)塊鏈技術(shù)整合了分布式存儲(chǔ)、現(xiàn)代密碼學(xué)、點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)、共識(shí)機(jī)制和智能合約這幾個(gè)關(guān)鍵技術(shù),對(duì)數(shù)據(jù)進(jìn)行交換、存儲(chǔ)和處理,是一個(gè)安全高效、共享智能的新技術(shù)。近幾年區(qū)塊鏈技術(shù)在各領(lǐng)域得到了廣泛的研究與應(yīng)用。文獻(xiàn)[8]提出使用區(qū)塊鏈技術(shù)保護(hù)個(gè)人數(shù)據(jù),將區(qū)塊鏈交易附上用戶的操作指令,使用戶在系統(tǒng)中維護(hù)數(shù)據(jù)、操作數(shù)據(jù),但未提及具體應(yīng)用;文獻(xiàn)[9-11]是基于區(qū)塊鏈技術(shù)在傳統(tǒng)PKI身份認(rèn)證領(lǐng)域應(yīng)用的研究,解決了傳統(tǒng) PKI領(lǐng)域存在單一 CA(Certifacate Authority)節(jié)點(diǎn)故障和使用 CRL(Certificate Revocation List)造成通信量過(guò)大的問(wèn)題,但未提及跨PKI信任域的身份認(rèn)證問(wèn)題的解決方案;文獻(xiàn)[12]提出將區(qū)塊鏈技術(shù)應(yīng)用于基于生物特征的身份認(rèn)證問(wèn)題,使用區(qū)塊鏈技術(shù)存儲(chǔ)指紋形成一個(gè)基于區(qū)塊鏈的身份認(rèn)證系統(tǒng),但是該方案直接將未加密的指紋存儲(chǔ)在區(qū)塊鏈上,存在安全性與隱私性威脅。
針對(duì)傳統(tǒng)跨域認(rèn)證方式單一且方案復(fù)雜,以及生物特征認(rèn)證采用的模糊提取技術(shù)中公開(kāi)信息值易遭受篡改等問(wèn)題,本文提出了基于區(qū)塊鏈技術(shù)的生物特征和口令雙因子跨域認(rèn)證方案。基于不易篡改且分布式存儲(chǔ)的區(qū)塊鏈作為底層數(shù)據(jù)存儲(chǔ)架構(gòu),存儲(chǔ)生物特征公開(kāi)信息,便于用戶恢復(fù)作為生物特征因子的隨機(jī)密鑰?;陔x散對(duì)數(shù)問(wèn)題把用戶在注冊(cè)與認(rèn)證階段輸入的靜態(tài)口令轉(zhuǎn)化為動(dòng)態(tài)口令,作為口令因子。利用對(duì)稱加解密與生物特征隨機(jī)密鑰的識(shí)別匹配,實(shí)現(xiàn)了生物特征與口令的雙因子認(rèn)證。本文利用模糊提取技術(shù)解決了傳統(tǒng)的生物識(shí)別認(rèn)證方案存在的用戶生物特征泄露將永久不可用的問(wèn)題;基于區(qū)塊鏈分布式賬本不易篡改的特點(diǎn)解決了文獻(xiàn)[4]存在的模糊提取器遭受主動(dòng)攻擊的威脅,解決了文獻(xiàn)[5]中用戶攜帶智能卡不便且易丟失的問(wèn)題,實(shí)現(xiàn)了用戶在不使用智能卡的條件下在任意客戶端進(jìn)行身份認(rèn)證。
Dodis等[3]提出的模糊提取技術(shù)存在兩個(gè)概念:
1)模糊提取器(Fuzzy Extractor)。從輸入的生物特征信號(hào)中提取出均勻分布的隨機(jī)字符串R。
2)安全梗概(Secure Sketch)。從輸入的生物特征信息ω中提取出公開(kāi)信息P,當(dāng)再次輸入的ω'與ω非常相近時(shí),可以由P和ω'恢復(fù)出ω。
模糊提取技術(shù)將輸入的生物特征信息ω分別使用模糊提取器和安全梗概以容錯(cuò)的方式提取出一個(gè)均勻的隨機(jī)字符串R和一個(gè)公開(kāi)信息P。當(dāng)再次輸入一個(gè)與首次輸入的生物特征信息ω偏差不大的生物特征信息ω'時(shí),借助公開(kāi)信息P,使用安全梗概恢復(fù)出ω,并作為輸入再次通過(guò)模糊提取器獲得隨機(jī)字符串R。為簡(jiǎn)化模糊提取技術(shù)的流程,下面將模糊提取技術(shù)使用形式化表述:
1)隨機(jī)字符生成算法Gen(ω)→(R,P):輸入用戶的生物特征信息ω,通過(guò)隨機(jī)字符生成算法,輸出一個(gè)對(duì)應(yīng)于用戶生物特征的字符串R作為用戶的隨機(jī)密鑰和一個(gè)公開(kāi)信息值P。
2)隨機(jī)字符恢復(fù)算法Rep(ω',P)→R:輸入用戶的生物特征ω',和對(duì)應(yīng)用戶的公開(kāi)信息P,如果滿足兩次輸入的生物特征的誤差在給定容許的范圍ε內(nèi),即dis(ω,ω')≤ε,則輸出對(duì)應(yīng)于用戶生物特征的字符串R。
區(qū)塊鏈技術(shù)簡(jiǎn)單來(lái)講主要包含以下三個(gè)概念:1)交易。在比特幣系統(tǒng)[7]中指以比特幣為貨幣的價(jià)值的交換,引申為系統(tǒng)中以某個(gè)關(guān)鍵數(shù)據(jù)為基礎(chǔ)的數(shù)據(jù)的交換。2)區(qū)塊。記錄一定時(shí)間內(nèi)系統(tǒng)的所有的交易和狀態(tài)。3)鏈。代表整個(gè)賬本,從以時(shí)間順序產(chǎn)生的區(qū)塊連接而成。
區(qū)塊鏈作為數(shù)據(jù)賬本存儲(chǔ)在點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中[13]。每一個(gè)區(qū)塊存儲(chǔ)網(wǎng)絡(luò)中一段時(shí)間產(chǎn)生的交易。交易由網(wǎng)絡(luò)節(jié)點(diǎn)經(jīng)廣播機(jī)制廣播到全網(wǎng)中,參與記賬的節(jié)點(diǎn)按照共識(shí)機(jī)制把交易記錄在區(qū)塊內(nèi),成為新的區(qū)塊。如圖1所示,后一個(gè)區(qū)塊記錄前一個(gè)區(qū)塊的哈希值,通過(guò)這種方式將每一個(gè)區(qū)塊連接成區(qū)塊鏈[14]。
圖1 區(qū)塊鏈結(jié)構(gòu)Fig.1 Blockchain architecture
本文方案的跨域認(rèn)證系統(tǒng)由多個(gè)分布式獨(dú)立域和區(qū)塊鏈網(wǎng)絡(luò)組成。系統(tǒng)架構(gòu)如圖2所示,系統(tǒng)由多個(gè)獨(dú)立的域和區(qū)塊鏈網(wǎng)絡(luò)組成,每個(gè)獨(dú)立的域的內(nèi)部由認(rèn)證服務(wù)器、客戶端和區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)組成??蛻舳松线B接生物特征采集器。區(qū)塊鏈網(wǎng)絡(luò)由眾多服務(wù)器和主機(jī)節(jié)點(diǎn)以點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)的組網(wǎng)方式構(gòu)成,這些節(jié)點(diǎn)位于各分布式獨(dú)立的域內(nèi)。在實(shí)際應(yīng)用時(shí)節(jié)點(diǎn)可以建在認(rèn)證服務(wù)器內(nèi),也可以建在認(rèn)證服務(wù)器外。
圖2 系統(tǒng)架構(gòu)Fig.2 System architecture
由于聯(lián)盟鏈具有分布式多中心的特點(diǎn),滿足多個(gè)獨(dú)立域存在的分布式網(wǎng)絡(luò)環(huán)境,因此本方案使用區(qū)塊鏈聯(lián)盟鏈技術(shù)設(shè)計(jì)針對(duì)生物特征識(shí)別的數(shù)據(jù)存儲(chǔ)區(qū)塊鏈網(wǎng)絡(luò),命名為生物公開(kāi)信息聯(lián)盟鏈(Biometrics Public Information Consortium Blockchain,BPICB),BPICB架構(gòu)如圖3所示。
圖3 BPICB架構(gòu)Fig.3 BPICB architecture
BPICB網(wǎng)絡(luò)節(jié)點(diǎn)建立在不同的域內(nèi),通過(guò)網(wǎng)絡(luò)互相連接。每個(gè)域可以選擇節(jié)點(diǎn)部署的方式,可以部署在認(rèn)證服務(wù)器里,也可以獨(dú)立于認(rèn)證服務(wù)器之外部署。節(jié)點(diǎn)類(lèi)型分為以下兩類(lèi):
1)記賬節(jié)點(diǎn)(Keep Account Peer,KAP)。由服務(wù)器充當(dāng),主要負(fù)責(zé)維護(hù)區(qū)塊鏈賬本。參與共識(shí)機(jī)制將交易記錄在區(qū)塊鏈內(nèi),保存有區(qū)塊鏈賬本。
2)服務(wù)節(jié)點(diǎn)(Service Peer,SP)。由主機(jī)充當(dāng),主要負(fù)責(zé)為客戶端提供區(qū)塊鏈數(shù)據(jù)存儲(chǔ)與查詢服務(wù)。通過(guò)接收客戶端的操作請(qǐng)求,組合交易并廣播至網(wǎng)絡(luò)中。通過(guò)與記賬節(jié)點(diǎn)的同步保存有區(qū)塊鏈賬本,提供客戶端對(duì)賬本的查詢功能。
在BPICB網(wǎng)絡(luò)中,記賬節(jié)點(diǎn)記錄區(qū)塊鏈數(shù)據(jù),服務(wù)節(jié)點(diǎn)提供區(qū)塊鏈服務(wù)。每一個(gè)獨(dú)立的域內(nèi)至少有一個(gè)記賬節(jié)點(diǎn)和服務(wù)節(jié)點(diǎn),提供完整的區(qū)塊鏈數(shù)據(jù)存儲(chǔ)、查詢與審計(jì)的功能。記賬節(jié)點(diǎn)通常是運(yùn)算效率較高的服務(wù)器,采用記賬節(jié)點(diǎn)記賬而不是由全網(wǎng)所有節(jié)點(diǎn)競(jìng)爭(zhēng)記賬,可以有效提高區(qū)塊鏈記賬的效率。服務(wù)節(jié)點(diǎn)可以是主機(jī)也可以是服務(wù)器,連接客戶端,為客戶端提供區(qū)塊鏈數(shù)據(jù)存儲(chǔ)與查詢服務(wù)。將區(qū)塊鏈網(wǎng)絡(luò)中記錄數(shù)據(jù)和查詢數(shù)據(jù)的節(jié)點(diǎn)分離,各司其職,一方面提高區(qū)塊鏈記賬的效率,減少資源浪費(fèi);另一方面更好地提供區(qū)塊鏈賬本服務(wù)。
區(qū)塊鏈的交易對(duì)應(yīng)區(qū)塊鏈賬本內(nèi)的一條條數(shù)據(jù)。本方案使用BPICB網(wǎng)絡(luò)存儲(chǔ)模糊提取后的公開(kāi)信息值P,所以區(qū)塊鏈的交易由公開(kāi)信息P及其相關(guān)信息組成。交易的數(shù)據(jù)結(jié)構(gòu)如圖4所示。其中:Tx-id表示交易號(hào);IDDomain-Number表示每個(gè)域的用戶的賬戶號(hào),代表用戶的唯一標(biāo)識(shí);Data表示模糊提取技術(shù)產(chǎn)生的公開(kāi)信息P;Operation表示對(duì)公開(kāi)信息P的操作,分為注冊(cè)(Register)、查詢(Query)、撤銷(xiāo)(Revoke),記錄對(duì)公開(kāi)信息P的全部操作;Signature表示向服務(wù)節(jié)點(diǎn)發(fā)送關(guān)于公開(kāi)信息P及其相關(guān)操作的認(rèn)證服務(wù)器或客戶端的簽名。
圖4 交易的數(shù)據(jù)結(jié)構(gòu)Fig.4 Data structure of the transaction
1)當(dāng)用戶注冊(cè)時(shí),客戶端的生物特征采集器提取生物特征模板ωU,使用模糊提取技術(shù)的隨機(jī)字符生成算法產(chǎn)生公開(kāi)信息 P,然后將用戶 IDDomain-Number、公開(kāi)信息 P、注冊(cè)操作Register,以及簽名Signature發(fā)送給服務(wù)節(jié)點(diǎn),服務(wù)節(jié)點(diǎn)組裝交易Transaction并附上交易號(hào)Tx-id廣播至區(qū)塊鏈網(wǎng)絡(luò),記賬節(jié)點(diǎn)把一定時(shí)間內(nèi)收到的區(qū)塊鏈網(wǎng)絡(luò)中的交易通過(guò)共識(shí)機(jī)制記錄在新的區(qū)塊中,形成最新的區(qū)塊鏈。用戶注冊(cè)時(shí)產(chǎn)生交易的具體流程如圖5所示。
圖5 用戶注冊(cè)時(shí)產(chǎn)生交易的流程Fig.5 Process of generating a transaction when user registers
2)當(dāng)用戶查詢時(shí),客戶端向區(qū)塊鏈網(wǎng)絡(luò)的服務(wù)節(jié)點(diǎn)發(fā)送用戶的唯一標(biāo)識(shí)符 ID、查詢操作Query和客戶端的簽名Signature,服務(wù)節(jié)點(diǎn)根據(jù)用戶的唯一標(biāo)識(shí)符IDDomain-Number查詢區(qū)塊鏈得到用戶對(duì)應(yīng)的公開(kāi)信息P,返回給客戶端。然后服務(wù)節(jié)點(diǎn)組裝交易并附上交易號(hào)Tx-id廣播至區(qū)塊鏈網(wǎng)絡(luò),記賬節(jié)點(diǎn)把區(qū)塊鏈網(wǎng)絡(luò)中一定時(shí)間內(nèi)的交易通過(guò)共識(shí)機(jī)制記錄在新的區(qū)塊中,形成最新的區(qū)塊鏈。用戶查詢時(shí)產(chǎn)生交易的具體流程如圖6所示。
3)當(dāng)用戶注銷(xiāo)時(shí),認(rèn)證服務(wù)器向區(qū)塊鏈網(wǎng)絡(luò)的服務(wù)節(jié)點(diǎn)發(fā)送用戶的唯一標(biāo)識(shí)符IDDomain-Number、公開(kāi)信息值P、注銷(xiāo)操作Revoke和認(rèn)證服務(wù)器的簽名Signature,服務(wù)節(jié)點(diǎn)組裝交易Transaction并附上交易號(hào)Tx-id并發(fā)往記賬節(jié)點(diǎn)處理,記賬節(jié)點(diǎn)通過(guò)共識(shí)機(jī)制將交易存儲(chǔ)在新的區(qū)塊中,形成最新的區(qū)塊鏈。用戶注銷(xiāo)時(shí)產(chǎn)生交易的具體流程如圖7所示。
圖6 用戶查詢時(shí)產(chǎn)生交易的流程Fig.6 Process of generating a transaction when user queries
圖7 用戶注銷(xiāo)時(shí)產(chǎn)生交易的流程Fig.7 Process of generating a transaction when user revokes
在區(qū)塊鏈體系的高度自治去中心化的分布式環(huán)境中,如何讓區(qū)塊鏈節(jié)點(diǎn)記賬并使全網(wǎng)節(jié)點(diǎn)達(dá)成數(shù)據(jù)上的共識(shí),是設(shè)計(jì)區(qū)塊鏈系統(tǒng)和應(yīng)用方案的關(guān)鍵。本方案選用適合于聯(lián)盟鏈環(huán)境的的Raft共識(shí)機(jī)制[15]使全網(wǎng)數(shù)據(jù)達(dá)成共識(shí)。根據(jù)Raft共識(shí)機(jī)制,將BPICB網(wǎng)絡(luò)中的節(jié)點(diǎn)分為以下3個(gè)角色:
1)領(lǐng)袖:記賬節(jié)點(diǎn)投票選舉一名擔(dān)任;
2)群眾:落選的記賬節(jié)點(diǎn)和服務(wù)節(jié)點(diǎn)擔(dān)任;
3)候選人:所有記賬節(jié)點(diǎn)擔(dān)任。
在BPICB網(wǎng)絡(luò)中,網(wǎng)絡(luò)中的記賬節(jié)點(diǎn)作為候選人投票表決選舉唯一的領(lǐng)袖,投票時(shí)參考記賬節(jié)點(diǎn)的計(jì)算速度以及吞吐量,獲得選票最多的記賬節(jié)點(diǎn)成為領(lǐng)袖。投票結(jié)束后候選人自動(dòng)變?yōu)槿罕?。?dān)任領(lǐng)袖的記賬節(jié)點(diǎn)將一段時(shí)間內(nèi)的交易驗(yàn)證后記錄在區(qū)塊中連接成為最新的區(qū)塊鏈賬本,作為群眾的節(jié)點(diǎn)同步區(qū)塊鏈賬本。
本章主要介紹基于區(qū)塊鏈技術(shù)的生物特征和口令雙因子跨域認(rèn)證協(xié)議。由于BPICB實(shí)現(xiàn)了生物特征公開(kāi)信息的數(shù)據(jù)共享,用戶在任意客戶端通過(guò)查詢區(qū)塊鏈便可得到用戶對(duì)應(yīng)的公開(kāi)信息,通過(guò)模糊提取器技術(shù)可在客戶端上恢復(fù)出隨機(jī)密鑰,因此能夠?qū)崿F(xiàn)用戶在本地與異地進(jìn)行跨域認(rèn)證。方案具體分為用戶注冊(cè)、本地認(rèn)證、本地跨域認(rèn)證、異地跨域認(rèn)證四個(gè)階段。方案中使用的參數(shù)如表1所示。
用戶在注冊(cè)階段的流程如圖8所示。
用戶在注冊(cè)階段的具體流程如下:
第1步 A域用戶在本地客戶端ClientA-t上輸入用戶名IDA-i和靜態(tài)口令PWA-i,通過(guò)生物特征采集器采集生物特征ωA-i。
第2步 客戶端使用模糊提取技術(shù)的隨機(jī)密鑰生成函數(shù)Gen(),對(duì)輸入的生物特征模板ωA-i進(jìn)行處理,產(chǎn)生隨機(jī)密鑰RA-i和公開(kāi)信息 PA-i,將用戶的靜態(tài)口令 PWA-i作哈希運(yùn)算H(PWA-i),記為 y,然后將生物特征模板 ωA-i和靜態(tài)口令PWA-i刪除??蛻舳藢?IDA-i、RA-i和 y 通過(guò)安全的信道發(fā)送到本地認(rèn)證服務(wù)器ASA。
第 3 步 本地認(rèn)證服務(wù)器 ASA收到包含有 IDA-i、RA-i和y的消息,檢查該用戶的身份標(biāo)識(shí)是否已經(jīng)存在,如果不存在則可以注冊(cè),把 IDA-i、RA-i、y 存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi)。
第4步 客戶端ClientA-t將公開(kāi)信息PA-i發(fā)送到服務(wù)節(jié)點(diǎn)組裝交易記錄在區(qū)塊鏈上。
表1 方案參數(shù)說(shuō)明Tab.1 Description of scheme parameters
圖8 注冊(cè)階段流程Fig.8 Flow chart of registration phase
用戶在本地認(rèn)證階段的流程如圖9所示。
用戶在本地認(rèn)證階段的具體流程如下:
第1步 用戶在客戶端ClientA-t輸入用戶名IDA-i和靜態(tài)口令PWA-i'并在生物特征采集器上采集得到生物特征模板ωA-i'。
第2步 客戶端ClientA-t向服務(wù)節(jié)點(diǎn)查詢區(qū)塊鏈數(shù)據(jù),得到公開(kāi)信息PA-i(具體過(guò)程見(jiàn)2.3節(jié)),使用模糊提取技術(shù)的恢復(fù)算法Rev(ωA-i',PA-i),生成隨機(jī)密鑰RA-i'。將靜態(tài)口令作哈希運(yùn)算H(PWA-i') 記為y',將生物特征模板 ωA-i'和靜態(tài)口令PWA-i'刪除。然后產(chǎn)生隨機(jī)數(shù)x,計(jì)算X=gx,使用y'生成 d'=gxy',d'作為密鑰對(duì)稱加密 Ed'(RA-i'),將消息(IDA-i,X,Ed'(RA-i'))通過(guò)安全的信道發(fā)送給認(rèn)證服務(wù)器ASA。
第3步 認(rèn)證服務(wù)器ASA接收到客戶端ClientA-t發(fā)來(lái)的消息(IDA-i,X,Ed'(RA-i')),根據(jù)IDA-i查找注冊(cè)時(shí)存儲(chǔ)在數(shù)據(jù)庫(kù)中的y,計(jì)算d=Xy。使用d對(duì)Ed'(RA-i')解密,有以下兩種情況:
a) 如果使用 d 能夠解密 Ed'(RA-i'),得到 RA-i',然后根據(jù)IDA-i查找注冊(cè)時(shí)存儲(chǔ)在數(shù)據(jù)庫(kù)中的 RA-i,執(zhí)行第4步;
b)如果使用d無(wú)法解密Ed'(RA-i'),則認(rèn)證失敗,原因?yàn)榭诹铄e(cuò)誤。
第4步 認(rèn)證服務(wù)器ASA驗(yàn)證RA-i和RA-i'是否相等。有以下兩種情況:
a) 如果 RA-i=RA-i',認(rèn)證成功,向 B 域認(rèn)證服務(wù)器返回認(rèn)證成功的消息;
b) 如果 RA-i≠ RA-i',認(rèn)證失敗,向 B 域認(rèn)證服務(wù)器返回認(rèn)證失敗的消息,原因?yàn)樯锾卣麇e(cuò)誤。
用戶在本地跨域認(rèn)證階段的流程如圖10所示。
用戶在本地跨域認(rèn)證階段的具體流程如下:
第1步 用戶在客戶端ClientA-t輸入用戶名IDA-i和靜態(tài)口令PWA-i'并在生物特征采集器上采集得到生物特征模板ωA-i'。
第2步 客戶端ClientA-t向服務(wù)節(jié)點(diǎn)查詢區(qū)塊鏈數(shù)據(jù),得到用戶IDA-i的公開(kāi)信息PA-i,使用模糊提取技術(shù)的恢復(fù)算法 Rev(ωA-i',PA-i) 恢復(fù)出隨機(jī)密鑰 RA-i'。計(jì)算靜態(tài)口令的哈希值 H(PWA-i'),記為 y',客戶端將生物特征模板ωA-i'和靜態(tài)口令 PWA-i'刪除。將用戶的 IDA-i、RA-i'、y'用 B 域的認(rèn)證服務(wù)器ASB的公鑰PKASB加密生成EPKASB(IDA-i,RA-i',y'),發(fā)送消息(IDA-i,EPKAS(IDA-i,RA-i',y')) 給 A 域認(rèn)證服務(wù)器 ASA。B
第3步 A域認(rèn)證服務(wù)器ASA根據(jù)IDA-i查找存儲(chǔ)在數(shù)據(jù)庫(kù)中的 y和RA-i。產(chǎn)生一個(gè)隨機(jī)數(shù)x,計(jì)算X=gx,使用y生成動(dòng)態(tài)口令d=gxy,使用d作為密鑰進(jìn)行對(duì)稱加密Ed(RA-i),將消息(Ed(RA-i),X,EPKAS(IDA-i,RA-i',y')) 發(fā)給 B 域認(rèn)證服B務(wù)器ASB。
圖9 本地認(rèn)證階段流程Fig.9 Flow chart of local authentication phase
圖10 本地跨域認(rèn)證階段流程Fig.10 Flow chart of local cross domain authentication phase
第4步 B域認(rèn)證服務(wù)器ASB收到數(shù)據(jù)包后,使用私鑰對(duì)EPKASB
(IDA-i,RA-i',y') 解密得到 IDA-i、RA-i'和 y',使用 X 和y'計(jì)算動(dòng)態(tài)口令 d'=Xy'。使用 d 對(duì) Ed'(RA-i') 解密,有以下兩種情況:a) 如果使用d能夠解密Ed'(RA-i'),得到RA-i',執(zhí)行第5步;b)如果使用d無(wú)法解密Ed'(RA-i'),則認(rèn)證失敗,原因?yàn)榭诹铄e(cuò)誤。
第5 步 認(rèn)證服務(wù)器ASB驗(yàn)證 RA-i和RA-i'是否相等。以下分兩種情況:
a) 如果 RA-i=RA-i',認(rèn)證成功;
b)如果 RA-i≠ RA-i',認(rèn)證失敗,原因?yàn)樯锾卣麇e(cuò)誤。
用戶在異地跨域認(rèn)證階段的流程如圖11所示。
用戶在異地跨域認(rèn)證階段的具體流程如下:
第1步 用戶輸入IDA-i和靜態(tài)口令PWA-i'并通過(guò)生物特征采集器采集生物特征模板ωA-i'。
第2步 客戶端向最近的服務(wù)節(jié)點(diǎn)查詢區(qū)塊鏈得到用戶IDA-i的公開(kāi)信息 PA-i,使用模糊提取技術(shù) 的 恢 復(fù)算法Rev(ωA-i',PA-i) 恢復(fù)出生物特征隨機(jī)密鑰 RA-i',計(jì)算靜態(tài)口令的哈希值H(PWA-i'),記為y',將生物特征模板ωA-i'和靜態(tài)口令 PWA-i'刪除。發(fā)送消息(IDA-i,RA-i',y') 給 B 域的認(rèn)證服務(wù)器ASB。
第3步 B域認(rèn)證服務(wù)器ASB根據(jù)用戶的唯一標(biāo)識(shí)符IDA-i識(shí)別用戶的本地服務(wù)器,并向其本地服務(wù)器ASB發(fā)送用戶名IDA-i,請(qǐng)求該用戶的生物特征隨機(jī)密鑰RA-i和共享密鑰X。
第4步 A域認(rèn)證服務(wù)器ASA根據(jù)IDA-i查找注冊(cè)時(shí)存儲(chǔ)在數(shù)據(jù)庫(kù)中的 y和RA-i,產(chǎn)生一個(gè)隨機(jī)數(shù)x,計(jì)算X=gx,使用y生成動(dòng)態(tài)口令d=gxy,并將d作為密鑰進(jìn)行對(duì)稱加密Ed(RA-i),A 域認(rèn)證服務(wù)器 ASA發(fā)送消息(IDA-i,X,Ed(RA-i))到B域認(rèn)證服務(wù)器ASB。
第5步 B域認(rèn)證服務(wù)器ASB計(jì)算d'=Xy',使用d'解密Ed(RA-i),分為以下兩種情況:
a) 如果使用 d'能夠解密 Ed(RA-i),得到 RA-i,執(zhí)行第 6步;
b)如果使用d'無(wú)法解密Ed(RA-i),則認(rèn)證失敗,原因?yàn)榭诹铄e(cuò)誤。
第6 步 認(rèn)證服務(wù)器ASB驗(yàn)證 RA-i和RA-i'是否相等。以下分兩種情況:
a) 如果 RA-i=RA-i',認(rèn)證成功,向 B 域認(rèn)證服務(wù)器返回認(rèn)證成功的消息;
b) 如果 RA-i≠ RA-i',認(rèn)證失敗,向 B 域認(rèn)證服務(wù)器返回認(rèn)證失敗的消息,原因?yàn)樯锾卣麇e(cuò)誤。
圖11 異地跨域認(rèn)證階段流程Fig.11 Flow chart of remote cross domain authentication phase
4.1.1 抗中間人攻擊
本方案在用戶注冊(cè)與登錄認(rèn)證時(shí),客戶端將隨機(jī)密鑰R和靜態(tài)口令的哈希值y通過(guò)安全的信道或者直接通過(guò)內(nèi)部局域網(wǎng)發(fā)送給認(rèn)證服務(wù)器,保證認(rèn)證信息不被篡改。在本地跨域認(rèn)證和異地跨域認(rèn)證階段,需要進(jìn)行兩個(gè)域的認(rèn)證服務(wù)器間的通信,在這種多域間的公共網(wǎng)絡(luò)下發(fā)送消息,采用對(duì)稱與非對(duì)稱加密技術(shù),并基于離散對(duì)數(shù)問(wèn)題,可以不使用安全的信道在公開(kāi)的信道傳輸。以下是各個(gè)階段關(guān)于中間人BPICB攻擊的安全性分析:
1)注冊(cè)階段??蛻舳薈lientA-t與本地認(rèn)證服務(wù)器ASA通信,客戶端通過(guò)安全的信道發(fā)送消息(IDA-i,RA-i,y) 到本地認(rèn)證服務(wù)器,攻擊者無(wú)法竊取和篡改??蛻舳伺cBPICB服務(wù)節(jié)點(diǎn)SP通信,通過(guò)安全的信道傳輸PA-i及相關(guān)信息,攻擊者無(wú)法篡改。
2)本地認(rèn)證階段??蛻舳薈lientA-t與本地認(rèn)證服務(wù)器ASA通信,客戶端通過(guò)安全的信道發(fā)送消息(IDA-i,X,Ed'(RA-i'))到本地認(rèn)證服務(wù)器。由于X=gx基于離散對(duì)數(shù)問(wèn)題,攻擊者即使竊取到X也無(wú)法計(jì)算出隨機(jī)數(shù)x,并且攻擊者沒(méi)有靜態(tài)口令的哈希值,也無(wú)法根據(jù)X計(jì)算出動(dòng)態(tài)口令??蛻舳耸褂门c服務(wù)器協(xié)商的動(dòng)態(tài)口令d'作對(duì)稱加密Ed'(RA-i'),攻擊者無(wú)法篡改和竊取RA-i'。
3)本地跨域認(rèn)證階段。首先客戶端ClientA-t與本地認(rèn)證服務(wù)器ASA通信,客戶端通過(guò)安全的信道發(fā)送消息(IDA-i,EPKAS(IDA-i,RA-i',y')) 給本地認(rèn)證服務(wù)器,由于本地認(rèn)證服B務(wù)器沒(méi)有B域認(rèn)證服務(wù)器ASB的私鑰,只對(duì)其進(jìn)行轉(zhuǎn)發(fā),無(wú)法解密,因此不存在本地認(rèn)證服務(wù)器修改消息的可能。然后本地認(rèn)證服務(wù)器ASA和B域認(rèn)證服務(wù)器ASB通信,發(fā)送消息(E(R),X,E(ID,R',y')),由于 X=gx基于離散dA-iPKASBA-iA-i對(duì)數(shù)問(wèn)題,攻擊者即使竊取到X也無(wú)法計(jì)算出隨機(jī)數(shù)x,并且攻擊者沒(méi)有靜態(tài)口令的哈希值,也無(wú)法根據(jù)X計(jì)算出動(dòng)態(tài)口令。兩認(rèn)證服務(wù)器間采用對(duì)稱加密和非對(duì)稱加密通信,攻擊者沒(méi)有相關(guān)密鑰無(wú)法獲取有用的信息。
4)異地跨域認(rèn)證階段。首先客戶端ClientB-i與B域的認(rèn)證服務(wù)器ASB通信,客戶端通過(guò)安全的信道發(fā)送消息(IDA-i,RA-i',y')給認(rèn)證服務(wù)器ASB,攻擊者無(wú)法竊取和篡改消息。A域認(rèn)證服務(wù)器ASA與B域認(rèn)證服務(wù)器ASB通信,發(fā)送消息(IDA-i,X,Ed(RA-i)),由于 X=gx基于離散對(duì)數(shù)問(wèn)題,攻擊者即使竊取到X也無(wú)法計(jì)算出隨機(jī)數(shù)x,并且攻擊者沒(méi)有靜態(tài)口令的哈希值,也無(wú)法根據(jù)X計(jì)算出動(dòng)態(tài)口令。兩認(rèn)證服務(wù)器間采用對(duì)稱加密和非對(duì)稱加密,攻擊者沒(méi)有相關(guān)密鑰無(wú)法獲取有用的信息。
4.1.2 抗重放攻擊
1)本地認(rèn)證階段??蛻舳水a(chǎn)生隨機(jī)數(shù)x,計(jì)算X=gx發(fā)給A域認(rèn)證服務(wù)器ASA??蛻舳伺c認(rèn)證服務(wù)器兩方分別擁有登錄與注冊(cè)階段兩次輸入的靜態(tài)口令y'和y,根據(jù)隨機(jī)數(shù)x和X可以分別計(jì)算出動(dòng)態(tài)口令d'=gxy'和d=Xy。動(dòng)態(tài)口令在認(rèn)證時(shí)只使用一次,攻擊者即使截取了消息也無(wú)法進(jìn)行重放攻擊。
2)本地跨域認(rèn)證階段。A域認(rèn)證服務(wù)器產(chǎn)生隨機(jī)數(shù)x,計(jì)算X=gx發(fā)給B域認(rèn)證服務(wù)器。A域認(rèn)證服務(wù)器與B域認(rèn)證服務(wù)器分別擁有注冊(cè)與登錄階段兩次輸入的靜態(tài)口令y和y',根據(jù)隨機(jī)數(shù)x和X可以分別計(jì)算出動(dòng)態(tài)口令d=gxy和d'=Xy'。動(dòng)態(tài)口令在認(rèn)證時(shí)只使用一次,攻擊者即使截取了消息也無(wú)法進(jìn)行重放攻擊。
3)異地跨域認(rèn)證階段。A域認(rèn)證服務(wù)器產(chǎn)生隨機(jī)數(shù)x,計(jì)算X=gx發(fā)給B域認(rèn)證服務(wù)器。A域認(rèn)證服務(wù)器與B域認(rèn)證服務(wù)器分別擁有注冊(cè)與登錄階段兩次輸入的靜態(tài)口令y和y',根據(jù)隨機(jī)數(shù)x和X可以分別計(jì)算出動(dòng)態(tài)口令d=gxy和d'=Xy'。動(dòng)態(tài)口令在認(rèn)證時(shí)只使用一次,攻擊者即使截取了消息也無(wú)法進(jìn)行重放攻擊。
4.1.3 抗口令猜測(cè)攻擊
用戶在客戶端上輸入靜態(tài)口令后,客戶端便直接將靜態(tài)口令作哈希運(yùn)算把靜態(tài)口令的哈希值發(fā)送出去,并將靜態(tài)口令的緩存刪除,動(dòng)態(tài)口令由靜態(tài)口令的哈希值和隨機(jī)數(shù)生成。所以用戶輸入靜態(tài)口令由客戶端作哈希運(yùn)算后系統(tǒng)中不再出現(xiàn)靜態(tài)口令,攻擊者無(wú)法對(duì)靜態(tài)口令進(jìn)行竊取。將靜態(tài)口令通過(guò)哈希算法變成隨機(jī)散列值,可以有效避免遭受口令猜測(cè)攻擊;同時(shí)由于哈希函數(shù)具有單向性,也無(wú)法將靜態(tài)口令的哈希值還原回靜態(tài)口令。
4.1.4 防止隨機(jī)密鑰與靜態(tài)口令的哈希值雙因子泄露
如果攻擊者攻擊本地認(rèn)證服務(wù)器的數(shù)據(jù)庫(kù),存儲(chǔ)隨機(jī)密鑰和靜態(tài)口令的哈希值出現(xiàn)泄露的情況:
1)如果用戶隨機(jī)密鑰泄露,本地認(rèn)證服務(wù)器對(duì)該用戶重新注冊(cè),使用不同與以往的模糊提取算法重新生成新的隨機(jī)密鑰保存在認(rèn)證服務(wù)器的數(shù)據(jù)庫(kù)中,同時(shí)將區(qū)塊鏈上舊的公開(kāi)信息值添加注銷(xiāo)指令,將生成的新的公開(kāi)信息值記錄在區(qū)塊鏈上。用戶登錄認(rèn)證時(shí)客戶端使用與重新注冊(cè)時(shí)使用的模糊提取技術(shù)配套的恢復(fù)算法恢復(fù)隨機(jī)密鑰,然后進(jìn)行匹配識(shí)別。
2)如果用戶的靜態(tài)口令的哈希值泄露,本地服務(wù)器對(duì)該用戶進(jìn)行重新注冊(cè),用戶輸入新的靜態(tài)口令進(jìn)行哈希運(yùn)算并保存到本地認(rèn)證服務(wù)器的數(shù)據(jù)庫(kù)內(nèi)。
4.1.5 公開(kāi)信息一致性
在注冊(cè)階段,客戶端將用戶生物特征對(duì)應(yīng)的公開(kāi)信息值發(fā)送到區(qū)塊鏈服務(wù)節(jié)點(diǎn)組裝交易,由區(qū)塊鏈網(wǎng)絡(luò)的共識(shí)節(jié)點(diǎn)通過(guò)共識(shí)算法將交易數(shù)據(jù)記錄在區(qū)塊鏈分布式賬本中。由于共識(shí)算法實(shí)現(xiàn)了全網(wǎng)的區(qū)塊鏈節(jié)點(diǎn)對(duì)賬本的共識(shí),因此保證了記錄在區(qū)塊鏈賬本中的數(shù)據(jù)的一致性。另外,區(qū)塊鏈具有分布式存儲(chǔ)的高冗余特性,任何一個(gè)節(jié)點(diǎn)的任意一個(gè)數(shù)據(jù)被篡改將在下一次共識(shí)的時(shí)候被檢測(cè)到。所以公開(kāi)信息一旦記錄在區(qū)塊鏈上,用戶在進(jìn)行認(rèn)證時(shí)使用的其本人對(duì)應(yīng)的公開(kāi)信息與注冊(cè)時(shí)提取的公開(kāi)信息是一致的。
本節(jié)對(duì)方案的計(jì)算開(kāi)銷(xiāo)進(jìn)行分析,并與同類(lèi)型的基于生物特征與口令的身份認(rèn)證方案如文獻(xiàn)[4-5]方案作比較,計(jì)算開(kāi)銷(xiāo)對(duì)比如表2所示。
表2 不同方案計(jì)算開(kāi)銷(xiāo)對(duì)比Tab.2 Comparison of computation overhead for different schemes
本文方案與文獻(xiàn)[4]方案比較,使用模糊提取操作次數(shù)相同,比文獻(xiàn)[4]方案少1次指數(shù)運(yùn)算,少2次哈希運(yùn)算,多1次對(duì)稱加密與解密運(yùn)算,多2次簽名驗(yàn)證操作。本文方案與文獻(xiàn)[4]方案整體上除了最后一項(xiàng)指標(biāo)外,前四項(xiàng)指標(biāo)的計(jì)算開(kāi)銷(xiāo)基本相同。但是文獻(xiàn)[4]方案提到使用模糊提取器不能抵抗主動(dòng)攻擊,所以本文方案使用區(qū)塊鏈技術(shù)存儲(chǔ)公開(kāi)信息值,在用戶注冊(cè)與認(rèn)證階段使用了注冊(cè)與查詢操作生成2個(gè)交易,并附上2個(gè)簽名,因此本文方案多使用2個(gè)簽名的計(jì)算開(kāi)銷(xiāo)解決文獻(xiàn)[4]方案模糊提取器易受主動(dòng)攻擊的威脅。
本文方案與文獻(xiàn)[5]方案比較,使用模糊提取操作的次數(shù)相同,比文獻(xiàn)[5]方案多2次指數(shù)運(yùn)算,少10次哈希運(yùn)算,多1次對(duì)稱加密與解密運(yùn)算,多2次簽名驗(yàn)證操作。本文方案與文獻(xiàn)[5]方案相比計(jì)算開(kāi)銷(xiāo)較高,原因是本方案客戶端與服務(wù)器使用指數(shù)運(yùn)算將靜態(tài)口令協(xié)商并轉(zhuǎn)化為動(dòng)態(tài)口令,將隨機(jī)密鑰通過(guò)對(duì)稱加密在網(wǎng)絡(luò)中傳輸,代替文獻(xiàn)[5]方案中使用智能卡存儲(chǔ)大多數(shù)據(jù)的哈希值參與生物特征和動(dòng)態(tài)口令的雙因子認(rèn)證。文獻(xiàn)[5]方案的認(rèn)證方案完全依賴智能卡存儲(chǔ)相關(guān)數(shù)據(jù),任何過(guò)程中智能卡丟失將造成整個(gè)方案失敗。本文方案雖然增加了系統(tǒng)計(jì)算開(kāi)銷(xiāo),在保證安全的基礎(chǔ)上為用戶提供了便捷的服務(wù),避免智能卡丟失造成的安全威脅。
1)雙因子的雙向認(rèn)證。
在本地認(rèn)證、本地跨域認(rèn)證、本地異地認(rèn)證三個(gè)場(chǎng)景中,在客戶端上使用模糊提取技術(shù)的隨機(jī)字符生成與恢復(fù)算法,注冊(cè)階段與認(rèn)證階段分別進(jìn)行隨機(jī)字符的提取與恢復(fù),隨機(jī)字符作為生物特征因子參與生物識(shí)別。方案將認(rèn)證服務(wù)器上在注冊(cè)階段保存的靜態(tài)口令的哈希值與客戶端上用戶認(rèn)證時(shí)輸入的靜態(tài)口令的哈希值轉(zhuǎn)化為動(dòng)態(tài)口令,作為口令因子和對(duì)稱密鑰,對(duì)隨機(jī)字符加密,通過(guò)對(duì)稱加解密和生物因子識(shí)別認(rèn)證,實(shí)現(xiàn)客戶端與認(rèn)證服務(wù)器的雙向認(rèn)證。
2)保護(hù)生物特征不易失效。
生物特征具有唯一性和穩(wěn)定性,假如生物特征或生物特征模板丟失會(huì)導(dǎo)致用戶特定的生物特征永久的不可使用。比如一個(gè)用戶的一個(gè)指紋特征或模板泄露,將導(dǎo)致使用該指紋存在永久性的不安全,攻擊者可以根據(jù)泄露的生物特征對(duì)用戶的活動(dòng)進(jìn)行追蹤,還可能偽裝成用戶進(jìn)行重放攻擊。本方案將生物特征模糊提取得到的隨機(jī)密鑰作為生物因子,而不直接使用生物特征或生物模板作為生物因子在系統(tǒng)內(nèi)傳輸和認(rèn)證,對(duì)生物特征及模板起到了良好的保護(hù)作用,避免用戶生物特征泄露造成的永久無(wú)法使用。如果隨機(jī)密鑰出現(xiàn)泄露,添加密碼算法對(duì)隨機(jī)密鑰進(jìn)行保護(hù),或使用新的模糊提取算法提取新的隨機(jī)密鑰,不會(huì)造成生物特征泄露造成的永久不可用問(wèn)題。
3)用戶無(wú)需使用智能卡在多域間任意客戶端登錄。
利用區(qū)塊鏈技術(shù)的分布式賬本功能,每個(gè)域的區(qū)塊鏈節(jié)點(diǎn)都存儲(chǔ)了經(jīng)模糊提取技術(shù)密鑰生成階段產(chǎn)生的生物特征公開(kāi)信息值。BPICP網(wǎng)絡(luò)中的服務(wù)節(jié)點(diǎn)可以為客戶端提供查詢服務(wù),客戶端上連接有生物特征采集器。用戶可以在任何客戶端查詢區(qū)塊鏈分布式賬本,也可以在任何連接有生物特征采集器的客戶端作生物特征的模糊提取。方案不需要用戶簽名所以不需要將私鑰提前保存到特定的客戶端中,也不需要使用智能卡存儲(chǔ)私鑰和公開(kāi)信息值,因而用戶可以在多域間任意客戶端上進(jìn)行登錄。
4)生物特征公開(kāi)信息的全生命周期記錄。
基于區(qū)塊鏈不可篡改與分布式存儲(chǔ)的特點(diǎn),建立生物公開(kāi)信息聯(lián)盟鏈,對(duì)生物特征模糊提取得到的公開(kāi)信息值進(jìn)行全生命周期的記錄。通過(guò)記錄用戶生物公開(kāi)信息及其相關(guān)操作,實(shí)現(xiàn)了對(duì)公開(kāi)信息的全周期與全面的記錄。通過(guò)記錄生物公開(kāi)信息的區(qū)塊鏈賬本,實(shí)現(xiàn)對(duì)用戶及客戶端的監(jiān)控與審計(jì)。
針對(duì)傳統(tǒng)的跨域認(rèn)證方式較少、方案復(fù)雜,以及生物特征認(rèn)證采用的模糊提取技術(shù)中公開(kāi)信息值易遭受篡改等問(wèn)題,本文提出了基于區(qū)塊鏈技術(shù)的生物特征和口令雙因子跨域認(rèn)證方案。該方案將模糊提取技術(shù)產(chǎn)生的生物特征公開(kāi)信息值保存在不易篡改且去中心化的區(qū)塊鏈賬本中,并分別設(shè)計(jì)了用戶本地認(rèn)證、本地跨域認(rèn)證、異地跨域認(rèn)證協(xié)議,在保證安全的基礎(chǔ)上,實(shí)現(xiàn)了多域間的互聯(lián)互通,避免了傳統(tǒng)模糊提取技術(shù)易遭受主動(dòng)攻擊的威脅,解決了用戶攜帶智能卡存在的易丟失和易受攻擊的便攜性與安全性問(wèn)題。下一步將采用形式化的方法對(duì)本文方案進(jìn)行邏輯驗(yàn)證,并改進(jìn)區(qū)塊鏈共識(shí)算法,提升區(qū)塊鏈網(wǎng)絡(luò)對(duì)數(shù)據(jù)達(dá)成共識(shí)的效率。