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

區塊鏈系統身份管理機制研究綜述

2024-01-18 16:52:06李馥娟
計算機工程與應用 2024年1期
關鍵詞:用戶系統

李馥娟,馬 卓,王 群

1.江蘇警官學院 計算機信息與網絡安全系,南京 210031

2.計算機軟件新技術國家重點實驗室(南京大學),南京 210093

信息系統的出現和應用,中心化管理機制一直發揮著關鍵作用。直到1998 年,亞裔密碼學家戴維(Wei Dai)提出了B-money[1]設計架構,其核心思想是通過一組協議來構建一個集體記賬、不可追蹤、去中心化的分布式匿名電子現金系統,以打破傳統系統中心化機制存在的種種弊端,但B-money 只提供了一個功能描述,并沒有代碼實現。2008 年,自稱為中本聰(Satoshi Nakamoto)[2]但其真實身份未知的神秘作者發表了一篇名為Bitcoin:a peer-to-peer electronic cash system的論文,描述了一種稱之為比特幣(Bitcoin)的加密數字貨幣,其算法實現的核心是一項以去中心化的分布式賬本為基本特征,以P2P傳輸、共識機制、密碼學、博弈論、經濟學等眾多技術和理論為保障的區塊鏈(blockchain)技術[3]。2009 年1 月3 日,根據中本聰設計方案開發的比特幣系統正式上線,印證了區塊鏈技術的可行性,也使去中心化從概念和設想變成了現實。至此,區塊鏈技術開始引起學術界和產業界的普遍關注,社會各領域力求借助區塊鏈技術在解決傳統系統中遇到的一些問題和困擾的同時,以其創新技術來催生新的發展范式。區塊鏈新型應用范式的出現引發了用戶身份管理機制的變革,也促使學術界和產業領域加快了對區塊鏈系統身份管理技術的研究。

在人際交流和社會管理中,身份特指人的出身和社會地位,身份管理既包括屬于人力資源管理范疇的以自然人為對象的實體身份管理,也包括屬于信息管理范疇的與自然人相對應的線上身份、組織機構代碼身份以及智能設備編址身份的管理。IET(International Electrotechnical Commission,國際電子技術委員會)將信息系統的“身份”定義為“一組與實體關聯的屬性”,這里的實體包括自然人、組織機構、智能設備等可以被信息系統識別和管理的對象。傳統的身份管理(identity management,IDM)是賬號管理、認證管理、授權管理和審計管理解決方案的統稱,稱之為4A(賬號-account,認證-authentication,授權-authorization,審計-audit)。由于區塊鏈提供的是一種去中心化的底層服務,主要通過共識機制實現不同節點之間的協同,從而在一個不可信網絡環境中共同維護同一個分布式賬本,所以在討論區塊鏈中的身份管理時一般主要集中于身份標識和身份認證兩個方面,有關資源授權功能則由上層應用系統來實現,而區塊鏈賬本的公開性也使針對用戶訪問的審計功能失去了效能。W3C(World Wide Web Consortium,萬維網聯盟)分布式標識符工作組也在文獻[4]中將區塊鏈身份管理分為身份標識和身份認證(包括身份證明和身份驗證)兩部分。為此,本文重點從身份標識和身份認證兩個方面討論區塊鏈的身份管理技術,不但符合區塊鏈作為底層技術的特點,也反映了統一身份管理技術的發展趨勢,同時能夠抓住問題的關鍵,聚焦核心技術的分析和主要問題的解決。

在以身份標識和身份認證為重點的區塊鏈身份管理研究中,國內姚前等人[5]重點針對隱私保護需要綜述了區塊鏈中的身份管理技術涵蓋的主要內容;宋靖文等人[6]借鑒門羅幣中的身份隱私保護方法,設計了針對公有鏈中基于匿名身份認證的可監管的交易隱私保護方案;佘維等人[7]針對區塊鏈隱蔽通信,提出了一種可以實現對敏感文檔和發送者身份信息進行隱藏的區塊鏈隱蔽通信模型。在國外研究方面,Genkin等人[8]在回顧了基于區塊鏈的加密數字貨幣中隱私保護實現機制的基礎上,重點對不同實現機制功能特點進行了對比分析;Dunphy 等人[9]在系統介紹區塊鏈身份管理特點和存在不足的基礎上,選擇了幾個典型的區塊鏈身份管理系統進行了分析;Buccafurri 等人[10]針對區塊鏈公鑰地址在交易過程中存在的偽匿名特征,提出了一種基于身份加密(identity-based-encryption,IBE)的解決方案,以提高身份的匿名性。上述工作多針對加密數字貨幣為代表的公有鏈環境,主要以用戶隱私保護為目的,集中于解決用戶身份隱藏中涉及的具體技術,也有部分對一些區塊鏈身份管理系統的功能實現和技術特點進行了比較分析。但并未對區塊鏈系統身份管理技術涉及到的結構、方法、特征及適用性等內容進行系統研究和全面梳理。此外,隨著區塊鏈技術的日臻成熟和應用領域的不斷拓寬,區塊鏈技術應用場景也被細分,但現有工作并未進行有針對性的分類研究。本文對近年來區塊鏈系統管理技術進行了較為全面的梳理,對比分析了傳統系統和區塊鏈系統身份管理的主要差異,系統闡述了區塊鏈系統身份標識和身份認證機制,其中,針對區塊鏈系統身份標識特點,從公鑰密鑰、數字證書和去中心化數字身份3個方面進行了分類分析,針對公有鏈和聯盟鏈(包括去中心化程度更高的私有鏈)特征,分匿名身份認證、實名身份認證和可控匿名身份認證3類應用場景討論了區塊鏈身份認證模式的實現方法。最后,針對公有鏈和聯盟鏈身份管理技術的差異性,分類對相關技術的未來發展進行了展望。

1 區塊鏈身份管理特點

1.1 傳統系統與區塊鏈系統的對比分析

在身份管理機制方面,傳統系統與區塊鏈之間的區別在于:首先,區塊鏈系統采用去中心化機制,身份標識和安全驗證都是構建區塊鏈技術的內生要素和核心組件。而對于中心化的傳統系統而言,安全和身份管理一般只作為系統的附加配置,是否需要為每個用戶賦予唯一身份和分配相應權限,可由中心化的身份管理和認證中心來實現;其次,區塊鏈的身份管理和安全機制一旦確定將無法變更,否則將會導致區塊鏈的硬分叉而產生新的系統。而傳統系統可通過對中心化系統的升級,以打補丁方式解決發現的一些身份管理和安全問題;還有,區塊鏈系統采用了經濟獎懲機制,在對忠誠礦工進行獎勵的同時,將使惡意節點對其作惡行為付出經濟代價,以此來保障系統運行的安全性。傳統系統中針對用戶身份的管理多采用凍結或關閉用戶賬戶的單一模式,無法實施對用戶的有限度懲戒;再者,區塊鏈系統中為了實現中心化機制,必須全網公開所有的交易記錄,并利用共識機制對交易進行背書和驗證[11]。而在傳統系統中,所有事務都由中心化機制進行統一驗證和確認,而且驗證內容、過程和結果都控制在封閉環境中,不對外公開;同時,傳統系統的中心化機制將權利全部集中于平臺,平臺擁有用戶創造的數字資產,并對用戶及資產進行集中管理,由用戶資產創造的價值也歸平臺所有,但由用戶不當操作造成的不良后果則由用戶承擔,平臺一般只負責監管責任。這種高度中心化的管理模式和資源壟斷方式使傳統系統在發展過程中遇到了瓶頸,所以在區塊鏈技術出現后,中心化與去中心化之爭自然而然地引起了各方面的高度關注,而去中心機制在眾各領域蘊藏的諸多價值和變革引發了一輪信息技術的應用創新。

