999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于區(qū)塊鏈和密碼累加器的自我主權(quán)身份認證方案

2022-01-01 00:00:00趙一霈譚海波張中賢程昊天周桐趙赫呂波
計算機應(yīng)用研究 2022年6期

收稿日期:2021-11-10;修回日期:2021-12-31" 基金項目:國家自然科學(xué)基金資助項目(61602435)

作者簡介:趙一霈(1997-),女,河南濮陽人,碩士研究生,主要研究方向為區(qū)塊鏈技術(shù)、身份認證;譚海波(1976-),男,研究員,博士,主要研究方向為區(qū)塊鏈技術(shù)、網(wǎng)絡(luò)安全;張中賢(1988-),男(通信作者),工程師,碩士,主要研究方向為區(qū)塊鏈技術(shù)、網(wǎng)絡(luò)安全、身份認證(zxzhang@hfcas.ac.cn);程昊天(1996-),男,碩士研究生,主要研究方向為區(qū)塊鏈監(jiān)管技術(shù)、區(qū)塊鏈隱私保護;周桐(1991-),男,博士,主要研究方向為區(qū)塊鏈共識算法;趙赫(1984-),男,高級工程師,博士,主要研究方向為軟件工程、區(qū)塊鏈技術(shù);呂波(1982-),男,工程師,碩士,主要研究方向為網(wǎng)絡(luò)安全、下一代通信網(wǎng)絡(luò).

摘 要:針對現(xiàn)有基于區(qū)塊鏈的身份認證方案中存在的認證流程復(fù)雜、需要多次區(qū)塊鏈操作、鏈上數(shù)據(jù)不夠精簡、身份暴露后無法再次隱藏的問題,提出了一種基于區(qū)塊鏈和密碼累加器的自我主權(quán)認證方案。利用密碼累加器成員驗證高效性的特點,精簡區(qū)塊鏈數(shù)據(jù)存儲,降低鏈上數(shù)據(jù)交互頻率,提高系統(tǒng)性能和可擴展性;同時,提出了一種身份數(shù)據(jù)二次隱藏的方法,能夠再次隱藏已披露的用戶數(shù)據(jù),進一步提高系統(tǒng)的安全性。經(jīng)與現(xiàn)有身份認證方案進行對比分析和實驗驗證,表明該方案具有較低的存儲、通信與計算成本和較高的可擴展性和安全性。

關(guān)鍵詞:區(qū)塊鏈;密碼累加器;去中心化;我主權(quán)身份;身份認證;身份隱藏

中圖分類號:TP399"" 文獻標志碼:A

文章編號:1001-3695(2022)06-005-1633-05

doi:10.19734/j.issn.1001-3695.2021.11.0591

Self-sovereign identity authentication scheme based on blockchain and cryptographic accumulator

Zhao Yipei1,2,Tan Haibo1,2,Zhang Zhongxian1,Cheng Haotian1,3,Zhou Tong4,Zhao He1,Lyu Bo1

(1.Hefei Institutes of Physical Science,Chinese Academy of Sciences,Hefei 230031,China;2.University of Science amp; Technology of China,Hefei 230026,China;3.Institutes of Physical Science amp; Information Technology,Anhui University,Hefei 230601,China;4.CAS(Hefei) Institute of Technology Innovation,Hefei 230088,China)

Abstract:This paper proposed a self-sovereign identity authentication scheme based on blockchain and cryptographic accumulator to solve the problems of complex authentication process,multiple blockchain operations,diffuse data on the chain,and the inability to hide the identity again after exposure,which were common in the current authentication schemes.By taking advantage of the outstanding performance of a cryptographic accumulator in set-membership tests,the scheme could compact the blockchain storage,reduce the frequency of on-chain data interaction and improve system performance and scalability.In addition,this paper designed a method to hide identity data,thus hiding the disclosed user data again and further improving the security of the system.The results of experimental verification and comparison between the proposed scheme and current scheme show that the proposed scheme not only has lower storage and communication and calculation cost,but also has higher scalability and security.

Key words:blockchain;cryptographic accumulator;decentralization;self-sovereign identity;identity authentication;identity hiding

0 引言

隨著互聯(lián)網(wǎng)的迅速發(fā)展,在線服務(wù)對用戶身份鑒別的需求越來越多,如何安全有效地存儲和訪問用戶身份數(shù)據(jù)已經(jīng)成為一個重要的問題[1]。由于在TCP/IP協(xié)議棧中缺乏具體的身份認證協(xié)議層,用戶身份的鑒別和管理等工作主要依靠身份提供商完成[2]。目前身份管理模型主要為集中身份模型、聯(lián)合身份模型、以用戶為中心的身份模型[3]三種。集中式的身份認證模型體系結(jié)構(gòu)相對簡單,每個服務(wù)提供商管理各自的用戶身份數(shù)據(jù),但不同服務(wù)商之間的用戶身份交互操作困難[4]。在聯(lián)合身份認證模型中,身份提供者和服務(wù)商需要之間需要建立信任關(guān)系,身份數(shù)據(jù)僅在受信任的實體之間共享,在一定程度上解決了集中式身份帶來的問題,但對可信環(huán)境要求較高[5]。以用戶為中心的身份認證模型,可實現(xiàn)跨機構(gòu)管理,無須建立聯(lián)盟,但要求各服務(wù)提供商按照相同的協(xié)議來完成身份認證[5]。目前上述三種模型建立的身份管理系統(tǒng),大部分需要依賴集中式數(shù)據(jù)庫,因此一旦中心數(shù)據(jù)庫受到破壞就會對用戶數(shù)據(jù)安全構(gòu)成威脅[6],并且存在用戶數(shù)據(jù)被服務(wù)商濫用的風(fēng)險。自我主權(quán)身份(self-sovereign identity,SSI)[3]是一種新的身份管理模式,允許用戶以分散的方式管理自己的身份,而不必依賴身份服務(wù)提供商,從而能夠避免傳統(tǒng)身份認證方案帶來的弊端,已成為身份管理領(lǐng)域的重要研究方向。

