趙 慧
(呼和浩特民族學院,內蒙古 呼和浩特 010000)
在區塊鏈數據訪問控制系統網絡節點中增加網絡通道能夠解決數據安全隱私問題,因為網絡通道能夠降低網絡數據的透明性及易篡改性,并實現不同數據的相互隔離,進而增強數據隱私保護力度。盡管如此,常規狀態下的區塊鏈數據訪問控制系統依然存在一定的數據泄露風險、數據隱私保護粒度過粗等問題[1]。
命名數據網絡(Named Data Networking),簡稱NDN,由端到端解耦、網絡層、應用層邏輯拓撲等構成,不僅具有屏蔽底層異構細節的功能,還具有數據通信及廣播信息、提供驅動及移動原生支持、數據隔離保護等功能[2]。NDN網絡架構呈“沙漏”型(見圖1),能夠維護轉發信息表、請求等待表及內容倉庫等數據。

圖1 NDN的沙漏架構
(1)在CS中查找數據包,如果有相匹配的數據包(與之名稱相對應的數據包),則可直接將興趣包返回給請求者。
(2)如果CS中沒相匹配的數據包,則需要到PIT中查詢與之名稱相同的PIT條目,如果有則證明有匹配的數據包;如果已在這之前發出,此時記錄相應接口就行,等數據包傳送回來可直接通過PIT中的接口傳送給請求者。
(3)如果CS和PIT中都沒有匹配的數據包或者條目,就需要到FIB中查找,并根據FIB中對應的路由策略,將相匹配的數據包轉發至下一個節點,然后添加新條目,形成新的數據包。
(4)如果找不到匹配的數據包,則表明該節點無法處理這個數據包[3]。
第一,必須保留“沙漏”模型及體系,實現全局互聯互通。第二,必須建立安全機制。利用打補丁的方式將內置安全機制補充到網絡架構中,以確保數據安全;還可通過建立細粒度、定制化認證、授權和信任模型來建立安全機制。第三,必須建立流量自調節機制。可利用Data包和Interest包對應的“拉”數據通信原語建立網絡節點流量自調節機制,實現對網絡流量的有效控制。
區塊鏈的概念源于比特幣,是一種特殊數據結構,它不僅結合了計算機信息技術及大數據技術,還結合了各種密碼學技術和分布式網絡技術,所以不僅能夠解決去中心化分布式場景中節點間的信任問題,還能夠將各種數據塊組織起來形成數據鏈或者數據庫,并形成共識機制,以實現對各種數據內容的保存及保護,提高數據不可篡改性和持久性[4]。
超級賬本區塊鏈網絡簡稱為Fabric-CA,屬于許可鏈類型,是目前使用頻率較高的區塊鏈網絡系統,新用戶需要獲取合法證書(到專門機構獲取)后才能使用Fabric-CA的所有功能。Fabric-CA由服務器和客戶端組成,主要功能有注冊新用戶身份(申請用戶證書時需要用戶注冊結果作為憑證)、簽發證書(指注冊票據生成的證書)、更新或撤銷證書[5]。
超級賬本區塊鏈網絡的交易流程是:注冊新用戶→獲取合法的證書→實現Fabric-SDK與區塊鏈網絡交互→建立多通道機制→形成獨立的區塊鏈賬本→區塊通道ID分發及數據隔離→交易提案發送→背書節點處理及用戶簽名→背書響應及交易內容發送(通常發送到排序服務集群)→交易處理→將合法交易添加到區塊鏈賬本中[6]。
CP-ABE算法包括全局初始化算法、密鑰生成算法、預解密算法等,具體計算公式及說明見表1。