綜上分析,區塊鏈系統在打破了傳統系統中央控制機制存在的種種弊端的同時,也對參與實體的身份管理提出了挑戰。如何在開放網絡環境中,在互不信任的節點之間實現用戶身份標識和身份認證,對深入研究區塊鏈系統的身份管理機制,進而實現信息發現和價值挖掘具有重要意義。

1.2 區塊鏈交易模型

區塊鏈系統以鏈式結構的分布式賬本形式來管理數據,用戶與交易關聯,通過共識機制將交易打包進區塊,在挖礦過程中勝出的礦工將新區塊追加到鏈尾(同時獲得系統一定金額的挖礦獎勵),由此形成一條以區塊為單位的前后有序連接的區塊鏈。由于區塊鏈起源于以比特幣為代表的加密數字貨幣,所以在相關的應用和研究中大家習慣于借用加密數字貨幣的場景來描述區塊鏈中的概念和模型。因此,針對與用戶身份最緊密的交易對象,按照記賬方式的不同,可將區塊鏈交易模型分為以比特幣為代表的UTXO(unspent transaction outputs,未花費的交易輸出)模型[12]和以以太坊為代表的賬戶(account)余額模型[13]。同時,交易模型決定了區塊中交易的組織和管理模式,為此,針對比特幣的UTXO 模型提供了默克爾樹(Merkle tree)[14]組織交易,而針對以太坊的賬戶余額模型提供了默克爾帕特里夏樹(Merkle patricia tree,MPT)[15]組織交易。

1.2.1 UTXO模型

UTXO模型因比特幣的興起而進入人們的視野,隨后大量公有鏈(如零幣[16]、門羅幣[17]、維基幣[18]等)和一些聯盟鏈(如Fabric[19]、Corda[20]、BigBang Core[21]等)廣泛采用該模型。本小節選取比特幣應用場景,分析UTXO模型和默克爾樹的工作原理與應用特點。

UTXO模型與賬戶模型不同,不存在具體的用戶賬戶來記錄詳細的交易過程和結果,而提供的是一個與具體交易地址相關聯的交易關系和交易金額的集合,是一個包括了交易數據和可執行代碼的數據結構[22]。如圖1 所示,在UTXO 模型中,每一筆交易(transaction)都由交易哈希(Tx_hash)、交易輸入(Inputs)和交易輸出(Outputs)3個基本屬性組成,相關描述如表1所示,其中交易哈希用于唯一地標識本筆交易,每筆交易可能存在多個輸入和輸出。當產生一個交易輸出時,該輸出被鎖定,只有在進行下一步交易時由該用戶的私鑰進行解鎖,同時,在一筆交易中需要調用一個未花費的交易輸出作為本筆交易的輸入時,也只能由該用戶進行解鎖操作,以此來防止雙重花費的發生。一筆交易的完整過程其實質是對一定數量的輸入和輸出的封裝,并對封裝結果用交易哈希進行標識。UTXO 模型具有良好的可擴展性,并在一定程度上提供了對交易隱私的保護功能。

表1 UTXO模型的屬性功能描述Table 1 Description of attributes of UTXO model

圖1 UTXO模型中的交易結構Fig.1 Transaction structure in UTXO model

作為比特幣等主流區塊鏈系統使用的數據結構,默克爾樹利用基于哈希值的二叉樹結構實現對交易數據的組織和完整性驗證。默克爾樹是一種特殊的哈希列表(Hash list),其葉子節點存放交易數據的哈希值,依次將相鄰兩個哈希值串接后再計算其哈希值,將得到上一層節點的哈希值。依此類推,將最后形成的默克爾根(Merkle root)寫入區塊頭部指定的字段。默克爾樹為大規模數據結構提供了針對交易數據的快速查詢和針對區塊數據的高效校驗功能,其中,當一個區塊中打包進N個交易時,查詢某個交易是否存在于該區塊的算法復雜度為lbN。同時,利用區塊頭部字段信息的完整性和穩定性,可以使得區塊頭部只保存默克爾根而不需要封裝底層的數據,使得區塊鏈可以脫離底層數據而在計算能力和存儲空間有限的智能終端或物聯網設備上運行,并支持輕量級的SPV(simplified payment verification,簡化支付驗證)[23]協議。

在UTXO模型中,每筆交易的輸入和輸出都對應一個唯一的可動態生成的交易地址,用戶與交易地址之間沒有顯性的對應關系,交易地址為用戶的假名。根據交易需要,同一用戶可能會隨機生成多個不同的交易地址。同一筆交易中的不同輸入和輸出地址也可能屬于同一個用戶。雖然區塊鏈中的賬本是公開的,但從公開賬本中直接得出真實用戶身份的可能性是很小的。目前,也有研究者通過大數據分析技術,借助機器學習等方法,并利用網絡地址、論壇公開信息等鏈下數據可以窺探出部分交易地址之間的關系以及交易與用戶之間的關聯性[24]。為解決上述問題,可通過信息混淆機制對交易信息進行混淆,隱藏輸入地址與輸出地址之間以及不同交易地址之間的關系,增加隱私保護能力。加密數字貨幣中的混淆技術稱為“混幣技術”[25],根據是否借助第三方機構的不同,可以分為中心化混幣技術和去中心化混幣技術兩種類型,與中心化混幣技術相比,去中心化混幣技術由于無須第三方機構的參與,所以技術實現更便捷,方案實施更安全。

1.2.2 賬戶余額模型

賬戶余額模型是一種類似于銀行賬戶的傳統交易模型,賬戶與用戶相對應,交易在賬戶之間進行,所有賬戶信息、交易記錄、當前余額都存儲在賬戶中。除以太坊外,EOS(enterprise operation system,商用操作系統)[26]、WisdomChian[27]、CITA[28]等使用賬戶余額模型。

以太坊使用賬戶余額模型的初衷是為了更好地支持智能合約,因為智能合約需要一個相對穩定的身份,而不是像UTXO 模型那樣頻繁地生成交易地址。以太坊中的賬戶分為外部賬戶(external owned account)和合約賬戶(contract account)兩種類型,其中外部賬戶由私鑰創建并用于交易和執行合約代碼,而合約賬戶由外部賬戶或其他合約賬戶創建,且擁有一個賬戶地址,用于存儲合約代碼以及與合約相關的數據。

以太坊使用MPT 組織和管理用戶的賬戶數據,并生成區塊中交易集合的哈希值。比特幣中的默克爾樹無法描述交易的資產持有者、合約狀態等信息,而MPT通過融合默克爾樹、Patricia 樹和Trie 樹的數據結構特點[29],從而形成一種基于密碼學的自校驗、防篡改的數據結構。為了盡可能降低樹的高度,進而降低操作的復雜度,MPT 采用RLP(recursive length prefix,遞歸長度前綴)編碼來組織數據,引入了空(empty)節點、葉子(leaf)節點、擴展(extension)節點和分支(branch)節點類型,分別采用鍵/值(key/value)對來存儲數據,將除葉子節點外的其他節點的數據存儲在LevelDB 關系型數據庫中。

只有滿足應用需求的技術才是最優的。有關UTXO模型和賬戶余額模型在交易的可追溯性、計算復雜度、空間(計算和存儲)占用、可擴展性、可編程性、應用的靈活性和對跨鏈操作的支持等方面的比較如表2所示。

表2 UTXO模型與賬戶余額模型主要性能比較Table 2 Main performance comparison between UTXO model and account balance model

2 區塊鏈身份標識機制

身份標識是指信息系統中用于識別用戶身份唯一性的一種方法。區塊鏈系統采用密碼學算法生成身份憑證(身份標識符)。無論采用UTXO 模型還是賬戶余額模型,區塊鏈系統都必須建立身份標識機制來確定用戶的數字資產的權屬,再通過身份認證機制來確保交易行為的可信性和可確認性。具體而言,目前的公有鏈由于強調匿名性,所以多基于公鑰密鑰算法實現對用戶身份的標識,一般用公鑰作為身份憑證,用對應的私鑰實現對身份的驗證。而在聯盟鏈環境中,一般需要對用戶身份進行實名認證,所以聯盟鏈系統多直接采用傳統系統中已成熟的基于PKI(public key infrastructure,公鑰基礎設施)來管理用戶身份,利用數字證書作為用戶的身份標識。其實,不同區塊鏈環境下生成用戶身份憑證時都采用了公鑰密鑰算法,只是在不同類型區塊鏈中的實現方法不同。

