張宇飛,沈 瑤,楊 威,肖?漢,黃劉生
1(中國科學(xué)技術(shù)大學(xué) 蘇州研究院,江蘇 蘇州 215123)
2(中國科學(xué)技術(shù)大學(xué) 軟件學(xué)院,江蘇 蘇州 215123)
3(中國科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230026)
通訊作者:張宇飛,E-mail:SA614137@mail.ustc.edu.cn
網(wǎng)絡(luò)隱蔽信道技術(shù)是指利用網(wǎng)絡(luò)中的合法通信信道構(gòu)建秘密信道,進(jìn)行隱秘信息的傳輸.隱蔽信道在加密傳輸信息內(nèi)容的同時(shí),對傳輸信息行為也進(jìn)行了加密.傳統(tǒng)的加密技術(shù)很容易引起注意,并被加以破解.隨著密碼學(xué)等相關(guān)理論的發(fā)展,密文的破譯技術(shù)得到了飛速發(fā)展,加密技術(shù)的可靠性將面臨挑戰(zhàn).隱蔽信道技術(shù)相比加密技術(shù)具有更強(qiáng)的隱蔽性.自1973 年Lampson 提出隱蔽信道的概念至今,對于隱蔽信道技術(shù)的研究成果層出不窮;與此同時(shí),隱蔽信道檢測技術(shù)也隨著隱蔽信道技術(shù)的發(fā)展而被研究.對于隱蔽信道領(lǐng)域的正向研究,主要目標(biāo)是提出具有更高信道容量、更高傳輸效率、更強(qiáng)隱蔽性的隱蔽信道實(shí)現(xiàn)方案,以保障重要信息傳輸過程的安全;反向研究則是探索更通用、更可靠、檢測率更高的隱蔽信道檢測算法,及時(shí)發(fā)現(xiàn)并阻止不法分子利用隱蔽信道竊取機(jī)密信息.
根據(jù)存儲載體的不同,現(xiàn)有的網(wǎng)絡(luò)隱蔽信道實(shí)現(xiàn)方式主要分為兩類:網(wǎng)絡(luò)存儲型隱蔽信道利用網(wǎng)絡(luò)數(shù)據(jù)包中的某些字段編碼隱秘信息進(jìn)行傳輸;網(wǎng)絡(luò)時(shí)序型隱蔽信道則將隱秘信息編碼到相鄰數(shù)據(jù)包的時(shí)間間隔中,利用網(wǎng)絡(luò)中數(shù)據(jù)包的傳輸速率、發(fā)送時(shí)間和到達(dá)時(shí)間進(jìn)行隱秘信息的傳輸.
時(shí)序型隱蔽信道利用數(shù)據(jù)包的時(shí)間間隔傳輸信息,而數(shù)據(jù)包的時(shí)間間隔容易受到網(wǎng)絡(luò)環(huán)境影響.當(dāng)網(wǎng)絡(luò)環(huán)境不穩(wěn)定時(shí),數(shù)據(jù)包的時(shí)間間隔也會(huì)發(fā)生較大的抖動(dòng),造成隱蔽信道傳輸信息的錯(cuò)誤.因此相比存儲型隱蔽信道,時(shí)序型隱蔽信道的可靠性較差.但是時(shí)序型隱蔽信道的優(yōu)點(diǎn)在于其隱蔽性很強(qiáng),實(shí)現(xiàn)機(jī)理和信息編碼過程的復(fù)雜多變,使得目前尚無方法有效檢測所有類型的網(wǎng)絡(luò)時(shí)序型隱蔽信道;并且隨著網(wǎng)絡(luò)和通信技術(shù)的發(fā)展,網(wǎng)絡(luò)環(huán)境也在逐步改善,這也使得時(shí)序型隱蔽信道的準(zhǔn)確率和可靠性在逐步提升.因此,時(shí)序型隱蔽信道檢測技術(shù)的研究成為了目前隱蔽信道檢測技術(shù)研究工作的重點(diǎn).
針對上述問題,本文提出一種基于差分運(yùn)算和信息熵的網(wǎng)絡(luò)時(shí)序型隱蔽信道檢測算法,其主要貢獻(xiàn)如下:
(1)提出了差分信息熵(difference entropy)的概念,通過理論研究得到差分熵的特性,為檢測算法的有效性提供理論基礎(chǔ);
(2)提出了基于差分信息熵的時(shí)序型隱蔽信道檢測算法,并通過一系列實(shí)驗(yàn)確定算法的最優(yōu)參數(shù)設(shè)定;
(3)設(shè)計(jì)了對照實(shí)驗(yàn),比較了本文提出的差分熵算法和相似度算法、隨機(jī)性檢測算法、CCE 算法以及熵評估算法對于IPCTC,TRCTC,JitterBug 這3 種時(shí)序型隱蔽信道的檢測效果,著重研究了對于JitterBug隱蔽信道的檢測效果.
本文第1 節(jié)介紹研究背景,簡要描述本文中涉及到的一些預(yù)備知識.第2 節(jié)提出差分信息熵的概念并描述其特性.第3 節(jié)介紹基于差分信息熵的網(wǎng)絡(luò)時(shí)序型隱蔽信道檢測算法的原理.第4 節(jié)介紹算法的實(shí)現(xiàn)過程,包括數(shù)據(jù)的收集、處理方式以及算法在程序?qū)崿F(xiàn)過程中涉及到的參數(shù)設(shè)定.第5 節(jié)通過設(shè)計(jì)實(shí)驗(yàn)來檢驗(yàn)算法的性能和效果.最后,第6 節(jié)說明目前研究過程中存在的問題以及之后的研究方向,并且總結(jié)全文.
隱蔽信道的概念最初由Lampson 在1973 年提出,他將隱蔽信道定義為本意不是用來傳輸信息的通信信道[1].即:如果采用某種手段或方法,利用一個(gè)本不是用于通信的系統(tǒng)或過程來傳輸信息,那么這種手段或方法就構(gòu)建了一條隱蔽信道.文獻(xiàn)[1]中,作者將兩個(gè)具有調(diào)用關(guān)系的程序稱為 Customer 和 Service,并給出了在Customer 調(diào)用Service 時(shí),程序Service 可能將Customer 的信息泄露給第三方的6 種可能的情況,進(jìn)而表明:即使Customer 在調(diào)用Service 時(shí)為Service 規(guī)定了嚴(yán)格的數(shù)據(jù)訪問權(quán)限,Customer 的數(shù)據(jù)依然有可能被泄漏.通過對6 種情況的闡述,作者認(rèn)為,Service 程序?qū)a(chǎn)生3 種類型的通信信道.
· 存儲信道:Service 可以將數(shù)據(jù)存儲在可以被第三方訪問到的存儲空間中來實(shí)現(xiàn)數(shù)據(jù)的隱秘傳輸;
· 加密信道:Service 利用某種方式,在合法信道中嵌入機(jī)密信息進(jìn)行傳輸;
· 隱蔽信道:通過某種方式,利用本不是用來傳輸信息的過程或機(jī)制來傳輸信息.
Lampson 隱蔽信道的定義后來被Tsai 等人進(jìn)一步完善.Tsai 給出的隱蔽信道的定義是:給定一個(gè)強(qiáng)制安全策略模型M以及其在操作系統(tǒng)中的解釋I(M),I(M)中的兩個(gè)主體I(Sh)和I(Sl)之間的通信是隱蔽的,當(dāng)且僅當(dāng)模型M中的對應(yīng)主體Sh和Sl之間的任何通信都是非法的[2].該定義認(rèn)為:隱蔽信道只與系統(tǒng)的強(qiáng)制訪問控制策略模型相關(guān),并且廣泛存在于部署了強(qiáng)制訪問控制機(jī)制的安全操作系統(tǒng)、安全網(wǎng)絡(luò)和安全數(shù)據(jù)庫中[3].
從1973 年至今,對于隱蔽信道方面的研究成果層出不窮.Wang 等人、Zander 等人對于目前已有隱蔽信道方面的研究成果進(jìn)行了充分的總結(jié)和歸納[3,4].Wang 在其綜述中描述了4 種類型的隱蔽信道[3].
(1)數(shù)據(jù)庫信道:利用數(shù)據(jù)庫系統(tǒng)對外傳輸數(shù)據(jù),主要利用數(shù)據(jù)庫中的存儲資源、管理資源以及事務(wù)并發(fā)控制機(jī)制構(gòu)建隱蔽信道;
(2)閾下信道:基于公鑰密碼技術(shù)的數(shù)字簽名、認(rèn)證等應(yīng)用密碼體制的輸出密碼數(shù)據(jù)中建立起來的一種隱蔽信道;
(3)網(wǎng)絡(luò)信道:網(wǎng)絡(luò)信道可以分為兩種:第1 種存在于多級安全系統(tǒng)中,是一種用于從高安全級向低安全級傳輸信息的隱蔽信道;第2 種則不涉及多級安全的概念,在普通的通信信道中嵌入一層隱蔽的通信信道,這里普通信道是隱蔽信道的載體;
(4)推理信道:嚴(yán)格意義上講,推理信道并不是一種通信信道,它利用某種方式,通過對公開數(shù)據(jù)的查看來推理出隱私數(shù)據(jù)的內(nèi)容.這種技術(shù)通常用于獲取數(shù)據(jù)庫中的私有信息,例如:利用數(shù)據(jù)庫中的某些聚集查詢和函數(shù)查詢來推斷某一條數(shù)據(jù)記錄的具體內(nèi)容.
從文獻(xiàn)[3]可以看出,對于隱蔽信道的研究已經(jīng)擴(kuò)展了Lampson 和Tsai 最初對于隱蔽信道的定義.Lampson提出的3 類信道,在現(xiàn)今的研究中都可以歸于隱蔽信道的范疇;Wang 所描述的4 類隱蔽信道中,數(shù)據(jù)庫信道對應(yīng)于 Lampson 描述的存儲信道,閾下信道和網(wǎng)絡(luò)信道則對應(yīng)于 Lampson 提出的加密信道,推理信道對應(yīng)于Lampson 的隱蔽信道.目前研究的隱蔽信道主要針對利用網(wǎng)絡(luò)協(xié)議規(guī)定的數(shù)據(jù)幀或數(shù)據(jù)報(bào)來構(gòu)建的隱蔽信道,對應(yīng)于Wang 在其綜述中提到的第2 類網(wǎng)絡(luò)信道.
網(wǎng)絡(luò)隱蔽信道是指利用計(jì)算機(jī)網(wǎng)絡(luò)中的各種協(xié)議,以合法通信信道作為載體,構(gòu)建用于傳輸隱秘信息的通信信道.這里關(guān)于術(shù)語隱蔽信道(covert channel)的意義和指代的范疇,Zander 在其綜述中做出了明確的界定[4]:利用網(wǎng)絡(luò)中的各種協(xié)議幀的格式來嵌入隱秘信息的技術(shù)稱為隱蔽信道;通過加密技術(shù)將隱秘信息嵌入到數(shù)據(jù)明文中的方式則稱為隱寫術(shù)(steganography);術(shù)語信息隱藏(information hiding)涵蓋了以上兩者.作為載體的合法信道則稱為公開信道(overt channel).
對于網(wǎng)絡(luò)隱蔽信道技術(shù),我們可以從多個(gè)角度進(jìn)行分類.
(1)按照隱秘信息編碼原理劃分,網(wǎng)絡(luò)隱蔽信道可以劃分為網(wǎng)絡(luò)存儲型隱蔽信道和網(wǎng)絡(luò)時(shí)序型隱蔽信道:前者主要利用網(wǎng)絡(luò)協(xié)議中的一些控制字段編碼隱秘信息,實(shí)現(xiàn)隱秘傳輸;后者則利用了數(shù)據(jù)包的發(fā)送時(shí)間、接收時(shí)間、時(shí)間間隔來進(jìn)行隱秘信息的編碼;
(2)按照傳輸載體劃分,網(wǎng)絡(luò)隱蔽信道可以分為網(wǎng)絡(luò)協(xié)議隱蔽信道和網(wǎng)絡(luò)應(yīng)用隱蔽信道:前者利用的是涉及到網(wǎng)絡(luò)基礎(chǔ)建設(shè)的底層協(xié)議,諸如TCP,UDP,IP,ICMP 以及其他的鏈路層協(xié)議;后者利用的則是涉及到高級網(wǎng)絡(luò)應(yīng)用的應(yīng)用層協(xié)議,諸如HTTP,HTTPS,SMTP 以及SSH 等;
(3)按照與合法信道的關(guān)系劃分,網(wǎng)絡(luò)隱蔽信道可以分為主動(dòng)式隱蔽信道和被動(dòng)式隱蔽信道.主動(dòng)式隱蔽信道的發(fā)送方和接受方與合法信道的發(fā)送方和接收方是相同的,因此,主動(dòng)式隱蔽信道可以直接操縱信道的容量和傳輸速率;被動(dòng)式隱蔽信道的發(fā)送方、接受方與合法信道的發(fā)送方、接收方不同,而是介于合法信道發(fā)送方和接收方之間.被動(dòng)式隱蔽信道僅僅是借助于合法信道作為載體,對于信道的控制力較弱,隱蔽信道的傳輸能力和性能也主要取決于作為載體的合法信道的情況.被動(dòng)式隱蔽信道和主動(dòng)式隱蔽信道的區(qū)別可以用圖1、圖2 來描述.