對于自我主權(quán)身份,去中心化身份基金會(DIF)、歐洲區(qū)塊鏈服務(wù)基礎(chǔ)設(shè)施(EBSI)、互聯(lián)網(wǎng)工程任務(wù)組(IETF)、Sovrin、OpenID基金會(OIDF)和萬維網(wǎng)聯(lián)盟(W3C)等工作組和標準化機構(gòu)開發(fā)了新的標準和協(xié)議作為SSI模型的基礎(chǔ)[7]。目前已出現(xiàn)利用新標準和協(xié)議的解決方案,包括Evernym、Hyperledger Indy、Sovrin、uPort等[8,9]。但上述方案中存在認證流程復(fù)雜、需要多次區(qū)塊鏈交易操作、鏈上數(shù)據(jù)不精簡、身份暴露后無法再次隱藏等問題。因此本文提出了基于區(qū)塊鏈和密碼累加器的自我主權(quán)身份認證方案,在提升傳統(tǒng)身份管理模型安全性的同時,增強了自我主權(quán)身份模型的可擴展性。

1 相關(guān)技術(shù)

1.1 自我主權(quán)身份

自我主權(quán)身份是個人或其他實體擁有和控制的永久身份,身份所有者對該身份和相關(guān)數(shù)據(jù)擁有完全的自主權(quán)。2016年Allen提出了自我主權(quán)身份的十項原則[10],這些原則在Sovrin基金會的白皮書中進一步分為安全性、可控性以及可移植性三類。其中安全性是指:一方面要盡量將數(shù)據(jù)暴露程度限制在完成某項功能所需的最低限度;另一方面要保證用戶身份只能由其所有者移除。可控性是指用戶擁有其身份的最終控制權(quán),只有在用戶同意的情況下才能共享身份屬性和信息,第三方機構(gòu)可以對用戶身份進行背書,但不擁有其控制權(quán)。可移植性是指允許用戶在任何地點使用他們的身份,并且獨立于任何特定的身份提供者。自我主權(quán)身份認模型一般由用戶、發(fā)證方、驗證者三類角色組成[11]。其中,用戶擁有自身數(shù)據(jù),存儲和管理個人信息;發(fā)證方核驗用戶數(shù)據(jù)真實性,并提供真實性背書;驗證者獲取用戶數(shù)據(jù),并驗證數(shù)據(jù)真實性。該模型還包括分散標識符和可驗證憑證[12]兩個基本組件。分散標識符(DID)由用戶自己創(chuàng)建,用于身份驗證、用戶之間交換信息。可驗證憑證是包含了用戶身份屬性以及發(fā)證方信息的聲明文件,在進行身份驗證時由用戶提供給驗證者。

在大多數(shù)的傳統(tǒng)身份管理系統(tǒng)中,服務(wù)提供商為系統(tǒng)的核心部分,而在以自我主權(quán)身份為模型的身份管理系統(tǒng)中,用戶為整個系統(tǒng)的核心部分,能夠自主地創(chuàng)建、允許他人訪問或停止訪問其個人身份信息,因此自我主權(quán)身份具有更強的隱私保護能力。同時由于無須特定服務(wù)商維護用戶數(shù)據(jù),自我主權(quán)身份模型能夠減少單點失敗風(fēng)險。

1.2 區(qū)塊鏈技術(shù)

區(qū)塊鏈技術(shù)自2008年由中本聰提出后備受關(guān)注,其本質(zhì)是一種共享的、不可竄改的分布式數(shù)據(jù)庫[13],使用橢圓曲線密碼算法(ECC)和SHA-256散列算法等數(shù)據(jù)加密手段,在無須節(jié)點相互信任的情況下實現(xiàn)對等通信。區(qū)塊鏈系統(tǒng)一般使用P2P網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)節(jié)點可以自由地加入或退出區(qū)塊鏈網(wǎng)絡(luò),且區(qū)塊鏈中的每份數(shù)據(jù)都被相同地存儲在網(wǎng)絡(luò)各個節(jié)點上,因此區(qū)塊鏈網(wǎng)絡(luò)具有高容錯性和高抗攻擊性。

智能合約可看做是運行在區(qū)塊鏈系統(tǒng)上的預(yù)置規(guī)則,技術(shù)上是一種能夠完成信息交換、價值轉(zhuǎn)移和資產(chǎn)管理的計算機程序。智能合約可以在滿足預(yù)定條件時自動觸發(fā)運行,能夠使分散的應(yīng)用程序在缺乏信任的環(huán)境中進行交互。因此區(qū)塊鏈和智能合約技術(shù)被廣泛地應(yīng)用于供應(yīng)鏈、金融、存證鑒權(quán)等領(lǐng)域。

區(qū)塊鏈系統(tǒng)數(shù)據(jù)由按時間順序排列的、前后相連的各個區(qū)塊(block)存儲和維護。典型的區(qū)塊結(jié)構(gòu)如圖1所示。

