陳立軍
(廣州軟件學院 軟件工程系,廣東 廣州 510990)
集中式身份管理系統的功能依賴于特定的身份服務器節點,導致單點故障問題,一旦這些身份服務器節點失效,網絡中所有的身份注冊、驗證和更新操作都將中斷,這一缺陷使得集中式身份系統容易受到分布式拒絕服務(DDoS)攻擊[1-2],給網絡安全帶來嚴重隱患。
集中式身份管理問題的另一個方面來自于互聯網上的孤立主義趨勢,通過隔離,在集中式平臺或機構中注冊的用戶身份和信息只能在特定的信任域[3]中使用,不僅難以建立和維護不同信任域的身份提供者之間的關系,而且難以審計或跟蹤數據濫用。為實現用戶身份的交叉驗證和相互信任,各平臺和機構只能重復收集用戶身份信息進行識別和管理,造成存儲和傳輸資源的浪費,給業務應用帶來不便。因此,跨不同信任域進行實體身份驗證和身份管理已經成為一個問題。
近年來,區塊鏈逐漸發展成為一種分布式計算模式,具有去集中化、集體維護、可編程、可跟蹤等特點,隨著區塊鏈技術研究的逐步深入,基于區塊鏈的應用呈現出爆炸式的增長,并具有與其他領域交叉的廣闊前景。
在區塊鏈技術誘人特性的驅動下,該文提出了一種基于區塊鏈的去中心化跨域身份管理系統(DCIMB),設計了一個基于聯盟區塊鏈技術的去中心化標識符(DID),可以使用一個身份證書(如公鑰、密碼或指紋)來頒發DID,以確保身份信息不會被篡改,同時,系統中的每個節點都可以參與認證和信任建立,解決了集中式機制的單點故障。
西安理工大學的左碧露[4]針對傳統物聯網設備認證方案,提出了一個基于區塊鏈和霧計算的去中心化物聯網設備認證方案,利用區塊鏈的不可篡改性來保證票證的真實性,但研究的不是跨域身份管理。
南京郵電大學的徐君澤[5]針對基于區塊鏈交易主體的可信性及多方交易的安全性,提出了新的跨域認證方法,他的方法提高了跨域認證效率,但研究范圍局限于融資租賃系統。
同樣的,也是南京郵電大學的江淳[6]針對遠程醫療系統,提出了一種基于區塊鏈的遠程醫療跨域認證模型,作者說他的模型有效提高了系統的通信效率,但作者在文中沒有提及是否解決了傳統中心服務器單點故障問題。
貴州大學的王琳杰[7]就物聯網數據安全及跨域認證提出一個模型,重點研究了物聯網的數據安全,但與該文相比,該文的重點是解決傳統中心服務器單點故障。
王曉欣、陳志德[8]兩作者針對教育資源共享安全性低以及身份認證困難的問題,提出基于區塊鏈技術與無證書簽名相結合的可跨域身份認證方案,但基于區塊鏈系統的處理效率還有待提高。
桂林電子科技大學的徐娟娟[9]基于云環境的異構跨域身份認證方案,但他們的重點是滿足身份匿名性、抵抗替換性攻擊、抵抗重放攻擊和中間人攻擊。
電子科技大學的王國安[10]提出基于面向知識共享的跨域訪問控制技術,提高了資源訪問控制的安全性,與該文相比,側重點還是不同的,該文的重點是研究跨域身份管理系統的優化。
傳統的身份管理系統,如OpenId[11],主要是基于PKI的集中式體系結構,為了防止公共文件被惡意篡改,每個數據都進行了數字簽名,這樣證書就可以在網絡中安全地分發[12]。雖然PKI/CA系統可以實現雙向認證,但在通信過程中需要從中心身份倉庫獲取第三方數字證書,這就要求中心節點具有高性能的響應處理能力,在基于PKI/CA的大規模系統中,隨著系統規模的增加,中心節點將成為系統性能的瓶頸,并出現過載現象,除了可擴展性問題外,CA機制還存在單點信任的安全缺陷。
Nayak等人[13]提出的D-FOAF模型通過社區驅動的接入授權機制將CA的權限分配給每個網絡社區中的節點,以分散中心驗證節點的壓力;Pavithran等人[14]考慮到只有基于公鑰證書的身份管理機制需要CA等集中式節點來提供服務,提出了基于身份的密碼學來替代基于公鑰的密碼學,然而,Lim的方案針對的是網格計算模型,是一種交互式認證機制,這給它的應用帶來了許多限制。
隨著比特幣的出現,帶有分布式賬本技術的區塊鏈也被用于實現身份管理系統,因為它去中心化,避免了身份信息被少數組織或個人掌握[15];在文獻[16]中,Mohanty等人開發了高效、輕量級、集成的區塊鏈模型,以滿足物聯網的需求。然而,大多數基于區塊鏈的身份管理系統并未考慮多個領域的身份識別和融合需求,而這正是該文的核心目標。
在傳統的身份管理系統中,用戶的身份被限制在信任域內,只有在同一信任域內的身份是可信的,因此,身份管理系統的熱點問題主要集中在隱私保護和可擴展性兩個方面。目前,無論是集中式云計算網絡還是全分布式網絡環境,都涉及到不同信任域的認證,跨域認證已成為身份管理系統中亟待解決的問題。
DCIMB在區塊鏈技術的基礎上設計了一個DID,解決了單點故障問題,提高了系統的可擴展性,與其他啟用區塊鏈的身份管理系統不同,DCIMB引入了單向累加器來驗證身份的有效性,將身份驗證的時間復雜度優化到恒定水平。此外,DCIMB還使用了聯盟區塊鏈系統,通過分布式共識保持了累加器狀態的全局一致性和抗篡改性,提高了認證性能,保護了用戶的隱私信息。
該文的核心工作是去中心化身份管理和跨域認證系統,設計目標是解決認證中心的單點故障問題,提高跨域認證場景下的認證性能。
單一信任問題使得它不適合跨信任域身份驗證場景,DCIMB使用DID來識別身份實體,以消除單點依賴。DID由統一資源標識符(URI)和文檔組成,URI用作標識符,文檔存儲用戶的公鑰、身份信息和其他數據,當用戶發送消息時,接收方可以通過查找DID來驗證用戶的公鑰信息,以確定消息是否被篡改。
PKI系統中的CA還負責確保用戶的公鑰信息的真實性,在DCIMB中,此功能由認證提供者(IdP)提供。IdP是一個開放和可信的部門,如政府、銀行、個人或私人企業,它只負責其領域內的身份發放,PKI/CA系統采用集中式、分層或多組織結構,因此,當CA受到攻擊時,會影響整個系統,導致單點故障問題。但是,DCIMB通過區塊鏈技術連接每個信任域中的IdP,當特定信任域中的IdP受到攻擊時,其影響范圍僅局限于該信任域中的本地區域,相比之下,系統中的其他信任域仍然可以工作,從而避免了全局CA中的單點故障問題。
身份實體通過創建DID來標識自己,DID是一個通用的用戶標識符,它不包含任何用來證明身份的信息,所有附加在DID上的身份信息都需要通過IdP頒發身份證書進行認證。因此,在DCIMB中,DID(和DID文件)被稱為主身份,而IdP頒發的身份證書被稱為影子身份。DCIMB不允許除身份所有者以外的其他各方通過身份證書來追蹤身份的實際信息,以保護用戶隱私,這種將用戶標識符與特定用戶標識屬性分離的想法稱為兩級標識體系結構。
在DCIMB中,身份識別和管理涉及兩個方面:
(1)準確識別和判斷給定的標識符是否與公鑰證書匹配;
(2)判斷標識符是否可以訪問指定的資源,在跨域認證中,跨域認證還涉及到不同信任域之間的相互認證,同時,為了保護用戶的隱私和匿名性,有必要在認證過程中盡可能少地公開身份信息,這是最小公開原則。
為了高效判斷集合成員,有現成的方案,如環簽名和群簽名,但是,由于這些方案需要可信的設置階段,因此不適合部署分布式環境。為了加速認證和公共集合成員的判斷,DCIMB引入了單向累加器作為密碼原語來構建認證機制,對于大型集合成員的判斷問題,單向累加器可以顯著降低存儲和通信成本,具體來說,對于每個域有m個域和n個賬戶的系統,集合成員身份識別簽名從O(mn)減少到O(m),這意味著每個域的空間復雜度可以達到一個恒定的水平。
對于大量的主身份賬戶,必然有大量的累加器狀態,如果這些狀態需要通過全局數據庫或目錄(按照PKI的設計)進行保存,則不可避免地會出現單點故障和信任。類似地,跨多個域的累加器狀態的同步和認證將難以實現,所以DCIMB選擇了區塊鏈技術來維護全局狀態并存儲和尋址DID文檔,DCIMB在聯盟區塊鏈系統中維護累加器狀態,而用戶的影子身份數據(如指紋、公鑰等)則存儲在鏈下。
如圖1所示,不同信任域中的已識別實體通過單向累加器證明其身份有效性,每個域中的IdP證明了有關其身份的附加信息,不同信任域的IdP基于聯盟區塊鏈系統和共識協議對身份有效性、IdP權限和跨域認證達成一致,對于跨域認證,身份依賴方讀取被認證方的DID文檔,DID URI尋址該文檔,它通過被認證方提供的累加器憑證來確認身份的真實性,身份附加屬性的真實性可以通過與被認證方域中的IdP通信來確認。