Fig.2 Active covert channel圖2 主動(dòng)式隱蔽信道
以上的分類方式中,第1 種分類方式最能體現(xiàn)隱蔽信道的本質(zhì),下文中的討論都基于該分類方式.
1.2.1 網(wǎng)絡(luò)存儲型隱蔽信道
網(wǎng)絡(luò)存儲隱蔽信道主要利用網(wǎng)絡(luò)協(xié)議幀中的字段編碼隱秘信息,構(gòu)建隱蔽通信信道.常用的載體有IP 數(shù)據(jù)報(bào)中的服務(wù)類型(TOS)[5]、標(biāo)志位(flag)[6]、數(shù)據(jù)報(bào)編號(identification)[7,8]、生存時(shí)間(TTL)[9,10]、數(shù)據(jù)報(bào)長度等字段以及TCP 報(bào)文中的緊急指針(URG)[11]、報(bào)文序號(sequence)[12,13]等字段.另外,以上協(xié)議中的選項(xiàng)部分和填充字節(jié)也可以作為隱秘信息的載體.
網(wǎng)絡(luò)存儲型隱蔽信道的構(gòu)建不僅可以利用底層的網(wǎng)絡(luò)協(xié)議,還可以利用一些應(yīng)用層的協(xié)議,如HTTP[14-16]和DNS[17]協(xié)議.一些TCP/IP 層之下的協(xié)議,諸如以太網(wǎng)、令牌環(huán)網(wǎng)絡(luò)中涉及的相關(guān)協(xié)議也可以作為網(wǎng)絡(luò)存儲型隱蔽信道的載體[18-20].
本文提出的檢測算法主要針對網(wǎng)絡(luò)時(shí)序型隱蔽信道,因此對于存儲型隱蔽信道,這里僅簡要說明.
1.2.2 網(wǎng)絡(luò)時(shí)序型隱蔽信道
網(wǎng)絡(luò)時(shí)序型隱蔽信道將隱秘信息編碼為數(shù)據(jù)包傳輸過程中的時(shí)間間隔,達(dá)到隱秘傳輸?shù)哪康?對于主動(dòng)式的網(wǎng)絡(luò)時(shí)序型隱蔽信道,發(fā)送端在發(fā)送數(shù)據(jù)包時(shí)就將隱秘信息編碼到了數(shù)據(jù)包的時(shí)間間隔中,發(fā)送端發(fā)送數(shù)據(jù)包時(shí),發(fā)送的時(shí)間間隔就根據(jù)要傳輸?shù)碾[秘信息進(jìn)行了調(diào)制;對于被動(dòng)式時(shí)序型隱蔽信道,則主要通過攔截、抓取正常網(wǎng)絡(luò)信道中正在傳輸?shù)臄?shù)據(jù)包,根據(jù)要傳送的隱秘信息,將數(shù)據(jù)包的時(shí)間間隔延長或縮短,達(dá)到傳輸隱秘信息的目的.
以下是部分網(wǎng)絡(luò)時(shí)序型隱蔽信道類型的簡要介紹.
· IPCTC (IP covert timing channel)
2004 年,Cabuk 提出了一種時(shí)序型隱蔽信道稱為IPCTC[21],在其實(shí)現(xiàn)中,發(fā)送方和接受方需要事先約定一個(gè)時(shí)間間隔t.發(fā)送開始后,對于每一個(gè)時(shí)間間隔t,如果發(fā)送方需要發(fā)送比特1,就在該時(shí)間間隔內(nèi)發(fā)送一個(gè)數(shù)據(jù)包;否則,發(fā)送方保持靜默,接收方觀察數(shù)據(jù)包到達(dá)的時(shí)間間隔,就可以得到信道中包含的隱秘信息.如果在時(shí)間間隔t之內(nèi)收到了發(fā)送方發(fā)送的數(shù)據(jù)包,傳輸?shù)臄?shù)據(jù)被識別為比特1;否則,識別為比特0.IPCTC 的傳輸原理如圖3所示.
Cabuk 還在文中給出了發(fā)送方和接收方的同步機(jī)制,并指出了4 種可能影響IPCTC 隱蔽信道傳輸性能的因素.其中,時(shí)間間隔t直接決定了信道的容量和傳輸效率:t值越小,信道的傳輸速率越高;但是時(shí)間間隔的減小,會(huì)導(dǎo)致傳輸過程中的錯(cuò)誤率提高.理論上,該信道的極限傳輸速率等同于發(fā)送端處理數(shù)據(jù)的速率.
IPCTC 利用在約定的時(shí)間區(qū)間中是否發(fā)送數(shù)據(jù)包來表示傳輸比特0 或比特1.該信道并不是直接將信息編碼到數(shù)據(jù)包時(shí)間間隔的數(shù)值中,而是利用在時(shí)間區(qū)間內(nèi)的發(fā)送或不發(fā)送數(shù)據(jù)包的事件,在發(fā)送方和接收方之間建立了一個(gè)可以共享的布爾值,接收方通過觀察這個(gè)布爾值的結(jié)果來接收隱秘信息.在Zander 的綜述中,IPCTC又被稱為ON/OFF 隱蔽信道[4].

Fig.3 IP covert timing channel (IPCTC)圖3 IPCTC 網(wǎng)絡(luò)時(shí)序型隱蔽信道
· TRCTC (time replay covert timing channel)
2006 年,Cabuk 對其提出的IPCTC 隱蔽信道進(jìn)行了改進(jìn)[22],提出了一種新的時(shí)序型隱蔽信道——TRCTC.隨意確定的時(shí)間間隔t很有可能會(huì)改變包間隔數(shù)據(jù)的統(tǒng)計(jì)特征,從而使得IPCTC 的隱蔽性和抗檢測性降低.TRCTC 首先對正常網(wǎng)絡(luò)信道中的數(shù)據(jù)包時(shí)間間隔進(jìn)行采樣,然后將采樣得到的數(shù)據(jù)劃分為兩個(gè)集合S0和S1,傳輸數(shù)據(jù)時(shí),如果需要傳輸比特0,就從集合S0中選擇一個(gè)時(shí)間間隔,發(fā)送數(shù)據(jù)包;如果需要傳輸比特1,就從S1中選擇一個(gè)時(shí)間間隔,發(fā)送數(shù)據(jù)包.由于通信中用到的時(shí)間間隔采樣自合法通信中的時(shí)間間隔,TRCTC 和正常通信產(chǎn)生的包間隔具有相似的數(shù)值特性.相比IPCTC,TRCTC 的隱蔽性更好.
· JitterBug
2006 年,Shah 等人提出一種利用用戶敲擊鍵盤的時(shí)間間隔來編碼信息的時(shí)序型隱蔽信道——JitterBug[23].JitterBug 設(shè)定了一個(gè)時(shí)間參數(shù)ω,如果需要傳輸比特1,就增加用戶兩次敲擊鍵盤的時(shí)間間隔,使該間隔可以被參數(shù)ω整除;如果要傳輸比特0,就增加時(shí)間間隔使其可以被ω/2 整除,但不能被ω整除.顯然,參數(shù)ω的選擇直接決定了信道的容量和傳輸效率:ω的值越小,信道的傳輸速率越高;并且,ω的值越小,產(chǎn)生的時(shí)間間隔數(shù)據(jù)和合法信道的數(shù)據(jù)的相似度就會(huì)越高,信道的隱蔽性就越強(qiáng).Jitterbug 信道的缺點(diǎn)在于它是一個(gè)被動(dòng)式隱蔽信道,不論ω的取值為多少,信道的極限容量和傳輸效率本質(zhì)上取決于載體信道的容量和傳輸效率.
以上3 種方式為時(shí)序型隱蔽信道的主要實(shí)現(xiàn)方式,除此之外,時(shí)序型隱蔽信道的種類還有MBCTC[24],DM[25]等.下文中的研究主要涉及到了上面提到的3 種類型的隱蔽信道,因此對于其他的類型,這里不再贅述.
相比存儲型隱蔽信道,時(shí)序型隱蔽信道隱蔽性更強(qiáng),檢測時(shí)序型隱蔽信道的難度也更大.時(shí)序型隱蔽信道是一種即時(shí)通信,發(fā)送方發(fā)送數(shù)據(jù)后,接收方必須及時(shí)接收,否則,數(shù)據(jù)包傳輸完畢后,傳輸?shù)男畔⒁搽S之丟失.另外,時(shí)序型隱蔽信道利用數(shù)據(jù)包時(shí)間間隔進(jìn)行隱秘信息的編碼,所以對于網(wǎng)絡(luò)環(huán)境有一定的要求,當(dāng)前網(wǎng)絡(luò)環(huán)境的穩(wěn)定性直接影響到時(shí)序型隱蔽信道傳輸過程的可靠性和傳輸信息的正確性.
1.2.3 其他類型的網(wǎng)絡(luò)隱蔽信道
近幾年來,對于網(wǎng)絡(luò)隱蔽信道技術(shù)的研究提出了更多的網(wǎng)絡(luò)隱蔽信道實(shí)現(xiàn)方案.存儲型和時(shí)序型的分類已經(jīng)無法完全涵蓋所有的隱蔽信道類型,例如:利用虛擬機(jī)之間共享的硬件資源在兩個(gè)虛擬機(jī)實(shí)例之間構(gòu)建隱蔽信道[26];利用數(shù)據(jù)包的排序方式來構(gòu)建隱蔽信道[27];利用多條通信流的構(gòu)建隱蔽信道[28]等.這些隱蔽信道無法從嚴(yán)格意義上講其屬于存儲型或時(shí)序型的類型,也不在本文的研究范圍.
時(shí)序型隱蔽信道將隱秘信息編碼到網(wǎng)絡(luò)數(shù)據(jù)包傳輸?shù)臅r(shí)間間隔中.對于合法信道,數(shù)據(jù)包的時(shí)間間隔僅取決于當(dāng)前的網(wǎng)絡(luò)環(huán)境;而對于時(shí)序型隱蔽信道,數(shù)據(jù)包的時(shí)間間隔則主要取決于要傳輸?shù)碾[秘信息.因此,時(shí)序型隱蔽信道的包時(shí)間間隔數(shù)據(jù)會(huì)在一些統(tǒng)計(jì)特征上呈現(xiàn)出和合法信道的差別.所以目前比較成熟的時(shí)序型隱蔽信道檢測技術(shù)主要通過評估待測數(shù)據(jù)的統(tǒng)計(jì)特征,包括均值、方差等統(tǒng)計(jì)量,來達(dá)到檢測和識別時(shí)序型隱蔽信道的目的.
Cabuk 認(rèn)為:由于正常數(shù)據(jù)包的傳輸時(shí)間間隔僅僅由網(wǎng)絡(luò)環(huán)境決定,因此時(shí)間間隔數(shù)據(jù)的隨機(jī)性較高;而時(shí)序隱蔽信道中的時(shí)間間隔用于傳輸隱秘信息而被刻意操縱,因此隨機(jī)性比較低[21].基于這樣的觀點(diǎn),Cabuk 提出了兩種時(shí)序型隱蔽信道檢測方式.

· 第1 種方式稱為隨機(jī)性檢測算法,該算法檢測數(shù)據(jù)包時(shí)間間隔的標(biāo)準(zhǔn)差.通過將待檢測數(shù)據(jù)劃分N個(gè)窗口,分別計(jì)算每個(gè)窗口的標(biāo)準(zhǔn)差,結(jié)果分別記為:σ1,σ2,...,σN.然后計(jì)算不同窗口標(biāo)準(zhǔn)差的差距的標(biāo)準(zhǔn)差,如下:其中,STDEV表示計(jì)算標(biāo)準(zhǔn)差.Cabuk 認(rèn)為:合法信道數(shù)據(jù)的隨機(jī)性高,因此數(shù)據(jù)的標(biāo)準(zhǔn)差不是恒定的,因此regularity的值也因標(biāo)準(zhǔn)差數(shù)據(jù)的波動(dòng)較大;而隱蔽信道數(shù)據(jù)的隨機(jī)性低,在傳輸數(shù)據(jù)的過程中,包時(shí)間間隔的標(biāo)準(zhǔn)差是恒定的,所以regularity的值會(huì)很小;
· Cabuk 提出的第2 種檢測方式稱為ε相似度(ε-similarity),基本思想是:合法通信中的各個(gè)數(shù)據(jù)包時(shí)間間隔是相互獨(dú)立的;而隱蔽信道的數(shù)據(jù)包間隔編碼了隱秘信息,因此數(shù)據(jù)包時(shí)間間隔之間是否獨(dú)立取決于要傳輸?shù)臄?shù)據(jù).ε相似度算法計(jì)算排序后的相鄰包間隔數(shù)據(jù)之間的相似度.對于排序后的包間隔數(shù)據(jù)序列P1,P2,...,PN,相鄰數(shù)據(jù)包間相似度的計(jì)算方式如下:

