劉玉貞,李 珩,李炳彰
一種基于數字證書的安全IS-IS路由協議
劉玉貞1,2,李 珩2,李炳彰2
(1.通信網信息傳輸與分發技術重點實驗室,河北石家莊050081;2.中國電子科技集團公司第五十四研究所,河北石家莊050081)
為提高IS-IS路由協議安全性,增強抵御惡意網絡攻擊能力,通過分析IS-IS協議的報文格式和工作機理,提出其存在的缺陷性。基于數字證書的身份認證的設計思想,提出在協議對等體認證流程和協議報文兩方面對IS-IS協議進行安全擴展的方法,設計了安全IS-IS協議軟件。通過試驗證明了所提出的安全擴展方法可有效提高IS-IS協議的安全性。
路由協議;IS-IS;數字證書;安全擴展
引用格式:劉玉貞,李 珩,李炳彰.一種基于數字證書的安全IS-IS路由協議[J].無線電工程,2016,46(5):17-21.
近些年通信網絡的安全問題受到越來越多的關注[1],路由系統作為網絡正常有序工作的基礎[2],其安全問題對通信網絡安全至關重要。路由協議在方便路由信息管理和傳遞的同時[3],也存在一些缺陷,如:協議本身缺乏對等體間的認證機制;傳送的路由信息等內容缺乏加密機制;路由協議通過TCP、UDP或IP協議傳送,從而TCP、UDP和IP協議本身的缺陷或實現漏洞將直接威脅路由系統的安全[4]。
利用路由協議漏洞實施的攻擊破壞性強、影響范圍大,可實施的攻擊包括:路由表偽造攻擊、路由欺騙、拒絕服務攻擊、路由震蕩攻擊和重放攻擊等。因此,加強路由協議的安全性就成為了提高網絡可靠穩定運行能力的重中之重。
IS-IS路由協議是目前內部網關協議的主流協議之一,由于其在大型網絡環境中性能優、穩定性好、收斂快和可擴展性強,已被大多數ISP網絡用作骨干路由協議[5]。所以如何保證 IS-IS協議的安全、防止惡意攻擊就成為了確保網絡正常可靠運行的關鍵問題。
但目前域內路由協議安全性研究方面的主要成果集中在OSPF路由協議,對于IS-IS路由協議安全增強方法的研究較少。本文將基于數字證書實現雙向身份認證的方法應用于IS-IS協議,確保了協議對等體之間的相互信任,并在此過程中產生會話密鑰。同時利用IS-IS協議報文使用TLV擴展性好的優點,通過增加專用安全認證TLV,實現IS-IS協議的完整性保護,增強協議的安全性和抗攻擊能力。
為了實現廣泛的網際互連,國際標準化組織(ISO)于20世紀80年代提出了開放系統互連體系(OSI)即7層網絡模型,并同ITU-T一起設計了一種名為OSI的網絡協議。為了實現對ISO的無連接網絡協議(CLNP)進行路由選擇,ISO提出了IS-IS路由協議。由于IP協議的應用遠比OSI開放系統應用廣泛,發展迅猛,為增加對IP協議的路由選擇能力,IETF對IS-IS進行了擴充(RFC1195),可以同時支持OSI和TCP/IP雙重環境,這個協議稱為集成IS-IS,也叫雙IS-IS[6]。
作為一種鏈路狀態路由選擇協議,IS-IS具有良好的可擴展性。IS-IS支持分層路由以用于大型網絡,它將一個域分為多個L1路由區域,L1路由區域間通過L2域連接。同一L1區域內使用L1路由,不同L1區域間使用L2路由互通,L2域稱為骨干路由域[7]。
1.1 IS-IS協議報文
在IS-IS中,路由協議使用3大類報文:Hello報文、鏈路狀態數據包(Link State Packets,LSP)和序列號數據包(Sequence Numbers Packets,SNP)。Hello報文用來建立和維持IS-IS路由器之間的鄰接關系;LSP鏈路狀態數據包用來承載和泛洪路由器的鏈路狀態信息,并且鏈路狀態數據庫是路由器進行SPF計算的依據;SNP用來進行鏈路狀態數據庫的同步,并且用來對LSP進行請求和確認。通過使用這些數據包,IS-IS完成鄰接關系的建立、鏈路狀態信息的擴散和鏈路狀態數據庫的同步。
每種類型報文PDU都有一個特定的類型號,路由器通過類型號來識別所收到的PDU報文類型。IS-IS協議PDU類型如表1所示。

