薛智宇
(中國石油大學(華東)計算機與通信工程學院 青島 266580)
隨著互聯網的迅猛發展和廣泛應用,網絡上的隱私問題受到越來越多的關注。為保證用戶身份的隱私性,研究人員設計了多種匿名通信系統,如Crowds[1],Tor[2],Anonymizer[3]等。這些系統大多采用重路由技術,在發送者和接收者的通信路徑上插入一個或多個中間節點,在對數據包進行轉發的同時改寫其中的IP 地址等相關信息,隱藏數據包的來源、目的及出入關系。使得攻擊者從數據包中獲得的IP 地址并非屬于真正的發送者或接收者,從而無法推斷準確的通信關系。然而,匿名通信技術在保護用戶身份隱私的同時,也可能為不法分子所利用而進行犯罪活動,身份的隱藏給網絡犯罪的調查與追蹤帶來了嚴峻的形勢,給攻擊源追蹤、網絡監管和攻擊取證等帶來嚴峻挑戰。
針對這一問題,提出了多種匿名通信追蹤方案。從實施對象和層次上,大致可將其分為兩類:通信流層追蹤技術和匿名協議層追蹤技術。兩類技術各有所長,總體而言,由于在通用性和資源需求方面具有優勢,通信流層追蹤技術的應用更為廣泛。網絡流水印[4]作為一種主動流量分析[5]手段,可用于追蹤通過跳板鏈進行的網絡攻擊源或采取匿名通道進行非法通信的惡意用戶。但是由于傳統的網絡流水印技術需要在網絡中進行嵌入點的部署,資源消耗大且易于引起警惕,一直無法大規模實施。
隨著軟件定義網絡(Software-Defined Networks,SDN)的出現[6],促進了匿名通信追蹤技術的發展,其將數據平面與控制平面相分離,提高了網絡的可編程性。交換機僅提供簡單的數據轉發功能,可以快速處理匹配的數據包,適應流量日益增長的需求。數據層和控制層之間采用開放的統一接口(如OpenFlow[7]協議)進行交互。目前已廣泛應用于校園、數據中心和廣域網。傳統網絡中的追蹤方案可以直接部署于SDN 中的數據層,因此,SDN技術能夠有效降低設備負載,協助網絡運營商更好地控制基礎設施,降低整體運營成本,成為最具前途的網絡技術之一。本文針對傳統匿名追蹤模型的部署等問題,研究結合SDN交換機和控制器對網絡中的數據流的控制機制與網絡流水印技術,提出一種新型基于SDN 的匿名通信追蹤模型(SDN-based Anonymous Communication Tracking,SACT),利用IP 隱通道[8]來進行水印信息的寫入,解決部署問題,提高隱蔽性的同時對數據進行追蹤。對于解決攻擊源跟蹤、網絡監控和取證困難等問題具有重要意義。
網絡流水印(Network Flow Watermarking)作為一種主動流量分析手段,可用于追蹤通過跳板鏈進行的網絡攻擊源或采取匿名通道進行非法通信的惡意用戶。通過向發送者的發送流量中主動添加水印來幫助確認發送者和接收者的通信關系,利用諸如數據包之間的時間間隔、目標流量的速率等隱通道信息進行追蹤,將“跳板鏈”或匿名信道作為“黑盒”處理,只關心進出這個“黑盒”的網絡數據報文流的特征[9]。網絡流水印技術具有準確率高、誤報率低、觀測時間短和所需觀測數據包數量少等優點。
張璐等[10]提出了基于時隙質心流水印技術,采用擴頻技術對水印信號進行編碼,以不依賴于特定流的時隙質心作為水印載體,使用數據包時間間隔(IPD)技術,通過給每個IPD 增加固定的值來嵌入水印信息,由于該技術使用固定值對IPD 進行調制,導致抵御時間擾亂特性較弱,且隱蔽性不強。
為了解決當前網絡數據包在嵌入水印時需要對數據包的內容進行修改以及分組方式單一性的問題,文獻[11]提出基于變化窗口間隔分組包延遲均值水印技術,通過統計分析不同窗口內IPD 的均值進行水印的嵌入和提取,同時采用了碼分復用的思想對水印信息擴頻后再發送,實現了自適應糾錯性能,提高了檢測效率。但是其為調高抗干擾性而采用的擴頻機制降低了水印容量,并且由于該方法使用的偏移值根據不同的網絡變化情況可能無法進行正確地估計選擇,因此會影響檢測的準確率。
現有網絡由單獨運行的、封閉的設備連接構成,每臺設備都有單獨的操作系統,內置許多相關協議,并通過路由協議等來交換可達信息,而以上方法因為算法的復雜性等問題,無法在傳統交換機或路由器上進行部署,均需要在相應的網絡環境下加入水印嵌入器等額外的設備,接管全部的網絡流量,對網絡的部署修改將會是一個大規模的、復雜的、高耗費的工作,對方法的實施產生障礙。SDN的出現為解決該問題增加了契機。印蘇凱[12]等提出一種基于響應報文次序組合調制的多流時間式隱信道設計方案,該方案利用控制器與多交換機之間的鏈路層發現協議響應報文到達的次序分布構建組合累計分布函數并調制秘密信息,但無法應用于常用數據協議包,缺乏追蹤性。
如上所述,雖然在水印匿名跟蹤技術方面做了大量的研究工作。如何平衡實用性和資源開銷,以及如何更科學地嵌入和提取水印是一個需要進一步研究的問題。為了解決上述問題并進一步提高網絡流水印方法的可應用性,本提出了基于SDN的流水印匿名通信追蹤模型。
本文采用SDN 架構進行模型系統的實現,圖1中的概念模型描述了SACT 的工作模型。如圖所示,例如為確認客戶端A 與客戶端B 是否存在通信行為,控制器X 將水印信息W 嵌入到A 發送的數據包流之上,并發送到通信網絡中。數據流到達B 所在的網絡交換機之后觸發流表動作,通知Y 從中提取水印W' 。若W' 與W 的相似度小于閾值η,則認為A與B存在通信行為。

