滕鵬國,劉 飛
(中國電子科技集團公司第三十研究所,四川 成都 610041)
隨著網絡信息技術的不斷發展,各類實體事物越來越多地借助數字化形式完成自身信息全方位地呈現,并實現信息的快速傳播共享。人們也更加傾向于利用應用信息系統滿足自身工作和生活的需要。數字現代化已經成為未來社會的發展趨勢,影響著社會發展的方方面面。
大數據、云計算、人工智能等新興信息技術,進一步推動了社會數字化進程的發展。數字化逐漸改變了書信、動作、聲音等傳統信息承載方式對時空的依賴性,并作為一種新型信息的承載形式,既保證了信息傳遞的準確性、可靠性和長久性,又實現了信息的高效快速傳播。因此,越來越多的個人、企業、組織選擇通過磁盤、數據中心等媒介,將自身或相關實體信息進行數字化承載,以滿足自身使用需求。
然而,現實世界各類實體信息的數字化呈現,在為人們的工作生活帶來各種便利的同時,也容易遭到各類非法用戶的違規使用或惡意破壞,給個人、企業、組織帶來巨大的經濟、業務、聲譽等方面的損失。為了保障數字信息的安全性,各類安全防護技術和系統應運而生,從網絡安全、計算設施安全、數據安全、應用安全、實體安全等方面保障數字信息在傳輸、使用、存儲、共享和銷毀等過程中的安全,其中身份認證技術作為實體安全的重要組成部分,受到極大的關注。
針對各類組織機構在廣域環境下的去中心化身份認證需求,基于區塊鏈技術,提出了一種無中心的身份認證方案。該方案通過建立基于區塊鏈的實體身份網絡,將人員、設備、應用等實體身份信息保存在區塊鏈上,實現實體身份信息的就近快速驗證,從而提升信息數據訪問效率。
目前,隨著網絡信息系統的不斷發展,信息網絡結構正變得日益復雜,網絡邊界逐漸模糊,傳統基于邊界的網絡安全防護難以滿足內部人員的非法訪問或操作。因此,業界提出了零信任結構,以增強系統數據訪問的可靠性。零信任結構遵循“從不信任,總是驗證”的設計原則,假定所有實體都是不可信的,需要不斷地評估網絡安全風險,并制定措施來增強各類實體身份的可信度。零信任架構理念[1]最初由John 在2010 明確并正式提出,2011年,Google 公司基于這一理念開展BeyondCorp 項目進行實踐[2]。2017 年Gartner 在安全與風險管理峰會上發布持續自適應風險與信任評估(Continuous Adaptive Risk and Trust Assessment,CARTA)模型,并提出零信任是實現CARTA 宏圖的基礎。2020 年美國國家標準與技術研究院(National Institute of Standards and Technology,NIST)發布了零信任架構草案(第二版)[3],零信任理念目前得到了業界的廣泛認可,但還處于技術探索和研究階段[4]。為了實現零信任理念,需要研究實體身份認證相關關鍵技術,為零信任模型下實體身份的快速識別認證提供支撐。
區塊鏈技術[5]由于其良好的抗抵賴性和無中心等特點,為用戶身份認證提供了新的方式。區塊鏈按照共識機制,利用當前參與的節點進行交易數據的維護和更新,使用密碼學原理完成交易,從而使得達成一致的雙方可以直接進行交易,不需要第三方進行介入。區塊鏈技術通常需要包括以下幾個方面的概念:區塊鏈交易,在區塊鏈網絡中,所有實體身份的注冊、管理都會被視為交易,帶有交易號,并利用共識機制保存在整個區塊鏈中;區塊,主要記錄當前最新的交易信息,且不能被其他先前的區塊記錄;區塊鏈,各個區塊之間,通過前一區塊交易號逐個相連,同時,區塊信息一旦被記錄在鏈上就不能被改變或刪除,最終形成一條記錄身份信息的鏈條。
區塊鏈技術由于不需要交易第三方的參與,從而具有無中心的特點,并通過共識機制,實現區塊鏈上信息的快速共享,能夠避免信息交換瓶頸、流程復雜等集中化管理的缺陷。因此,利用區塊鏈技術將各類實體身份信息保存在鏈上,進行身份信息的去中心化管理,具有非常重要的實用價值。
本文基于區塊鏈技術,提出了一種基于區塊鏈的身份認證方案,能夠實現實體身份信息的去中心化管理和分布式認證。
隨著網絡信息系統的不斷發展,信息資源的異地獲取、廣域共享的需求越來越明顯,針對多用戶、多設備、多樣式的廣域聯合協同數據信息使用場景,面向不同用戶實體,如人員、設備、應用等的數據訪問共享需求,為滿足靈活、高效、便捷的身份認證要求,本文提出了一種基于區塊鏈的身份認證系統模型,如圖1 所示,能夠提升應用數據信息快速傳播和數據共享能力。
在該模型中,用戶通過提交自身身份認證信息至身份認證系統,完成用戶身份信息的注冊和上鏈;當用戶訪問業務系統時,業務系統將用戶身份發送至區塊鏈身份信息處理服務器上,并獲取區塊鏈中相應用戶實體的身份信息;服務器通過對用戶實體身份進行識別驗證,并將結果反饋給業務系統;最終由業務系統根據反饋結果決定是否允許用戶實體訪問相關的業務數據。
基于區塊鏈的身份認證系統主要包括用戶實體、業務系統、身份信息處理服務器,區塊鏈網絡節點等部分,系統使用模型如圖2 所示。
用戶實體:訪問業務系統的各類用戶,包括人員、應用、設備等形式。
業務系統:提供各類業務數據的應用信息系統,需要對訪問系統的實體進行鑒別。
身份信息處理服務器:提供用戶實體身份信息的采集、封裝、解封、識別等能力。
區塊鏈網絡節點:提供用戶實體身份信息上鏈和查詢等能力。