2.1 基于公鑰轉換的身份標識機制

為實現交易的匿名性,有效保護用戶隱私,比特幣、零幣、門羅幣等基于公有鏈的加密數字貨幣采用開放網絡架構,提供無準入機制的匿名身份認證模式。用戶利用錢包工具,基于公鑰密鑰算法生成和管理自己的身份,即通過公鑰派生出身份標識符,用對應的私鑰簽名完成身份認證。

目前,區塊鏈系統一般采用公鑰密鑰算法中基于橢圓曲線數學的橢圓曲線密碼(elliptic curve cryptography,ECC)算法來生成用戶身份標識,依賴于橢圓曲線離散對數問題的困難性實現身份管理的安全性[30]。以比特幣為例,采用了加拿大Certicom公司推薦的secp256k1橢圓曲線密碼算法實現用戶的身份標識和驗證。比特幣用交易地址(Tx_Address)來間接地標識用戶身份,具體由secp256k1 算法生成的公鑰(key_pub)經SHA256和RIPEMD160 兩次哈希運算生成的160 bit 的字符(具體為40 位十六進制數)來表示,其運算過程為(實現過程如圖2 所示,其中Base58Check 編碼用于將比特幣中的字節數組編碼為可分類、易讀的字符串):

圖2 區塊鏈交易地址的生成過程Fig.2 Blockchain transaction address generation process

Tx_Address=RIPEMD160(SHA256(key-pub))

每筆交易地址對應的私鑰存放在用戶端的錢包中,只有通過私鑰才能訪問和使用對應交易地址中鎖定的資產,一旦私鑰丟失或被竊取,對應交易地址中的資產將全部丟失。區塊鏈錢包的功能不僅僅是用戶私鑰的創建、存儲和運用,還包括交易地址的生成。以比特幣為例,其公鑰密鑰對的生成有兩種方法:一種是利用錢包通過偽隨機數生成器(pseudorandom number generator,PRNG)生成一個256 bit 的私鑰,然后使用橢圓曲線數字簽名算法(elliptic curve digital signature algorithm,ECDSA)再生成對應的公鑰;另一種方法是將錢包中的私鑰作為種子(seed)密鑰,再利用密鑰派生函數(key derivation function)生成真正用于交易的私鑰,然后再通過橢圓曲線生成公鑰。后一種錢包稱之為HD(hierarchical deterministic,分層確定性)錢包[31]。為此,錢包中首先生成私鑰(private key),然后利用私鑰生成公鑰(public key),再利用公鑰經轉換后生成地址(address),3者之間的關系如圖3所示。

圖3 比特幣私鑰、公鑰和地址之間的關系Fig.3 Relationship between private key,public key,and address of Bitcoin

HD 錢包也稱為“身份錢包”,采用分層確定性算法通過對種子密鑰的逐層擴展得到私鑰,繼而得到擴展公鑰和地址。HD錢包是目前廣泛使用的虛擬貨幣錢包標準,錢包中密鑰對的生成過程在BIP(Bitcoin improvement proposal,比特幣改進建議)32[32]中進行了詳細描述,具體過程如圖4所示。BIP 32建議提出使用種子生成樹形結構的密鑰,HD錢包只需要保存種子,在不同的應用場景下可通過種子派生出不同的私鑰,再由私鑰生成公鑰,直至生成地址。

圖4 比特幣HD錢包中密鑰的派生過程Fig.4 Derivation process of key in Bitcoin HD wallet

2.2 基于數字證書的身份標識機制

與以比特幣為代表的加密數字貨幣不同的是,許多聯盟鏈(如Fabric、Corda 等)需要對用戶身份進行嚴格審核后才決定是否允許其以實名方式加入,PKI作為一種建立在公鑰加密基礎上的安全架構,不但是傳統系統中提供身份認證、信息安全、訪問控制等服務的關鍵技術,同時也是強監管環境下區塊鏈身份管理的主要選擇。

PKI由硬件、軟件、人員、策略和過程等共同組了一個分布式環境基礎設施,用于數字證書的創建、分發、使用、存儲和撤銷等全生命周期的管理。通過PKI 系統,終端用戶將在分布式環境中擁有數字簽名和基于公鑰加密的數據保護能力,PKI是用于實現安全交易和通信的安全架構的基石[33]。數字證書、公鑰和私鑰、證書授權中心以及證書撤銷列表構成了PKI 的4 個關鍵要素。在PKI 中,由證書認證中心(certification authority,CA)為用戶簽發數字證書,數字證書中存放有由CA簽發給用戶的用于標識身份唯一性的公鑰,同時綁定了證書發行者對證書的簽名、證書的發行機構名稱、證書的有效期等信息。在一個完整的PKI系統中,還提供有用于認證用戶身份的“注冊機構”(registration authority,RA)、存儲已簽發證書和公鑰的“數字證書庫”、記錄已失效證書的“證書撤銷列表”(certificate revocation list,CRL)以及與應用程序之間進行對接的“應用程序接口(API)”等內容。如圖5所示,PKI用戶首先向可信CA申領數字證書,通過身份信息審核的用戶獲得經CA簽名的數字證書,并將其保存在本地計算機中,用來驗證與之通信的其他PKI用戶的數字證書鏈,以此來獲得該用戶的公鑰,從而實現對用戶身份的可信驗證。

圖5 數字證書的申領和使用過程Fig.5 Digital certificate application and use process

通常情況下,PKI由根CA(root CA)和一系列中間CA(intermediate CA)組成的信任鏈建立可驗證的身份管理體系,即采用分層結構。在該結構中,根CA一般不直接向用戶頒發證書,而由根CA 簽發的中間CA 實現對實體或用戶的證書頒發與管理,以確保CA服務的安全性、高效性和可擴展性。例如,可以在根CA 下創建CA-A和CA-B,其中CA-A頒發的證書用于實名認證,而CA-B頒發的證書用于匿名認證,使CA-A和CA-B分別服務于不同認證方式的系統。同時,也可以根據認證需要,建立根CA 下不同CA 之間的關聯,當需要進行實名認證時直接使用CA-A頒發的證書,而針對用一用戶需要進行匿名認證時,則由CA-A頒發的證書自動派生出CA-B下的證書,由被派生出的證書進行匿名認證,而且在后臺(CA 管理端)做到匿名與實名之間的關聯[34],以便于實現對用戶的監管。

2.3 去中心化身份

分布式數字身份也稱為自主管理的數字身份,它使用用戶自己獨立擁有的數字標識符和可驗證憑據來實現受信任的數據交換,其目的是使用區塊鏈、分布式賬本和公鑰密鑰加密技術來保護隱私,實現安全的在線交互。基于區塊鏈技術的去中心化身份(decentralized identity,DID)是一種不依賴于中心化機構作為信用背書的數字身份,目前主要有W3C的DID[35]和DIF(decentralized identity foundation,去中心化身份基金會)的DID[36]兩個標準。其中,W3C 的DID 主要致力于“DID規范”(DID specification)和“可驗證憑證”(verifiable credentials,VC)兩個方面展開研究,如圖6 所示;而DIF的DID 目標是通過創建通用的身份驗證協議以提高區塊鏈系統的互操作性,推動基于開源代碼的去中心化標準的創建。需要說明的是,雖然區塊鏈技術不是DID的必選項,但從目前的技術實現來看,區塊鏈技術能夠有效地推動DID技術的實現和應用推廣,便于以較低成本實現DID 信任體系的構建。為此,本節選取W3C 的DID,主要基于區塊鏈技術的DID進行闡述。

圖6 W3C的DID組成Fig.6 W3C DID composition

