滕鵬國,劉 飛
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
隨著網(wǎng)絡(luò)信息技術(shù)的不斷發(fā)展,各類實體事物越來越多地借助數(shù)字化形式完成自身信息全方位地呈現(xiàn),并實現(xiàn)信息的快速傳播共享。人們也更加傾向于利用應(yīng)用信息系統(tǒng)滿足自身工作和生活的需要。數(shù)字現(xiàn)代化已經(jīng)成為未來社會的發(fā)展趨勢,影響著社會發(fā)展的方方面面。
大數(shù)據(jù)、云計算、人工智能等新興信息技術(shù),進(jìn)一步推動了社會數(shù)字化進(jìn)程的發(fā)展。數(shù)字化逐漸改變了書信、動作、聲音等傳統(tǒng)信息承載方式對時空的依賴性,并作為一種新型信息的承載形式,既保證了信息傳遞的準(zhǔn)確性、可靠性和長久性,又實現(xiàn)了信息的高效快速傳播。因此,越來越多的個人、企業(yè)、組織選擇通過磁盤、數(shù)據(jù)中心等媒介,將自身或相關(guān)實體信息進(jìn)行數(shù)字化承載,以滿足自身使用需求。
然而,現(xiàn)實世界各類實體信息的數(shù)字化呈現(xiàn),在為人們的工作生活帶來各種便利的同時,也容易遭到各類非法用戶的違規(guī)使用或惡意破壞,給個人、企業(yè)、組織帶來巨大的經(jīng)濟(jì)、業(yè)務(wù)、聲譽(yù)等方面的損失。為了保障數(shù)字信息的安全性,各類安全防護(hù)技術(shù)和系統(tǒng)應(yīng)運(yùn)而生,從網(wǎng)絡(luò)安全、計算設(shè)施安全、數(shù)據(jù)安全、應(yīng)用安全、實體安全等方面保障數(shù)字信息在傳輸、使用、存儲、共享和銷毀等過程中的安全,其中身份認(rèn)證技術(shù)作為實體安全的重要組成部分,受到極大的關(guān)注。
針對各類組織機(jī)構(gòu)在廣域環(huán)境下的去中心化身份認(rèn)證需求,基于區(qū)塊鏈技術(shù),提出了一種無中心的身份認(rèn)證方案。該方案通過建立基于區(qū)塊鏈的實體身份網(wǎng)絡(luò),將人員、設(shè)備、應(yīng)用等實體身份信息保存在區(qū)塊鏈上,實現(xiàn)實體身份信息的就近快速驗證,從而提升信息數(shù)據(jù)訪問效率。
目前,隨著網(wǎng)絡(luò)信息系統(tǒng)的不斷發(fā)展,信息網(wǎng)絡(luò)結(jié)構(gòu)正變得日益復(fù)雜,網(wǎng)絡(luò)邊界逐漸模糊,傳統(tǒng)基于邊界的網(wǎng)絡(luò)安全防護(hù)難以滿足內(nèi)部人員的非法訪問或操作。因此,業(yè)界提出了零信任結(jié)構(gòu),以增強(qiáng)系統(tǒng)數(shù)據(jù)訪問的可靠性。零信任結(jié)構(gòu)遵循“從不信任,總是驗證”的設(shè)計原則,假定所有實體都是不可信的,需要不斷地評估網(wǎng)絡(luò)安全風(fēng)險,并制定措施來增強(qiáng)各類實體身份的可信度。零信任架構(gòu)理念[1]最初由John 在2010 明確并正式提出,2011年,Google 公司基于這一理念開展BeyondCorp 項目進(jìn)行實踐[2]。2017 年Gartner 在安全與風(fēng)險管理峰會上發(fā)布持續(xù)自適應(yīng)風(fēng)險與信任評估(Continuous Adaptive Risk and Trust Assessment,CARTA)模型,并提出零信任是實現(xiàn)CARTA 宏圖的基礎(chǔ)。2020 年美國國家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology,NIST)發(fā)布了零信任架構(gòu)草案(第二版)[3],零信任理念目前得到了業(yè)界的廣泛認(rèn)可,但還處于技術(shù)探索和研究階段[4]。為了實現(xiàn)零信任理念,需要研究實體身份認(rèn)證相關(guān)關(guān)鍵技術(shù),為零信任模型下實體身份的快速識別認(rèn)證提供支撐。
區(qū)塊鏈技術(shù)[5]由于其良好的抗抵賴性和無中心等特點(diǎn),為用戶身份認(rèn)證提供了新的方式。區(qū)塊鏈按照共識機(jī)制,利用當(dāng)前參與的節(jié)點(diǎn)進(jìn)行交易數(shù)據(jù)的維護(hù)和更新,使用密碼學(xué)原理完成交易,從而使得達(dá)成一致的雙方可以直接進(jìn)行交易,不需要第三方進(jìn)行介入。區(qū)塊鏈技術(shù)通常需要包括以下幾個方面的概念:區(qū)塊鏈交易,在區(qū)塊鏈網(wǎng)絡(luò)中,所有實體身份的注冊、管理都會被視為交易,帶有交易號,并利用共識機(jī)制保存在整個區(qū)塊鏈中;區(qū)塊,主要記錄當(dāng)前最新的交易信息,且不能被其他先前的區(qū)塊記錄;區(qū)塊鏈,各個區(qū)塊之間,通過前一區(qū)塊交易號逐個相連,同時,區(qū)塊信息一旦被記錄在鏈上就不能被改變或刪除,最終形成一條記錄身份信息的鏈條。
區(qū)塊鏈技術(shù)由于不需要交易第三方的參與,從而具有無中心的特點(diǎn),并通過共識機(jī)制,實現(xiàn)區(qū)塊鏈上信息的快速共享,能夠避免信息交換瓶頸、流程復(fù)雜等集中化管理的缺陷。因此,利用區(qū)塊鏈技術(shù)將各類實體身份信息保存在鏈上,進(jìn)行身份信息的去中心化管理,具有非常重要的實用價值。
本文基于區(qū)塊鏈技術(shù),提出了一種基于區(qū)塊鏈的身份認(rèn)證方案,能夠?qū)崿F(xiàn)實體身份信息的去中心化管理和分布式認(rèn)證。
隨著網(wǎng)絡(luò)信息系統(tǒng)的不斷發(fā)展,信息資源的異地獲取、廣域共享的需求越來越明顯,針對多用戶、多設(shè)備、多樣式的廣域聯(lián)合協(xié)同數(shù)據(jù)信息使用場景,面向不同用戶實體,如人員、設(shè)備、應(yīng)用等的數(shù)據(jù)訪問共享需求,為滿足靈活、高效、便捷的身份認(rèn)證要求,本文提出了一種基于區(qū)塊鏈的身份認(rèn)證系統(tǒng)模型,如圖1 所示,能夠提升應(yīng)用數(shù)據(jù)信息快速傳播和數(shù)據(jù)共享能力。
在該模型中,用戶通過提交自身身份認(rèn)證信息至身份認(rèn)證系統(tǒng),完成用戶身份信息的注冊和上鏈;當(dāng)用戶訪問業(yè)務(wù)系統(tǒng)時,業(yè)務(wù)系統(tǒng)將用戶身份發(fā)送至區(qū)塊鏈身份信息處理服務(wù)器上,并獲取區(qū)塊鏈中相應(yīng)用戶實體的身份信息;服務(wù)器通過對用戶實體身份進(jìn)行識別驗證,并將結(jié)果反饋給業(yè)務(wù)系統(tǒng);最終由業(yè)務(wù)系統(tǒng)根據(jù)反饋結(jié)果決定是否允許用戶實體訪問相關(guān)的業(yè)務(wù)數(shù)據(jù)。
基于區(qū)塊鏈的身份認(rèn)證系統(tǒng)主要包括用戶實體、業(yè)務(wù)系統(tǒng)、身份信息處理服務(wù)器,區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)等部分,系統(tǒng)使用模型如圖2 所示。
用戶實體:訪問業(yè)務(wù)系統(tǒng)的各類用戶,包括人員、應(yīng)用、設(shè)備等形式。
業(yè)務(wù)系統(tǒng):提供各類業(yè)務(wù)數(shù)據(jù)的應(yīng)用信息系統(tǒng),需要對訪問系統(tǒng)的實體進(jìn)行鑒別。
身份信息處理服務(wù)器:提供用戶實體身份信息的采集、封裝、解封、識別等能力。
區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn):提供用戶實體身份信息上鏈和查詢等能力。
圖1 基于區(qū)塊鏈的身份認(rèn)證系統(tǒng)結(jié)構(gòu)
圖2 實體身份區(qū)塊鏈?zhǔn)褂媚P?/p>
在基于區(qū)塊鏈的身份認(rèn)證系統(tǒng)中,通過將用戶實體身份信息安全上傳并保存在區(qū)塊鏈上,并進(jìn)行廣播和數(shù)據(jù)共享,區(qū)塊鏈網(wǎng)絡(luò)中的任意服務(wù)節(jié)點(diǎn)均可獲取實體相應(yīng)的身份信息,并進(jìn)行核對校驗,從而能夠?qū)崿F(xiàn)對用戶實體身份的快速識別認(rèn)證。
基于區(qū)塊鏈的身份認(rèn)證系統(tǒng)中,用戶實體身份信息將封裝在鏈中的各個區(qū)塊中,通過鏈?zhǔn)焦芾恚约跋嚓P(guān)的共識機(jī)制,使得各類上鏈實體身份信息無法被竄改或抵賴,從而為實體的準(zhǔn)確識別提供有力保障。用戶身份信息以區(qū)塊的形式永久保存在區(qū)塊鏈中,區(qū)塊分為區(qū)塊頭和區(qū)塊體兩部分:區(qū)塊頭主要保存了前一區(qū)塊的哈希值、時間戳以及參與共識的相關(guān)信息;區(qū)塊體主要包括用戶實體的各類身份信息以及各種屬性信息,包括用戶身份ID、全域用戶身份標(biāo)識信息、用戶身份數(shù)字簽名信息等方面數(shù)據(jù)。具體可如表1所示。
表1 參數(shù)說明
用戶實體身份信息形成區(qū)塊后,提交區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行驗證,并按照時間順序加入原有區(qū)塊鏈中。區(qū)塊之間通過Hash 值進(jìn)行連接,原有區(qū)塊鏈的唯一標(biāo)識就是這個Hash 值,新區(qū)塊通過在頭部記錄Pre-Hash 就能找到原有區(qū)塊鏈所連接的區(qū)塊,隨著不斷有新區(qū)塊加入?yún)^(qū)塊鏈中,從而形成一條鏈?zhǔn)浇Y(jié)構(gòu),也是用戶實體身份區(qū)塊鏈。
基于區(qū)塊鏈的身份認(rèn)證方法,通過將用戶身份信息封裝為各個區(qū)塊,然后連接起來形成公鏈信息,實現(xiàn)用戶身份信息的上鏈共享。用戶的身份信息,包括用戶身份ID、唯一身份認(rèn)證信息、身份簽名信息。用戶通過對用戶身份ID、用戶唯一身份標(biāo)識進(jìn)行Hash,再利用用戶私鑰進(jìn)行加密,完成對用戶身份的簽名。區(qū)塊交易頭ID,通常為用戶身份信息的Hash 值。每個區(qū)塊都要記錄自己以及前一個區(qū)塊的交易頭ID,以便完成身份信息組鏈。
用戶身份注冊的流程如下所示:
(1)用戶Ui輸入自己的用戶身份UIDi、唯一身份認(rèn)證信息UAIi、密鑰加密口令PKWi(用戶進(jìn)行注冊時,用戶設(shè)置的密鑰加密口令)進(jìn)行注冊,并且通過安全信道傳輸給身份信息處理服務(wù)器S。
(2)身份信息處理服務(wù)器S 收到用戶發(fā)送的身份信息(UIDi,UAIi,PKWi),利用密鑰加密口令PKWi,根據(jù)RSA 公私鑰對生成算法,生成加密公私鑰對(PRKi,PBKi),其中私鑰為PRKi,公鑰為PBKi,并將用戶公鑰PBKi作為用戶的全域身份標(biāo)識信息GIDi,也即GIDi=PBKi。
(3)身份信息處理服務(wù)器S 根據(jù)生成的用戶全域標(biāo)識信息GIDi,核查GIDi信息是否已經(jīng)使用,如果GIDi信息已經(jīng)存在,則用戶身份注冊失敗,返回第(2)步,重新生成GIDi信息,否則進(jìn)入下一步。
(4)身份信息處理服務(wù)器S 將用戶Ui的身份信息,包括私鑰PRKi和用戶全域身份標(biāo)識信息GIDi發(fā)送給用戶Ui,由用戶進(jìn)行妥善保管,并通知用戶預(yù)注冊成功。
(5)身份信息處理服務(wù)器S 將用戶的UIDi、唯一身份標(biāo)識UAIi進(jìn)行哈希運(yùn)算,得到用戶身份信息摘要SMi=H(UIDi|UAIi),并利用用戶私鑰PRKi對用戶身份信息摘要SMi加密生成用戶身份數(shù)字簽名SNi。
(6)身份信息處理服務(wù)器S 將用戶身份UIDi、用戶全域身份標(biāo)識信息GIDi以及用戶身份數(shù)字簽名信息SNi,通過安全信道傳輸給區(qū)塊鏈的網(wǎng)絡(luò)節(jié)點(diǎn)x。
(7)區(qū)塊鏈的網(wǎng)絡(luò)節(jié)點(diǎn)x接收到相關(guān)用戶信息后,組裝成交易數(shù)據(jù)并附上交易號廣播到整個區(qū)塊鏈網(wǎng)絡(luò)中,交易通過相關(guān)的共識機(jī)制記錄到新的區(qū)塊中,最終形成新的區(qū)塊鏈。
(8)當(dāng)新的區(qū)塊上鏈后,身份信息處理服務(wù)器S 通知用戶Ui其身份信息正式注冊成功。
用戶身份認(rèn)證的流程如下所示。
(1)用戶Ui借助業(yè)務(wù)系統(tǒng)輸入自己注冊成功的用戶身份UIDi,唯一身份認(rèn)證信息UAIi、密鑰加密口令PKWi和用戶全域身份標(biāo)識信息GIDi*,由業(yè)務(wù)系統(tǒng)發(fā)起身份認(rèn)證請求,并將用戶身份信息通過安全信道傳輸給身份信息處理服務(wù)器S。
(2)身份信息處理服務(wù)器S 收到來自用戶Ui的身份信息,將UIDi和GIDi*通過安全信道發(fā)送到任意一個區(qū)塊鏈節(jié)點(diǎn)N上,然后根據(jù)用戶UIDi查找注冊時存儲在數(shù)據(jù)庫中的GIDi,并判斷GIDi*和GIDi是否一致:
①如果GIDi*=GIDi時,則說明用戶所擁有的全域身份標(biāo)識信息和數(shù)據(jù)庫中存儲的全域身份標(biāo)識信息一致,則執(zhí)行下一步操作。
②如果GIDi*≠GIDi時,則用戶所擁有的全域身份標(biāo)識信息和數(shù)據(jù)庫中存儲的全域身份標(biāo)識信息不一致,則登錄認(rèn)證失敗,需重新輸入用戶信息,返回步驟(1)。
③身份信息處理服務(wù)器S 就近選擇區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)N,并接收用戶在區(qū)塊鏈中保存的用戶身份數(shù)字簽名信息SNi。
④身份信息處理服務(wù)器S 利用用戶全域身份標(biāo)識信息GIDi*和密鑰加密口令PKWi對用戶身份數(shù)字簽名信息SNi進(jìn)行解密,得到用戶身份信息摘要SMi,并通過Hash 函數(shù)計算出當(dāng)前的信息摘要。
(5)身份信息處理服務(wù)器S 驗證用戶身份信息摘要SMi和SMi*是否一致:
①如果SMi=SMi*,則用戶Ui認(rèn)證輸入的信息和存儲在區(qū)塊鏈數(shù)據(jù)庫中的原始信息一致,身份認(rèn)證成功。
②如果SMi≠SMi*,則用戶Ui認(rèn)證輸入的信息和存儲在區(qū)塊鏈數(shù)據(jù)庫中的原始信息不一致,則身份認(rèn)證失敗。需重新輸入用戶信息,返回步驟(1)。
(6)身份信息處理服務(wù)器S 將用戶身份認(rèn)證成功結(jié)果返回給業(yè)務(wù)系統(tǒng),業(yè)務(wù)系統(tǒng)根據(jù)用戶訪問情況,為用戶提供信息訪問數(shù)據(jù)。
由于區(qū)塊鏈系統(tǒng)作為一種無中心的分布式記賬環(huán)境,為了保證數(shù)據(jù)的可靠性和安全性,區(qū)塊鏈上的區(qū)塊數(shù)據(jù)信息均不可進(jìn)行修改或調(diào)整,因此具有不可篡改和偽造的特性,能夠有效保障區(qū)塊鏈中數(shù)據(jù)的真實性和抗抵賴性。但相應(yīng)地也為用戶身份信息的修改、更新等帶來了一些的麻煩,因此需要重新設(shè)計用戶身份信息的更新修改方案。
本方案擬通過添加新區(qū)塊信息的形式進(jìn)行用戶身份信息的更新。針對用戶更新身份信息的情況,身份信息處理服務(wù)器S通過注冊新的用戶身份信息,得到全新的全域身份信息標(biāo)識GIDi,并利用新的身份信息進(jìn)行用戶身份的識別認(rèn)證,從而實現(xiàn)用戶身份信息的更新。
區(qū)塊鏈系統(tǒng)中,缺乏中心管理節(jié)點(diǎn)對每一筆交易進(jìn)行確認(rèn)和一致性保障,因此讓區(qū)塊鏈各網(wǎng)絡(luò)節(jié)點(diǎn)對每筆交易形成共識非常重要。在區(qū)塊鏈網(wǎng)絡(luò)中,比較常見的共識機(jī)制包括工作量證明機(jī)制(Proof of Work,PoW)和權(quán)益證明機(jī)制(Proof of Stake,PoS)。其中,PoW 通過工作量證明來決定節(jié)點(diǎn)是否擁有記賬權(quán)力,工作量越大,則節(jié)點(diǎn)記賬的機(jī)會越大。PoS 通過證明節(jié)點(diǎn)擁有的代幣數(shù)量和時間長度決定節(jié)點(diǎn)是否具有記賬的權(quán)利。
基于區(qū)塊鏈的身份認(rèn)證方法,主要針對強(qiáng)管控、強(qiáng)監(jiān)管環(huán)境下的身份認(rèn)證服務(wù),因此可以選擇低開效的共識機(jī)制。如通過輪詢或系統(tǒng)規(guī)則制定的方式,進(jìn)行區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的選擇。因此,區(qū)塊鏈上鏈設(shè)備的選擇可根據(jù)輪詢或系統(tǒng)規(guī)則匹配的方式進(jìn)行區(qū)塊信息的上鏈,而避免通過Pow 和PoS 機(jī)制競爭上鏈,以減少計算和通信資源的過度浪費(fèi),有效保障業(yè)務(wù)系統(tǒng)的可靠運(yùn)行。
基于區(qū)塊鏈的身份認(rèn)證系統(tǒng)主要具備以下特點(diǎn)。
(1)去中心化管理
通過采用區(qū)塊鏈技術(shù),將用戶身份信息和認(rèn)證數(shù)據(jù)以區(qū)塊形式安全保存在區(qū)塊鏈網(wǎng)絡(luò)上,并通過區(qū)塊鏈網(wǎng)絡(luò)的傳播共享,使得各個區(qū)塊鏈節(jié)點(diǎn)上均可獲取區(qū)塊鏈網(wǎng)絡(luò)中各個實體的身份信息,從而實現(xiàn)身份信息的去中心化管理。
(2)分布式認(rèn)證
由于各個用戶實體的身份信息保存在區(qū)塊鏈上,各個區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)均可獲取區(qū)塊鏈網(wǎng)絡(luò)中的實體身份信息,從而任意區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)均可對用戶實體身份信息進(jìn)行識別認(rèn)證,實現(xiàn)用戶實體身份的就近識別,提升用戶實體身份認(rèn)證效率,并能有效支撐用戶實體的異地登錄認(rèn)證需求。
(3)身份信息容量大
本方案通過采用用戶公鑰作為用戶全域身份標(biāo)識,并結(jié)合用戶身份信息和唯一身份認(rèn)證信息完成用戶實體身份的識別。其中,用戶公私鑰對采用RSA 生成算法,通常設(shè)置公鑰長度不低于1 024 bit,則用戶全域身份標(biāo)識空間則不小于21024,從而能夠有效保障海量用戶身份的注冊上鏈。
(4)安全性較高
本方案通過使用用戶的指紋、人臉、指靜脈等生物特征信息作為用戶實體識別認(rèn)證手段,能夠更加真實準(zhǔn)確反映用戶實體身份信息,有效保障用戶身份識別的準(zhǔn)確性和可靠性。此外,為保護(hù)用戶指紋、人臉等生物特征信息的安全性,也可考慮對用戶多種生物特征信息融合數(shù)據(jù)作為實體身份的唯一認(rèn)證標(biāo)識。
本文提出了一種基于區(qū)塊鏈的身份認(rèn)證方法。利用區(qū)塊鏈技術(shù)無中心、分布式管理特點(diǎn),通過將實體身份及認(rèn)證信息安全保存在區(qū)塊上,構(gòu)建身份認(rèn)證區(qū)塊鏈網(wǎng)絡(luò),實現(xiàn)用戶實體身份的分布式認(rèn)證識別,并支持身份信息的去中心化管理,能夠有效避免傳統(tǒng)集中式用戶身份管理系統(tǒng)單點(diǎn)故障風(fēng)險,提升實體身份識別認(rèn)證效率。