表1 IS-IS協議PDU類型
所有IS-IS PDU起始的8個字節都是數據報頭的頭部字段,并且對于所有的PDU數據包類型都是相同的,如圖1所示。

圖1 IS-IS報頭字段
跟在各種類型IS-IS PDU報頭之后的是TLV (Type/Length/Value)字段,PDU報頭與TLV字段構成一個完整的IS-IS PDU。使用TLV的最大優點就是增強了協議的擴展性,當需要擴展協議的功能時,只需要定義新的TLV就可以。
1.2 IS-IS協議工作流程
1.2.1 連接關系的建立和維護
IS-IS相鄰路由器之間利用周期性發送Hello PDU建立并維護鄰接關系。IS-IS路由協議把網絡分為點對點子網和廣播子網2種子網類型。在點對點子網中,IS傳送點對點的IIH PDU到不屬于外部路由域的鏈路上。IS-IS協議要求點對點鏈路兩端的IS應先交換IIH PDU,以便雙方確認對方的IS身份,并回應點對點IIH建立鄰接關系。IS根據保持時間字段的數值來更新本地鄰居列表中的相應記錄;在廣播網絡上,IS根據所在層發送Hello PDU,接收L1鄰居IIH和L2鄰居IIH,建立鄰接關系。
1.2.2 鏈路狀態信息的交互和維護
IS-IS需要在每一路由器上維護鏈路狀態數據庫,以達到各路由器對網絡鏈路狀態的一致描述。當鏈路狀態、網絡拓撲或配置發生變化時,IS-IS使用LSP通告給其他路由器。路由器周期性地把自己或偽節點的鄰接關系廣播到所有鏈路,與其他路由器交互本地地址、L1的IS鄰接關系、L1的ES鄰接關系、L2的IS鄰接關系以及鏈路狀態信息。當狀態發生變化時,產生帶有新的序列號的LSP。其他路由器收到新序列號的LSP后,將LSP存儲到鏈路狀態數據庫中,并對LSP進行轉發,擴散到其他節點。
IS-IS使用序列號PDU來確認收到報文和維護鏈路狀態同步,序列號 PDU分為兩種 PSNP和CSNP。點對點網絡中使用PSNP進行LSP確認和LSP同步;廣播網絡中,使用CSNP來發布所有LSP的摘要信息。相鄰IS收到摘要信息后判斷LSP的時效性,如果收到的CSNP中包含新的LSP,則回送PSNP申請自己需要的LSP,收到新的LSP后存入鏈路狀態數據庫,從而達到鏈路狀態數據庫的一致。
2.1 內建安全機制缺陷
IS-IS協議通過自身的安全機制保證協議的正常運行。但這些安全機制存在很多漏洞,使攻擊者實現路由攻擊成為可能。
2.1.1 IS-IS層次化的路由機制缺陷
IS-IS引入了區域的概念,這種路由機制雖然可以減小攻擊的影響范圍,但是不能防止攻擊的發生,并且當攻擊者攻擊一個LEVEL-1-2路由器,或者攻擊實體假冒一個LEVEL-1-2路由器,層次化的路由機制不但不能起到防護功能,反而會使攻擊變得非常容易。
2.1.2 IS-IS的泛洪機制的缺陷
泛洪機制使得IS-IS具有一定的自我糾錯能力,通常被稱作反擊機制,可以在一定程度上抵御惡意攻擊。但是攻擊者依然可以利用反擊機制實現拒絕服務攻擊等。當攻擊者假冒某個路由器產生一個錯誤的路由信息,并泛洪到路由域的每個路由器,真正的路由器接收到該路由信息后,將會觸發反擊機制。如果攻擊者以一定頻率發送攻擊報文,則會引起路由器不斷糾正路由錯誤,使得路由發生振蕩,更甚者導致網絡癱瘓。例如:路由器不能低于最小LSP傳輸間隔更新或發出一個LSP,如果攻擊者以更高速率和更高的序號泛洪惡意的LSP,LSP擁有者不會在域內修正成功該LSP,反而會幫助攻擊者完成攻擊。
2.1.3 報文的認證機制的缺陷
IS-IS協議提供2種認證方式:明文認證和MD5認證。使用明文認證時,口令以明文方式在網絡中傳輸,任何可訪問到該網絡的人都可以在網絡中輕松獲得該口令,有了明文口令后,攻擊者可以很容易偽造和篡改報文,而在域內的路由器看來,這些報文都是合法的,會被作為正確報文接收,更改域內路由信息,進而危及IS-IS路由域的安全。可見,在這種認證類型下,路由信息的安全性基本上得不到保障。
相對于明文認證,MD5認證就提供了更高級別的安全性,但其缺陷依然很明顯。使用MD5認證時,由于共享密鑰從不在網絡中傳輸,所以排除了在網絡中被竊取的可能。但這并不意味著完全的安全,MD5算法現在已證明能夠被破解,當其被破解時,攻擊者可以成功入侵路由域,實施攻擊行為。
2.2 IS-IS報文缺陷
2.2.1 Hello報文字段缺陷
Hello報文頭部中的字段發生錯誤的時候,驗證不通過,會導致報文的丟棄。所以,只要篡改報文的某些字段,例如:路由選擇協議鑒別符、類型和區域地址等等,就可以造成鄰居Hello報文不被其他路由器接收,影響鄰接關系。
Hello報文的重要作用就是建立和維持鄰居關系,它周期性地發出,確保鄰居間雙向通訊。因此,周期性的Hello報文直接關系著鄰居關系的維持。如果在規定周期內路由器沒有接收到鄰居路由器的Hello報文,將被視為鄰接關系被破壞。和其他的破壞鄰接關系的結果一樣,會帶來一系列問題,使得路由器更新自身LSP,重新進行SPF計算等等。
2.2.2 LSP頭部缺陷
在IS-IS路由協議中,LSP是其主要交互內容,IS-IS中對鏈路狀態信息的描述都是封裝在LSP中發布出去。LSP在本路由器的鏈路狀態數據庫中會隨時間老化。剩余生存時間字段是一個跟蹤LSP生存時間的定時器。當LSP剩余生存時間字段的值減少為零時,此LSP將被清除,通過泛洪機制能到達的所有路由器中也將會被同時清除。當發生這種情況后,發現剩余生存時間超時的路由器產生一個剩余生存時間為0、序列號更高的新LSP啟動清除過程。這一過程若被惡意攻擊者利用,則會導致不必要的泛洪和LSDB刷新,引起路由震蕩。
序列號字段標識一個LSP的序列號,其他路由器根據這個值來判斷哪個LSP是最新的,它是一個32位符號整數。路由器在第一次生成任何LSP的時候使用初始序列號,當有新的LSP時,序號加一。當試圖增加最大序列號0xfffffffe時,必須先將當前LSP從路由域中廢止,這通過將LSP老化并重新泛洪實現。但如果未能及時通過泛洪清除此LSP,則會發送回滾后的最小序號的LSP,任何新發出的實例序號都小于最大序號的LSP,將不被接收。攻擊者可以在路由器中插入此類偽造的LSP,作用時間是最大生存時間+零壽命生存時間。
3.1 設計思想
安全IS-IS是在IS-IS協議基礎上進行安全加固實現的。安全IS-IS路由協議采用數字證書作為標識協議實體有效身份信息的載體,在協議報文交互之前首先必須通過協議對等體的雙向認證,雙向認證通過后產生會話密鑰,后續則在協議報文中利用會話密鑰生成新的安全認證TLV增加到報文中,為IS-IS報文提供鄰居間報文信息交互的完整性保護和認證機制。
3.2 協議對等體認證
協議對等體認證過程是在經典的 Needham-Schroeder公鑰認證協議的修訂版基礎之上改進實現的。協議參與主體雙方都事先擁有自己的證書,同時證書的私鑰只有證書持有人本人知道。認證過程如圖2所示,分為2個階段:自適應組網階段和雙向認證階段。

