安玉香,李 檀
(1.沈陽建筑大學國際學院,遼寧沈陽 110168;2.沈陽建筑大學,遼寧沈陽 110168)
分布式集群是通過分布式搜索引擎,形成的一種完成大規模分布式資源信息數據的檢索方法。其通過高速網絡環境,搭建分布式搜索引擎集群系統,進行分布式并行資源數據信息檢索[1]。分布式搜索引擎根據設計模式可劃分為分布式元搜索引擎、散列式分布搜索引擎、P2P分布式搜索引擎等。分布式搜索引擎集群可安全、高效的完成海量資源數據的存儲、索引、檢索[2]。隨著網絡資源的不斷增加,檢索系統受到索引文件和索引庫的數據量的增加,使自身維護成本大幅度增加,導致檢索響應的時間提升,并且響應速度降低。以語料庫為例,其中存放海量的、語言實際使用中真實出現過的語言材料,而電子計算機是承載語料庫語言知識基礎資源的載體,并且真實語料需要經過分析和處理后,才可以成為有用的資源[3]。由于語料庫的類型較多,涵蓋的語料內容廣泛,并作為語言學研究的基礎資源,其在使用過程中,容易受到人為篡改,導致資源破壞和受損。
因此針對語料庫防篡改檢索進行研究,文獻[4]根據設計區塊鏈數據庫系統框架,將區塊鏈技術應用于分布式數據管理,然后提出了一種基于哈希指針的不可篡改索引,根據該索引快速檢索區塊內數據,以此實現區塊鏈的查詢,最后通過實驗測試數據庫的讀寫性能。但是該方法的檢索開銷時間較長;文獻[5]提出了一種基于PKEKS的關鍵字安全的可檢索加密方法,通過在系統中添加可信賴的安全中心生成可信參數,并將生成的可信參數一起加入到加密過程的方法中,完成加密檢索。但是該方法的檢索誤差相對較高。針對上述方法存在的問題,本文提出基于分布式集群的語料庫防篡改方法,該方法采用分布式檢索引擎集群完成檢索,可減少檢索開銷時間,提高檢索準確率。
一個完整的分布式集群,以分布式引擎為核心,設計一個高效、安全的分布式檢索引擎集群。其具備高效的集群檢索功能以外,還要具備負載均衡、容易擴充和防篡改的功能[6]。分布式搜索引擎集群,采用分布式的設計結構和集群協調,完成在每個部分的實現和完成相應的運行,主要包含爬蟲集群、存儲集群、索引節點集群、聯合索引服務集群和前段服務器集群。其具體結構如圖1所示。

圖1 分布式集群運行結構
1)爬蟲集群:將抓取和挖掘到的語料庫資源數據存儲到存儲集群中,是爬蟲集群的主要工作。
2)存儲集群:其主要作用是將爬蟲爬取或者挖掘的資源數據進行存儲。
3)索引節點集群:該集群通過在索引服務器上建立索引,實現存儲集群中的資源數據實行解析以及防篡改。
4)聯合索引服務集群:將索引節點集群解析后的資源數據實行存儲以及向用戶提供查詢服務[7]。
5)前段服務器集群:該集群為避免單點失效和提高自身的可用性和處理能力,采用負載均衡和故障轉移設計,使每個成員都可通過相同的訪問接口,直接獲取web應用服務。
通過分布式集群運行結構中的爬蟲集群,采用決策樹算法準確挖掘語料庫瀏覽行為數據,決策樹算法可有效完成語料庫海量數據中易解析形式的挖掘。信息增益的屬性決定決策樹ID3算法分析節點的檢測屬性,決策樹分支根據語料庫瀏覽行為檢測屬性的已知值構建,每個子集都可用根節點屬性的各值表示,在每一個子樹中規劃遞歸的實行上述步驟,當子集內元素為同類時,規劃停止,則語料庫瀏覽行為決策樹構建完成[8]。
設置不同的語料庫瀏覽數據為{w1,w2,…,wr},其數量為r,瀏覽行為的檢測屬性為W,則r個語料庫瀏覽行為{g1,g2,…,gr},利用屬性W實行總體瀏覽過程G規劃,并且G內樣本在子集Gy中體現,其在W上存在dy值。如果G節點的分支相對應的是子集,Gy中類px的樣本數用Gx,y表示。則可體現W規劃的語料庫瀏覽行為的子集熵公式為

