陶 軍 朱珍超 王昭悅 李文強,2 孫煒策,2
1(東南大學網絡空間安全學院 南京 211189) 2(計算機網絡和信息集成教育部重點實驗室(東南大學) 南京 211189) 3(網絡通信與安全紫金山實驗室 南京 100084) (wqli@seu.edu.cn)
隨著信息化的快速發展,網絡早已融入了人們的日常生活之中.但是,網絡是把雙刃劍,在人們享受其所帶來的便利時,個人利益也可能會受到損害.《2020年上半年我國互聯網網絡安全監測數據分析報告》顯示,半年時間內,惡意計算機程序的檢測數量大約有1 815萬個,涉及到約11 000個惡意程序家族,日均約483萬次傳播[1].僅僅在中國境內,被惡意程序攻擊的主機數量就超過了304萬臺,同比增長25.7%.其中DDoS攻擊作為攻擊者最常選擇的攻擊手段之一,在我國每天大約發生220起,其峰值流量超過10 Gbps.在目前IPv4地址資源日趨耗盡的背景下,擁有更大地址空間范圍的IPv6協議勢必會逐漸取而代之,成為未來的主流網絡層通信協議[2].在這種背景下,IPv6環境下的安全問題也成為了新的挑戰[3].
網絡安全事故頻繁發生,對金融、醫療、政府、教育、制造業等各個行業都造成了一定程度的威脅.早期對打擊網絡犯罪技術的研究更多著重于被動網絡流分析,通過對網絡流的特征分析獲取到有效的信息.比如,使用統計方法或機器學習方法,定義應用協議類型,預測用戶位置[4],區分正常流量和異常流量[5]以及識別惡意攻擊[6].但被動網絡流分析技術需要大量的樣本來確保機器學習模型的有效性,在時間和空間的資源需求上非常嚴格,很難在可擴展性和準確性之間達到完美的平衡.另外,網絡在傳輸過程中非常容易受到各種因素的干擾,特別是不法分子對網絡流量惡意操縱后,原有的特征可能會發生改變.
為了解決這些問題,研究人員通過網絡隱蔽通道來傳輸水印信息.隱蔽通道利用通信雙方共用或已知的合法交互方式,經過再次約定形成隱蔽性強的額外通信渠道,進而實現在合法通道上傳輸額外信息的目的[7].對于普通的使用者而言,主動流水印技術是透明的,使用者很難察覺到水印的存在.主動流水印技術對時間和空間的需求遠遠小于被動網絡流分析技術,因此基于主動流水印技術的流量追蹤可以更好地實現有限資源條件下的精準定位.
目前,水印技術的研究主要集中在水印的嵌入方法、載體選擇及識別等方面,并取得了一些研究成果.然而由于網絡環境的瞬變性與網絡業務的多樣性,流水印技術依然面臨著諸多挑戰,例如,網絡攻擊者可以通過統計方法或人工智能方法來推斷目標流中存在的非公開的水印,從而破壞或篡改水印信息.因此,水印本身的抗干擾性和可恢復性至關重要.目前的流水印方法中,水印信息通常是隨機生成的二值序列,內容和位置的相對固定會造成追蹤的流量呈現出自相似性.另外,目前大多數網絡側寫工作都集中在IPv4協議上,與IPv4協議相比, IPv6協議內嵌了標準化的IPsec協議,報文內容的不可見性使得基于傳輸層和應用層的水印嵌入方案難以實施.因此,針對IPv6網絡空間的治理需求以及有限的時空資源條件限制,特征水印生成方案的研究具有一定的意義.
以網絡協議為基礎構建的隱蔽通道稱為網絡隱蔽通道[8].據通信過程中隱蔽信息嵌入的方式可以將隱蔽通道分為兩大類:隱蔽存儲通道,即通過修改協議中的內容來實現隱蔽信息的傳輸;隱蔽定時通道,即通過改變數據包的發送時延、發送順序來實現隱蔽信息的傳輸[9].雖然在IPv6協議標準制定之初,就已經充分地考慮到了數據傳輸的安全性,但由于部分字段的定義不夠明確或嚴格,某些字段中仍存在保留位,以及對字段未定義的值采取忽視做法等問題,使得IPv6協議中的隱蔽通道構建成為了可能.
楊智丹等人分析了IPv6協議標準中存有漏洞的部分,提出了5類共19種隱蔽通道的構建方式,包括定義不完整字段、保留字段、轉發時被中間節點忽視的字段及非關鍵字段等[10].在文獻[11]中,以IPv6報文固定頭部中的跳限制字段為載體,實現了基于數據包操作和位變換2種水印嵌入方式,并詳細闡述了基于位變換的隱蔽通道構建方式.Lucena等人分析了IPv6協議報文標準,基于IPv6協議的固定頭部和6種擴展頭部字段中的保留位,提出了22種隱蔽通道的構建方式[12].此外,IPv6報文擴展頭部中的目標選項頭部也被用于構建隱蔽通道,Mavani提出了針對該隱蔽通道的識別檢測方法[13].在文獻[14]中,研究人員沒有提出新的隱蔽信息傳輸方法,而是關注于阻斷隱蔽通道或限制其傳輸能力的方式.Wojciech等人根據實際網絡中的流量,通過對IPv6報文中可以用來構建隱蔽通道的字段取值分布的統計,以及安全設備對隱蔽信道的檢測情況,分析在實際的應用場景中,尋找更加實用與有效的通道構建方法[15].
主動網絡流水印技術是一種基于隱蔽定時通道的網絡流量追蹤技術,相較于隱蔽儲存通道能夠更好地適應IPv6的加密環境.根據水印嵌入的載體可將主動網絡流水印方法分為基于流速、分組和間隔[16]3種.例如,在2003年一種基于分組延遲的水印方法(WBIPD)被提出,該方案利用了時間上的擾動來傳遞水印信息[17].但是,基于分組延遲的水印方案魯棒性不高,非常容易因為網絡干擾和惡意攻擊失去效用.
Houmansadr等人提出了RAINBOW方案,該方案需要一個通信雙方共享的IPD數據庫,數據庫中存放著目標流的原始IPD信息[18].為了減少通信過程中丟包、包重組和垃圾包注入對水印信息的影響,RAINBOW方法使用了比其他基于分組延遲水印技術更低的延遲量來增加水印的不可見性,減少被攻擊者檢測與破壞的可能性.但是,為了進行包含IPD逐一匹配的流關聯判斷等操作,該方法需要更多的時間資源.為了解決水印嵌入過于復雜的問題,部分研究人員不再使用簡單的二進制序列作為水印信息,而是使用PN碼對原始的水印信息進行擴頻,再通過調整分組延遲進行水印信息的嵌入,檢測端可以通過解擴操作提取水印信息[19].
2018年Lacovazzi等人提出了一種新的網絡流水印方法Drop Wat,它通過模擬實際網絡中的丟包行為,即刪除流的幾個選定的數據包,改變數據包之間的延遲來實現水印信息的嵌入[20].雖然該方法的隱蔽性較高,有效地減少了通信過程中的水印泄露幾率,但是嚴重依賴于數據包的正常傳輸,如果傳輸過程中自然丟包率過高、網絡抖動較大,將會出現比較嚴重的檢測誤差.
在網絡干擾有限的情況下,基于分組延遲的水印技術能夠對流量進行有效地追蹤,具有比較高的魯棒性.在此基礎上,一種基于間隔的水印方法(interval based watermarking, IBW)被提出,該方法不再使用單個包間隔(inter-packet delag, IPD)作為載體,而是將目標流劃分成固定長度的時間間隔,通過更改時間間隔內的數據包延遲,調整時間間隔內的數據包數量來嵌入水印信息[21].
2011年Houmansadr等人為了解決多流追蹤問題,提出了SWIRL方法,該方法將時間間隔重心分為基本間隔重心和標記間隔重心,水印的嵌入方式由基本間隔重心決定[22].2015年Lin等人為了增強水印的抗干擾性以及抵御多流攻擊的能力,提出了基于時間間隔重心匹配的水印模型,通過密鑰動態選擇水印的嵌入位置,改變時間間隔的重心來傳遞水印信息[23].2016年一種更為均衡的基于時間間隔重心的水印方法被提出,該方法試圖用更小的質心調制范圍來達到較高的識別精度,從而提高跟蹤簡短流的有效性[24].2018年Zhai等人使用近似正交的序列集來計算最小的質心移動距離,有效地減少了基于時間間隔質心的水印方案需要添加的人為延遲[25].
Yu等人將無線通信中的DSSS機制融入到主動網絡流水印技術中,提出了基于流速的新型水印方法[26].2015年Liu等人針對不同虛擬機的出口網絡流,在原型框架OBSERVER的基礎上,提出了一種差異分析方法[27].該方法能夠對SDN的狀態進行動態配置,通過離散小波的多分辨率變換,對固定時間段的網絡流進行分解,并使用K-L距離來衡量原始流和水印流之間的差異性.
水印的生成包括3個步驟:1)初始化原始水印信息的二進制向量.2)利用預設的編碼方式進行編碼,并將水印嵌入到目標流中.3)在水印檢測處獲取目標網絡流,并根據網絡流水印的解碼規則恢復原始水印信號.本文針對水印隱蔽性的優化目標,提出特征水印序列的生成方法,實現基于混合隱蔽通道和混合時隙的水印生成方案,降低水印對原始流量的影響.
內容和位置相對固定的水印會造成追蹤的流量出現自相似性,造成水印信息的隱蔽性大大下降.因此,本文結合目標流的本身特性,提出具有意義的特征水印序列生成方案,降低水印信息的自相似性,減少水印被識別攻擊的概率.
2.1.1 基于荷載的水印序列生成
面向間斷性傳輸的特征提取場景,包依賴的特征具有更強的適應性.IPv4協議中的IP分片是一個非常重要的特性,當數據包大小超過鏈路最大傳輸單元(maximum transmission unit, MTU)時,中間節點路由器可以將該數據包重新分片為滿足當前MTU的多個數據包,因此IPv4流量的數據包荷載分布具有隨機性.與IPv4協議不同的是IPv6協議只允許數據包在源節點分片,在目的節點重組,中間節點路由器只承擔轉發的任務,不允許對IPv6數據包進行分片重組.如果收到的數據包荷載超過了當前節點的最大傳輸單元,中間節點會丟棄該數據包,并給源節點發送ICMPv6消息,消息中攜帶了可以通過該中間節點的最大數據包荷載.因此,在IPv6環境下,數據包荷載和數量都是較為穩定的,尤其是在TCP連接中,數據包荷載值具有高度集中性,荷載序列呈現出了階段的穩定性,所以可以通過荷載序列實現流特征的表示.圖1展示了2次不同TCP通信中的荷載序列.

