李炳彰,李雨菡,趙海強,3,趙 松
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.西北農(nóng)林科技大學(xué) 水利與建筑工程學(xué)院,陜西 楊凌 712100;3.通信網(wǎng)信息傳輸與分發(fā)技術(shù)重點實驗室,河北 石家莊 050081)
隨著網(wǎng)絡(luò)技術(shù)與信息技術(shù)的廣泛應(yīng)用和快速發(fā)展,網(wǎng)絡(luò)安全事件的發(fā)生愈演愈烈,黑客的入侵手段也變得紛雜多樣,入侵對象從單個計算機終端、應(yīng)用系統(tǒng)逐步向網(wǎng)絡(luò)系統(tǒng)發(fā)展,作為網(wǎng)絡(luò)節(jié)點的路由器也經(jīng)常被入侵,黑客利用路由器的后門和協(xié)議漏洞[1],直接控制路由器,威脅用戶業(yè)務(wù)和數(shù)據(jù)的安全。但是,至今這些安全問題并未引起人們的重視,而針對網(wǎng)絡(luò)基礎(chǔ)設(shè)施尤其是路由協(xié)議的攻擊卻呈現(xiàn)出增長的趨勢。
通信網(wǎng)絡(luò)作為賽博空間的基礎(chǔ)[2],其安全問題直接關(guān)系到賽博空間的安全[3],路由協(xié)議作為通信網(wǎng)絡(luò)的核心協(xié)議,負(fù)責(zé)路由選擇和網(wǎng)絡(luò)連通,保障業(yè)務(wù)信息實時轉(zhuǎn)發(fā)[4],其安全直接影響通信網(wǎng)絡(luò)能否正常工作。路由協(xié)議主要來自互聯(lián)網(wǎng)IETF組織,這些協(xié)議隨著通信網(wǎng)絡(luò)IP化的發(fā)展,大量應(yīng)用在民用和軍用通信網(wǎng)絡(luò)中。路由協(xié)議為網(wǎng)絡(luò)提供路由信息[5],本身存在著某些安全缺陷,例如:協(xié)議對等體間的認(rèn)證強度不夠;路由信息交互過程對協(xié)議內(nèi)容保護缺失;路由協(xié)議由傳輸層或網(wǎng)絡(luò)層協(xié)議承載和傳輸,這些承載協(xié)議的缺陷或漏洞將為路由協(xié)議帶來安全威脅[6]。
開放最短路徑優(yōu)先(Open Shortest Path First,OSPF)路由協(xié)議是目前最為廣泛使用的內(nèi)部網(wǎng)關(guān)協(xié)議,由于其具有響應(yīng)網(wǎng)絡(luò)變化迅速、路由收斂速度快和網(wǎng)絡(luò)帶寬占用少的優(yōu)點,已被作為主流路由協(xié)議應(yīng)用于多個大型網(wǎng)絡(luò)中。所以保證OSPF協(xié)議的安全性,成為保障網(wǎng)絡(luò)可靠運行的關(guān)鍵所在。但目前對于OSPF協(xié)議安全性的研究成果主要集中在OSPF路由協(xié)議處理機制和LSA的數(shù)字簽名[7],對于利用通過對等體認(rèn)證實現(xiàn)OSPF協(xié)議安全增強方法較少。本文將通過改進路由協(xié)議的認(rèn)證機制來提高其安全性,防止協(xié)議偽造、篡改等攻擊對路由協(xié)議造成影響,同時利用認(rèn)證過程產(chǎn)生會話密鑰實現(xiàn)OSPF協(xié)議的完整性保護,增強協(xié)議抗篡改攻擊能力。
OSPF協(xié)議是IETF于1988年提出的一種基于鏈路狀態(tài)的動態(tài)路由協(xié)議,它引入“分層路由”的概念,將網(wǎng)絡(luò)分割成相互連接的區(qū)域,每個區(qū)域如同獨立的網(wǎng)絡(luò),區(qū)域內(nèi)每個路由器向域內(nèi)泛洪鏈路狀態(tài)宣告(Link State Advertisement,LSA)保持鏈路狀態(tài)數(shù)據(jù)庫的同步,利用相同的Dijkstra算法計算出一致的最短路徑樹。
在OSPF協(xié)議中,定義了5種協(xié)議報文[8],分別用于鄰居發(fā)現(xiàn)、鄰接關(guān)系建立和鏈路狀態(tài)數(shù)據(jù)庫的同步。
① Hello報文:是OSPF協(xié)議的基礎(chǔ),用于獲取路由器各個接口的鏈路狀態(tài)信息、發(fā)現(xiàn)相鄰路由器、建立與維持鄰居關(guān)系以及選舉指定路由器等。
② 數(shù)據(jù)庫描述(Database Description,DD)報文:用于2個路由器間鏈路狀態(tài)數(shù)據(jù)庫的同步,DD報文中攜帶各自LSA的頭部描述,對端路由器通過比較可以獲知自己缺少的鏈路狀態(tài)。
③ 鏈路狀態(tài)請求(Link State Request,LSR)報文:通過DD報文獲知自身需要的鏈路狀態(tài)信息后,用于向鄰接路由器發(fā)送LSR報文,請求對方發(fā)送詳細的鏈路狀態(tài)信息。
④ 鏈路狀態(tài)更新(Link State Update,LSU)報文:響應(yīng)鄰居路由器發(fā)送的LSR,根據(jù)請求的鏈路狀態(tài)信息標(biāo)識將詳細的鏈路狀態(tài)信息發(fā)回鄰居路由器。
⑤ 鏈路狀態(tài)確認(rèn)(Link State Acknowledgment,LSAck)報文:用于對收到鄰居路由器發(fā)送的LSU報文的確認(rèn)。
OSPF協(xié)議的運行目標(biāo)是動態(tài)地保持區(qū)域內(nèi)所有路由器的鏈路狀態(tài)數(shù)據(jù)同步,其工作機制是從鄰接路由器間的鏈路狀態(tài)數(shù)據(jù)同步逐步擴散到整個區(qū)域。2個鄰接路由器的鏈路狀態(tài)數(shù)據(jù)同步包括2個過程:一是通過Hello報文動態(tài)地發(fā)現(xiàn)鄰居并建立鄰接路由器間的雙向通信;二是通過DD報文發(fā)現(xiàn)鄰接路由器間鏈路狀態(tài)數(shù)據(jù)的差異,通過LSR/LSU的交互實現(xiàn)雙方鏈路狀態(tài)數(shù)據(jù)的同步[9]。OSPF協(xié)議的2個過程分為多個不同的狀態(tài),其狀態(tài)轉(zhuǎn)移過程如圖1所示。
圖1 鄰居狀態(tài)轉(zhuǎn)移過程
Down:該狀態(tài)為初始狀態(tài),表示一段時間內(nèi)未收到鄰接路由器的信息;
Attempt:該狀態(tài)僅在NBMA環(huán)境中有效,處于本狀態(tài)時,定期向那些手工配置的鄰接路由器發(fā)送HELLO報文來保持聯(lián)系;
Init:該狀態(tài)表示已收到鄰接路由器的HELLO報文,但報文中列出的鄰居中沒有自身的IP地址,雙向通信尚未建立起來;
2-Way:該狀態(tài)表示雙方互相收到了對端發(fā)送的HELLO報文,雙向通信已經(jīng)建立;
Exstart:該狀態(tài)下,鄰接路由器之間通過互相交換DD報文來決定發(fā)送時的主/從關(guān)系;
Exchange:該狀態(tài)下,路由器將本地的鏈路狀態(tài)信息用DD報文來描述,發(fā)送給鄰接路由器;
Loading:該狀態(tài)下,路由器發(fā)送LSR報文向鄰接路由器請求對方的鏈路狀態(tài)數(shù)據(jù);
Full:該狀態(tài)為鄰居狀態(tài)機最后一個狀態(tài),2個鄰接路由器間鏈路狀態(tài)數(shù)據(jù)已經(jīng)同步。
OSPF協(xié)議設(shè)計當(dāng)初只考慮到一些網(wǎng)絡(luò)問題,如鏈路的增加和減少、路由節(jié)點的宕機和重啟、簡單的路由認(rèn)證等,并沒有充分考慮安全問題,協(xié)議本身的不完善性,有可能給路由協(xié)議帶來安全隱患,而這些隱患可被利用作為攻擊OSPF協(xié)議的手段。
OSPF協(xié)議自身已經(jīng)設(shè)計了內(nèi)建的安全機制來保證協(xié)議的正常運行,但這些機制仍存在被攻擊者利用的漏洞。
2.1.1 層次化的路由機制
層次化的路由機制在一定程度上可以縮小攻擊的影響范圍,但不能起到防護作用,尤其當(dāng)攻擊者仿冒一個區(qū)域/自治系統(tǒng)邊界路由器發(fā)起攻擊或者控制一個邊界路由器后,反而會更容易使攻擊影響整個區(qū)域或自治系統(tǒng)。
2.1.2 OSPF的泛洪機制
泛洪機制使得OSPF協(xié)議具有一定的自我糾錯能力,通常被稱作反擊機制,可以在一定程度上抵御仿冒或篡改攻擊。但不能阻止攻擊者利用反擊機制發(fā)起拒絕服務(wù)攻擊,若攻擊者發(fā)送大量偽造的報文,會致使路由器不斷糾正錯誤路由,從而造成路由震蕩甚至網(wǎng)絡(luò)癱瘓。
2.1.3 報文的驗證機制
OSPF協(xié)議自身的驗證機制包括空認(rèn)證、明文認(rèn)證和密碼認(rèn)證3種方式。明文認(rèn)證方式下,驗證口令直接在報文中傳輸,任何可捕獲該報文的用戶可輕松獲得口令;MD5密碼認(rèn)證方式增加了認(rèn)證破解的難度,提高了安全性[10],但這并不意味著足夠安全,MD5算法現(xiàn)在已證明能夠被破解[11],攻擊者可以破解后再入侵路由器,實施攻擊行為。
2.2.1 OSPF協(xié)議數(shù)據(jù)報文頭部缺陷
當(dāng)OSPF自治系統(tǒng)內(nèi)某一個路由器重啟或者序號回滾時,鄰居路由器就會重置它們交互的序列號狀態(tài)。此時,惡意攻擊者就可以利用序列號的漏洞將之前的數(shù)據(jù)包重放,而在網(wǎng)絡(luò)中的路由器看來,這些報文是合法的。如果重放的數(shù)據(jù)包序列號足夠大,就能導(dǎo)致被重放的路由器與其他路由器在一定時間內(nèi)無法建立鄰接關(guān)系。
2.2.2 Hello報文字段缺陷
2個鄰接路由器的Hello報文頭部中的字段不一致時,驗證不通過,會導(dǎo)致路由器丟棄HELLO報文。所以只要篡改HELLO報文的這些字段,例如AreaID、RouterDeadInterval和HelloInterval等,就可以造成Hello報文被鄰接丟棄,影響鄰接關(guān)系。
2.2.3 LSU報文頭部缺陷
路由器在接收LSU報文時,將首先比對其頭部字段,確認(rèn)無誤后才進行下一步處理。因此,不正確的頭部字段(RouterID、AreaID和AuType等)將使得整個路由報文被丟棄。
2.2.4 LSA頭部缺陷
LSage字段代表了LSA產(chǎn)生后所經(jīng)過的時間,如果惡意攻擊者把該字段篡改為最大值,則會引起不必要的泛洪和鏈路狀態(tài)數(shù)據(jù)庫(LSDB)刷新,造成路由震蕩。
LSsequencenumber字段標(biāo)識一個LSA的序列號,序列號越大表示LSA越新,其他路由器更新序列號大的鏈路狀態(tài)數(shù)據(jù)。惡意攻擊者可通過改大序列號字段并加入偽造的鏈路狀態(tài)信息,使接收路由器把虛假的鏈路狀態(tài)信息更新到鏈路狀態(tài)數(shù)據(jù)庫。
2.3.1 計時器缺陷
計時器參數(shù)對OSPF協(xié)議的管理至關(guān)重要,Hello Interval計時器數(shù)值發(fā)生變化時,所有遠程域內(nèi)成員都將拒絕接收該發(fā)生變化的路由器的Hello數(shù)據(jù)報文,而后在Router Dead Interval時間間隔后中斷與該路由器的鄰接關(guān)系。
2.3.2 資源消耗的威脅
在路由請求、路由更新、指定路由器選舉和DD報文交換階段,如果持續(xù)惡意地以一定的頻率發(fā)送報文,則目的路由器將會耗費大量內(nèi)部資源,無法正常工作,甚至癱瘓。
OSPF協(xié)議安全增強是在OSPF協(xié)議流程基礎(chǔ)上通過增加基于數(shù)字證書的協(xié)議對等體認(rèn)證實現(xiàn)的。協(xié)議對等體使用數(shù)字證書作為有效身份信息標(biāo)識,雙向認(rèn)證通過后產(chǎn)生會話密鑰,協(xié)議交互流程中使用會話密鑰生成安全認(rèn)證信息增加到報文中,為OSPF報文提供完整性保護。
協(xié)議對等體認(rèn)證過程是在經(jīng)典的Needham-Schroeder公鑰認(rèn)證協(xié)議的修訂版基礎(chǔ)之上結(jié)合OSPF協(xié)議流程改進實現(xiàn)的。協(xié)議參與主體雙方都事先擁有自己的證書,同時證書的私鑰只有證書持有者知道。認(rèn)證過程如圖2所示。
圖2 協(xié)議對等體認(rèn)證過程
協(xié)議對等體認(rèn)證的具體處理流程如下:
① 在鄰居學(xué)習(xí)過程中,RT1發(fā)送HELLO報文時,攜帶發(fā)送方路由器的認(rèn)證信息,包括數(shù)字證書、認(rèn)證參數(shù)等;RT2接收HELLO報文時,進行安全增強標(biāo)識判斷,如果沒有安全增強標(biāo)識,則丟棄報文;如果有安全增強標(biāo)識,則對HELLO報文攜帶的數(shù)字證書進行驗證,驗證不通過則直接丟棄報文,驗證通過則進行HELLO報文的處理;
② 在密鑰通知過程中,RT1發(fā)送密鑰通知Key_Notify報文,攜帶發(fā)送方路由器密鑰和簽名,RT2收到密鑰通知報文后對簽名進行驗證,簽名正確則保存密鑰,并回送密鑰確認(rèn)報文Key_Ack;
③ 在完整性保護過程中,雙方發(fā)送OSPF協(xié)議報文時,生成原始報文的摘要,再使用雙向認(rèn)證過程中所產(chǎn)生的會話密鑰,使用HMAC-SHA-1摘要信息進行加密,生成完整性保護信息,并置位安全增強標(biāo)識;收到OSPF協(xié)議報文后,進行安全增強標(biāo)識判斷,如果沒有安全增強標(biāo)識,則丟棄報文;如果有安全增強標(biāo)識,對OSPF協(xié)議報文進行認(rèn)證及完整性保護的驗證,驗證不通過則直接丟棄報文,驗證通過則進行后續(xù)的協(xié)議處理。
為實現(xiàn)OSPF協(xié)議安全增強,需對OSPF協(xié)議進行相應(yīng)的擴展。擴展的內(nèi)容包括:
① 增加密鑰通知和密鑰確認(rèn)2種報文用于雙方會話密鑰的確認(rèn);
② 修改OSPF報文頭中Type域定義;
③ 修改OSPF報文Options域,增加安全增強標(biāo)識;
④ 修改HELLO報文格式,增加證書字段;
⑤ 修改其他協(xié)議報文,增加完整性保護字段。
密鑰通知報文格式如圖3所示。
圖3 密鑰通知報文格式
OSPF協(xié)議安全增強系統(tǒng)是在商用OSPF協(xié)議軟件基礎(chǔ)上進行安全性改進實現(xiàn)的[12],模塊組成如圖4所示,主要由數(shù)據(jù)收發(fā)模塊、數(shù)據(jù)預(yù)處理模塊、狀態(tài)機處理模塊、對等體認(rèn)證模塊、密鑰處理模塊、協(xié)議保護模塊以及維護管理模塊組成等組成。
圖4 軟件組成示意
其中,狀態(tài)機處理模塊用于OSPF協(xié)議狀態(tài)機的處理,在鄰居學(xué)習(xí)過程中,發(fā)送HELLO報文時,按照改造后的報文格式封裝HELLO報文,攜帶發(fā)送方路由器的數(shù)字證書;接收HELLO報文時,讀取HELLO報文中攜帶的數(shù)字證書,并調(diào)用對等體認(rèn)證模塊對數(shù)字證書進行驗證,驗證不通過則直接丟棄報文;鄰居學(xué)習(xí)完成后,調(diào)用密鑰處理模塊啟動密鑰確認(rèn)過程;密鑰確認(rèn)后,需要發(fā)送OSPF協(xié)議報文時調(diào)用協(xié)議保護模塊對協(xié)議報文增加安全保護機制,接收到OSPF協(xié)議報文時,調(diào)用協(xié)議保護模塊對收到的報文進行完整性保護驗證。
對等體認(rèn)證模塊,使用發(fā)送路由器的公鑰和數(shù)字證書進行簽名比對,比對一致則為認(rèn)證通過,不一致則為認(rèn)證不通過,并保存通過認(rèn)證的發(fā)送路由器的數(shù)字證書和公鑰。
密鑰處理模塊,負(fù)責(zé)完成密鑰的通知確認(rèn)過程,發(fā)送密鑰通知報文時攜帶發(fā)送方路由器密鑰,接收方收到密鑰通知報文后對密鑰進行驗證和保存,并回送密鑰確認(rèn)報文。
協(xié)議保護模塊,負(fù)責(zé)完成OSPF協(xié)議報文的完整性保護,發(fā)送協(xié)議報文時,使用發(fā)送方路由器的密鑰生成哈希運算消息認(rèn)證碼(Hash-based Message Authentication Code,HMAC)信息,并封裝到協(xié)議報文中;接收到協(xié)議報文時,用所緩存的密鑰對報文進行完整性保護的驗證,并返回驗證結(jié)果。
試驗驗證環(huán)境使用3臺裝載OSPF協(xié)議安全增強系統(tǒng)的路由器組網(wǎng)模擬通信網(wǎng)絡(luò),協(xié)議攻擊系統(tǒng)接入模擬網(wǎng)絡(luò)發(fā)起OSPF協(xié)議攻擊,在路由器上通過使能OSPF安全增強功能對協(xié)議攻擊進行防護。本文分別模擬了LSR報文偽造攻擊[13]、DD報文偽造攻擊[14]、最大序列號攻擊和最大年齡攻擊[15]共4種OSPF協(xié)議攻擊方法,其中LSR報文偽造攻擊和DD報文偽造攻擊用于測試OSPF安全增強系統(tǒng)對協(xié)議偽造類攻擊的防護能力,最大序列號攻擊和最大年齡攻擊用于測試OSPF安全增強系統(tǒng)對協(xié)議篡改類攻擊的防護能力。
經(jīng)過測試OSPF安全增強系統(tǒng)對4種協(xié)議攻擊均有防護效果。其中對DD報文偽造攻擊防護的試驗結(jié)果如圖5所示。
圖5 DD報文偽造攻擊防護效果
DD報文偽造攻擊的效果為引起被攻擊的路由器的占用率提高,未進行攻擊的情況下,路由器的CPU占用率穩(wěn)定在2%左右;發(fā)起攻擊后CPU占用率增高至99%,并一直維持;路由器使能OSPF協(xié)議安全增強功能后,路由器CPU占有率恢復(fù)到正常的2%。
本文提出的基于對等體認(rèn)證的安全增強方法,保證了協(xié)議主體的真實性、消息的新鮮性,所生成的會話密鑰具有保密性、新鮮性和主體關(guān)聯(lián)性,實現(xiàn)了雙向認(rèn)證安全、雙向密鑰協(xié)商安全及協(xié)議報文交互的完整性保護,并在此基礎(chǔ)上進行了設(shè)計實現(xiàn)和攻擊試驗驗證。試驗證明,OSPF協(xié)議的安全增強方法可為提高OSPF協(xié)議安全性提供一種解決途徑。
[1] 潘道欣,王軼駿,薛質(zhì).基于網(wǎng)絡(luò)協(xié)議逆向分析的遠程控制木馬漏洞挖掘[J].計算機工程,2016(2):146-150.
[2] 周未,解文彬,李磊.賽博空間安全框架設(shè)計及風(fēng)險評估方法[J].計算機工程與應(yīng)用,2016(18):122-126.
[3] 吳巍.賽博空間技術(shù)發(fā)展現(xiàn)狀與通信網(wǎng)絡(luò)安全問題[J].無線電通信技術(shù),2012,38(3):1-4.
[4] 李吉良.下一代網(wǎng)絡(luò)路由交換關(guān)鍵技術(shù)研究[J].無線電通信技術(shù),2008,34(2):1-5.
[5] DOYLE Jeff.Routing TCP/IP Volume 1[M].葛建立,吳建章,譯.北京:人民郵電出版社,2002.
[6] 楊靜,謝蒂,王雷.OSPF路由協(xié)議的安全分析及其漏洞防范[J].山東大學(xué)學(xué)報(工學(xué)版),2003,33(5):550-553.
[7] MURPHY S,BADGER M.Digital Signature Protection of the OSPF Routing Protocol[C].In Proceedings of the Symposium on Network and Distributed System Security (SNDSS.96),1996.
[8] 高明成.開放最短路徑優(yōu)先協(xié)議原理及攻擊分析[J].電腦知識與技術(shù),2009,30(5):8391-8392.
[9] 林思一.OSPF路由選擇協(xié)議研究[J].哈爾濱商業(yè)大學(xué)學(xué)報,2003,19(6):651-653.
[10] 姚小蘭.OSPF協(xié)議報文認(rèn)證分析與安全研究[J].現(xiàn)代商貿(mào)工業(yè),2008,20(1):266-267.
[11] 李丹,龍毅宏.MD5算法破解對實際應(yīng)用的影響[J].信息安全與通信保密,2005(4):91.
[12] 劉興濤,康賓,周三友,等.自主可控路由器控制交換系統(tǒng)設(shè)計[J].無線電工程,2016,46(8):5-8.
[13] 陳海燕,季仲梅,李鷗,等.OSPF路由協(xié)議安全性分析及其攻擊檢測[J].微計算機信息,2005(5):234-235.
[14] 安寧剛,李國棟,覃尊穎,等.OSPF協(xié)議DD報文的脆弱性分析與驗證[J].微電子學(xué)與計算機,2015,32(2):52-55.
[15] 高崢,李林濤.OSPF協(xié)議安全性分析[J].黑龍江科技信息,2011(4):77.