圖1 SACT工作模型
為了使數據平面可追蹤,需要在SDN控制器上安裝追蹤應用。追蹤控制器通過修改要安裝的流表項,或者將其他條目安裝到數據平面以啟用追蹤功能。在數據平面中,當支持SACT 追蹤模型的OpenFlow 交換機接收到數據包時,會查找流表中的匹配條目。匹配項的動作可以確定數據包的協議類型。如果協議類型為非水印嵌入類型,則將該數據包轉發到下一個SDN 交換機。如果協議類型為水印嵌入類型,則該包將通過PACKET IN 消息發送給控制器,其中包含匹配流表項的附加信息,包括交換機收到此包時的交換機ID,輸入端口,時間戳等。當控制器上的追蹤應用收到此消息時,它可以將數據包的來源相關信息轉化為水印信息并嵌入到數據流中返回給交換機進行轉發。該跟蹤信息不僅可以包括匹配的流表項,交換機標識等,還可以包括其他網絡運行信息,可以根據需要定義。
SACT采用SDN北向接口協議緩存機制和流表機制控制網絡數據流量以及捕獲所需數據包流來進行水印信息的嵌入,SACT 利用數據包間隔到達時延來進行水印信息的寫入,其優點是不需要時鐘同步,它利用IP 數據包傳輸時間間隔來編碼信息,不必改動數據包,具有較高的隱蔽性。對信息的編碼形式擬采用同源數據包進行編碼,即捕獲同種協議、同一端口的數據包,例如捕獲利用FTP 協議傳往同一端口的數據包進行編碼信息。其工作過程如下:
1)SACT程序載入水印信息并通過譯碼器將其轉碼成二進制比特流B,長度為L。
2)卷積碼[13]是一種性能優越的信道編碼,它的編碼器和譯碼器都比較容易實現,卷積碼主要用來糾正隨機錯誤,它的碼元與前后碼元有一定的約束關系,同時具有較強的糾錯能力。而且特別適合以串行形式進行傳輸,時延小。
SACT 引入卷積碼的編碼方式,將水印比特流B 通過編碼效率為1/2 的卷積碼進行擴展輸出,將序列B卷積擴展后成為序列E,則E長度為2L。
3)為了解決引入卷積碼導致的信道容量降低問題,本文引入L-bits to N-packets 編碼方案[14]。設發送端先后發送2 個IP 數據包a 和b,發送時間分別為ta和tb,則間隔時間T=tb-ta。在該編碼方案中,每L 比特字符串被映射為N 個IP 數據包間隔(T1,T2,…,Tn),其中Ti必須取值于集合E={T:Tmin+n·I,n = 0,1,…}。Tmin表示時間間隔序列中的最小時間間隔,I 表示相鄰時間間隔之間的步長。以“2-bits to 1-packets”編碼方案為例,令Tmin=20 ms,I=10 ms。結果如表1。序列E 編碼后得到數據包間隔時間序列M。

表1 L-bits to N-packets編碼方案
4)最后,根據調制好的時間間隔序列M來控制發送線程,將這些信息加載于宿主IP 包流之上向交換機下發Packet Out 消息控制交換機進行后續轉發操作,從而完成水印嵌入。
已嵌入水印的數據包流經過網絡傳輸后,到達接收方,SDN交換機根據流表篩選出需要解調的數據包,上傳到SDN 控制器后SACT 程序提取每個數據包到達的時間時延信息,根據發送方對應階段使用的變換函數,將數據包間隔時間序列進行逆變換,將解調后得到的時間間隔序列按照編碼表通過轉碼得到對應的比特序列。
當收發雙方處于不通網絡區域時,復雜的網絡環境會引入各種干擾,使發送的時間間隔與接收到的時間間隔不一致,因此,為了保證水印信息的正確確認,需要在接收端進行抗干擾處理,即對時間間隔進行校正。根據可選時間間隔集合E 以及時間間隔步長I,校正函數C滿足:

