姚云霞,張國權(quán)
(1.隴東學(xué)院信息工程學(xué)院,甘肅 慶陽 745000;2.西北民族大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,甘肅 蘭州 730030)
區(qū)塊鏈即為不同區(qū)塊構(gòu)成的鏈條,作為一種數(shù)據(jù)結(jié)構(gòu),每個(gè)區(qū)塊內(nèi)都保存一定數(shù)量的信息,可通過密碼機(jī)制提高數(shù)據(jù)的安全性。當(dāng)鏈條儲(chǔ)存在多個(gè)服務(wù)器中時(shí),僅需要一臺(tái)服務(wù)器正常工作就能確保區(qū)塊鏈的安全。基于上述優(yōu)勢,使區(qū)塊鏈技術(shù)在很多領(lǐng)域得到了廣泛應(yīng)用。但區(qū)塊鏈也會(huì)存在一定弊端,例如數(shù)據(jù)的透明性會(huì)給攻擊者帶來可乘之機(jī),造成數(shù)據(jù)泄露和篡改,數(shù)據(jù)安全問題時(shí)常發(fā)生。區(qū)塊鏈自身的隱私性難以滿足用戶需求,因此,急需研究一種保護(hù)區(qū)塊鏈數(shù)據(jù)安全的新方案。
蔡亮[1]等人提出基于雙層協(xié)同聯(lián)盟的區(qū)塊鏈數(shù)據(jù)保護(hù)方案。將各類數(shù)據(jù)做分流處理和分區(qū)保存,提高數(shù)據(jù)保護(hù)的機(jī)密性,在交易體中嵌入字段來認(rèn)證用戶身份,并將隱私數(shù)據(jù)變換為哈希值形式,減少被篡改的可能。吉斌[2]等人設(shè)計(jì)了區(qū)塊鏈數(shù)據(jù)防篡改機(jī)制。通過非對稱加密和哈希算法對數(shù)據(jù)做多重加密,構(gòu)造私鑰泄露后的防篡改機(jī)制,避免數(shù)據(jù)被替換,設(shè)置交互驗(yàn)證方式,實(shí)現(xiàn)對私鑰的解密驗(yàn)證,保證區(qū)塊鏈數(shù)據(jù)安全。但隨著攻擊手段的逐漸多樣化,上述保護(hù)方法難以保證區(qū)塊鏈數(shù)據(jù)的安全,一旦遭到攻擊容易導(dǎo)致數(shù)據(jù)丟失,進(jìn)而造成無法彌補(bǔ)的損失。
針對上述問題,本文研究一種數(shù)據(jù)防篡改備份恢復(fù)方法。建立篡改攻擊模型,設(shè)計(jì)秘密分割機(jī)制[3],將密鑰分發(fā)給多個(gè)參與者,防止數(shù)據(jù)被篡改,根據(jù)區(qū)塊鏈自身特征,設(shè)置容災(zāi)備份方案,實(shí)現(xiàn)數(shù)據(jù)的防篡改備份恢復(fù),為區(qū)塊鏈數(shù)據(jù)安全添加一道保護(hù)屏障。
在區(qū)塊鏈結(jié)構(gòu)中數(shù)據(jù)會(huì)儲(chǔ)存在一條鏈上,能夠防止惡意節(jié)點(diǎn)攻擊網(wǎng)絡(luò)。隨著密碼學(xué)技術(shù)的不斷進(jìn)步[4,5],區(qū)塊鏈結(jié)構(gòu)也迎來了多次創(chuàng)新,區(qū)塊鏈整體架構(gòu)圖如圖1所示。
圖1 區(qū)塊鏈整體架構(gòu)圖
1)數(shù)據(jù)層:儲(chǔ)存區(qū)塊鏈最底層數(shù)據(jù),隨著數(shù)據(jù)量的不斷增長,驗(yàn)證成功的數(shù)據(jù)將會(huì)加入其中,鏈條長度不斷增長。該層中常用的數(shù)據(jù)加密技術(shù)包括哈希函數(shù)等,每次交易中均會(huì)印有時(shí)間戳保證安全運(yùn)行。
2)網(wǎng)絡(luò)層:是在傳播和驗(yàn)證機(jī)制共同作用下運(yùn)行的網(wǎng)絡(luò)。在區(qū)塊鏈結(jié)構(gòu)中,任意一個(gè)節(jié)點(diǎn)均具備服務(wù)器功能,且節(jié)點(diǎn)之間具有通信能力,確保結(jié)構(gòu)更加穩(wěn)定。當(dāng)一定數(shù)量的節(jié)點(diǎn)通過驗(yàn)證之后,新產(chǎn)生的驗(yàn)證程序會(huì)添加到交易列表中,使網(wǎng)絡(luò)層具備隱私性。
3)共識(shí)層:包括各類共識(shí)算法,例如權(quán)益證明與容錯(cuò)機(jī)制等。引入共識(shí)算法的目的是確保節(jié)點(diǎn)在信任度較低的情況下達(dá)成共識(shí),防止攻擊。
4)合約層:作為強(qiáng)制執(zhí)行腳本,起到規(guī)則約束作用,可實(shí)現(xiàn)合約代碼封裝。合約是區(qū)塊鏈系統(tǒng)的重要參與者之一,可對交易信息作出回應(yīng),不但能夠儲(chǔ)存信息,還能對外提供信息,業(yè)務(wù)邏輯就是利用合約層實(shí)現(xiàn)的[6,7]。
5)應(yīng)用層:是將區(qū)塊鏈應(yīng)用到不同場景中,是整個(gè)結(jié)構(gòu)的最頂層,具備其它層次的所有技術(shù)特征,擁有開放式服務(wù)接口,方便各類功能的部署。
攻擊針對用戶的隱私數(shù)據(jù)進(jìn)行篡改,將這些數(shù)據(jù)封裝在區(qū)塊鏈中,稱作篡改攻擊[8,9]。當(dāng)區(qū)塊鏈正常運(yùn)轉(zhuǎn)時(shí),誠實(shí)節(jié)點(diǎn)獲取記賬權(quán)限,將產(chǎn)生的數(shù)據(jù)添加到主鏈中,構(gòu)成誠實(shí)鏈。惡意節(jié)點(diǎn)將篡改數(shù)據(jù)添加到主鏈中,形成分支鏈,稱作攻擊鏈。
(1)
若篡改時(shí)間t2和數(shù)據(jù)生成時(shí)刻t1之間的時(shí)間差會(huì)影響篡改成功率,則篡改成功率pM′函數(shù)表示為
pM′=f(t2-t1)
(2)
式中,pM′是與(t2-t1)相關(guān)的函數(shù)。函數(shù)值和區(qū)塊鏈生成周期T之間具有如下關(guān)系
(3)
如式(3)所示,如果t1時(shí)刻數(shù)據(jù)被添加到區(qū)塊中,但區(qū)塊并沒有入鏈,當(dāng)(t2-t1)接近0時(shí),篡改成功率為50%,當(dāng)(t2-t1)>T時(shí),成功率幾乎為0。如果t1數(shù)據(jù)已經(jīng)加入到區(qū)塊,且入鏈成功,當(dāng)(t2-t1)>T時(shí),成功率也基本為0。
針對上述篡改攻擊的特征,為實(shí)現(xiàn)防篡改備份恢復(fù),必須設(shè)計(jì)一種區(qū)塊鏈隱私保護(hù)機(jī)制。結(jié)合避免數(shù)據(jù)泄露的密碼學(xué)算法,通過秘密分割、加密等過程實(shí)現(xiàn)數(shù)據(jù)防篡改。
1)秘密共享
核心思想是將隱私數(shù)據(jù)分解為若干份,發(fā)放給多個(gè)參與者共同保管,當(dāng)只有一個(gè)參與者時(shí)無法知曉隱私數(shù)據(jù),只有所有參與者合作才能獲得完整數(shù)據(jù)。秘密共享屬于門限簽名方式[10,11],假設(shè)在(K,N)秘密共享過程中,參與者數(shù)量為N,此時(shí)需要K個(gè)以上參與者協(xié)作才能還原機(jī)密數(shù)據(jù),具體過程如下。
用戶在有限域GF(q)內(nèi)選取某隨機(jī)數(shù)當(dāng)作秘密m,q滿足q>n的條件,另外從GF(q)內(nèi)挑選k-1個(gè)系數(shù)(a1,a2,…,ak-1),并確定素?cái)?shù)u,建立如下n個(gè)多項(xiàng)式
f(xi)=(a0x0+a1x1+…,ak-1xk-1)
(4)
式中,f(xi)表示秘密份額,將其記作mi,f(0)=a0=m指秘密本身。將mi分發(fā)給n方{u1,u2,…,un},同時(shí)公布自變量{xi}。
2)加密過程
共享者利用加密算法對區(qū)塊鏈數(shù)據(jù)加密,經(jīng)過綜合考慮選用Enc加密方法構(gòu)建密文。假設(shè)輸入的明文為U,公鑰是PK,H=(h1,h2,…,hn′)描述訪問策略,需要輸出的密文是CT。若密文參數(shù)是C1和C2,在訪問策略中所有屬性參數(shù)Cj聚合成策略密文Cs,則密文構(gòu)建形式[12]如下
(6)
式中,Cm表示消息密文,g1和g2均是生成元,n′代表屬性數(shù)量。
在上述防篡改機(jī)制下,根據(jù)區(qū)塊鏈數(shù)據(jù)特征,制定備份恢復(fù)方案[13,14]。容災(zāi)備份主要包括數(shù)據(jù)上傳和下載兩個(gè)操作過程,其中上傳即備份,下載就是恢復(fù)。
1)備份
如果需要上傳一份區(qū)塊鏈數(shù)據(jù),實(shí)現(xiàn)步驟如下:
步驟一:保證儲(chǔ)存節(jié)點(diǎn)個(gè)數(shù)符合數(shù)據(jù)恢復(fù)要求的極小值,即網(wǎng)絡(luò)中存在b個(gè)節(jié)點(diǎn),則最多有b-1個(gè)節(jié)點(diǎn)發(fā)生故障;
步驟三;分配分解后的數(shù)據(jù)分量,構(gòu)建分配表;
步驟四:對分量作加密處理,獲得d份加密數(shù)據(jù),再將這些數(shù)據(jù)傳輸?shù)焦?jié)點(diǎn)。
2)恢復(fù)
當(dāng)出現(xiàn)數(shù)據(jù)丟失情況時(shí),即可向處理中心申請數(shù)據(jù)恢復(fù),在區(qū)塊鏈中隨意選擇多個(gè)節(jié)點(diǎn),經(jīng)解密處理后,便可還原出初始數(shù)據(jù)。
當(dāng)用戶獲得密文后,通過Dec方法顯示密文信息。該方法輸入密文CT與用戶密鑰SKs,輸出信息明文。因用戶屬性符合訪問策略要求[15],即sj=hj,j=1,2,…,n′,所以能夠得到計(jì)算參數(shù)E
(7)
式中,I1和I2表示計(jì)算索引參數(shù),D1和D2屬于私鑰參數(shù)。
則利用下述公式即可獲得交易明文U
(8)
在經(jīng)過數(shù)據(jù)上傳與下載后,將分解后的數(shù)據(jù)發(fā)送到不同節(jié)點(diǎn),再通過Dec算法解密密文,得出數(shù)據(jù)明文,由此實(shí)現(xiàn)防篡改備份恢復(fù)[16,17]。
通過上述分析,給出本文研究的創(chuàng)新點(diǎn):
1)建立區(qū)塊鏈整體架構(gòu),分析不同層次主要功能和特征;
2)構(gòu)建數(shù)據(jù)篡改攻擊模型,通過該模型建立相應(yīng)的數(shù)據(jù)防篡改機(jī)制,通過秘密分割、加密等過程實(shí)現(xiàn)數(shù)據(jù)防篡改;
3)確立容災(zāi)備份結(jié)構(gòu),將備份恢復(fù)轉(zhuǎn)換為數(shù)據(jù)上傳與下載過程,進(jìn)行區(qū)塊鏈數(shù)據(jù)恢復(fù)處理。
為證明所提方法的可行性,進(jìn)行實(shí)驗(yàn)分析。實(shí)驗(yàn)在處理器為Intel Core-M480I5 CPU@2.67GHz,內(nèi)存為8GB,操作系統(tǒng)為64位,版本為Windows10系統(tǒng)的硬件條件下進(jìn)行。
近年來,電力企業(yè)不斷改革,建設(shè)了區(qū)塊鏈儲(chǔ)存架構(gòu),實(shí)現(xiàn)總部系統(tǒng)和數(shù)據(jù)中心的平滑對接。以電力企業(yè)的區(qū)塊鏈數(shù)據(jù)作為研究對象,進(jìn)行數(shù)據(jù)防篡改備份恢復(fù)效果驗(yàn)證,數(shù)據(jù)來源為kaggle數(shù)據(jù)集。在實(shí)驗(yàn)開始之前,首先明確電力企業(yè)的區(qū)塊鏈交互方式,圖2為電力企業(yè)區(qū)塊鏈數(shù)據(jù)交互方式示意圖。
圖2 電力企業(yè)區(qū)塊鏈數(shù)據(jù)交互方式圖
實(shí)驗(yàn)準(zhǔn)備完畢后,明確企業(yè)區(qū)塊鏈數(shù)據(jù)網(wǎng)絡(luò)架構(gòu)和交互方式,然后分別利用所提方法、雙層協(xié)同聯(lián)盟保護(hù)方法以及非對稱加密機(jī)制對數(shù)據(jù)進(jìn)行防篡改備份恢復(fù),記錄三種方法的應(yīng)用效果,得出實(shí)驗(yàn)結(jié)論。
首先測試三種方法的數(shù)據(jù)備份與恢復(fù)所需時(shí)間,測試結(jié)果分別如圖3和4所示。
圖3 不同方法數(shù)據(jù)備份時(shí)間
圖4 不同方法數(shù)據(jù)恢復(fù)時(shí)間
由圖3和4可以看出,三種方法的數(shù)據(jù)恢復(fù)時(shí)間均大于備份時(shí)間,即數(shù)據(jù)下載時(shí)間較長,上傳時(shí)間較短。在備份測試中,所提方法所用時(shí)間始終低于雙層協(xié)同聯(lián)盟保護(hù)方法和非對稱加密機(jī)制,在恢復(fù)測試中,在數(shù)據(jù)量不高于2GB時(shí),所提方法的恢復(fù)時(shí)間雖然高于雙層協(xié)同聯(lián)盟保護(hù)方法和非對稱加密機(jī)制,但是隨著實(shí)驗(yàn)的推進(jìn),所提方法的恢復(fù)時(shí)間逐漸與傳統(tǒng)方法拉開距離。測試結(jié)果表明所提方法的備份恢復(fù)過程受數(shù)據(jù)量影響較小,即使面對海量數(shù)據(jù)也能有很好的備份恢復(fù)效率,減少用戶等待時(shí)間,實(shí)現(xiàn)實(shí)時(shí)備份。這是因?yàn)楸疚脑O(shè)置的容災(zāi)備份方案操作簡便,符合區(qū)塊鏈數(shù)據(jù)的儲(chǔ)存結(jié)構(gòu)。
為測試三種方法的防篡改性能,通過監(jiān)測CPU使用情況來判斷是否遭遇篡改。通常情況下,篡改攻擊主要分為篡改消息、偽造用戶權(quán)益以及拒絕服務(wù)三種類型。當(dāng)區(qū)塊鏈數(shù)據(jù)遭到上述攻擊時(shí),CPU利用率會(huì)出現(xiàn)異常升高的情況,實(shí)驗(yàn)結(jié)果分別如圖5-7所示。
圖5 所提方法防篡改情況測試結(jié)果圖
圖6 雙層協(xié)同聯(lián)盟保護(hù)方法篡改情況測試圖
圖7 非對稱加密機(jī)制防篡改情況測試圖
由圖5-7能夠看出,所提方法在三種篡改攻擊下,CPU利用率沒有出現(xiàn)大幅度波動(dòng)情況,表明區(qū)塊鏈數(shù)據(jù)系統(tǒng)運(yùn)行穩(wěn)定,沒有受到攻擊;但其它兩種方法的CPU利用率忽高忽低,當(dāng)利用率突然升高時(shí)則說明此刻有篡改行為發(fā)生。
綜上所述,所提防篡改備份恢復(fù)方法安全性更高,能夠滿足區(qū)塊鏈數(shù)據(jù)隱私保護(hù)要求。這是因?yàn)樵摲椒?gòu)建了篡改模型,針對篡改特征,設(shè)置了秘密分割等機(jī)制,大大降低被篡改攻擊的可能性。
隨著攻擊手段的多樣化,區(qū)塊鏈數(shù)據(jù)的安全難以得到有效保障,其自身的安全保護(hù)機(jī)制已無法滿足復(fù)雜的數(shù)據(jù)管理場景。為此,面向區(qū)塊鏈數(shù)據(jù),研究一種防篡改備份恢復(fù)機(jī)制。針對篡改模型特征,設(shè)計(jì)防篡改機(jī)制,通過密鑰分割,加強(qiáng)數(shù)據(jù)的安全性,分別制定區(qū)塊鏈上傳和下載方案,實(shí)現(xiàn)數(shù)據(jù)的防篡改備份恢復(fù)。實(shí)驗(yàn)證明了該方法備份恢復(fù)效率高,有效避免防篡改攻擊,且在該方法的應(yīng)用下,CPU的利用率沒有出現(xiàn)明顯的波動(dòng),說明所提方法應(yīng)用下區(qū)塊鏈數(shù)據(jù)安全性更高,降低了篡改發(fā)生行為。但是經(jīng)過備份恢復(fù)后,系統(tǒng)中會(huì)增加了文件量,在接下來研究過程中應(yīng)考慮對文件做壓縮處理,更加節(jié)省系統(tǒng)內(nèi)存。