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