區(qū)塊鏈技術(shù)的出現(xiàn)使自我主權(quán)身份模型的廣泛使用成為可能[14],其特性與自我主權(quán)身份[15]的一些理想特征相吻合[13]:區(qū)塊鏈本質(zhì)上提供了不受任何實體控制的單個分散域[4],用戶和服務(wù)提供商能夠以節(jié)點的形式存于網(wǎng)絡(luò)中進行通信;存儲在鏈上的數(shù)據(jù)可以被任何實體訪問,并且無法竄改,提供了傳統(tǒng)系統(tǒng)不具備的問責(zé)制和透明性;用戶可以使用智能合約細粒度地部署訪問控制機制[15],從而可以作為身份管理系統(tǒng)的底層平臺。

1.3 密碼累加器

密碼累加器于1993年被Benaloh等人提出,是空間和時間高效的數(shù)據(jù)結(jié)構(gòu)[16],可以分為對稱累加器和非對稱累加器兩類[17]。對稱累加器基于對稱加密基元(symmetric cryptographic primitives),在驗證成員存在性時無須提供相應(yīng)的見證(witness),如布隆過濾器、布谷鳥過濾器等[18];非對稱累加器基于非對稱加密基元(asymmetric cryptographic primitives),要求底層的哈希算法有準交換性,在驗證成員存在性時需要提供見證,且需由可信方持續(xù)維護累加器,如RSA累加器、雙線性映射累加器、默克爾哈希樹等[18]。文獻[19]將密碼累加器定義為函數(shù)族hl:Xl×Yl→Zl,并且滿足以下三個特性:

a)計算有效性。存在一個多項式P,對于每個給定的整數(shù)l,對于所有的x∈Xl以及所有的y∈Yl,hl(x,y)是在時間P(l)內(nèi)計算出來的。

b)單向性。對于任意的概率多項式時間算法Al,給定足夠大的l,(x,y)∈Xl×Yl,y′∈Yl,找到一個值x′∈Xl,(x,y)≠(x′,y′),使得等式hl(x,y)=hl(x′,y′)成立的可能性忽略不計。

c)準交換性。對于x∈Xl,y1,y2∈Yl,有hl(hl(x,y1),y2)=hl(hl(x,y2),y1)。

密碼累加器函數(shù)hl的準交換性保證了在輸入順序不同的情況下累加結(jié)果是相同的,hl的單向性保證了累加器的安全性[20]。密碼累加器可成為搜索的替代方案[21],能夠驗證元素是否屬于特定的集合而不泄露其他成員的信息[17]。密碼累加器驗證元素存在性的時間復(fù)雜度不會隨著元素的增加而增加[18],因此可用于身份認證中維護證書撤銷列表、訪問控制列表等場景。

2 基于密碼累加器的自我主權(quán)身份認證方案

2.1 整體結(jié)構(gòu)

本文提出的基于區(qū)塊鏈和密碼累加器的自我主權(quán)身份認證方案使用區(qū)塊鏈網(wǎng)絡(luò)連接身份認證系統(tǒng)中發(fā)證方、用戶、驗證者三類角色[11],解決傳統(tǒng)身份認證方案中發(fā)證方作為中心節(jié)點帶來的單點故障等問題;使用密碼累加器記錄用戶身份和數(shù)據(jù)指紋信息,解決傳統(tǒng)身份證書撤銷困難的問題和區(qū)塊鏈數(shù)據(jù)存儲與更新效率低下的問題。本文方案的系統(tǒng)框架如圖2所示。

在本文方案中,用戶在本地存儲和管理自己的數(shù)據(jù),按照要披露的數(shù)據(jù)內(nèi)容自行生成可驗證憑證(圖2步驟①);發(fā)證方核驗用戶數(shù)據(jù)真實性后,將用戶數(shù)據(jù)寫入?yún)^(qū)塊鏈上的密碼累加器中,作為身份認證的依據(jù)(圖2步驟③④);驗證者向用戶請求數(shù)據(jù)和可驗證憑證,比對密碼累加器,驗證數(shù)據(jù)真實性(圖2步驟⑥⑦)。區(qū)塊鏈公開記錄發(fā)證方和密碼累加器信息供用戶和驗證者使用和檢驗。

本文方案的系統(tǒng)框架如圖3所示。

2.2 可驗證憑證

在本文方案中,用戶本地生成可驗證憑證VC,包括發(fā)證方公鑰、用戶公鑰、用戶數(shù)據(jù)的默克爾樹根以及用戶生成的隨機數(shù)nonce等。具體算法如算法1所示。

算法1 可驗證憑證生成算法generate

輸入:用戶公鑰keyupublic,用戶私鑰keyuprivate,發(fā)證方公鑰keyipublic,用戶身份信息屬性ATTR[attr1,…,attrn],用戶生成的隨機數(shù)nonce。

輸出:可驗證憑證。

data←[]

for attr in ATTR{

data.append(HASH(attr))

//將哈希處理后的用戶信息放入data數(shù)組中

}

Mroot←establishMerkleTree(data)

/*構(gòu)造用戶身份信息默克爾樹,可采用經(jīng)典建樹方法[22]完成,不作贅述*/

signature←sign(keyuprivate,[Mroot‖keyipublic‖nonce])

//用戶使用私鑰對默克爾樹根、發(fā)證方公鑰以及隨機數(shù)進行簽名

VC←[signature‖keyupublic]

//VC包含用戶公鑰和相關(guān)信息簽名

h)return VC

2.3 注冊