計(jì)算所有數(shù)據(jù)對的相似度后,統(tǒng)計(jì)相似度小于ε值的數(shù)據(jù)的比例.比例越大,待測信道中存在隱蔽信道的可能性就越高.
檢測時(shí)序型隱蔽信道的另一種較為成熟的技術(shù)是評估待測數(shù)據(jù)的熵率.熵(entropy)是隨機(jī)變量隨機(jī)程度的定量度量,它的定義來自于Shannon 提出的信息論[29],而熵率(entropy rate)則是隨機(jī)變量序列的平均信息熵,或者等價(jià)定義為無限個(gè)隨機(jī)變量序列的極限條件熵.熵(記作EN)和熵率(記作ER)的計(jì)算方式如下:

由于熵率是一個(gè)極限定義,對于有限的數(shù)據(jù)無法計(jì)算.Gianvecchio 提出一種帶修正值的條件信息熵(correct condition entropy),使得可以通過有限的數(shù)據(jù)來估計(jì)熵率[30].計(jì)算方式如下:

其中,Xn表示長度為n的隨機(jī)變量的序列,CE(X1,X2,...,Xn)表示X1,X2,...,Xn的條件信息熵,perc(Xn)則表示測試數(shù)據(jù)中所有唯一的n長度序列占所有n長度序列的比例,EN(X1)就是隨機(jī)變量X的熵值.而熵率的估計(jì)值就是取不同的n值得到的CCE(Xn)的最小值.
Gianvecchio 的觀點(diǎn)和Cabuk 是相同的,同樣認(rèn)為隱蔽信道的數(shù)據(jù)的隨機(jī)性要比正常數(shù)據(jù)低,熵率值越小,信道中含有隱蔽信道的可能性就越高.
檢測時(shí)序型隱蔽信道還有其他的算法,諸如基于SVM 的隱蔽信道分類器[31-33]、基于神經(jīng)網(wǎng)絡(luò)[34-36]的檢測算法、基于熵率和標(biāo)準(zhǔn)差的檢測方法[37]等.本文提出的檢測算法主要基于ε相似度和熵,因此對于其他類型的檢測算法,這里不再詳述.
本節(jié)主要對差分信息熵理論進(jìn)行闡述.通過下文中的理論分析可以看到,差分信息熵可以同時(shí)對待檢測數(shù)據(jù)的分布特性和數(shù)值特性進(jìn)行評估.下文中為了便于分析,首先給出了一些定義和定理,然后對差分信息熵理論進(jìn)行說明.
信息熵是一種對隨機(jī)變量隨機(jī)性程度的定量度量.熵的概念源于熱力學(xué),由Shannon 在1948 年提出信息論后引入計(jì)算機(jī)和通信領(lǐng)域[29].離散型隨機(jī)變量信息熵的計(jì)算方式前文中已經(jīng)給出.Gianvecchio 通過評估數(shù)據(jù)的熵率來檢測時(shí)序型隱蔽信道.文獻(xiàn)[30]作者用4 種隱蔽信道組織實(shí)驗(yàn)驗(yàn)證其提出的CCE 算法的有效性[30]:IPCTC,TRCTC,MBCTC,Jitterbug.根據(jù)作者提供的實(shí)驗(yàn)數(shù)據(jù),CCE 算法對于JitterBug 隱蔽信道的檢測效果很差,這主要是因?yàn)镴itterbug 隱蔽信道對于數(shù)據(jù)包間隔做出的修改很小,使得產(chǎn)生的包間隔數(shù)據(jù)和正常數(shù)據(jù)在統(tǒng)計(jì)特性上的差別很小.
我們認(rèn)為,利用熵率來對數(shù)據(jù)進(jìn)行評估僅僅考慮到了數(shù)據(jù)的統(tǒng)計(jì)特性,而沒有考慮數(shù)據(jù)的數(shù)值特性.例如,對于兩個(gè)離散型隨機(jī)變量X,Y,假設(shè)X可能的取值為1,3,5,7,取到每個(gè)值的概率為1/4;Y可能取值是1,5,6,11,取到每一個(gè)值的概率同樣為1/4.那么代入信息熵計(jì)算公式,X和Y得到的熵值是相同的:

但是很顯然,從數(shù)值上來看,變量X的規(guī)律性更強(qiáng).對于相互獨(dú)立的隨機(jī)變量序列,熵率的值跟熵值是相同的;對于非獨(dú)立的隨機(jī)變量序列,熵率的大小低于熵值,此時(shí),熵率和熵值的差距取決于序列中各個(gè)元素關(guān)聯(lián)度的大小.Gianvecchio 提出的CCE 算法之所以對于JitterBug 隱蔽信道的檢測效果不好,我們認(rèn)為,主要是因?yàn)殪芈蕛H僅評估了待測數(shù)據(jù)的分布特性,而沒有評估待測數(shù)據(jù)數(shù)值特性.根據(jù)構(gòu)建原理,JitterBug 中的時(shí)間序列的要么是參數(shù)ω的倍數(shù),要么是ω/2 的倍數(shù).因此,Jitterbug 中的任意兩個(gè)數(shù)據(jù)的差值一定是一個(gè)ω/2 的倍數(shù).就數(shù)值特性而言,JitterBug 隱蔽信道中的數(shù)據(jù)表現(xiàn)出了和正常數(shù)據(jù)不同的特性.
為了同時(shí)對數(shù)據(jù)的分布特性和數(shù)值特性進(jìn)行評估,我們結(jié)合Cabuk 提出的ε相似度算法和Gianvecchio 提出的CCE 算法,提出差分信息熵的概念,進(jìn)而提出差分信息熵的網(wǎng)絡(luò)時(shí)序型隱蔽信道檢測算法.
為了便于下文中對于差分信息熵的詳細(xì)說明,首先需要說明下面的定理:
定理1.對于任意的正數(shù)序列p1,p2,...,pn,可以得到:

證明:只要將不等式兩邊的式子求差即可:

由于序列中的每個(gè)pi都是正數(shù),因此,一定是大于1 的數(shù),所以結(jié)果和式中的每一項(xiàng)都是正數(shù),也就說明上面的做差結(jié)果是大于0 的,原式成立.
對于一個(gè)可能的取值有v1,v2,...,vn、對應(yīng)的概率分別是p1,p2,...,pn的離散型隨機(jī)變量X,我們可以為其定義兩種操作:
定義1.通過隨機(jī)變量X定義隨機(jī)變量Y,Y的取值規(guī)則如下:

此時(shí),我們可以說隨機(jī)變量Y由隨機(jī)變量X通過合并(merge)操作得到.
定義2.定義二值的隨機(jī)變量a,a以概率q取值為1,以概率(1-q)取值為0,然后通過隨機(jī)變量X和a定義一個(gè)隨機(jī)變量Z,Z的取值規(guī)則如下:

其中,?1≤i≤n,vn+1≠vi.此時(shí),我們可以說隨機(jī)變量Z由隨機(jī)變量X通過拆分(split)操作得到.
現(xiàn)在考慮通過合并和拆分X得到的隨機(jī)變量Y和Z的熵值.隨機(jī)變量X具有n個(gè)可能取值,而隨機(jī)變量Y在X的值為vn-1或vn時(shí),取值都是vn,因此Y只有n-1 種可能的取值;而通過拆分操作得到隨機(jī)變量Z 在X的值為vn時(shí)根據(jù)隨機(jī)變量a的取值情況有兩種取值:vn和vn+1,因此,Z共有n+1 種可能的取值.通過代入熵計(jì)算公式,Y和Z的熵值分別為

然后,將其和X的熵值做差:

根據(jù)定理1,我們可以得到EN(Y)-EN(X)的結(jié)果小于0,EN(Z)-EN(X)的結(jié)果大于0,因此可以得到如下定理:
定理2.拆分一個(gè)隨機(jī)變量會(huì)使熵增大,合并一個(gè)隨機(jī)變量會(huì)使熵減小.
本節(jié)定義兩個(gè)輔助矩陣來幫助下文中對于差分信息熵的討論.
定義3.設(shè)離散型隨機(jī)變量X可能取值有v1,v2,...,vn,對應(yīng)的概率分別是p1,p2,...,pn,這里為了便于分析,將數(shù)值v1,v2,...,vn遞增排序.然后定義一個(gè)隨機(jī)變量Y=X1-X2,其中,X1和X2相互獨(dú)立并且和X具有完全相同的概率分布.此時(shí)可以定義一個(gè)n×n的矩陣Dv,矩陣中的元素vij表示X1取值vi并且X2取值vj時(shí)的Y值;同時(shí)還可以定義另一個(gè)n×n的矩陣Dp,矩陣中的第i行第j列元素pij表示表示X1取vi、X2取vj時(shí)的聯(lián)合概率.此時(shí)稱矩陣Dv為變量X的差分值矩陣(difference value matrix),矩陣Dp為變量X的差分概率矩陣(difference probability matrix).
由于X1,X2獨(dú)立,所以pij就是pi和pj的乘積.X的差分值矩陣和差分概率矩陣如下:

通過觀察可以發(fā)現(xiàn),差分值矩陣Dv具有如下的性質(zhì).
(1)主對角線上的值均為X1,X2取相同值的情況,因此主對角線上的元素v1,1,v2,2,...,vn,n的值均為0;
(2)關(guān)于主對角線互相對稱的兩個(gè)元素的結(jié)果互為相反數(shù).顯然,對于任意元素vi,j=vi-vj,它關(guān)于主對角線的對稱位置為vj,i=vj-vi,和vi,j互為相反數(shù);
(3)每一個(gè)元素一定都比它上方和右方的元素大.這個(gè)結(jié)果是顯而易見的.任意一個(gè)元素vi,j=vi-vj,它右邊的元素是vi,j+1=vi-vj+1,上邊的元素是vi-1,j=vi-1-vj,由于vj+1>vj,vi>vi-1,所以vi,j>vi-1,j;同時(shí),vi,j>vi,j+1;
(4)矩陣中數(shù)值最大的元素在左下角,最小的則在右上角;并且任意一行、任意一列中一定不存在相同的元素;
(5)整個(gè)矩陣中最多包含n2-n+1 個(gè)不同的值,最少包含2n-1 個(gè)不同的值.對于前者,由于整個(gè)矩陣包含n2個(gè)元素,而主對角線上的元素都是0,共有n個(gè)0,如果其余的元素任意兩個(gè)都不相同,那么此時(shí),矩陣包含的不同元素最多,這個(gè)最大值就是n2-n+1;對于后者,則基于這樣的事實(shí):不論X具有怎樣的數(shù)值特征,矩陣Dv中,總可以找到一條從左下角的最大元素到達(dá)右上角的最小元素的路徑,使得沿著該條路徑移動(dòng)時(shí),方向總是向上或向右,此時(shí)這條路徑一定包含2n-1 個(gè)元素.圖4 給出了對于X有4 個(gè)不同取值的情況,沿著路徑遍歷這些元素時(shí),得到的一定是嚴(yán)格遞減的序列.也就是說,不論X具有怎樣的數(shù)值特征,在矩陣中都可以找到2n-1 個(gè)不同的元素.

