王芳鳴,王 斌,陳志浩,常承偉,趙 磊
(中國航天科工集團第二研究院 七〇六,北京 100854)
目前比較典型的匿名通信系統有Tor[1]、Anonymizer[2]、I2P[3]、Freenet[4]等。其中第二代洋蔥路由Tor作為目前使用率最高的匿名通信系統,具有擁塞控制、前向加密、目錄服務等機制,在一定程度上保證通信的匿名性,防止個人敏感信息的泄露。然而目前Tor在實際應用中依然存在一些問題,比如通信鏈路建立前,客戶端選擇網絡路由存在著一定的盲目性和不確定性,一旦受控節點被選為出口節點,攻擊者就可以向Tor用戶發動中間人攻擊,對數據進行竊取或篡改。此外,Tor系統由于在數據傳輸過程中涉及到復雜的加解密過程,會使網絡延遲明顯增大,給用戶帶來不好的體驗。
本文基于SDN[5]集中控制理念和集群思想提出一種匿名通信系統架構,由一個控制中樞來對底層網絡設備下發控制指令,利用多約束最優路徑規劃算法建立匿名通信路徑,保證系統匿名性的同時,降低數據包的轉發時延,也使網絡架構具有更好的可控性和抗攻擊能力。
本文結合SDN網絡集中控制理念和集群思想提出一種新型匿名通信系統的設計方案,方案中匿名通信網絡由統一的控制中心和多個集群構成,每個集群由一個管理員和若干個具有匿名通信需求的普通成員構成。控制器是整個系統的計算者和控制者,管理員負責管理本集群內的普通成員。
匿名通信網絡建立后,控制器通過OpenFlow協議定期獲取網絡中節點的剩余帶寬和在線時長等信息,動態的選擇相應節點,利用多約束最優路徑規劃算法建立匿名通信路徑。路徑建立后,系統采用轉發機制來實現匿名功能,控制器下發流表到路徑中各個交換機來指揮數據包的轉發,使系統能夠在短時間內對主機的匿名請求做出響應。在通信過程中,接收者不知道信息的發送者是誰,發送者和接收者也無法獲取對方的真實地址,路徑中的中繼節點只具有單純的轉發功能,實現了發送者與接收者的不可關聯性,從而使匿名通信服務更加安全、可靠。
本文結合SDN網絡集中控制理念和集群思想提出一種匿名通信系統架構,并對傳統的Dijkstra算法進行拓展,實現多約束條件下的路徑選優,基于SDN的匿名通信系統設計如圖1所示。

圖1 基于SDN的匿名通信系統設計
1.2.1 系統架構
軟件定義網絡的主要特點是將控制功能從網絡設備中提取出來,網絡的控制平面在控制器上,轉發平面在網絡設備上,實現了控制層與數據轉發層的分離。基于SDN的匿名通信網絡架構如圖2所示,從上往下分為應用層、控制層以及數據層。應用層包含了匿名通信服務等相關網絡應用。控制平面負責網絡控制,主要功能為協議處理與計算。控制器獲取系統中網絡設備之間的連接信息,并對連接信息進行處理,通過OpenFlow協議定期獲取網絡中主機的剩余帶寬等信息,根據這些信息挑選最優轉發節點來建立最優轉發路徑。數據平面搭建網絡拓撲,交換機根據控制平面下發的流表完成數據的轉發和處理。

圖2 基于SDN的匿名通信網絡架構
系統可以看作是由一個控制器和多個交換機及主機組織起來的覆蓋網絡,將網絡中的主機劃分為多個集群,每個集群中有一個主機作為該集群的管理員。其中,SDN控制器負責維護網絡中交換機節點的相關信息,建立匿名通信路徑以及指揮網絡中的數據包轉發。各集群管理員負責維護該集群中普通成員的地址映射關系,為該集群中普通成員請求并建立匿名通信。
Fat-Tree網絡基于傳統的樹形拓撲,該網絡結構共分為3層,如圖3所示,從下到上依次為邊緣層、匯聚層和核心層。3層的網絡架構為使用者提供了多種數據包傳輸路徑選擇,在一定程度上提高鏈路資源的利用率,保證網絡負載均衡,提升系統容錯性。邊緣層由各集群管理員組成,管理員主機上部署的交換機與普通成員主機直連,連接同一管理員交換機的普通成員屬于同一集群。在管理員主機上部署OVS交換機,OVS是一個支持多層數據轉發的虛擬交換機,提供在虛擬化環境中遠程管理的OpenFlow協議,可應用于SDN網絡。匯聚層處于邊緣層和核心層中間,主要負責提高網絡資源利用率,保證網絡負載均衡,避免網絡擁堵。核心層交換機主要負責轉發匯聚層交換機之間的數據包。

