王婷+馬繼先+劉英杰
摘要:進(jìn)入二十一世紀(jì)以來(lái),我國(guó)海上探測(cè)能力進(jìn)一步增強(qiáng),測(cè)量船與指揮部,以及測(cè)量船相互之間的信息交流,相互合作也日益頻繁,為了保證所傳輸?shù)男畔⒉槐徊环ǚ肿永靡约皣?guó)外的間諜機(jī)構(gòu)所探知,因此采取合適的隱寫(xiě)術(shù)對(duì)信息進(jìn)行加密顯得尤為重要。同時(shí),在截獲了不法分子的情報(bào)之后進(jìn)行解密以便采取相應(yīng)的措施也是一項(xiàng)艱巨的任務(wù)。因此,本文采取了Bitfield消息中的隱蔽通信檢測(cè)算法設(shè)計(jì)與軟件開(kāi)發(fā)技術(shù)對(duì)信息進(jìn)行隱蔽以及檢測(cè)破譯。應(yīng)用本文中提出的方法,可以很好地區(qū)分針對(duì)矩陣編碼的bitfield消息隱蔽通信中的正常數(shù)據(jù)和含密數(shù)據(jù)。
關(guān)鍵詞:測(cè)量船;隱蔽通信;檢測(cè)算法
中圖分類號(hào):U665.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006—7973(2018)2-0049-05
BitTorrent網(wǎng)絡(luò)是P2P網(wǎng)絡(luò)的典型代表,它運(yùn)行的是BitTorrent協(xié)議。在中國(guó),它的使用率相對(duì)較大。它在具有P2P網(wǎng)絡(luò)的本身特色的基礎(chǔ)上,還有著“連接越多,下載越快”的特點(diǎn)。BitTorrent網(wǎng)絡(luò)協(xié)議(簡(jiǎn)稱BT協(xié)議)其實(shí)是一種發(fā)布文件的協(xié)議,它基于的是HTTP的協(xié)議。BT協(xié)議識(shí)別內(nèi)容最關(guān)鍵的是依賴URL,另外,它還可以和Web進(jìn)行無(wú)縫交接。Ben coding編碼,Torrent文件格式,節(jié)點(diǎn)和Tracker服務(wù)器的通信協(xié)議以及節(jié)點(diǎn)之間的通信協(xié)議都是BitTorrent協(xié)議的重要組成部分。在BitTorrent網(wǎng)絡(luò)中,發(fā)布和共享是文件共享最主要的兩個(gè)步驟。本文研究重點(diǎn)是針對(duì)節(jié)點(diǎn)間通信的數(shù)據(jù)消息——Bitfield消息的隱蔽通信算法及其檢測(cè)。通過(guò)與矩陣編碼技術(shù)融合可以提高針對(duì)于Bitfield信息的隱蔽通信算法的嵌入效率。矩陣編碼技術(shù)在F5密寫(xiě)算法后開(kāi)始嶄露頭角。在矩陣編碼技術(shù)的基礎(chǔ)上,通過(guò)修改1個(gè)單位的信息把更多的秘密文本存放進(jìn)去。最少地更改原先的數(shù)據(jù),降低修改數(shù)據(jù)對(duì)BitTorrent功能造成的影響,提升嵌入效率,從而提高了該方法的隱蔽性。
網(wǎng)絡(luò)隱寫(xiě)作為一種隱蔽通信方式,利用合法的數(shù)據(jù)流作為載體在網(wǎng)絡(luò)中傳遞秘密文本。測(cè)量船通過(guò)利用網(wǎng)絡(luò)隱信道進(jìn)行隱秘通信,安全地傳遞重要信息。但同時(shí),網(wǎng)絡(luò)隱寫(xiě)也會(huì)被不法組織和個(gè)人利用,以傳遞核心信息,威脅國(guó)家安全。因此,檢測(cè)網(wǎng)絡(luò)隱寫(xiě)的存在,防止危害發(fā)生,是至關(guān)重要的環(huán)節(jié)。隱寫(xiě)的檢測(cè)技術(shù)作為網(wǎng)絡(luò)安全保護(hù)方面內(nèi)的核心技術(shù),引發(fā)研究熱潮,而且目前為止已經(jīng)取得了不少的研究成果。但是目前還沒(méi)有公開(kāi)文獻(xiàn)給出其檢測(cè)方法。
1 Bencoding 編碼
Bencoding編碼在BT協(xié)議中使用率很高。在BitTorrent早先開(kāi)發(fā)的時(shí)候?qū)encoding定義為它的編解碼標(biāo)準(zhǔn)。因?yàn)锽itTorrent客戶端的開(kāi)發(fā)語(yǔ)言是Python語(yǔ)言,所以Python自帶的數(shù)據(jù)結(jié)構(gòu),列表和字典標(biāo)準(zhǔn)在Bencoding里全部包含。整數(shù)、字符串、列表以及字典都能夠進(jìn)行Bencoding編碼,它們編碼之后轉(zhuǎn)化為字符串,這樣有利于在網(wǎng)絡(luò)上面?zhèn)魉汀?/p>
在Bencoding內(nèi)整數(shù)可以通過(guò)i
2 矩陣編碼技術(shù)概述
從F5密寫(xiě)計(jì)技術(shù),矩陣編碼技術(shù)逐漸進(jìn)入大眾視野。在F4密寫(xiě)的基礎(chǔ)上增添矩陣編碼技術(shù)和混洗技術(shù)就形成了F5密寫(xiě)技術(shù),它很大程度上提升了信息隱藏技術(shù)的可靠性,融入矩陣編碼的首要目的是存放更多的秘密文本。將一個(gè)單位秘密文本嵌入到載體信息中會(huì)有百分之五十的可能更改初始數(shù)據(jù),也有百分之五十的可能不更改初始數(shù)據(jù)。換言之,每更改一次數(shù)據(jù)都可以存放兩個(gè)單位的秘密文本。與矩陣編碼技術(shù)融合必然可以把更多的秘密文本存放進(jìn)去,也就是說(shuō),最理想的情況下,可以達(dá)到只更改一個(gè)單位初始文本而存放k單位隱秘文本的效果。
當(dāng)k>2時(shí),把k個(gè)單位秘密文本存放到2k-1個(gè)初始數(shù)據(jù)負(fù)載中,這是矩陣編碼的通用形式,此時(shí)的載體數(shù)據(jù)使用情況如下
嵌入前,倘若上面的式子全部滿足,那么就不用改動(dòng)。倘若存在等式不滿足,就需要找到對(duì)應(yīng)于上式的初始數(shù)據(jù),并改動(dòng)它們,使三個(gè)式子全部成立。倘若式(2.11)和式(2.13)不成立,找出它對(duì)應(yīng)的原始數(shù)據(jù)a5(表2-1中a5下面的例子里有叉的位置對(duì)應(yīng)于x1和x3),所以只需要改動(dòng)a5。由于a5在式(2.11)與式(2.13)中出現(xiàn),所以改動(dòng)a5可以使它們從不成立變?yōu)槌闪?;但是在式?.12)沒(méi)有a5中,因此改動(dòng)a5并不足以更改式(2.12)的情況。因此當(dāng)k=3時(shí),矩陣編碼的載體使用情況如下
3 基于Bitfield的信息隱藏算法
利用BitTorrent網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)之間通信的Bitfield消息來(lái)進(jìn)行的信息隱藏就是基于Bitfield的信息隱藏算法,這個(gè)算法隱蔽性良好,且容易被發(fā)現(xiàn)。本節(jié)將系統(tǒng)地介紹基于Bitfield的信息隱藏算法的隱藏原理,隱藏算法和提取算法。
3.1隱藏算法
規(guī)則1嵌入秘密文本時(shí),與矩陣編碼融合,首先利用式(2.7)將原始數(shù)據(jù)的序號(hào)按二進(jìn)制編碼,得到bi,j,其中bi,j的取值設(shè)置成0或1。第二步,利用式(2.8)計(jì)算cj,其中式2.8)中ai為等候存放文本的Bitfield消息負(fù)載的第i位,x1,x2…xk是欲嵌入的秘密文本。最后,利用式(2.9)計(jì)算C的值,倘若C=0,則不作任何改動(dòng);否則改動(dòng)ac。
為簡(jiǎn)便起見(jiàn),在隱藏算法中,令Encrypt()表示預(yù)處理加密秘密文本M為S的函數(shù)(S=x1,x2…xk),Embed()是按照規(guī)則1將S嵌入載體的隱藏函數(shù)。
下面給出隱藏算法的主要步驟:
輸入:信息載體Bitfield消息B,待隱藏的秘密文本M,密鑰k。
輸出:隱藏信息后的Bitfield消息B*。
步驟:Step1:S=Encrypt(M,k),并計(jì)算|S|;
Step2:計(jì)算Bitfield消息負(fù)載的長(zhǎng)度L;
Step3:If L<2|S|-1
Step4:輸出“嵌入失?。ㄐ畔⑦^(guò)長(zhǎng))”
Else
Step5:Embed(S);
Step6:輸出B*
隱秘文本M在節(jié)點(diǎn)獲取了節(jié)點(diǎn)分布信息的基礎(chǔ)上,經(jīng)過(guò)握手來(lái)存放文本的。文本在傳送出去之前一直存放在Bitfield文本里面。在這個(gè)算法里面,工作的全部節(jié)點(diǎn)都不是空白的,它們都含有一些內(nèi)容。同樣的,要獲取隱秘文本也必須在握手以后才能后進(jìn)行。
3.2提取算法
規(guī)則2:根據(jù)矩陣編碼規(guī)則,提取秘密文本時(shí)按式(2.10)計(jì)算xj(1≤j≤k),得到隱秘文本為x1x2…xk。在提取算法中,用Extract()表示按照規(guī)則2將S從Bitfield中提取的提取函數(shù),Decrypt()是將經(jīng)加密的秘密文本S轉(zhuǎn)換為明文形式的秘密文本M。
下面給出提取算法的主要步驟:
輸入:待獲取Bitfield消息B*,密鑰k。
輸出:隱藏的秘密文本M。
步驟:Step 1:按照規(guī)則2從B*中提取S,S= Extract(B*);
Step 2:以明文的形式將S轉(zhuǎn)換為秘密文本M,M=Decrypt(S,k);
Step3:輸出M。
4 針對(duì)矩陣編碼的Bitfield消息隱蔽通信檢測(cè)方法
4.1檢測(cè)算法
基于矩陣編碼的隱蔽通信方式,我們?cè)诰帉?xiě)檢測(cè)方法時(shí),只要通過(guò)檢測(cè)一定窗口內(nèi)三個(gè)狀態(tài)(-1,0,1)的轉(zhuǎn)移矩陣,再對(duì)這個(gè)轉(zhuǎn)移矩陣進(jìn)行處理得到K-L散度,即可判斷該窗口是否含有隱蔽通信。下圖4-1是矩陣編碼的原理示例圖。
4.2建立模型庫(kù)
一種針對(duì)矩陣編碼的隱蔽通信檢測(cè)方法,包括建立模型庫(kù)和利用模型庫(kù)進(jìn)行檢測(cè),所述建立模型庫(kù)具體包括如下步驟:
步驟一:設(shè)置數(shù)據(jù)捕獲器
用Bit comet進(jìn)行文件下載,然后通過(guò)wireshark捕獲數(shù)據(jù)包,并在捕獲的數(shù)據(jù)包中篩選出Bitfield消息。
步驟二:設(shè)置數(shù)據(jù)處理器
設(shè)置數(shù)據(jù)處理器,通過(guò)篩選將1192位Bitfield消息數(shù)據(jù)篩選得到負(fù)載數(shù)據(jù)為814位,然后利用Matlab對(duì)捕獲的數(shù)據(jù)進(jìn)行處理,將原來(lái)的十六進(jìn)制數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制數(shù)據(jù),并合并成一個(gè)一維數(shù)組,再對(duì)前后捕獲到的兩組數(shù)組求差。
步驟三:設(shè)置窗口分割器
設(shè)置窗口分割器:窗口分割器將處理后的一維數(shù)組分為大小為w的窗口,共可分為 個(gè)窗口;每個(gè)窗口分成大小為L(zhǎng)的小區(qū)間,一個(gè)窗口可分為 個(gè)小區(qū)間,若Bitfield消息中存在N條流, 為一個(gè)小區(qū)間內(nèi)通過(guò)某條流的數(shù)據(jù)包的個(gè)數(shù),統(tǒng)計(jì)每個(gè)小區(qū)間中每條流的占比,i=1、2、3…, ;本實(shí)施例中在原數(shù)據(jù)后面補(bǔ)6個(gè)0,以w=466的窗口大小,將其分為7個(gè)檢測(cè)窗口。
步驟四:設(shè)置K-L散度求取器
計(jì)算前后兩組數(shù)據(jù)的差值中所含的獨(dú)立狀態(tài)數(shù)個(gè)數(shù),從小到大排列為一維矩陣E,先找出第i個(gè)狀態(tài)的位置,然后通過(guò)判斷下一個(gè)位置的狀態(tài)來(lái)得到一個(gè)占位矩陣T,如果第i個(gè)狀態(tài)的下一個(gè)位置的狀態(tài)為E(j),則占位矩陣中對(duì)應(yīng)的位置加一(即T(i,j)= T(I ,j)+1),不同則不做改變,并求得這個(gè)占位矩陣對(duì)于每一行的和的轉(zhuǎn)移矩陣Q;最后利用K-L散度求取器根據(jù)公式(2.4)計(jì)算出各窗口數(shù)據(jù)的K-L散度D。本實(shí)施例中將-1,0,1看作三個(gè)獨(dú)立狀態(tài),求出7個(gè)窗口的K-L散度。
步驟五:訓(xùn)練不同時(shí)間間隔的正常Bitfield消息數(shù)據(jù)模型,并設(shè)定檢測(cè)閾值:在不同時(shí)間間隔的情況下,重復(fù)步驟(1)——(4),得到不同時(shí)間間隔的正常數(shù)據(jù)模型,對(duì)各模型進(jìn)行分析,求不同時(shí)間間隔所含數(shù)據(jù)的均值M+、方差V+和檢測(cè)閾值Th+=M++aV+,并使用自定義常量a來(lái)調(diào)整檢測(cè)閾值。本實(shí)施例中經(jīng)過(guò)步驟四得到7個(gè)窗口的K-L散度后,在不同時(shí)間間隔下建立正常通信的數(shù)據(jù)模型,并對(duì)每個(gè)模型進(jìn)行分析。
步驟六:建立模型庫(kù):將步驟五中求得的不同時(shí)間間隔的正常Bitfield消息的檢測(cè)閾值放入模型庫(kù)中。
正常通信模型訓(xùn)練流程如下圖4.2所示:
4.3利用模型庫(kù)進(jìn)行檢測(cè)
(1)判斷待測(cè)數(shù)據(jù)的時(shí)間間隔:根據(jù)時(shí)間間隔從模型庫(kù)中調(diào)出相應(yīng)的模型以及檢測(cè)閾值Th+;endprint
(2)處理待測(cè)數(shù)據(jù)并計(jì)算K-L散度:利用數(shù)據(jù)處理器將捕獲到的前后兩組數(shù)據(jù)求差并轉(zhuǎn)化為一個(gè)一維數(shù)組;利用窗口分割器將數(shù)組分割成大小均為ω的窗口;把0,1,-1看做三種狀態(tài),先找出0的位置,然后通過(guò)判斷下一位的狀態(tài)來(lái)得到一個(gè)占位矩陣,并求得這個(gè)占位矩陣對(duì)于每一行的和的轉(zhuǎn)移矩陣Q;最后利用K-L散度求取器計(jì)算出各窗口數(shù)據(jù)的K-L散度D。
(3)判斷待檢測(cè)數(shù)據(jù)屬性:將D與模型庫(kù)中相應(yīng)的檢測(cè)閾值Th+作比較,小于Th+則待檢測(cè)數(shù)據(jù)為含密數(shù)據(jù),否則為正常數(shù)據(jù)。
步驟一中所述的數(shù)據(jù)捕獲器即wireshark,所述過(guò)濾器為wireshark內(nèi)置的過(guò)濾器。
步驟四中所述的K-L散度求取方法即相對(duì)熵,是相對(duì)于真實(shí)通信的轉(zhuǎn)移矩陣而言的K-L散度。
其中(i,j)為真實(shí)通信的轉(zhuǎn)移矩陣的第i行第j列;Q(i,j)為待測(cè)數(shù)據(jù)的轉(zhuǎn)移矩陣的第i行第j列。
利用模型庫(kù)進(jìn)行檢測(cè)的具體步驟如下圖4-3所示:
4.4檢測(cè)步驟
針對(duì)矩陣編碼的Bitfield消息隱蔽通信檢測(cè)方法的具體步驟如下。先把待測(cè)數(shù)據(jù)和正常數(shù)據(jù)轉(zhuǎn)化為一維數(shù)組,并對(duì)前后兩組一維數(shù)組求差,得到三種狀態(tài):0,1,-1,找出每個(gè)狀態(tài)的位置,通過(guò)判斷下一個(gè)位置的狀態(tài)得到占位矩陣,再求得該矩陣K-L散度的差異,判斷待檢測(cè)數(shù)據(jù)流是否為含密數(shù)據(jù)流。并且在求出數(shù)據(jù)轉(zhuǎn)移矩陣的基礎(chǔ)上,與K-L散度的計(jì)算相結(jié)合,從而提高了檢測(cè)效果,可以得到可靠的檢測(cè)結(jié)果。
5 實(shí)驗(yàn)成果
圖5-2為實(shí)驗(yàn)效果圖,實(shí)線為正常數(shù)據(jù),虛線為含密數(shù)據(jù),由圖可見(jiàn),應(yīng)用本文中提出的方法,可以很好的區(qū)分針對(duì)矩陣編碼的bitfield消息隱蔽通信中的正常數(shù)據(jù)和含密數(shù)據(jù)。
6 結(jié)論
節(jié)點(diǎn)之間的連接,交互信息是十分關(guān)鍵的。它們可以用于完成文件共享。而文件資源共享更是BT網(wǎng)絡(luò)中的核心之一。在這個(gè)過(guò)程中,節(jié)點(diǎn)首先利用自身的特點(diǎn)與其他部件相互連通。連通后將Bitfield消息傳送出去。消息中涵蓋了周邊節(jié)點(diǎn)的分布圖。這個(gè)圖主要是為BitTorrent的文件服務(wù)。在這個(gè)文件中,片段摘選的規(guī)則就是由這個(gè)圖來(lái)提供的。本文基于Bitfield消息,設(shè)計(jì)實(shí)現(xiàn)一種針對(duì)Bitfield的信息隱藏算法以及一種針對(duì)矩陣編碼的Bitfield消息隱蔽通信檢測(cè)方法。這種檢測(cè)算法首先通過(guò)對(duì)比待檢測(cè)數(shù)據(jù)和正常數(shù)據(jù)找出每個(gè)狀態(tài)的位置,獲得占位矩陣和轉(zhuǎn)移矩陣。利用求得的K-L散度來(lái)判斷是否為含密數(shù)據(jù)流,這種檢測(cè)算法的效率更高結(jié)果更為可靠。
參考文獻(xiàn):
[1] 王育民. 信息隱藏: 理論與技術(shù)[N]. 第1版. 北京:清華大學(xué)出版社, 2006, (3): 115-123
[2] Y. Chawathe, S. Ratnasamy, L. Breslau, et al. Making Gnutella-like P2P Systems Scalable[J]. In: Proceeding of ACM SIGCOMM. New York: ACM, 2003, (5): 407-418
[3] D. Wallach. A Survey of Peer-to-Peer Security Issues[J]. In: International Symposium on Software Security. Berlin: Springer-Verlag,2003, 253-258
[4] T. W. Ngan, D. Wallach, P. Druschel. Enforcing Fair Sharing of Peer-to-Peer Resources[J]. In: Proceeding of the Second International Workshop on Peer-to-Peer Systems. Berkeley: Springer-Verlag, 2003, 110-115
[5] 陳亮, 龔儉, 大規(guī)模網(wǎng)絡(luò)中BitTorrent流行為分析[N], 東南大學(xué)學(xué)報(bào)(自然科學(xué)版), vol. 38,no. 3, pp. 390-395, 2008.
[6] 徐釩文, 基于P2P的隱蔽匿名通信系統(tǒng)研究[D], 北京郵電大學(xué)碩士學(xué)位論文, 2013.
[7]BitTorrent. http://www.bittorrent.com/[Z], 2009-2-12
[8]Gnutella. http://www.gnutellaforums.com/[Z], 2009-2-12
[9] 楊榆, 鈕心忻, 楊義先等. 網(wǎng)絡(luò)協(xié)議信息隱藏技術(shù)綜述[N]. In: Proceedings of CIHW2006. 哈爾濱: 哈爾濱工業(yè)大學(xué)學(xué)報(bào), 2006, 38(7): 820-824, 856
[10] 張聯(lián)峰, 劉乃按, 錢秀檳等. 綜述: 對(duì)等網(wǎng)(P2P)技術(shù)[R]. 計(jì)算機(jī)工程與應(yīng)用,2003, 39(12): 142-145endprint