用戶注冊是指用戶將其個人數(shù)據(jù)發(fā)送至發(fā)證方,請求真實性核驗的過程。完成注冊后,即表明用戶信息通過了核驗。

在注冊時,用戶將自己生成的可驗證憑證和個人數(shù)據(jù)發(fā)送給驗證者。驗證者首先驗證數(shù)據(jù)真實性,若真實無誤則將用戶公鑰和默克爾根合并后取HASH,調(diào)用密碼累加器添加算法加入累加器。具體流程如圖4所示。

用戶注冊算法如算法2所示。

算法2 用戶注冊算法register

輸入:用戶身份信息屬性ATTR[attr1,…,attrn],可驗證憑證VC。

輸出:用戶注冊是否成功。

signature,keyupublic←VC //從VC中提取簽名和公鑰

if(verification(signature,keyupublic))==true{//驗證身份數(shù)據(jù)

Mroot,keyipublic←decrypt(keyupublic,signature)

//解密簽名信息signature,得到發(fā)證方公鑰、默克爾樹根

Acc←findBlockchainContract(keyipublic)

//根據(jù)發(fā)證方公鑰,找到對應(yīng)發(fā)證方公布的累加器值

data←[]

for attr in ATTR{

data.append(HASH(attr))}//計算屬性HASH值

ret←establishMerkleTree(data)

//構(gòu)造用戶身份默克爾樹

if(ret==Mroot){

factor←HASH(encrypt(keyipublic,VC))

//對加密后的VC進行哈希處理

Acc←Acc.Add(factor)

//向累加器中添加成員值,生成新的累加值

sendBlockchainTransaction(Acc)

//將Acc更新到區(qū)塊鏈

return true}//注冊成功

}

2.4 信息更新

若用戶需要更新身份信息,則需要重新生成可驗證憑證,由于其信息以及成員存在資格由發(fā)證方背書,存儲在累加器中,所以需將更新后的信息提交給發(fā)證方,發(fā)證方執(zhí)行更新算法:驗證用戶的存在性,若驗證正確,執(zhí)行撤銷算法將該用戶的身份從累加器中移除,計算出新的累加值,并更新區(qū)塊鏈上智能合約中的值。具體算法如算法3所示。

算法3 更新算法update

輸入:用戶公鑰keyupublic,用戶私鑰keyuprivate,發(fā)證方公鑰keyipublic用戶身份信息屬性ATTR[attr1,…,attrn],更新后屬性信息ATTR′[attr′1,…,attr′n],用戶生成的隨機數(shù)nonce′。

輸出:更新用戶信息是否成功。

data←[ ]

for attr in ATTR{

data.append(HASH(attr))} //計算屬性HASH值

Mroot←establishMerkleTree(data)//構(gòu)造用戶身份默克爾樹

factor←HASH(encrypt(keyipublic,VC))

//對加密后的VC進行哈希處理

result←Acc.Verify(factor)//驗證factor值是否為成員身份

if(result==0){

Acc←Acc.Delete(factor)

//從累加值中刪除factor,更新累加值

f_result←register(VC′,ATTR′)//調(diào)用用戶注冊算法

return f_result//返回重新注冊結(jié)果

}else{

return 1//數(shù)據(jù)校驗錯誤,返回1

}

2.5 信息選擇性披露

用戶生成可驗證憑證時,在盡量滿足驗證者身份驗證要求的條件下,最低程度地暴露身份信息屬性,以此實現(xiàn)對隱私的保護[23]。用戶對于希望公開的屬性,將原文公開,并附上默克爾證明Mproof[24]。其中,Mproof中包含了身份屬性的子集以及對應(yīng)的默克爾證明,用戶可根據(jù)不同的驗證者生成多種[VC,Mproof]。用戶信息選擇性披露算法如算法4所示。

算法4 用戶信息選擇性披露selectiveDisclosure

輸入:需要披露的用戶身份信息名稱SD_ARRT[a1,…,am],用戶身份屬性集合ATTR[attr1,…,attrn],用戶公鑰keyupublic,用戶私鑰keyuprivate,發(fā)證方公鑰keyipublic,用戶生成的隨機數(shù)nonce。

輸出:可驗證憑證以及默克爾證明。

VC←generate(keyupublic,keyipublic,keyuprivate,nonce)

ATTR[attr1,…,attrn])//調(diào)用算法1生成可驗證憑證VC

Mproof←generateMultiProof(SD_ARRT,ATTR)

//生成稀疏默克爾樹多值證明

return[VC,Mproof]//返回VC和默克爾證明

2.6 身份隱藏

為了解決現(xiàn)有方案中用戶信息披露后用戶身份信息無法隱藏的問題,本文提出了一種基于密碼累加器的身份隱藏方法。用戶掌握自己的VC以及Mproof的授權(quán)有效期限,防止驗證者無期限地跟蹤用戶。身份隱藏的執(zhí)行由用戶主動發(fā)起:用戶重新生成nonce′以及對應(yīng)VC′,與更新前VC、Mproof一起用發(fā)證方公鑰keyipublic加密后發(fā)送給發(fā)證方,申請進行身份隱藏。發(fā)證方核驗用戶身份信息后,調(diào)用密碼累加器刪除算法,刪除原有用戶factor值,并重新計算factor′,添加到密碼累加器中。發(fā)證方執(zhí)行用戶身份隱藏算法如下所示。

算法5 身份隱藏算法identityHiding

輸入:可驗證憑證以及默克爾證明VC′、VC、Mproof。

