郭 蕊 杜彥輝 蘆天亮 蔡滿春
(中國人民公安大學信息技術(shù)與網(wǎng)絡安全學院 北京 100076)
隨著全球經(jīng)濟的迅猛發(fā)展,5G網(wǎng)絡、人工智能、大數(shù)據(jù)等技術(shù)發(fā)展成熟,物聯(lián)網(wǎng)已然成為未來生活的新形態(tài)。同時,物聯(lián)網(wǎng)在石油、煤礦、電網(wǎng)等國家基礎(chǔ)設施領(lǐng)域,以及醫(yī)療、交通、監(jiān)管等生產(chǎn)生活領(lǐng)域的廣泛應用,使得物聯(lián)網(wǎng)通信安全越來越受到重視。
在保障通信的安全性和隱蔽性方面,傳統(tǒng)的加密技術(shù)由于計算能力和計算架構(gòu)的發(fā)展以及針對加密算法的攻擊手段研究,開始面臨巨大挑戰(zhàn)。隱寫術(shù)也由于過分依賴載體而受到應用限制。而隱蔽信道技術(shù)作為新的通信策略,采用通常不用于通信的方式進行隱藏且應用廣泛,因此對隱蔽信道進行研究非常有必要。
隨著網(wǎng)絡技術(shù)的發(fā)展,隱蔽信道已經(jīng)逐漸應用到網(wǎng)絡通信安全領(lǐng)域并愈加成熟,但由于物聯(lián)網(wǎng)中低功耗受限制設備的計算能力和數(shù)據(jù)存儲容量嚴格受限,導致傳統(tǒng)網(wǎng)絡中成熟的隱蔽信道技術(shù)難以完成,亟需實現(xiàn)隱蔽信道向物聯(lián)網(wǎng)環(huán)境遷移。為了彌補物聯(lián)網(wǎng)環(huán)境下隱蔽信道研究的不足,本文通過對CoAP協(xié)議進行分析,提出并實現(xiàn)一種基于CoAP協(xié)議參數(shù)序列的隱蔽信道構(gòu)建方法,為實現(xiàn)隱蔽信道向物聯(lián)網(wǎng)遷移提供了一定的理論支持和技術(shù)支撐。
隱蔽信道被定義為“一種通過改變資源分配策略和資源管理實現(xiàn)而產(chǎn)生的信道”[1],它允許進程以危害系統(tǒng)安全策略的方式傳輸信息[2]。網(wǎng)絡隱蔽信道則是網(wǎng)絡環(huán)境下違背通信限制規(guī)則進行隱藏信息傳輸?shù)耐ㄐ判诺繹3],已經(jīng)逐漸應用到通信安全領(lǐng)域并愈加成熟,主要分為存儲型隱蔽信道和時間型隱蔽信道。存儲型隱蔽信道使用協(xié)議數(shù)據(jù)單元內(nèi)部的信息進行隱蔽通信;而時間型隱蔽信道則利用協(xié)議數(shù)據(jù)單元的時間特性實現(xiàn)隱蔽傳輸。本文對幾種典型的網(wǎng)絡隱蔽信道構(gòu)建方法進行分析,如表1所示。