圖3 基于SDN的匿名通信網絡拓撲結構
1.2.2 匿名通信機理
匿名通信過程中,控制器接收并響應發送方的匿名通信請求,動態選擇相應交換機節點,建立匿名通信路徑。假設Alice和Bob是匿名通信系統中的兩個普通成員,Alice作為發送方要與接收方Bob進行匿名通信,Alice所在集群的管理員為管理員A,匿名通信的請求與建立過程如圖4所示:

圖4 匿名通信的請求與建立
(1)Alice向其所在集群的管理員A發送與Bob的匿名通信請求;
(2)管理員A向控制器提出與Bob進行匿名通信的請求;
(3)控制器向各集群管理員發送流表,詢問Bob是否在該集群中;
(4)Bob所在集群的管理員返回Bob的IP地址、mac地址等地址信息以及Bob的公鑰B給控制器;
(5)控制器根據OpenFlow協議定期獲取的交換機節點相關信息,通過多約束最優路徑規劃算法為管理員A建立一條通往Bob的匿名通信路徑。控制器用自己的私鑰C給公鑰B加密,生成數字簽名B。控制器將公鑰B和數字簽名B整合到一起生成證書,將證書和證書的公鑰C一起發送給管理員A;
(6)管理員A轉發證書和證書的公鑰C給Alice,表示Alice通往Bob的匿名通信路徑已建立完成;
(7)Alice收到證書,并用公鑰C對證書中的數字簽名解密,得到哈希值B。同時對公鑰B進行哈希運算,并將結果與哈希值B對比,如果相同,則證書合法。Alice將要發送的信息和自己的公鑰A打包,用Bob的公鑰B加密后發送給管理員A;
(8)管理員A轉發中繼消息給Bob;
(9)Bob收到數據包后用自己的私鑰B解密,再用Alice 的公鑰A加密應答消息發送給管理員A;
(10)管理員A將返回的中繼消息轉發給Alice,Alice用自己的私鑰A對數據包進行解密。
控制器建立匿名通信路徑后,通過OpenFlow網絡協議向交換機下發流表,交換機通過解析流表對數據包進行匹配并轉發。整個過程中由控制器建立匿名通信路徑并指揮數據包的轉發,保證了通信過程的匿名性。控制器在通信建立的過程中充當中介的角色,但在實際上數據包在各個交換機之間直接進行轉發。控制器是整個系統的計算者和控制者,系統中傳輸的數據包通過由控制器建立的通信路徑中的若干交換機節點,這些交換機節點根據控制器下發的流表對數據包進行轉發。
系統中管理員充當轉發代理的角色,普通成員的匿名通信請求通過管理員代為轉發,控制器不維護普通成員的地址映射,也無法獲取數據包的發送方信息,在一定程度上降低了控制器的負載和單點攻擊的威脅。
在整個通信過程中,信息接收方不知道信息發送方是誰,發送方和接收方也無法獲取對方的真實地址。通信路徑中的每一個交換機節點只會根據控制器下發的流表對數據包進行單純的轉發,每個交換機節點只知道通信路徑中的上一跳和下一跳,但不能確定上一跳節點是否是發送者,下一跳節點是否是接收者,獲得發送者與接收者的不可關聯性。
1.2.3 多約束最優路徑規劃算法
通常傳統網絡中的路徑選擇依據是通過路由協議計算出的最優傳輸路徑,但結果可能會導致網絡中部分路徑流量擁塞。當采用SDN網絡架構時,SDN控制器可以根據網絡流量狀態調整傳輸路徑,提升網絡資源利用率。此外,控制器根據節點在線時長選擇信譽度較高的節點作為轉發節點,可以一定程度上降低路徑選擇攻擊的威脅。
最優路徑規劃流程如圖5所示,控制器收到發送方的匿名通信請求后獲取發送方和接收方的IP地址等信息。拓撲感知模塊負責獲取網絡中交換機與主機之間的連接信息,并對連接信息進行處理,形成網絡拓撲。鏈路信息收集模塊負責獲取網絡中交換機節點的剩余帶寬、在線時長等信息。控制器在收到上述信息后,利用多約束最優路徑規劃算法建立匿名通信路徑。

