基于區(qū)塊鏈的去中心化數(shù)字身份研究及驗證
隨著數(shù)字化活動的普及,數(shù)字身份作為數(shù)字化活動的基礎顯得尤為重要。傳統(tǒng)的中心化身份管理系統(tǒng)存在諸多弊端,如數(shù)字身份的擁有者沒有實際的控制自己的身份,存在著身份信息容易泄露及濫用的風險。區(qū)塊鏈技術(shù)的各種優(yōu)點,正好可以解決中心化數(shù)字身份存在的問題。因此,在分析數(shù)字身份由中心化到去中心化轉(zhuǎn)型的必要性后,重點研究基于區(qū)塊鏈的分布式數(shù)字身份技術(shù),以某單位新入職員工入職流程為例,建立去中心化數(shù)字身份模型,并搭建區(qū)塊鏈基礎網(wǎng)絡,對模型進行身份驗證。
當今世界,各個國家大力發(fā)展數(shù)字化經(jīng)濟。如今,大數(shù)據(jù)、云計算等技術(shù)逐步成熟,很多企業(yè)開發(fā)的云上課堂、疫情防控二維碼層出不窮,萬物互聯(lián)的時代已經(jīng)來臨。各種數(shù)字化活動的基礎是數(shù)字化身份,只有確保人、物的數(shù)字身份真實無誤,人、物關(guān)聯(lián)的各種信息、產(chǎn)生的各種線上交易才能確保真實有效。
隨著數(shù)據(jù)的爆炸式增長,各種安全問題隨之而來。登錄第三方網(wǎng)站注冊的個人信息,往往由于第三方互聯(lián)網(wǎng)企業(yè)缺乏安全意識、缺乏信息保護的技術(shù)手段,導致用戶真實的身份信息被非法機構(gòu)入侵獲取并加以販賣。同時,用戶的個人信息不由用戶自己支配,無授權(quán)下的濫用場景頻發(fā)。2021年315晚會爆出了科勒衛(wèi)浴、寶馬等商業(yè)店鋪內(nèi)安裝的人臉識別攝像頭,采集了大量顧客人臉,并進行人臉分析記錄,從而針對顧客實行定制的商業(yè)計劃,即大量的人臉信息在沒有征求用戶同意的情況下被非法獲取。以上各種身份問題頻發(fā),暴露出用戶數(shù)字身份管理的重要性,急需對用戶身份信息進行安全保護。
區(qū)塊鏈技術(shù)憑借其去中心化、多方共識、公開透明、防篡改以及可追溯等特征,給數(shù)字身份的安全轉(zhuǎn)型提供了可信的解決方案。該技術(shù)恰好可以解決數(shù)字身份當前的痛點,使得身份所有者對自己的數(shù)字身份有著絕對的話語權(quán)。
1.數(shù)字身份演進
當前普遍存在的身份管理都是中心化的管理。中心化身份管理系統(tǒng)的本質(zhì)是中央集權(quán)化的身份或者授權(quán)機構(gòu)掌握著身份數(shù)據(jù),數(shù)字身份持有者在日?;顒拥恼J證、授權(quán)過程受中心化機構(gòu)的管理,身份不由用戶自己控制。不同的中心化網(wǎng)站(如淘寶、京東等)有一套自己的身份系統(tǒng),同一用戶在不同網(wǎng)站使用的身份信息不相通,所以用戶訪問不同的網(wǎng)站時都需要重新注冊新賬戶。
為了解決這個問題,1999年微軟提出了聯(lián)盟身份的概念,即各個網(wǎng)站組成聯(lián)盟,聯(lián)盟內(nèi)身份可以互認。在聯(lián)盟身份體系推出后,用戶的數(shù)字身份在多個網(wǎng)站之間形成了共享。聯(lián)盟身份的代表產(chǎn)物就是使用微信、QQ等一些常見的社交賬戶一鍵關(guān)聯(lián)登錄。隨著聯(lián)盟身份的逐步成熟,數(shù)字身份開始向去中心化轉(zhuǎn)型。雖然很多網(wǎng)站支持微信、QQ第三方登錄,但是其用戶體驗并不是很好,登錄成功后還需要用戶進行手機號碼的再次綁定。
綜上所述,中心化集權(quán)管理的身份系統(tǒng)存在著兩個難以解決的問題:一是身份擁有者本身其實對自己的身份信息沒有絕對的支配地位;二是各個中心化身份管理系統(tǒng)相互隔離,身份信息無法實現(xiàn)共享。
隨著區(qū)塊鏈技術(shù)迅速的發(fā)展,政策、技術(shù)、市場也引導區(qū)塊鏈技術(shù)改變了人們的生活方式,一種新的數(shù)字身份模式(分布式數(shù)字身份)應運而生。該數(shù)字身份模式改變了中心化數(shù)字身份集權(quán)控制的弊端,真正讓身份擁有者控制自己身份,通過數(shù)字身份所有權(quán)回歸的方式徹底改變了身份濫用和泄露問題。
2.分布式數(shù)字身份
數(shù)字身份最通用的模型是代表實體的身份標識符及與之關(guān)聯(lián)的屬性聲明。同理,分布式數(shù)字身份(Decentralized ID,DID)包括分布式數(shù)字身份標識符和數(shù)字身份憑證(聲明集合)兩部分。
W3C制定了DID生成的相關(guān)標準,如圖1所示。標準指出,DID可以分為基礎層和應用層兩個層次?;A層主要側(cè)重DID的規(guī)范,包括DID標識符號和DID文檔;應用層主要是可驗證聲明Verifiable Credentials,簡寫為VC。
圖1 DID的組成模型
2.1 DID的基礎層
DID基礎層是一個全局鍵值對數(shù)據(jù)庫。DID標識符是鍵,DID文檔是值。在DID標識中,example字段表示這個數(shù)據(jù)庫要么是某個DID兼容的區(qū)塊鏈,要么是某個DID兼容的分布式賬本,或者是某個DID兼容的去中心化網(wǎng)絡。
DID標識符是一段特殊的字符串,具有全網(wǎng)唯一、可以分離解析和加密可驗證性的特點。W3C規(guī)定的DID標識的基本格式為did:example:123xxx,其中example代表區(qū)塊鏈、分布式賬本或者去中心化網(wǎng)絡。當前已有很多,如微眾銀行該字段為weid。
DID文檔是一個JSON-LD格式的數(shù)據(jù),包括6個部分。每個部分用戶可以選擇性披露,其中的加密材料和服務端點等屬性往往和DID的標識符關(guān)聯(lián)起來,從而達到建立安全通道的目的。
表1 DID文檔的基本內(nèi)容
2.2 DID的應用層
DID的應用層主要是可驗證聲明VC。VC提供了一種規(guī)范來表征用戶實體具有的某種屬性。DID的實體可以向其他實體出示自己的VC證明自己某些屬性的真實性。常見的VC模型一般由四個角色組成:
(1)發(fā)行者(Issuer):擁有用戶某些屬性的證明數(shù)據(jù),并具有開具用戶VC能力的實體機構(gòu),如提供身份證明的公安部門、提供學歷證明的學校、提供培訓證明的機構(gòu)等。
(2)驗證者(Inspector-Verifier,IV):需要驗證用戶信息的機構(gòu),具有接受VC的能力,驗證成功后可以提供給用戶相關(guān)的服務。
(3)持有者(Holder):向Issuer提出請求、收到、持有VC的實體;向IV出示VC;開具的VC可以委托代理存儲,方便再次使用。
(4)標識符注冊機構(gòu)(Identifier Registry):提供用戶DID標識申請的代理,如某條區(qū)塊鏈、分布式賬本或者相關(guān)的分布式網(wǎng)絡。該機構(gòu)可以在IV驗證用戶的DID身份時訪問該數(shù)據(jù)庫。
VC的提供要本著以泄露用戶信息最少為原則。比如,用戶A想要注冊網(wǎng)約車司機,此時網(wǎng)約車注冊網(wǎng)站需要用戶提供駕駛車輛3年以上證明和車子與車主關(guān)系證明。按照當前網(wǎng)約車系統(tǒng)使用的方法,用戶需要上傳駕駛證原件和行駛證原件到網(wǎng)約車企業(yè)網(wǎng)站,這樣個人信息的主動權(quán)交到網(wǎng)約車企業(yè)手中。如果網(wǎng)約車企業(yè)網(wǎng)站管理不當,就存在泄露的風險。有了VC的概念后,用戶A可以從Issuer(車輛管理所)申請VC。VC內(nèi)容只需披露“用戶A駕齡>3年,車輛屬于本人”,用戶A提供給Inspector(網(wǎng)約車注冊機構(gòu)),該VC就可以進行驗證,用戶A就可以成功注冊網(wǎng)約車司機。
最理想的VC就是回復給驗證者“是”或者“否”,這樣能泄露最少的信息給IV。
3.場景分析及建模
一般來說,DID應用可以概括以下幾個步驟:
(1)為參與業(yè)務的各個機構(gòu)搭建區(qū)塊鏈網(wǎng)絡(其中包括人和機構(gòu));
(2)基于W3C規(guī)范生成相關(guān)的實體的DID并上鏈;
(3)對業(yè)務中需要的各類證明生成可驗證數(shù)字憑證(Credential),通過區(qū)塊鏈技術(shù)的私鑰管理和不可篡改的數(shù)字化證明特性,進行可信登記、授權(quán)流轉(zhuǎn)及真實性驗證。
下面就新員工入職某軍工單位為例。為了保證新員工提供的材料真實且無篡改,企業(yè)需要聯(lián)系第三方機構(gòu)去驗證,分析DID技術(shù)在其中的作用。
員工入職前,單位要求員工提供畢業(yè)證、學位證、離職證明、無犯罪證明及現(xiàn)實表現(xiàn)證明等一系列證明才能辦理入職手續(xù),且每個證件都要由不同的部門提供。新單位要想核實各種證明的真實性也比較麻煩。有了DID技術(shù)后,該問題可得到很好地解決。
如圖2所示:
(1)各個證明的提供者作為issuer,將要入職的單位為verifer;
(2)各個憑證的發(fā)行方、新員工、新單位搭建區(qū)塊鏈網(wǎng)絡,并分別注冊自己的DID;
(3)用戶可將自己的信息托管給用戶代理,用戶代理可以是App的模式或者是Web等模式;
(4)新員工向各個證明提供方申請自己的憑證信息,此時憑證發(fā)行方要通過DID驗證新員工身份的真實性,身份真實則發(fā)放憑證;
(5)新員工得到憑證后托管到代理中并計算憑證的hash值,上鏈;
(6)新單位獲取到新員工出示的材料后,通過鏈上信息即可以驗證出示資料的真實性。
圖2 新員工入職建模
4.模型驗證
WeIdentity是國內(nèi)首家互聯(lián)網(wǎng)銀行微眾銀行開發(fā)的一套基于區(qū)塊鏈技術(shù)的分布式多中心數(shù)字身份解決方案。該解決方案提供了數(shù)字身份技術(shù)相關(guān)的基礎層和外部接口函數(shù),開發(fā)者可以在其基礎上進行二次開發(fā),以實現(xiàn)數(shù)字實體對象(人或物)之間的認證授權(quán)和可信數(shù)據(jù)交換等。
BCOS是聚焦企業(yè)級應用的區(qū)塊鏈開源平臺,由微眾銀行、萬向區(qū)塊鏈、矩陣元三家公司合作研發(fā),為企業(yè)級用戶打造的分布式應用平臺。2017年金鏈盟開源工作組在BCOS的基礎上推出了面向金融行業(yè)的定制版本FISCO BCOS。到目前為止,F(xiàn)ISCO BCOS已在互聯(lián)網(wǎng)行業(yè)形成了強大的國產(chǎn)開源聯(lián)盟鏈生態(tài)圈。該平臺已經(jīng)經(jīng)過數(shù)百個項目的檢驗,覆蓋各行業(yè)的眾多領(lǐng)域。
本文采用WeIdentity+FISCO BCOS的開源框架作為基礎框架,在其基礎上對所述的軍工單位新員工入職場景進行驗證,主要步驟如下:
(1)搭建FISCO BCOS的區(qū)塊鏈網(wǎng)絡,如圖3所示;(2)issuer發(fā)布憑證,如圖4所示;(3)新員工委托用戶代理持有VC,如圖5所示;(4)新單位對基本信息進行驗證,如圖6所示。
圖3 搭建區(qū)塊鏈網(wǎng)絡
圖4 issuer產(chǎn)生VC
圖5 用戶代理生成
圖6 驗證者驗證成功
5.結(jié)語
本文在研究分布式去中心化數(shù)字身份理論的基礎上搭建區(qū)塊鏈網(wǎng)絡,對實際問題進行建模和驗證。分布式數(shù)字身份技術(shù)借助區(qū)鏈技術(shù)的發(fā)展,在數(shù)字生活中將得到廣泛的應用,但是該數(shù)字身份的推廣還處在起步階段也存在一定的不足。如何保證上鏈傳輸過程中的安全、鏈上數(shù)據(jù)的真實可信等問題,都是后續(xù)需要研究的方向。