temp←verifier([VC,Mproof]) //驗證用戶身份

signature,keyupublic←VC //從VC中提取簽名和公鑰

signature′←VC′ //從新VC中提取簽名

temp′←verification(signature′,keyupublic)

//使用已知公鑰驗證用戶的二次簽名

if(temp==trueamp;amp;temp′==true){ //校驗正確

factor←HASH(encrypt(keyipublic,VC))

//對加密后的VC進行哈希處理

factor′←HASH(encrypt(keyipublic,VC′))

//對重新提供的VC加密并進行哈希處理

Acc←findBlockchainContract(keyipublic)

//根據(jù)發(fā)證方公鑰,找到對應(yīng)發(fā)證方公布的累加器值

Acc←Acc.Delete(factor) //刪除舊身份

Acc←Acc.Add(factor′) //添加新身份

sendBlockchainTransaction(Acc)

//將Acc更新到區(qū)塊鏈

}

經(jīng)過上述步驟,發(fā)證方公布的密碼累加器值A(chǔ)cc得到了更新,因此對于驗證者來說,即使已經(jīng)掌握了用戶VC以及默克爾證明Mproof,也無法通過驗證,并且無法辨別用戶身份信息是否發(fā)生更改或是用戶身份是否被撤銷,從而達到了身份隱藏的目的。

2.7 身份和信息驗證

驗證者獲取用戶提供的可驗證憑證后,需要對其對應(yīng)身份以及個人信息的正確性進行驗證。首先驗證用戶身份,驗證者得到用戶發(fā)送的可驗證憑證VC以及默克爾證明Mproof,使用用戶公鑰驗證VC中的簽名數(shù)據(jù),證明用戶信息未曾竄改,并得到默克爾樹根Mroot。使用用戶提供的默克爾證明重新建立默克爾樹,對比已提供的Mroot,若相等即驗證了用戶的身份。

對于驗證用戶信息的正確性,驗證者需將Mroot與用戶公鑰進行哈希處理,得到factor,隨后上鏈查詢公布的累加器中的值A(chǔ)cc,計算其是否包含factor,若包含即驗證了用戶身份以及信息的正確性。具體流程如圖5所示,算法如算法6所示。

算法6 驗證算法verifier

輸入:可驗證憑證以及默克爾證明[VC,Mproof]。

signature,keyupublic←VC //從VC中提取簽名和公鑰

if(verification(signature,keyupublic))==true{

Mroot,keyipublic←decrypt(keyupublic,signature)

//解密簽名信息signature,得到發(fā)證方公鑰、默克爾樹根值

Mroot′←establishMerkle(Mproof)

//根據(jù)提供的Mproof生成默克爾樹根

if(Mroot==Mroot′){

factor←HASH(encrypt(keyipublic,VC))

//對VC加密并進行哈希處理

Acc←findBlockchainContract(keyipublic)

//根據(jù)發(fā)證方公鑰,找到對應(yīng)發(fā)證方公布的累加器值

result←Acc.Verify(factor)

//驗證factor值是否在累加器中

if(result==0)

return true}//驗證成功

}else{

return 1 //驗證失敗

}

3 對比分析

本章從理論、實驗及安全性三個方面對比現(xiàn)有基于區(qū)塊鏈的身份認證方案。區(qū)塊鏈網(wǎng)絡(luò)由于多節(jié)點共同參與、數(shù)據(jù)全局同步、定期進行共識等,其性能和可擴展性較差,易成為系統(tǒng)瓶頸。因此,本文重點對比不同方案與區(qū)塊鏈網(wǎng)絡(luò)交互的部分,即區(qū)塊鏈存儲數(shù)據(jù)量、區(qū)塊鏈網(wǎng)絡(luò)通信數(shù)據(jù)量和區(qū)塊鏈節(jié)點計算量。其中,區(qū)塊鏈節(jié)點本地計算完成后,通過下一輪共識將計算結(jié)果存儲于鏈上,因此本文使用不同方案需要的區(qū)塊鏈運算次數(shù)表征區(qū)塊鏈計算量。

3.1 理論對比

本文中使用的符號及意義如表1所示。

方案1[25]" 基于區(qū)塊鏈的身份認證方案。用戶數(shù)據(jù)存儲在區(qū)塊鏈上,使用智能合約認證用戶身份,由發(fā)證方維護并公布證書撤銷列表。此方案的區(qū)塊鏈數(shù)據(jù)存儲量為用戶身份數(shù)據(jù)mns、證書撤銷列表αmna;區(qū)塊鏈通信數(shù)據(jù)量為用戶更新和注冊時用戶數(shù)據(jù)上鏈通信量2 s、身份驗證時獲取證書撤銷列表通信量αna;區(qū)塊鏈節(jié)點計算量為注冊1次(數(shù)據(jù)上鏈)、更新2次(老證書加入撤銷列表、新數(shù)據(jù)上鏈)、驗證2次(檢查撤銷列表、對比鏈上數(shù)據(jù))。

方案2[26] 其他基于區(qū)塊鏈和密碼累加器的身份認證方案。用戶身份和密碼累加器存儲在區(qū)塊鏈上,使用密碼累加器認證用戶身份。此方案的區(qū)塊鏈數(shù)據(jù)存儲量為用戶身份數(shù)據(jù)mnu、密碼累加器值ma;區(qū)塊鏈通信數(shù)據(jù)量為注冊和更新時用戶身份上鏈2(a+u)、驗證時對比累加器值a;區(qū)塊鏈節(jié)點計算量為注冊2次(身份上鏈、加入累加器)、更新1次(更新累加器)、驗證2次(檢查身份和累加器)。