Fig.4 There are at least 2n-1 different elements in the matrix Dv (two paths are shown in this figure)圖4 Dv 矩陣中至少包含2n-1 個(gè)不同元素(圖中給出了其中的2 條路徑)
2.4.1 差分信息熵的定義
對于離散型的隨機(jī)變量X,我們用下面的方式定義其差分信息熵:
定義4.對于一個(gè)離散型隨機(jī)變量X,定義一個(gè)隨機(jī)變量Y=X1-X2,其中,X1和X2相互獨(dú)立并且和X具有完全相同的概率分布.此時(shí),隨機(jī)變量X的差分信息熵為隨機(jī)變量Y的信息熵,記作DEN(X),即:

下面說明差分信息熵DEN(X)的特征.根據(jù)上文中差分矩陣的性質(zhì)(5),對于有n個(gè)可能取值的隨機(jī)變量X做差分運(yùn)算后,最多有n2-n+1 種不同的結(jié)果;最少有2n-1 種不同結(jié)果.而如果不考慮差值,僅僅考慮X1,X2不同的取值組合,則有n2種情況.我們可以將這些不同的取值組合按照差分值Y分組,得到的分組數(shù)目記為C,并將這C個(gè)分組分別為g1,g2,...,gC.圖5 是一個(gè)分組的樣例.

Fig.5 Example of classifying the combination of X1and X2according to the difference result (X1-X2)圖5 根據(jù)差分結(jié)果對隨機(jī)變量的取值組合分組的樣例
顯然,這里的分組數(shù)目C滿足下面的關(guān)系式:

分組完成后,可以得到計(jì)算差分熵DEN(X)的公式如下:

其中,

2.4.2 數(shù)值特性對差分熵的影響
本節(jié)說明數(shù)值特性對于差分熵的影響,并給出差分熵的值域.下文將分3 種情況說明:首先考慮兩種特殊情況,然后再說明更一般的情況.
情況1.取值序列v1,v2,...,vn是等差數(shù)列,假設(shè)公差為d,此時(shí),差分值矩陣變成了如圖6 所示的形式.

Fig.6 Difference value matrix in the case 1圖6 情況1 的差分值矩陣
如圖6 所示,此時(shí)位于同一條斜線上的元素的值都相等,矩陣中不同的值的個(gè)數(shù)恰好為最小值2n-1,即C=2n-1,此時(shí)對應(yīng)的差分熵為

關(guān)于這個(gè)值和熵值EN(X)的大小關(guān)系,我們尚未找出完全的證明方式,這里僅僅給出一個(gè)不完全的分析.根據(jù)差分概率矩陣Dp,我們可以定義一個(gè)離散隨機(jī)變量X′,X′共有n個(gè)可能的取值,記作:r1,r2,...,rn,而對應(yīng)的概率,則由下面的規(guī)則給出:

X′的分布律可以用圖7 來描述.

Fig.7 Distribution law of random variable X′圖7 隨機(jī)變量X′的分布律
為了更直觀地表達(dá),我們列舉各個(gè)變量值對應(yīng)的概率如下:

可以看到,X′的每個(gè)概率值都是由X的概率值通過輪換相乘然后求和得到.這是一個(gè)平均化的運(yùn)算過程,這意味著X′的概率分布比X跟接近于均勻分布(此處尚未找到完全的證明方式,但多次實(shí)驗(yàn)結(jié)果表明該結(jié)論是正確的).由于均勻分布的隨機(jī)性最高,熵值最大,所以可以得到下面的結(jié)論:

下面通過拆分的方式,通過X′構(gòu)造Y,將上文中每個(gè)ri概率值拆分出來,如圖8 所示.

Fig.8 Getting Y from X′ by splitting operation圖8 拆分X′得到Y(jié)
可以看到,此時(shí)Y的熵值就是DENmin(X).根據(jù)定理2,拆分使得熵值增大,因此:

表1 是通過程序模擬得到的實(shí)驗(yàn)數(shù)據(jù),對于每一個(gè)不同的分布律,表中只列出各個(gè)取值的概率,隨機(jī)變量具體可以取到哪些值并不影響實(shí)驗(yàn)結(jié)果,因此沒有列出.實(shí)驗(yàn)數(shù)據(jù)充分表明,前文中的結(jié)論在絕大多數(shù)情況下是正確的.

Table 1 Data from the experiment comparing values of entropy and minimum difference entropy表1 隨機(jī)變量熵值和最小差分熵值的比較實(shí)驗(yàn)數(shù)據(jù)
情況2.取值序列v1,v2,...,vn呈不規(guī)則分布,使得任意兩個(gè)不同的項(xiàng)作差值結(jié)果都不相同,此時(shí),差分結(jié)果Y可能的取值個(gè)數(shù)為最大值n2-n+1,因此C=n2-n+1.此時(shí),對應(yīng)的差分熵值是:

根據(jù)定理1,可得:

于是,

因此我們可以知道,隨機(jī)變量X的差分熵的最大值小于2 倍的X熵值,即:

情況3.對于更一般的情況,2n-1<C<n2-n+1.考慮情況2,Y的取值個(gè)數(shù)是n2-n+1,此時(shí)矩陣Dp中,除去主對角線的元素,其余的每一個(gè)元素都對應(yīng)Y的一個(gè)不同的取值的概率.而我們現(xiàn)在討論的一般情況中,C<n2-n+1,因此這種情況下,矩陣Dp中,除去主對角線的元素,一定存在2 個(gè)或多個(gè)元素表示同一個(gè)差分值的概率的情況.所以,對于一般情況的差分變量Y,可以通過情況2 對應(yīng)的Y通過合并操作得到.根據(jù)定理2,合并操作會(huì)使熵值減小,因此,對于更一般的情況:

然后我們考慮情況1.情況1 對應(yīng)的差分概率矩陣中,位于同一條斜線的元素表示同一個(gè)差分值的概率,而這里討論的一般情況,Y的取值個(gè)數(shù)是大于情況1 中Y的取值個(gè)數(shù).說明這里對應(yīng)的差分值矩陣中位于同一條斜線上的元素值不再相等.因此,一般情況的Y變量可以看做是由情況1 中的Y變量通過拆分操作得到.根據(jù)定理2,拆分操作會(huì)使熵值增大,我們可以得到:

此時(shí),可以得到下面的定理.
定理3.對于離散型隨機(jī)變量X,不論其數(shù)值特性如何,其差分熵DEN(X)都滿足下面的式子:

2.4.3 分布特性對差分熵的影響
本節(jié)討論隨機(jī)變量分布特性對于差分熵的影響.對于更一般的情況分析還有待研究.這里僅考慮特殊情況——二值隨機(jī)變量,即X可能取的值只有兩種,對應(yīng)概率分別為p和1-p.此時(shí),可以寫出X的熵值與差分熵值:

此時(shí),EN(X)和DEN(X)均可以看做是概值p的函數(shù),因此,我們可以采用分析函數(shù)的方法分析上面兩個(gè)式子.
求得導(dǎo)函數(shù)如下:

當(dāng)p=1/2 時(shí),兩個(gè)導(dǎo)函數(shù)同時(shí)取0 值,說明均勻分布時(shí),熵值和差分熵值都達(dá)到了最大值;同時(shí),當(dāng)p<1/2 時(shí),兩個(gè)導(dǎo)函數(shù)均為正值;p>1/2 時(shí),兩個(gè)導(dǎo)函數(shù)均為負(fù)數(shù),這說明當(dāng)隨機(jī)變量的分布情況接近于均勻分布時(shí),熵與差分熵最大.
熵值和差分熵值的原函數(shù)和導(dǎo)函數(shù)圖像如圖9、圖10 所示.

Fig.9 Image of entropy (line I)and difference entropy (line II)for binary random variable圖9 二值隨機(jī)變量的熵值(曲線I)和差分熵值(曲線II)的函數(shù)圖像

Fig.10 Image of derivative function of entropy (line I)and difference entropy (line II)of the binary random variable圖10 二值隨機(jī)變量熵值(曲線I)和差分熵值(曲線II)導(dǎo)函數(shù)圖像
可以發(fā)現(xiàn):兩個(gè)導(dǎo)函數(shù)的圖像具有3 個(gè)交點(diǎn),3 個(gè)交點(diǎn)的橫坐標(biāo)大約是0.3,0.5,0.7(此處0.3 和0.7 為近似值),說明在[0.3,0.7]的范圍內(nèi),熵值的變化速率比差分熵值要快;而[0,0.3]以及[0.7,1]的范圍內(nèi),則差分熵值的變化速率更快.
接下來討論熵值和差分熵值的差距,將它們的差分熵值和熵值做差如下:

做出以上差值函數(shù)圖像如圖11 所示.
從圖11 中可以看到,圖像的峰值大約處于p=0.3 和p=0.7 的位置,這兩個(gè)位置也恰好也是熵和差分熵導(dǎo)函數(shù)的交點(diǎn)位置.從總的趨勢上來看,中心部分的差值較大,兩邊則差值較小.這說明隨機(jī)變量的分布情況越接近于均勻分布,差分熵和熵的差距就越大.
通過以上分析,我們可以得到下面的定理.
定理4.關(guān)于離散型隨機(jī)變量X,具有下面的結(jié)論.
(1)X的分布越接近均勻分布,熵值和差分熵值就越大;
(2)X的差分熵值永遠(yuǎn)大于X的熵值;同時(shí),X的隨機(jī)性增大時(shí),熵值和差分熵值的差距也在逐漸增大.在平均分布的附近會(huì)達(dá)到最大值;
(3)如果X的分布接近均勻分布,那么在改變X的概率分布時(shí),熵值比差分熵值對于分布情況變化更加敏感;如果X的分布是傾斜的,不同的取值對應(yīng)的概率差距很大,那么在改變X的概率分布時(shí),差分熵值比熵值對于分布情況的變化更加敏感.