Fig.1 Load sequence of TCP圖1 TCP荷載序列
數據包荷載無法直接作為水印信息進行傳輸,需要對荷載序列進行二值處理.如果直接使用定長的二進制編碼,為了滿足最大荷載的表示需求,單個數據包荷載的二進制碼長度最少設置為11 b,這樣會造成有限長度的特征水印序列包含的有效信息過少.如果簡單地使用中位數或均值進行二分類編碼,雖然節約了編碼長度,但是嚴重壓縮了荷載信息,模糊了流本身的特性以及流與流之間的相異性.為了更好地通過荷載水印序列體現流特征,需要對荷載信息進行合理地分類,在沒有標簽的情況下,無監督聚類方法具有更好的適用性.
基于水印的追蹤方案優勢在于較低的時空開銷,所以對水印信息長度有著較為嚴格的要求.數據包荷載序列能夠反映出通信過程中的部分特征,為了區分不同的網絡流,挖掘出最能夠反映出當前通信特征的有限長度的荷載序列,需要盡量保證規定荷載序列中包含較多的數據包.因此,結合哈夫曼編碼(Huffman Coding)的思想,針對出現概率較高的荷載類別,給予較短的二值編碼,針對出現概率較低的荷載類別,給予較長的二值編碼.
由于隱蔽通道帶寬的限制,在經過哈夫曼編碼后的數據包荷載序列仍然無法全部發送給接收方.所以,需要從完整的荷載序列中提取最能夠代表通信特征的有限長度序列,即局部最優的子序列.通常情況下,使用出現頻率最高的子序列來代表原序列,但是由于原序列中可能存在多個出現次數相近的頻繁子序列,當網絡環境出現波動時,子序列的提取會受到影響.并且基于哈夫曼樹的二值編碼使得不同的數據包荷載對應的碼長不同,則子序列中的容量即序列中實際包含的數據包數量不同.將子序列的特征表現能力記為特征強度CPi,
(1)
其中,api表示第i個序列出現的次數,vl表示序列實際包含的數據包個數,所求特征強度最強的子序列即為局部最優子序列.
就TCP協議而言,可以將數據包分為2種類型:1)用來傳輸數據,實際荷載與上層的應用協議以及傳輸路徑有關,呈現出流的相異性;2)應答包,包括SYN包、ACK包等,根據應答包的不同功能,實際荷載也會有所不同,大多為20,24,32等.針對不同的通信狀態,提取出的荷載特征序列也會有所不同.
圖2是設備V1與設備V2通信過程中較為常見的3種荷載序列狀態圖.a型荷載序列表現出的通信特征是,設備V1持續穩定地給設備V2傳輸數據;b型荷載序列表現出的通信特征是,設備V1持續地接收到設備V2發送的信息,并給予回應;c型荷載序列表現出的通信特征是,設備V1和設備V2互相之間都在進行數據傳輸.傳輸數據的大小、傳輸數據的速率以及網絡干擾,例如超時導致的頻繁重傳等因素都會影響到荷載序列的提取,使得不同的通信狀態之間具有相異性,從而有利于更好地進行流區分.另外,TCP的傳輸具有穩定性,在一定時間段內的荷載序列有著較強的自相似性,在網絡狀態沒有發生突變的情況下,能夠在一定范圍內抵抗丟包、垃圾包注入等因素的影響,有比較好的魯棒性.
在間斷性傳輸的特征提取場景中,包依賴的特征具有更強的適應性,同時利用IPv6協議以及TCP傳輸的穩定性,基于載荷的水印序列生成方式能夠在很大程度上表現出較好的環境適應能力.

