安玉香,李 檀
(1.沈陽建筑大學(xué)國際學(xué)院,遼寧沈陽 110168;2.沈陽建筑大學(xué),遼寧沈陽 110168)
分布式集群是通過分布式搜索引擎,形成的一種完成大規(guī)模分布式資源信息數(shù)據(jù)的檢索方法。其通過高速網(wǎng)絡(luò)環(huán)境,搭建分布式搜索引擎集群系統(tǒng),進行分布式并行資源數(shù)據(jù)信息檢索[1]。分布式搜索引擎根據(jù)設(shè)計模式可劃分為分布式元搜索引擎、散列式分布搜索引擎、P2P分布式搜索引擎等。分布式搜索引擎集群可安全、高效的完成海量資源數(shù)據(jù)的存儲、索引、檢索[2]。隨著網(wǎng)絡(luò)資源的不斷增加,檢索系統(tǒng)受到索引文件和索引庫的數(shù)據(jù)量的增加,使自身維護成本大幅度增加,導(dǎo)致檢索響應(yīng)的時間提升,并且響應(yīng)速度降低。以語料庫為例,其中存放海量的、語言實際使用中真實出現(xiàn)過的語言材料,而電子計算機是承載語料庫語言知識基礎(chǔ)資源的載體,并且真實語料需要經(jīng)過分析和處理后,才可以成為有用的資源[3]。由于語料庫的類型較多,涵蓋的語料內(nèi)容廣泛,并作為語言學(xué)研究的基礎(chǔ)資源,其在使用過程中,容易受到人為篡改,導(dǎo)致資源破壞和受損。
因此針對語料庫防篡改檢索進行研究,文獻[4]根據(jù)設(shè)計區(qū)塊鏈數(shù)據(jù)庫系統(tǒng)框架,將區(qū)塊鏈技術(shù)應(yīng)用于分布式數(shù)據(jù)管理,然后提出了一種基于哈希指針的不可篡改索引,根據(jù)該索引快速檢索區(qū)塊內(nèi)數(shù)據(jù),以此實現(xiàn)區(qū)塊鏈的查詢,最后通過實驗測試數(shù)據(jù)庫的讀寫性能。但是該方法的檢索開銷時間較長;文獻[5]提出了一種基于PKEKS的關(guān)鍵字安全的可檢索加密方法,通過在系統(tǒng)中添加可信賴的安全中心生成可信參數(shù),并將生成的可信參數(shù)一起加入到加密過程的方法中,完成加密檢索。但是該方法的檢索誤差相對較高。針對上述方法存在的問題,本文提出基于分布式集群的語料庫防篡改方法,該方法采用分布式檢索引擎集群完成檢索,可減少檢索開銷時間,提高檢索準(zhǔn)確率。
一個完整的分布式集群,以分布式引擎為核心,設(shè)計一個高效、安全的分布式檢索引擎集群。其具備高效的集群檢索功能以外,還要具備負(fù)載均衡、容易擴充和防篡改的功能[6]。分布式搜索引擎集群,采用分布式的設(shè)計結(jié)構(gòu)和集群協(xié)調(diào),完成在每個部分的實現(xiàn)和完成相應(yīng)的運行,主要包含爬蟲集群、存儲集群、索引節(jié)點集群、聯(lián)合索引服務(wù)集群和前段服務(wù)器集群。其具體結(jié)構(gòu)如圖1所示。
圖1 分布式集群運行結(jié)構(gòu)
1)爬蟲集群:將抓取和挖掘到的語料庫資源數(shù)據(jù)存儲到存儲集群中,是爬蟲集群的主要工作。
2)存儲集群:其主要作用是將爬蟲爬取或者挖掘的資源數(shù)據(jù)進行存儲。
3)索引節(jié)點集群:該集群通過在索引服務(wù)器上建立索引,實現(xiàn)存儲集群中的資源數(shù)據(jù)實行解析以及防篡改。
4)聯(lián)合索引服務(wù)集群:將索引節(jié)點集群解析后的資源數(shù)據(jù)實行存儲以及向用戶提供查詢服務(wù)[7]。
5)前段服務(wù)器集群:該集群為避免單點失效和提高自身的可用性和處理能力,采用負(fù)載均衡和故障轉(zhuǎn)移設(shè)計,使每個成員都可通過相同的訪問接口,直接獲取web應(yīng)用服務(wù)。
通過分布式集群運行結(jié)構(gòu)中的爬蟲集群,采用決策樹算法準(zhǔn)確挖掘語料庫瀏覽行為數(shù)據(jù),決策樹算法可有效完成語料庫海量數(shù)據(jù)中易解析形式的挖掘。信息增益的屬性決定決策樹ID3算法分析節(jié)點的檢測屬性,決策樹分支根據(jù)語料庫瀏覽行為檢測屬性的已知值構(gòu)建,每個子集都可用根節(jié)點屬性的各值表示,在每一個子樹中規(guī)劃遞歸的實行上述步驟,當(dāng)子集內(nèi)元素為同類時,規(guī)劃停止,則語料庫瀏覽行為決策樹構(gòu)建完成[8]。
設(shè)置不同的語料庫瀏覽數(shù)據(jù)為{w1,w2,…,wr},其數(shù)量為r,瀏覽行為的檢測屬性為W,則r個語料庫瀏覽行為{g1,g2,…,gr},利用屬性W實行總體瀏覽過程G規(guī)劃,并且G內(nèi)樣本在子集Gy中體現(xiàn),其在W上存在dy值。如果G節(jié)點的分支相對應(yīng)的是子集,Gy中類px的樣本數(shù)用Gx,y表示。則可體現(xiàn)W規(guī)劃的語料庫瀏覽行為的子集熵公式為
(1)
式中,第y個子集權(quán)用(gx,y,…,gn,y)/g表示,其等于子集內(nèi)樣本數(shù)量除以G內(nèi)總樣本數(shù),W值為w,F(xiàn)(W)和子集規(guī)劃純度呈負(fù)相關(guān)性。則選定的子集Gy的計算公式為
(2)
式中,Qx,y表示Gy內(nèi)樣本屬于px的幾率,且Qx,y=Gx,y/|Gy|。
采用決策樹ID3算法通過上式,構(gòu)建語料庫行為樣本判定數(shù),完成語料庫瀏覽行為的準(zhǔn)確挖掘[9]
H(W)=Gy-F(W)
(3)
為防止語料庫資源數(shù)據(jù)的篡改,采用數(shù)據(jù)關(guān)鍵特征防篡改檢索方法將監(jiān)控代碼植入語料庫瀏覽行為數(shù)據(jù)中,防篡改檢索是利用變更后的語料庫資源數(shù)據(jù)特征、軟件程序等實現(xiàn),該變更是改變控制流完成[10]。為獲取語料庫中分布式大數(shù)據(jù)實時關(guān)鍵特征狀態(tài),并且不會對語料庫的資源數(shù)據(jù)整體結(jié)構(gòu)造成改變,在數(shù)據(jù)的合理部位植入監(jiān)控代碼。語料庫資源數(shù)據(jù)特征的正常狀態(tài)可采用函數(shù)級控制流圖描述,通過檢驗后的資源數(shù)據(jù)特征判斷其是否存在篡改行為,該檢驗利用函數(shù)運行信息實現(xiàn)。
為提高防篡改檢索的攻擊性,對語料庫資源數(shù)據(jù)各特征函數(shù)實行加密處理,想要對資源數(shù)據(jù)特征實行篡改,則需要采用每一個函數(shù)的解密鑰進行函數(shù)解密,并且分別采取傳輸和存儲對各函數(shù)實行處理[11]。
如果[0,1]內(nèi)的特征函數(shù)用f(x)表示,則多項式函數(shù)Ts(x)為
(4)
(5)
依據(jù)式(4)和式(5)可得
(6)
語料庫防篡改檢索密鑰的選取,以每個部分加密方式的區(qū)別為參考,并且需滿足下述條件
K2i=Fi(Ui,Ri,Hi(CF))Ts(x)
(7)
式中,第i個特征的解密密鑰用K2i描述;第i個特征的密鑰生成函數(shù)Fi描述;分解用戶碼的第i個值和分解注冊碼的第i個值分別用Ui和Ri表示;第i個特征函數(shù)運行信息生成的散列值用Hi(CF)表示,其中數(shù)組為CF。防篡改架構(gòu)如圖2所示。
圖2 數(shù)據(jù)關(guān)鍵特征防篡改架構(gòu)
采用密鑰生成函數(shù)運算獲取各元素的解密密鑰,該生成函數(shù)隱藏在資源數(shù)據(jù)特征內(nèi),由數(shù)個加密代碼元素組成密鑰。按照每一個特征的順序完成資源數(shù)據(jù)特征函數(shù)運行,后一個特征函數(shù)的解密需要保證前一個特征函數(shù)的正常運行[12]。如果解密密鑰生成結(jié)果錯誤,無法正常解密,是因為其中任意一個資源數(shù)據(jù)關(guān)鍵特征被改動,導(dǎo)致特征函數(shù)無法正常運行或運行異常。為增加密鑰的破解難度,需利用多種加密方式構(gòu)建多個差異化密鑰生成函數(shù),以此可使語料庫資源數(shù)據(jù)庫中分布式數(shù)據(jù)特征函數(shù)防篡改檢索的保護程度大幅度提升。
選取國內(nèi)某語料庫為測試對象,測試本文方法的防篡改性能。設(shè)置該測試對象資源數(shù)據(jù)信息量大小為35GB,其中共有7800個被篡改的資源信息數(shù)據(jù),并且共植入100個監(jiān)控代碼,密鑰長度分別為512bit和1024bit。
分布式搜索引擎集群配置為:操作系統(tǒng)為Windows XP Professional,CPU為Intel酷睿2.4GHz,硬盤160GB,負(fù)載均衡mod_jk-apache-2.0.55.so,集群監(jiān)控MC4J 1.2 Beta 9。
在上述實驗環(huán)境下將文獻[4]方法和文獻[5]方法作為本文方法的對比方法,完成相關(guān)對比試驗。
topWeb和topApp兩個請求為主要用戶行為特征分析請求,為分析本文方法瀏覽行為的挖掘效率,統(tǒng)計三種方法在兩種請求類型下,隨著并發(fā)用戶數(shù)量的增加,對用戶行為挖掘的效率,結(jié)果如表1所示。
表1 用戶瀏覽行為挖掘效率對比結(jié)果/s
分析表1可知:在兩種請求類型下,隨著并發(fā)用戶數(shù)量的增加,三種方法的用戶瀏覽行為挖掘時間也成小幅度上升,其中,本文方法的分析時間最短,較大程度低于兩種對比方法的挖掘時間。說明本文方法的用戶瀏覽行為挖掘效率較高,可快速完成用戶瀏覽行為挖掘。
為測試本文方法的防篡改檢索性能,設(shè)置篡改信息數(shù)量為3000個,在相同密鑰長度條件下,采用三種方法對3000個篡改信息進行檢索,統(tǒng)計三種方法的防篡改檢索結(jié)果,如圖3所示。
圖3 三種方法的防篡改檢索對比結(jié)果
分析圖3可知:在相同密鑰長度條件下,本文方法篡改檢出數(shù)量與實際數(shù)量最接近,當(dāng)密鑰長度達到1000bit時,本文方法的篡改檢出數(shù)量達到3000個,可以將篡改信息全部檢索出來,檢錯數(shù)量均明顯低于兩種對比方法,并且錯誤率均在0.15%以下;且文獻[4]方法和文獻[5]方法的防篡改檢出數(shù)量與實際數(shù)量差距較大,檢錯數(shù)量和檢錯率明顯高于本文方法。說明本文方法的防篡改性能最佳,能夠準(zhǔn)確的完成語料庫防篡改。
在監(jiān)控代碼植入并加密和發(fā)送解密函數(shù)運行信息并解密條件下,對比三種方法的時間開銷,測試結(jié)果如表2所示。
表2 三種方法的時間開銷對比結(jié)果
分析表2可知,發(fā)送解密函數(shù)運行信息并解密的開銷時間高于監(jiān)控代碼植入并加密的開銷時間,但是,本文方法的監(jiān)控代碼植入并加密和發(fā)送解密函數(shù)運行信息并解密的開銷時間相差不大,并且低于兩種對比方法,說明本文方法的防篡改檢索性能優(yōu)于兩種對比方法,可在較小的開銷時間范圍內(nèi),完成語料庫的代碼植入加密和解密。
彈性測試,是指將安全代碼去除一定數(shù)量后,防篡改性能的變化情況。測試三種方法分別在去除一定數(shù)量的監(jiān)控代碼后,防篡改程度,測試結(jié)果如圖4所示。
圖4 三種方法彈性對比結(jié)果
分析圖4可知:本文方法在去除一定數(shù)量的監(jiān)控代碼后,防篡改性能的影響不大,將監(jiān)控代碼去除80個后,防篡改程度依舊在85%以上,只有監(jiān)控代碼全部去除后,防篡改程度為0;兩種對比方法則隨著監(jiān)控代碼的去除數(shù)量增加后,防篡改程度明顯下降。說明本文方法只有在監(jiān)控代碼全部去除后才會失去防篡改能力,彈性較高。
測試在不同的攻擊次數(shù)下,應(yīng)用本文方法前、后的語料庫的安全程度,測試結(jié)果如圖5所示。
圖5 應(yīng)用前后的安全程度
分析圖5可知:本文方法應(yīng)用前,隨著攻擊次數(shù)的增加,語料庫的安全程度明顯下降,應(yīng)用本文方法后,隨著攻擊次數(shù)的增加,預(yù)料庫的安全程度幾乎沒有受到任何影響,均在95%以上,是因為本文方法將監(jiān)控代碼植入在資源數(shù)據(jù)中,并且函數(shù)的多點分布極大程度增加攻擊者的代碼定位難度,使攻擊者無法準(zhǔn)確判斷監(jiān)控代碼的存在位置,因此可較大程度提高語料庫的安全性。
本文提出基于分布式集群的語料庫防篡改方法,用于完成語料庫的防篡改檢索,經(jīng)實驗測試:
1)本文方法用戶瀏覽行為挖掘效率較高,可快速完成用戶瀏覽行為挖掘。
2)本文方法的防篡改檢索錯誤率較低。
3)本文方法應(yīng)用后,能夠增加攻擊者的篡改難度,可較大程度提高語料庫的安全性。
下一步的研究內(nèi)容是如何通過本文方法與其它方法的結(jié)合完成防篡改檢索的同時,可以實現(xiàn)篡改預(yù)警以及篡改修復(fù)。