趙欽,蔡杰杰,蔡耀君,周飛,彭新永
(廣西壯族自治區(qū)信息中心,廣西 南寧 530200)
近年來,區(qū)塊鏈技術(shù)因其較高的安全性與不可篡改的特性,逐漸得到越來越多的重視及應用[1-3]。該技術(shù)由比特幣的概念衍生而來,比特幣是由中本聰于2008 年所提出的,最初被用作基于點對點網(wǎng)絡基礎支撐的數(shù)字貨幣。在比特幣流行的過程中,逐步融合了分布式存儲、P2P 架構(gòu)(Peer-To-Peer)和共識算法的區(qū)塊鏈技術(shù)成為各國政府與企業(yè)關(guān)注的重點之一,并將其應用于其他領(lǐng)域中[4-9]。自2016 年起,在大數(shù)據(jù)時代背景下,我國中央機構(gòu)便多次強調(diào)信息整合的重要性,尤其是加強數(shù)據(jù)安全共享管理[10-11]。傳統(tǒng)保障數(shù)據(jù)共享安全的方法為線下傳輸數(shù)據(jù),但隨著數(shù)據(jù)量的迅速增長,該方式已無法滿足實時分享的要求,且容易因人為失誤而造成數(shù)據(jù)的丟失。更嚴重的是,其難以對數(shù)據(jù)傳輸過程進行全程監(jiān)管,數(shù)據(jù)的流向則更不易被追蹤。針對上述問題,由于區(qū)塊鏈技術(shù)具有去中心化、防篡改與可審計的特點,越來越多的學者開始將其應用于數(shù)據(jù)共享研究中。2020 年,國家發(fā)展和改革委員會將區(qū)塊鏈技術(shù)納入新基建范疇,這意味著該技術(shù)成為新一輪數(shù)字經(jīng)濟建設的重要基石[12-13]。
該文針對數(shù)據(jù)共享過程中的安全性與“信息孤島”問題,基于分布式區(qū)塊鏈技術(shù)提出了一種數(shù)據(jù)安全保障技術(shù)。該技術(shù)通過對數(shù)據(jù)安全管理及對請求用戶的訪問進行控制,從而提高了數(shù)據(jù)共享過程中的安全性。
現(xiàn)階段基于區(qū)塊鏈技術(shù)的數(shù)據(jù)安全保障技術(shù)已取得諸多重要成果,然而在進行數(shù)據(jù)共享時,仍存在較多問題:
1)區(qū)塊鏈存儲數(shù)據(jù)的容量有限,無法滿足日益增長的海量數(shù)據(jù)儲存;
2)集中式存儲由于形態(tài)固定、抗災能力弱及維護成本較高等弊端,無法作為補充儲存方式;
3)在進行數(shù)據(jù)補充時,缺乏對數(shù)據(jù)本身機密性的安全保護措施;
4)在數(shù)據(jù)共享時,數(shù)據(jù)分享者需保持較高的系統(tǒng)檢查頻率來滿足共享請求的及時響應,由此造成了較高的成本。
針對上述問題,該文展開了基于分布式區(qū)塊鏈的數(shù)據(jù)安全保障技術(shù)研究,形成分布式數(shù)據(jù)安全的共享方案[14-16]。數(shù)據(jù)安全保障技術(shù)可分為兩個部分:分布式數(shù)據(jù)安全存儲模型與分散管理細粒度動態(tài)訪問控制模型。在分布式數(shù)據(jù)安全存儲模型中,區(qū)塊鏈補充數(shù)據(jù)存儲在具有分布式特點的IPFS(Inter Planetary File System)中,其通過哈希尋址的方式來進行查詢,并利用對稱加密(Symmetric-key Algorithm)的方式避免數(shù)據(jù)泄露。在此過程中,為了增強數(shù)據(jù)加密對稱密匙與數(shù)據(jù)存儲地址的安全性,該文采用了分散式密文策略屬性基加密,來阻擋由于用戶身份以及屬性管理權(quán)限過度集中所引起的數(shù)據(jù)安全隱患。
該文所提出的基于分布式區(qū)塊鏈的數(shù)據(jù)安全保證技術(shù)框架如圖1 所示,根據(jù)功能其可分為分布式數(shù)據(jù)管理和訪問控制兩個部分。其中,數(shù)據(jù)存儲層用于用戶數(shù)據(jù)的存儲,其為共享數(shù)據(jù)提供安全的存儲空間??紤]到數(shù)據(jù)共享時的安全性,使用IPFS 星際文件系統(tǒng)存儲用戶的分布式數(shù)據(jù)。而區(qū)塊鏈引擎層為用戶接入層與數(shù)據(jù)存儲層二者間的連接,其是用戶各類重要信息存儲、操作及審計的執(zhí)行者。用戶接入層則提供了該模型主要的功能接口,主要有訪問控制和數(shù)據(jù)管理兩個模塊。
圖1 數(shù)據(jù)安全保障技術(shù)框架
該文用于數(shù)據(jù)安全保障技術(shù)的分布式區(qū)塊鏈基本單元為區(qū)塊,其由區(qū)塊頭及區(qū)塊體組成,具體如圖2 所示。
在進行數(shù)據(jù)共享時,參與主體主要有兩類:數(shù)據(jù)提供者與數(shù)據(jù)請求者。該次使用區(qū)塊鏈、智能合約及IPFS 技術(shù)來實現(xiàn)區(qū)塊鏈鏈上數(shù)據(jù)及鏈下數(shù)據(jù)的關(guān)聯(lián),及保障整個共享過程的安全性。
IPFS 是星際文件系統(tǒng)的簡稱,與HTTP 協(xié)議不同的是,其是分布式、點對點的超媒體協(xié)議。IPFS 基于內(nèi)容尋址的存儲方式,使得相同內(nèi)容的信息不會被重復存儲;其去中心化的內(nèi)容分布,使得用戶能夠在分散的互聯(lián)網(wǎng)服務下獲得數(shù)據(jù),避免了較多網(wǎng)絡訪問引發(fā)的網(wǎng)絡擁堵。IPFS 的結(jié)構(gòu)如圖3 所示。
圖3 IPFS結(jié)構(gòu)
數(shù)據(jù)共享過程主要分為兩步:數(shù)據(jù)提供者上傳相關(guān)數(shù)據(jù)及數(shù)據(jù)請求者下發(fā)請求,具體步驟如下:
1)數(shù)據(jù)提供者利用對稱密匙將數(shù)據(jù)加密處理;
2)數(shù)據(jù)提供者將待共享的數(shù)據(jù)存儲在IPFS 中,并保存該存儲地址;
3)數(shù)據(jù)提供者利用訪問控制單元為對稱密匙加密;
4)數(shù)據(jù)提供者通過數(shù)據(jù)管理合約,并將數(shù)據(jù)儲存的相關(guān)信息保存至鏈狀態(tài)數(shù)據(jù)庫中;
5)數(shù)據(jù)請求者通過調(diào)用數(shù)據(jù)列表,在所有數(shù)據(jù)中定位所需數(shù)據(jù)的位置;
6)數(shù)據(jù)請求者向訪問控制單元發(fā)出申請,經(jīng)審核后得到相關(guān)數(shù)據(jù)存儲地址及解密密匙;
7)數(shù)據(jù)請求者下載相關(guān)數(shù)據(jù),并利用解密后的對稱密匙對數(shù)據(jù)進行解密。
在上述過程中,對原始數(shù)據(jù)的加密可用下式表示:
其中,D代表原始數(shù)據(jù);K為對稱密匙;Dc為經(jīng)過對稱密匙加密后的數(shù)據(jù)信息。數(shù)據(jù)提供者通過構(gòu)建策略樹T,并利用屬性權(quán)限公匙PK和全局參數(shù)GP將對稱密匙K加密,得到加密后的對稱密匙CI。在數(shù)據(jù)管理合約注冊后,數(shù)據(jù)才能被存儲在區(qū)塊鏈中。注冊需要元信息數(shù)據(jù)名稱Ndata,數(shù)據(jù)關(guān)鍵詞KW,密文請求訪問策略req,加密后的對稱密匙CI,這些信息構(gòu)成了元信息集合MI,如下所示:
數(shù)據(jù)請求者通過在數(shù)據(jù)管理合約中查找所需數(shù)據(jù)的元信息,來確定目標數(shù)據(jù)是否存在。同時獲取加密的對稱密匙CI,并向?qū)傩詸C構(gòu)請求用戶模式UK,再將二者與GP結(jié)合便可得到數(shù)據(jù)的對稱密匙K,具體過程如下:
上文對分布式數(shù)據(jù)共享管理進行了探究,為了加強對稱密匙與數(shù)據(jù)信息在共享時的安全性,該文使用智能合約來實現(xiàn)基于屬性的細粒度訪問控制。同時,增加數(shù)據(jù)提供者的訪問控制動態(tài)權(quán)限許可判斷能力?;趯傩缘募毩6葎討B(tài)訪問控制機制流程如圖4 所示。
圖4 細粒度動態(tài)訪問控制機制流程
該文提出的基于屬性的細粒度動態(tài)訪問控制機制主要涉及四個階段:屬性集初始化階段、密文發(fā)布階段、數(shù)據(jù)請求階段及數(shù)據(jù)解密階段。其中,在屬性集初始化階段,屬性授權(quán)機構(gòu)給屬性集中的每一個屬性i兩個隨機指數(shù)a、b,并將全局參數(shù)GP與屬性空間U結(jié)合,得到權(quán)限密匙SK及權(quán)限公匙PK,具體如下所示:
在密文發(fā)布階段,策略制定者通過策略樹得到權(quán)限矩陣、全局參數(shù)GP和權(quán)限公匙,由此對目標信息進行加密。
在受控請求階段,數(shù)據(jù)請求者在查詢、定位到目標數(shù)據(jù)后,通過向數(shù)據(jù)管理合約發(fā)出請求來獲取加密信息CT;數(shù)據(jù)請求合約調(diào)用動態(tài)訪問策略DP對數(shù)據(jù)請求者部分動態(tài)屬性進行權(quán)限判定。ATT為所有請求者的屬性集合;而att為某一時刻數(shù)據(jù)請求者當下的動態(tài)屬性,二者間的聯(lián)系可表示為:
若動態(tài)屬性的判定結(jié)果為can-pass,即通過了密文請求檢驗,則數(shù)據(jù)請求合約向數(shù)據(jù)請求者發(fā)放系統(tǒng)密文CT。然后,數(shù)據(jù)請求者可向?qū)傩詸C構(gòu)申請用戶密匙與相關(guān)信息,并用于密文的解密。
為了驗證上述方案的可行性及有效性,進行了性能測試。該測試涉及區(qū)塊鏈查詢、屬性加解密與IPFS 上傳下載功能,分別就消耗時間與傳輸速率進行性能評估。
在硬件環(huán)境配置上,使用了四臺服務器作為區(qū)塊鏈引擎,均為64 位16 GB 內(nèi)存、雙核Intel Core i7的處理器和1 TB 機械硬盤,開發(fā)語言環(huán)境為Golang 1.11。另使用兩臺筆記本電腦作為用戶端,且電腦配置相同:內(nèi)存容量為16 GB,操作系統(tǒng)為Windows7 64 位。處理器為Intel Core i7-8550U,開發(fā)語言環(huán)境為Java 1.8。
性能測試使用的數(shù)據(jù)來自Centers for Disease Control and Prevention 的數(shù)據(jù)集。在進行加解密實驗時,測試信息的長度均為168 B。通過調(diào)整屬性加密策略中屬性機構(gòu)的數(shù)量來評估加解密模塊的性能,每個屬性機構(gòu)選取用戶的三個屬性進行訪問控制策略的驗證。每種屬性機構(gòu)數(shù)量各測試10 次,測試結(jié)果如圖5 所示。從圖中可以看出,隨著屬性機構(gòu)數(shù)量的增多,加密、解密時間均呈線性增長的趨勢,且加密時間顯著多于解密時間。
圖5 加解密消耗時間對比
在進行IPFS 儲存單元的數(shù)據(jù)上傳、下載性能測試時,考慮到不同容量大小數(shù)據(jù)包對測試的影響,分別創(chuàng)建了容量大小為20 MB、40 MB、60 MB、80 MB、100 MB、120 MB 和140 MB 的數(shù)據(jù)包。在公網(wǎng)及局域網(wǎng)進行寫入與讀取時間測試,測試結(jié)果如圖6所示。
圖6 訪問控制后的IPFS消耗時間
從圖中可以看出,隨著數(shù)據(jù)包容量的增大,在進行數(shù)據(jù)寫入時,無論是公網(wǎng)還是局域網(wǎng),消耗時間均在增加。但公網(wǎng)環(huán)境下,消耗時間點的增速逐漸增大,而局域網(wǎng)環(huán)境下的增速相對較小。且100 MB 容量的數(shù)據(jù)包,在公網(wǎng)環(huán)境的寫入時間為68 s,而在局域網(wǎng)環(huán)境下寫入時間僅為36 s。在進行數(shù)據(jù)讀取測試時,公網(wǎng)和局域網(wǎng)環(huán)境下消耗時間的變化趨勢與寫入時間相同,100 MB 容量的數(shù)據(jù)包,在公網(wǎng)環(huán)境的讀取時間為88 s,在局域網(wǎng)環(huán)境下讀取時間為24 s。此外,公網(wǎng)環(huán)境下,讀取數(shù)據(jù)的時間增長速度也顯著增大。
該文通過分析傳統(tǒng)數(shù)據(jù)共享模式時,影響數(shù)據(jù)安全的因素,在分布式區(qū)塊鏈技術(shù)的基礎上深入研究了一套數(shù)據(jù)安全保障技術(shù)方案。該方案將分布式區(qū)塊鏈與IPFS 相融合,有效提升了數(shù)據(jù)存儲的安全性;同時采用基于屬性的細粒度訪問控制技術(shù),進一步提高了數(shù)據(jù)共享與傳輸過程的安全性。測試結(jié)果驗證,該文所述方案具有良好的有效性及可行性。