Fig.2 State of load sequence圖2 荷載序列狀態
2.1.2 基于時隙質心的特征水印序列生成
面對流速較慢的特征提取場景,發送端需要緩存更長時間的特征流,才能夠捕獲到一定數量的數據包,而基于時隙質心的特征對數據包密度的依賴性遠遠低于荷載特征.在IPv6環境中,數據包的數量相對于流同樣是獨立同分布的,所以其時隙質心仍然符合泊松分布,圖3展示了一段時間內的時隙質心分布情況.

Fig.3 Distribution of time-slot centroid圖3 時隙質心分布
時隙質心符合泊松分布,即數據包到達時間偏移均勻分布在單個時隙內,所以可以估算出組內數據包到達間隔的時間偏移重心在時隙中心附近,進行水印信息的初步提取.但是在實際的網絡流中,受到丟包重傳、網絡延時等不良因素的影響,時隙質心的分布不夠穩定,容易因為網絡的波動發生偏移.為了降低這些不良因素對質心分布的影響,本文提出了序列映射區的概念.
如圖4所示,序列映射區以時隙中心為軸,并在單位映射區內向右偏移,偏移時長根據網絡的實際情況進行相應調整.如果初始時隙質心的位置不在序列映射區內,則需要通過人為添加延遲,使時隙質心落在映射區之內.

Fig.4 Mapping zone of sequence圖4 序列映射區
如圖5所示,當前時隙的質心Ci可以表示為
(2)
其中,dj表示第j-1個數據包和第j個數據包的到達時間差值,t是人為添加的延遲,Δt表示偏移時長.在單時隙中,人為添加延遲的數據包越靠近時隙的起點,時隙質心的增量越大.為了降低時隙質心移動對原始流量的影響,盡量減少時隙內數據包達到時間差的變化數量,最理想的狀態是為當前時隙中的所有數據包人為地添加延遲s,這樣除了d1以外,其他的di都能夠保持不變.假設質心的移動距離為
(3)
由式(3)可知,s最小值即為質心移動的最小距離.

Fig.5 Illustration of a complete time slot圖5 完整單時隙
相較于包依賴水印序列生成,基于時隙質心提取的特征序列大小同樣對數據包密度具有更小的依賴性,實際表現取決于數據包到達延遲.