表1 網(wǎng)絡隱蔽信道構(gòu)建方法分析
可以看出,存儲型隱蔽信道具有良好的魯棒性和傳輸效率,但由于修改協(xié)議數(shù)據(jù)原有內(nèi)容,極易被基于內(nèi)容的檢測方法察覺到;而時間型隱蔽信道較難以檢測,但信道容量小且雙方需要保持同步,極易受到網(wǎng)絡環(huán)境的影響。同時存儲型隱蔽信道和時間型隱蔽信道均無法適用于低功耗受限制設備。為此,國內(nèi)外對隱蔽信道的研究開始向物聯(lián)網(wǎng)方向遷移。Tan等[14]提出了一種在4G/5G網(wǎng)絡中應用數(shù)據(jù)包間延遲編碼隱藏信息的系統(tǒng)模型,并通過對基于分組重排序、速率切換、分組丟失、重傳輸和調(diào)度的時間型隱蔽信道進行分析,證實了構(gòu)建物聯(lián)網(wǎng)隱蔽時序信道的可行性,但仍無法擺脫時序信道極易受網(wǎng)絡環(huán)境影響的弊端;Nain等[15]根據(jù)IEEE 802.15.4協(xié)議提出了一種基于秘密幀識別和錯誤檢測機制的存儲型隱蔽信道構(gòu)建方法,但該隱蔽信道要求芯片序列的修改盡可能少,因此具有較低的傳輸效率;鄧雨欣等[16]融合數(shù)量和序列兩個維度提出了一種基于MQTT協(xié)議命令分組編碼方法,由于與正常交互行為存在差異,易被基于行為模式的檢測模型察覺。
針對傳統(tǒng)的網(wǎng)絡隱蔽信道無法適用于低功耗受限制設備的不足以及已有的物聯(lián)網(wǎng)隱蔽信道技術(shù)無法擺脫存儲型和時間型隱蔽信道固有弊端的問題,本文通過對物聯(lián)網(wǎng)應用協(xié)議CoAP進行分析,在不需要修改協(xié)議數(shù)據(jù)單元和控制雙方同步的情況下,結(jié)合CoAP的應用場景,僅利用Accept關(guān)鍵字的可選參數(shù)進行序列編碼,提出并實現(xiàn)了一種基于CoAP協(xié)議參數(shù)序列的隱蔽信道構(gòu)建方法,性能分析表明該方法具有良好的隱蔽性、魯棒性和傳輸效率。
受限應用協(xié)議CoAP(Constrained Application Protocol)是一種面向低功耗受限制設備的基于REST架構(gòu)的物聯(lián)網(wǎng)應用層協(xié)議,是一種應用于受限網(wǎng)絡和節(jié)點的特殊Web傳輸協(xié)議,在應用終端間提供方法/響應的交互模式,支持內(nèi)置的資源發(fā)現(xiàn)[17]。目前,CoAP協(xié)議已經(jīng)在Contiki和OpenWSN平臺上實現(xiàn)。
CoAP協(xié)議的報文結(jié)構(gòu)如圖1所示。頭部主要由版本編號Ver、報文類型T、標識符長度TKL、狀態(tài)碼Code和Message ID組成。標簽Token由TKL指定。Options為報文選項,用于設定CoAP主機、CoAP URL、CoAP請求參數(shù)和負載媒體類型等。0xFF作為分隔符區(qū)分首部和負載,負載內(nèi)容與具體應用相關(guān),支持多種媒體類型。

圖1 CoAP協(xié)議的報文結(jié)構(gòu)
Options由許多部分組成,其中Uri類型選項通過使用URL語法定位服務器資源。Accept和Content-Format兩者相互配合,分別指示CoAP請求和響應中的負載媒體類型。Etag跟隨資源發(fā)生改變而改變并常常與If-Match和If-None-Match配合,用于PUT請求或POST請求中。
CoAP協(xié)議采取類似于HTTP的請求/響應工作方式。CoAP客戶端節(jié)點向服務器發(fā)送請求信息,服務器端對請求作出響應。由于CoAP使用UDP作為傳輸層協(xié)議,所以不需要事先建立連接。
為了彌補UDP的不可靠性,CoAP協(xié)議增加了消息層,如圖2所示。消息層負責控制端到端的報文交互,而請求/應答層則負責傳輸資源操作的請求和響應。同時,CoAP重傳機制在一定程度上也提高了CoAP的可靠性。