Fig.11 Image of the difference result entropy and difference entropy of binary random variable圖11 二值隨機(jī)變量熵值與信息熵值的差分函數(shù)圖像
本節(jié)描述了差分熵的定義以及相關(guān)的特性.通過上文的分析可知,差分熵會(huì)同時(shí)受到數(shù)據(jù)的數(shù)值特性和分布特性的影響,并在某些情況下,差分熵值對于數(shù)據(jù)特性變化表現(xiàn)出了更高的敏感度.
本節(jié)提出基于差分信息熵的網(wǎng)絡(luò)時(shí)序型隱蔽信道檢測算法.首先需要說明的是:Cabuk 和Gianvecchio 提出的算法均假設(shè)正常數(shù)據(jù)的隨機(jī)性比隱蔽信道數(shù)據(jù)大[21,30],但是筆者認(rèn)為,正常信道的特征取決于實(shí)際的網(wǎng)絡(luò)環(huán)境,如果網(wǎng)絡(luò)通暢,數(shù)據(jù)包的間隔的抖動(dòng)可能會(huì)很小,此時(shí)包間隔數(shù)據(jù)的隨機(jī)性也就會(huì)很小.因此,我們不可以對正常網(wǎng)絡(luò)的數(shù)據(jù)特征進(jìn)行任何的假設(shè),而應(yīng)該通過實(shí)驗(yàn)對正常數(shù)據(jù)進(jìn)行特征提取,然后從待測數(shù)據(jù)中提取特征后,與正常數(shù)據(jù)的特征做比對,決定其中是否包含隱蔽信道.
基于以上的思想,設(shè)計(jì)基于差分信息熵的網(wǎng)絡(luò)時(shí)序型隱蔽信道檢測算法的思路如下.
(1)收集網(wǎng)絡(luò)中包時(shí)間間隔數(shù)據(jù),構(gòu)造時(shí)間間隔序列:{s1,s2,...,sn};
(2)數(shù)據(jù)分類,根據(jù)一定的規(guī)則,將數(shù)據(jù)劃分為m類,記作c1,c2,...,cm,并對每一個(gè)類賦予一個(gè)代表該類數(shù)據(jù)的數(shù)值:v1,v2,...,vm.分類后,同一個(gè)類中的數(shù)據(jù)不加區(qū)別,統(tǒng)一用該類的代表數(shù)值來表示.分類后的序列表示為{t1,t2,...,tn},其中,si∈cj→ti=vj;
(3)將分類后的序列劃分成大小為w的多個(gè)子窗口,如果采集到的數(shù)據(jù)量為n,那么可以劃分的窗口個(gè)數(shù)為,并經(jīng)每個(gè)窗口中的序列記作:{ti,1,ti,2,…,ti,w};
(4)計(jì)算每個(gè)窗口的熵值ENi.統(tǒng)計(jì)窗口中每個(gè)數(shù)值出現(xiàn)的比率,計(jì)算熵值,其中,cnti,j表示檢測窗口i中屬于cj類的數(shù)據(jù)的個(gè)數(shù);
(5)計(jì)算每個(gè)窗口序列的差分序列,記作:{pi,1,pi,2,…,pi,w-1},其中,pi,j=ti,j-ti,j+1;
(6)計(jì)算每個(gè)窗口的差分熵值,記作DENi.根據(jù)上一節(jié)的分析,對原始數(shù)據(jù)劃分m類后,差分運(yùn)算后的數(shù)據(jù)最多有m2-m+1 類,最少則有2m-1 類.這里記差分運(yùn)算后的數(shù)據(jù)類簇個(gè)數(shù)為m′,并將差分值的各個(gè)類簇記作,然后計(jì)算差分熵值,其中,表示檢測窗口i中屬于dj類的差分值的個(gè)數(shù);
(7)將每個(gè)窗口的計(jì)算結(jié)果和正常信道的對應(yīng)結(jié)果EN0以及DEN0比較,根據(jù)給定的偏差值εE和εD,如果|ENi-EN0|≤εE并且|DENi-DEN0|≤εD,說明當(dāng)前檢測窗口的數(shù)據(jù)中沒有隱蔽信道;否則,可以認(rèn)為當(dāng)前檢測窗口的數(shù)據(jù)可能包含隱蔽信道.
以上是算法的基本思路.
本節(jié)說明算法在實(shí)現(xiàn)過程涉及到的一些參數(shù)確定,我們將通過實(shí)驗(yàn)來確定最優(yōu)的參數(shù)設(shè)定方案.通過前文對于算法原理的描述可知,待確定的參數(shù)值有:劃分類簇的個(gè)數(shù)m、每個(gè)類簇的代表值vi、窗口大小w以及正常信道的閾值EN0,DEN0和對應(yīng)的偏差值εE和εD.下文中,我們首先分析正常數(shù)據(jù)的特點(diǎn),然后確定這些參數(shù)值.
我們通過程序?qū)崟r(shí)抓取網(wǎng)絡(luò)數(shù)據(jù)包,統(tǒng)計(jì)包時(shí)間間隔的分布情況.實(shí)驗(yàn)結(jié)果表明:當(dāng)前的實(shí)驗(yàn)室環(huán)境下,網(wǎng)絡(luò)數(shù)據(jù)包的時(shí)間間隔主要分布在(75,1075]范圍內(nèi).這里,為了便于數(shù)據(jù)分析,我們將數(shù)據(jù)包間隔的范圍劃分為40個(gè)長度為25 的子區(qū)間,記作R1,R2,...,Rn,并將每個(gè)區(qū)間內(nèi)數(shù)據(jù)的頻率記作pi.而落在(75,1075]范圍以外的數(shù)據(jù)被認(rèn)為是離群點(diǎn),不作為實(shí)驗(yàn)數(shù)據(jù).統(tǒng)計(jì)落在各個(gè)子區(qū)間內(nèi)的數(shù)據(jù)所占比例,如圖12 所示.

Fig.12 Bar-chart of the packet interval of legitimate channel圖12 正常網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間間隔統(tǒng)計(jì)
接下來,用指數(shù)分布(exponential distribution)來描述正常數(shù)據(jù)包的分布情況,指數(shù)分布的密度函數(shù)如下:

這里涉及到了參數(shù)λ,可以采用一階矩估計(jì)法對參數(shù)λ進(jìn)行估計(jì):

代入我們的實(shí)驗(yàn)數(shù)據(jù),可以得到:λ≈0.0029.
于是,正常數(shù)據(jù)包的時(shí)間間隔分布的密度函數(shù)如下:

至此,前文中所有的分析和說明都是基于離散型的隨機(jī)變量,但是在實(shí)際網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)包的時(shí)間間隔可以看做是一個(gè)連續(xù)型的隨機(jī)變量.為了便于發(fā)現(xiàn)數(shù)據(jù)的特征,簡化數(shù)據(jù)處理過程,我們首先需要對數(shù)據(jù)進(jìn)行離散化,具體方法就是對數(shù)據(jù)進(jìn)行分類,將連續(xù)型的隨機(jī)變量按照取值范圍劃分類簇.數(shù)據(jù)離散化的過程對應(yīng)于第3節(jié)算法執(zhí)行步驟中的步驟(2).
數(shù)據(jù)離散化過程中,劃分類簇的個(gè)數(shù)將會(huì)直接影響后續(xù)算法的處理效果.劃分類簇過少,使得數(shù)據(jù)中的某些特征丟失;而劃分類簇過多,則增加了算法處理的復(fù)雜度,影響檢測效率.顯然,我們知道這樣兩個(gè)事實(shí):劃分的類簇越多,就需要越多的測試數(shù)據(jù)才可以將數(shù)據(jù)中的特征表現(xiàn)出來,對于差分熵而言,最壞情況下,差分結(jié)果的類簇個(gè)數(shù)會(huì)隨著原始數(shù)據(jù)的類簇個(gè)數(shù)的增長而呈現(xiàn)平方式的增長,如果數(shù)據(jù)量不夠,則會(huì)使得計(jì)算得到的差分熵值不準(zhǔn)確.
圖13 給出了對于有5 個(gè)類簇均勻分布的情況下,熵值和差分熵值隨著樣本容量增大時(shí)的變化情況.可以看到:一開始,隨著樣本容量的增大,熵值和差分熵值也在顯著增大;而當(dāng)樣本個(gè)數(shù)大于150 時(shí),熵值開始趨向于穩(wěn)定;當(dāng)樣本個(gè)數(shù)大于950 時(shí),差分熵值也在開始趨向穩(wěn)定.所以可以說:當(dāng)樣本個(gè)數(shù)大于950 時(shí),樣本大小基本不會(huì)影響實(shí)驗(yàn)結(jié)果,此時(shí)的結(jié)果主要取決于數(shù)據(jù)本身的特性.這里,我們稱可以包含全部數(shù)據(jù)特征的最小樣本容量為有效樣本容量(adequate sample size).

Fig.13 Influence of sample size on the entropy and difference entropy (5 bins)圖13 樣本個(gè)數(shù)對于熵值和差分熵值的影響(類簇個(gè)數(shù):5)
表2 記錄了我們通過實(shí)驗(yàn)測試得到的對于不同的類簇個(gè)數(shù)下的有效樣本容量的大小.

Table 2 Adequate sample size of different amount of bins表2 類簇個(gè)數(shù)與有效樣本容量大小
可以看到,劃分的類簇個(gè)數(shù)越多,有效樣本容量也就越大.兼顧檢測效果和檢測效率,我們決定將實(shí)驗(yàn)數(shù)據(jù)劃分為10 個(gè)類簇;同時(shí),窗口大小設(shè)置為1 500.即:m=10,w=1500.
Gianvecchio 在文獻(xiàn)[30]提出了一種數(shù)據(jù)離散化的方式,根據(jù)數(shù)據(jù)包時(shí)間間隔的概率分布劃分類簇,使得數(shù)據(jù)落入每一個(gè)類簇中的概率相等.作者認(rèn)為,這樣劃分類簇的好處是使得程序可以在常數(shù)時(shí)間內(nèi)決定采集到的每一個(gè)數(shù)據(jù)項(xiàng)屬于哪個(gè)類簇.如果將數(shù)據(jù)劃分m類,并用F(x)表示時(shí)間間隔數(shù)據(jù)的分布函數(shù),那么落入每個(gè)類簇的概率為1/m;同時(shí),對于某個(gè)特定的數(shù)值x,可以通過來計(jì)算數(shù)據(jù)落入的類簇.
這里,我們按照正常網(wǎng)絡(luò)中的數(shù)據(jù)分布情況來對數(shù)據(jù)進(jìn)行等概率劃分類簇,類簇個(gè)數(shù)為10,因此落入每個(gè)類簇的概率是10%.我們需要找到正常數(shù)據(jù)對應(yīng)指數(shù)分布的10%,20%,...,90%的分位點(diǎn),來確定每個(gè)類簇的邊界.這樣處理的好處是不管正常信道中的包間隔數(shù)據(jù)的分布情況是怎樣的,數(shù)據(jù)離散化處理后,正常的數(shù)據(jù)分布情況一定是均勻分布,可以統(tǒng)一處理正常數(shù)據(jù)的分布特性.這里確定10 個(gè)類簇的范圍見表3.

Table 3 Binning strategy for data discretization表3 數(shù)據(jù)離散化劃分類簇方案
數(shù)據(jù)離散化后,落入每個(gè)區(qū)間的數(shù)據(jù)均由該區(qū)間的代表數(shù)值來表示.代表數(shù)值通過計(jì)算每個(gè)區(qū)間的平均值得到,對于類簇ci,給定其區(qū)間的左右邊界ai,bi,可以利用下面的式子計(jì)算代表數(shù)值vi:

根據(jù)上文中的參數(shù)設(shè)定,我們可以將算法編程實(shí)現(xiàn),提取正常信道的數(shù)據(jù)特征.這里,我們通過程序?qū)崟r(shí)抓包得到了24 610 個(gè)IP 數(shù)據(jù)包時(shí)間間隔數(shù)據(jù),共可以劃分成16 個(gè)大小為1 500 的檢測窗口.對于每個(gè)窗口的數(shù)據(jù)離散化后,計(jì)算熵值和差分熵值,得到的結(jié)果見表4.

