孔亞洲,張連成,王振興
(數(shù)學(xué)工程與先進計算國家重點實驗室(信息工程大學(xué)),鄭州 450002)(*通信作者電子郵箱coyote0916@163.com)
2017年11月26日,中共中央辦公廳、國務(wù)院辦公廳印發(fā)了《推進互聯(lián)網(wǎng)協(xié)議第六版(IPv6)規(guī)模部署行動計劃》[1](簡稱“計劃”),“計劃”要求不僅要實現(xiàn)移動互聯(lián)網(wǎng)全面支持IPv6,還要強化網(wǎng)絡(luò)安全保障。IPv6具有許多新特性,如巨大的地址空間、強制的IPSec支持、良好的移動性、高效的路由集聚等[2]。由于IPv6網(wǎng)絡(luò)恢復(fù)了端到端通信,不再使用網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation, NAT)等技術(shù),每個IPv6節(jié)點均可獲得一個全球可路由的單播地址,失去了一層屏障,因此,攻擊者能夠更加準確地對目標(biāo)IPv6節(jié)點實施探測攻擊,如何保證IPv6節(jié)點的安全性已受到越來越多的關(guān)注。
移動目標(biāo)防御(Moving Target Defense, MTD)[3]是美國提出的“改變游戲規(guī)則”的革命性技術(shù)之一,旨在增加信息系統(tǒng)隨機性、多樣性和動態(tài)性,從而提升攻擊難度與代價。地址跳變(Address Hopping, AH)[4]是指通信雙方按照既定協(xié)議偽隨機地改變通信地址,實現(xiàn)網(wǎng)絡(luò)主動防御,是MTD在網(wǎng)絡(luò)層的一種典型應(yīng)用。
文獻[5]提出一種動態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換(Dynamic Network Address Translation, DyNAT)技術(shù),通過動態(tài)改變終端節(jié)點標(biāo)識來防御攻擊者對內(nèi)部節(jié)點的信息收集;文獻[6]提出一種網(wǎng)絡(luò)地址空間隨機化(Network Address Space Randomization, NASR)技術(shù),主機通過隨機地獲得網(wǎng)絡(luò)地址來抵御蠕蟲傳播與攻擊;Badishi等[7]提出一種基于端口配給信道的防御機制,不同信道使用偽隨機函數(shù)跳變選擇端口,使得不同信道在不同時刻使用不同端口進行通信;Al-Shaer等[8]提出一種基于軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN)的地址隨機變換技術(shù)(OpenFlow Random Host Mutation, OF-RHM),通過OpenFlow控制器隨機分配虛擬IP,并利用OF-switch在真實IP與虛擬IP之間轉(zhuǎn)換;之后,Al-Shaer等[9]針對OF-RHM部署困難的問題,提出一種隨機主機交換技術(shù)(Random Host Mutation, RHM),利用低頻變換和高頻變換相結(jié)合的機制為主機隨機分配地址;為進一步提升其安全性,Al-Shaer等[10]提出一種時空地址變換機制,以源標(biāo)識和時間戳為參數(shù)生成某一時刻與主機真實IP所對應(yīng)的瞬時IP,主機利用瞬時IP在某一時間間隔內(nèi)與其他主機進行通信;Lee等[11]提出一種在服務(wù)器進行端口跳變的技術(shù),該技術(shù)使服務(wù)器端口按照以本地時間為參數(shù)的某個函數(shù)進行變化,使得攻擊者無法獲知服務(wù)器已開放端口,提高了服務(wù)器的抗攻擊能力,但是該技術(shù)要求精準的時間同步;Sifalakis等[12]提出一種網(wǎng)絡(luò)地址跳變方案,通過將單個會話分成多個會話的方式,迷惑了攻擊者,隱藏了通信雙方的數(shù)據(jù)交換,該方案無需嚴格時間同步,但容易造成會話中斷或數(shù)據(jù)接收錯誤;文獻[13]提出移動目標(biāo)IPv6防御(Moving Target IPv6 Defense, MT6D),通信雙方以接口標(biāo)識符、共享密鑰和系統(tǒng)時間戳為參數(shù),計算出將要使用的接口標(biāo)識符,MT6D可以在不中斷會話的情況下多次變換網(wǎng)絡(luò)地址,增加了攻擊難度;文獻[14]提出一種利用IPv6多穴特性,實現(xiàn)地址跳變的IPv6主動防御模型(Multi-Homing Hopping based Proactive Defense model in IPv6, MHH-PD6),并通過雙重隨機地址生成算法保證了通信的持續(xù)。
從以上分析可知,現(xiàn)有的地址跳變技術(shù)主要存在以下三方面的問題:1)依賴時間同步機制,對網(wǎng)絡(luò)延遲等要求較高;2)依賴事件觸發(fā)機制,相應(yīng)報文存在被截獲的可能;3)地址跳變過程中容易產(chǎn)生數(shù)據(jù)包的丟失,影響會話效率。
為解決IPv6網(wǎng)絡(luò)節(jié)點地址跳變過程中存在的上述問題,本文提出一種基于滑動時間窗口的IPv6地址跳變(Address Hopping based on Sliding Time Window in IPv6, AHSTW)主動防御技術(shù),通信雙方利用共享密鑰協(xié)商地址跳變參數(shù),引入時間窗口機制,通信雙方僅接收處于時間窗口內(nèi)的通信數(shù)據(jù)包,既保證了通信安全性,又保證了通信效率。
在具體介紹AHSTW模型之前,首先給出AHSTW模型的若干重要概念。
定義1 AHSTW模型節(jié)點。采用AHSTW模型對自身實施保護的IPv6節(jié)點。
定義2 發(fā)送時間窗口(Sender Time Window)。通信發(fā)送者向接收者發(fā)送數(shù)據(jù)包的窗口。
定義3 接收時間窗口(Receiver Time Window)。通信接收者接收發(fā)送者數(shù)據(jù)包的窗口。
定義4 地址跳變間隔。通信雙方根據(jù)地址跳變方案從一個IP地址跳變到下一個IP地址的時間間隔。
定義5 參數(shù)協(xié)商過程。通信雙方對滑動窗口大小、跳變間隔時長等參數(shù)進行協(xié)商的過程。
定義6 地址跳變通信過程。參數(shù)協(xié)商完成后,通信雙方進行通信的過程。
AHSTW模型的結(jié)構(gòu)如圖1所示。其中:Alice和Bob為AHSTW節(jié)點,且Alice為通信發(fā)起者,Bob為通信接收者;AR為IPv6子網(wǎng)的接入路由器;虛線單向箭頭表示AHSTW節(jié)點的地址跳變過程,雙向?qū)嵓^表示AHSTW節(jié)點間的通信。
AHSTW的工作過程主要有兩個:參數(shù)協(xié)商過程和地址跳變通信過程。
以圖1中的Alice與Bob之間的通信為例,當(dāng)Alice初次與Bob進行通信或Alice欲更改時間窗口等參數(shù)時,將執(zhí)行參數(shù)協(xié)商過程。假設(shè)Alice與Bob之間擁有一個共享密鑰key,那么參數(shù)協(xié)商過程具體如下。
1)參數(shù)協(xié)商過程。
①首先,Alice以時間戳為種子生成一個隨機數(shù)nonce,同時,生成一個地址跳變間隔τ和發(fā)送者時間窗口stw(stw≥1):
Alice:nonce=GenerateRandom(seedtimestamp),stw=GenerateSTW()
②然后,Alice將隨機數(shù)nonce、地址跳變間隔τ和發(fā)送者時間窗口stw用共享密鑰key加密后發(fā)送給Bob:
Alice → Bob:Encryptkey(nonce|τ|stw)
③Bob收到Alice發(fā)送的消息后,用共享密鑰進行解密并提取出其中的參數(shù)信息,生成接收者時間窗口rtw(rtw≥stw),然后向Alice發(fā)送確認消息:
Bob:Decryptkey(nonce|τ|stw),rtw=GenerateRTW(stw) and Bob → Alice:Encryptkey(Ack)
④Alice判斷是否收到Bob發(fā)回的確認消息,若未收到,返回①;若收到,Alice和Bob將進行地址跳變通信過程。
2)地址跳變通信過程。
①首先,Alice和Bob按照式(1)生成一個哈希鏈hashchain={hc0,hc1,…,hcn}:
(1)
其中Hashi(nonce)=Hashi-1(Hash(nonce))。
然后,Alice和Bob根據(jù)哈希鏈hashchain生成跳變地址信息列表(Address Hopping List, AHL),該表中的每項通過式(2)生成:
(2)
每個表項的結(jié)構(gòu)如圖2所示。
圖2 AHL中表項結(jié)構(gòu)
Fig. 2 Entry architecture in AHL
②然后,Alice和Bob根據(jù)地址跳變間隔τ和各自當(dāng)前系統(tǒng)時間Tcurrent進行地址跳變,進而決定采用AHL中的哪一項進行通信。假設(shè)初始系統(tǒng)時間為Tinit,那么從初始系統(tǒng)時間到當(dāng)前系統(tǒng)時間所經(jīng)過的地址跳變間隔次數(shù)可由式(3)算得:
Indexnew=(Tcurrent-Tinit)/τ
(3)
如果Indexold 如果Indexold=Indexnew,那么Alice和Bob按照entryIndexnew中的信息進行通信,此過程可描述為: Alice and Bob:cacl(Indexnew) and cacl(entryIndexnew), Extract(SuffixAlice,PortAlice,SuffixBob,PortBob) Alice ? Bob:sendpacket(tupleAlice,tupleBob) 其中,tupleAlice=〈PrefixAlice‖SuffixAlice,PortAlice〉,tupleBob=〈PrefixBob‖SuffixBob,PortBob〉。 在實際IPv6通信過程中,網(wǎng)絡(luò)時延是不可避免的,包括發(fā)送時延Delaysend、傳輸時延Delaytransit、處理時延Delayhandle和排隊時延Delayqueue等。為提高AHSTW模型的適應(yīng)能力,本文提出一種時間窗口自適應(yīng)調(diào)整(Time Window Adaptive Adjustment, TWAA)算法,其基本思想是根據(jù)IPv6網(wǎng)絡(luò)傳輸往返時延(Round-Trip Time, RTT)自適應(yīng)調(diào)整通信雙方的時間窗口。具體算法如下: Start //獲取發(fā)送者數(shù)據(jù)包發(fā)出時的時間T1 SendPacketAndWait; //發(fā)送者發(fā)送數(shù)據(jù)包并等待回應(yīng) GetReceiveTimestampT2 //發(fā)送者獲取收到數(shù)據(jù)包時的時間T2 CalculateRTT //計算往返時延 RTT=T2-T1=Delaytransit+Delayhandle+Delayqueue+ Delaysend+Delaytransit //計算新的時間窗口 stw=「λRTT/(2τ)?=「λDelaytransit/τ+λ(Delayhandle+ Delayqueue+Delaysend)/(2τ)? 立方格域數(shù)據(jù)中的每一點模擬滾球的滾動軌跡,如果球體和接閃器發(fā)生接觸,則計算下一點;如果未發(fā)生接觸,球體內(nèi)的立方格域數(shù)據(jù)標(biāo)志為1,如此循環(huán),直至計算完所有的點。保留立方格域數(shù)據(jù)標(biāo)志為0的點,通過Delaunay法構(gòu)造平滑曲面,該曲面就是接閃器的聯(lián)合保護范圍。模擬滾球的算法流程如圖4所示,最終接閃桿的計算模擬效果如圖5所示。 rtw=「μDelaytransit/τ?,其中λ≥1,μ≥1 End 由TWAA算法可知,由于網(wǎng)絡(luò)傳輸時延是隨著網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)包長度與數(shù)量等因素的變化而改變的,因此,攻擊者難以準確提前獲知新的時間窗口大小。此外,λ和μ這兩個變量的引入增加了生成新的時間窗口的隨機性,使得攻擊者難以通過簡單的重放相同時間戳的數(shù)據(jù)包等手段對目標(biāo)節(jié)點實施攻擊。 在TWAA算法中,假設(shè)發(fā)送者與接收者之間的傳輸時延是相同的,且只考慮接收者回復(fù)數(shù)據(jù)包時的處理時延、排隊時延和發(fā)送時延。通過TWAA算法,通信雙方能夠自適應(yīng)調(diào)整時間窗口的大小,保證數(shù)據(jù)傳輸?shù)男逝c網(wǎng)絡(luò)環(huán)境適應(yīng)能力,其中stw≤rtw,因為發(fā)送者時間窗口若大于接收者時間窗口,容易出現(xiàn)以下問題,即發(fā)送者的數(shù)據(jù)包到達接收者后,接收者判斷出可接收時間已超出窗口范圍,接收者丟棄該數(shù)據(jù)包,引起通信效率降低或終止等后果。 滑動時間窗口的基本思想如圖3所示,由圖3可知,根據(jù)TWAA算法,發(fā)送者在時間窗口內(nèi)選擇IPv6地址和端口與接收者進行通信,每經(jīng)過地址跳變間隔τ,通信雙方的時間窗口就向前滑動一次。 針對IPv6網(wǎng)絡(luò)節(jié)點的攻擊主要有以下兩種類型:一是流量截獲分析攻擊,即攻擊者對網(wǎng)絡(luò)流量進行截獲分析后,獲取目標(biāo)IPv6網(wǎng)絡(luò)節(jié)點通信要素;二是拒絕服務(wù)攻擊,即攻擊者對目標(biāo)IPv6網(wǎng)絡(luò)節(jié)點發(fā)送大量數(shù)據(jù)包導(dǎo)致其資源耗盡而無法正常工作。下面本文將對AHSTW模型針對這兩種攻擊的防御能力進行分析。 圖3 滑動時間窗口基本思想 由1.2節(jié)可知,AHSTW模型的安全性依賴于AHL的安全性,即如果攻擊者成功獲取AHL,那么攻擊者就能準確判斷出通信雙方的地址跳變規(guī)律,從而對其實施下一步攻擊。 假設(shè)AHL中每個表項的長度為512 b,IPv6地址長度為128 b,由64 b子網(wǎng)前綴和64 b接口標(biāo)識符組成,IPv6節(jié)點子網(wǎng)前綴通常由網(wǎng)絡(luò)服務(wù)提供商(Internet Service Provider, ISP)分配,假設(shè)ISP分配的IPv6地址前綴長度為48 b,IPv6地址后綴長度為80 b。當(dāng)攻擊者通過截獲分析通信數(shù)據(jù)包的方式來獲取AHL時,假設(shè)攻擊者初始的分析空間為S0,且|S0|=2512,若攻擊者每次截獲分析能夠確認的表項位數(shù)為α,那么經(jīng)過β次截獲分析,攻擊者分析空間為Sβ,且|Sβ|=2512-α·β,那么當(dāng)|Sβ|=1時,攻擊者即可獲得唯一正確的通信雙方的地址與端口信息,此時α與β之間的關(guān)系為β=「512/α?。攻擊者每次截獲到數(shù)據(jù)包之后,都要分別對哈希鏈中節(jié)點和AHL中的表項進行哈希計算,那么在第β次截獲數(shù)據(jù)包之后,攻擊者需要進行哈希計算的次數(shù)為Numk,且Numβ=2·2512-α·β,那么攻擊者所需哈希計算次數(shù)之和為: (4) 由此可得如下結(jié)論: 結(jié)論1 攻擊者計算資源的消耗遠大于其收益,AHSTW能夠有效抵抗攻擊者的流量截獲分析攻擊。 在攻擊者無法準確獲知受AHSTW保護的IPv6節(jié)點的地址跳變規(guī)律時,攻擊者將采取對目標(biāo)IPv6網(wǎng)絡(luò)發(fā)送大量地址隨機數(shù)據(jù)包的方式進行DoS攻擊。假設(shè)某一時刻攻擊者發(fā)送攻擊報文的數(shù)量為θ,目標(biāo)節(jié)點地址跳變空間為2suffix,令φ表示攻擊者所發(fā)送的數(shù)據(jù)包地址在rtw中的數(shù)目,那么φ的均值可表示為: E(φ)=θ·τ/2suffix (5) 由此可得如下結(jié)論: 結(jié)論2 攻擊者攻擊成功的概率與地址跳變間隔成正比,與地址跳變后綴長度成反比。 我們在Ubuntu 17.04操作系統(tǒng)上實現(xiàn)了AHSTW原型系統(tǒng),為驗證模型的性能與安全能力,接入CERNET2并搭建如圖所示的測試環(huán)境。其中Alice和Bob分別為通信發(fā)起者和接收者,分別處于不同IPv6子網(wǎng)(子網(wǎng)前綴分別為2001:da8:2017::/48和2001:da8:2018::/48),Attacker為攻擊者,所在子網(wǎng)前綴為2001:da8:2019::/48。其中,點線帶箭頭直線代表攻擊者實施流量截獲分析攻擊,虛線帶箭頭直線代表攻擊者實施DoS攻擊。發(fā)送時間窗口為4,接收時間窗口為8,地址跳變間隔為8 s。此外,模型采用Blowfish算法完成參數(shù)協(xié)商過程,因為Blowfish是一種簡單且高效的加密算法,其子密鑰和S盒都由Blowfish算法本身生成,使得數(shù)據(jù)完全不可辨認、難以發(fā)現(xiàn),對其密鑰分析異常困難;模型采用SHA- 512算法完成地址跳變通信過程。 圖4 測試環(huán)境 由于AHSTW模型是依據(jù)系統(tǒng)時間來進行地址跳變和收發(fā)窗口滑動的,因此,抗誤差能力是判斷AHSTW模型性能的重要指標(biāo)之一。 本文選擇Alice向Bob發(fā)送1 000個ICMPv6 Echo Request為例,記錄其丟包率,測試結(jié)果如圖5所示。由圖5可知,當(dāng)系統(tǒng)時間誤差大于16 s時,AHSTW系統(tǒng)丟包率呈現(xiàn)快速上升趨勢,且經(jīng)過多次實驗發(fā)現(xiàn),當(dāng)系統(tǒng)時鐘誤差大于((rtw-stw)/2)·τ時,系統(tǒng)丟包率即會呈此趨勢。 圖5 系統(tǒng)時間誤差與丟包率 AHSTW系統(tǒng)的開銷主要包括Blowfish算法加密計算開銷和SHA- 512算法的計算開銷。通過對AHSTW發(fā)送不同長度、不同類型的數(shù)據(jù)包進行采樣分析,記錄系統(tǒng)CPU占用比例,測試結(jié)果如圖6所示。 從圖6中可以看出,使用AHSTW對IPv6節(jié)點實施保護后的系統(tǒng)開銷并無顯著提高,基本保持在2~5個百分點。由于用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol, UDP)數(shù)據(jù)包無需建立連接等因素,使得AHSTW在UDP數(shù)據(jù)包傳輸時的開銷低于傳輸控制協(xié)議(Transmission Control Protocol, TCP)數(shù)據(jù)包。 為測試AHSTW系統(tǒng)抗流量截獲分析能力,在地址跳變間隔為8s的情況下,記錄Alice與Bob在1 h內(nèi)的地址跳變情況,Alice地址跳變的部分統(tǒng)計結(jié)果如圖7所示。 圖6 系統(tǒng)開銷測試 圖7 Alice地址跳變情況統(tǒng)計 由圖7可知,Alice跳變過程中后綴變化空間大小為280,遠程攻擊者攻擊成功的概率很低。通過Wireshark對前2 min的通信流量抓包分析,Alice和Bob的通信地址與端口統(tǒng)計情況如圖8所示。 圖8 Alice與Bob通信地址和端口統(tǒng)計情況 從圖8可以看出,Alice與Bob之間的通信流量隨機地分散在巨大的跳變空間里,攻擊者即使截獲到足夠多的數(shù)據(jù)包,通過分析獲得地址跳變規(guī)律的難度也是極大的。 攻擊者在無法獲知目標(biāo)IPv6節(jié)點地址信息的情況下,采用向目標(biāo)IPv6子網(wǎng)發(fā)送大量不同目的地址數(shù)據(jù)包的形式對其進行DoS攻擊。根據(jù)2.2節(jié)分析,假設(shè)攻擊者發(fā)送的數(shù)據(jù)包均能到達IPv6子網(wǎng),在攻擊者每秒發(fā)送數(shù)據(jù)包數(shù)量分別為106、107和109個的情況下,攻擊者能夠?qū)δ繕?biāo)實施DoS攻擊的概率統(tǒng)計如圖9所示,從中可以看出,攻擊者對受AHSTW保護的節(jié)點實施DoS攻擊是非常困難的。 MT6D與MHH-PD6是兩種典型的應(yīng)用于IPv6網(wǎng)絡(luò)環(huán)境的地址跳變技術(shù),故本文將AHSTW與這兩種技術(shù)進行對比,更具針對性,經(jīng)過分析發(fā)現(xiàn),其抗流量截獲分析能力與抗DoS攻擊能力如表1所示。 然后,在Alice與Bob傳輸相同長度的數(shù)據(jù)包的情況下,對AHSTW與其他兩種技術(shù)的系統(tǒng)開銷進行了測試,測試結(jié)果如圖10所示。從圖10中可以看出,當(dāng)通信雙方傳輸相同長度的數(shù)據(jù)包時,AHSTW的系統(tǒng)開銷比MT6D和MHH-PD6少13~45個百分點。 圖9 AHSTW系統(tǒng)抗DoS攻擊能力測試 Tab. 1 Comparison of security capabilities of AHSTW, MT6D and MHH-PD6 圖10 AHSTW、MT6D、MHH-PD6系統(tǒng)開銷對比 最后,對3種方法的丟包率進行了測試,假設(shè)地址跳變間隔為10 s,Alice與Bob間每秒發(fā)送100個長度為100 B的數(shù)據(jù)包,那么經(jīng)過數(shù)據(jù)包抓取分析后得到如圖11所示。從圖中可以看出,隨著通信的持續(xù)進行,AHSTW的通信丟包率平均比其他兩種方法低6~8個百分點,保證了通信效率。 圖11 AHSTW、MT6D、MHH-PD6丟包率對比 隨著IPv6規(guī)模部署的不斷深入,針對IPv6網(wǎng)絡(luò)的攻擊呈現(xiàn)上升趨勢。為解決IPv6網(wǎng)絡(luò)恢復(fù)端到端通信,IPv6網(wǎng)絡(luò)節(jié)點易遭受攻擊的問題,本文提出一種基于滑動時間窗口的IPv6地址跳變(AHSTW)模型,通過引入時間窗口自適應(yīng)調(diào)整算法,使IPv6節(jié)點間的通信呈現(xiàn)隨機化、動態(tài)化的特點,且能適應(yīng)較復(fù)雜的網(wǎng)絡(luò)環(huán)境。理論分析和實驗測試結(jié)果表明,AHSTW模型不僅能夠保證IPv6節(jié)點間通信的安全性,還能保證其通信的整體效率不受太大影響;同時,對外表現(xiàn)出較好的抗流量截獲分析能力和抗DoS攻擊能力。服務(wù)器往往是攻擊者的首選目標(biāo),該模型能夠為IPv6網(wǎng)絡(luò)下服務(wù)器的安全防護提供新思路。由于IPv4向IPv6過渡是一個漫長的過程,因此,在下一步研究工作中,擬研究該方法在IPv6/IPv4共存環(huán)境中的使用方案,包括不同隧道環(huán)境、不同雙棧機制下如何保證純IPv6網(wǎng)絡(luò)與IPv6/IPv4共存網(wǎng)絡(luò)間地址跳變通信的一致性與安全性。1.3 時間窗口自適應(yīng)調(diào)整算法
2 模型安全性分析
2.1 抗流量截獲分析能力
2.2 抗DoS攻擊能力
3 實驗驗證
3.1 抗時間誤差能力測試
3.2 系統(tǒng)開銷測試
3.3 抗流量截獲分析能力測試
3.4 抗DoS攻擊能力測試
3.5 對比測試
4 結(jié)語