因此,在網絡流速較慢的特征提取場景中,相比于載荷特征,基于時隙質心的特征提取對數據包密度具有更低的依賴性.本文通過序列映射,減輕了網絡波動對時隙質心分布的干擾,大大降低了水印對原始流量的影響,有效減少了特征水印被識別攻擊的概率.
面向間斷性傳輸的網絡傳輸場景,包依賴的水印載體能夠更有效地保證水印連貫性.由于IPv6協議內嵌了IPsec協議,報文內容的不可見性限制了載體的選擇范圍,基于單一載體的水印嵌入方案的隱蔽性受到了威脅.此外,抵抗重組分片干擾能力較弱的IPD水印,在IPv6環境下有更強的可用性.
2.2.1 隱蔽通道庫構建
根據使用場景的差異性及實時網絡狀態的隨機性,可以更換不同的隱蔽通道來嵌入水印信息,通過不同的排列組合,增強水印的隱蔽性,本文選擇了IPv6協議中的4條包依賴的隱蔽通道構建混合通道.另外,使用單個數據包作為水印載體對網絡環境的穩定性有著極高的要求,為了提高水印信息的傳輸可靠性,本文將m個連續的數據包看作一個數據組Mi.
1) 跳限制字段.由于網絡的狀況以及路由信息的變化是高頻率觸發事件,該字段的值在實際的傳輸過程中會發生改變,所以水印嵌入端可以根據預先約定的內容自行設定或更改跳限制字段值.但是,跳限制字段值在經過若干個路由器之后,其變化不受控制,可能會影響到水印信息的提取.如果使用固定的解碼規則,就意味著將發送方和接收方固定在一個本地鏈路內或者固定了雙方通信鏈路中的路由器的跳數,這顯然是不符合實際網絡環境的.為了能夠識別跳限制字段中的水印信息,本文選擇了基于組差的水印嵌入方式.將每個數據組按數據包個數平均分為前后2部分,分別記為M(i,1)和M(i,2),將水印信息編碼為M(i,1)和M(i,2)的跳限制字段平均值差值.當要嵌入的水印位為0時,增加M(i,1)的跳限制字段值,減少M(i,2)的跳限制字段值,當要嵌入的水印位為1時,減少M(i,1)的跳限制字段值,增加M(i,2)的跳限制字段值.
2) 通信流字段.根據對實際環境中網絡流量的分析,使用該字段的前3位來傳遞水印信息,但是由于該字段可以被中間的節點改變,所以如果使用單個數據包隱藏水印信息可能會造成信息的丟失,所以在使用該字段傳遞水印信息的時候,隨機對整個數據組中一半的數據包進行重復性水印嵌入來提升水印信息傳輸的可靠性.
3) 流標簽字段.由于流標簽為0的數據包占據總數的大部分,為了減少對整體統計特性的影響,在每個數據組中只選擇2個數據包進行水印信息的嵌入,每次嵌入4 b的水印信息.同時為了兼顧流標簽的偽隨機性,在不同的數據包中插入水印信息的位置不同.本文采用輪詢插入法,假設當前數據組是第i個使用流標簽字段隱蔽通道進行傳輸的水印信息,則其水印的嵌入起始位置為i%16.
4) 時間間隔IPD.雖然IPD水印抵抗重組分片干擾的能力非常弱,但由于IPv6協議不允許中間節點對數據包分片重組,所以基于IPD的隱蔽通道在IPv6環境下可用性大大增加.將每個數據組按數據包個數平均分為前后2部分,分別記為M(i,1)和M(i,2),將水印信息編碼為M(i,1)和M(i,2)的IPD差值.當要嵌入的水印為0時,給數據組M(i,1)中的數據包添加額外的延遲,當要嵌入的水印為1時,給數據組M(i,2)中的數據包添加額外的延遲.
如圖6所示,水印使用復合窗口的方式進行嵌入,每個復合窗口包含2個連續的數據組,由于短時間內的流量具有一定的穩定性,所以設定第1個數據組為觀察組,用來決定使用的隱蔽通道;第2個數據組為嵌入組,用來嵌入水印信息.

Fig.6 Watermarking embedded in the composite window圖6 水印嵌入復合窗口
2.2.2 隱蔽通道選擇

1) 熵值差異
信息熵是香農從熱力學借用的概念,可以體現出數據在某個特征上的集中程度,對于網絡流量而言,當數據的特征值越分散,它的特征熵就越大,數據的特征越集中,特征熵就越小.
(4)
(5)
其中,H(S(k,p))代表第k個復合窗口的觀察組中序號為p的隱蔽通道的特征值信息熵,H′(S(k,p))代表加入水印信息后該隱蔽通道的特征值信息熵,Hdrk,p代表第k個復合窗口的觀察組中序號為p的隱蔽通道的信息熵差異值.差異值越大,則表示該隱蔽通道對原始流量的影響越大.
2) 均值偏差
通過比較原始流量和加入水印信息后的調制流量的均值偏差,選擇隱蔽通道.
(6)
其中,Avek,p代表第k個復合窗口的觀察組中序號為p的隱蔽通道的特征平均值,Adrk,p代表第k個復合窗口的觀察組中序號為p的隱蔽通道的均值偏差.均值偏差越大,則表示該隱蔽通道對原始流量的影響越大.
通過對信息熵差異值和均值偏差2個維度的計算,量化當前復合窗口的各個隱蔽性.
Ck,p=z×Hdrk,p+(1-z)×Adrk,p,
(7)
其中,z為自定義的偏重參數,取值范圍為[0,1],用來衡量隱蔽性計算中對不同維度的偏重程度,Ck,p代表第k個復合窗口的觀察組中序號為p的隱蔽通道的隱蔽性值,Ck,p的值越小,則表明該類型的隱蔽通道的隱蔽性越好.
隱蔽性的量化面向的是局部的復合窗口,在嵌入水印信息的時候,全局的統計特性也要納入考慮范圍之內.因為單個復合窗口攜帶的水印信息越多,對原始流量的影響越大,而在大部分情況下,并不需要最大限度地使用隱蔽通道的傳輸帶寬.所以本文在單個復合窗口中只使用一種隱蔽通道,進一步降低水印信息的嵌入對原始流量的影響.
設WL表示水印信息的長度,同時也代表了單冗余度下需要選取的復合窗口的數量.因為通信流字段和流標簽字段在實際網絡流量中有明顯的全局統計特征,需要優先考慮.剩余的部分則采用跳限制字段及IPD的隱蔽通道進行傳輸.因此,第k個復合窗口中序號為p的隱蔽通道Chk,p可以用3個維度的特征值來描述:
Chk,p={wlp,ck,p,np},
(8)
其中,wlp表示使用序號為p的隱蔽通道可以攜帶的水印信息長度,np表示序號為p的隱蔽通道的剩余可用次數.在順序嵌入水印信息的過程中,載體選擇當前復合窗口隱蔽性最好的通道,該過程如算法1所描述.
算法1.隱蔽通道選擇算法.
輸入:數據包序列P、通道使用次數np、水印信息長度L;
輸出:水印通道序列S.
① WHILEL>0 DO
② FORj=1:4 DO
③ calculate 窗口隱蔽性值集合Cj;
④ END FOR
⑤ choose ministCj;
⑥ IFnp>0 THEN
⑦ add 通道mtoS;
⑧ updatenpandL;
⑨ ELSE
⑩ removeCmout ofCj;
面向流速較慢的網絡傳輸場景,時間依賴的水印載體能夠更好地節約水印嵌入時長,降低對原始流量的影響,并且時間依賴的水印載體有更強的抗丟包干擾能力.由于混合水印載體擁有更好的隱蔽性和傳輸帶寬,本文設計了一種基于混合時隙的水印(mixed interval based watermarking, MIBW)生成方法,結合時間間隔重心和時間間隔2種載體實現地基水印和內部水印的嵌入.
2.3.1 基于時間間隔重心的地基水印嵌入方法
給目標流f設定一個隨機時間偏移o,經過時間o后對持續時長為Tin的目標流嵌入地基水印,設地基水印開始點的時間戳為t0.
對于長度為WLp的地基水印信息Wp,將Tin分成2n個長度為T的間隔Ii,每個Ii含有Xi個連續的數據包.數據包Pi,j(1≤i≤2n,1≤j≤Xi)的發送時間戳為ti,j,它相對于其所在間隔Ii開始點的時間偏移為Δti,j.
在2n個間隔Ii中隨機選擇n個間隔組成A組間隔I(A)k(1≤k≤n),剩下n個間隔組成B組間隔I(B)k.分別將組A和組B的間隔隨機分配,使得每2rp個間隔用來編碼一位水印位,其中rp表示地基水印信息的冗余度.