Table 4 Testing result of data from legitimate channel表4 正常信道數(shù)據(jù)的檢測結(jié)果
求得各個(gè)檢測窗口的熵值和差分熵值數(shù)據(jù)后,可以通過計(jì)算這些數(shù)據(jù)的平均值提取正常信道數(shù)據(jù)的特征,確定算法中的參數(shù)EN0和DEN0的值,得到的結(jié)果為:EN0=1.407,DEN0=1.762.
最后確定εE和εD的值.這里,根據(jù)3 倍標(biāo)準(zhǔn)差的準(zhǔn)則,確定它們的值如下:εE=0.831,εD=1.062.
以上是算法實(shí)現(xiàn)過程中的一些參數(shù)設(shè)定.
本節(jié)通過實(shí)驗(yàn)檢驗(yàn)算法的性能和效果.我們通過程序模擬構(gòu)建包含隱蔽信道的異常數(shù)據(jù),然后用我們提出的算法進(jìn)行檢測,統(tǒng)計(jì)檢測隱蔽信道的準(zhǔn)確率.
對于對照實(shí)驗(yàn)參數(shù)的設(shè)定,我們將采用4 種檢測算法作為對照組,分別是Cabuk 提出的ε相似度算法和隨機(jī)性檢測算法、Gianvecchio 提出的CCE 算法以及熵評估算法.這里需要說明的是,熵評估算法是指直接考察待測數(shù)據(jù)的熵值大小來判定待測數(shù)據(jù)中是否包含隱蔽信道(即:計(jì)算待測數(shù)據(jù)的熵值低于指定閾值,則認(rèn)為待測數(shù)據(jù)包含隱蔽信道).Gianvecchio 在其實(shí)驗(yàn)中將熵評估算法作為CCE 算法實(shí)驗(yàn)的對照實(shí)驗(yàn),進(jìn)而說明CCE 算法的先進(jìn)性.在這里,熵評估算法也是我們提出的差分熵算法的一部分,因此,這里也效仿Gianvecchio 的做法,將熵評估算法作為實(shí)驗(yàn)的對照組,驗(yàn)證差分信息熵算法的效果.通過對照實(shí)驗(yàn),評估差分熵在檢測隱蔽信道過程中的作用.利用本文提出的差分熵檢測算法與以上4 種檢測算法對同樣的數(shù)據(jù)進(jìn)行檢測,通過對比檢測結(jié)果,評估本文提出的算法的性能和效果.以上4 種算法的實(shí)現(xiàn)原理前文中已有說明,這里主要說明算法中相關(guān)參數(shù)的設(shè)定.
· 隨機(jī)性檢測
隨機(jī)性檢測算法通過考察待測數(shù)據(jù)標(biāo)準(zhǔn)差變化情況,來判定待測數(shù)據(jù)中是否包含隱蔽信道.Cabuk 在提出該算法時(shí),在2 000 的檢測窗口下,設(shè)定子窗口大小為250 和100 進(jìn)行了實(shí)驗(yàn).而Gianvecchio 在文獻(xiàn)[30]中介紹CCE 算法時(shí),也將隨機(jī)性檢測算法作為對照組,在其實(shí)驗(yàn)中,作者同樣選擇2 000 大小的檢測窗口,以100 為子窗口進(jìn)行了隨機(jī)性檢測算法的對照實(shí)驗(yàn).根據(jù)作者給出的實(shí)驗(yàn)結(jié)果數(shù)據(jù),在當(dāng)前參數(shù)設(shè)定下,隨機(jī)性檢測算法可以對正常數(shù)據(jù)和隱蔽信道數(shù)據(jù)達(dá)到很好的區(qū)分.基于以上因素,我們選擇100 為子窗口大小進(jìn)行隨機(jī)性檢測算法的對照實(shí)驗(yàn).此時(shí),對于正常數(shù)據(jù)的16 個(gè)檢測窗口,每個(gè)檢測窗口數(shù)據(jù)均可以通過算法得到15 個(gè)不同的標(biāo)準(zhǔn)差值,通過計(jì)算任意兩個(gè)標(biāo)準(zhǔn)差值的相似度值,進(jìn)而得到105 個(gè)數(shù)據(jù),計(jì)算這些數(shù)據(jù)的標(biāo)準(zhǔn)差,就是該算法的輸出結(jié)果.通過計(jì)算16 個(gè)檢測窗口結(jié)果的平均值,就可以得到我們實(shí)驗(yàn)中用到的對照閾值.我們通過計(jì)算,得到該閾值大小為0.07,檢測結(jié)果低于該閾值的數(shù)據(jù)均被認(rèn)為包含隱蔽信道.
·ε相似度
Cabuk 在文獻(xiàn)[21]中對于ε相似度算法的測試中,將參數(shù)ε設(shè)定為0.005,0.008,0.01,0.02,0.03 和≥0.1 共6 種不同的值,并將算法檢測的閾值設(shè)定為μ+σ,μ+1.5σ,μ+2σ,Max 共4 種不同的值,其中μ,σ,Max 分別表示ε相似度算法檢測合法數(shù)據(jù)所得結(jié)果的均值、標(biāo)準(zhǔn)差以及最大值.Cabuk 對于上面每一種ε和閾值的組合進(jìn)行了測試.根據(jù)作者給出的實(shí)驗(yàn)結(jié)果,當(dāng)檢測閾值設(shè)定為μ+σ和μ+1.5σ時(shí),對于每一種ε參數(shù)的設(shè)定,檢測效果都比較好.此時(shí),對于隱蔽信道的檢測可以達(dá)到10%以下的漏檢率,對于正常信道的檢測則可以達(dá)到30%以下的誤檢率.我們的實(shí)驗(yàn)設(shè)定參考Cabuk 的實(shí)驗(yàn)過程,將ε參數(shù)設(shè)定為0.02,閾值則設(shè)定為μ+1.5σ.通過對正常數(shù)據(jù)的測試,我們ε相似度算法的對照實(shí)驗(yàn)中的測試閾值設(shè)定為0.973.測試結(jié)果高于此閾值時(shí),被認(rèn)為可能包含隱蔽信道.
· CCE
對于CCE 算法,Gianvecchio 提出了一種基于樹形結(jié)構(gòu)的程序?qū)崿F(xiàn)方式,使得程序時(shí)間復(fù)雜度可以保持在O(n·m·log(Q))水平,同時(shí),空間復(fù)雜度為O(n·m)[30],其中,n,m,Q分別表示測試的數(shù)據(jù)總量、考察的最長序列長度以及數(shù)據(jù)離散化過程中劃分類簇的個(gè)數(shù).我們在前文中已經(jīng)對于數(shù)據(jù)離散化作出說明,這里我們同樣設(shè)定Q值為10;同時(shí),為了兼顧檢測效果和檢測效率,我們設(shè)定考察的最長序列為10.通過對正常數(shù)據(jù)的測試,我們可以得到測試結(jié)果閾值為0.439.檢測結(jié)果低于該閾值的數(shù)據(jù),均被認(rèn)為可能存在隱蔽信道.
· 熵評估算法
熵評估算法直接考察待測數(shù)據(jù)的信息熵值來判定待測數(shù)據(jù)是否包含隱蔽信道.前文中已經(jīng)說明,引入熵評估算法作為當(dāng)前實(shí)驗(yàn)的對照組的目的,是對差分熵在隱蔽信道檢測中所起到的作用進(jìn)行更深入地評估,熵評估算法過程是本文提出的差分熵算法過程的子過程.這里的閾值前文中已經(jīng)給出,大小為1.407,低于該閾值的數(shù)據(jù)均認(rèn)為其中包含隱蔽信道.另外,熵評估算法在檢測過程中同樣需要數(shù)據(jù)離散化的步驟,離散化的過程與差分熵算法使用的離散化過程是相同的,具體步驟前文中已有說明,這里不再贅述.
可見,我們當(dāng)前實(shí)驗(yàn)的網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)包時(shí)間間隔的隨機(jī)性非常小.這一點(diǎn),和Cabuk 以及Gianvecchio提出的“正常數(shù)據(jù)隨機(jī)性比隱蔽信道數(shù)據(jù)高”的假設(shè)是不一致的.正如前文所述,正常信道數(shù)據(jù)的特征由網(wǎng)絡(luò)環(huán)境決定,我們不可以在沒有進(jìn)行實(shí)際測試的情況下,對正常信道數(shù)據(jù)的特征給出任何的假設(shè).
實(shí)驗(yàn)中,我們主要對IPCTC,TRCTC,JitterBug 這3 種類型的時(shí)序型隱蔽信道的數(shù)據(jù)進(jìn)行了檢測,這3 種類型的隱蔽信道的實(shí)現(xiàn)原理前文已有說明.測試數(shù)據(jù)通過編程模擬得到.
· IPCTC
Cabuk 在其IPCTC 隱蔽信道的實(shí)現(xiàn)中,模擬了IPCTC 隱蔽信道的3 種形式:單一時(shí)間間隔、多種時(shí)間間隔、含噪聲.單一時(shí)間間隔的IPCTC 隱蔽信道僅采用了1 個(gè)固定的時(shí)間間隔值,如要發(fā)送比特1,則在該時(shí)間間隔內(nèi)發(fā)送一個(gè)數(shù)據(jù)包,否則,發(fā)送端保持沉默;多種時(shí)間間隔的IPCTC 則采用了多個(gè)不同的時(shí)間間隔的值,發(fā)送端每隔t個(gè)數(shù)據(jù)包就調(diào)整一次發(fā)送的時(shí)間間隔,這里的時(shí)間間隔之間的切換方式可以是輪換也可以是隨機(jī)選擇;第3類隱蔽信道則是在信道中引入了噪聲.在我們的實(shí)驗(yàn)中,共實(shí)現(xiàn)了4 種不同的IPCTC 隱蔽信道,其中:單一時(shí)間間隔的類型實(shí)現(xiàn)了兩種,時(shí)間間隔分別為20ms 和80ms;多個(gè)時(shí)間間隔的類型實(shí)現(xiàn)了2 種,時(shí)間間隔采用{20ms,40ms,60ms}這3 種,時(shí)間間隔的切換方式有輪換切換和隨機(jī)切換兩種方式,切換的頻率為50,即:每隔50 個(gè)數(shù)據(jù)包,就切換一次時(shí)間間隔.對于每一種IPCTC 信道,我們通過程序生成了200 000 條數(shù)據(jù).具體情況見表5.

Table 5 Testing data of IPCTC for experiment表5 IPCTC 隱蔽信道實(shí)驗(yàn)數(shù)據(jù)
· TRCTC
TRCTC 隱蔽信道是IPCTC 的改進(jìn),其發(fā)送數(shù)據(jù)的時(shí)間間隔不再是隨意確定,而是通過對合法數(shù)據(jù)采樣得到.用于發(fā)送比特0 的時(shí)間間隔的集合記作S0,用于發(fā)送比特1 的時(shí)間間隔的集合記作S1.集合S0和S1互不相交,二者的總和就是合法信道中所有出現(xiàn)過的時(shí)間間隔值.這里主要研究了基于不同的比例劃分下指定S0和S1集合構(gòu)成的TRCTC 隱蔽信道.根據(jù)S0在全集中所占的比例,我們構(gòu)建了3 條不同的TRCTC 隱蔽信道,同樣對于每一條信道,通過程序生成200 000 條數(shù)據(jù).具體情況見表6.

Table 6 Testing data of TRCTC for experiment表6 TRCTC 隱蔽信道實(shí)驗(yàn)數(shù)據(jù)
表中,S0和S1集合中的時(shí)間間隔數(shù)據(jù)通過這樣的方式得到:首先統(tǒng)計(jì)正常信道中出現(xiàn)的時(shí)間間隔值以及每個(gè)值出現(xiàn)的頻率,然后根據(jù)規(guī)定的比例,選擇適當(dāng)?shù)臄?shù)值構(gòu)成集合S0,剩余的數(shù)值構(gòu)成S1.
· JitterBug
JitterBug 隱蔽信道的數(shù)據(jù)通過修改正常信道的數(shù)據(jù)得到.其中,時(shí)間參數(shù)ω的選擇直接決定了信道的效果.本文提出差分信息熵檢測算法的一個(gè)目的就是彌補(bǔ)CCE 算法在檢測JitterBug 隱蔽信道時(shí)的不足.JitterBug 隱蔽信道的檢測是我們實(shí)驗(yàn)研究的主要內(nèi)容.下文中,我們?nèi)ˇ刂禐?0,20,30,...,1000 共100 個(gè)不同的值,構(gòu)建了100條不同的JitterBug 隱蔽信道.同樣地,對于每一條隱蔽信道,我們會(huì)通過程序生成200 000 條數(shù)據(jù).
與差分熵算法的參數(shù)設(shè)定相同,實(shí)驗(yàn)中作為對照實(shí)驗(yàn)的4 種算法在檢測時(shí)也將檢測窗口確定為1 500,因此,200 000 條數(shù)據(jù)就可以構(gòu)成133 個(gè)檢測窗口.
5.3.1 IPCTC 隱蔽信道檢測實(shí)驗(yàn)結(jié)果
表7~表11 分別顯示了ε-相似度算法、CCE 算法、隨機(jī)性檢測算法、熵評估算法以及差分熵算法對于IPCTC隱蔽信道的檢測效果.表中給出了算法檢測133 個(gè)檢測窗口數(shù)據(jù)所得結(jié)果的平均值和標(biāo)準(zhǔn)差以及每個(gè)算法判斷規(guī)則下的檢測率.表7 給出了各個(gè)窗口中小于ε參數(shù)的相似度值比例的均值和標(biāo)準(zhǔn)差;表8 給出了CCE 算法檢測得到的每個(gè)窗口的熵率值的均值和標(biāo)準(zhǔn)差;表9 給出了每個(gè)窗口的隨機(jī)性檢測結(jié)果的均值和標(biāo)準(zhǔn)差;表10 給出了各個(gè)窗口熵值的均值和標(biāo)準(zhǔn)差;最后,表11 給出了差分熵檢測算法檢測得到的熵值和差分熵值的均值和標(biāo)準(zhǔn)差.