方案3 本文基于區(qū)塊鏈和密碼累加器的身份認證方案。用戶數(shù)據(jù)存儲在用戶本地,密碼累加器存儲在區(qū)塊鏈上,使用密碼累加器認證用戶身份。此方案的區(qū)塊鏈數(shù)據(jù)存儲量為密碼累加器值ma;區(qū)塊鏈通信數(shù)據(jù)量為注冊、更新、驗證時設(shè)置或讀取密碼累加器值a;區(qū)塊鏈節(jié)點計算量為注冊1次(加入密碼累加器)、更新1次(更新密碼累加器)、驗證1次(檢查累加器)。

綜上,理論對比結(jié)果如表2所示。

3.2 實驗對比

實驗使用八臺相同配置的服務(wù)器構(gòu)成的集群分別實現(xiàn)上述三種身份認證方案。目前以太坊是主流大型的區(qū)塊鏈網(wǎng)絡(luò)之一,因此實驗選用以太坊聯(lián)盟鏈,采用POA共識,出塊時間設(shè)置為12 s進行對比測試。實驗采用的軟硬件環(huán)境如下:服務(wù)器為8核3.60 GHz AMD Ryzen CPU、32.0 GB內(nèi)存;操作系統(tǒng)為CentOS-8.2.2004;軟件模塊為MySQL、SQLite、以太坊、Web3.JS、NodeJS;網(wǎng)絡(luò)帶寬為100 Mbps。

實驗隨機選取2 000條用戶數(shù)據(jù),按照三種方案不同的數(shù)據(jù)存儲方式,將用戶數(shù)據(jù)、用戶身份或密碼累加器值存入以太坊智能合約,并統(tǒng)計總數(shù)據(jù)存儲量。對于方案1,由于以太坊使用LevelDB作為底層存儲,用戶數(shù)據(jù)實際存儲于LevelDB中。對于方案2,用戶身份存儲在區(qū)塊鏈上,用戶數(shù)據(jù)存儲在本地。對于方案2和3,實驗選用輕量級數(shù)據(jù)庫SQLite作為用戶數(shù)據(jù)本地方式。經(jīng)統(tǒng)計,不同方案的數(shù)據(jù)存儲總量如表3所示。其中,實驗使用“數(shù)據(jù)冗余度”描述不同方案對用戶身份數(shù)據(jù)存儲或備份數(shù)量:數(shù)據(jù)冗余度n=1表示用戶數(shù)據(jù)只存儲1份,即不存在冗余;數(shù)據(jù)冗余度ngt;1表示用戶數(shù)據(jù)存儲了多份,即存在n-1份冗余。

實驗按照身份認證過程中用戶注冊、更新、披露、驗證的步驟,使用智能合約實現(xiàn)相應(yīng)步驟流程,每個步驟隨機重復(fù)500次,測量不同方案的通信數(shù)據(jù)量、系統(tǒng)響應(yīng)時間和智能合約Gas消耗平均值。其中,通信數(shù)據(jù)量采用序列化身份認證流程數(shù)據(jù)和區(qū)塊鏈同步數(shù)據(jù)負載的方式測量;系統(tǒng)響應(yīng)時間采用統(tǒng)計身份認證流程處理時間和區(qū)塊鏈共識同步時間總和的方式測量;智能合約Gas消耗采用統(tǒng)計Web3.JS合約回調(diào)事件返回數(shù)據(jù)的方式測量。經(jīng)統(tǒng)計,不同方案的通信數(shù)據(jù)量、系統(tǒng)響應(yīng)時間以及Gas消耗量如圖6所示。

實驗表明,相對于方案1和2,本文方案顯著減少了數(shù)據(jù)存儲量和通信數(shù)據(jù)量。但因為區(qū)塊鏈交易出塊時間的限制,本文方案節(jié)點計算量(以系統(tǒng)響應(yīng)時間表示)只有小幅度減少。

3.3 安全分析

本文方案和方案1、2均使用區(qū)塊鏈存儲身份認證數(shù)據(jù),包括用戶公鑰或其證明,采用PKI安全通信技術(shù),能夠抵御身份認證應(yīng)用中常見的中間人攻擊[27]。本文方案和方案1、2均使用智能合約實現(xiàn)身份認證流程,各區(qū)塊鏈節(jié)點均可獨立運行合約代碼,能夠避免和抵御傳統(tǒng)集中式身份認證方案易出現(xiàn)單點失敗和DDoS攻擊問題[28]。本文方案和方案2使用密碼累加器替代方案1的證書撤銷列表,除具有更高的存儲、查詢效率外,也解決了實際應(yīng)用中證書撤銷列表過大、發(fā)證方批量維護列表周期較長、驗證者下載更新列表不及時等問題。本文方案僅使用區(qū)塊鏈記錄多個用戶身份的密碼累加器值,不暴露單個用戶身份,能防止攻擊者收集用戶區(qū)塊鏈使用日志,進行跟蹤、分析用戶行為等活動。同時,本文方案使用身份二次隱藏算法,在完成用戶身份驗證后,及時隱藏用戶數(shù)據(jù),避免用戶數(shù)據(jù)濫用。

綜上,本文方案除了能夠應(yīng)對身份認證應(yīng)用中常見的單點失敗、中間人攻擊、DDoS攻擊等問題,也能夠進一步解決證書更新不及時、用戶跟蹤分析、用戶數(shù)據(jù)濫用的問題。三種方案的安全性對比如表4所示。