2.3.1 DID規范

DID 規范由DID 標識符和DID 文檔兩部分組成。其中,DID 標識符是一個去心化的全局標識符,是實現自主身份(self-sovereign identity,SSI)[37]的基本身份標識。利用DID可以在實體之間建立可信的通道,實現信息交換和身份認證,而無需任何中心化機構的干預。DID規范通過使用生成具有足夠熵的128位值的算法,使得在DID 標識符集合中幾乎不可能出現兩個完全相同的DID標識符,實現了DID標識符在身份識別空間的唯一性。由于DID建立在區塊鏈技術上,所以DID標識符的生成和管理不需要依賴于PKI中的CA或其他任何第三方,使得用戶的身份信息完全掌控在自己手中。

DID標識符是通過DID URL關聯到描述目標對象的DID文檔(DID document)的唯一標識符,即通過DID標識符能夠在注冊數據庫中找到與之對應的DID 文檔。DID 標識符的命名方式為<did:+DID method:+DID Method Specific Identifier>,示例如“did:example:123456789abcdefghi”,類似于TCP/IP 中的“http://www.http://cea.ceaj.org”。DID 標識符各字段的功能描述如表3所示。

表3 DID標識符各字段功能描述Table 3 DID identifier function description of each field

每個DID標識符對應一個DID文檔,該文檔包含有所有與實體DID 標識符相關的信息。DID 文檔是一個通用數據結構,驗證DID標識符時所有使用的公鑰信息以及采用的驗證方法(主要有公鑰驗證和數字證書)等內容都包含在該文檔中。DID 文檔通常由DID 控制器(DID controller)負責數據的寫入和更改,DID控制器既可以是實體本身,也可以是第三方機構。DID標識符與DID 文檔之間利用類似于互聯網DNS 的DID 解析器進行一對一地映射。DID 規范采用鍵/值<key/value>方式在數據庫或分布式賬本中記錄和存儲信息,其中DID標識符是鍵,而DID文檔是對應的值。DID文檔由DID實體、公鑰、身份驗證、授權、服務端點和時間戳等字段組成。

(1)DID實體(DID subject)。指該DID文檔描述的對象,通常一個實體可以同時擁有多個身份,每個身份分配一個唯一的DID以及與之關聯的公私鑰對,不同身份之間沒有關聯。每個DID文檔對應一個DID實體。

(2)公鑰(public key)。實現身份認證和其他的加密操作(如與服務端點之間建立安全通道),當DID文檔中的公鑰被撤銷或失效時,DID文檔必須包含或引用相應的撤銷列表。

(3)身份驗證(authentication)。是指DID 實體通過基于密碼學的加密方式來明證其與DID相關聯的過程。

(4)授權(authorization)。是指委托其他實體執行操作,例如,當密鑰丟失時可委托指定的實體更新DID文檔內容以恢復密鑰。

(5)服務端點(service endpoint)。用于描述實體希望公告的任何類型的服務,包括身份認證、授權、交互等去中心化身份管理服務。

(6)時間戳(time stamp)。用于證明DID 文檔自指定時間(時間戳確定的時間)后內容保護完整、未被更改。DID 文檔的內容一經更新,將會產生一個新的時間戳。

需要強調的是,每個DID標識符對應的DID文檔是獨立的,以此來實現不同DID 標識符之間的信息隔離。在進行身份認證過程中,DID標識符擁有者可以根據需要對不同的DID標識符進行授權,驗證者只能查閱被授權的DID 文檔內容,而無法獲得其他更多的信息,從而實現了DID實體的信息保護。

2.3.2 可驗證憑證

DID 標識符和DID 文檔本身都不包含實體的真實信息,如自然人實體的用戶姓名、家庭住址、手機號碼等,可驗證憑證規范的主要功能便是建立DID與現實世界中實體之間的關聯。具體講,可驗證憑證用于定義可在實體之間交換的憑證格式,并提供關于實體的屬性說明。

聲明(claims)是指與身份關聯的屬性信息,它是一種斷言(assert)數字身份的方式,獨立于任何需要依賴它的特定系統。以自然人為例,聲明信息包括用戶姓名、身份證信息、受教育情況、家庭住址等內容。聲明可以由個人或組織等單一身份所有者自行發起,也可以由發行者(issuer)簽發,當一個聲明由發行者簽發時稱之為可驗證聲明(verified claims)。多項聲明的集合稱為憑證(credentials)。如圖7所示,可驗證憑證系統中的聲明通常由發行者(issuer)、驗證者(inspector)、持有者(holder)和可驗證身份注冊表(identifier registry)4部分組成,每部分的功能描述如表4 所示。其中,由請求者向發行者請求發行聲明,發行者向持有者簽發可驗證聲明,再由持有者向驗證者披露可驗證表述,最后由驗證者向身份依賴者驗證可驗證表述。

表4 可驗證憑證系統中的聲明組成Table 4 Claims in verifiable credential system

圖7 可驗證憑證模型Fig.7 Verifiable credential model

聲明(或憑證)交換的核心技術是密碼學,主要用于證明可驗證聲明或可驗證表述(verifiable presentation)[38]中信息的完整性與真實性。可驗證表述是一種防篡改描述,它來自一個或多個可驗證憑證,并由披露這些憑證的實體用私鑰進行簽名。聲明持有人可以使用零知識證明(zero-knowledge proofs,ZKP)[39]將不同聲明之間披露的信息量減至最小。憑證和對應的私鑰存放在代表實體身份數據容器的身份錢包中,身份錢包是將身份控制權置于身份所有者手中的保證。

2.3.3 DID應用場景

在去中心化數字身份系統中,實體通過向DID身份注冊機構提出申請以獲得用于標識該實體身體唯一性的DID標識符,然后依托DID標識符向發證方申請各類可驗證憑證,最后通過向身份驗證方提供DID標識符和可驗證憑證以證明自己身份的真實性和可信性,從而完成身份認證操作。在去中心化數字身份系統中,一個實體的數字身份組成如圖8所示。

圖8 實體的去中心化數字身份組成Fig.8 Decentralized identity composition of entity

目前,已經推出的DID 項目有Microsoft DID[40]、基于以太坊的分布式數字身份管理服務uPort[41]、微眾銀行推出的基于聯盟鏈身份的實體身份標識和可信數據交換解決方案Weldentity[42-43]等。例如,WeIdentity 主要包括DID 規范和Credential 兩部分,其中DID 規范模塊在FISCO-BCOS[44]區塊鏈底層平臺上實現了W3C 的DID規范,Credential 提供了一套基于W3C 可驗證憑證規范的解決方案,以新入職員工背景調查為例,首先,員工、學校、公司分別進行DID 注冊及KYC(know your customer,客戶身份識別)認證;然后,員工向學校申請學歷學位證明憑證(Credential),并向前雇主公司申請工作及離職證明憑證;接著,員工將這些憑證提交給現雇主公司,現雇主公司通過憑證驗證(verify)接口對上述憑證進行驗證;最后,如果驗證通過,現雇主公司將給該員工發放入職通知。在此過程中,任何參與身份管理的一方都沒有泄露該員工的身份信息,實現了身份信息的有效保護。

表5從實現原理、實現方式、安全性、隱私性和中心化程度等方面,對3種身份標識技術進行了對比分析。

表5 身份標識技術比較Table 5 Identification technology comparison

3 區塊鏈身份認證方式

簡單講,身份標識用于說明“我是誰”,而身份認證則用于證明“你是誰”。身份認證系統對用戶提供的身份信息進行驗證,以證明該身份的真實性、合法性和不可抵賴性。在區塊鏈系統中,交易是與用戶緊密關聯的最小數據單位,所以身份認證的功能便是確認交易者具體身份、建立交易者與交易信息之間的聯系。從安全角度出發,區塊鏈系統中的身份認證是一個確定用戶是否能夠對交易數據訪問或操作的過程,也是一個對訪問或操作者的具體身份信息進行確認并防范可能發生的抵賴現象的過程。根據應用場景和實現方式的不同,可將區塊鏈系統的身份認證分為匿名身份認證、實名身份認證和可控匿名身份認證3種類型。