I(A)i,j和I(B),i,j分別為組A和組B中用作編碼第i位地基水印的第j個間隔.X(A)i,j和X(B)i,j分別為間隔I(A)i,j和I(B)i,j中的數據包數量,X(A)i和X(B)i表示編碼第i位地基水印的數據包的總數量,計算方法為
(9)
(10)
間隔I(A)i,j和I(B),i,j中第k個數據包Pi,j,k的時間偏移為Δt(A)i,j,k和Δt(B)i,j,k,分別聚合組A和組B中rp個間隔的時間戳,計算組A和組B的數據包的整體時間間隔偏移重心為
(11)
(12)
將每個地基水印編碼為Ai和Bi的時間偏移重心差Yi.當要編碼的地基水印信息是1時,通過增加Ai使Yi的分布向右平移,即在rp個間隔I(A)i,j中的數據包Pi,j,k發送前人為添加額外延遲,且間隔I(A)i,j即為內部水印的嵌入位置;當要編碼的地基水印信息是0時,通過增加Bi使Yi的分布向左平移,即在rp個間隔I(B)i,j中的數據包Pi,j,k發送前人為添加額外延遲.且間隔I(B)i,j即為內部水印的嵌入位置.
2.3.2 基于時間間隔的內部水印嵌入方法
地基水印信息嵌入時,需要在間隔中的數據包發送前人為添加額外延遲來改變重心的分布.在重心移動的同時,數據包數量的分布也發生了改變,為了更好地利用時間隱蔽通道,提升水印信息的傳輸帶寬,本文利用了重心移動的間隔實現基于時間間隔的內部水印嵌入.
內部水印的嵌入位置和嵌入長度都由地基水印確定.每一位地基水印信息確定一位內部水印信息的嵌入位置.內部水印的冗余度rin由內部水印信息長度WLin和地基水印決定.
在傳統的基于時隙的水印方法(例如IBW)中,往往需要借助下一個時隙來改變數據包數量差,但本文的地基水印使用的是連續的時間間隔,如果將數據包推入下一個時間間隔,可能會影響到地基水印的嵌入.為了保證內部水印信息的嵌入能夠在一個單獨的時間間隔中完成,將長度為T的間隔Ii平均分為3個小間隔,記為Subi(1≤i≤3),在〈Subi,j,1,Subi,j,2,Subi,j,3〉(1≤i≤WLin,1≤j≤rin)中,〈Subi,j,1,Subi,j,2〉用作編碼第i位內部水印的第j組嵌入的小間隔對,Subi,j,3為輔助小間隔,用于對內部水印進行輔助判斷.每個小間隔中含有X(Sub)i,j,k個連續數據包.
在不添加人為干擾的情況下,數據包的到達時間在每個小間隔中是均勻分布的,因此每個小間隔中所含有的包數量的期望u是相同的.將每個內部水印編碼為Subi,j,1和Subi,j,2的數據包數量差Y(Sub)i,j為
Y(Sub)i,j=X(Sub)i,j,2-X(Sub)i,j,1,
(13)
即可計算出用來編碼第i位水印信息的rin個Y(Sub)i,j的平均值為
(14)

Fig.7 Embedding with internal watermarking information 0圖7 嵌入內部水印信息為0