圖5 最優路徑規劃流程
在OpenFlow網絡協議中,控制器通過南向接口實時獲取網絡節點狀態,根據網絡情況不同做出相應處理策略。系統中SDN控制器通過Openflow協議定期獲取網絡中交換機的剩余帶寬、在線時長等信息,實時感知網絡狀態,并針對當前網絡狀態進行動態最優路徑規劃。最優路徑規劃后,控制器將數據包轉發命令通過OpenFlow協議以流表的形式映射到相應交換機中。控制器通過實時獲取網絡節點狀態,對網絡整體進行感知,能夠有效避免網絡擁塞。控制器動態獲取當前網絡節點狀態,建立源節點至目的節點間的最優路徑,實現了對數據流量的靈活傳輸。
系統以Dijkstra算法為基礎,根據Fat-Tree拓撲的結構特點,綜合考慮節點間的距離、節點剩余帶寬、節點在線時長3種因素,提出多約束條件下的最優路徑規劃算法。算法首先對各條邊的參數權值進行分析,使用最小-最大規范化方法對權值進行歸一化處理,合理設計代價函數,計算各條邊的最終權值,變多約束問題為單約束問題,最終通過Dijkstra最短路徑規劃算法建立匿名通信路徑。本系統中將節點間的距離、節點剩余帶寬和節點在線時長3項因素作為約束條件,建立最優路徑選擇模型。
假設匿名通信網絡中共有n個節點,其中一條匿名通信路徑P由節點1,節點2,…,節點i組成,數據包通過該路徑的傳輸距離可以表示為
式中:Sk,k+1表示節點k與節點k+1之間的傳輸距離。
節點在線時長是衡量節點信譽度的主要因素,節點在線時長越長,信譽度越高,數據包成功傳輸的概率也就越大。節點k的在線時長用tk表示,網絡中節點的最長在線時長用M(t) 表示,最短在線時長用m(t) 表示
M(t)=max{t1,t2,…,tn}
m(t)=min{t1,t2,…,tn}
利用最小-最大規范化方法對節點在線時長進行線性變換,將在線時長映射到 [0,1] 之間。節點k成功轉發或接收數據包的概率pk可以表示為
節點k與節點k+1之間成功傳輸的概率用Pk,k+1來表示,成功通過概率Pk,k+1與節點k成功轉發或接收數據包的概率pk之間的關系屬于乘法約束
Pk,k+1=pk*pk+1,pk≤1,pk+1≤1
即節點k與節點k+1之間成功傳輸的概率Pk,k+1等于兩節點成功轉發或接收的概率乘積。對于乘法約束,將等式兩邊取對數,將乘法約束表示為加法約束
lnPk,k+1=lnpk+lnpk+1,pk≤1,pk+1≤1
由于pk≤1, 等式兩邊均為負數,兩邊同乘-1得
鏈路帶寬在一定程度上影響系統的網絡吞吐量,控制器傾向于選擇剩余帶寬較高的節點作為備選轉發節點。節點k的剩余帶寬用bk表示,網絡中節點最大剩余帶寬用M(b) 表示,最小剩余帶寬用m(b) 表示
M(b)=max{b1,b2,…,bn}
m(b)=min{b1,b2,…,bn}
將剩余帶寬映射到[0,1]之間,對節點剩余帶寬進行線性變換
節點k與節點k+1之間的帶寬權值函數可以表示為
Qk,k+1=qk*qk+1,qk≤1,qk+1≤1
將乘法約束表示為加法約束
lnQk,k+1=lnqk+lnqk+1,qk≤1,qk+1≤1
等式兩邊均為負數,兩邊同乘-1得

在最優路徑選擇過程中,把節點間的距離、節點在線時長和節點剩余帶寬3個約束條件融合,設計代價函數

如果一條路徑P上有i個節點,則該條路徑的權值可以表示為
將多約束問題轉化為單約束問題,最終通過Dijkstra最短路徑規劃算法建立匿名通信路徑。
本文基于Fat-Tree拓撲結構搭建實驗環境,確定了交換機和終端數目后,按照Fat-Tree拓撲的連接規則,分別對控制器、交換機以及主機之間進行連接與配置。
為什么這樣理解科學管理呢?因為管理的目的應該是實現雇主最大限度富裕的同時也要實現雇員的最大限度富裕,但問題是人們總是把雇主的利益和雇員的利益擺在對立的位置,認為他們是存在利益矛盾的,將雙方的利益視為此長彼短的關系。為了破解這種錯誤的思想,泰勒呼吁雇員和雇主需要一場心理革命。
匿名通信系統的延遲和吞吐量是衡量系統性能最重要指標的兩個指標。在系統中影響系統延遲的因素主要有數據長度和中間節點個數兩個方面。
下面通過對比實驗的方式來說明系統延遲與數據長度及中間節點個數之間的關系。系統通過多跳交換機節點來轉發信息,圖6顯示了系統在不同條件下的延時,即一個信息由初始節點發出到目標節點收到所經過的時間。可以看出中間節點跳數越多,數據長度越大,處理過程復雜,整個數據的接收延遲也就越大。