圖1 基于區塊鏈的身份認證系統結構

圖2 實體身份區塊鏈使用模型
在基于區塊鏈的身份認證系統中,通過將用戶實體身份信息安全上傳并保存在區塊鏈上,并進行廣播和數據共享,區塊鏈網絡中的任意服務節點均可獲取實體相應的身份信息,并進行核對校驗,從而能夠實現對用戶實體身份的快速識別認證。
基于區塊鏈的身份認證系統中,用戶實體身份信息將封裝在鏈中的各個區塊中,通過鏈式管理,以及相關的共識機制,使得各類上鏈實體身份信息無法被竄改或抵賴,從而為實體的準確識別提供有力保障。用戶身份信息以區塊的形式永久保存在區塊鏈中,區塊分為區塊頭和區塊體兩部分:區塊頭主要保存了前一區塊的哈希值、時間戳以及參與共識的相關信息;區塊體主要包括用戶實體的各類身份信息以及各種屬性信息,包括用戶身份ID、全域用戶身份標識信息、用戶身份數字簽名信息等方面數據。具體可如表1所示。

表1 參數說明
用戶實體身份信息形成區塊后,提交區塊鏈網絡節點進行驗證,并按照時間順序加入原有區塊鏈中。區塊之間通過Hash 值進行連接,原有區塊鏈的唯一標識就是這個Hash 值,新區塊通過在頭部記錄Pre-Hash 就能找到原有區塊鏈所連接的區塊,隨著不斷有新區塊加入區塊鏈中,從而形成一條鏈式結構,也是用戶實體身份區塊鏈。
基于區塊鏈的身份認證方法,通過將用戶身份信息封裝為各個區塊,然后連接起來形成公鏈信息,實現用戶身份信息的上鏈共享。用戶的身份信息,包括用戶身份ID、唯一身份認證信息、身份簽名信息。用戶通過對用戶身份ID、用戶唯一身份標識進行Hash,再利用用戶私鑰進行加密,完成對用戶身份的簽名。區塊交易頭ID,通常為用戶身份信息的Hash 值。每個區塊都要記錄自己以及前一個區塊的交易頭ID,以便完成身份信息組鏈。
用戶身份注冊的流程如下所示:
(1)用戶Ui輸入自己的用戶身份UIDi、唯一身份認證信息UAIi、密鑰加密口令PKWi(用戶進行注冊時,用戶設置的密鑰加密口令)進行注冊,并且通過安全信道傳輸給身份信息處理服務器S。
(2)身份信息處理服務器S 收到用戶發送的身份信息(UIDi,UAIi,PKWi),利用密鑰加密口令PKWi,根據RSA 公私鑰對生成算法,生成加密公私鑰對(PRKi,PBKi),其中私鑰為PRKi,公鑰為PBKi,并將用戶公鑰PBKi作為用戶的全域身份標識信息GIDi,也即GIDi=PBKi。
(3)身份信息處理服務器S 根據生成的用戶全域標識信息GIDi,核查GIDi信息是否已經使用,如果GIDi信息已經存在,則用戶身份注冊失敗,返回第(2)步,重新生成GIDi信息,否則進入下一步。
(4)身份信息處理服務器S 將用戶Ui的身份信息,包括私鑰PRKi和用戶全域身份標識信息GIDi發送給用戶Ui,由用戶進行妥善保管,并通知用戶預注冊成功。
(5)身份信息處理服務器S 將用戶的UIDi、唯一身份標識UAIi進行哈希運算,得到用戶身份信息摘要SMi=H(UIDi|UAIi),并利用用戶私鑰PRKi對用戶身份信息摘要SMi加密生成用戶身份數字簽名SNi。
(6)身份信息處理服務器S 將用戶身份UIDi、用戶全域身份標識信息GIDi以及用戶身份數字簽名信息SNi,通過安全信道傳輸給區塊鏈的網絡節點x。
(7)區塊鏈的網絡節點x接收到相關用戶信息后,組裝成交易數據并附上交易號廣播到整個區塊鏈網絡中,交易通過相關的共識機制記錄到新的區塊中,最終形成新的區塊鏈。
(8)當新的區塊上鏈后,身份信息處理服務器S 通知用戶Ui其身份信息正式注冊成功。
用戶身份認證的流程如下所示。
(1)用戶Ui借助業務系統輸入自己注冊成功的用戶身份UIDi,唯一身份認證信息UAIi、密鑰加密口令PKWi和用戶全域身份標識信息GIDi*,由業務系統發起身份認證請求,并將用戶身份信息通過安全信道傳輸給身份信息處理服務器S。
(2)身份信息處理服務器S 收到來自用戶Ui的身份信息,將UIDi和GIDi*通過安全信道發送到任意一個區塊鏈節點N上,然后根據用戶UIDi查找注冊時存儲在數據庫中的GIDi,并判斷GIDi*和GIDi是否一致:
①如果GIDi*=GIDi時,則說明用戶所擁有的全域身份標識信息和數據庫中存儲的全域身份標識信息一致,則執行下一步操作。
②如果GIDi*≠GIDi時,則用戶所擁有的全域身份標識信息和數據庫中存儲的全域身份標識信息不一致,則登錄認證失敗,需重新輸入用戶信息,返回步驟(1)。
③身份信息處理服務器S 就近選擇區塊鏈網絡節點N,并接收用戶在區塊鏈中保存的用戶身份數字簽名信息SNi。
④身份信息處理服務器S 利用用戶全域身份標識信息GIDi*和密鑰加密口令PKWi對用戶身份數字簽名信息SNi進行解密,得到用戶身份信息摘要SMi,并通過Hash 函數計算出當前的信息摘要。
(5)身份信息處理服務器S 驗證用戶身份信息摘要SMi和SMi*是否一致:
①如果SMi=SMi*,則用戶Ui認證輸入的信息和存儲在區塊鏈數據庫中的原始信息一致,身份認證成功。
②如果SMi≠SMi*,則用戶Ui認證輸入的信息和存儲在區塊鏈數據庫中的原始信息不一致,則身份認證失敗。需重新輸入用戶信息,返回步驟(1)。
(6)身份信息處理服務器S 將用戶身份認證成功結果返回給業務系統,業務系統根據用戶訪問情況,為用戶提供信息訪問數據。
由于區塊鏈系統作為一種無中心的分布式記賬環境,為了保證數據的可靠性和安全性,區塊鏈上的區塊數據信息均不可進行修改或調整,因此具有不可篡改和偽造的特性,能夠有效保障區塊鏈中數據的真實性和抗抵賴性。但相應地也為用戶身份信息的修改、更新等帶來了一些的麻煩,因此需要重新設計用戶身份信息的更新修改方案。
本方案擬通過添加新區塊信息的形式進行用戶身份信息的更新。針對用戶更新身份信息的情況,身份信息處理服務器S通過注冊新的用戶身份信息,得到全新的全域身份信息標識GIDi,并利用新的身份信息進行用戶身份的識別認證,從而實現用戶身份信息的更新。
區塊鏈系統中,缺乏中心管理節點對每一筆交易進行確認和一致性保障,因此讓區塊鏈各網絡節點對每筆交易形成共識非常重要。在區塊鏈網絡中,比較常見的共識機制包括工作量證明機制(Proof of Work,PoW)和權益證明機制(Proof of Stake,PoS)。其中,PoW 通過工作量證明來決定節點是否擁有記賬權力,工作量越大,則節點記賬的機會越大。PoS 通過證明節點擁有的代幣數量和時間長度決定節點是否具有記賬的權利。
基于區塊鏈的身份認證方法,主要針對強管控、強監管環境下的身份認證服務,因此可以選擇低開效的共識機制。如通過輪詢或系統規則制定的方式,進行區塊鏈網絡節點的選擇。因此,區塊鏈上鏈設備的選擇可根據輪詢或系統規則匹配的方式進行區塊信息的上鏈,而避免通過Pow 和PoS 機制競爭上鏈,以減少計算和通信資源的過度浪費,有效保障業務系統的可靠運行。
基于區塊鏈的身份認證系統主要具備以下特點。
(1)去中心化管理
通過采用區塊鏈技術,將用戶身份信息和認證數據以區塊形式安全保存在區塊鏈網絡上,并通過區塊鏈網絡的傳播共享,使得各個區塊鏈節點上均可獲取區塊鏈網絡中各個實體的身份信息,從而實現身份信息的去中心化管理。
(2)分布式認證
由于各個用戶實體的身份信息保存在區塊鏈上,各個區塊鏈網絡節點均可獲取區塊鏈網絡中的實體身份信息,從而任意區塊鏈網絡節點均可對用戶實體身份信息進行識別認證,實現用戶實體身份的就近識別,提升用戶實體身份認證效率,并能有效支撐用戶實體的異地登錄認證需求。
(3)身份信息容量大
本方案通過采用用戶公鑰作為用戶全域身份標識,并結合用戶身份信息和唯一身份認證信息完成用戶實體身份的識別。其中,用戶公私鑰對采用RSA 生成算法,通常設置公鑰長度不低于1 024 bit,則用戶全域身份標識空間則不小于21024,從而能夠有效保障海量用戶身份的注冊上鏈。
(4)安全性較高
本方案通過使用用戶的指紋、人臉、指靜脈等生物特征信息作為用戶實體識別認證手段,能夠更加真實準確反映用戶實體身份信息,有效保障用戶身份識別的準確性和可靠性。此外,為保護用戶指紋、人臉等生物特征信息的安全性,也可考慮對用戶多種生物特征信息融合數據作為實體身份的唯一認證標識。
本文提出了一種基于區塊鏈的身份認證方法。利用區塊鏈技術無中心、分布式管理特點,通過將實體身份及認證信息安全保存在區塊上,構建身份認證區塊鏈網絡,實現用戶實體身份的分布式認證識別,并支持身份信息的去中心化管理,能夠有效避免傳統集中式用戶身份管理系統單點故障風險,提升實體身份識別認證效率。