由于中間節點不允許對IPv6報文進行分片重組,因此在IPv6通信環境中,數據包數量是較為穩定的特征,內部水印更多地遭受到了丟包以及網絡延遲的威脅.為了增強內部水印的魯棒性,將小間隔劃分為安全區和危險區.如圖7所示,當要嵌入的內部水印信息為0時,給Subi,j,2中所有的數據包添加延遲,使其落入Subi,j,3中的安全區,Subi,j,1為時間間隔重心輔助調整區;如圖8所示,當要嵌入的內部水印信息為1時,給Subi,j,1中所有的數據包添加延遲,使其落入Subi,j,2中的安全區,Subi,j,3為時間間隔重心輔助調整區.
2.3.3 水印檢測
針對地基水印信息,通過記錄每一間隔內的所有數據包的到達時間偏移,由式(11)和式(12)計算組Ai和組Bi的數據包到達時間偏移重心,得到時間偏移重心差Yi.當Yi>0時,判定地基水印信息為1;否則,判定地基水印信息為0.

基于混合時隙的水印信息在增強了隱蔽性的同時也導致了更高的誤差概率.因此,如何控制水印的差錯就顯得十分重要,糾錯碼的核心設計思想是增加冗余信息.低密度奇偶校驗碼(low-density parity-check codes, LDPC)是一種線性分組碼,可以將長度為L的特征序列,通過編碼器添加WL-L位校驗碼元,變成長度為WL的水印信息,L位特征序列與WL-L位校驗碼元呈線性關系.則水印信息可以用(WL,L)來表示.
LDPC碼的編碼方法可以簡單地表示為特征序列與生成矩陣G相乘的結果,但是由于通過生成矩陣G直接編碼,運算的復雜度比較高,所以本文選擇對校驗矩陣H高斯消元進行編碼,如果在高斯消元的過程中進行了列交換,則需要對水印信息進行相應位交換得到水印傳輸信息再進行嵌入工作.
收到經過LDPC編碼的水印傳輸信息后,將水印傳輸信息與校驗矩陣H相乘,如果結果是0矩陣,則表明收到的水印傳輸信息是正確的.反之,則表示收到的水印傳輸信息有誤,需要根據相乘的結果進一步糾錯解碼.因為水印傳輸信息屬于短碼,所以本文使用了實現相對簡單的硬判決譯碼算法比特翻轉(bit flipping, BF)譯碼算法.在使用BF譯碼算法時,需要設置一個閾值,當水印傳輸信息位不滿足校驗關系式的方程個數超過這個閾值時,則表示該水印傳輸信息位譯碼出現了錯誤,需要將該水印傳輸信息位翻轉后再次進行譯碼工作,直到譯碼正確或者譯碼的迭代次數超過了預設的值.最后,根據校驗矩陣H高斯消元過程中的列交換情況,將水印傳輸信息還原成水印信息,并提取出特征水印序列.
本文在如圖9的實驗環境中進行水印信息傳輸測試,其中,發送端的IP地址為2001:da8:1002:6004:1:45fa,接收端的IP地址為2001:da8:1002:315:91de:3992:c2a2:6170,發送端與接收端都位于江蘇省南京市教育網內,操作系統均為64位Ubuntu20.10.本實驗使用了WIDE Project項目的IPv6數據集進行測試,數據采集自日本到美國的某條骨干網絡的網絡流量.從數據集中選取10條不同的流作為測試集進行測試,每條流的數據包數量不少于8 000個.在發送端對測試集進行流量重放,并通過水印嵌入機進行水印信息的嵌入.

Fig.9 The architecture of concealed channel system圖9 隱蔽通道系統結構
3.2.1 基于混合隱蔽通道的水印方法
在實際的通信過程中,攜帶水印信息的網絡流可能會受到時延、丟包等因素的干擾.在干擾環境下正確傳輸水印信息的能力可稱作隱蔽通道的魯棒性.從理論上分析,基于字段修改的3種隱蔽通道對數據包本身有更強的依賴性,而基于IPD的隱蔽通道則會對時間更加敏感.由于發送端和接收端在沒有經過中間跳板主機的情況下直接進行通信,網絡環境較好,所以需要人為地添加一些干擾來進行測試.本次實驗中,選擇時隙特征序列作為水印信息,隱蔽性偏重參數為0.5,4種隱蔽通道的使用比例為4∶1∶1∶4,水印信息長度為16 b,冗余度為2,誤差閾值為3.

Fig.10 Effect of delay on the detection rate of Mixed Channels圖10 延遲對混合通道檢測率的影響
圖10描述了不同延遲對混合隱蔽通道檢測率的影響.隨著最大抖動延遲的增加,混合通道的檢測率在不斷地下降,但是可以通過增加數據組的容量來提升檢測率.這是由于基于頭部字段修改的隱蔽通道和基于IPD的隱蔽通道都非常依賴分組的到達順序,隨著數據組容量的增加,發生錯位的數據包對于整個數據組而言只是非常小的一部分,不會影響到數據組的整體特征.當數據組容量達到8個數據包時,在300 ms最大抖動延遲條件下已經可以達到90%的檢測率.
圖11描述了不同丟包率對混合隱蔽通道檢測率的影響.由圖11可知,丟包對混合隱蔽通道的檢測率有著較大的干擾性,在丟包率較小的情況下,增大數據組能夠提升檢測率,但是隨著丟包率的增加,過大的數據組反而成了拖累,小容量的數據組表現出更好的檢測率.造成這種現象主要有2個原因:1)本文使用的4種隱蔽通道對于丟包的抗干擾性都很弱,基于字段修改的隱蔽通道依賴字段值提取水印信息,如果數據包大量丟失,就很難從中恢復出正確的信息.基于IPD的隱蔽通道依賴相鄰數據包的到達時間差,數據包的丟失使得原本不相鄰的數據包變成了相鄰數據包,提取出的IPD值可能為原來多個IPD值的和.2)雖然通過數據組的方式增加了單個水印位的容錯率,隨著丟失的數據包數量的積累,復合窗口的選取誤差越來越大,讀取水印信息的窗口與嵌入水印信息的窗口發生了位移,導致水印信息無法提取恢復.