Table 7 Testing result of ε-similarity algorithm in IPCTC data表7 IPCTC 隱蔽信道檢測實(shí)驗(yàn)ε相似度算法檢測結(jié)果

Table 8 Testing result of CCE algorithm in IPCTC data表8 IPCTC 隱蔽信道檢測實(shí)驗(yàn)CCE 算法檢測結(jié)果

Table 9 Testing result of randomness testing algorithm in IPCTC data表9 IPCTC 隱蔽信道檢測實(shí)驗(yàn)隨機(jī)性檢測算法檢測結(jié)果

Table 10 Testing result of entropy testing algorithm in IPCTC data表10 IPCTC 隱蔽信道檢測實(shí)驗(yàn)熵評估算法檢測結(jié)果

Table 11 Testing result of difference entropy algorithm in IPCTC data表11 IPCTC 隱蔽信道檢測實(shí)驗(yàn)差分熵算法檢測結(jié)果
可以看到,差分熵算法的檢測效果明顯好于ε相似度算法、隨機(jī)性檢測算法以及CCE 算法.主要原因在于其他兩種算法都是假設(shè)正常數(shù)據(jù)的隨機(jī)性比隱蔽信道數(shù)據(jù)高,因此兩種算法的策略都是檢測結(jié)果低于閾值時(shí)判定待測數(shù)據(jù)中包含隱蔽信道.我們通過實(shí)驗(yàn)證明事實(shí)并非如此,在較為流暢的網(wǎng)絡(luò)環(huán)境下,信道中的數(shù)據(jù)流動(dòng)相對穩(wěn)定,此時(shí)信道中的數(shù)據(jù)包傳輸速率也比較均勻,數(shù)據(jù)包的時(shí)間間隔也基本上為恒定值,隨機(jī)性較小.本文提出的算法不再對正常信道的特征做出假設(shè),將算法處理的結(jié)果作為信道的一種特征,通過待測數(shù)據(jù)和正常數(shù)據(jù)特征的差異程度來判定待測數(shù)據(jù)是否異常,而并非通過量化的大小關(guān)系來確定是否包含隱蔽信道,因此檢測的準(zhǔn)確率較高.
另外,從表中數(shù)據(jù)還可以看到:盡管熵評估算法是本文提出的差分熵算法的子過程,但是熵評估算法的檢測效果和差分熵算法有很大的差別.我們通過實(shí)驗(yàn)發(fā)現(xiàn):僅僅通過評估信息熵值,對于正常數(shù)據(jù)和隱蔽信道數(shù)據(jù)已經(jīng)可以達(dá)到很好的區(qū)分能力.然而,Gianvecchio 在文獻(xiàn)[30]中描述的熵評估算法依然采用比較閾值的方式來決定檢測結(jié)果,基于作者“低于閾值的數(shù)據(jù)包含隱蔽信道”的思路,導(dǎo)致熵評估算法的檢測準(zhǔn)確率很低.實(shí)驗(yàn)中,我們還將熵評估算法進(jìn)行了改進(jìn),將判定數(shù)據(jù)是否包含隱蔽信道的標(biāo)準(zhǔn)修改為|ENi-EN0|≤εE,即采用差分熵算法的部分判定標(biāo)準(zhǔn),此時(shí),熵評估算法對于4 組IPCTC 隱蔽信道的檢測率分貝為5.03%,95.72%,92.30%以及93.43%.該結(jié)果同樣低于差分熵算法,主要原因是信息熵對于待檢測數(shù)據(jù)的分布特性的評估比較充分,而對于待測數(shù)據(jù)的數(shù)值特性的評估能力比較欠缺.則也說明了采用差分信息熵在隱蔽信道檢測過程中作為評估標(biāo)準(zhǔn)的必要性.
從實(shí)驗(yàn)數(shù)據(jù)可以看出,當(dāng)選擇單一的時(shí)間間隔,并且時(shí)間間隔較小時(shí),產(chǎn)生的隱蔽信道的數(shù)據(jù)特征會(huì)和正常信道的數(shù)據(jù)特征很相似,檢測的難度就會(huì)加大.對于IPCTC-1 這組數(shù)據(jù),3 種檢測算法的效果都不太理想.當(dāng)增加IPCTC 信道中的傳輸時(shí)間間隔,或者引入多個(gè)可選的時(shí)間間隔時(shí),數(shù)據(jù)的隨機(jī)性會(huì)顯著提高.Cabuk 認(rèn)為,引入多個(gè)時(shí)間間隔可使IPCTC 隱蔽信道的隱蔽性增強(qiáng)[21],這個(gè)結(jié)論的依據(jù)是假定正常數(shù)據(jù)隨機(jī)性較高.通過上文的實(shí)驗(yàn)結(jié)果可以看出:3 個(gè)算法對于IPCTC-3 和IPCTC-4 這兩組數(shù)據(jù)的檢測準(zhǔn)確率反而比前面兩組數(shù)據(jù)更高一些.
5.3.2 TRCTC 隱蔽信道檢測實(shí)驗(yàn)結(jié)果
表12~表16 總結(jié)了TRCTC 隱蔽信道檢測實(shí)驗(yàn)的結(jié)果.

Table 12 Testing result of ε-similarity algorithm in TRCTC data表12 TRCTC 隱蔽信道檢測實(shí)驗(yàn)ε相似度算法檢測結(jié)果

Table 13 Testing result of CCE algorithm in TRCTC data表13 TRCTC 隱蔽信道檢測實(shí)驗(yàn)CCE 算法檢測結(jié)果

Table 14 Testing result of randomness testing algorithm in TRCTC data表14 TRCTC 隱蔽信道檢測實(shí)驗(yàn)隨機(jī)性檢測算法檢測結(jié)果

Table 15 Testing result of entropy testing algorithm in TRCTC data表15 TRCTC 隱蔽信道檢測實(shí)驗(yàn)熵評估算法檢測結(jié)果

Table 16 Testing result of difference entropy algorithm in TRCTC data表16 TRCTC 隱蔽信道檢測實(shí)驗(yàn)差分熵算法檢測結(jié)果
TRCTC 采用的數(shù)據(jù)包時(shí)間間隔來自正常數(shù)據(jù)的采樣結(jié)果,因此在數(shù)值特征上,TRCTC 數(shù)據(jù)和正常信道數(shù)據(jù)有類似之處.但是TRCTC 的主要問題在于沒有考慮到每個(gè)時(shí)間間隔數(shù)值在正常信道中的分布情況.實(shí)驗(yàn)中,我們根據(jù)集合S0和S1中的數(shù)據(jù)在正常信道中的比例構(gòu)建了3 組TRCTC 隱蔽信道數(shù)據(jù),從實(shí)驗(yàn)結(jié)果中可以看出:構(gòu)建集合S0和S1使得正常信道中的數(shù)據(jù)落入兩個(gè)集合的概率相等時(shí),數(shù)據(jù)的特征和正常信道的數(shù)據(jù)最相似,所以相比另外兩組數(shù)據(jù),5 個(gè)算法對于TRCTC-3 這組數(shù)據(jù)的檢測結(jié)果都更接近于正常信道.但是其結(jié)果依然和正常數(shù)據(jù)有較大的差異,原因在于S0和S1的二類劃分僅僅是一種粗粒度的劃分,同在S0集合中的數(shù)據(jù)在正常數(shù)據(jù)中出現(xiàn)的概率也可能是不同的,但TRCTC 沒有在構(gòu)建信道時(shí)沒有考慮到這一點(diǎn),因此在統(tǒng)計(jì)特性上依然會(huì)表現(xiàn)出和正常數(shù)據(jù)較大的差異.
同樣可以很明顯地看出,差分熵檢測算法在TRCTC 隱蔽信道的檢測上有非常好的效果.對于ε相似度算法和CCE 算法,TRCTC 隱蔽信道的數(shù)據(jù)也表現(xiàn)出了和正常數(shù)據(jù)不同的特征,檢測結(jié)果表明,TRCTC 數(shù)據(jù)的隨機(jī)性要比正常數(shù)據(jù)高.這和兩個(gè)算法中“隱蔽信道數(shù)據(jù)的隨機(jī)性低于正常信道數(shù)據(jù)”的思想是相悖的,因此檢測的效果不理想.
觀察表14 還可以發(fā)現(xiàn),隨機(jī)性檢測算法對于3 種TRCTC 隱蔽信道的檢測結(jié)果和正常信道非常接近.這說明隨機(jī)性檢測算法對正常信道和TRCTC 隱蔽信道的區(qū)分能力很低,而檢測結(jié)果卻好于該算法在IPCTC 隱蔽信道的實(shí)驗(yàn)效果,我們通過實(shí)驗(yàn)發(fā)現(xiàn):就區(qū)分能力而言,隨機(jī)性檢測算法對于IPCTC 隱蔽信道的識別能力更高,然而,基于正常信道隨機(jī)性高的假設(shè)使得該算法在IPCTC 數(shù)據(jù)中表現(xiàn)較差.這也再一次說明了在沒有進(jìn)行實(shí)驗(yàn)驗(yàn)證的情況下,對于正常信道數(shù)據(jù)情況進(jìn)行假設(shè)的做法是不可取的.
對于熵評估算法,這里可以得到和IPCTC 實(shí)驗(yàn)類似的結(jié)論.由于我們的實(shí)驗(yàn)環(huán)境中正常信道的隨機(jī)性很低,我們的實(shí)驗(yàn)結(jié)果中,正常信道的熵值低于隱蔽信道數(shù)據(jù),因此熵評估算法的檢測率很低.通過我們改進(jìn)后的熵評估算法得到的檢測率為92.43%,95.25%,97.32,同樣低于差分信息熵算法.
5.3.3 JitterBug 隱蔽信道檢測實(shí)驗(yàn)結(jié)果
IPCTC 將要傳輸?shù)碾[秘信息轉(zhuǎn)換為指定的時(shí)間區(qū)間內(nèi)是否發(fā)送數(shù)據(jù)包的事件,IPCTC 產(chǎn)生的數(shù)據(jù)包間隔完全沒有參照正常數(shù)據(jù),因此得到數(shù)據(jù)的可能會(huì)呈現(xiàn)出和正常數(shù)據(jù)完全不同的特征;TRCTC 數(shù)據(jù)中的數(shù)值通過正常數(shù)據(jù)采樣得到,因此TRCTC 的數(shù)據(jù)和正常數(shù)據(jù)具有相似的數(shù)值特性,但是TRCTC 在構(gòu)建信道過程中忽視了通過采樣得到的每個(gè)數(shù)值的出現(xiàn)概率,這將導(dǎo)致TRCTC 的數(shù)據(jù)呈現(xiàn)出不同于正常數(shù)據(jù)的統(tǒng)計(jì)特性.所以,IPCTC 和TRCTC 的抗檢測能力都比較差.
JitterBug 隱蔽信道通過對正常數(shù)據(jù)包的時(shí)間間隔做出細(xì)微的修改來編碼隱秘信息.選擇合適的參數(shù)ω的值,就可以盡可能小地減少構(gòu)建隱蔽信道過程中對于正常數(shù)據(jù)統(tǒng)計(jì)特性的影響.因此,JitterBug 隱蔽信道具有比IPCTC 和TRCTC 更強(qiáng)的抗檢測性.但是由于JitterBug 的數(shù)據(jù)包間隔均為ω/2 的倍數(shù),因此JitterBug 產(chǎn)生的包間隔數(shù)據(jù)具有較為明顯數(shù)值特性,因此就可以利用這樣的特征來檢測JitterBug 隱蔽信道.
對JitterBug 隱蔽信道的檢測是我們重點(diǎn)要研究的內(nèi)容.實(shí)驗(yàn)中,我們?yōu)閰?shù)ω賦予不同的值,得到了100 組不同的JitterBug 隱蔽信道數(shù)據(jù),然后比較3 個(gè)算法對這100 組數(shù)據(jù)的檢測效果.
ε相似度算法的檢測結(jié)果如圖14 所示.
從圖中可以看出,隨著參數(shù)ω值的增大,小于ε參數(shù)值的相似度值比例也在逐漸增加;并且在ω處于[10,340]范圍內(nèi)時(shí),ω的變化會(huì)顯著影響ε相似度算法的檢測結(jié)果.產(chǎn)生該現(xiàn)象的主要原因是:當(dāng)ω的取值較小時(shí),得到的JitterBug 數(shù)據(jù)的特征主要依賴于構(gòu)建該隱蔽信道的原數(shù)據(jù)的特征;隨著ω值的增大,JitterBug 的數(shù)據(jù)特征將同時(shí)受到ω值和原數(shù)據(jù)特征的影響;而當(dāng)ω值繼續(xù)增大時(shí),原數(shù)據(jù)特征對于產(chǎn)生的JitterBug 數(shù)據(jù)的影響在逐漸減弱,因?yàn)楦蟮摩刂狄馕吨紨?shù)據(jù)中更多的不同的值在構(gòu)建JitterBug 過程中映射到了同一個(gè)值,因此,數(shù)據(jù)的隨機(jī)性在下降,數(shù)據(jù)之間的相似度也就逐漸在下降,于是就有更多的相似度值小于參數(shù)ε.