圖2 協議對等體認證過程
3.2.1 自適應組網階段
節點A和節點B識別到物理鏈路UP后,分別向對方發送自適應組網報文,報文內容包含各自的設備IP地址和初始鄰居數。
節點A和節點B收到對端節點的自適應組網報文后,分別記錄對端節點的設備IP地址,在后續發送自適應組網時報文內容為自身設備IP地址、已識別的鄰居數及鄰居節點的設備IP地址。節點B收到節點A的自適應組網報文,發現節點A的鄰居地址中包含自身的設備IP地址,節點所記錄的鄰居列表中也包含節點A的設備IP地址,節點B與節點A構建鄰接關系,即雙向鄰居關系。同理,節點A也與節點B構建雙向鄰接關系。
雙向鄰接關系建立后,根據設備IP地址自動選取認證的客戶端和服務器端,由客戶端首先發起認證請求。
3.2.2 雙向認證階段
協議雙向認證的具體流程和詳細處理過程如下:
①A生成ClientHello:A生成一個新鮮的隨機數NA,將A的證書、身份標識A和隨機數NA一起發送到B。
②B收到ClientHello后,驗證A的證書有效性,驗證通過后,B生成一個新鮮的隨機數NB,使用B的私鑰對[B,NB]進行簽名后,與身份標識B、隨機數NA和NB一同使用A的公鑰加密,并連同B的證書一起發送給A。
③A收到ServerHello后,驗證B的證書有效性,驗證通過后,使用A的私鑰對消息進行解密得到NA,B,NB和[B,NB]KB-1,驗證NA是否是自己發送的隨機數,驗證通過后,使用B的公鑰驗證簽名,驗證通過后,A生成一個新鮮的隨機數NA1,A將[A,NA1]使用自己的私鑰簽名后,再連同NB一起使用B的公鑰加密后發送給B。
④B收到ClientFinish后,使用B的私鑰對消息進行解密得到NB,NA1和[A,NA1]KA-1,驗證NB是否是自己發送的隨機數,驗證通過后,使用A的公鑰驗證簽名,驗證通過后,B將NA1使用自己的私鑰簽名后,再用A的公鑰加密后發送給A,通知A身份驗證通過。
⑤A收到ServerFinish,恢復出NA1,驗證是否是自己發出的隨機數,驗證通過后,雙向認證完成。
⑥認證完成后,可以使用雙方共享的NA1和NB作為雙方會話密鑰材料,會話密鑰按如下方式產生:密鑰塊=H(NA1,NB,A,B,“A”)+H(NA1,NB,A,B,“BB”)+H(NA1,NB,A,B,“CCC”)+[…]。這種產生方式,一共需要6次哈希運算,每次產生20個字節,且每次運算結果不會重復,充分保證會話密鑰SK的安全性。
3.3 協議的安全擴展
IS-IS協議報文采用 TLV結構,便于協議擴展,安全IS-IS協議通過增加專用安全認證TLV定義,使其具有安全支持能力。攜帶安全認證TLV的IS-IS協議報文格式如圖3所示。

