亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        IPSec VPN 安全性漏洞分析及驗(yàn)證

        2021-06-18 07:31:56周益旻劉方正杜鎮(zhèn)宇
        計(jì)算機(jī)工程 2021年6期

        周益旻,劉方正,杜鎮(zhèn)宇,張 凱

        (國(guó)防科技大學(xué)電子對(duì)抗學(xué)院,合肥 230037)

        0 概述

        互聯(lián)網(wǎng)安全協(xié)議(Internet Protocol Security,IPSec)是由IETF 于1998 年11 月提出的Internet 網(wǎng)絡(luò)安全通信規(guī)范,為私有信息通過公網(wǎng)傳輸提供了安全保障[1]。虛擬專用網(wǎng)絡(luò)(Virtual Private Network,VPN)可利用廉價(jià)接入的公共網(wǎng)絡(luò)來傳輸私有數(shù)據(jù),相較傳統(tǒng)專線連網(wǎng)方式更具成本優(yōu)勢(shì),受到各企業(yè)和電信運(yùn)營(yíng)商的青睞。IPSec VPN 是基于IPSec 協(xié)議的VPN 技術(shù),常用的VPN 實(shí)現(xiàn)協(xié)議包括PPTP、L2TP、IPSec、MPLS 和SSL等[2]。從目前所有VPN 的實(shí)現(xiàn)方式來看,基于IPSec 的VPN 技術(shù)是一種安全性相對(duì)較高的VPN 技術(shù)[3]。IPSec VPN 使用IKE 協(xié)議驗(yàn)證IPSec 通信雙方身份、建立安全關(guān)聯(lián)(Security Association,SA)以及生成安全密鑰。IKE協(xié)議對(duì)IPSec 的安全性至關(guān)重要,IKE 協(xié)議第1 版(簡(jiǎn)稱IKEv1)由IETF 于1998 年發(fā)布,并于2005 年發(fā)布第2 版[4]。

        雖然IPSec VPN 安全性較高[5],但是長(zhǎng)期的應(yīng)用過程中人們已經(jīng)發(fā)現(xiàn)IKEv1 存在身份泄露[6]、中間人攻擊[7]、拒絕服務(wù)攻擊[8]等脆弱性問題。文獻(xiàn)[9]從理論上分析了IKEv1 協(xié)議中存在的脆弱性問題,卻沒有給出具體的實(shí)現(xiàn)方案。文獻(xiàn)[10]提出一種ARP欺騙實(shí)施中間人攻擊的方法,在局域網(wǎng)中驗(yàn)證了該方法的可行性,但其不能應(yīng)用在不同網(wǎng)段的VPN中。文獻(xiàn)[11]通過VPN 指紋識(shí)別技術(shù),獲取VPN 服務(wù)器設(shè)備類型與版本信息,但是卻沒有給出具體的服務(wù)器流量獲取方法。

        本文分析IPSec VPN 的安全性漏洞,主要是密鑰交換過程中IKE 協(xié)議存在中間人攻擊以及數(shù)據(jù)傳輸過程中OSPF 路由選擇協(xié)議存在的路由欺騙攻擊,研究三種常規(guī)OSPF 路由欺騙方式在IPSec VPN 中間人攻擊中的性能表現(xiàn),同時(shí)構(gòu)建IPSec VPN 流量劫持模型及攻擊數(shù)據(jù)包,并設(shè)計(jì)實(shí)施中間人攻擊的IPSec VPN 流量劫持與密鑰獲取算法。

        1 IPSec VPN 脆弱性分析

        1.1 IKEv1 協(xié)議密鑰協(xié)商過程脆弱點(diǎn)分析

        IKEv1 協(xié)商密鑰包括兩個(gè)階段:1)對(duì)身份進(jìn)行認(rèn)證并建立安全關(guān)聯(lián)ISAKMP SA;2)建立IPSec SA,為AH 和ESP 封裝數(shù)據(jù)包提供服務(wù)。

        階段1 與階段2 的協(xié)商過程如圖1 所示。消息①來自客戶端,包括ISAKMP 數(shù)據(jù)包首部HDR、安全關(guān)聯(lián)SA、以gxi為參數(shù)的DH 密鑰交換材料KE(gxi)、隨機(jī)數(shù)Ni 與身份信息IDii,將其作為第一條信息明文發(fā)送給服務(wù)器。消息②來自服務(wù)器,同樣包括首部HDR 以及對(duì)客戶端SA 的確認(rèn)以及自身的密鑰材料KE(gxr)、隨機(jī)數(shù)Nr、身份信息IDir 與校驗(yàn)值HASH_R。消息③來自客戶端,對(duì)服務(wù)器發(fā)送的數(shù)據(jù)進(jìn)行HASH 校驗(yàn),如果與自身計(jì)算的HASH 一致則通過身份認(rèn)證,并回復(fù)一個(gè)HASH_I 值進(jìn)行確認(rèn)。

        圖1 激進(jìn)模式預(yù)共享密鑰協(xié)商過程Fig.1 Process of pre-shared key negotiation in aggressive mode

        在預(yù)共享密鑰認(rèn)證的方式下,密鑰SKEYID 計(jì)算如式(1)所示。消息②中客戶端HASH_I計(jì)算如式(2)所示。消息③中服務(wù)器HASH_R 計(jì)算如式(3)所示VPN 雙方共享密鑰材料計(jì)算如式(4)~式(6)所示。IKEv1 階段1 的協(xié)商完成,通信雙方獲得了保護(hù)階段2密鑰交換的ISAKMP SA 參數(shù)。階段1 生成的密鑰材料將用于保護(hù)階段2 快速模式交換的3 條消息,如式(7)~式(9)所示。

        其中,PSK 表示預(yù)共享密鑰,gxy表示由gxi和gxr生成的DH 共享密鑰,

        _b 表示

        有效載荷部分,如Ni_b表示隨機(jī)數(shù)Ni 的有效載荷部分,CKY_I、CKY_R 分別表示客戶端與服務(wù)器數(shù)據(jù)包首部HDR 中的Cookie 信息,M-ID 表示數(shù)據(jù)包中ID 字段,[]中參數(shù)為可選參數(shù),非強(qiáng)制使用。

        在階段2 協(xié)商過程中,消息④來自客戶端,包括ISAKMP 報(bào)頭和IPSec SA 有效負(fù)載,SA 包含數(shù)據(jù)傳輸?shù)乃刑嶙h和變換。在客戶端和服務(wù)器之間將交換一個(gè)新的臨時(shí)值Ni。消息⑤由服務(wù)器發(fā)送給客戶端,其中包含ISAKMP 報(bào)頭以及選定的SA,臨時(shí)值Nr 和HASH(2)對(duì)消息④進(jìn)行確認(rèn)。消息⑥來自客戶端,由客戶端對(duì)服務(wù)器存在性進(jìn)行驗(yàn)證并發(fā)送HASH(3)。以上3 條消息均使用SKEYID_e 進(jìn)行加密。在不需要PFS 交換的情況下,后續(xù)密鑰材料為KEYMAT=prf(SKEYID_d,protocol|SPI|Ni_b|Nr_b),至此IKEv1 階段2 的密鑰協(xié)商完成,通信雙方計(jì)算出后續(xù)數(shù)據(jù)加密使用的密鑰材料KEYMAT,用于加密數(shù)據(jù)傳輸。

        在上述協(xié)商過程中,由于消息1 與消息2 均使用明文發(fā)送,因此攻擊者在實(shí)現(xiàn)IPSec VPN 流量劫持的基礎(chǔ)上,通過分析密鑰協(xié)商階段數(shù)據(jù)可以得到VPN 通信雙方的身份信息以及除了預(yù)共享密鑰PSK以外的所有VPN 密鑰協(xié)商參數(shù),預(yù)共享密鑰PSK 可通過式(1)、式(3)結(jié)合口令字典暴力破解得出。階段1 協(xié)商過程采用的Diffie-Hellman 密鑰交換體制決定了中間人實(shí)施攻擊存在的可能性。因此,只要攻擊者破解了預(yù)共享密鑰PSK,再通過偽造客戶端與服務(wù)器雙方的身份認(rèn)證信息,攻擊者就可分別與客戶端、服務(wù)器嘗試進(jìn)行密鑰協(xié)商,以實(shí)現(xiàn)IPSec VPN中間人攻擊的目的。因此,實(shí)現(xiàn)IPSec VPN 流量劫持是進(jìn)行中間人攻擊的前提條件。

        1.2 OSPF 協(xié)議路由欺騙流量劫持分析

        路由選擇協(xié)議在因特網(wǎng)中決定著數(shù)據(jù)分組的轉(zhuǎn)發(fā)路徑,保證了分組能夠跨越網(wǎng)絡(luò)正確高效地到達(dá)目的地。OSPF 路由協(xié)議是因特網(wǎng)自治系統(tǒng)中最常用的內(nèi)部網(wǎng)關(guān)協(xié)議之一[12]。OSPF 是一種典型的鏈路狀態(tài)路由選擇協(xié)議,路由器通過鏈路狀態(tài)通告(Link State Advertisement,LSA)在鏈路狀態(tài)發(fā)生變化時(shí)廣播鏈路狀態(tài)信息。相鄰路由器之間交換LSA 分組,所有有效的LSA 存放在鏈路狀態(tài)數(shù)據(jù)庫中,路由器據(jù)此計(jì)算網(wǎng)絡(luò)拓?fù)湫畔⒉⒌玫铰酚杀恚?3]。因此,在LSA 上路由信息的準(zhǔn)確性與真實(shí)性對(duì)于數(shù)據(jù)流量的轉(zhuǎn)發(fā)至關(guān)重要。

        路由欺騙是一種利用協(xié)議漏洞偽造LSA 篡改路由信息的攻擊方法。路由欺騙[14]攻擊主要有雙LSA攻擊、鄰接欺騙攻擊、單路徑注入攻擊、遠(yuǎn)程虛假鏈接等。鄰接路由欺騙常應(yīng)用在中間人攻擊[15]、DNS欺騙攻擊[16]、拒絕服務(wù)攻擊[17]等中,攻擊者通過與網(wǎng)絡(luò)中路由器建立鄰接關(guān)系,配置OSPF 協(xié)議,觸發(fā)相應(yīng)的惡意LSA,通過洪泛機(jī)制傳播給網(wǎng)絡(luò)中其他路由,欺騙區(qū)域中其他路由器,污染其路由表,干擾流量的正常轉(zhuǎn)發(fā)[18]。然而,對(duì)于IPSec VPN 中間人攻擊,鄰接路由欺騙雖然僅起到了流量劫持的效果,但卻會(huì)影響攻擊者后續(xù)密鑰獲取、數(shù)據(jù)篡改的實(shí)現(xiàn)。IPSec VPN 鄰接路由欺騙過程如圖2 所示。當(dāng)攻擊者通過與未設(shè)被動(dòng)接口的R0 路由器建立鄰接關(guān)系后,接入R0 路由器所在的OSPF 區(qū)域,以內(nèi)部路由器身份注入一條關(guān)于VPN 服務(wù)器網(wǎng)段地址的惡意LSA,R0 收到這條消息后更新其路由表并宣告給其他鄰接路由器,結(jié)合洪泛機(jī)制,整個(gè)路由區(qū)域內(nèi)大范圍路由器的路由表都將受到污染,當(dāng)區(qū)域中存在客戶端發(fā)往VPN 服務(wù)器通信數(shù)據(jù)時(shí),攻擊者將獲取到客戶端發(fā)往服務(wù)器的信息。然而,若攻擊者與服務(wù)器之間不存在除R0 外的其他線路,那么當(dāng)攻擊者通過R0 向真實(shí)的VPN 服務(wù)器發(fā)送數(shù)據(jù)時(shí),由于其鄰接路由器路由表也被篡改,因此數(shù)據(jù)并不會(huì)成功的發(fā)送到服務(wù)器,從而影響后續(xù)攻擊。

        圖2 IPSec VPN 鄰接路由欺騙過程Fig.2 Process of IPSec VPN adjacent routing spoofing

        IPSec VPN 單路徑注入攻擊過程如圖3 所示。攻擊者將R0 路由器作為跳板路由,偽造源地址為F0/1 的數(shù)據(jù)包,冒充R0 路由器,發(fā)送包含關(guān)于服務(wù)器網(wǎng)段路由信息的惡意LSA 給R1,R1 稱為源污染路由器,R1 收到該LSA 之后,會(huì)將這些惡意的LSA 繼續(xù)洪泛出去,使得區(qū)域1 內(nèi)部路由器路由表、鏈路狀態(tài)數(shù)據(jù)庫均受到污染,前往服務(wù)器網(wǎng)段的數(shù)據(jù)包會(huì)轉(zhuǎn)發(fā)給R0。由于該惡意LSA 是攻擊者偽造的,因此當(dāng)R0 收到R1 發(fā)回的LSAck 包之后,若僅采取丟棄處理,則不會(huì)引起自反擊機(jī)制,這樣保證了區(qū)域2 中路由器關(guān)于服務(wù)器路由地址的正確性,不影響后續(xù)攻擊者對(duì)服務(wù)器方向數(shù)據(jù)的發(fā)送。然而,單路徑注入攻擊的條件在于跳板主機(jī)與源污染路由器之間只能存在一條路徑,使得惡意LSA不會(huì)再次通過其他區(qū)域傳播到跳板路由。因此,采用單路徑注入攻擊的方式進(jìn)行路由欺騙,僅適用于可將客戶端與服務(wù)器劃分為兩個(gè)區(qū)域,區(qū)域之間有且僅有一條路徑連通的情況。雙LSA 遠(yuǎn)程多注入是一種通過改變相關(guān)路徑上的路由器LSA,達(dá)到對(duì)中間流量傳輸路徑進(jìn)行控制的攻擊方式[19],IPSec VPN 雙LSA 遠(yuǎn)程多注入攻擊過程如圖4 所示。

        圖3 IPSec VPN 單路徑注入攻擊過程Fig.3 Process of IPSec VPN single path injection attack

        圖4 IPSec VPN 雙LSA 遠(yuǎn)程多注入攻擊過程Fig.4 Process of IPSec VPN dual LSA remote multiple injection attack

        OSPF 協(xié)議規(guī)定兩個(gè)具有相同序列號(hào)、校驗(yàn)和且時(shí)間差小于15 min 的LSA 為相同的LSA。假定攻擊者通過與網(wǎng)絡(luò)中的路由器(圖4 中的R0)建立鄰接關(guān)系,獲取到網(wǎng)絡(luò)拓?fù)渑cOSPF 相關(guān)參數(shù),那么雙LSA 注入攻擊就可利用該機(jī)制進(jìn)行構(gòu)造,并以一定時(shí)序在網(wǎng)絡(luò)中發(fā)送關(guān)于某一個(gè)污染節(jié)點(diǎn)(也稱受害路由器)(圖4 中的R3)的“觸發(fā)LSA”與“抗反擊LSA”,雙LSA 注入攻擊過程如圖5 所示。

        圖5 雙LSA 注入攻擊過程Fig.5 Process of dual LSA injection attack

        攻擊者于t0時(shí)刻發(fā)生“觸發(fā)LSA”,“觸發(fā)LSA”在傳播到受害者路由器(R3)之前會(huì)影響所經(jīng)過的路由器(圖5 中的R1 和R2),當(dāng)“觸發(fā)LSA”經(jīng)過洪泛于t1時(shí)刻到達(dá)受害者路由器時(shí),受害者路由器于t3時(shí)刻會(huì)觸發(fā)自反擊機(jī)制,發(fā)送一個(gè)更新的“自反擊LSA”,然而由于攻擊者事先構(gòu)造了關(guān)于該更新LSA 的具有相同序列號(hào)、校驗(yàn)和且時(shí)間差小于15 min 的“抗反擊LSA”并已于t2時(shí)刻傳播給其他路由器,此時(shí)其他路由再收到該受害路由器更新的LSA 之后,會(huì)認(rèn)為與“抗反擊LSA”相同而丟棄,導(dǎo)致網(wǎng)絡(luò)中數(shù)據(jù)鏈路狀態(tài)數(shù)據(jù)庫發(fā)生改變,達(dá)到控制中間流量傳輸路徑的效果。因此,采用雙LSA 遠(yuǎn)程多注入的攻擊方式,適用于客戶端與服務(wù)器之間存在兩條及以上鏈路的情況。本文對(duì)上述3 種路由欺騙方式在IPSec VPN 中間人攻擊中的優(yōu)劣勢(shì)進(jìn)行對(duì)比分析:1)鄰接路由欺騙,控制流量傳輸路徑、攻擊者獲取目標(biāo)流量,影響范圍大且攻擊方式簡(jiǎn)單,但難以控制欺騙范圍并影響后續(xù)攻擊;2)單路徑注入攻擊,控制流量傳輸路徑,容易控制欺騙范圍,適用于目標(biāo)網(wǎng)絡(luò)之間僅存在唯一鏈路的情況;3)雙LSA 注入攻擊,控制流量傳輸路徑,適用于目標(biāo)網(wǎng)絡(luò)之間存在多條鏈路的情況,攻擊者需要獲取OSPF 網(wǎng)絡(luò)相關(guān)參數(shù)。

        本文選用雙LSA 注入攻擊的方式,實(shí)現(xiàn)IPSec VPN 流量劫持。一般而言,通過長(zhǎng)期的流量分析,VPN 客戶端與服務(wù)器網(wǎng)關(guān)地址信息較易獲取,但難點(diǎn)在于選擇受害路由、構(gòu)造“觸發(fā)LSA”以及“抗反擊LSA”并以合適的時(shí)序發(fā)送。攻擊者在控制目標(biāo)流量傳輸路徑后,還需要結(jié)合路由控制手段,對(duì)目標(biāo)流量進(jìn)行轉(zhuǎn)發(fā)以保證攻擊者偽造的數(shù)據(jù)能夠重新發(fā)送出去。

        2 算法設(shè)計(jì)

        2.1 IPSec VPN 流量劫持算法

        為方便算法描述,本文將IPSec VPN 網(wǎng)絡(luò)分為Client 區(qū)域、Server 區(qū)域以及中間區(qū)域3 個(gè)部分。以劫 持Client→Server 單向流 量為例,將Client 與Server 之間的中間網(wǎng)絡(luò)用有向圖結(jié)構(gòu)進(jìn)行表示,每一個(gè)頂點(diǎn)代表一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),每一條邊代表一條網(wǎng)絡(luò)路徑,箭頭代表流向,如圖6 所示。定義(Vi,Si)為中間網(wǎng)絡(luò)中的一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),(V0,S0)和(Vn,Sn)分別為Client端至Server端路徑在中間區(qū)域經(jīng)過的第一個(gè)和最后一個(gè)路由器節(jié)點(diǎn),其中,(V0,S0)表示中間區(qū)域中第一個(gè)入度為1 且所有VPN 流量均為流入的節(jié)點(diǎn),(Vn,Sn)表示中間區(qū)域中第一個(gè)出度為1 且所有VPN 流量均為流出的節(jié)點(diǎn)。

        圖6 Client-to-Server 流量劫持模型Fig.6 Client-to-Server traffic hijacking model

        選定一條Client→Server 可達(dá)路徑Path,按流量經(jīng)過順序標(biāo)記Path 上所有節(jié)點(diǎn)作為標(biāo)記節(jié)點(diǎn)集FlagSet{(V0,S0),(V1,i1),…,(Vi,ii),…,(Vn,Sn)},即圖6 中白色虛框節(jié)點(diǎn)。假定攻擊者所控制的路由節(jié)點(diǎn) 為(Vi,ii)(S0

        算法1IPSec VPN 流量劫持算法

        FlagSet 輸入順序決定了劫持流量的方向,當(dāng)輸入順序?yàn)椋╒n,Sn)→(V0,S0),即可影響Server→Client流量。在不考慮LSA 洪泛時(shí)間與數(shù)據(jù)庫更新時(shí)間的情況下對(duì)所有污染節(jié)點(diǎn)進(jìn)行注入攻擊,即可達(dá)到控制流量路徑的目的。

        2.2 客戶端KEYMAT 密鑰獲取算法

        由于無法對(duì)IPSec VPN 加密流量直接解密,直接對(duì)加密流量進(jìn)行篡改會(huì)引起通信雙方的警覺,因此攻擊者必須進(jìn)行身份欺騙:對(duì)于VPN 客戶端,攻擊者應(yīng)偽裝成VPN 服務(wù)器,發(fā)送偽造的響應(yīng)數(shù)據(jù)包,對(duì)客戶端數(shù)據(jù)請(qǐng)求進(jìn)行響應(yīng),使得攻擊者能夠獲取客戶端加密密鑰;對(duì)于VPN 服務(wù)器,攻擊者應(yīng)偽裝成VPN 客戶端,發(fā)送偽造的協(xié)商請(qǐng)求數(shù)據(jù)包,主動(dòng)與服務(wù)器建立連接,實(shí)現(xiàn)IPSec VPN 中間人攻擊。

        算法2客戶端KEYMAT 密鑰獲取算法

        算法2 開啟一個(gè)監(jiān)聽進(jìn)程,對(duì)收到的數(shù)據(jù)流中第一條數(shù)據(jù)包進(jìn)行檢查,判斷其源地址是否為VPN客戶端地址;若不是,則跳出流程,檢查下一條數(shù)據(jù)包,若是,則繼續(xù)執(zhí)行,判斷其端口號(hào)是否為500 且Responder SPI 字段是否為0;若不是,則跳出流程,檢查下一條數(shù)據(jù)包,若是,則表明收到客戶端發(fā)來的階段1 的協(xié)商請(qǐng)求數(shù)據(jù)包,對(duì)其進(jìn)行解析并調(diào)用發(fā)包進(jìn)程,構(gòu)建響應(yīng)數(shù)據(jù)包respondpacket_1,填入服務(wù)器Cookie、隨機(jī)數(shù)Nonce、DH 公鑰等關(guān)鍵載荷,利用式(3)計(jì)算HASH_R 發(fā)送給客戶端,繼續(xù)監(jiān)聽,并利用式(4)~式(6)輸出階段1 的密鑰SKEYID,階段1協(xié)商完畢;檢查下一條數(shù)據(jù)包端口是否為500、Responder SPI 字段不為0 且MessageID 字段也不為0,若不是,則繼續(xù)檢查下一條數(shù)據(jù)包;若是,則表明收到了客戶端階段2 的協(xié)商請(qǐng)求,利用階段1 的密鑰SKEYID,調(diào)用解密進(jìn)程,解析數(shù)據(jù)包并調(diào)用發(fā)包進(jìn)程,構(gòu)建響應(yīng)數(shù)據(jù)包respondpacket_2,利用式(8)計(jì)算HASH(2),填入隨機(jī)數(shù)、哈希載荷和身份載荷,發(fā)送給客戶端,階段2 協(xié)商完畢;攻擊者獲得VPN 客戶端后續(xù)加密數(shù)據(jù)密鑰KEYMAT,算法結(jié)束。

        2.3 服務(wù)器KEYMAT 密鑰獲取算法

        算法3服務(wù)器KEYMAT 密鑰獲取算法

        在算法3中,攻擊者利用流量劫持階段獲得的VPN協(xié)商參數(shù),打開監(jiān)聽進(jìn)程,偽造并發(fā)送協(xié)商請(qǐng)求aggressivepacket_1,對(duì)收到的數(shù)據(jù)包進(jìn)行檢查,判斷源地址是否為服務(wù)器地址;若不是,則檢查下一條數(shù)據(jù)包,若是,則判斷端口號(hào)是否為500 且CKY_R ≠0;若不是,則檢查下一條數(shù)據(jù)包,若是,則表明收到階段1 的VPN服務(wù)器響應(yīng)回復(fù),提取數(shù)據(jù)包中隨機(jī)數(shù)載荷Nonce 和KE 載荷,利用式(4)~式(6)計(jì)算并獲得階段1 密鑰SKEYID,利用式(2)計(jì)算HASH_I,并構(gòu)造階段1 響應(yīng)數(shù)據(jù)包aggressivepacket_2;監(jiān)聽下一條數(shù)據(jù)包,構(gòu)造階段2 協(xié)商請(qǐng)求quickpacket_1,通過SKEYID 加密后發(fā)送給VPN 服務(wù)器,若收到端口號(hào)為500 且CKY_R≠0、MessageID≠0 的數(shù)據(jù)包,表明收到階段2 的VPN 響應(yīng)數(shù)據(jù)包,利用式(9)計(jì)算HASH(3)載荷,構(gòu)造響應(yīng)回復(fù)quickpacket_2 加密后發(fā)送給VPN 服務(wù)器,至此階段2協(xié)商完成,攻擊者獲得VPN 服務(wù)器后續(xù)加密密鑰KEYMAT,算法結(jié)束。

        3 實(shí)驗(yàn)與結(jié)果分析

        為驗(yàn)證IKEv1 中實(shí)際存在的脆弱性以及VPN 流量劫持算法、IPSec VPN 密鑰獲取算法的正確性,本文利用GNS3 軟件搭建仿真網(wǎng)絡(luò)拓?fù)淠M跨網(wǎng)段IPSec VPN 環(huán)境并利用Scapy 庫[20]偽造網(wǎng)絡(luò)數(shù)據(jù)包。

        3.1 實(shí)驗(yàn)環(huán)境

        實(shí)驗(yàn)主要采用以GNS3 軟件[21]搭建的仿真環(huán)境進(jìn)行驗(yàn)證,網(wǎng)絡(luò)拓?fù)洵h(huán)境如圖7 所示,其中R1,R2,…,R11 是思科C3660 路由器,網(wǎng)絡(luò)分為客戶端內(nèi)網(wǎng)、服務(wù)器內(nèi)網(wǎng)與中間網(wǎng)絡(luò)三部分。中間網(wǎng)絡(luò)由路由器R1、R2、R3、R4、R5、R6、R8 和R10 組成,配置OSPFv2 協(xié)議。路由器與主機(jī)端口IP 地址已在圖7 中標(biāo)注。路由器接口IP 地址為網(wǎng)絡(luò)號(hào)加上路由器的標(biāo)號(hào),如R1 的兩個(gè)接口地址為14.1.1.1 和31.1.1.1,R6 的兩個(gè)接口地址為36.1.1.6 和65.1.1.6。IPSec VPN 配置:R7 為VPN 客戶端,R9 為VPN 服務(wù)器。雙方使用IKEv1 進(jìn)行協(xié)商,密鑰協(xié)商采用激進(jìn)模式預(yù)共享密鑰認(rèn)證方式,加密模式為AES-CBC,校驗(yàn)算法為HMAC-SHA128,密鑰交換使用DH-1 024。PC1 與PC2 分別位于客戶端內(nèi)網(wǎng)與服務(wù)器內(nèi)網(wǎng),使用網(wǎng)關(guān)路由器R7 與R9 之間建立的IPSec VPN 進(jìn)行通信。攻擊者配置:攻擊者實(shí)際為一臺(tái)Ubuntu16系統(tǒng)虛擬機(jī),通過E1/0 端口連接R4 路由,R4 路由為攻擊者可控路由。

        圖7 網(wǎng)絡(luò)拓?fù)洵h(huán)境Fig.7 Network topology environment

        3.2 IPSec VPN 流量劫持實(shí)驗(yàn)

        3.2.1 IPSec VPN 流量劫持實(shí)驗(yàn)過程

        為驗(yàn)證IPSec VPN 流量劫持算法的有效性,實(shí)驗(yàn)環(huán)境為客戶端與服務(wù)器之間配置了兩條鏈路,即R7-R3-R6-R5-R10-R8-R9 與R7-R3-R1-R4-R2-R8-R9。在正常情況下,客戶端與VPN 服務(wù)器網(wǎng)關(guān)之間的通信流量不一定經(jīng)過R4,也有可能經(jīng)過R5,攻擊者只實(shí)現(xiàn)了對(duì)R4的控制。利用雙LSA 遠(yuǎn)程多注入攻擊方式,使客戶端與VPN 服務(wù)器網(wǎng)關(guān)之間的流量一定要經(jīng)過R4。攻擊者實(shí)現(xiàn)IPSec VPN 流量劫持主要分為路由欺騙、設(shè)置轉(zhuǎn)發(fā)規(guī)則和配置策略路由3 個(gè)階段。

        IPSec VPN 流量劫持的具體步驟如下:

        1)攻擊者向R1、R2 注入受害者路由器R5“觸發(fā)LSA”。

        2)攻擊者向R1、R2 注入受害者路由器R5“抗反擊LSA”。

        3)攻擊者通過R4 添加轉(zhuǎn)發(fā)規(guī)則,將目的地址為服務(wù)器網(wǎng)段(160.18.2.0)的數(shù)據(jù)包轉(zhuǎn)發(fā)給攻擊者(180.16.2.2)。

        4)攻擊者通過R4 添加轉(zhuǎn)發(fā)規(guī)則,將目的地址為客戶端網(wǎng)段(172.17.2.0)的數(shù)據(jù)包轉(zhuǎn)發(fā)給攻擊者(180.16.2.2)。

        5)攻擊者通過R4 在E1/0 端口配置策略路由,目的地址為服務(wù)器網(wǎng)段(160.18.2.0)的數(shù)據(jù)包轉(zhuǎn)發(fā)給R2;目的地址為客戶端網(wǎng)段(172.17.2.0)的數(shù)據(jù)包轉(zhuǎn)發(fā)給R1。

        6)攻擊者主機(jī)打開流量轉(zhuǎn)發(fā)。

        步驟1 和步驟2 注入LSA。以污染R1 為例,攻擊者構(gòu)造關(guān)于R5 接口地址的“觸發(fā)LSA”發(fā)送給R1,在1 s 后再發(fā)送“抗反擊LSA”。當(dāng)R5 收到“觸發(fā)LSA”后仍需要5 s 時(shí)間才能發(fā)出“自反擊LSA”,因此攻擊者發(fā)送的“抗反擊LSA”有足夠的時(shí)間污染R5 的鄰接路由。“抗反擊LSA”加入了固定值與特定校驗(yàn)和使得能夠與R5 產(chǎn)生的“自反擊LSA”校驗(yàn)和一致,具體參數(shù)如表1所示。步驟3 和步驟4 對(duì)R4 添加路由規(guī)則,將R4 獲取的IPSec VPN 流量轉(zhuǎn)發(fā)給自己,R4 路由規(guī)則如表2 所示。步驟5 和6 對(duì)R4 配置策略路由,添加轉(zhuǎn)發(fā)規(guī)則,將IPSec VPN 流量重新轉(zhuǎn)發(fā)出去,如表3 所示。

        表1 R5“抗反擊LSA”過程的主要參數(shù)設(shè)置Table 1 Setting of main parameters for the process of R5“anti-counterattack LSA”

        表2 R4 路由規(guī)則Table 2 Routing rules of R4

        表3 R4 策略路由規(guī)則Table 3 Policy routing rules of R4

        3.2.2 IPSec VPN 流量劫持實(shí)驗(yàn)結(jié)果分析

        實(shí)驗(yàn)結(jié)果包括路由器路由表攻擊前后對(duì)比、IPSec VPN 流量路徑攻擊前后對(duì)比、真實(shí)路由器鏈路狀態(tài)數(shù)據(jù)庫與被污染路由器鏈路狀態(tài)數(shù)據(jù)庫對(duì)比。表4 列出了客戶端出口路由R3 路由表項(xiàng)在受到路由欺騙前后的主要參數(shù)設(shè)置。

        表4 R3 被攻擊前后路由表項(xiàng)的主要參數(shù)設(shè)置Table 4 Setting of main parameters of routing table entry of R3 before and after attacking

        由表4 可知,R3 路由器不再選擇R5、R6 所在的路徑,轉(zhuǎn)而選擇R4 路由器所在的路徑。攻擊前客戶端網(wǎng)關(guān)(R7)與VPN 服務(wù)器網(wǎng)關(guān)(R9)的流量傳輸路徑如圖8 所示。R7 前往R9 的流量經(jīng)過R3、R6、R5、R10、R8路由器,而R9前往R7的流量傳輸選擇了另外一條R2、R4、R1、R3的路徑。攻擊后R7與R9的流量傳輸路徑如圖9 所示,由于經(jīng)過了中間人轉(zhuǎn)發(fā),因此中間路由沒有完全顯示。

        圖8 攻擊前R7 與R9 的流量路徑Fig.8 The traffic path of R7 and R9 before attacking

        圖9 攻擊后R7 與R9 的流量路徑Fig.9 The traffic path of R7 and R9 after attacking

        攻擊后R5 與R6 保存的關(guān)于R5 的LSA 如圖10所示。可以看出,R5 保存的是真實(shí)的LSA,而R6 保存的實(shí)際上是攻擊者構(gòu)造的“抗反擊LSA”,R6 鏈路狀態(tài)數(shù)據(jù)庫受到污染。

        圖10 R5 與R6 保 存 的LSAFig.10 LSA saved by R5 and R6

        3.3 IPSec VPN 密鑰獲取實(shí)驗(yàn)

        3.3.1 IPSec VPN 密鑰獲取實(shí)驗(yàn)過程

        根據(jù)上文分析可知,攻擊者獲取VPN 通信流量后,通過破解預(yù)共享密鑰PSK,中斷流量轉(zhuǎn)發(fā),即可迫使客戶端重新發(fā)送協(xié)商請(qǐng)求。攻擊者運(yùn)行客戶端攻擊程序,利用Scapy 庫偽造服務(wù)器響應(yīng)數(shù)據(jù)包進(jìn)行通信。

        根據(jù)客戶端KEYMAT 密鑰獲取算法,客戶端攻擊程序需要構(gòu)造并發(fā)送兩個(gè)攻擊數(shù)據(jù)包respondpacket_1 與respondpacket_2,并偽裝成服務(wù)器與客戶端進(jìn)行通信。圖11 給出了一個(gè)標(biāo)準(zhǔn)的服務(wù)器響應(yīng)數(shù)據(jù)包結(jié)構(gòu)。Scapy 中數(shù)據(jù)包的構(gòu)建遵循網(wǎng)絡(luò)協(xié)議分層的思想,并通過參數(shù)化賦值方式將源地址、目的地址、協(xié)議號(hào)填入數(shù)據(jù)包IP 頭部,將源端口、目的端口填入數(shù)據(jù)包UDP 頭部。因此,respondpacket_1 的結(jié)構(gòu)為respondpacket_1=IP()/UDP()/ISAKMP()/ISAKMP_payload_SA()/ISAKMP_payload_KE()/ISAKMP_payload_Nonce()/ISAKMP_payload_Hash()/ISAKMP_payload_ID()。結(jié)合數(shù)據(jù)包標(biāo)準(zhǔn)格式并根據(jù)監(jiān)聽獲得的參數(shù)信息,填入respondpacket_1 并進(jìn)行校驗(yàn),最終調(diào)用send 進(jìn)程進(jìn)行發(fā)送。在攻擊程序運(yùn)行完畢后,獲得階段1 密鑰SKEYID 與階段2 密鑰KEYMAT,如圖12 所示。此時(shí),利用Wireshark 輸入KEYMAT 參數(shù)對(duì)客戶端發(fā)送的數(shù)據(jù)進(jìn)行解密,得到的數(shù)據(jù)包如圖13 所示。

        圖11 標(biāo)準(zhǔn)數(shù)據(jù)包結(jié)構(gòu)Fig.11 Standard data pack structure

        圖12 客戶端攻擊程序運(yùn)行結(jié)果Fig.12 Running results of client attack program

        圖13 客戶端發(fā)送的數(shù)據(jù)包Fig.13 Data pack sent by the client

        攻擊者運(yùn)行服務(wù)器攻擊程序,偽造客戶端發(fā)送協(xié)商請(qǐng)求數(shù)據(jù)包,通過服務(wù)器方認(rèn)證,獲得階段1 和階段2 的密鑰SKEYID’與KEYMAT’,如圖14 所示。攻擊者將客戶端發(fā)送的數(shù)據(jù)包進(jìn)行篡改后,利用KEYMAT’加密后轉(zhuǎn)發(fā)給服務(wù)器,服務(wù)器收到的實(shí)際數(shù)據(jù)如圖15 所示。

        圖14 服務(wù)器攻擊程序運(yùn)行結(jié)果Fig.14 Running results of server attack program

        圖15 服務(wù)器收到的數(shù)據(jù)包Fig.15 Data pack received by the server

        3.3.2 IPSec VPN 密鑰獲取實(shí)驗(yàn)結(jié)果分析

        實(shí)驗(yàn)結(jié)果表明,攻擊者在IPSec VPN 流量劫持的基礎(chǔ)上實(shí)現(xiàn)了對(duì)IPSec VPN 客戶端與服務(wù)器雙方的身份偽造,通過攻擊程序獲取了客戶端與服務(wù)器雙方的通信密鑰。攻擊者利用獲取的客戶端密鑰對(duì)客戶端數(shù)據(jù)解密并篡改后通過服務(wù)器端密鑰重新加密發(fā)送給服務(wù)器,服務(wù)器實(shí)際收到的是由攻擊者篡改后的數(shù)據(jù)包,至此中間人攻擊完成且通信雙方均未發(fā)現(xiàn)攻擊者。

        4 結(jié)束語

        本文分析IPSec VPN 中IKE 協(xié)議激進(jìn)模式和OSPF 路由選擇協(xié)議的安全性漏洞,設(shè)計(jì)IPSec VPN流量劫持算法與KEYMAT 密鑰獲取算法,通過搭建仿真環(huán)境并選取雙LSA 注入路由欺騙攻擊方式,實(shí)現(xiàn)跨網(wǎng)段IPSec VPN 中間人攻擊并驗(yàn)證了IPSec VPN 協(xié)議的脆弱性。下一步可將本文研究成果應(yīng)用在邊界網(wǎng)絡(luò)設(shè)備防護(hù)和骨干網(wǎng)絡(luò)防御任務(wù)中,當(dāng)IPSec VPN 等邊界網(wǎng)絡(luò)設(shè)備正常連接出現(xiàn)中斷時(shí),快速有效檢測(cè)出中斷原因并評(píng)估風(fēng)險(xiǎn)等級(jí),以抵御類似的中間人攻擊,而在數(shù)據(jù)傳輸?shù)墓歉删W(wǎng)絡(luò)中對(duì)于可能存在的路由欺騙攻擊,主動(dòng)檢測(cè)異常的鏈路狀態(tài)通告,找出潛在的攻擊行為,保障骨干路由安全。

        99精品视频69V精品视频| 亚洲成aⅴ人片久青草影院| 中文字幕久久人妻av| 国产成人久久精品二区三区| 小黄片免费在线播放观看| 一区二区三区观看视频在线| 精品视频一区二区三区日本| 一本久道高清视频在线观看| 亚洲男女内射在线播放| 国产区精品一区二区不卡中文| 亚洲综合av一区二区三区| 亚洲狠狠婷婷综合久久久久图片 | 日本高清不在线一区二区色| 成人免费丝袜美腿视频| 一级一片内射在线播放| 亚洲一区中文字幕一区| 国产肥熟女免费一区二区| 精品人妻大屁股白浆无码| 97精品超碰一区二区三区 | 熟妇与小伙子matur老熟妇e | 国内精品一区二区2021在线 | 丰满多毛少妇做爰视频| 无码视频一区=区| 中文片内射在线视频播放| 人妻少妇猛烈井进入中文字幕| 性无码专区无码| 亚洲av无码专区国产乱码不卡| 亚洲精品国产成人AV| 精品熟女少妇免费久久| 一区二区三区蜜桃在线视频| 国产女主播福利一区二区| av在线播放男人天堂| 精品国产乱码久久久久久影片| 亚洲精品永久在线观看| 久久精品国产一区二区蜜芽 | 亚洲av色香蕉一区二区三区老师| 久久精品国产69国产精品亚洲| 999久久久精品国产消防器材| 精品无码成人片一区二区| 丝袜美女美腿一区二区| 日本一区二区免费在线看|