Fig.14 Results of ε-similarity algorithm in JitterBug圖14 JitterBug 隱蔽信道檢測實(shí)驗(yàn)ε相似度算法檢測結(jié)果
基于正常信道檢測得到的閾值為0.973、高于該閾值的檢測結(jié)果被認(rèn)為包含隱蔽信道的思路,我們可以看到:當(dāng)ω值大于50 時(shí),ε相似度算法可有效地檢測出JitterBug 隱蔽信道;ε值小于50 時(shí),算法對于JitterBug 隱蔽信道的識別能力很低.然而基于常理推斷,ω值很大時(shí),隱蔽信道數(shù)據(jù)的異常特征更加明顯.因此,過大的ω構(gòu)建的隱蔽信道實(shí)用性并不強(qiáng),我們更關(guān)注算法對于ω值較小時(shí)生成的JitterBug 隱信道的檢測效果.
隨機(jī)性檢測算法對于JitterBug 隱蔽信道的檢測結(jié)果如圖15 所示.

Fig.15 Results of randomness testing algorithm in JitterBug圖15 JitterBug 隱蔽信道檢測實(shí)驗(yàn)隨機(jī)性檢測結(jié)果
從實(shí)驗(yàn)結(jié)果中可以看出:隨著ω值的增大,隨機(jī)性檢測算法的檢測結(jié)果在逐漸減小.然而通過觀察實(shí)驗(yàn)結(jié)果,當(dāng)ω取值為1 000 時(shí),實(shí)驗(yàn)結(jié)果取到最小值,然而其值仍然大于檢測閾值0.07.這充分說明隨機(jī)性檢測算法對于JitterBug 隱蔽信道的檢測能力不足.事實(shí)上,當(dāng)ω值很大時(shí),隨機(jī)性檢測算法對于正常數(shù)據(jù)和JitterBug 隱蔽信道數(shù)據(jù)的識別率很高.而在實(shí)際應(yīng)用中,過大的ω值會(huì)減慢JitterBug 隱蔽信道的傳輸速率,同時(shí)也更有可能暴露其異常數(shù)據(jù)的特征,因此,過大的ω參數(shù)設(shè)定下生成的JitterBug 隱蔽信道并不實(shí)用;較小的ω參數(shù)值生成的JitterBug隱蔽信道同時(shí)具備高傳輸速率和高隱蔽性的特征,隨機(jī)性檢測算法對于這樣的JitterBug 數(shù)據(jù)的識別能力是可觀的.然而,由于算法定義小于閾值的數(shù)據(jù)為隱蔽信道數(shù)據(jù),這就為算法識別隱蔽信道數(shù)據(jù)造成了誤導(dǎo),這里再一次證明了正常數(shù)據(jù)隨機(jī)性高的假設(shè)是不合理的.
圖16、圖17 分別描述了CCE 算法和差分熵算法對于JitterBug 隱蔽信道的檢測結(jié)果.

Fig.16 Results of CCE algorithm in JitterBug圖16 JitterBug 隱蔽信道檢測實(shí)驗(yàn)CCE 算法檢測結(jié)果

Fig.17 Results of difference entropy algorithm in JitterBug圖17 JitterBug 隱蔽信道檢測實(shí)驗(yàn)差分熵算法檢測結(jié)果
可以看到:對于CCE 算法得到的熵率值以及差分熵算法得到的熵值和差分熵值,三者圖像的形狀很相似.產(chǎn)生此結(jié)果的原因可能是JitterBug 的數(shù)據(jù)是通過修改正常數(shù)據(jù)得到的,因此其分布特征會(huì)依賴于正常數(shù)據(jù)的分布特征.而實(shí)驗(yàn)中我們發(fā)現(xiàn),正常數(shù)據(jù)的隨機(jī)性較低,根據(jù)前文的分析,數(shù)據(jù)的隨機(jī)性增大時(shí),差分熵和熵值的差別也在逐漸增大,因此數(shù)據(jù)的隨機(jī)性較小時(shí),差分熵值和熵值就會(huì)有較為相似的結(jié)果.
我們還可以從圖像中看出,當(dāng)參數(shù)ω大于100 時(shí),CCE 算法和差分熵算法得到的結(jié)果都在隨著ω的增加而逐漸下降;但相比差分熵值,當(dāng)ω參數(shù)的值增大時(shí),CCE 算法得到的熵率并未出現(xiàn)很明顯的下降趨勢.這說明差分熵值對于數(shù)據(jù)特征的變化更為敏感,這也意味著差分熵算法的靈敏度更高一些.
關(guān)于熵評估算法檢測JitterBug 隱蔽信道的實(shí)驗(yàn)情況,其結(jié)果在圖16 中已經(jīng)有所呈現(xiàn),圖中的曲線II 即為不同ω參數(shù)設(shè)定下的熵值.通過圖像可以看到:類似于前面隨機(jī)性檢測算法的實(shí)驗(yàn)結(jié)果,雖然隨著ω參數(shù)的增大,檢測結(jié)果在逐漸減小,當(dāng)ω參數(shù)大于300 后,熵值結(jié)果將低于我們的閾值1.40,此時(shí)熵評估算法對于JitterBug 隱蔽信道的檢測效果比較好.然而,前文中已經(jīng)說明,過大的ω值構(gòu)建的JitterBug 隱蔽信道的實(shí)用性并不強(qiáng).因此,對于這些數(shù)據(jù)檢測效果好并沒有太大的意義.因此,Gianvecchio 提出的熵評估算法對于JitterBug 隱蔽信道的檢測能力比較弱.而改變熵評估算法的評定標(biāo)準(zhǔn)為|ENi-EN0|≤εE后,所有的實(shí)驗(yàn)結(jié)果均會(huì)落在EN0±εE的范圍內(nèi).根據(jù)算法的定義,這意味著所有的數(shù)據(jù)均會(huì)被判定為正常數(shù)據(jù),這說明改進(jìn)判定規(guī)則后的熵評估算法依然無法有效地檢測JitterBug 隱蔽信道.
最后,根據(jù)每個(gè)算法判定是否包含隱蔽信道的準(zhǔn)則,統(tǒng)計(jì)每個(gè)算法的檢測準(zhǔn)確率,如圖18 所示.

Fig.18 Detecting rate of JitterBug covert channel圖18 JitterBug 隱蔽信道檢測率
從圖中可以看到:ω值大于50 時(shí),ε相似度算法檢測效果較好;ω值在60~190 的范圍內(nèi),差分熵檢測算法表現(xiàn)出了較好的檢測效果;ω值在0~60 范圍內(nèi),CCE 算法的檢測效果較好;而當(dāng)ω大于300 后,熵評估算法效果很好.
當(dāng)ω值大于200 時(shí),CCE 算法和差分熵算法的檢測率為0.產(chǎn)生該現(xiàn)象的主要原因是:當(dāng)ω值遠(yuǎn)遠(yuǎn)大于正常數(shù)據(jù)中的數(shù)值時(shí),得到的JitterBug 數(shù)據(jù)中的數(shù)值有很大的概率會(huì)落在原始數(shù)據(jù)的范圍之外,此時(shí)再進(jìn)行數(shù)據(jù)離散化時(shí),就有很大的概率將所有的數(shù)據(jù)劃分到同一個(gè)類簇中,于是得到的數(shù)據(jù)將會(huì)是常數(shù)序列.就這一點(diǎn)而言,數(shù)據(jù)離散化的過程會(huì)使得原始數(shù)據(jù)的主要特征丟失,因而導(dǎo)致檢測算法失效.這也說明算法的的實(shí)現(xiàn)過程中還有一些問題,有待改進(jìn).
以上實(shí)驗(yàn)證明,差分熵檢測算法在檢測IPCTC,TRCTC 以及JitterBug 隱蔽信道方面表現(xiàn)出了比ε相似度算法、隨機(jī)性檢測算法以及CCE 算法更好的效果.差分熵檢測技術(shù)同時(shí)考察了待測數(shù)據(jù)的數(shù)值特性和分布特性,檢測指標(biāo)更加嚴(yán)格,能更深入地挖掘數(shù)據(jù)中存在的特征.對于JitterBug 隱蔽信道,差分熵檢測技術(shù)可以找到其數(shù)據(jù)中不同于正常數(shù)據(jù)的數(shù)值特性,從而達(dá)到較好的檢測效果.相比之下,ε相似度算法和隨機(jī)性檢測算法考察了數(shù)據(jù)的數(shù)值特性,而數(shù)據(jù)的分布特性在算法對數(shù)據(jù)進(jìn)行排序時(shí)和計(jì)算標(biāo)準(zhǔn)查過程中已經(jīng)造成了部分丟失;CCE算法和熵評估算法則主要考察了數(shù)據(jù)的分布特性,忽視了數(shù)據(jù)的數(shù)值特性.因此,這4 種算法在檢測JitterBug 中效果不太理想.而熵評估算法那和ε相似度算法雖然在ω取較大值是表現(xiàn)出很好的效果,但是對于JitterBug 隱蔽信道的檢測,我們更關(guān)注ω取較小值是的情況.
本文基于前人的研究成果,提出了一種基于差分信息熵的網(wǎng)絡(luò)時(shí)序型隱蔽信道檢測技術(shù).文中首先給出了差分信息熵的概念;然后,通過理論分析總結(jié)了一些差分信息熵所具備的性質(zhì);然后,提出基于差分信息熵的網(wǎng)絡(luò)時(shí)序型隱蔽信道檢測算法,并通過實(shí)驗(yàn)證明算法在IPCTC,TRCTC 和JitterBug 隱蔽信道的檢測上具有較好的效果.本文所涉及的研究工作還存在一些問題,這也是今后研究工作的主要方向.
(1)對于差分信息熵的研究,目前主要基于離散型隨機(jī)變量.網(wǎng)絡(luò)數(shù)據(jù)包的時(shí)間間隔數(shù)據(jù)從某種程度上可以看作是連續(xù)型的隨機(jī)變量,文中涉及到的數(shù)據(jù)離散化處理將連續(xù)型隨機(jī)變量轉(zhuǎn)化為離散型,但從實(shí)驗(yàn)結(jié)果也可以看到,該處理步驟會(huì)使得原始數(shù)據(jù)中的部分?jǐn)?shù)值特性和分布特性丟失,使得檢測結(jié)果產(chǎn)生誤差;
(2)文中對于差分信息熵的部分理論僅僅給出了不完全的分析,更嚴(yán)密、更準(zhǔn)確的分析結(jié)果還有待研究;
(3)實(shí)驗(yàn)測試了新算法對于IPCTC,TRCTC 和JitterBug 這3 種隱蔽信道的檢測效果,而對于其他類型的隱蔽信道的效果還需要更多的研究工作.