3.1 匿名身份認證

匿名身份認證是指用戶在注冊過程中無需提供身份信息便可以獲得身份標識并用于系統認證。匿名的目的是隱藏真實的身份信息,而不是在信息交互過程中不需要提供身份標識,只是無法通過線上身份標識符來直接獲取到線下實體的真實身份信息。以比特幣、以太坊為代表的公有鏈系統采用無準入機制的開放系統架構,為用戶提供匿名身份認證方式,以隱藏交易者的真實身份信息,起到了保護交易者隱私的功能。

在無準入機制的區塊鏈系統中,用戶多采用錢包方式進行系統注冊,注冊過程無需提供用戶身份信息。成功注冊后將生成一個私鑰,然后通過該私鑰利用橢圓曲線密碼算法生成對應的公鑰(具體過程見圖2所示),其中公鑰經轉換后作為交易者的身份標識符,利用對應的私鑰簽名實現身份認證。在此過程中,始終未出現過用戶的真實身份信息,實現了認證過程的匿名性。另外,在UTXO 模型中,使用了假名機制以實現交易的匿名性,即用戶在進行交易時,涉及到的交易輸入和輸出地址都以假名形式出現,即使同一筆交易中有關同一用戶的不同地址之間也沒有顯性的關聯性,實現了交易過程中對用戶真實身份信息的保護。

由于區塊鏈賬本的公開性和多方確認等特征,攻擊者通過對賬本數據的聚類分析便可將交易信息關聯到具體的身份,所以使匿名身份認證對用戶隱私的保護效果具有一定的局限性。為此,在對身份和交易信息的匿名要求較高的區塊鏈系統中,引入了身份隱藏機制來實現對用戶身份隱私的進一步保護[45]。

在匿名認證過程中,身份認證者向應用系統中的身份證明者模塊提交表示可以訪問該系統的身份憑證,服務證明者模塊只能判斷出該身份憑證擁有訪問系統的資格,但無法確認具體的身份信息。但在很多情況下,憑證中披露的信息往往超出身份證明者需要的信息,帶來用戶身份隱私泄露的風險。為解決此問題,一種稱為匿名憑證(anonymous credential)[46]的解決方案提出被得到應用。匿名憑證是一種由憑證發行者提供的包含用戶信息的特殊憑證,它用于發送聲明信息,但不包含具體與聲明相關的明文或密文信息,只是提供有關聲明結果的密碼學驗證方法。這樣,服務提供商將無法得到具體的憑證內容,也無法利用該憑證模擬其他用戶身份進行中間人(man in the middle,MITM)[47]攻擊,提高了認證過程的用戶身份隱私性。

3.2 實名身份認證

實名身份認證是指從用戶身份標識到身份認證的身份管理全生命周期過程中涉及到的用戶身份都是真實的,其中身份標識的實名制是實現實名身份認證的前提和保證。實名身份認證是強監管系統中身份管理的基本要求,為用戶提供準入機制并保證交易、交流等行為符合監管規定。區塊鏈系統中的實名身份認證在沿用了傳統系統中的PKI/CA身份認證或動態口令認證方式的基礎上,結合了區塊鏈中交易數據的防篡改性和公開透明性等特點,一方面解決了區塊鏈系統的身份認證需求,另一方面將區塊鏈的功能和特征應用于自身的身份認證過程。整體來看,區塊鏈中的身份認證是基于中心化機制的身份管理與去中心化或部分去中心化的區塊鏈應用相模式的結合,其實質是將身份認證模塊嵌入到區塊鏈系統中,在一個已通過身份認證的準入環境中部署區塊鏈系統。

3.2.1 基于PKI/CA的身份認證

區塊鏈系統中的實名身份認證多出現在采用準入機制的聯盟鏈中(如Fabric、Corda等),其基本實現方式之一是在區塊鏈系統中部署PKI/CA來生成和管理數字證書,建立用戶與CA 之間的信任關系。用戶向CA 提交實名身份注冊信息,CA 核實用戶身份信息并對通過審核的用戶生成一對非對稱密鑰,其中公鑰封裝在數字證書中,用戶從CA處獲得所選取用戶的數字證書和自己的私鑰,在之后的交易過程中就可以使用數字證書作為身份標識,用私鑰簽名實現身份認證。由于用戶真實身份信息已綁定到CA頒發的自簽名證書上,所以在認證過程只需要驗證CA自簽名證書的有效性,提升了認證效率。同時,證書由PKI 中的第三方可信CA 進行監管,減輕了系統運行的額外負擔。另外,考慮到身份認證系統中CA 的重要性,Fabric 提供了一個稱為“Fabric CA”的內置CA 組件,允許用戶在自己的區塊鏈網絡中創建一個私有根CA 來提供和管理具有X.509 數字證書,用于對Fabric用戶的身份認證。

隱私保護是區塊鏈的一項內生功能,而基于PKI/CA 數字證書的身份管理機制則與之相沖突[48]。很顯然,區塊鏈借助于中心化的PKI機制實現了用戶身份認證的實名化,但卻帶來了嚴重的隱私泄露問題,攻擊者通過對賬本中交易信息的分析可以窺探出不同用戶之間以及不同交易之間的關聯性,用戶的交易隱私幾乎暴露無遺。為此,在采用實名制的聯盟鏈中進行有效的用戶隱私保護,就需要提供一套有效的賬本保護機制,只允許特權用戶來訪問賬本信息,而不是像公有鏈那樣將賬本公開給所有用戶。

3.2.2 基于區塊鏈的PKI身份認證

基于PKI/CA的身份認證在傳統信息系統中正在發揮著極其重要的作用,但針對區塊鏈應用場景中交易的高頻發、匿名等要求,在效率、可靠性、安全和隱私等方面存在不足,尤其是PKI 主要依賴于中心化的CA 來頒發、存儲和管理密鑰對,很容易出現中間人攻擊,為加密通信和身份隱私帶來了安全隱患。區塊鏈系統中交易數據的不可篡改性、賬本信息的公開透明性等特征以及智能合約的應用,為構建基于區塊鏈的PKI身份認證技術提供了保障[49-51]。

作為首個基于區塊鏈的PKI 項目,CertCoin[52]摒棄了傳統PKI/CA中的CA,將公鑰證書和域名發布在區塊鏈上,通過公開透明和分布式存儲的區塊鏈賬本來替代CA,為區塊鏈用戶提供身份驗證方案。同時,CertCoin系統引入了累加器和布隆過濾器技術,使得區塊鏈系統使用較小的存儲空間來保存證書。圖9 給出了基于區塊鏈的PKI身份認證系統的操作示意圖,其中主要的操作過程如下:

圖9 基于區塊鏈的PKI身份認證示意圖Fig.9 Schematic diagram of PKI identity authentication based on blockchain

(1)證書申請。用戶生成SSL 自簽名證書,向數字證書的注冊節點提交證書發布申請。注冊節點對申請者提交的證書和用戶身份進行驗證,對通過驗證的證書發布申請經簽名后提交給區塊鏈系統。

(2)證書發布。區塊鏈系統中的節點在接收到證書發布申請后,會對證書格式、內容及持有者的簽名等信息進行驗證,通過驗證的合法證書發布申請將被共識算法打包進區塊,即將證書內容和證書狀態寫入區塊鏈。

(3)證書更新與撤銷。當用戶在證書到期之前需要對其進行更新或需要對正在使用的證書進行撤銷時,可通過注冊節點向區塊鏈系統提交更新或撤銷申請,區塊鏈系統在對申請內容和申請者身份進行驗證后,通過調用智能合約對分布式賬本中的證書進行更新操作或設置為撤銷狀態,并將結果寫入區塊鏈。