4 結(jié)束語

本文提出了一種基于區(qū)塊鏈和密碼累加器的自我主權(quán)身份認證方案,通過本地存儲用戶身份數(shù)據(jù)、區(qū)塊鏈存儲身份證書累加器值的方式,減少了系統(tǒng)的存儲、通信和計算成本,提高了系統(tǒng)的可擴展性;同時,本文提出了一種身份數(shù)據(jù)二次隱藏的方法,能夠防止用戶數(shù)據(jù)濫用,進一步提高了系統(tǒng)的安全性。

本文主要關(guān)注單個自我主權(quán)身份的認證系統(tǒng),隨著認證聯(lián)盟的日益普及,可以將本文方案進一步推廣至認證聯(lián)盟的應(yīng)用場景。另外,對用戶而言,擁有全網(wǎng)統(tǒng)一的數(shù)字身份可能更具便利性。因此,統(tǒng)一數(shù)字身份和通用身份認證模型將是下一步研究的重點。

參考文獻:

[1]馬仲岳.基于區(qū)塊鏈的分布式認證和訪問控制研究[D].重慶:重慶郵電大學(xué),2020.(Ma Zhongyue.Research on distributed authentication and access control based on blockchain[D].Chongqing:Chongqing University of Posts and Telecommunications,2020.)

[2]湯凌韜,許敏,金玉榮.基于區(qū)塊鏈的身份認證機制的效率優(yōu)化方法研究[J].計算機應(yīng)用研究,2019,36(9):2783-2787,2791.(Tang Lingtao,Xu Min,Jin Yurong.Research on methods of improving efficiency of identity authentication based on blockchain[J].Application Research of Computers,2019,36(9):2783-2787,2791.)

[3]Allen C.The path to self-sovereign identity[EB/OL].(2016-04-25)[2021-11-08].http://www.lifewithalacrity.com/2016/04/the-path-to-self-soverereign-identity.html.

[4]Ferdous M S,Chowdhury F,Alassafi M O.In search of self-sovereign identity leveraging blockchain technology[J].IEEE Access,2019,7:103059-103079.

[5]Ehrlich T,Richter D,Meisel M,et al.Self-sovereign identity als grundlage füruniversell einsetzbare digitale identitten[J].HMD Praxis der Wirtschaftsinformatik,2021,58(2):247-270.

[6]Van Bokkem D,Hageman R,Koning G,et al.Self-sovereign identity solutions:the necessity of blockchain technology[EB/OL].(2019-04-29).https://arxiv.org/abs/1904.12816.

[7]Liu Yue,Lu Qinghua,Paik H Y,et al.Design patterns for blockchain-based self-sovereign identity[C]//Proc of European Conference on Pattern Languages of Programs.New York:ACM Press,2020:1-14.

[8]Brunner C,Gallersdrfer U,Knirsch F,et al.DID and VC:untangling decentralized identifiers and verifiable credentials for the Web of trust[C]//Proc of the 3rd International Conference on Blockchain Technology and Applications.New York:ACM Press,2020:61-66.

[9]Zhou Tong,Li Xiaofeng,Zhao H.EverSSDI:blockchain-based framework for verification,authorisation and recovery of self-sovereign identity using smart contracts[J].International Journal of Computer Applications in Technology,2019,60(3):281-295.

[10]Satybaldy A,Nowostawski M,Ellingsen J,et al.Privacy and identity management[M].Cham:Springer,2020:447-461.

[11]Khovratovich D,Law J.Sovrin:digital identities in the blockchain era[EB/OL].(2017).https://sovrin.org/library/sovrin-digital-identities-in-the-blockchain-era/.

[12]Fedrecheski G,Rabaey J M,Costa L C P,et al.Self-sovereign identity for IoT environments:a perspective[C]//Proc of Global Internet of Things Summit.Piscataway,NJ:IEEE Press,2020:1-6.

[13]袁勇,王飛躍.區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J].自動化學(xué)報,2016,42(4):481-494.(Yuan Yong,Wang Feiyue.Blockchain:the state of the art and future trends[J].Acta Automatic Sinica,2016,42(4):481-494.)

[14]Mühle A,Grüner A,Gayvoronskaya T,et al.A survey on essential components of a self-sovereign identity[J].Computer Science Review,2018,30:80-86.

[15]賀海武,延安,陳澤華.基于區(qū)塊鏈的智能合約技術(shù)與應(yīng)用綜述[J].計算機研究與發(fā)展,2018,55(11):2452-2466.(He Haiwu,Yan An,Chen Zehua.Survey of smart contract technology and application based on blockchain[J].Journal of Computer Research and Development,2018,55(11):2452-2466.)

[16]祁健.累加器在區(qū)塊鏈中的應(yīng)用研究[D].南京:南京信息工程大學(xué),2020.(Qi Jan.Research on the application of accumulator in blockchain[D].Nanjing:Nanjing University of Information Science and Technology,2020.)

[17]Kumar A,Lafourcade P,Lauradoux C.Performances of cryptographic accumulators[C]//Proc of the 39th Annual IEEE Conference on Local Computer Networks.Piscataway,NJ:IEEE Press,2014:366-369.

[18]Ozcelik I,Medury S,Broaddus J,et al.An overview of cryptographic accumulators[EB/OL].(2021-03-07).http://doi.org/10.5220/0010337806610669.