圖1 DCIMB系統架構
DCIMB的核心數據結構是單向累加器,像Merkle樹一樣,單向累加器提供了集合成員的有效包含證明,大大節省了識別的存儲成本。在單向累加器的基礎上,DCIMB構造了一系列用于用戶身份管理和身份驗證的基本組件。
DCIMB中的單向累加器借鑒了參考文獻[17]中提出的無碰撞累加器,特別地,下列5種多項式時間算法用于單向累加器。
(1)AccGen(1k)→a0:概率生成算法接受秘密參數k,并為空累加器生成初始累加值a0;
(2)AccAdd(a,y)→(a',w):接受當前累加值a和要累加的數據y,累加后輸出值a'和要見證的元素w;
(3)AccWitAdd(w,y)→w':輸入要累加的數據y和當前見證w,輸出新的見證w';
(4)AccVer(a,y,w)→b∈{0,1}:輸入當前累加器的累計值a、要驗證的數據y、要見證的w,如果y屬于累加器,則返回1,否則,返回0;
(5)AccDel(aux,a,y)→a':輸入trapdoor函數aux,累加值a和要刪除的數據y,刪除y后輸出新的累加值a'。
密碼學中的累加器可以快速確定元素是否屬于特定集合的一種方式,在DCIMB中,累加器的內容是鍵值對(did,pk),其中did是給定的身份標識符,pk是對應的公鑰,對于任何有效的識別密鑰對(did,pk),有:
AccVer(a,(did,pk))=1
(1)
式1稱為單向累加器的包含證明,a為累加器Acc的累加值。
由于身份必須是可公開驗證的,整個區塊鏈網絡需要維護一個通用的全局累加器狀態來支持所有節點的身份驗證,每次創建、更新或撤銷公鑰時,處理交易的礦工都需要更新累加器并將更新后的累加器值a'添加到累加器的信息中,由于累加器的共同可檢查性屬性,網絡中的任何節點都可以檢查更新的累加器a'是否正確包含新值并驗證計算的正確性。此外,由于累加器公開存儲在區塊鏈中,因此累加器難以破解,避免了對累加器初始化的欺騙。
除了標記和驗證主身份的有效性外,單向累加器還用于快速驗證影子身份是否屬于主要身份,即驗證影子身份的合法性。圖2顯示了DCIMB中的影子身份驗證,其中m和n分別是信任域的數量和每個域中的賬戶數量,sidi,j表示第i個信任域中的第j個影子身份。如圖2所示,除了全局累加器狀態外,每個主身份都需要一個單向累加器來累加其他身份證書,例如指紋和密碼。主身份did擁有的累加器記錄為Accs(did),這個累加器不需要全局可見,由于單個身份的累積數據有限,因此Accs(did)使用Merkle哈希樹構建,第i個影子身份累加器的中間狀態表示為midi,在全局累加器ACCg中維護。

圖2 DCIMB中的影子身份驗證
為了更好地表示用戶的身份和屬性,DCIMB中將用戶身份分為主身份idm和影子身份id,分別表示用戶的唯一身份和屬性身份,主標識用于唯一標識區塊鏈網絡中的用戶,DID通常與存儲與身份信息和認證相關的其他元數據的DID文檔相關聯。如圖3所示,主標識由一個DID(例如,DID: exmp:1234567890abcde)或一個有意義的層次命名標識符(例如,DID: exmp:/cn/guangzhou/pku/2021/chenlijun)唯一確定,在主標識的DID文檔中,存儲一個主公鑰pkm,主公鑰密鑰用于發布其他身份類型,而與pkm對應的私鑰skm用于撤銷已發布的身份信息。

圖3 DID映射到文檔的示意圖
DID的機制可以看作是一個分散的鍵值數據庫,通過用戶身份提供對DID URIs和DID文檔的訪問,DID文檔的目的是描述公共密鑰、身份驗證協議和服務端點,以指導與已識別實體的加密和可驗證交互,DID文檔格式中id字段是與該文檔相對應的DID URI,認證字段提供了一組在線主公鑰,公鑰用于加密和其他加密操作,這些操作是身份驗證或與服務端點建立自治愈通信的基礎。此外,公鑰可能在DID CRUD操作的授權機制中發揮作用,如果在DID文檔中不存在公鑰,則必須假定該密鑰已被撤銷或未被驗證,包含被撤銷密鑰的DID文檔還必須包含或引用被撤銷密鑰的信息。
DID文檔還提供了一組服務端點,即文檔的服務字段,服務端點可以代表身份主體提供的任何服務,包括用于進一步發現、身份驗證、授權或交互的分散身份管理服務。
主標識是用戶的唯一標識,然而,在許多身份驗證場景中,不需要顯示真實的身份,此外,由于特定類型的身份憑證(如指紋)的特征,主身份有時不能直接關聯,因此,在某些特定的場景下,需要使用影子身份進行身份驗證和識別。
影子身份標識可以是鑰匙、密碼或其他生物特征信息,主標識可以與多個影子標識相關聯,這些影子標識可以證明特定的用戶屬性,如年齡和性別或主標識授予的權限,給定一個影子標識id,它可以確定這些id是否屬于一個特定的主標識idm,除了idm所有者之外,其他用戶無法根據idm找到相應的id集合(無論是idm還是pkm),有效保護用戶隱私和身份安全。
在DCIMB中,每個物理用戶或設備由DID唯一標識,DID可能有多個密鑰對,用于發出不同的標識屬性,DID標識所有者可以從鏈外私有存儲的文檔中讀取與該標識關聯的所有公鑰和文檔,但是,不能直接從公鑰獲取用戶的DID身份,身份操作包括系統中的身份注冊、身份更新、身份撤銷和身份驗證,該文將DID的公鑰集標記為Gdid,用戶為Gdid生成的累加器記錄為ACCdid。
2.4.1 身份登記
在身份注冊操作中,身份所有人首先將交易發布到鏈上,其中did為要發布的身份標識符,pkon和pkoff分別為身份所有人的在線和離線公鑰,σon和σoff分別是身份所有者的在線私鑰pkon和離線私鑰pkoff的簽名,即:
Treg= ((did, register, online, values)=
(pkon,σon),(did,register, offline, values)=
(pkoff,σoff))
(2)
σon= sig(skon,did)
(3)
σoff= sig(skoff,did)
(4)
挖掘節點驗證接收到的交易,如果下列條件沒有被占用,均滿足,則身份登記視為有效,交易確認,否則,交易操作將被忽略,對于條件(5),可以通過全局維護的累加器來判斷是否有一對(did,pk′)滿足pk′ ≠ pk。
(5)
身份登記流程如圖4所示。當注冊一個標識時,DCIMB首先檢查用戶的累加器是否存在,如果不存在,將創建一個新的累加器,塊礦機執行概率生成算法:
AccGen(1k)→a0
(6)

圖4 DCIMB中的身份注冊過程
初始值a0被寫入創建的塊Bk,同時,累加器的秘密參數(如trapdoor函數)被離線密鑰安全地存儲在鏈下存儲系統中,所有接收到塊Bk的節點都將驗證創建累加器的正確性,如果驗證失敗,則直接丟棄該塊,否則,累加器a0將被確認保存。
身份注冊成功后,用戶需要主動更新全局單向累加器值ag,以確認用戶身份的合法性:
(7)
此外,用戶需要更新鏈上的身份累加器,并為已注冊的用戶生成單向累加器:
AccGen(did,1k)→a0
(8)
此步驟用于初始化用戶賬戶狀態。
2.4.2 身份更新
隨著授權身份的增加,需要不斷地向Gdid添加一個鍵,相應地,累加器的值也需要更新,在用戶主動授權pki之后,操作將被執行,其中a'是did的累加器更新后的累加值,pki身份所有者持有w以證明該身份已被did授權。
AccAdd(did,pki) → (a',w)
(9)
當身份所有者希望使用新的公鑰pknew而不是舊的公鑰pkold時,事務將被發布在如下的表達式中,為使用舊私鑰skold的did和pknew的簽名,它確保標識所有者不能篡改更新與did相對應的公鑰信息。
Tupd= (did, update, values=(pkold, pknew,σ1,
σ2, aux))
(10)
σ1= sign(skold, (did,pknew))
(11)
σ2= sign(sknew,did)
(12)
為使用新的私鑰sknew的did簽名,證明身份所有者對pknew的所有權,aux字段包含當pk或sk泄漏時撤銷密鑰對的輔助信息。
當區塊鏈網絡中的礦機接收到Tupd時,檢查式(13)的條件,如果不滿足式(13)的任何條件,事務將被忽略,其他接收到該塊的節點也會驗證Tupd的有效性,如果檢測失敗,則丟棄該塊。
(13)
2.4.3 身份認證
在傳統的基于區塊鏈的身份管理系統中,由于區塊的僅追加特性,需要遍歷整個鏈中的所有區塊來確定身份的有效性,身份驗證的時間復雜度為O(n),其中n為網絡的身份號。為了降低時間復雜度,該文提出了一種基于單向密碼累加器的身份驗證方案,身份認證函數接受用戶提交的參數did、pkm和將要見證的w,判斷式(14)條件是否合適,該操作的時間復雜度為O(1),因為全局累加器的值ag對區塊鏈網絡中的所有節點都是可見的,所以任何節點都可以作為身份驗證節點。
AccVer(ag,(did,pkm),w)=1
(14)
2.4.4 身份撤銷
傳統的PKI系統使用證書撤銷列表或在線證書狀態協議發布身份撤銷信息,在DCIMB中,標識符和公鑰之間的綁定關系通過發送區塊鏈交易來釋放,具體來說,IdP或身份所有者將向區塊鏈發送撤銷交易,礦機節點收到撤銷交易后,將檢查以下條件是否滿足,如果不滿足這些條件中的任何一個,撤銷交易將被忽略,否則,交易是符合的,礦工將刪除公鑰并更新全局累加器值。
Trevo=((did, revocation,online,values) =
(pkon,σon), did, revocation,offline,values=
(pkoff,σoff))
(15)
(16)
AccDel(aux,ag, (did,pkon))→ag
(17)
2.4.5 跨域身份驗證
跨域認證的前提是建立不同域之間的信任關系,不同信任域簽發的身份證書具有不同的證明效果,為了鼓勵區塊鏈網絡中的節點執行誠實認證并懲罰虛假身份證書,這些必須包括控制和管理連接節點的機制,因此,DCIMB采用聯合體區塊鏈,財團區塊鏈是一個被許可的區塊鏈,只允許一組預先選定的節點進行計費,而其他節點只能參與交易。
圖5給出了跨域認證的總體流程。對于跨域認證,域B的身份依賴方(通常也是認證方)RPb首先將交易Tver(idi,wi)發布到鏈上,其中idi是請求認證的參與方,wi是驗證其身份組的參與方,在域A中的任何可用IdP(記錄為IdPA)接收到Tver后,它根據wi驗證該交易屬于在域A中注冊的身份,如果RPB不需要進一步驗證idi的公鑰,IdPA可以直接向RPB確認身份,否則,IdPA搜索與idi對應的pki并返回公鑰信息。

圖5 DCIMB中的跨域認證過程
在本部分中,從安全、可擴展性和跨域認證三個方面對DCIMB的性能進行了評估,構建了一個基于以太坊的財團區塊鏈,并實現了一個DCIMB原型系統,系統部署在四臺高性能服務器上,硬件參數如表1所示。在該文的原型系統中,Docker用于發布以太坊節點的多個應用圖像,由此建立了一個簡單的20個節點的區塊鏈網絡。

表1 原型系統硬件配置
由于在DCIMB中,一個實體的標識信息的有效性由單向累加器保存,單向累加器的安全性直接決定了標識的安全性,Camenisch J和Lysyanskaya A在參考文獻[17]中提供了單向累加器安全性的證明,由于篇幅的限制,這里就不作進一步的分析了。另一方面,身份實體使用基于非對稱加密的會話密鑰協商機制與IdP和認證方進行通信,位于認證過程中的公鑰是唯一的、防篡改的,可以由雙方獨立確認,另外,即使在認證會話中協商的密鑰被泄露,攻擊者也無法獲得用戶的私鑰和累加器憑證,因此,他們不能在保證簽名完整性的同時篡改通信數據,該特性使DCIMB能夠有效地防止中間人攻擊。
為了進一步測試系統的安全性,該文生成了三組身份公鑰對,每組10萬對,這三個數據組分別對應有效的標識、被篡改的標識和不存在的標識,該文的原型系統對這些公鑰對的認證結果如表2所示。所有有效身份的公鑰對都能成功通過認證,但是,對于被篡改的身份或不存在的身份,所有身份驗證都失敗,雖然這個實驗不能完全模擬所有的惡意攻擊,但足以證明系統的安全性。

表2 不同身份公鑰對的認證結果
對于以比特幣為代表的區塊鏈系統來說,可擴展性的主要限制是共識算法效率低,比特幣系統需要所有節點對每一筆交易達成一致,以確保網絡中的數據一致性,因此,如果采用類似于比特幣的公共區塊鏈系統,大量用戶身份信息的實時更新將給整個鏈帶來巨大的性能壓力;另一方面,如果采用像Certcoin這樣的方案,將用戶的身份信息保存在鏈上,整個區塊鏈網絡的賬簿規模將是巨大的,此外,為特定用戶檢索和更新身份數據的時間復雜性也很高。
DCIMB在兩個方面優化了可擴展性。首先,基于聯盟區塊鏈機制,采用隨機算法選擇共識節點,降低共識形成成本;其次,與現有的Certcoin系統不同,DCIMB中采用了累加器,取代了存儲證書、指紋等用戶身份數據的順序塊結構,添加新用戶標識只需要對單向累加器的內部狀態進行訪問和簡單的模求冪,而且,對于頻繁的用戶身份驗證操作,它更加簡單,它只需要兩個大整數的模冪,這取決于累加器的比特數,從而大大降低了查找圖書數據的時間成本,提高了系統的性能和吞吐量。
為了測試DCIMB的可擴展性,通過GnuPG加密套件生成了大量的密鑰對,并隨機分配它們來識別系統中的實體,該文以傳統的基于UTXO的區塊鏈身份管理系統Certcoin作為評估基準,值得肯定的是,Certcoin是最具代表性的基于區塊鏈的身份管理系統,它不僅具有對認證機構的開放性和適用性,而且具有分散的信任網絡和無單點故障的優點。首先,測量了單域認證中認證延遲與身份數量之間的關系,圖6為域中節點數為5的實驗結果。從圖6可以看出,Certcoin的認證延遲是線性增加的,這是因為Certcoin需要遍歷所有塊來驗證用戶的公鑰的有效性,相比之下,對于DCIMB,身份驗證時間不受累積身份數量的影響。

圖6 單域場景下不同身份數的認證延遲
在本節中,首先測量隨著域數量的增加而跨域身份驗證的延遲,逐漸增加域的數量,并在每個域固定1 000(id,pk,w)的條件下測量身份驗證所需的延遲,實驗結果如圖7所示。隨著域數量的增加,傳統的認證方法需要在不同的域之間達成一致,這導致認證時間呈線性增長,然而,DCIMB將跨域身份驗證委托給域中的任何節點(IdP),確保了大約恒定的時間復雜度。

圖7 不同域數量下的認證延遲
對于跨域認證的性能,還有兩個重要的指標:
(1)重復跨域認證的延遲,隨著身份數量的增加而增加;
(2)重復跨域認證的延遲。
該文使用Docker生成15、20、25、30個不同的信任域,測試每個域中不同證書標識號下的認證延遲變化趨勢,實驗結果如圖8所示。從圖8可以看出,無論信任域數量是多少,隨著身份號的增加,DCIMB的延遲總是增長非常緩慢。這是因為該文引入了單向累加器作為身份驗證的數據結構,DCIMB可以通過單向累加器判斷身份數據是否存在于有效集合中,且時間復雜度接近常量,隨著信任域的增加,DCIMB的認證延遲總是保持在10秒之內,然而,Certcoin最壞情況下的延遲超過1分鐘,這在實時性要求較高的情況下是不可接受的。

圖8 對于15個域,不同數量的身份驗證延遲
為了測試重復跨域認證的延遲,該文在系統中生成了4萬個身份公鑰對,并將它們均勻地分布在不同的信任域中,在不同的信任域之間重復執行30次認證操作,對應的延遲如圖9所示。對于傳統的基于區塊鏈的認證系統,重復跨域認證所需的時間比DCIMB更差,第一次認證后,DCIMB獲得了身份證書,其他域的IdP會緩存該證書的有效性,因此,DCIMB支持快速身份驗證,而不必每次都檢索存儲節點。

圖9 30次重復認證操作后的認證延遲
傳統的集中式認證系統由于過度依賴中心,容易出現單點故障風險和隱私保護問題,為了解決這些問題,設計了一種基于區塊鏈的去中心化跨域身份管理系統(DCIMB),并對系統性能進行了評估,證明了該系統的可擴展性和跨域認證效率得到了有效提高。