圖3 攜帶專用安全認證TLV的IS-IS報文格式
攜帶安全認證信息的IS-IS使用HMAC-SHA-1產生報文的完整性保護信息。當路由器產生攜帶安全認證信息的協議報文時,首先生成原始報文的摘要,再使用雙向認證過程中所產生的會話密鑰,對摘要信息進行加密,使用加密后的摘要信息生成類型為251的專用安全認證TLV插入到原始PDU報頭之后,從而生成攜帶安全認證信息的協議報文,按照協議規程進行發送。
當其他路由器接收到攜帶安全認證信息的協議報文時,利用會話密鑰計算得出加密后的摘要;同時計算原始報文的摘要信息,與經過加密的摘要比較,如果二者一致,則證明該協議報文在傳輸過程中沒有被修改,可以進行進一步接收處理,反之協議報文不被確認應丟棄。
3.4 安全IS-IS協議的軟件實現
安全IS-IS協議軟件的模塊組成如圖4所示,主要由認證處理模塊、協議報文收發驗證模塊、數據庫管理模塊和鄰居管理模塊等組成。

圖4 軟件組成示意
圖4中,認證處理模塊實現協議對等體的雙向認證及協議報文安全認證信息的生成及驗證功能。
協議報文收發驗證模塊完成IS-IS協議報文的收發及攜帶安全認證信息的協議報文生成及解析功能。
數據庫管理模塊是IS-IS協議的核心模塊,實現的功能主要包括:周期性地把自己或偽節點的鄰接關系廣播到所有鏈路、與其他路由器交互鄰接關系以及鏈路狀態信息。當鏈路狀態發生變化時,產生帶有新的序列號的LSP。將新序號的LSP存儲到鏈路狀態數據庫中,并對LSP進行轉發擴散。根據鏈路狀態數據庫計算IS-IS路由表。
鄰居管理模塊通過端口信息接口監視端口狀態的改變,負責鄰居鄰接關系的創建和維持。
IS-IS協議軟件通過路由輸出接口向路由表管理模塊發送IS-IS路由表,并從路由表管理模塊接收其他路由協議如OSPF和BGP等所產生的路由信息;通過端口信息接口從鏈路層獲得當前物理端口狀態信息;通過數據收發接口向鏈路層發送IS-IS協議包,以及從鏈路層接收IS-IS協議包;通過配置管理接口接收來自網管代理軟件的管理信息,實現ISIS協議的參數配置及查詢。
本文提出的基于數字證書作為標識協議實體有效身份信息載體的協議對等體認證機制和協議安全擴展方法,保證了協議主體的活現性和消息的新鮮性,所生成的會話密鑰具有保密性、新鮮性和主體關聯性,實現了雙向認證安全、雙向密鑰協商安全及協議報文交互的完整性保護,并在此基礎上進行了協議的設計實現和試驗驗證。試驗結果表明,IS-IS協議的安全改進方法可為提高網絡基礎協議安全性提供一種解決途徑。
[1] 吳 巍.賽博空間發展現狀與通信網絡安全問題[J].無線電通信技術,2012,38(3):1-4.
[2] 李吉良.下一代網絡路由交換關鍵技術研究[J].無線電通信技術,2008,34(2):1-5.
[3] DOYLE Jeff.Routing TCP/IPVolume 1[M].葛建立,吳建章,譯.北京:人民郵電出版社,2002.
[4] 楊 靜,謝 蒂,王 雷.OSPF路由協議的安全分析及其漏洞防范[J].山東大學學報(工學版),2003,33 (5):550-553.
[5] 康京山,韓春剛.集成 IS-IS路由選擇協議的研究[J].無線電通信技術,2007,33(2):4-7.
[6] IETF RFC1195.Use of OSI IS-IS for Routing in TCP/IP and DualEnvironments[S],1990.
[7] MARTEY A.IS-IS網絡設計解決方案[M].凡 璇,譯.北京:人民郵電出版社,2002.
A Secure IS-IS Routing Protocol Based on Digital Certificate
LIU Yu-zhen1,2,LI Heng2,LI Bing-zhang2
(1.Science and Technology on Information Transmission and Dissemination in Communication Networks Laboratory,Shijiazhuang Hebei 050081,China;2.The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
To improve the security of the IS-IS routing protocol and increase the defensive ability against network attacks,the defects of the IS-IS routing protocol are discussed by analyzing the protocol packets and mechanisms.This paper proposes a security extension method of IS-IS protocol on the authentication process between protocol peers and the definition of the protocol packet,and designs secure IS-IS protocol software.The experiment results show that the proposed security extension method can effectively improve the security of IS-IS protocol.
routing protocol;IS-IS;digital certificate;security extension
TN393
A
1003-3106(2016)05-0017-05
10.3969/j.issn.1003-3106.2016.05.05
2016-01-23
劉玉貞 女,(1972—),碩士,高級工程師。主要研究方向:通信網絡以及路由技術。
李 珩 男,(1981—),碩士,高級工程師。主要研究方向:通信網絡以及路由技術。