王苗苗,芮蘭蘭,徐思雅
(北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,北京 100876)
隨著中華民族的不斷發(fā)展,中國文化越來越豐富多彩,文化資源數(shù)據(jù)日益龐大。根據(jù)現(xiàn)行的團(tuán)體標(biāo)準(zhǔn)[1],文化資源數(shù)據(jù)是指對(duì)人類文化中傳承下來并可以傳播利用的文化進(jìn)行數(shù)字化采集后,所得到的用于識(shí)別和展現(xiàn)文化的圖像、文字、聲音、動(dòng)畫、影片、三維全景、三維模型等數(shù)據(jù)。為保障共享文化資源的安全性,接入方的可信身份認(rèn)證成為首要解決的問題。
計(jì)算機(jī)技術(shù)的發(fā)展日新月異,市場主體變得多元化,越來越多的市場主體構(gòu)建了系統(tǒng),其認(rèn)證方式多種多樣,有基于密碼的認(rèn)證、基于個(gè)人身份識(shí)別碼(PIN,personal identification number)的認(rèn)證、基于證書的認(rèn)證等。這些認(rèn)證信息均存儲(chǔ)在各系統(tǒng)的服務(wù)器中,構(gòu)成了認(rèn)證信息孤島,無法有效進(jìn)行統(tǒng)一接入認(rèn)證和信息流通[2]。在弱信任環(huán)境下,多元市場主體存量系統(tǒng)接入文化資源數(shù)據(jù)共享體系成本高,不同市場主體的安全等級(jí)不同,主體用戶可信度差異大,文化資源數(shù)據(jù)共享體系難以對(duì)不同市場主體不同用戶的身份進(jìn)行安全可信管理,現(xiàn)有的身份認(rèn)證方案無法基于異構(gòu)身份進(jìn)行統(tǒng)一身份認(rèn)證。另外,對(duì)于新接入文化資源數(shù)據(jù)共享體系的用戶,缺乏能夠兼容存量系統(tǒng)用戶身份的統(tǒng)一身份認(rèn)證算法。
傳統(tǒng)的單因子認(rèn)證存在較高風(fēng)險(xiǎn),惡意節(jié)點(diǎn)可以通過離線字典攻擊獲取用戶密碼等,容易造成數(shù)據(jù)泄露和身份冒充[3]。近年來,為了加強(qiáng)認(rèn)證的安全性,有些系統(tǒng)采用了雙因子認(rèn)證方案,例如,銀行柜員登錄柜面系統(tǒng)時(shí)需要輸入密碼和指紋進(jìn)行雙重驗(yàn)證以確保銀行資產(chǎn)的安全性。在歐盟,一些國家的數(shù)據(jù)保護(hù)部門已經(jīng)建議使用多因子身份認(rèn)證,作為遵守歐盟數(shù)據(jù)保護(hù)指令中“采取適當(dāng)?shù)募夹g(shù)和組織措施來保護(hù)個(gè)人數(shù)據(jù)”義務(wù)的一種手段[4]。身份認(rèn)證因子可以分為三類:基于記憶的,如口令、安全問題等;基于持有物的,如數(shù)字證書、U 盾等;基于生物特征的,如指紋、聲紋等。攻擊者很難破壞所有認(rèn)證因素,聚合多種認(rèn)證因子驗(yàn)證接入者的身份,能夠大幅提高身份認(rèn)證的安全性和可靠性。身份認(rèn)證方案的演變?nèi)鐖D1 所示。
圖1 身份認(rèn)證方案的演變
目前,有些學(xué)者研究了基于多因子的身份認(rèn)證方案。文獻(xiàn)[5]研究了基于屬性的多授權(quán)中心身份認(rèn)證方案,采用基于屬性的加密算法可以抵抗t-1個(gè)授權(quán)中心的合謀攻擊,但該方案采用昂貴的雙線性配對(duì)運(yùn)算進(jìn)行身份認(rèn)證,降低了認(rèn)證效率。文獻(xiàn)[6]提出了一種用于車聯(lián)網(wǎng)的輕量級(jí)多因子身份認(rèn)證方案,采用物理不可克隆函數(shù)和一次性動(dòng)態(tài)偽身份的組合作為身份驗(yàn)證因素實(shí)現(xiàn)身份認(rèn)證,但該方案需采用防篡改設(shè)備,增加了認(rèn)證成本。文獻(xiàn)[7]提出了一種基于多因子認(rèn)證的數(shù)據(jù)備份方案,通過組合存儲(chǔ)在用戶智能卡和筆記本電腦中的分段密鑰重建密鑰進(jìn)行身份認(rèn)證,也能通過密碼和生物識(shí)別技術(shù)找回密鑰,但該認(rèn)證方案需要2 種額外的設(shè)備配合,成本較高。文獻(xiàn)[8]設(shè)計(jì)了基于混沌映射的多因子認(rèn)證密鑰協(xié)商協(xié)議,通過擴(kuò)展混沌映射算法和動(dòng)態(tài)身份實(shí)現(xiàn)用戶認(rèn)證的匿名性,但該方案采用額外的移動(dòng)存儲(chǔ)設(shè)備,并且僅能通過密碼和生物特征進(jìn)行認(rèn)證,成本較高且靈活性差?;诙嘁蜃拥纳矸菡J(rèn)證方案的研究對(duì)于提高接入者身份的安全性具有重要意義。然而,上述多因子認(rèn)證方案均依賴可信第三方或智能設(shè)備等,存在數(shù)據(jù)集中泄露或智能設(shè)備被盜導(dǎo)致身份冒用的風(fēng)險(xiǎn)。并且,對(duì)于文化資源可信交互場景,如何復(fù)用存量系統(tǒng)的多因子認(rèn)證信息進(jìn)行統(tǒng)一接入認(rèn)證還缺少具體方案。
區(qū)塊鏈?zhǔn)且环N分布式賬本技術(shù),具有去中心化、數(shù)據(jù)防篡改和交易可追溯等特點(diǎn),適合解決信任問題[9]。采用分布式賬本存儲(chǔ)加密身份因子信息能夠避免數(shù)據(jù)集中泄露和智能設(shè)備身份冒用的風(fēng)險(xiǎn),同時(shí),能降低采用智能設(shè)備產(chǎn)生的額外成本??紤]到不同存量系統(tǒng)的認(rèn)證方式不同和單因子認(rèn)證安全性差的問題,本文設(shè)計(jì)了基于區(qū)塊鏈的多因子身份認(rèn)證方案,利用分布式賬本的分布性和不可篡改性存儲(chǔ)多因子身份信息,解決存量系統(tǒng)多因子身份數(shù)據(jù)孤島問題,保證身份信息的分布式可用性,結(jié)合輕量級(jí)的異或運(yùn)算和非對(duì)稱加密算法,聚合多因子身份信息認(rèn)證文化資源系統(tǒng)接入方的身份,能夠提升文化資源可信共享的安全性和效率。
本文主要的貢獻(xiàn)如下。
1) 提出基于區(qū)塊鏈的多因子認(rèn)證架構(gòu),該架構(gòu)能夠兼容存量系統(tǒng)的多因子認(rèn)證信息,降低存量系統(tǒng)的接入成本。分布式賬本的不可篡改性和分布性能夠保障多因子身份信息的真實(shí)性和可用性,為文化資源可信共享提供異構(gòu)數(shù)字身份認(rèn)證基礎(chǔ)。
2) 設(shè)計(jì)輕量級(jí)的多因子身份認(rèn)證方案,利用非對(duì)稱加密算法和異或運(yùn)算聚合多因子身份信息實(shí)現(xiàn)快速的身份認(rèn)證,不局限于某一個(gè)或幾個(gè)特定的身份因子,提高了身份認(rèn)證的靈活性、安全性和效率。
3) 對(duì)所提方案進(jìn)行BAN 邏輯安全分析和仿真實(shí)驗(yàn),結(jié)果表明該方案具有良好的安全性和較高的認(rèn)證效率。
2008 年,Nakamoto[10]提出了點(diǎn)到點(diǎn)(P2P,peer-to-peer)網(wǎng)絡(luò)解決方案,即區(qū)塊鏈技術(shù)。區(qū)塊鏈?zhǔn)且环N分布式賬本技術(shù),用于轉(zhuǎn)移所有權(quán)、保存交易記錄、跟蹤資產(chǎn)等,通過共識(shí)算法確保各類交易的透明度、信任度和安全性[11]。智能合約是一種執(zhí)行合約條款的計(jì)算機(jī)交易協(xié)議,它是區(qū)塊鏈2.0的代表性技術(shù),允許無第三方的可信交易,交易可追溯且不可逆。區(qū)塊鏈分為公有鏈、私有鏈和聯(lián)盟鏈,公有鏈?zhǔn)侵溉魏蝹€(gè)人或組織都能發(fā)送交易或參與交易共識(shí)的區(qū)塊鏈;私有鏈?zhǔn)侵钙鋵懭霗?quán)利由個(gè)人或組織獨(dú)享的區(qū)塊鏈,具有更快的交易速度和更高的隱私性;聯(lián)盟鏈?zhǔn)墙橛诠墟満退接墟溨g的一種區(qū)塊鏈,針對(duì)某些特定成員,區(qū)塊的生成由預(yù)選節(jié)點(diǎn)共同決定。
區(qū)塊鏈已廣泛用于眾多領(lǐng)域,可提供更高的安全保障[12]。
2004 年,Dodis、Reyzin 和Smith[13]首次提出了模糊提取器(FE,fuzzy extractor),用于提取隨機(jī)源中均勻分布的隨機(jī)字符串。模糊提取器能夠?qū)⒂性肼暤碾S機(jī)源轉(zhuǎn)化成均勻隨機(jī)的字符串,并且精確再生,這使其可以應(yīng)用于人類生物特征提取中。人類的生物特征包括指紋、聲紋、虹膜、人臉等,每次讀取的生物特征會(huì)有一些偏差,通過模糊提取器還原生物特征,能夠?qū)⑸锾卣饔糜谏矸菡J(rèn)證。
模糊提取器包括生成算法Gen 和再生算法Rep,可表示為FE=(Gen,Rep),如圖2 所示。Gen輸入生物特征的一次采樣字符串w,輸出一個(gè)字符串R和一個(gè)幫助字符串P。Rep 輸入生物特征的另一次采樣字符串w' 和Gen 的幫助字符串P,輸出一個(gè)字符串R' 。FE 的正確性要求是如果兩次采樣w和w'的距離足夠近,那么R=R',安全性要求是如果生物特征有足夠多的熵,那么R是均勻隨機(jī)的。
圖2 模糊提取器
當(dāng)用戶需要訪問文化資源服務(wù)時(shí),必須先進(jìn)行身份認(rèn)證?;趨^(qū)塊鏈的多因子身份認(rèn)證架構(gòu)如圖3所示,主要由四部分組成,分別為注冊(cè)中心(RA,registration authority)服務(wù)器、區(qū)塊鏈、存量系統(tǒng)和用戶。
圖3 基于區(qū)塊鏈的多因子身份認(rèn)證架構(gòu)
1) RA 服務(wù)器。RA 服務(wù)器作為認(rèn)證系統(tǒng)的核心角色,是完全可信的,負(fù)責(zé)系統(tǒng)初始化、用戶身份注冊(cè)、用戶身份認(rèn)證等功能。RA 服務(wù)器僅負(fù)責(zé)身份認(rèn)證相關(guān)的計(jì)算工作,不存儲(chǔ)用戶的密鑰和身份信息。
2) 區(qū)塊鏈。該方案采用聯(lián)盟區(qū)塊鏈,由文化資源數(shù)據(jù)中心、監(jiān)管機(jī)構(gòu)等權(quán)威機(jī)構(gòu)節(jié)點(diǎn)維護(hù)。分布式賬本用來存儲(chǔ)系統(tǒng)參數(shù)、用戶分布式身份標(biāo)識(shí)(DID,distributed identifier)、用戶公鑰和用戶多因子身份信息的哈希值等,這些信息不會(huì)暴露用戶的隱私。分布式賬本的不可篡改性能夠保證身份信息的真實(shí)性,其分布性也提高了身份信息的可用性。
3) 存量系統(tǒng)。存量系統(tǒng)是指多元市場主體已構(gòu)建的系統(tǒng),它們擁有自己的用戶,在認(rèn)證系統(tǒng)初始化時(shí)可以將存量系統(tǒng)中的用戶身份信息導(dǎo)入分布式賬本,以方便存量系統(tǒng)用戶訪問文化資源服務(wù)。
4) 用戶。用戶是指需要訪問文化資源服務(wù)的實(shí)體,分為存量系統(tǒng)用戶和普通用戶。經(jīng)過系統(tǒng)初始化后,存量系統(tǒng)用戶可以直接使用原有的身份信息進(jìn)行身份認(rèn)證,普通用戶在身份認(rèn)證前需要先進(jìn)行身份注冊(cè)。用戶客戶端程序具有身份注冊(cè)和生成可驗(yàn)證憑證(VP,verifiable presentation)功能。注冊(cè)身份信息并通過身份認(rèn)證的用戶才能訪問文化資源服務(wù)。
多因子身份數(shù)據(jù)模型是實(shí)現(xiàn)多因子身份認(rèn)證的基礎(chǔ),利用身份管理智能合約在鏈上聚合異構(gòu)數(shù)字身份,構(gòu)建具有兼容性的身份統(tǒng)一管理模型,能夠降低認(rèn)證系統(tǒng)改造遷移的建設(shè)成本[14]。身份數(shù)據(jù)模型如圖4 所示,其中,DID 是用戶信息的身份標(biāo)識(shí),由標(biāo)識(shí)(如“did”)、組織(如“bupt”)、標(biāo)識(shí)字符串(如“2020010123”)組成,該身份標(biāo)識(shí)具有全球唯一性。公鑰為用戶的公鑰信息,身份信息表示用戶的多種身份因子,如口令、指紋、證書等。為兼容存量系統(tǒng)的多種身份因子信息,并確保身份因子的機(jī)密性,以JSON(JavaScript object notation)格式存儲(chǔ)身份因子的類型及其哈希值。身份數(shù)據(jù)模型以DID 為賬本ID,公鑰和身份信息為賬本值,通過智能合約發(fā)布到分布式賬本中。
圖4 身份數(shù)據(jù)模型
考慮到所提方案的安全性,本文使用了著名的Dolev Yao 對(duì)手模型[15],威脅模型描述如下,本文將在第4 節(jié)對(duì)其進(jìn)行分析。
1) 對(duì)手可以在網(wǎng)絡(luò)中重復(fù)傳輸與身份驗(yàn)證相關(guān)的數(shù)據(jù)。
2) 對(duì)手可以竊取與身份驗(yàn)證相關(guān)的數(shù)據(jù)。
3) 對(duì)手可以篡改與身份驗(yàn)證相關(guān)的數(shù)據(jù)。
面向文化資源可信共享需求,身份認(rèn)證方案應(yīng)該滿足以下設(shè)計(jì)目標(biāo)。
1) 身份認(rèn)證方案應(yīng)兼容存量系統(tǒng),復(fù)用已有的身份因子信息,降低存量系統(tǒng)用戶接入成本。
2) 身份認(rèn)證方案應(yīng)實(shí)現(xiàn)多因子認(rèn)證,避免單因子認(rèn)證造成的數(shù)據(jù)泄露和身份冒用,提高身份認(rèn)證的安全性。
3) 身份認(rèn)證方案應(yīng)具備靈活性,不局限于某一個(gè)或幾個(gè)特定的身份認(rèn)證因子。
4) 身份認(rèn)證方案應(yīng)能夠抵御常見的攻擊,具備較高的安全性。
5) 身份認(rèn)證方案應(yīng)具備高效性,通過輕量級(jí)的計(jì)算開銷和通信開銷提高身份認(rèn)證效率。
多因子身份認(rèn)證方案共分為5 個(gè)階段,分別為系統(tǒng)初始化、身份注冊(cè)、身份認(rèn)證、身份因子更新、身份因子撤銷,方案涉及的符號(hào)如表1 所示。
表1 方案涉及的符號(hào)
在身份注冊(cè)和身份認(rèn)證之前需要先進(jìn)行系統(tǒng)初始化,初始化工作由RA 服務(wù)器負(fù)責(zé)。方案中的加解密操作采用RSA 算法,首先,RA 服務(wù)器任意選擇2 個(gè)不同的大素?cái)?shù)p和q,計(jì)算得到n=pq,φ(n)=(p-1)(q-1),選擇一個(gè)大整數(shù)e滿足gcd(e,φ(n))=1。然后,計(jì)算解密密鑰d,滿足demodφ(n)=1,確定 RA 服務(wù)器的私鑰為SKRA={n,d},公鑰為PKRA={n,e}。接下來,選擇安全的哈希函數(shù)H0:{0,1}*。最后,將公開初始化參數(shù) Params={{n,e},H0}發(fā)布到分布式賬本,SKRA由RA 服務(wù)器保存在本地,模糊提取器由RA服務(wù)器參照文獻(xiàn)[16]實(shí)現(xiàn)。
系統(tǒng)參數(shù)初始化之后還需要將存量系統(tǒng)中的身份認(rèn)證信息同步到分布式賬本,以復(fù)用存量多因子認(rèn)證信息。多因子身份認(rèn)證平臺(tái)僅對(duì)存量系統(tǒng)做出整體要求,存量系統(tǒng)中用戶的選擇由存量系統(tǒng)決定,可以是申請(qǐng)?jiān)L問文化資源平臺(tái)的用戶,也可以是信譽(yù)值高且申請(qǐng)?jiān)L問文化資源平臺(tái)的用戶。根據(jù)存量系統(tǒng)的安全等級(jí)的不同,多因子身份認(rèn)證平臺(tái)要求其同步不同種類和數(shù)量的身份因子信息,例如,在初始化時(shí),安全等級(jí)高的存量系統(tǒng)僅需同步用戶的一種基于記憶的身份因子和一種基于生物特征的身份因子到分布式賬本中,而安全等級(jí)低的存量系統(tǒng)同步用戶的一種基于記憶的身份因子、一種基于生物特征的身份因子和一種基于持有物的身份因子到分布式賬本中。存量系統(tǒng)首先構(gòu)建用戶DID,并將數(shù)據(jù)庫中用戶的身份信息和公鑰以文件的形式安全地發(fā)送給RA 服務(wù)器。RA 服務(wù)器收到用戶批量身份數(shù)據(jù)信息后,首先,將生物特征信息采用模糊提取器提取生物特征,保存用戶DID 和幫助字符串P的關(guān)聯(lián)信息,并對(duì)全部身份信息進(jìn)行哈希運(yùn)算,構(gòu)建身份數(shù)據(jù)模型;最后,將其發(fā)布到分布式賬本,完成存量系統(tǒng)用戶身份信息的初始化。
對(duì)于一般用戶來說,身份認(rèn)證之前需要進(jìn)行身份注冊(cè),注冊(cè)算法如下。
1) 用戶構(gòu)建DID,并在本地生成公私鑰對(duì)PKU和SKU,查詢RA 服務(wù)器公鑰,使用其對(duì)自己的公鑰進(jìn)行簽名得到σk=sign(PKU,PKRA),接著,向RA服務(wù)器發(fā)送身份注冊(cè)請(qǐng)求register: {DID,σk,info}。
2) RA 服務(wù)器收到注冊(cè)請(qǐng)求后,首先查詢分布式賬本以確保該DID 未進(jìn)行身份注冊(cè),并使用自己的私鑰解密得到用戶公鑰 PKU=verify(σk,SKRA);隨后,生成隨機(jī)數(shù)N,使用用戶公鑰簽名隨機(jī)數(shù)得到σN=sign(N,PKU),根據(jù)DID 的組織類型判斷其需要錄入的身份因素種類和最小數(shù)量,然后將σN和多因子身份認(rèn)證需求返回給用戶。
3) 用戶使用自己的私鑰驗(yàn)證收到的σN得到N=verify(σN,SKU),并使用自己的私鑰對(duì)N進(jìn)行簽名得到σN=sign(N,SKU),獲取當(dāng)前的時(shí)間戳TS,使用自己的私鑰對(duì)時(shí)間戳簽名得到σT=sign(TS,SKU)。然后,根據(jù)需求錄入多個(gè)身份認(rèn)證因子 {f1,f2,…},使用私鑰對(duì)多個(gè)身份因子簽名得到σ1=sign(f1,SKU),σ2=sign(f2,SKU)。最后,將多個(gè)簽名值 {DID,σN,σT,σ1,σ2,…} 發(fā)送給RA 服務(wù)器。
4) RA 服務(wù)器收到簽名后使用用戶的公鑰分別對(duì)其進(jìn)行驗(yàn)證得到N'、TS'、f1、f2。首先,比較N'與之前自己生成的N是否相等,若相等,則獲取當(dāng)前的時(shí)間戳TS,計(jì)算并判斷TS-TS'≤ΔT是否成立,若成立,則說明該身份信息在有效時(shí)間內(nèi)。然后,查驗(yàn)身份信息是否滿足要求。若滿足要求,則通過模糊提取器對(duì)用戶的生物信息進(jìn)行特征提取作為該身份因子的特征,并保存用戶DID 與幫助字符串P的關(guān)聯(lián)信息,計(jì)算全部身份因子的哈希值,將 {DID,PKU,H0(f1),H0(f2),…} 發(fā)布到分布式賬本中,將結(jié)果返回給用戶。
用戶訪問文化資源服務(wù)時(shí)需要先通過身份認(rèn)證。身份認(rèn)證流程如圖5 所示,算法如下。
1) 用戶首先向RA 服務(wù)器發(fā)送自己的DIDU并請(qǐng)求身份認(rèn)證。
2) RA 服務(wù)器驗(yàn)證用戶DIDU存在后從分布式賬本查詢用戶的公鑰、身份信息和哈希函數(shù)H0,根據(jù)DIDU的組織類型確定其需要認(rèn)證的身份因子種類和數(shù)量,并生成隨機(jī)混淆值S,使用自己的私鑰對(duì)其簽名,再使用用戶公鑰對(duì)簽名值加密得到σS=sign(sign(S,SKRA),PKU),并將身份認(rèn)證因子要求和σS返回給用戶。
3) 用戶收到上述參數(shù)后,首先從分布式賬本查詢RA 服務(wù)器的公鑰和哈希函數(shù)H0,先使用自己的私鑰解密σS,再使用RA 服務(wù)器的公鑰對(duì)其驗(yàn)證,得到混淆值S=verify(verify(σS,SKU),PKRA)。然后,獲取當(dāng)前時(shí)間戳TS,并計(jì)算時(shí)間戳簽名σT=sign(TS,SKU)。接著,錄入身份信息,如f1、f2,計(jì)算 VP={DIDU,f=(f1||f2) ⊕H0(S),σT}。最后,將VP 發(fā)送給RA 服務(wù)器進(jìn)行身份認(rèn)證。
4) RA 服務(wù)器收到VP 后,首先使用用戶的公鑰驗(yàn)證時(shí)間戳簽名得到TS'=verify(σT,PKU),并獲取當(dāng)前時(shí)間戳TS,判斷TS-TS'≤ΔT,若成立,則說明認(rèn)證信息在有效時(shí)間內(nèi)。然后,通過異或運(yùn)算得到身份信息 (f1||f2)=f⊕H0(S),若f1、f2中存在生物信息,則RA 服務(wù)器從本地?cái)?shù)據(jù)庫中查詢其幫助字符串PU,通過模糊提取器的再生算法和PU重新生成生物特征,并計(jì)算H0(f1)、H0(f2),與查詢到的分布式賬本中身份信息哈希值進(jìn)行比較,若相等且符合認(rèn)證因子要求,則身份認(rèn)證通過,允許用戶訪問文化資源服務(wù)。
在身份認(rèn)證過程中,RA 服務(wù)器根據(jù)用戶DID 的組織類型給出用戶需要驗(yàn)證的身份因子種類和數(shù)量,而不限定于某幾個(gè)特定的身份因子,例如,一種基于記憶的身份因子和2 種基于生物特征的身份因子。用戶可以選擇密碼或安全問題等基于記憶的身份因子,再選擇錄入2 個(gè)基于生物特征的身份信息,如指紋、人臉、虹膜等。這種認(rèn)證方式相較于基于智能卡等特定身份因子認(rèn)證具有一定的靈活性。
用戶的某個(gè)身份因子泄露后可以對(duì)其進(jìn)行更新,以用戶更新身份因子f1為例,更新算法如下。
1) 用戶首先錄入已有的身份因子f1和更新后的身份因子f1'。然后,使用RA 服務(wù)器的公鑰對(duì)2 個(gè)身份因子加密,再使用自己的私鑰對(duì)其簽名得到σf=sign(sign(f1||f1',PKRA),SKU)。接著,獲取當(dāng)前的時(shí)間戳TS,并計(jì)算σT=sign(TS,SKU)。最后,向RA 服務(wù)器發(fā)送身份因子更新請(qǐng)求 update:{DIDU,σf,σT}。
2) RA 服務(wù)器收到請(qǐng)求后,首先驗(yàn)證DIDU存在并獲取其公鑰。然后,獲取當(dāng)前時(shí)間戳TS,并使用其公鑰和自己的私鑰對(duì)收到的簽名進(jìn)行驗(yàn)證,得到 (f1||f1')=verify(verify(σf,PKU),SKRA),使用用戶的公鑰驗(yàn)證簽名得到TS'=verify(σT,PKU)。判斷TS-TS'≤ΔT是否成立,若成立,則說明更新請(qǐng)求在有效時(shí)間內(nèi)。若f1中為生物信息,則RA 服務(wù)器從本地?cái)?shù)據(jù)庫中查詢其幫助字符串PU1,通過模糊提取器的再生算法和PU1重新生成生物特征,并計(jì)算H0(f1),將其與分布式賬本中的H0(f1)進(jìn)行比較,若相等,則將分布式賬本中H0(f1)的信息更新為H0(),并將更新結(jié)果返回給用戶。
用戶決定不再使用某個(gè)身份因子后可以對(duì)其進(jìn)行撤銷,以用戶撤銷身份因子f1為例,撤銷算法如下。
1) 用戶首先錄入身份因子f1。然后,使用RA服務(wù)器的公鑰對(duì)身份因子加密,使用自己的私鑰對(duì)其簽名得到σf=sign(sign(f1,PKRA),SKU)。接著,獲取當(dāng)前的時(shí)間戳TS,并計(jì)算σT=sign(TS,SKU)。最后,向RA 服務(wù)器發(fā)送身份因子撤銷請(qǐng)求revoke:{DIDU,σf,σT}。
2) RA 服務(wù)器收到請(qǐng)求后,首先驗(yàn)證DIDU存在并獲取其公鑰。接著,獲取當(dāng)前時(shí)間戳TS,使用其公鑰和自己的私鑰對(duì)收到的簽名進(jìn)行驗(yàn)證,得到f1=verify(verify(σf,PKU),SKRA),使用用戶的公鑰驗(yàn)證簽名得到TS'=verify(σT,PKU)。計(jì)算并判斷TS-TS'≤ΔT是否成立,若成立,則說明撤銷請(qǐng)求在有效時(shí)間內(nèi)。若f1為生物信息,則RA 服務(wù)器從本地?cái)?shù)據(jù)庫中查詢其幫助字符串PU1,通過模糊提取器的再生算法和PU1重新生成生物特征f1,計(jì)算H0(f1),將其與分布式賬本中的H0(f1)進(jìn)行比較,若相等,則將撤銷分布式賬本中H0(f1)的信息,并將撤銷結(jié)果返回給用戶。
BAN 邏輯是Burrows、Abadi 和Needham[17]在1989 年提出的一種基于信念的模態(tài)邏輯,通常用于分析協(xié)議是否能夠達(dá)到預(yù)期目標(biāo)。BAN 邏輯中使用的符號(hào)如表2 所示,邏輯規(guī)則如表3 所示。以用戶U需要驗(yàn)證身份信息f1、f2為例,本節(jié)使用BAN邏輯對(duì)所提身份認(rèn)證方案進(jìn)行安全分析。
表3 BAN 邏輯規(guī)則
表4 方案計(jì)算開銷
1) 安全目標(biāo)。所提身份認(rèn)證方案能夠認(rèn)證身份信息f1、f2是用戶的有效身份信息,因此,安全目標(biāo)為
2) 理想化。所提身份認(rèn)證方案主要包括用戶和RA 服務(wù)器進(jìn)行信息交互、用戶和RA 服務(wù)器分別向分布式賬本查詢信息。消息的理想化為
3) 假設(shè)。用戶和RA 服務(wù)器分別擁有自己的私鑰,且無法被他人獲取。鑒于分布式賬本的不可篡改性,本文認(rèn)為用戶和RA 服務(wù)器從分布式賬本中查詢到的信息都是可靠的,即根據(jù)消息I2 和I4,有假設(shè)A3、A4、A13 和A14。根據(jù)所提身份認(rèn)證方案做出如下假設(shè)。
4) 分析?;谏鲜隼硐牖图僭O(shè),對(duì)所提身份認(rèn)證方案分析如下。
從假設(shè)A5、A6、A7,可以得到消息I3。
從推演D9 可以看出,安全目標(biāo)已經(jīng)實(shí)現(xiàn),完成了RA 服務(wù)器對(duì)用戶U的多因子身份驗(yàn)證。
本節(jié)從重放攻擊、竊聽攻擊、偽裝攻擊和分布式拒絕服務(wù)(DDoS,distributed denial of service)攻擊4 個(gè)方面對(duì)第2 節(jié)提出的威脅模型進(jìn)行非正式的安全分析。
1) 重放攻擊。重放攻擊是指對(duì)手向目的方發(fā)送重復(fù)包以欺騙系統(tǒng)。這是第一個(gè)威脅模型假設(shè),對(duì)手向RA 服務(wù)器發(fā)送重復(fù)的VP,意圖通過該VP 進(jìn)行身份認(rèn)證以非法訪問文化資源服務(wù)。在本文認(rèn)證方案中,用戶生成VP 時(shí),首先獲取當(dāng)前時(shí)間戳,并使用自己的私鑰對(duì)其簽名。RA 服務(wù)器收到VP后,先驗(yàn)證用戶的簽名,并將收到的時(shí)間戳與當(dāng)前的時(shí)間戳進(jìn)行對(duì)比,若發(fā)現(xiàn)其無法通過驗(yàn)證或已過期,則拒絕通過該VP 進(jìn)行身份認(rèn)證,因此,重放攻擊失敗。
2) 竊聽攻擊。竊聽攻擊是指對(duì)手企圖在網(wǎng)絡(luò)交互中竊取隱私信息。這是第二個(gè)威脅模型假設(shè),對(duì)手竊聽用戶和RA 服務(wù)器之間的交互信息。在本文認(rèn)證方案中,用戶和RA 服務(wù)器進(jìn)行了3 次交互,分別為DIDU、σS和VP,這些信息均為非隱私信息或者需要用戶私鑰解密才能獲取的有效信息,且無法從中推斷用戶隱私信息。因此,本文認(rèn)證方案能夠抵抗竊聽攻擊。
3) 偽裝攻擊。偽裝攻擊是指對(duì)手以虛假的身份獲取目標(biāo)系統(tǒng)的訪問權(quán)限。這是第三個(gè)威脅模型假設(shè),對(duì)手采用虛假的VP 向RA 服務(wù)器進(jìn)行身份認(rèn)證。在本文認(rèn)證方案中,對(duì)手沒有用戶的私鑰,無法對(duì)簽名σS進(jìn)行驗(yàn)證從而獲取混淆值S,同時(shí),也無法偽造用戶對(duì)當(dāng)前時(shí)間戳TS 的簽名,進(jìn)而無法生成可用的VP。因此,本文認(rèn)證方案能夠抵抗偽裝攻擊。
4) DDoS 攻擊。DDoS 是指多個(gè)攻擊者同時(shí)攻擊一個(gè)或多個(gè)目標(biāo),或者一個(gè)攻擊者控制多臺(tái)機(jī)器同時(shí)攻擊受害者[18-19]。區(qū)塊鏈具有分布式的特點(diǎn),節(jié)點(diǎn)保存區(qū)塊鏈的完整賬本。當(dāng)少于三分之一的節(jié)點(diǎn)無法工作時(shí),分布式賬本的使用不會(huì)受到影響,RA 服務(wù)器仍然可以訪問賬本中的信息進(jìn)行身份認(rèn)證。當(dāng)被攻擊的節(jié)點(diǎn)恢復(fù)正常時(shí),它可以從其他正常節(jié)點(diǎn)檢索整個(gè)賬本的信息,并再次成為具有認(rèn)證功能的正常節(jié)點(diǎn)。因此,所提身份認(rèn)證方案能夠抵抗DDoS 攻擊。
仿真程序部署在Ubuntu 18.04(64 位)虛擬系統(tǒng)上,其物理機(jī)的配置為Intel? Core? i5-10400 CPU@2.90 GHz 處理器和16 GB RAM。
為了分析所提方案的性能,本節(jié)從身份注冊(cè)、身份認(rèn)證、身份因子更新和身份因子撤銷4 個(gè)方面分析其計(jì)算開銷。每個(gè)模塊均涉及用戶端和RA 服務(wù)器端的計(jì)算,分析結(jié)果如表 4 所示,其中TA≈ 0.003 ms、Th≈ 0.000 3 ms、TB≈ 0.92 ms分別表示非對(duì)稱加解密運(yùn)算、哈希運(yùn)算和生物特征提取算法的運(yùn)行時(shí)間,p為身份因子的個(gè)數(shù),q為基于生物特征的身份因子的個(gè)數(shù)。根據(jù)實(shí)際的多因子認(rèn)證場景分析,通常p取值為2 或3,q取值為0、1、2 或3,本文中p取值為2.5,q取值為1。認(rèn)證方案計(jì)算時(shí)延如圖6所示,各模塊的計(jì)算時(shí)延均在1~1.2 ms,性能較好。
圖6 認(rèn)證方案計(jì)算時(shí)延
本文采用Hyperledger Fabric 區(qū)塊鏈平臺(tái)構(gòu)建異構(gòu)數(shù)字身份模型,在上述仿真環(huán)境中搭建了Fabric 2.3 系統(tǒng),通過智能合約實(shí)現(xiàn)數(shù)字身份的發(fā)布和查詢等功能。為全面測(cè)試多因子身份認(rèn)證的效率,本文設(shè)置了2 種不同的虛擬機(jī)配置,配置1 采用2 核CPU、4 GB 內(nèi)存,配置2 采用4 核CPU、8 GB 內(nèi)存,數(shù)字身份信息查詢時(shí)延如圖7 所示。同一配置下,不同并發(fā)數(shù)的數(shù)字身份信息查詢時(shí)延區(qū)別較小,而配置2環(huán)境下的查詢時(shí)延明顯低于配置1環(huán)境下的查詢時(shí)延,約為2 ms??梢姡岣邊^(qū)塊鏈環(huán)境配置可以提升數(shù)字身份信息的查詢效率。本文的仿真實(shí)驗(yàn)受到實(shí)驗(yàn)環(huán)境的限制,在實(shí)際的應(yīng)用中,可以搭建環(huán)境配置較高的區(qū)塊鏈平臺(tái)以滿足身份認(rèn)證性能要求。
圖7 數(shù)字身份信息查詢時(shí)延
本文采用AVISPA 工具進(jìn)行安全仿真,在上述物理機(jī)中部署了SPAN1.6 程序。AVISPA 是用于建立安全協(xié)議模型和分析安全協(xié)議的工具,融合了4 種不同的分析終端:OFMC、ATSE、SATMC 和TA4SP,采用HLPSL(high level protocol specification language)建立安全協(xié)議的分析模型,可以通過協(xié)議模擬、入侵者模擬和攻擊模擬來檢測(cè)安全協(xié)議是否達(dá)到預(yù)期的安全目標(biāo)[20]。
本文將所提多因子身份認(rèn)證方案轉(zhuǎn)換為由HLPSL 建立的分析模型。由于該方案中涉及異或操作,因此,本文采用支持異或操作的OFMC 終端和ATSE 終端進(jìn)行安全仿真分析,結(jié)果如圖8 和圖9所示。安全仿真分析結(jié)果表明,所提多因子身份認(rèn)證方案是安全的。
圖8 基于OFMC 終端的AVISPA 安全仿真分析結(jié)果
圖9 基于ATSE 終端的AVISPA 安全仿真分析結(jié)果
為全面分析方案性能,本節(jié)從計(jì)算時(shí)延、通信開銷和安全性等方面將所提方案與已有多因子認(rèn)證方案IoMT 方案[21]、LMAAS-IoT 方案[22]、SELAMAT方案[23]、AV5G 方案[24]、IoD 方案[25]進(jìn)行對(duì)比分析。
身份認(rèn)證算法的計(jì)算時(shí)延和通信開銷對(duì)認(rèn)證效率具有重大影響,本節(jié)將所提方案和上述多因子認(rèn)證方案進(jìn)行對(duì)比分析,結(jié)果如表5 所示。其中,Tecc、Tpuf、Tbp、TS分別表示橢圓曲線標(biāo)量點(diǎn)乘運(yùn)算、物理不可克隆算法、雙線性配對(duì)運(yùn)算和對(duì)稱加解密運(yùn)算的運(yùn)行時(shí)間,在上述實(shí)驗(yàn)環(huán)境下,Tecc≈ 0.003 ms,Tpuf≈ 0.12 ms,Tbp≈ 4.2 ms,TS≈ 0.016 ms。不同方案的認(rèn)證計(jì)算時(shí)延和通信開銷對(duì)比如圖10 和圖11所示。在計(jì)算時(shí)延方面,所提方案與IoMT 方案、LMAAS-IoT 方案、AV5G 方案、IoD 方案的計(jì)算時(shí)延均為1 ms 左右,明顯低于SELAMAT 方案。在通信開銷方面,所提方案認(rèn)證過程中涉及的通信信息為2 次DID、2 個(gè)簽名和一個(gè)身份信息,共512 bit,小于其他幾種方案。綜合來說,所提方案在計(jì)算開銷和通信開銷方面具有優(yōu)勢(shì)。
表5 計(jì)算時(shí)延和通信開銷對(duì)比分析
圖10 認(rèn)證方案計(jì)算時(shí)延對(duì)比
圖11 認(rèn)證方案通信開銷對(duì)比
安全性是身份認(rèn)證系統(tǒng)中最基本的需求,本節(jié)將所提方案與上述多因子身份認(rèn)證方案進(jìn)行了安全性對(duì)比分析。表6 給出了幾種常見的安全性對(duì)比分析結(jié)果,前5 種方案均基于哈希運(yùn)算和智能卡等用戶設(shè)備實(shí)現(xiàn),認(rèn)證信息加密后存儲(chǔ)在智能設(shè)備中,一旦設(shè)備丟失將無法實(shí)現(xiàn)身份認(rèn)證,而所提方案基于區(qū)塊鏈技術(shù)實(shí)現(xiàn),存儲(chǔ)身份因子的分布式賬本具有分布性使其能夠抵御分布式拒絕服務(wù)攻擊。前5 種方案均將全部身份因子聯(lián)合加密后寫入智能設(shè)備,身份認(rèn)證時(shí)必須輸入全部的身份因子,并且部分方案未能實(shí)現(xiàn)身份的更新或撤銷。而所提方案的身份因子獨(dú)立存儲(chǔ)在分布式賬本中,可以靈活地根據(jù)文化資源共享系統(tǒng)接入者的所在組織選擇其中的某幾種身份因子進(jìn)行認(rèn)證。綜合來說,所提方案安全性更強(qiáng)。
表6 安全性對(duì)比分析
本文提出了面向文化資源可信共享的多因子身份認(rèn)證方案。該方案能夠兼容存量系統(tǒng)中的多種身份因子,解決了多元市場主體存量系統(tǒng)接入成本高的問題。并且該方案基于分布式賬本構(gòu)建異構(gòu)數(shù)字身份數(shù)據(jù)模型,為多因子身份認(rèn)證方案提供基礎(chǔ)身份數(shù)據(jù)。多因子認(rèn)證算法包括系統(tǒng)初始化、身份注冊(cè)、身份認(rèn)證、身份因子更新和身份因子撤銷,利用非對(duì)稱加密算法和異或運(yùn)算實(shí)現(xiàn)了快速多因子身份認(rèn)證,提高了多因子身份認(rèn)證的靈活性,避免了單因子認(rèn)證的安全風(fēng)險(xiǎn)。安全分析和仿真結(jié)果表明,該方案具有較高的安全性和認(rèn)證效率。
另外,該方案不僅適用于文化資源可信共享場景,還能擴(kuò)展應(yīng)用于智能醫(yī)療、工業(yè)物聯(lián)網(wǎng)等領(lǐng)域,實(shí)現(xiàn)基于多因子的身份認(rèn)證,提升敏感信息可信共享的安全性和效率。