(1)
式中,第y個子集權用(gx,y,…,gn,y)/g表示,其等于子集內樣本數量除以G內總樣本數,W值為w,F(W)和子集規劃純度呈負相關性。則選定的子集Gy的計算公式為

(2)
式中,Qx,y表示Gy內樣本屬于px的幾率,且Qx,y=Gx,y/|Gy|。
采用決策樹ID3算法通過上式,構建語料庫行為樣本判定數,完成語料庫瀏覽行為的準確挖掘[9]
H(W)=Gy-F(W)
(3)
為防止語料庫資源數據的篡改,采用數據關鍵特征防篡改檢索方法將監控代碼植入語料庫瀏覽行為數據中,防篡改檢索是利用變更后的語料庫資源數據特征、軟件程序等實現,該變更是改變控制流完成[10]。為獲取語料庫中分布式大數據實時關鍵特征狀態,并且不會對語料庫的資源數據整體結構造成改變,在數據的合理部位植入監控代碼。語料庫資源數據特征的正常狀態可采用函數級控制流圖描述,通過檢驗后的資源數據特征判斷其是否存在篡改行為,該檢驗利用函數運行信息實現。
為提高防篡改檢索的攻擊性,對語料庫資源數據各特征函數實行加密處理,想要對資源數據特征實行篡改,則需要采用每一個函數的解密鑰進行函數解密,并且分別采取傳輸和存儲對各函數實行處理[11]。
如果[0,1]內的特征函數用f(x)表示,則多項式函數Ts(x)為

(4)


(5)
依據式(4)和式(5)可得

(6)
語料庫防篡改檢索密鑰的選取,以每個部分加密方式的區別為參考,并且需滿足下述條件
K2i=Fi(Ui,Ri,Hi(CF))Ts(x)
(7)
式中,第i個特征的解密密鑰用K2i描述;第i個特征的密鑰生成函數Fi描述;分解用戶碼的第i個值和分解注冊碼的第i個值分別用Ui和Ri表示;第i個特征函數運行信息生成的散列值用Hi(CF)表示,其中數組為CF。防篡改架構如圖2所示。

圖2 數據關鍵特征防篡改架構
采用密鑰生成函數運算獲取各元素的解密密鑰,該生成函數隱藏在資源數據特征內,由數個加密代碼元素組成密鑰。按照每一個特征的順序完成資源數據特征函數運行,后一個特征函數的解密需要保證前一個特征函數的正常運行[12]。如果解密密鑰生成結果錯誤,無法正常解密,是因為其中任意一個資源數據關鍵特征被改動,導致特征函數無法正常運行或運行異常。為增加密鑰的破解難度,需利用多種加密方式構建多個差異化密鑰生成函數,以此可使語料庫資源數據庫中分布式數據特征函數防篡改檢索的保護程度大幅度提升。
選取國內某語料庫為測試對象,測試本文方法的防篡改性能。設置該測試對象資源數據信息量大小為35GB,其中共有7800個被篡改的資源信息數據,并且共植入100個監控代碼,密鑰長度分別為512bit和1024bit。
分布式搜索引擎集群配置為:操作系統為Windows XP Professional,CPU為Intel酷睿2.4GHz,硬盤160GB,負載均衡mod_jk-apache-2.0.55.so,集群監控MC4J 1.2 Beta 9。
在上述實驗環境下將文獻[4]方法和文獻[5]方法作為本文方法的對比方法,完成相關對比試驗。
topWeb和topApp兩個請求為主要用戶行為特征分析請求,為分析本文方法瀏覽行為的挖掘效率,統計三種方法在兩種請求類型下,隨著并發用戶數量的增加,對用戶行為挖掘的效率,結果如表1所示。

