邢俊俊 翟江濤* 劉偉偉
1(江蘇科技大學(xué)電子信息學(xué)院 江蘇 鎮(zhèn)江 212003)2(南京理工大學(xué)自動化學(xué)院 江蘇 南京 210000)
信息隱藏是指將秘密信息嵌入到正常通信數(shù)據(jù)流中進(jìn)行隱蔽通信的一種技術(shù)[1-2]。視頻、音頻、文本、圖像等文件都可以用來嵌入隱秘信息[3-5]。近年來,隨著人們對該技術(shù)重視程度的逐漸提高,相應(yīng)的檢測分析也取得了很大進(jìn)步,從而使得這類方法的安全性受到極大考驗(yàn)[6-7]。
信息隱藏所選取的載體是網(wǎng)絡(luò)中動態(tài)生成與消失的數(shù)據(jù)包,相較于傳統(tǒng)文件類型,這種載體具備兩大優(yōu)點(diǎn):其一,網(wǎng)絡(luò)中的數(shù)據(jù)包復(fù)雜多樣且通信流量巨大,監(jiān)控方很難在海量數(shù)據(jù)中檢測含秘?cái)?shù)據(jù)流;其二,數(shù)據(jù)包與圖像等多媒體文件截然不同,它在較短的生命周期內(nèi)就會消失,導(dǎo)致監(jiān)控方難以在有效時(shí)間內(nèi)對之進(jìn)行取證。近年來,網(wǎng)絡(luò)隱寫作為一種新的網(wǎng)絡(luò)隱寫術(shù)[10]被提出,成為了信息安全的焦點(diǎn)。圖1為網(wǎng)絡(luò)隱寫的示意圖。
圖1 網(wǎng)絡(luò)隱寫示意圖
圖1中,Alice發(fā)送隱蔽信息給Bob,其通信行為對網(wǎng)絡(luò)監(jiān)管者Eve來說是透明的,一旦被發(fā)現(xiàn)傳遞敏感信息其鏈路將被Eve切斷。于是Alice將這些隱秘信息編碼之后嵌入到網(wǎng)絡(luò)流中,偽裝成正常通信以躲避Eve的檢查。
網(wǎng)絡(luò)隱寫可實(shí)現(xiàn)隱秘?cái)?shù)據(jù)的傳輸,該技術(shù)如果被惡意使用,尤其是與高級持續(xù)性威脅[11-12](Advanced Persistent Threat, APT)的結(jié)合,將有效提高APT的生存能力,給信息安全帶來極大隱患。從已有相關(guān)資料看,目前已發(fā)現(xiàn)的諸如Duqu、Stuxnet、Alureon[13-14]等APT均使用了隱寫術(shù)來提高自身安全性,給網(wǎng)絡(luò)空間安全帶來了更大的威脅。為了對抗隱寫術(shù)的非法使用,實(shí)現(xiàn)對網(wǎng)絡(luò)的可管可控可偵,開展隱寫檢測技術(shù)研究勢在必行。
BitTorrent網(wǎng)絡(luò)是一個(gè)文件分發(fā)協(xié)議,也是經(jīng)典的混合式對等網(wǎng)絡(luò),已經(jīng)成為Internet中主要的文件共享系統(tǒng)。它主要由種子節(jié)點(diǎn)、下載節(jié)點(diǎn)、Web服務(wù)器和Tracker服務(wù)器組成。種子節(jié)點(diǎn)創(chuàng)建torrent文件,最后發(fā)布到Web服務(wù)器上供其他節(jié)點(diǎn)下載。torrent文件記錄了共享文件名稱、大小、校驗(yàn)值和Tracker服務(wù)器的IP地址等。下載節(jié)點(diǎn)在Web服務(wù)器上獲取torrent文件,以便于下載共享文件。節(jié)點(diǎn)想要下載信息時(shí),首先需要連接Tracker服務(wù)器來獲取網(wǎng)絡(luò)中下載該文件的其他節(jié)點(diǎn)的IP地址和端口號,從而建立連接。文件的發(fā)送與接收都是在節(jié)點(diǎn)之間進(jìn)行,同一時(shí)刻在線的節(jié)點(diǎn)越多,傳輸速度越快。
節(jié)點(diǎn)間協(xié)議是BT網(wǎng)絡(luò)中通信量最大的通信協(xié)議,又稱為節(jié)點(diǎn)連線協(xié)議(Peer Wire Protocol),它是一個(gè)基于TCP協(xié)議的應(yīng)用。其正常通信過程如圖2所示。
圖2 BT節(jié)點(diǎn)間的通信時(shí)序圖
首先,節(jié)點(diǎn)PeerA和PeerB之間進(jìn)行“三次握手”,建立TCP連接;然后,兩者進(jìn)行“兩次握手”,建立BT連接;最后,雙方進(jìn)行一系列的BT信息交互,完成文件共享。P2P不同于傳統(tǒng)的C/S模式,在此網(wǎng)絡(luò)中的節(jié)點(diǎn)既是資源供給者,又是資源采集者。兩者對比如圖3、圖4所示。
圖3 Client/Server模式
圖4 Peer to Peer模式
常用BT消息有Keep_alive、Handshake、Choke、Unchoke、Interested、Not_interested、Have 、Bitfield、Request、Piece、Cancel,格式如表1所示。
表1 BT消息格式
按照長度可將這些信息分為空消息、通知消息和數(shù)據(jù)消息,其中Have 、Bitfield、Request、Piece、Cancel屬于數(shù)據(jù)消息,可用于嵌入隱蔽消息。李子帥[15]提出了一種將隱秘信息嵌入到Bitfield消息和Piece消息冗余空間的信息隱藏算法。本文針對P2P中典型的BitTorrent文件共享協(xié)議中Piece消息的秘密信息傳輸方法進(jìn)行分析,提出一種基于SVM的分類器的隱寫檢測方法。實(shí)驗(yàn)結(jié)果表明,所提方法在檢測BitTorrent協(xié)議中基于Piece消息的隱蔽通信時(shí)具有良好的效果。
文獻(xiàn)[15]提出了一種基于piece消息的隱寫算法,這種算法遵循“最少的優(yōu)先”的原則,即優(yōu)先下載占有率最低的數(shù)據(jù)塊,最后利用piece消息傳輸含密消息和文件。
為了提高算法的魯棒性,文件被切分為多個(gè)子片段,假設(shè)秘密信息的大小為U,而Piece消息block域固定為16 KB,則嵌入所需Piece消息數(shù)目NP為:
(1)
若待嵌入信息量超過單個(gè)數(shù)據(jù)塊大小,單個(gè)Block已經(jīng)無法滿足嵌入要求,需要考慮多個(gè)Block配合完成信息嵌入,保證BT隱蔽通信的順利實(shí)施。
隱藏算法的主要步驟如下:
輸入:待嵌入的Piece消息P,隱秘信息明文M,密鑰K。
輸出:含秘Piece消息P*。
Step1S=Encrypt(M,K);對明文M加密,得到S及長度|S|。
Step2 比較|S|與l,若|S| Step3 通過have消息告知其他節(jié)點(diǎn)含有片段P。 Step4 監(jiān)聽來自其他節(jié)點(diǎn)的 request消息。如果所請求的為片斷P,轉(zhuǎn)到Step5;否則,提示信息隱藏失敗。 Step5 發(fā)送以S作為負(fù)載的piece消息。 Step6 輸出P*。 3.1.1 信息熵 信息熵表示了某個(gè)信息量的一種期望值,也可以將其視為某個(gè)信息呈現(xiàn)的概率。如果系統(tǒng)越復(fù)雜,那么它的信息熵就相對較大。事件隨機(jī)發(fā)生的可變性被稱為自信息,通常用I(xi)表示。 互信息I(xi;yi)是指在事件yi確定的前提下,事件xi的不確定度的縮減量。若xi和yj為兩個(gè)相關(guān)的事件,當(dāng)yj發(fā)生后,xi的發(fā)生幾率就會改變,那么自信息量也會隨之改變,這個(gè)改變量即為互信息。 信息熵為某個(gè)事件xi與其自身的互信息I(xi;xi),也可以用H(x)表示: (2) 式中:n為樣本中不同信息的數(shù)量;p(xi)為每個(gè)信息出現(xiàn)的概率。在本實(shí)驗(yàn)中,p(xi)是時(shí)延信息落在每個(gè)劃分區(qū)間中的概率。 基于Piece消息的信息隱藏算法是以Piece消息中包含的文件片段數(shù)據(jù)為輸入,而Piece消息以網(wǎng)絡(luò)作為傳輸渠道,受網(wǎng)絡(luò)穩(wěn)定性影響較大。當(dāng)網(wǎng)絡(luò)擁塞時(shí),可能會造成Piece消息傳輸延時(shí)、超時(shí)或丟失。出現(xiàn)異常時(shí),數(shù)據(jù)包會被重傳,從而導(dǎo)致等待輸入信息時(shí)間延長[15]。由于網(wǎng)絡(luò)的不穩(wěn)定性,含密數(shù)據(jù)的包間時(shí)延會大于正常數(shù)據(jù)的包間時(shí)延,導(dǎo)致信息熵的變化。因此,信息熵可以作為區(qū)分正常數(shù)據(jù)與含密數(shù)據(jù)的特征。 [30]Mary Patricia Callahan,Making Enemies: War and State Building in Burma, Singapore: NUS Press, 2004, p.120, 166-168. 3.1.2 均值方差 在統(tǒng)計(jì)工作中,均值和方差是反映數(shù)據(jù)資料集中情況和離散程度的兩個(gè)重要指標(biāo)。由于正常數(shù)據(jù)的負(fù)載相對較小,所以傳輸速率更快,對應(yīng)的包間時(shí)延也會更小,其均值小于含密數(shù)據(jù)。包間時(shí)延的均值可由下式計(jì)算得出: (3) 式中:n為樣本包間時(shí)延總數(shù)。 因?yàn)檎Mㄐ诺臅r(shí)間間隔不斷隨網(wǎng)絡(luò)環(huán)境變化,故相對方差不斷變化,而隱蔽通信的時(shí)間間隔一般固定在幾個(gè)時(shí)間間隔,方差變化相對較小[16]。包間時(shí)延的方差可由下式計(jì)算得出: (4) 由于正常數(shù)據(jù)與含密數(shù)據(jù)的均值和方差存在較大的差異,所以將均值和方差作為區(qū)分?jǐn)?shù)據(jù)是否含密的兩個(gè)特征。 支持向量機(jī)SVM是對數(shù)據(jù)進(jìn)行二元分類的線性分類器,可以使用較少的樣本獲得良好的實(shí)驗(yàn)效果。該方法不僅解決了維數(shù)災(zāi)難問題,而且訓(xùn)練樣本少,有效地節(jié)省了時(shí)間。 假設(shè)G={(xi,yi),i=1,2,…,l}為給定的一個(gè)訓(xùn)練樣本,每個(gè)樣本xi∈Rd屬于一個(gè)分類y∈{+1,-1}。分類曲線表示為: w×x+b=0 式中:w為一個(gè)權(quán)重向量,b為閾值。 上述問題可以表示為一個(gè)分類函數(shù)如下: f(x)=sgn(wx+b) (5) 分類器的最優(yōu)超平面可看作以下最優(yōu)化問題: (6) s.t. yi[(wxi)+b]-1≥0,i=1,2,…,l 化為對偶問題: (7) (xi,xj),s.t.yi[(wxi)+b]-1≥0 (8) 分類函數(shù)變?yōu)椋?/p> (9) 如果線性不可分,可將其轉(zhuǎn)化為高維問題,假設(shè)核函數(shù)為K(x,y),變換函數(shù)用Φ(x)表示,則: K(x,y)=Φ(x)Φ(y) (10) 分類函數(shù)用核函數(shù)表示為: (11) 本實(shí)驗(yàn)使用Vuze4.4客戶端參與BT共享文件的傳輸。通過wireshark分別捕獲正常通信與隱蔽通信兩種方式下的數(shù)據(jù)包。實(shí)驗(yàn)環(huán)境如表2所示。 表2 實(shí)驗(yàn)環(huán)境 基于信息熵的檢測算法是一種非常典型的方法。錢玉文等[7]使用基于信息熵的算法對幾種常見的時(shí)間式隱寫進(jìn)行了檢測,所提算法在復(fù)雜的實(shí)驗(yàn)條件下也有很高的檢測率?;谛畔㈧氐臋z測算法步驟如下: Step1 從正常數(shù)據(jù)與待測數(shù)據(jù)中獲取若干數(shù)據(jù)包樣本,根據(jù)一定的窗口大小w進(jìn)行劃分。 Step2 將正常數(shù)據(jù)的包間時(shí)延均勻切分成N塊并計(jì)算包間時(shí)延落在塊中的概率。 Step3 算出每組數(shù)據(jù)的信息熵。 Step4 設(shè)定含密與不含密的臨界值,如果待測數(shù)據(jù)的信息熵在臨界值內(nèi)則含密,反之則不含密。 本實(shí)驗(yàn)利用Java語言編寫隱寫算法,使用Vuze4.4客戶端參與BT共享文件的傳輸。使用wireshark分別捕獲90 000條正常數(shù)據(jù)和含密數(shù)據(jù),提取出兩組數(shù)據(jù)的包間時(shí)延,然后求取它們的信息熵。在窗口w為2 500的情況下,選取一組正常數(shù)據(jù)與含密數(shù)據(jù)作對比,計(jì)算兩組數(shù)據(jù)包間時(shí)延的信息熵,結(jié)果如圖5所示??梢钥闯?,正常數(shù)據(jù)混亂度較大,而含密數(shù)據(jù)混亂度相對較小。雖然正常數(shù)據(jù)和含密數(shù)據(jù)均有各自的特性,但很難找到一個(gè)合適的閾值來區(qū)分正常數(shù)據(jù)和含密數(shù)據(jù),可見只用信息熵這一個(gè)特征檢測不出數(shù)據(jù)是否含密。 圖5 正常數(shù)據(jù)與含密數(shù)據(jù)的信息熵 經(jīng)過4.2中實(shí)驗(yàn)可知,含密數(shù)據(jù)很難被單一的熵值特征完全檢測出來。因此,本文通過提取多種特征并進(jìn)行分類來達(dá)到檢測實(shí)驗(yàn)數(shù)據(jù)是否含密的目的。多特征分類最重要的就是特征的選取,經(jīng)過論證,實(shí)驗(yàn)選取了包間時(shí)延的熵值、均值和方差3種特征實(shí)現(xiàn)對正常數(shù)據(jù)和含密數(shù)據(jù)的分類。對應(yīng)的流程圖如圖6所示。 圖6 多特征分類流程 在一定的窗口下,提取正常數(shù)據(jù)和含密數(shù)據(jù)的包間時(shí)延,將其送入SVM分類器中訓(xùn)練,得到一個(gè)多特征模型并用其進(jìn)行分類。具體檢測步驟如下: Step1 窗口劃分。從兩組數(shù)據(jù)中混合成待測數(shù)據(jù)集,按照窗口大小w進(jìn)行劃分。 Step2 特征提取。提取每個(gè)窗口中包間時(shí)延的熵值、均值、方差3種特征。 Step3 模型訓(xùn)練。分別用標(biāo)識符“1”和“0”對正常數(shù)據(jù)和含密數(shù)據(jù)進(jìn)行標(biāo)記。 Step4 將待測數(shù)據(jù)分割成大小為w的若干窗口,按步驟Step1-Step2提取三種特征。 Step5 用SVM分類器對待測數(shù)據(jù)進(jìn)行分類。 本實(shí)驗(yàn)通過wireshark分別捕獲90 000條正常數(shù)據(jù)和含密數(shù)據(jù),然后提取出兩組數(shù)據(jù)的包間時(shí)延混合組成訓(xùn)練集,按大小為w的窗口進(jìn)行分割。其中70%用于訓(xùn)練,30%用于測試。按照前面介紹的方法,計(jì)算出不同窗口下的均值、方差及信息熵3種特征,使用SVM分類器進(jìn)行訓(xùn)練與測試,最后得到檢測結(jié)果。 1) 窗口大小w對檢測率的影響。檢測方法的第一步就是要?jiǎng)澐执翱?,窗口大小的變化意味著每個(gè)窗口所包含的數(shù)據(jù)包數(shù)量不同。當(dāng)劃分窗口大小w為1 000時(shí),可以得到90組正常數(shù)據(jù)和90組含密數(shù)據(jù),分別選取其中的63組數(shù)據(jù)作為訓(xùn)練集,余下的27組數(shù)據(jù)作為測試集。通過訓(xùn)練集的多特征建立模型,用標(biāo)識符“1”和“0”對正常數(shù)據(jù)和含密數(shù)據(jù)進(jìn)行標(biāo)記。然后用SVM分類器對待測數(shù)據(jù)進(jìn)行檢測分類。為了分析窗口大小w對檢測率的影響,分別取w在取值200、400、600、800、1 000、1 200、1 400、1 600、1 800、2 000這10種情況進(jìn)行實(shí)驗(yàn),對不同窗口下的檢測率進(jìn)行比較分析。圖7即為w對檢測率的影響結(jié)果??梢钥闯?,隨著窗口增大,檢測率逐漸提高并趨于穩(wěn)定。這主要是因?yàn)楦嗟臄?shù)據(jù)量能夠提供更為準(zhǔn)確的特征,從而檢測出正常數(shù)據(jù)與含密數(shù)據(jù)。 圖7 窗口大小對檢測率的影響 2) 本文方法的檢測結(jié)果。以1 000個(gè)數(shù)據(jù)為窗口分割全部數(shù)據(jù),進(jìn)行30次實(shí)驗(yàn),結(jié)果如圖8所示。可以看出,每次實(shí)驗(yàn)結(jié)果略有不同,這是因?yàn)槊看螌?shí)驗(yàn)都是隨機(jī)抽取70%的數(shù)據(jù)作為訓(xùn)練樣本,從而導(dǎo)致訓(xùn)練出的模型有所不同。每次實(shí)驗(yàn)的樣本不同會導(dǎo)致檢測率有所波動。本文提出的基于多特征的檢測算法的檢測率的均值為0.947,虛警率的均值為0.05。 圖8 本文方法的檢測結(jié)果 本文以一種BitTorrent協(xié)議中Piece消息的隱寫方法為研究對象,提出了一種基于多特征的檢測方法。所提方法通過提取均值、方差和信息熵三個(gè)特征,使用SVM分類器來區(qū)分正常數(shù)據(jù)和含密數(shù)據(jù)。實(shí)驗(yàn)結(jié)果顯示,當(dāng)窗口w大于1 000時(shí),本文所提方法對此類隱蔽通信具有較好的檢測效果。 本文方法僅針對Piece隱寫這類隱蔽通信,在適用性上尚需改進(jìn),未來將以BitTorrent網(wǎng)絡(luò)為研究對象,開展適用性更強(qiáng)的隱蔽通信檢測算法研究,以提高對BitTorrent網(wǎng)絡(luò)竊密的防護(hù)能力。3 算法設(shè)計(jì)
3.1 特征提取
3.2 SVM分類器
4 實(shí)驗(yàn)與分析
4.1 實(shí)驗(yàn)環(huán)境
4.2 基于信息熵的檢測算法
4.3 基于多特征的檢測算法
5 結(jié) 語