圖2 CoAP協(xié)議架構(gòu)
基于CoAP協(xié)議的特點,將其作為物聯(lián)網(wǎng)環(huán)境下隱蔽信道的新型載體具有以下可行性:
(1) CoAP的廣泛應用為隱蔽信息的傳輸提供了充分的載體和良好的掩護。
(2) 消息層和重傳機制的存在彌補了UDP傳輸?shù)牟蛔悖瑸镃oAP協(xié)議增強了隱蔽信息傳輸?shù)目煽啃院汪敯粜浴?/p>
(3) CoAP協(xié)議首部存在較多的可選部分,為隱蔽信道的構(gòu)建提供了可被利用的空間。
(4) 作為輕量級的物聯(lián)網(wǎng)應用層協(xié)議之一,CoAP適用于各種低功耗受限制設備,為新型隱蔽信道向物聯(lián)網(wǎng)轉(zhuǎn)移提供了可能。
基于CoAP協(xié)議參數(shù)序列的隱蔽信道構(gòu)建是將某個特殊關(guān)鍵字的可選參數(shù)構(gòu)造成一個序列,要求每個可選參數(shù)唯一對應于一個變量,通過控制可選參數(shù)的發(fā)送實現(xiàn)隱蔽信息的傳輸。
在CoAP協(xié)議報文的關(guān)鍵字中,Accept選項表示CoAP客戶端期望接收到的媒體類型格式,常存在于CoAP客戶端向服務器端發(fā)送的GET請求報文中,而且Accept選項具有超過30種定義的媒體類型參數(shù)。因此,Accept關(guān)鍵詞是最適合這類算法的隱蔽信息嵌入點。
通常情況下資源可以采用不同的媒體類型進行描述,如果將每種媒體類型看成一個元素,那么所有的媒體類型就可以構(gòu)成一個序列的集合,每一個傳感器資源所支持的媒體類型就是序列的子集。
對于一類元素的集合{Ai|0
該算法的另一個關(guān)鍵在于定義一種映射關(guān)系f,實現(xiàn)比特序列與元素的一一對應關(guān)系。為此,本文尋找了一種映射關(guān)系f,具體定義如下:任意一個變量x,0≤x<2N,設x的二進制表示為{bN-1,bN-2,…,b0}2,即x=b0+b1×2+…+bN-2×2N-2+bN-1×2N-1,其中bi∈{0,1}。通過Array[x]唯一對應于Ax+1,從而實現(xiàn)消息比特與元素唯一對應關(guān)系。
3.2.1單一資源編碼方式
通過分析CoAP協(xié)議可知,如果客戶端對資源響應的媒體類型進行指定時,CoAP服務器將按照指定的媒體類型進行響應,反之如果客戶端沒有對Accept屬性進行規(guī)定時,CoAP服務器將采用默認的媒體類型響應客戶端的請求。即使這兩種響應的媒體類型是相同的,但是接收到的Accept內(nèi)容是不同的。因此,CoAP服務器的某一資源可以通過至少2種Accept選項中的可選媒體類型進行表示。
單一資源編碼方式是用數(shù)組結(jié)構(gòu)表示某一資源所支持的媒體類型,根據(jù)媒體類型總數(shù)計算每次可供傳輸?shù)谋忍財?shù),并依據(jù)定義的映射關(guān)系f,建立比特序列與媒體類型的對應關(guān)系,通過操控Accept選項的可選媒體類型實現(xiàn)隱蔽信息的傳輸。
假設需要傳輸?shù)碾[蔽信息為“text”,二進制表示為01110100011001010111100001110100,選擇CoAP服務器端的time作為傳輸隱蔽信息的資源,將time資源所支持的媒體類型元素構(gòu)造成數(shù)組,time[5]={“”,“text/plain”,“application/link-format”,“application/xml”,“application/octet-stream”},根據(jù)N=└log2n┘ ,可知每次可傳輸2比特的隱蔽信息。再依據(jù)映射關(guān)系f,建立媒體類型和比特序列的一一對應關(guān)系。同時可以規(guī)定“媒體類型為application/octet-stream”表示隱蔽信息傳輸?shù)拈_始和結(jié)束。CoAP服務器端通過wireshark抓取請求數(shù)據(jù)包,如圖3所示。