(4)證書查詢與應用。在證書使用中需要對證書的真實性和合法性進行查詢時,證書依賴方首先從證書持有者處獲得完整證書或證書摘要,然后通過證書查詢節點向區塊鏈系統求證證書的合法性和有效性。

由于區塊鏈的不可篡改性,寫入區塊鏈的證書無法被修改或刪除,這在確保了證書應用和管理的安全性的同時,卻為證書的更新和撤銷帶來了困難。利用區塊鏈智能合約和共識機制可以解決這一問題[53]。在證書過期后,證書持有者通過智能合約對原有證書進行更新從而生成新證書并寫入區塊,同時聲明用新證書來替代原有證書的使用。這樣,原有證書將永久保存在區塊鏈中,而新的證書將作為唯一合法有效的證書來使用。此功能還實現了PKI 系統的可審計性及對證書應用的溯源功能。

圖10是傳統PKI/CA系統與基于區塊鏈的PKI系統之間的區別。可以看出,在傳統PKI/CA 機制中,CA 基于對用戶的信任來對用戶提供的公鑰、DID 等簽發證書,在使用證書時,證書依賴方需要向CA進行證書狀態查詢。而基于區塊鏈的PKI 機制通過去中心化特征建立信任關系,將傳統CA集中式的證書發放轉變為以分布式方式的自動實現。用戶可自行生成自簽名證書,再經注冊節點驗證后提交給區塊鏈系統,通過礦工節點的驗證和共識后,證書將被寫入區塊。在證書使用過程中,用戶需要將證書提交給認證方,認證方再通過區塊鏈系統驗證證書的合法性和有效性。

圖10 兩種類型PKI系統之間的區別Fig.10 Dfference between two types of PKI systems

基于區塊鏈的PKI 身份認證方式在解決了傳統PKI/CA 固有的安全性差、存在單點故障、多CA 部署復雜、證書查詢過于依賴CA等問題的同時,利用區塊鏈自身的技術特點可以提升區塊鏈用戶身份認證的一些性能。例如,利用分布式賬本的特性,在基于區塊鏈的PKI系統中不再需要CRL服務,而且對證書狀態信息的更新可以快速得到應用,同時避免了傳統PKI/CA 中的單點故障問題;再如,利用區塊鏈的去中心化特征,由區塊鏈中的共識節點共同對證書進行驗證,并將結果保存在區塊鏈中,供區塊鏈用戶進行身份認證時使用。除此之外,基于區塊鏈的PKI還可以支持X.509證書[54],以兼容傳統PKI/CA,同時通過自行搭建證書驗證節點,實現證書狀態的本地驗證,以擴展身份認證的實現范圍,并提高驗證效率。

3.2.3 基于動態口令的身份認證

基于口令的認證是傳統信息系統中較早使用且一直沿用至今的一種經典身份認證方式。由于口令認證易被暴力破解,也易受重放攻擊和弱口令攻擊,所以在安全性要求較高的應用中逐漸被動態口令替代。動態口令因其具有較高的安全性、易操作性以及與傳統信息系統之間的兼容性,已廣泛應用到區塊鏈系統的身份認證中[55]。

早在1981 年,Lamport[56]就提出了基于哈希鏈的動態口令(one-time password,OTP)解決方案,目前使用的各類動態口令解決方案基本上是在該方案基礎上的改進。動態口令也稱為一次性口令,是采用“一次一密”方式在客戶端與服務器之間通過共享密鑰實現的一種強認證機制,合法用戶利用動態令牌生成動態密碼,認證服務器通過驗證密碼的正確性來實現對用戶身份的認證。OTP算法的實現主要有以下3種類型:

(1)HOTP。HOTP(HMAC-based one-time password,基于HMAC的OTP)算法[57]基于HMAC(hashed message authentication code,散列消息驗證碼),利用HMACSHA-1算法生成一次性密鑰,具體算法為:

其中,Truncate()是一個將160 bit的HMAC轉換為32 bit的HOTP 值的函數,HOTP 是一個無符號整數;K為輸入的密鑰;C為計數器值,每次在使用HOTP 時,C值都會在前一次基礎上自動增加,從而實現每次認證時使用的HOTP 值不同。HMAC-SHA-1 算法的安全性決定著HOTP的安全性。

(2)TOTP。TOTP(time-based one-time password,基于時間的OTP)算法[58]利用一個共享密鑰,再結合當前時間來計算動態口令,其算法定義為:

TOTP算法基于HOTP算法來實現,其中K是一個共享密鑰,T為時間步長(系統默認值為30 s,即每過30 s更換一次口令),即從用UNIX時間戳表示的初始時間T0到當前時間Tnow所經歷的時間步長數,T=(Tnow-T0)/X,X為默認的時間步長。

(3)基于挑戰/應答的OTP。在基于挑戰/應答(challenge/response)的OTP 算法中,一次性口令由服務器發出的挑戰值經客戶端的應答算法產生,其中挑戰值由服務器隨機生成或使用計數器產生。

將動態口令技術應用到區塊鏈系統的身份認證,實現了傳統OTP技術與區塊鏈系統身份管理的結合,OTP采用動態密鑰生成機制,同一用戶在不同時間段訪問系統時會使用不同的密鑰,而且密鑰無需記憶和保存。同時,OTP采用雙因素認證機制,即使密碼被竊取,也不會造成損失。另外,由于OTP技術自身實現簡單且提供了功能完備的接口,身份認證系統可以獨立于區塊鏈系統,在保證了區塊鏈系統完整性的同時,利于在各類區塊鏈錢包或平臺中的實現[59]。

針對區塊鏈系統的身份認證要求,許多學者通過理論研究和實踐探索提出了一些創新應用和方案。其中,Park[60]通過對Lamport提出的OTP中加密哈希函數的改造,形成的新哈希鏈在無需證明者和驗證者之間預共享密鑰的前提下,能夠無限制地生成用于身份驗證的密鑰,在保留Lamport 方案優點的同時,滿足了區塊鏈系統中針對大量交易用戶身份認證的需要;Erdem 等人[61]提出了一種基于云服務的OTP方案,該方案將驗證器置于云端,為不同系統提供可靠、便捷的身份認證服務,并可抵御外部攻擊;Zhang 等人[55]將區塊鏈分布式賬本技術與OTP 技術結合,提出了基于區塊鏈的OTP 身份認證方案。在該方案中,由區塊鏈分布式賬本作為驗證器來替代傳統OTP中的服務器,并通過一個安全標準列表來實時分析身份驗證協議的安全性,以抵御重放攻擊、暴力破解、OTP 偽造等攻擊行為的發生;Catalfamo 等人[62]針對基于雙因素認證(two-factor authentication,2FA)等典型身份認證方案中因集中式認證導致的拒絕服務(DoS)攻擊和中間人(MITM)攻擊等安全威脅,提出了一種分散的微服務(microservices)和基于區塊鏈的一次性密碼(blockchain based one time password,MBB-OTP)協議,用于提升身份認證的安全性。以上方案,有些是對傳統OTP方案性能的改進,有些是利用云計算優勢對身份認證方案和功能的優化,有些是將區塊鏈技術與OTP 技術進行結合以豐富身份認證功能并增強系統的安全性。

表6基于區塊鏈系統身份認證具體要求,從實現原理、證書類型、驗證者、安全性、隱私性、可擴展性和中心化程度等方面對不同方案進行對比分析。

表6 實名身份認證機制對比分析Table 6 Comparative analysis of real-name identity authentication mechanism

3.3 可控匿名身份認證

為了解決聯盟鏈中基于PKI/CA數字證書的身份認證帶來的用戶隱私泄露問題,一些對隱私保護要求較高的聯盟鏈(如Fabric、Corda、FISCO BCOS[63]等)在身份管理上采用了可控匿名身份認證方案。可控匿名身份認證是指根據不同的監管需要,同一系統中同一用戶在不同場景中采用不同的身份認證方式,一般在前臺應用中采用匿名身份認證,而在后臺監管中采用實名身份認證。可控匿名身份認證模型如圖11所示。