圖6 轉發延遲與跳數及數據長度的關系
表1展示了目前最為廣泛使用的匿名通信系統Tor與本系統的轉發延遲比較結果。表中的轉發延遲指的是從初始節點發出請求到請求的內容完全返回初始節點所用的時間。通過比較可以看出,本系統的延遲要小于Tor系統。Tor系統由于其復雜多重的加解密操作,導致延遲較大,但Tor系統已被廣泛應用和認可,因此可以認為本方案中的系統設計可以滿足匿名通信的基本性能需求。

表1 本系統與Tor系統轉發延遲的比較
網絡吞吐量能夠準確反映網絡的傳輸能力,是評價匿名通信網絡性能的一項重要指標。網絡吞吐量是指單位時間內網絡能正確傳輸的流量的大小,參數R和T分別表示系統中能夠正確傳輸的流量和相對應的時間,網絡吞吐量η可以表示為
本文針對傳統的Dijkstra算法和系統中的多約束路徑規劃算法進行鏈路負載測試,觀察匿名通信網絡吞吐量隨鏈路負載增加的變化情況。傳統Dijkstra算法與多約束最優路徑規劃算法之間的網絡吞吐量對比如圖7所示,由實驗結果可知,當鏈路負載較小時,使用兩種路徑規劃算法的網絡吞吐量近乎相同,鏈路帶寬能夠滿足數據包的傳輸要求。但是當鏈路負載超過0.3之后,傳統的Dijkstra算法網絡吞吐量開始逐漸低于多約束最優路徑規劃算法。當流量負載增大至0.7時,Dijkstra算法網絡吞吐量開始下降,兩種算法之間的網絡吞吐量差距更加明顯。由于Dijkstra算法只考慮最短傳輸路徑這一因素,當鏈路承載達到一定時,路徑規劃無法考慮到網絡狀態變化,進而造成網絡擁塞,導致數據流被丟棄。而本課題中所提出的多約束最優路由算法通過定期獲取網絡中交換機的剩余帶寬,實時感知網絡狀態,針對當前網絡狀態進行最優路徑規劃,提升網絡資源利用率,從而增強了網絡吞吐性能。

圖7 網絡吞吐量與鏈路負載的關系
匿名通信系統的安全性主要取決于系統的抗攻擊能力,當前比較典型的攻擊方法主要有合謀攻擊、流量分析攻擊、時間攻擊等,下面分別針對這些主流的攻擊方式來分析本文中系統的抗攻擊能力。
(1)合謀攻擊
合謀攻擊是指攻擊者向系統中植入多個惡意節點,結合各個節點所獲取的信息來推斷系統中用戶的通信關系。Tor不能很好地抵御該攻擊,在建立匿名通信路徑時,惡意節點可以通過上報虛假帶寬等信息來提高被選為轉發節點的概率,進而誘使系統選擇惡意節點作為轉發節點,多個攻擊者合謀得到系統中通信用戶的信息。
(2)流量分析攻擊
流量分析攻擊是指攻擊者通過對網絡流量的監測和分析,從報文時間、大小以及類型等方面來發現通信雙方的關聯性,進而推斷信息的發送者和接收者。
本系統中通過控制器下發流表到交換機的方式來建立匿名通信路徑,因此整個網絡中包含各種報文,除了主機與交換機間的通信報文外,還有交換機與控制器之間的通信報文等,因此匿名網絡中每個節點進出的實時流量比較混雜,攻擊者很難對通信雙方進行關聯。
(3)時間攻擊
時間攻擊是指攻擊者通過獲取匿名通信網絡中的報文時間標志,通過時間對比來分析報文間的關聯。
時間攻擊與流量分析攻擊類似,由于本系統中充斥了各類混雜報文信息,因此攻擊者進行時間攻擊比較困難。
本文提出了一種基于SDN集中控制理念和集群思想的匿名通信系統架構,系統融合了節點選擇限制、多約束最優路徑規劃等策略,采用控制器向中交換機下發流表的方式建立匿名通信,保證了通信過程的匿名性。理論分析表明基于SDN的網絡架構可以在一定程度上抵御合謀攻擊、流量分析攻擊、時間攻擊等主流攻擊方式。仿真實驗結果表明,其滿足匿名通信的基本性能需求,且同一網絡環境下本系統轉發延遲明顯低于Tor。
目前研究中存在單一控制器失效的問題,下一步工作主要是研究多控制器協調的工作方式,建立多個控制器組成的分布式網絡架構,降低單一控制器的負載和安全威脅。