圖3 單一資源傳輸隱蔽信息
根據(jù)對應關(guān)系,CoAP服務器端既可以判斷隱蔽信息的開始和結(jié)束,也可以還原出隱蔽信息,實現(xiàn)了隱蔽信息的傳輸。
3.2.2組合資源編碼方式
通常情況下,CoAP服務器端搭載的資源類型不止一個。因此,可以通過組合資源編碼方式進行隱蔽信息的傳輸。組合資源編碼方式是對單一資源編碼方式的一種改進,它將編碼范圍擴展至資源類型-媒體類型,通過資源類型-媒體類型設計和實現(xiàn)隱蔽信息的傳輸。
同樣假設需要傳輸?shù)碾[蔽信息為“text”。CoAP服務器端搭載time、temperature、humidity和light 4個資源類型,所支持的媒體類型數(shù)分別為5、4、4、4,共17種資源類型-媒體類型組合關(guān)系。依據(jù)N=└log2n┘ 和映射關(guān)系f,可得到4比特序列與資源類型-媒體類型的一一對應關(guān)系,如表2所示。

表2 資源類型-媒體類型與比特序列的對應關(guān)系

續(xù)表2
CoAP服務器端通過wireshark獲取請求數(shù)據(jù)包,如圖4所示。根據(jù)對應關(guān)系,隱蔽信息接收端可以識別和還原隱蔽信息。

圖4 組合資源傳輸隱蔽信息
基于可選參數(shù)序列進行隱蔽信息傳輸對主動的重排序攻擊具有天然的弱勢。如果攻擊者惡意修改數(shù)據(jù)包的Message ID,就可能影響隱蔽信息的傳輸。為了使接收端能夠正確接收隱蔽信息,在實現(xiàn)中可以通過添加MD5完整性校驗來提高傳輸?shù)臏蚀_性。MD5作為使用最廣泛的數(shù)據(jù)完整性校驗算法之一,它將任意長度的數(shù)據(jù)字符串轉(zhuǎn)化成固定長度值,通過對接收數(shù)據(jù)執(zhí)行散列運算來檢查數(shù)據(jù)是否準確。
以規(guī)定的起始符和結(jié)束符為標志完成一次隱蔽信息的傳輸。隱蔽信息傳輸完成后,可通過事先規(guī)定的校驗值傳輸?shù)钠鹗挤徒Y(jié)束符傳輸隱蔽信息的單向散列值,傳輸方法與隱蔽信息的傳輸方法相同。接收端對接收到的隱蔽信息進行MD5完整性校驗并對比接收到的MD5值,如果相同,說明隱蔽信息接收準確;如果不同,則通過發(fā)送與結(jié)束請求報文相對應的RST報文,告知發(fā)送方重新傳輸隱蔽信息。
隱蔽通信場景如圖5所示,實驗環(huán)境主要由四臺主機和一臺交換機構(gòu)成。其中:PC1和PC2作為隱蔽通信的發(fā)送端和接收端;PC3和PC4作為網(wǎng)絡環(huán)境模擬器和入侵檢測系統(tǒng)。發(fā)送端PC1通過Copper連接PC2,依據(jù)對應規(guī)則對請求數(shù)據(jù)包進行修改并發(fā)送。接收端PC2利用libCoAP開發(fā)工具自定義構(gòu)建CoAP服務器,通過網(wǎng)絡封包分析軟件wireshark 2.6.8抓取數(shù)據(jù)包,解碼器依據(jù)對應規(guī)則分析數(shù)據(jù)包并還原出隱蔽信息。PC3作為網(wǎng)絡環(huán)境模擬器搭載Netem,通過設置不同的丟包率來模擬實際復雜的網(wǎng)絡環(huán)境,PC4安裝Snort入侵檢測系統(tǒng)用于檢測信道的隱蔽性。

圖5 隱蔽通信場景
隱蔽性作為實現(xiàn)隱蔽信道的根本要求,主要是指隱蔽信道不被發(fā)現(xiàn)的能力。CoAP協(xié)議作為當前應用廣泛的物聯(lián)網(wǎng)應用層協(xié)議之一,在公開信道可以傳輸大量信息,為隱蔽信道的存在提供較好的掩護。與此同時,基于CoAP協(xié)議參數(shù)序列的隱蔽信道構(gòu)建方法不需要修改協(xié)議數(shù)據(jù)原有內(nèi)容也不需要控制雙方同步,加上低功耗特點使得CoAP更適合數(shù)據(jù)采集的場合,也使得GET方法成為CoAP最常見的方法,進一步增強了通過GET方法利用Accept關(guān)鍵字的參數(shù)序列來實現(xiàn)隱蔽信息傳輸?shù)碾[蔽性。
本文實驗通過Snort入侵檢測系統(tǒng)對信道的隱蔽性進行測試,在隱蔽信息的傳輸過程中,PC4未顯示異常。測試結(jié)果表明該隱蔽信道對入侵檢測系統(tǒng)具有一定的穿透性,隱蔽性較好。
魯棒性指隱蔽信道抗干擾和準確傳輸數(shù)據(jù)的能力。一般情況下,使用誤碼率作為魯棒性評估的評測標準[18-19]。本文提出的隱蔽信道實現(xiàn)隱蔽傳輸?shù)年P(guān)鍵在于隱蔽信息的準確按序到達。CoAP雖然采用UDP作為傳輸層協(xié)議,但卻通過增加消息層的方式彌補了UDP傳輸?shù)牟豢煽啃裕褻oAP的重傳機制進一步提高了隱蔽信息傳輸?shù)臏蚀_性。但是CoAP仍然對主動的重排序攻擊無計可施,因此本文通過傳輸對比MD5值的方法緩解重排序攻擊對隱蔽信息傳輸造成的危害。
為了測試信道的魯棒性,本文實驗通過網(wǎng)絡環(huán)境模擬器Netem來模擬正常網(wǎng)絡環(huán)境,在丟包率為1%、5%、10%的環(huán)境下,每次傳輸10 KB的隱蔽信息,每組測試10次,統(tǒng)計并計算時間型網(wǎng)絡隱蔽信道IPCTC、MBCTC、基于CoAP協(xié)議參數(shù)序列的隱蔽信道在不同丟包率下的傳輸正確率,結(jié)果如表3所示。