表1 用戶瀏覽行為挖掘效率對比結果/s
分析表1可知:在兩種請求類型下,隨著并發用戶數量的增加,三種方法的用戶瀏覽行為挖掘時間也成小幅度上升,其中,本文方法的分析時間最短,較大程度低于兩種對比方法的挖掘時間。說明本文方法的用戶瀏覽行為挖掘效率較高,可快速完成用戶瀏覽行為挖掘。
為測試本文方法的防篡改檢索性能,設置篡改信息數量為3000個,在相同密鑰長度條件下,采用三種方法對3000個篡改信息進行檢索,統計三種方法的防篡改檢索結果,如圖3所示。


圖3 三種方法的防篡改檢索對比結果
分析圖3可知:在相同密鑰長度條件下,本文方法篡改檢出數量與實際數量最接近,當密鑰長度達到1000bit時,本文方法的篡改檢出數量達到3000個,可以將篡改信息全部檢索出來,檢錯數量均明顯低于兩種對比方法,并且錯誤率均在0.15%以下;且文獻[4]方法和文獻[5]方法的防篡改檢出數量與實際數量差距較大,檢錯數量和檢錯率明顯高于本文方法。說明本文方法的防篡改性能最佳,能夠準確的完成語料庫防篡改。
在監控代碼植入并加密和發送解密函數運行信息并解密條件下,對比三種方法的時間開銷,測試結果如表2所示。

表2 三種方法的時間開銷對比結果
分析表2可知,發送解密函數運行信息并解密的開銷時間高于監控代碼植入并加密的開銷時間,但是,本文方法的監控代碼植入并加密和發送解密函數運行信息并解密的開銷時間相差不大,并且低于兩種對比方法,說明本文方法的防篡改檢索性能優于兩種對比方法,可在較小的開銷時間范圍內,完成語料庫的代碼植入加密和解密。
彈性測試,是指將安全代碼去除一定數量后,防篡改性能的變化情況。測試三種方法分別在去除一定數量的監控代碼后,防篡改程度,測試結果如圖4所示。

圖4 三種方法彈性對比結果
分析圖4可知:本文方法在去除一定數量的監控代碼后,防篡改性能的影響不大,將監控代碼去除80個后,防篡改程度依舊在85%以上,只有監控代碼全部去除后,防篡改程度為0;兩種對比方法則隨著監控代碼的去除數量增加后,防篡改程度明顯下降。說明本文方法只有在監控代碼全部去除后才會失去防篡改能力,彈性較高。
測試在不同的攻擊次數下,應用本文方法前、后的語料庫的安全程度,測試結果如圖5所示。

圖5 應用前后的安全程度
分析圖5可知:本文方法應用前,隨著攻擊次數的增加,語料庫的安全程度明顯下降,應用本文方法后,隨著攻擊次數的增加,預料庫的安全程度幾乎沒有受到任何影響,均在95%以上,是因為本文方法將監控代碼植入在資源數據中,并且函數的多點分布極大程度增加攻擊者的代碼定位難度,使攻擊者無法準確判斷監控代碼的存在位置,因此可較大程度提高語料庫的安全性。
本文提出基于分布式集群的語料庫防篡改方法,用于完成語料庫的防篡改檢索,經實驗測試:
1)本文方法用戶瀏覽行為挖掘效率較高,可快速完成用戶瀏覽行為挖掘。
2)本文方法的防篡改檢索錯誤率較低。
3)本文方法應用后,能夠增加攻擊者的篡改難度,可較大程度提高語料庫的安全性。
下一步的研究內容是如何通過本文方法與其它方法的結合完成防篡改檢索的同時,可以實現篡改預警以及篡改修復。