表1 CP-ABE算法計算公式及說明[7]
(1)證書頒發機構(Fabric-CA)的功能:簽發區塊鏈網絡用戶證書、吊銷證書等。
(2)區塊鏈網絡(Fabric)的功能:初始化系統數據、公開參數、生成主密鑰、增加分發機制、交易背書、交易排序、交易驗證、分布式存儲等。
(3)客戶端(Client)的功能:發起交易、接收用戶證書、生成用戶屬性密鑰、數據加密處理等。
采用C P-A BE 算法,只有滿足策略屬性的密鑰才能解密加密文件或者數據。C P-A BE網絡中Channel1、Channel2和Channel3等多個通道,每個通道都包含有多個組織,而不同組織的用戶不同(如User1、User2和User3等用戶)且數量很多,所以基于CP-ABE算法的超級賬本區塊鏈網絡不僅能夠實現對最小單位數據網絡及用戶信息的劃分,還能夠對數據進行隔離保護及集中性最細粒度保護。基于CP-ABE算法的區塊鏈數據訪問控制系統屬性定義及相關參數見表2,不同通道對應不同的通道策略。

表2 基于CP-ABE算法的區塊鏈數據訪問控制系統屬性定義及相關參數
從表2和圖2不難看出,策略即屬性組成的訪問結構,可將屬性定義為通道ID、組織ID以及用戶ID這3種,再將3種屬性隨意組合形成訪問控制策略。其中,通道策略Channel1、Channel2和Channel3都可定義組織Org1、Org2中的全部用戶(包括User1、User2和User3等),從而實現對全部用戶的訪問及控制,其為區塊鏈數據訪問控制系統構建奠定了網絡通道及訪問控制基礎。

圖2 用戶通道策略
4.3.1 構建方案及流程
基于現有證書頒發機構(Fabric-CA)及區塊鏈網絡(Fabric),將(Fabric-CA)網絡系統及算法中嵌入CP-ABE中,形成多網絡通道、網絡階段及用戶的CP-ABE區塊鏈數據方位控制系統,并基于原有Fabric網絡用戶證書對數據方位控制系統進行初始化處理,并生成用戶屬性私鑰,然后在該基礎上增加分發功能、網絡交互功能、訪問控制功能等。
基于CP-ABE算法的區塊鏈數據方位控制系統操作流程可分為密鑰生成、數據加密上鏈和訪問控制3個階段,共6大步驟,即Setup、KeyGen、Encrypt、Update、Download和Decrypt。本文以UserA和UserB之間的交互為例,說明該系統構建方案的操作流程,其中UserA需要通過CIientA對隱私數據進行加密上鏈,UserB需要通過CIientB和Fabric網絡訪問密文對應的明文,進而實現交互。
4.3.2 方案實現
(1)密鑰生成階段:即用戶與Fabric-CA通信階段,然后由用戶中心生成全局參數、主密鑰、公開參數,最后通過用戶身份認證生成用戶證書及密文。
(2)數據加密上鏈階段:即UserA與Fabric網絡交互階段,需要對用戶UserA指定的數據進行加密上鏈;然后生成明文數據,并在該基礎上結合通道策略加密密文;最后發起交易,將交易信息轉變為交易負載形式,發送到區塊鏈網絡系統中,從而實現數據訪問控制。
(3)訪問控制階段:即Fabric網絡與UserB交互階段。需要用密文交易區塊將同步通道內的全部節點連接起來,然后結合客戶端請求區塊鏈網絡密文信息及用戶信息等生成密文,最后在該基礎上生成用戶屬性密鑰,實現對密文的解密,得到明文,實現數據訪問控制。
本文中構建的區塊鏈數據訪問控制系統在原有的Fabric-CA網絡基礎上增加了密鑰分發機制及用戶證書管理機制,提高了用戶屬性私鑰等的傳輸安全性。基于CP-ABE算法的區塊鏈數據訪問控制系統還能夠加密處理各種密文及數據包,實現對通道策略的分布式管理。
基于CP-ABE算法的區塊鏈數據訪問控制系統能夠實現對明文數據的加密上鏈,還能夠設置、生成用戶屬性密鑰、轉換密鑰及屬性中心密鑰,從而實現對不同網絡通道及網絡節點數據信息的加密處理,提高數據的安全性。
本文基于聯盟區塊鏈超級賬本Fabric存在的數據隱私安全問題,分析了命名數據網絡及CP-ABE算法對區塊鏈數據訪問控制的重要性,并在此基礎上分析了如何在命名數據網絡中基于CP-ABE算法構建功能完善的區塊鏈數據訪問控制系統。■