表3 不同丟包率下各類隱蔽信道的平均傳輸正確率 %
傳統(tǒng)時間型隱蔽信道都是利用協(xié)議數(shù)據(jù)單元的時間特性進行傳輸,網(wǎng)絡的抖動、丟包、重傳會對其解碼造成一定的影響,這些在表3中都有體現(xiàn)。從表3可以看出,本文提出的隱蔽信道在較差的網(wǎng)絡環(huán)境中仍然可以達到平均傳輸正確率100%。可見,該隱蔽信道具有良好的魯棒性。
Houmansadr等[20]將傳輸效率定義為每個隱蔽數(shù)據(jù)流包傳遞隱蔽信息的比特數(shù)。鄧雨欣等[16]提出的基于MQTT協(xié)議命令分組編碼隱蔽信道模型使得單個命令平均可傳輸8/3比特的隱蔽信息。而在本文實現(xiàn)隱蔽信息傳輸?shù)姆椒ㄖ校總€隱蔽數(shù)據(jù)流包傳遞的隱蔽信息比特數(shù)取決于單一資源的媒體類型數(shù)或者組合資源的資源類型-媒體類型數(shù)。比較完備的CoAP服務器通常搭載多種資源,且每種資源存在多種媒體類型。通常情況下,無論是單一資源編碼方式還是組合資源編碼方式均可實現(xiàn)單次傳輸至少3比特的隱蔽信息。因此,本文提出的編碼方式比命令分組編碼方式具有更高的傳輸效率。
為了說明兩種編碼方式的互補優(yōu)勢,實驗分別用單一資源編碼方式和組合資源編碼方式傳輸不同長度的隱蔽信息,其中單一資源編碼方式采用20種媒體類型數(shù),組合資源編碼方式采用68種資源類型-媒體類型數(shù),測試次數(shù)20次,記錄并計算隱蔽信息傳輸所用的平均時間,如圖6所示。

圖6 兩種編碼方式傳輸時間
可以看出,由于組合資源編碼方式在實現(xiàn)方面相對單一資源編碼方式復雜,數(shù)據(jù)包發(fā)送速率相對較低。所以在隱蔽信息傳輸量相對較小且兩種編碼方式所具有的媒體類型數(shù)差距不大時,采用單一資源編碼方式可以節(jié)約傳輸所需要的時間,進一步保證了隱蔽信道的隱蔽性和魯棒性。但當需要傳輸?shù)碾[蔽信息量比較大時,采用具有較大媒體類型總數(shù)的組合資源編碼方式能大大縮短隱蔽信息傳輸所需要的時間,占有更大的優(yōu)勢。
本文通過對輕量級物聯(lián)網(wǎng)應用層協(xié)議CoAP進行分析,提出并實現(xiàn)一種基于CoAP協(xié)議參數(shù)序列的隱蔽信道構(gòu)建方法。該方法不需要修改協(xié)議數(shù)據(jù)原有內(nèi)容也不需要控制雙方同步,僅僅通過控制Accept選項的可選參數(shù)編碼隱蔽信息,附帶GET請求的良好掩護,使之具有更好的隱蔽性。另一方面,CoAP的消息層設計和隱蔽信息的完整性校驗與比對為隱蔽信道的實現(xiàn)提供了良好的魯棒性。與此同時,隱蔽信息發(fā)送端可根據(jù)接收端實際情況和隱蔽信息傳輸實際需求選擇合適的編碼方式,靈活性較強,也可實現(xiàn)較高的傳輸效率,為實現(xiàn)物聯(lián)網(wǎng)環(huán)境下新型隱蔽信道轉(zhuǎn)移提供了可能。