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