Fig.11 Effect of packet loss on the detection rate of mixed channels圖11 丟包對混合通道檢測率的影響
3.2.2 基于混合時隙的水印方法
單個時間間隔內的數據包數量對檢測率有很大的影響.設地基水印和內部水印的長度都為48 b,其中特征水印序列32 b,校驗位16 b,時間偏移o=20 000 ms,地基水印冗余度為3,地基水印和內部水印的誤差閾值都為3.本文通過調整單個時間間隔內的數據包數量,對網絡流進行多次實驗,測試單個時間間隔內的數據包數量對水印檢測率的影響.
由圖12可知,隨著單個時間間隔內的數據包數量增加,2種水印的檢測率都在不斷提高.在時間間隔內數據包數量較少時,由于內部水印需要對當前間隔再次分割,使得小間隔中的數據包數量極其不穩定,影響到內部水印的嵌入.例如當數據包數量為3時,小間隔中可能會存在沒有數據包的情況,致使無法正確地嵌入內部水印,因此相較于地基水印檢測率更低.但是隨著時間間隔內數據包數量的增加,內部水印的檢測率提升幅度比地基水印更快.當單個時間間隔內的數據包數量為12時,在設定的誤差閾值下,內部水印和地基水印都能夠達到95%的檢測率.

Fig.12 Effect of packet numbers in a time interval on the detection rate圖12 時間間隔數據包數量對檢測率的影響
為了驗證延遲抖動對檢測率的影響,使用了Linux操作系統中的流量控制器TC對發送的數據添加延遲.本次實驗,對比了不同的最大網絡延遲下ICBW方案及本文提出的MIBW方案針對原始特征水印序列和LDPC碼水印信息的檢測率.其中,特征水印序列都為16 b,水印信息都為24 b. ICBW方案的水印為地基水印和內部水印的集合.時間偏移o=12 000 ms,冗余度r=6,時間間隔長度T=800 ms,時間間隔內的平均數據包數量為12.7. ICBW方案的誤差閾值為6,地基水印和內部水印的誤差閾值為3.
由圖13可知,隨著網絡延遲的增加,2種方案的檢測率都在不斷下降.通過比較圖13(a)和圖13(b)可得,使用LDPC碼水印能夠提升不同網絡延遲下的水印檢測率,尤其是對于低冗余度下的MIBW方案提升較大.其中,低延遲場景下的地基水印收益最為明顯,這是由于地基水印受到了內部水印的限制,時間間隔重心的移動范圍變小,導致地基水印在嵌入時就產生了錯誤.實驗表明通過增加冗余或使用LDPC碼水印,可以有效降低嵌入錯誤的影響.當延遲過高時,水印的誤碼率也隨之提升,受到LDPC碼糾錯能力的限制,檢測率的提升十分有限.在使用LDPC碼水印時,內部水印由于間隔長度遠小于ICBW和地基水印,所以在低延遲下,檢測率相對較低.但在延遲較高的情況下,地基水印的表現反而不如內部水印,除了因為地基水印的質心移動距離有限以外,時隙質心特征序列受到網絡延遲的影響更大.所以,MIBW方案可以在損失有限檢測精度的條件下,實現更高帶寬的水印信息傳輸;在同樣的水印傳輸帶寬下,MIBW方案表現出了更好的檢測率.

Fig.13 Effect of delay on the detection rate圖13 網絡延遲對檢測率的影響

Fig.14 Effect of packet loss on the detection rate圖14 丟包率對檢測率的影響
為了測試丟包對檢測率的影響,使用了Linux操作系統中的流量控制器TC對發送的數據隨機丟包.由圖14可知,隨著丟包率的增加,2種方案的檢測率都在不斷下降.通過比較圖14(a)和圖14(b)可得,由于整體的檢測率較高,使用LDPC碼水印對于不同丟包率下的水印檢測率的提升幅度較為平均,但仍然對低冗余度下的地基水印提升較大.在相同的冗余度下,MIBW方案的檢測率略低于ICBW方案,但其嵌入水印的時間間隔數只有ICBW方案的一半,這表明MIBW方案能夠在較高的水印傳輸帶寬下保持穩定的檢測率.在水印信息帶寬相同時,MIBW方案由于冗余度的增加,表現出了更優秀的檢測率.在低丟包率場景下,內部水印相較于地基水印有更強的抗丟包干擾能力,這是由于內部水印可以通過輔助間隔進行二次判斷.當丟包率較高時,部分荷載水印序列的提取出現了誤差,致使內部水印的檢測率有所下降.
3.3.1 基于混合隱蔽通道的水印方法
本節使用了基于孤立森林的水印信息檢測方法.孤立森林算法是一種常見的無監督異常檢測算法,由于帶有水印信息的流量滿足2個異常數據所具有的特性:1)嵌入了水印信息的流量與原始流量不完全一致;2)該部分流量在整體流量中占比較小.所以本文將原始流量看作正常數據,將帶有水印信息的流量看作異常數據.與傳統的單一統計學檢測方法相比,孤立森林的準確度更高.實驗對比了使用混合隱蔽通道和使用單一通道的異常檢測情況.異常識別率表示被正確劃分為異常數據的樣本個數占隱蔽流量樣本總個數的比例,異常識別率越低,說明帶有水印信息的隱蔽流量越接近原始的流量,通道的隱蔽性越高.
由圖15可知,使用單一隱蔽通道傳輸水印信息時,通信流類別字段和流標簽字段可以被準確識別,而對跳限制字段及IPD隱蔽通道的識別率則相對較低,證明后者的隱蔽性略強一些.在使用混合隱蔽通道傳輸水印信息后,不同隱蔽通道的異常識別率都有所下降,但通信流類別字段的異常識別率仍然居高不下,這是由于該字段的值存在高度集中性,少量水印信息的嵌入也會對通道造成較大的影響.同時,高度集中的分布特性也造成了該字段的誤檢率非常高,即原始流量被錯誤地識別為異常流量,這從另一方面彌補了一部分通道的隱蔽性缺失,因為攻擊者很難分辨這些異常數據中哪些是帶有水印信息的,哪些是原始流量,這也增加了對水印信息的識別及攻擊難度.