圖11 基于PKI/CA的可控匿名身份認證模型Fig.11 Controllable anonymous authentication model based on PKI/CA

可以看出,可控匿名身份認證一般是在PKI/CA 工作機制的基礎上,通過在系統中增加監管者身份來實現。其中,可控匿名身份認證的CA具有對匿名數字證書的追蹤功能,當因交易糾紛等原因需要核實用戶真實身份信息時,監管者可將核實信息發送給CA,由CA將匿名數字證書持有者的真實身份信息反饋給監管者。

以由微眾銀行牽頭研發的區塊鏈底層開源平臺FISCO BCOS 為例,在身份管理方面FISCO BCOS 提供了區塊鏈治理通用組件,通過“輕量解耦”將身份管理功能與具體業務解耦,以方便系統的部署和管理。同時,FISCO BCOS 提供了證書管理組件(Governance-Cert)和私鑰管理組件(Governance-Key),證書管理組件提供了X.509 標準的多級證書簽發、驗證、重置、撤銷、導出及托管等功能,私鑰管理組件提供了私鑰的生成、保存、托管、使用等能力。為了實現可控匿名身份認證,FISCO BCOS的賬戶治理組件還提供了如圖12所示的雙重賬戶體系,其中,具體交易過程中使用的賬戶不再直接使用公鑰地址,而是采用經公鑰派生出來的內部賬戶,以提供交易的匿名性。但是,在需要對用戶身份進行監管時,監管方可以通過公鑰賬戶地址與內部賬戶之間的映射關系得到該用戶的真實身份信息。

圖12 傳統賬戶模型與雙重賬戶模型對比Fig.12 Comparison between traditional account model and dual account model

基于PKI 機制的Fabric 采用兩級證書體系實現可控匿名認證。在Fabric中,一個組織一般擁有一個MSP(membership services provider,成員關系服務提供者)[64],MSP采用PKI分層架構,默認使用X.509證書來標識聯盟鏈中的用戶身份,為用戶提供證書簽發與驗證、證書撤銷等服務,并利用“注冊-交易”兩級證書體系實現同一用戶的前臺匿名認證與后臺監管。MSP 是一個為Fabric 中的節點提供身份認證的可信權威機構,SMP中提供了注冊證書頒發機構(enrollment certificate authority,ECA)和交易證書頒發機構(transaction certificate authority,TCA)兩類CA,其中由ECA 簽發的注冊證書(Ecert)用于實名身份認證,而由TCA 簽發的交易證書(Tcert)用于交易中的匿名身份認證,同時TCA 在簽發交易證書Tcert 時受注冊證書Ecert的控制,以此實現針對同一用戶的不同類型數字證書之間的關聯。

在Fabric中,Tcert由Ecert派生產生,同時Tcert基于橢圓曲線密鑰疊加算法生成交易中使用的公私鑰對,在監管過程需要知道Tcert 的真實身份信息時,可利用Tcert公鑰的可恢復特征恢復出該公鑰持有者的真實身份。具體實現過程為:當用戶向TCA申請用于交易的Tcert 時,TCA 首先通過隨機數種子生成一個派生密鑰DF_key,同時利用用戶提交的Ecert 證書中的公鑰及相關參數生成Tcert 證書的公鑰,并將最后生成的Tcert 以及DF_key 通過安全通道(一般采用PKI 系統集成的SSL/TLS 加密通道)發送給用戶;用戶利用從TCA 處申請到的Tcert和DF_key生成Tcert的私鑰。因為ECA在生成用于加密EcertID(注冊證書ID)的密鑰時使用了監管方可見的加密密鑰pre_key,即:

那么,監管方可利用EcertID_key 解密位于Tcert 證書中的encEcertID(身份證書ID的密文)得到EcertID:

另外,MSP 在傳統PKI 的基礎上,還提供了一個用于存放可依賴用戶信息的列表,以實現對用戶身份的進一步分類管理。

表7 主要從身份標識方式、主要實現原理、準入機制、區塊鏈類型和典型應用場景等方面對3種身份認證方式進行了綜合比較。

表7 區塊鏈身份認證方式比較Table 7 Blockchain identity authentication mode comparison

4 總結與展望

無論是信息交換還是價值轉移,身份管理都是區塊鏈系統的核心要素和研究重點。由于不同的區塊鏈系統在功能實現、應用場景、準入機制等方面存在較大差異,所以針對主流區塊鏈系統身份管理的研究方法和實現路徑也有所不同。

4.1 有關聯盟鏈的身份管理

對于Fabric、Corda、FISCO BCOS 等典型聯盟鏈的身份管理主要采用PKI/CA 數字證書作為用戶身份標識,實現實名或可控匿名身份認證。近年來,PKI 體系在區塊鏈應用中存在的主要問題集中于安全、效率和可擴展性等方面。

首先,是數字證書的安全問題。區塊鏈用戶一般通過配置客戶端(一般為Web 瀏覽器)對根CA 的信任來實現對服務器證書的驗證。但是,近年來大量出現的證書驗證安全漏洞引發的中間人攻擊,使得為用戶簽發數字證書的CA服務的可信度受到威脅。如果用戶不能正確地驗證CA簽發的數字證書,那么攻擊者很容易通過將自己假扮為合法的CA為用戶提供虛假的證書服務,從而竊取或篡改用戶之間的交易,擾亂整個系統的正常運行。針對此問題,一些改進方案相繼被提出并得到應用[65],以提升CA 證書服務的安全性。例如,在CA 服務端,為了防止CA被攻擊后簽發虛假的數字證書或進行其他的惡意操作,谷歌(Google)公司早在2013 年就提出了certificate transparency[66]技術,通過引入日志服務(log server)部件讓CA 簽發數字證書的服務具有公開審計性,以增強證書簽發階段的安全性;在用戶端,可通過對瀏覽器或錢包的設置,使其只信任滿足一定條件的CA 簽發的數字證書,從而通過對客戶端的配置來增強數字證書的安全性。

其次,是交易的效率問題。在交易過程中,由于需要通過數字證書對交易者的身份信息進行頻繁的驗證,每一次驗證都需要訪問數字證書的證書庫,以獲得證書鏈上的CA 證書、CRL 文件信息以及OCSP(online certificate status protocol,在線證書狀態協議)等服務內容,這一過程需要占用一定時間,會在較大程度上影響到交易效率,尤其是在需要進行跨域部署PKI的大規模區塊鏈系統中,此問題更顯突出。針對此問題,需要借鑒PKI在大范圍跨域交叉認證已有成果的基礎上,結合區塊鏈系統具體應用場景,進行性能優化[67]。另外,基于公鑰密鑰機制的PKI系統在證書管理上的復雜性在很大程度上影響了交易的效率。為解決此問題,早在1984年RSA算法的作者之一以色列密碼學家Adi Shamir就提出了IBC(identity-based cryptography,基于身份的密碼系統)[68]的概念,直接利用用戶身份標識信息作為公鑰來綁定用戶身份,用戶私鑰由擁有主密鑰的私鑰生成器(private key generator,PKG)生成。IBC 不再依賴于PKI 系統,從而極大地簡化了管理密碼系統的復雜性。IBC技術自提出后在應用過程中不斷發展和完善,目前,在區塊鏈用戶身份管理中,IBC也已作為PKI機制的發展和補充得到進一步的研究,既保證簽名的安全性,又滿足各種應用場景的安全需求。還有,2003 年,Al-Riyami等人[69]提出了無證書公鑰密碼學(certificateless public key cryptography,CL-PKC)的概念,它與IBC 一樣不需要數字證書,而且避免了PKI系統中的私鑰托管(key escrow)問題,也不涉及到數字證書的管理,因此具有系統開鎖小、效率高等優化,更適用于區塊鏈技術在智能手機、物聯網等資源有限的環境中的應用。