其中:Ti=Tmin+(i-1)I(i=1,2,…,n),若接收到的間隔時間為x,且x∈[Ti-I/2,Ti+I/2),則認為發送端傳來的時間間隔為Ti。這種動態的調整機制保證了IP 時間隱通道的誤碼率在可控、可估算的范圍內。
校正得到比特信號序列即卷積序列后,使用Viterbi 解碼算法將其與所有可能的發送序列比較,選擇其中漢明距離[15]最小的序列作為發送方所發送的信號序列,并根據卷積碼編碼的網格圖由此序列回溯得到編碼前的信號序列B'。
最后計算提取恢復的水印序列與原始水印序列的相似度。將得到的序列碼B'與原始嵌入水印碼B 進行相似度計算。由于在卷積碼譯碼過程中,已經使用了漢明距離進行分析,因此選擇余弦相似度進行分析。

由于式(2)中自變量參數的值Bi∈{0,1},B'i∈{0,1},均為非負值,因此得到的值域范圍為0 ≤sim ≤1。通過設定置信區間閾值參數進而度量提取恢復的水印序列與原始水印序列的相似度。若計算結果在設定置信閾值中,則判定檢測的數據包流中嵌入了水印,即進行監測的通信雙方存在關聯關系,否則不存在通信關系。
為了驗證SACT 的性能,本文實現了這種匿名通信追蹤模型系統,并在TCP/IP 網絡環境下進行了性能測試。實驗程序基于SDN架構實現,控制器在目前較主流的SDN 開源控制器之一的Floodlight基礎上開發,為操作數據包與流表提供接口。應用程序在Ubuntu系統下開發,使用Eclipse開發工具,以Java 編程語言實現,由于網絡傳輸擁塞情況不同,因此相鄰數據包發送時間間隔在實際運行中將存在諸多的干擾因素,因此在實驗中采用滿足不同標準差正態分布的數據包傳輸抖動時間,模擬多種網絡數據包傳輸情況并分析不同標準差的抖動時延和間隔步長對SACT模型的魯棒性的影響。
實驗過程中,發送端寫入的水印信息按字節序讀取、轉換為比特序列,共傳輸了8000 bit信息。實驗首先測試了SACT 在固定數據包時間間隔步長I=40ms 時,不同網絡時延抖動標準差σ下的檢測率(對應水印序列的相似率),結果如圖2所示。

圖2 不同σ下的誤碼率
由圖2 可知,網絡時延抖動標準差σ越小,抖動對檢測率產生的影響越小,SACT的檢測率越高,若預設置信區間為[0.8,1],則可準確判斷水印的存在性,從而證明通信雙方存在通信關系。這表明,本文提出的匿名通信追蹤模型能夠在大部分網絡中可靠、穩定地工作。
為了進一步考察所設計模型的魯棒性,實驗對比SACT 模型與傳統的水印技術INBFW 模型在局域網和廣域網兩種網絡環境下的誤碼率。
在對比過程中,分別測試了兩種模型在不同情況下的誤碼率。
1)固定數據包時間間隔步長(I=30 ms),分別測試在不同時延抖動均方差σ下的誤碼率。
2)固定網絡時延抖動均方差(σ=4),分別測試在不同數據包時間間隔步長I下的誤碼率。測試結果如圖3、4所示。

圖3 相同I不同σ下的誤碼率比較

圖4 相同σ不同I下的誤碼率比較
從圖中可以看出,在這兩種情況下,SACT的傳輸誤碼率均小于INBFW。由此可見,SACT 提升了匿名通信追蹤的魯棒性。而且相對于INBFW 復雜的配置過程,SACT具有更高的可配置性和可用性。
本文針對傳統匿名通信追蹤方法在傳統網絡結構下難以部署、復用性、擴展性差的問題,結合SDN新型架構與網絡流水印技術,利用SDN將控制平面與數據平面相分離的架構優勢,提出一種新型匿名通信追蹤模型SACT。為了驗證SACT 的魯棒性,通過與INBFW 模型在不同網絡環境下進行誤碼率對比實驗,實驗結果表明,在多種網絡環境下SACT 具有更高的魯棒性,能夠可靠地確認追蹤雙方的通信關系。對于解決攻擊源跟蹤、網絡監控和取證困難等問題具有重要意義。下一步工作將研究該技術在廣域網下如何提高抗檢測性的問題。