Fig.15 Accuracy of anomaly detection in the covert channel圖15 隱蔽通道異常檢測識別率
基于混合隱蔽通道的水印生成方法是基于IPv6流量特征的全局統計特性來設計的,所以進行水印嵌入的數據包數量對實驗結果有很大的影響.根據使用混合隱蔽通道和使用單一通道的異常檢測情況,動態地調整不同隱蔽通道的使用比例,更多地使用異常識別率較低的跳限制字段和IPD來進行水印信息的嵌入.雖然復合窗口的大小也會對實驗結果產生影響,但異常檢測更關注的是比例而非具體的數值,所以本實驗以水印嵌入度,即嵌入水印信息的數據包占總的數據包數量的比例為變量,測試不同情況下使用混合隱蔽通道的異常識別率.
由圖16可知,隨著水印嵌入度的降低,異常識別率也隨著降低,當水印嵌入度降至0.1左右時,異常識別率趨于穩定.所以,可以將0.1作為水印嵌入度的閾值.同時,實驗也比較了不同數據組容量下的異常識別率,當數據組容量增加時,異常識別率有所下降,但其降幅不大,相較于嵌入水印所需的數據包數量的增量而言,收益不高,并且在保證較低異常識別率的前提下,隨著數據組容量的增加,水印信息的容量不斷被壓縮,水印傳輸的魯棒性也會受到影響.

Fig.16 Effect of watermarking embedding degree on abnormal recognition rate圖16 水印嵌入度對異常識別率的影響
3.3.2 基于混合時隙的水印方法
網絡流水印的隱蔽性主要是為了給水印信息提供安全保障,避免信息在網絡傳輸的過程中被第三方識別或破壞.嵌入水印信息的網絡流與原始目標流的相似程度決定了水印的隱蔽性.目前針對水印的檢測方法主要包括基于特征的測試和基于規律的測試.基于特征的測試主要使用如方差、均值、分布等一階的統計量.基于規律的測試通常使用多維的統計數據,機器學習算法也開始被用于水印的發現和檢測.本部分將通過2種基于特征的測試方法來檢驗網絡流水印的隱蔽性:1)K-L測試,從相對熵的角度評判水印流和原始流之間的差異性;2)K-S測試,通過計算水印流和原始流之間的IPD的經驗累積分布函數的最大值,判斷水印的隱蔽性.
如圖17所示,當觀察的時間間隔數量增多后,K-L散度值和K-S值都趨于穩定,MIBW方案的K-L散度值穩定在0.18左右,K-S值穩定在0.1左右.雖然MIBW方案與IBW方案、ICBW方案都是基于時間間隔的方案,但是比起這2種方案,其隱蔽性會更優一些.1)因為內部水印的嵌入對原有的間隔進行了二次劃分,細化了時間間隔,這就意味著在水印嵌入時減少了人為添加的數據包延遲,K-L散度值會變??;2)由于地基水印間隔對的使用以及內部水印位置的隨機性,降低了短時間內無數據包到達間隔的出現幾率,使得K-S值有所下降;另外MIBW方案提高了水印信息傳輸的帶寬,這也意味著傳輸同樣長度的水印信息,需要依賴的時間間隔減少,對原始流量的影響也會減少.

Fig.17 Test on K-L and K-S圖17 K-L及K-S測試
針對基于時間間隔的水印方法,多流攻擊(MFA)能夠發現水印信息的存在,甚至能夠通過分析得到水印中的部分參數,給水印的隱蔽性和安全性帶來極大的隱患.MFA測試依賴于收集多條帶有水印標記的流,并將這些標記流合并成一個單獨的流,通過檢查數據包之間的時間間隔來判斷水印是否存在.為了驗證MIBW方案可以比較好地抵御多流攻擊,本文將其與另外2種基于時間間隔的方法進行比較.在本次測試中,每條混合流包含5條單流,測試時長為10 s,其中IBW方案和ICBW方案嵌入的水印信息都為固定水印信息,其他的參數都保持一致.
如圖18所示,MIBW方案相較于IBW方案和ICBW方案并沒有出現明顯的數據包空窗區,即沒有出現一定時間內無數據包到達的情況,這證明了MIBW方案能夠有效地抵御多流攻擊.1)由于MIBW方案嵌入的水印信息并不是固定的二進制序列,而是根據目標流生成的特征水印序列,這樣可以保證在多條流中嵌入的水印信息不同.2)基于地基水印進行內部水印的二次嵌入,隨機化了內部水印的嵌入位置,降低了水印的規律性.此外,時間間隔的二次劃分減少了人為添加的延遲量,能夠降低出現數據包空窗區的概率.

Fig.18 Packet distribution in the multi-stream attack圖18 多流攻擊數據包分布
IPv6協議作為未來的主流網絡層通信協議,近年來得到了廣泛地關注.本文對面向IPv6環境的水印生成技術進行了重點研究,結合IPv6協議的報文標準及中間節點不分片的機制,基于目標流關聯的特征水印序列,針對不同的網絡傳輸場景,制定了包依賴和時間依賴的水印嵌入方式,在保證一定準確率的前提下,降低水印嵌入對原始流量的整體影響,提高水印的隱蔽性,為追蹤IPv6網絡空間威脅提供手段.
致謝本文由國家網絡空間國際治理研究基地(東南大學)以及CERNET華東(北)地區網絡中心提供實驗環境支撐.