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