景 雯, 張 杰
(山西大同大學(xué) 計(jì)算機(jī)與網(wǎng)絡(luò)工程學(xué)院, 山西 大同 037009)
當(dāng)訪問量較高的網(wǎng)絡(luò)遭到黑客攻擊時(shí),容易出現(xiàn)數(shù)據(jù)丟失[1-2]、數(shù)據(jù)竄改和網(wǎng)絡(luò)失效等問題,這些問題無疑會(huì)給企業(yè)帶來巨大的損失.以區(qū)塊鏈框架為基礎(chǔ)的企業(yè)網(wǎng)絡(luò)為了避免上述問題,設(shè)計(jì)了抗攻擊區(qū)塊鏈,以此提升網(wǎng)絡(luò)抗攻擊能力,防止企業(yè)內(nèi)部數(shù)據(jù)被竄改.但黑客攻擊手段也隨著技術(shù)的進(jìn)步不斷增強(qiáng),對于“難以攻克”的網(wǎng)絡(luò),黑客會(huì)采用更加隱秘的技術(shù)竊取數(shù)據(jù).為了預(yù)防竊取問題的發(fā)生,相關(guān)的數(shù)據(jù)防竄改識(shí)別方法引起了學(xué)者的廣泛關(guān)注.
孫中軍等[3]采用深度報(bào)文檢測技術(shù)識(shí)別網(wǎng)絡(luò)中的數(shù)據(jù),將包含誤差數(shù)據(jù)在內(nèi)的所有識(shí)別數(shù)據(jù)輸入到分類器中,根據(jù)分類評估結(jié)果實(shí)現(xiàn)加密數(shù)據(jù)的識(shí)別.楊許亮[4]采用區(qū)塊鏈技術(shù)對缺陷數(shù)據(jù)進(jìn)行加密,加密后構(gòu)建一個(gè)用戶群,調(diào)用該類數(shù)據(jù)時(shí)需要各個(gè)用戶對公鑰進(jìn)行認(rèn)證,以此達(dá)到提升數(shù)據(jù)安全性的目的,但該方法的記錄結(jié)果存有誤差,識(shí)別準(zhǔn)確率較低.蔣彤彤等[5]根據(jù)流量層次整合加密數(shù)據(jù)特征,同時(shí)對整合后的特征采用多頭注意力機(jī)制,以此提升數(shù)據(jù)特征的區(qū)分度,但是該方法的整合效果仍有欠缺,存在誤識(shí)個(gè)數(shù)較多的問題.
為了進(jìn)一步提高抗攻擊區(qū)塊鏈的安全性,本文提出了抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別方法.在設(shè)定抗攻擊區(qū)塊鏈滲入數(shù)據(jù)特征評判準(zhǔn)則的基礎(chǔ)上,加密滲入數(shù)據(jù)特征,并利用支持向量機(jī)算法對數(shù)據(jù)進(jìn)行分類識(shí)別,實(shí)現(xiàn)區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別.
為了有效提升滲入數(shù)據(jù)識(shí)別效果,設(shè)定抗攻擊區(qū)塊鏈滲入數(shù)據(jù)特征評判準(zhǔn)則,提取滲入數(shù)據(jù)特征,并以此為依據(jù),設(shè)計(jì)抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改流程.
設(shè)R為抗攻擊區(qū)塊鏈多維空間,同時(shí)該空間存儲(chǔ)滲入數(shù)據(jù)特征提取后的映射值,抗攻擊區(qū)塊鏈滲入數(shù)據(jù)集合表示為(xi,yi)|xi∈R,yi∈R.其中,(xi,yi)表示在多維空間中滲入數(shù)據(jù)的節(jié)點(diǎn)位置,i=1,2,…,n,n為滲入數(shù)據(jù)樣本量.
根據(jù)抗攻擊區(qū)塊鏈滲入數(shù)據(jù)集合可以得到抗攻擊區(qū)塊鏈滲入數(shù)據(jù)特征子集的差異度,其表達(dá)式為
(1)
式(1)中,分母部分代表不同類別滲入數(shù)據(jù)的主要分布趨勢,所以在對應(yīng)的數(shù)據(jù)中,分母值越小,說明滲入數(shù)據(jù)的特征差異越小.由此可見,只有Di的值相對較大時(shí),才能有較強(qiáng)的識(shí)別能力.
根據(jù)稀疏表示思想按照稀疏分?jǐn)?shù)值大小對抗攻擊區(qū)塊鏈滲入數(shù)據(jù)特征進(jìn)行提取[6].若想獲取滲入數(shù)據(jù)向量的稀釋度,需要對數(shù)據(jù)向量Xn進(jìn)行重構(gòu),將其轉(zhuǎn)換為最小線性規(guī)劃形式,其表達(dá)式為
Y=minsi(Xn)
(2)
式中:Y為最小線性規(guī)劃求解結(jié)果;si(·)為線性規(guī)劃函數(shù).計(jì)算重構(gòu)矩陣中各個(gè)滲入數(shù)據(jù)特征的差異值,并將所有計(jì)算結(jié)果進(jìn)行匯總與解析,以此取得滲入數(shù)據(jù)的目標(biāo)函數(shù)Q,即
(3)
加密抗攻擊區(qū)塊鏈滲入數(shù)據(jù)前,首先需要檢驗(yàn)獲取的數(shù)據(jù)特征是否遭到竄改,從而利用監(jiān)控代碼對滲入數(shù)據(jù)關(guān)鍵特征狀態(tài)進(jìn)行監(jiān)控,取得監(jiān)控狀態(tài)后把監(jiān)控代碼放置到固定位置,以此避免改變數(shù)據(jù)結(jié)構(gòu).
由于滲入數(shù)據(jù)的加密方式不同[7],所以對不同的加密方式要選擇適當(dāng)?shù)拿荑€.密鑰生成時(shí)要滿足
Kj=Ej(Ij,Pj,Hj,C)
(4)
式中:Kj為解碼密鑰生成函數(shù)[8];Ej為密鑰生成函數(shù);Ij為解碼用戶代碼;Pj為解碼注冊碼;Hj為滲入數(shù)據(jù)特征函數(shù)值;C為數(shù)組.
滿足密鑰生成條件后,即可對抗攻擊區(qū)塊鏈滲入數(shù)據(jù)特征進(jìn)行防竄改操作,具體的防竄改流程如圖1所示.
圖1 防竄改流程圖Fig.1 Anti-tampering flow chart
根據(jù)圖1可知,當(dāng)抗攻擊區(qū)塊鏈滲入數(shù)據(jù)中的第一個(gè)特性分類出現(xiàn)在整體數(shù)據(jù)分類中時(shí),若對該特性進(jìn)行加密計(jì)算,則會(huì)自動(dòng)生成一個(gè)用于檢查密鑰[9-10]特征的函數(shù).若檢驗(yàn)期間密鑰發(fā)生錯(cuò)誤,滲入數(shù)據(jù)就有被竄改的可能,此時(shí)需要返回到函數(shù)生成步驟重新獲取,直至密鑰完全正確為止.該流程可以有效防止抗攻擊區(qū)塊鏈滲入數(shù)據(jù)遭到竄改,提升了滲入數(shù)據(jù)密鑰特性,進(jìn)一步保證了滲入數(shù)據(jù)的安全性.
在實(shí)施滲入數(shù)據(jù)特征防竄改流程后,為了進(jìn)一步優(yōu)化抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別效果,使用相對熵與蒙特卡洛仿真方法作為滲入數(shù)據(jù)的分類測度,利用支持向量機(jī)[11-12]對數(shù)據(jù)進(jìn)行分類識(shí)別,實(shí)現(xiàn)滲入數(shù)據(jù)防竄改識(shí)別.
將相對熵作為與滲入數(shù)據(jù)特征相對應(yīng)的特征向量,以此獲取滲入數(shù)據(jù)加密后的熵.將加密的滲入數(shù)據(jù)重新組合并計(jì)算,得到新集合的熵值,即
(5)
式中:hk為加密的滲入數(shù)據(jù)集合所對應(yīng)的相對熵;fk為加密的滲入數(shù)據(jù)數(shù)量;gik為元素出現(xiàn)頻數(shù);m為特征向量的維數(shù).
根據(jù)式(5)得到滲入數(shù)據(jù)相對熵集合[13],即{h1,h2,…,hn}.由于滲入數(shù)據(jù)特征之間具有依賴性,所以為了提升滲入數(shù)據(jù)防竄改識(shí)別效果,需要對冗余數(shù)據(jù)特征進(jìn)行剔除,以此在提高識(shí)別效率的同時(shí),減少系統(tǒng)運(yùn)行時(shí)間.
通常情況下抗攻擊區(qū)塊鏈滲入數(shù)據(jù)為長字符數(shù)據(jù),將冗余數(shù)據(jù)剔除后可以節(jié)省較多空間[14],所以依據(jù)壓縮技術(shù),將抗攻擊區(qū)塊鏈數(shù)據(jù)中各個(gè)滲入數(shù)據(jù)字符N作為蒙特卡洛仿真點(diǎn).
設(shè)在一個(gè)正方形中存在一個(gè)內(nèi)切圓,則該正方形的橫坐標(biāo)軸由滲入數(shù)據(jù)的前N/2個(gè)字符表示,而縱坐標(biāo)軸則由后N/2個(gè)字符進(jìn)行表示.
依據(jù)各個(gè)數(shù)據(jù)節(jié)點(diǎn)中內(nèi)切圓的個(gè)數(shù),對滲入數(shù)據(jù)的估計(jì)值進(jìn)行計(jì)算.根據(jù)估計(jì)值與實(shí)際值之間的誤差可知,進(jìn)行加密后的滲入數(shù)據(jù)估計(jì)值誤差相對較小.由此可見,蒙特卡洛仿真方法[15-16]可以利用估計(jì)值誤差對滲入數(shù)據(jù)是否加密的狀態(tài)進(jìn)行區(qū)分,便于對滲入數(shù)據(jù)進(jìn)行有效識(shí)別.
本文利用支持向量機(jī)對加密后的數(shù)據(jù)進(jìn)行分類,以此實(shí)現(xiàn)滲入數(shù)據(jù)防竄改識(shí)別.設(shè)數(shù)據(jù)的特征空間表示為{v0,v1,v2,v3,perror},其中,v為特征子空間,perror為估計(jì)誤差值,該特征空間屬于一個(gè)四維空間.采用支持向量機(jī)方法對特征值進(jìn)行訓(xùn)練,以此實(shí)現(xiàn)對滲入數(shù)據(jù)的檢測判斷.依據(jù)訓(xùn)練流程對加密數(shù)據(jù)進(jìn)行分類,從而實(shí)現(xiàn)抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別.
為了驗(yàn)證抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別方法的整體有效性,將提出的抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別方法(方法1)與文獻(xiàn)[4]基于區(qū)塊鏈的缺陷度量數(shù)據(jù)防竄改識(shí)別方法(方法2)、文獻(xiàn)[5]基于層次時(shí)空特征與多頭注意力的惡意加密流量識(shí)別方法(方法3)進(jìn)行對比測試.
實(shí)驗(yàn)前搭建抗攻擊區(qū)塊鏈平臺(tái),其主要包括區(qū)塊鏈通用模塊、終端側(cè)區(qū)塊鏈模塊、通用節(jié)點(diǎn)模塊與核心層模塊.其中,區(qū)塊鏈通用模塊主要實(shí)現(xiàn)區(qū)塊鏈中的基礎(chǔ)操作;終端側(cè)區(qū)塊鏈模塊通過類與類的組合以及類之間的繼承實(shí)現(xiàn)終端層的DAG式區(qū)塊鏈、邊緣層的多鏈平行區(qū)塊鏈;通用節(jié)點(diǎn)模塊中包含了邊緣、終端、存儲(chǔ)等多個(gè)節(jié)點(diǎn)類;核心層模塊實(shí)現(xiàn)了節(jié)點(diǎn)的注冊、智能合約的備案等功能.
實(shí)驗(yàn)在兩臺(tái)PC機(jī)上完成,并設(shè)置了100 MB的交換機(jī),操作系統(tǒng)為Windows 2000serber,服務(wù)器軟件為IIS5.0,信息數(shù)據(jù)庫為sQI Server 2000,調(diào)試工具為Microsoft V isual C++6.0.
實(shí)驗(yàn)所需計(jì)算數(shù)據(jù)由模擬仿真得到,其中包括第j類滲入數(shù)據(jù)的樣本量aj為5 000個(gè),實(shí)驗(yàn)樣本數(shù)量l為1 500個(gè),數(shù)據(jù)差異度Di為1.7,密鑰生成函數(shù)報(bào)頭編碼為(16,7),消息字編碼為(31,15),碼元寬度為8,相對熵hk為0.8.方法2的參數(shù)設(shè)置:安全系數(shù)為8,迭代次數(shù)為50次.方法3的參數(shù)設(shè)置:嵌入維度為128,隱藏神經(jīng)元個(gè)數(shù)為128,激活函數(shù)為tanh和Relu,卷積核尺寸分別為3、4、5,卷積核個(gè)數(shù)為128,步長為1,最小變化量為0.01,迭代次數(shù)為10.
3.2.1 識(shí)別性能測試
采用3種方法分別對5 000個(gè)數(shù)據(jù)的可用度進(jìn)行測試,設(shè)μ為抗攻擊區(qū)塊鏈中數(shù)據(jù)的可用度,其計(jì)算表達(dá)式為
(6)
式中:κ為可信數(shù)據(jù)總數(shù);?為抗攻擊區(qū)塊鏈中數(shù)據(jù)總數(shù).數(shù)據(jù)可用度越高,代表相應(yīng)方法的抗攻擊區(qū)塊鏈滲入識(shí)別性能越好,具體測試結(jié)果如圖2所示.
圖2 不同方法的識(shí)別性能測試結(jié)果Fig.2 Identification performance test results of different methods
由圖2可知,3種方法在測試時(shí)數(shù)據(jù)可用度均高于85%,從整體上看,方法1的可用度均處于90%以上,方法1的識(shí)別效果明顯要優(yōu)于對比方法,因?yàn)榉椒?提取了滲入數(shù)據(jù)的特征,以此提升了識(shí)別性能,提高了數(shù)據(jù)安全性.方法3的識(shí)別效果雖然與方法2的識(shí)別效果相近,但在樣本數(shù)量為4 000和5 000時(shí),數(shù)據(jù)可用度差異相較于其他樣本數(shù)量時(shí)較為明顯.
3.2.2 防竄改性能測試
在仿真軟件中搭建抗攻擊區(qū)塊鏈平臺(tái),并將其在某電力企業(yè)中進(jìn)行測試,將平臺(tái)同時(shí)接入電動(dòng)汽車公司、負(fù)荷聚合商、調(diào)度中心、售電公司等共50個(gè)市場主體節(jié)點(diǎn).在實(shí)驗(yàn)過程中,以電力調(diào)控平臺(tái)市場主體名稱、用戶崗位、用戶申請3個(gè)方面的數(shù)據(jù)作為抗攻擊區(qū)塊鏈滲入數(shù)據(jù),利用方法1對其進(jìn)行加密.表1和表2分別是加密前后的數(shù)據(jù)統(tǒng)計(jì)結(jié)果.
表1 加密前數(shù)據(jù)統(tǒng)計(jì)Tab.1 Data statistics before encryption
表2 加密后數(shù)據(jù)統(tǒng)計(jì)Tab.2 Statistics of encrypted data
方法2和方法3在解密表2數(shù)據(jù)時(shí)需要超過70 s才可以完成,由此證明算法加密后的數(shù)據(jù)復(fù)雜度較高,防竄改性能更好.由于方法1通過相對熵與蒙特卡羅仿真方法對滲入數(shù)據(jù)進(jìn)行了分類,并采用抗攻擊區(qū)塊鏈滲入數(shù)據(jù)特征評判準(zhǔn)則,濾除了冗余及無效數(shù)據(jù),實(shí)現(xiàn)了高性能的抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別.
越來越多的黑客對網(wǎng)絡(luò)進(jìn)行攻擊,出現(xiàn)了較為嚴(yán)重的數(shù)據(jù)丟失、竄改等問題,對此本文提出了抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別方法.方法利用抗攻擊區(qū)塊鏈滲入數(shù)據(jù)特征提取準(zhǔn)則提取滲入數(shù)據(jù)特征,并根據(jù)提取結(jié)果對滲入數(shù)據(jù)特征進(jìn)行加密,再利用支持向量機(jī)分類加密技術(shù)實(shí)現(xiàn)了抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別.測試結(jié)果表明,該方法具有較好的識(shí)別性能與防竄改性能,為今后抗攻擊區(qū)塊鏈滲入數(shù)據(jù)防竄改識(shí)別研究提供了參考借鑒.