最后,是信息管理的可擴展性問題。通過跨鏈技術打破單一區塊鏈系統的封閉性,實現不同區塊鏈系統之間的信息共享和價值轉移是區塊鏈技術發展的大勢所趨和必然要求。然而,不同區塊鏈系統所采用的共識算法和底層數據結構有所不同,為跨鏈身份認證帶來了挑戰[70]。為此,如何提供適應于跨鏈操作環境要求的身份管理機制,提升區塊鏈身份管理的可擴展性,以適應不同類型聯盟鏈之間互操作過程中的差異化身份認證,還需要在已取得成果的基礎上進行深入研究[71-72]。

另外,PKI依賴于數字簽名技術在實體之間建立信任聯系和數據的安全傳輸,允許實體使用標準化數字證書(如X.509)與身份認證進行互操作。盡管PKI技術被許多應用程序作為其安全保障(如Web/Https/TLS、云支持服務、VPN、IP 安全等),但因中心化信任固有機制產生的缺陷隨著新應用的出現不斷暴露出來,與此同時,區塊鏈技術所見長的去中心化、賬本公開、不可篡改等機制,使PKI的應用受到極大挑戰。早在2016年,IETF(Internet Engineering Task Force,Internet 工程任務組)就提出了一個專門的草案,描述了PKI 存在的主要問題,并認為基于中心化機制的PKI 已無法滿足數字化環境的應用需求,建議開發去中心化的PKI[73]。DPKI(decentralized public key infrastructure,去中心化公鑰基礎設施)[74-75]是對PKI的改進和完善,通過建立一個去中心化的身份管理體系來解決中心化機制存在的不足,為構建新型網絡信任環境提供了保障。

4.2 有關公有鏈的身份管理

以加密數字貨幣為典型應用的公有鏈,在身份管理方面存在的主要問題是處理好隱私保護與身份監管之間的關系,其研究重點集中于安全和隱私保護兩個方面。

公有鏈使用開放架構的無準入機制的匿名身份認證方式,并通過地址混淆等手段加強交易過程中用戶身份的隱私性,以此來防范區塊鏈公開賬本中用戶隱私泄露的風險,但隱私保護機制為基于區塊鏈加密數字貨幣的交易監管帶來了挑戰。加密數字貨幣的重要特點之一是交易的匿名性,而在金融和證券等區塊鏈應用場景中則強調用戶交易的強監管,有效打擊金融網絡犯罪,這就要求系統在能夠保護用戶交易隱私的同時,必須為監管需要(如調查取證、交易信息核查等)提供交易用戶的真實身份信息,引發了隱私保護與交易監管之間的博弈。在此情況下,如何在公有鏈加密數字貨幣系統中引入聯盟鏈中的可控匿名身份認證,實現前臺匿名與后臺實名的按需可控匿名身份管理機制,是目前區塊鏈應用中亟待解決的關鍵技術。

在安全方面,采用匿名身份認證的公有鏈采用非對稱密鑰機制的ECDSA[76]、ED25519[77]、EdDSA[78]等橢圓曲線密鑰算法,算法自身及其實現過程的安全性很大程度上決定著應用的安全性。就算法自身而言,算法提供的是一套完整的用系統的方法描述和解決問題的策略或機制,是對輸入范圍和輸出結果的明確限定。如果一個算法存在設計上的缺陷,或不適宜于某一問題的具體解決,那么使用這一算法的具體應用便存在安全隱患;就區塊鏈身份管理中算法的實現過程而言,橢圓曲線簽名算法只是提供了一種算法的完整描述,可是橢圓曲線的參數選擇是多樣的,所以參數選擇是否規范和貼合實際,不僅僅影響著應用中的安全問題,還會影響算法的空間復雜度與時間復雜度。區塊鏈的簽名算法是區塊鏈應用和身份管理研究的重點之一,為此,下一步研究需要在對算法自身進行優化的基礎上,結合具體應用場景選擇適合區塊鏈系統自身業務需求的簽名算法,并通過合理的參數選擇和環境配置提升安全性。

在隱私保護方面,雖然區塊鏈采用了經轉換的公鑰來作為身份標識,并且UTXO 模型提供了假名機制,以此來保護交易過程中用戶的隱私。但區塊鏈所具有的賬本公開和多方確認機制給交易身份的隱私保護提出了挑戰。其中,匿名身份認證和基于“混淆”思想的身份隱藏技術是解決這一問題的主要方式,在此基礎上,結合聯邦學習、零知識證明、環簽名、安全多方計算等技術,提出了大量創新應用[79-80],為匿名和可控匿名身份管理提供了有效解決方案。

總之,身份管理作為信息系統的基本特征,可根據不同的應用需求選擇不同的身份標識方法和身份認證機制,實現了對用戶的全過程管理,從而為應用系統的資源授權、數據溯源和數據取證等工作提供保障。本文在對比分析傳統系統與區塊鏈系統差異性的基礎上,分別討論了區塊鏈身份標識和認證的相關技術,并對區塊鏈系統身份管理的下一步發展和研究進行展望。隨著區塊鏈技術的迭代發展和應用領域的不斷拓寬,也將對區塊鏈系統身份管理技術提出更高要求。因此,如何將密碼學、分布式計算、博弈論、零信任等領域的最新研究成果深度融入到區塊鏈系統身份管理技術,構建安全、高效、可擴展的區塊鏈身份管理體系是需要進一步研究的一個方向。

猜你喜歡
用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
主站蜘蛛池模板: 91在线丝袜| 久久中文字幕不卡一二区| 亚洲一区二区三区国产精品| 91麻豆精品国产91久久久久| 欧美久久网| 浮力影院国产第一页| 欧美日韩精品一区二区在线线| 久久国产av麻豆| 在线播放91| 免费观看亚洲人成网站| 四虎影视无码永久免费观看| 日本欧美一二三区色视频| 午夜视频免费一区二区在线看| 国产精品性| 成年A级毛片| 亚洲第一黄片大全| 丁香六月综合网| 国产拍在线| 亚洲精品中文字幕无乱码| 国产精选小视频在线观看| 欧美精品v欧洲精品| 国产网友愉拍精品| 18黑白丝水手服自慰喷水网站| 国产屁屁影院| 最新国产午夜精品视频成人| 亚洲综合中文字幕国产精品欧美| 国产精品三级专区| 欧美a级在线| 91小视频在线观看免费版高清| 大陆精大陆国产国语精品1024| 国产精品午夜电影| 欧美成人一区午夜福利在线| 久久女人网| 看国产毛片| 色香蕉影院| 一边摸一边做爽的视频17国产| 韩日无码在线不卡| 日韩在线视频网站| 日韩国产亚洲一区二区在线观看| 最新国产网站| 欧美天堂在线| 久久综合色天堂av| 欧美精品在线观看视频| 影音先锋亚洲无码| 国产亚洲欧美在线中文bt天堂| 精品一区二区三区无码视频无码| 国产午夜福利在线小视频| 亚洲成人精品久久| 日韩大乳视频中文字幕| 狂欢视频在线观看不卡| 国产剧情伊人| AV无码一区二区三区四区| 精品国产一二三区| 日韩美毛片| Jizz国产色系免费| 朝桐光一区二区| 欧美日韩国产精品综合| 久久精品人人做人人爽电影蜜月| 国产精品嫩草影院av| 免费三A级毛片视频| 国产区免费| 国产SUV精品一区二区6| 国产精品久久久久久久久久久久| 国内自拍久第一页| 欧美国产另类| 四虎成人在线视频| 四虎在线观看视频高清无码| 中文字幕中文字字幕码一二区| 一区二区三区成人| 久草热视频在线| 女人18毛片一级毛片在线 | 伊人五月丁香综合AⅤ| 色香蕉网站| 亚洲Va中文字幕久久一区 | 中文字幕欧美日韩高清| 亚洲免费福利视频| 亚洲精品第一页不卡| 国产黄色视频综合| 免费av一区二区三区在线| 日韩亚洲高清一区二区| 亚洲成人福利网站| 国产精品久久久久久久伊一|