[19]鐘曉睿,馬春光.基于動態(tài)累加器的異構(gòu)傳感網(wǎng)認證組密鑰管理方案[J].通信學(xué)報,2014,35(3):124-134.(Zhong Xiaorui,Ma Chunguang.Dynamic accumulators-based authenticated group key management scheme for heterogeneous wireless sensor network[J].Journal on Communications,2014,35(3):124-134.)

[20]馬春光,蔡滿春,武朋.基于單向累加器的無向可傳遞閉包圖認證[J].通信學(xué)報,2008(3):63-69.(Ma Chunguang,Cai Manchun,Wu Peng.Transitively closed undirected graph authentication based on one-way accumulators[J].Journal on Communications,2008(3):63-69.)

[21]張琰,王瑾璠,齊竹云,等.基于動態(tài)累加器的去中心化加密搜索方案[J].網(wǎng)絡(luò)與信息安全學(xué)報,2019,5(2):23-29.(Zhang Yan,Wang Jinfan,Qi Zhuyun,et al.Decentralized searchable encryption scheme based on dynamic accumulator[J].Chinese Journal of Network and Information Security,2019,5(2):23-29.)

[22]Merkle R C.A digital signature based on a conventional encryption function[C]//Proc of Conference on the Theory and Application of Cryptographic Techniques.Berlin:Springer,1987:369-378.

[23]Mukta R,Martens J,Paik H,et al.Blockchain-based verifiable credential sharing with selective disclosure[C]//Proc of the 19th IEEE International Conference on Trust,Security and Privacy in Computing and Communications.Piscataway,NJ:IEEE Press,2020:959-966

[24]Ramabaja L,Avdullahu A.Compact Merkle multiproofs[EB/OL].(2020-02-24).https://arxiv.org/abs/2002.07648.

[25]韋智勇,周立廣.基于區(qū)塊鏈的身份認證系統(tǒng)設(shè)計與實現(xiàn)[J].軟件工程,2020,23(11):37-40.(Wei Zhiyong,Zhou Liguang.Design and implementation of identity authentication system based on blockchain[J].Software Engineering,2020,23(11):37-40.)

[26]WeBank Co.WeIdentity-Doc[EB/OL].(2021-11-08).https://weidentity.readthedocs.io/zh_CN/latest/index.html.

[27]Wikipedia.Man-in-the-middle attack[EB/OL].[2021-12-15].https://en.wikipedia.org/wiki/Man-in-the-middle_attack.

[28]左鵬,孫云剛,袁夢,等.基于區(qū)塊鏈和DNSSEC的身份認證模型[J].計算機系統(tǒng)應(yīng)用,2019,28(11):161-167.(Zuo Peng,Sun Yungang,Yuan Meng,et al.Identity authentication model based on blockchain and DNSSEC[J].Computer Systems and Applications,2019,28(11):161-167.)

主站蜘蛛池模板: 欧美日韩va| 99视频在线免费| 亚洲天堂在线免费| 成人亚洲国产| 精品福利网| 日韩国产亚洲一区二区在线观看| 亚洲美女操| 欧美亚洲一二三区| 99久久国产综合精品女同| 激情成人综合网| 中文字幕日韩丝袜一区| www.亚洲一区| 久久精品国产91久久综合麻豆自制| 色偷偷男人的天堂亚洲av| 亚洲精品国产日韩无码AV永久免费网 | 国产成年无码AⅤ片在线| 狠狠综合久久| 国产一区免费在线观看| 亚洲免费黄色网| 日韩毛片免费观看| 9999在线视频| 久久精品中文字幕免费| 久草性视频| 亚洲天堂首页| 无码电影在线观看| 日韩精品无码免费一区二区三区| 久久无码av三级| 免费A∨中文乱码专区| 国产制服丝袜无码视频| 91精品国产自产在线观看| 香蕉蕉亚亚洲aav综合| 午夜性爽视频男人的天堂| 激情无码字幕综合| AV熟女乱| 欧美国产视频| 亚洲精品视频免费| 亚洲国产清纯| 色老二精品视频在线观看| 欧美成人一级| 91成人免费观看| 91黄视频在线观看| 亚洲一区第一页| 国产黄网永久免费| 亚洲日韩AV无码一区二区三区人| 免费毛片a| 精品日韩亚洲欧美高清a| 草逼视频国产| 国产极品粉嫩小泬免费看| 好久久免费视频高清| 妇女自拍偷自拍亚洲精品| 另类专区亚洲| 国产大全韩国亚洲一区二区三区| 免费AV在线播放观看18禁强制| 日韩福利在线观看| 国产亚洲美日韩AV中文字幕无码成人| 一区二区欧美日韩高清免费| 国产亚洲欧美日本一二三本道| 日本人又色又爽的视频| 国产高清无码第一十页在线观看| 亚洲欧美一区二区三区蜜芽| 婷婷亚洲天堂| 日韩高清一区 | 国产嫖妓91东北老熟女久久一| 天天色天天综合网| 亚洲小视频网站| 国产美女一级毛片| 亚洲无码一区在线观看| 一本大道视频精品人妻| 香蕉eeww99国产在线观看| 亚洲国内精品自在自线官| 亚洲熟女偷拍| 久久久精品久久久久三级| 幺女国产一级毛片| 国产成人精品第一区二区| 国产精品一区二区久久精品无码| 理论片一区| 亚洲日本精品一区二区| 亚洲最大看欧美片网站地址| 亚洲精品国产综合99| 国产人人干| 国产精品福利导航| 日韩毛片免费|