第 23卷 第 4期
2007年 8月 哈 爾 濱 商 業 大 學 學 報 (自然科學版 )
Journa l of Harb i n Un i versity of Commerce ( Na tura l Sc i ences Ed iti on)
Vol . 23 No . 4
Aug . 2007
收稿日期: 2006 - 05 - 22.
作者簡介:李長山,男,博士,高級工程師,碩士生導師,研究方向:虛擬現實技術、 計算機網絡安全 1
數字簽名保護的 OSPF路由協議的安全性研究
李長山1
, 錢誌軍2
,楊友紅2
(1 . 大慶石油管理局信息中心 ,黑龍江 大慶 153453; 2 .大慶石油學院 計算機與信息工程學院 ,黑龍江 大慶 163453)
摘 要:OSPF路由協議是網絡上應用最為廣泛的鏈路狀態協議之壹 ,用於在網絡上分發路由信息 ,但
是這個擔負著因特網上路由信息分發任務的重要協議在其制定之初並沒有有效的安全手段.為此 ,
IETF提出了數字簽名保護的 OSPF路由協議.闡述了數字簽名保護的 OSPF協議的設計思想和實現
技術 ,構築了帶數字簽名保護功能的路由器組成的實驗網絡 ,對路由協議的數字簽名方案進行了仿真
試驗並得到了系統的數據 ,在此基礎上分析了數字簽名保護的 OSPF協議的安全特性.
關鍵詞:路由器;開放最短路徑優先;自治系統;最大年齡;數字簽名;鏈路狀態通告
中圖分類號: TP393 文獻標識碼:A 文章編號: 1672 - 0946 (2007) 04 - 00484 - 04
Research on security of OSPF routi ng protocol wi th di gi t al si gnature protecti on
L IChang2 Shan
1
,QI AN Zhi2jun
2
, Y ANG You2 hong
2
(1 . I nfor mati on Center,Daqing Petr oMinistrati on Bureau,Daqing 163453, China; 2 . School of
Computer and I nformati on Engineering, Daqing Petr oleum I nstitute, Daqing 163453, China)
Abstract: OSPF r outing p rot ocol is one of the most popular link2state p r ot ocol . The routing
p r ot ocol which is used t o disseminate routing infor mati on throughout the I nternet is not p ro2
tected fr om intruders or faulty routers . For these reas ons, the IETF add a digital signature
p r otecti on t o the OSPF . This paper analyses the secure characteristics and the i mp lementa2
ti on of the OSPF r outing p rot ocolwith digital signature p rotecti on, construct a r oute net work
with four digital signature p rotecti on’ sOSPF router . And analyzes these data which achieved
from the experi ment .
Key words: r outer ;OSPF; AS;max age; digital signature; LSA
出於路由協議安全性的考慮 ,人們普遍認為有
必要加強目前路由協議略顯單薄的安全性.開放最
短路徑優先路由協議 (Open Shortest Path First ,OS2
PF)作為壹種最為普遍使用的內部網關路由協議
( IGP) ,其提供了簡單密鑰認證 ,而對鄰居間傳送
分組實行 MD5密鑰認證的工作則正在進行之
中[ 1 ]
.簡單密鑰認證是壹種不安全的認證措施 ,因
為密鑰傳播過程中任何人都可以截獲、 並使用它.
MD5密鑰認證是壹種較為有效的認證措施 ,但是
它不能夠提供路由信息來源準確性的保證[ 2 ]
.
自治系統中出現的路由信息安全問題主要有
兩個:第壹 ,入侵者對路由信息的篡改、 刪除 ,或冒
充網絡中的路由器發送虛假路由信息;第二是出現
故障的路由器 ,而我們並不知道該路由器出現了故
障.
基於上述的安全隱患 , IETF提出了對 OSPF實
現數字簽名保護的策略.數字簽名 OSPF的核心是
對 OSPF的 LSA (L ink State Advertisement)進行簽
名. 簽名過後的信息會和原來的信息壹起 ,泛洪
( Fl ooding)到區域 (Area)或自治系統 (Aut onomous
System)的任何壹個節點 (Node) .而簽名會使得鏈
路狀態信息 (L ink State I nformati on)得到端到端的完整性保護 ,並對目的 Router提供來源的準確性
保證[ 3, 4 ]
.
1 OSPF的數字簽名保護
1 . 1 密鑰的管理與分發
數字簽名保護 OSPF采用不對稱密鑰技術實
現 ,源路由器有壹對公鑰和私鑰 ,並且擁有從 TE
(Trust Entity)處獲得的公鑰認可證書.並采用 LSA
的可靠的分發機制— — — 泛洪 ( Fl ooding)將公鑰分
發出去 ,以保證每壹個接受其 LSA的路由器都能
接收到其公鑰以便用於解密.這種基於泛洪的分發
機制是在壹種新的 LSA基礎上實現的,這種新的
LSA就是 PK LSA ( Public Key L ink State Advertise2
ment) . PK LSA的結構如圖 1所示.
圖 1 PKLSA結構圖
對於壹個在區域內部的路由器來說 ,它的
PKLSA並不泛洪到區域外部 ,也就是說外部區域
路由器不需要知道區域內部的路由[ 5 ]
. 當壹個路
由器收到來自區域內另外壹個路由器的 PK LSA
時 ,路由器使用它所擁有的認證實體 ( TE)的公鑰
驗證證書 ,驗證通過則將此 PK LSA保存到鏈路狀
態數據庫 (LSDB)中 ,以便將來用於 LSA信息的驗
證[ 6 ]
.
1 . 2 對 LS A的簽名與認證
本文提出了壹種對 LS A的頭部信息進行簽名
的方案 ,舍去了對比較大的 LS A數據部分的簽名 ,
這樣的方案有利於在不影響安全性的同時節省路
由器的開銷.這樣做的主要依據是 LSA頭部中 LS
校驗和的存在 , LS校驗和用於檢測 LSA頭部和內
容出錯情況 ,雖然這並不包括對 LSA頭部中的年
齡字段.壹個標準的 OSPF v2的 LSA,其 LSA首部
格式如圖 2所示.
圖 2 LSA首部
當路由器產生數字簽名的 LSA時 ,用 LSA的
不包括年齡字段的部分生成摘要 ,然後使用該路由
器的密鑰進行簽名 ,簽名後的信息附加到 LSA尾
部 ,並在其後附加密鑰 I D、 認證實體 I D和簽名長
度.對於源路由器向區域中泛洪的年齡為 MaxAge
的 LSA,簽名包括年齡字段在內的整個 LSA頭部.
簽名後的 LS A格式如圖 3所示.
圖 3 加密後的 LSA
經過簽名的 LS A泛洪到達目的路由器 ,當某
壹路由器收到經過簽名的 LSA後 ,便使用其得到
的發送此 LS A的源路由器的公鑰來校驗接收到的
LSA.如果此 LSA通過校驗 ,也就是說目的路由器
認為它是來自正確的源路由器且泛洪途中沒有受
到惡意的篡改、 替換 ,目的路由器認為校驗通過並
保存這壹收到的 LSA以便將來計算路由時使用.
如果校驗沒有通過 ,目的路由器會認為此 LSA不
是來自正確的源路由器或者是傳輸途中遭受了篡
改等攻擊 ,則目的路由器將此 LS A丟棄不用. 另
外 ,還有壹種特殊情況就是來自源路由器的
PKLSA的公鑰無效 ,此種情況下 ,路由器會將簽名
的 LSA暫時保存壹段時間 ,這壹個暫存時間由
MAX_TRANSIT_DELAY定義 ,如果在此時間間隔
內源路由器重新發來 PK LSA,則處理暫存的簽名
· 584 · 第 4期 李長山 ,等:數字簽名保護的 OSPF路由協議的安全性研究LSA,如果沒有則丟棄該簽名 LSA. 這樣可以保證
在簽名 LSA先於 PK LSA到達目的路由器的情況下
有用路由信息不被丟棄.
簽名與驗證的過程見圖 41
圖 4 密鑰的管理與公鑰的分發
1 . 3 年齡字段的處理
在 OSPF協議中 , LSA頭部的 Age (年齡 )字段
是壹個非常重要的部分. 這壹字段用於確定 LSA
在路由系統中存在的時間.當 Age字段到達壹個最
大值 MaxAge後 ,路由器就會停止使用該 LSA來計
算路由 ,壹旦某壹路由器中的某壹個 LSA 達到
MaxAge,則這壹路由器會將到達最大年齡的 LSA
泛洪到自治系統中去 ,其它的路由器壹旦收到這種
age字段為 MaxAge的 LSA,則將自己數據庫中 LS
類型相同的 LSA刪除. 同樣,依靠上述原理 ,路由
器還有壹個早熟化 ( Premature aging)的機制.采用
早熟化過程 , 源路由器通過設定 LSA的 age字段
為 MaxAge並且重新泛洪該 LSA,便可以從冗余的
分布式數據庫中刪除該 LS A[ 7, 8 ]
1
由於上述的 Age字段的重要性和易受攻擊的
特性 ,使得在對 LSA進行簽名的過程中不得不將
其進行保護.但是 Age字段在經過每壹個路由器的
時候又必須被路由器修改 ,這又使得該字段在數字
簽名中很難加以保護.為了保護 Age字段 ,只有當
Age字段的值為 MaxAge時才能被覆蓋;同理 ,也只
有在 Age為 MaxAge時才對 Age字段進行驗證.對
於 Age字段是 MaxAge的 LSA,只允許產生該 LSA
的源路由器才可以對該 LS A的 Age字段進行簽名
保護;同理 ,壹路由器在收到 LSA時 ,如果該 LSA
的 Age字段是 MaxAge,且被數字簽名所覆蓋 ,但是
對其進行數字簽名覆蓋的路由器不是該 LSA的源
路由器 ,則該路由器會將此 LSA拋棄. 上述的規
則 ,生成簽名 LS A的路由器可以通過早熟或正常
的機制從冗余的分布式數據庫中刪除 LSA,而且又
能保護其生成的 LSA不被其他惡意的路由器篡改
Age字段[ 9, 10 ]
.
2 數字簽名 OSPF的安全性分析
2 . 1 實驗環境
實驗環境的拓撲如圖 5所示 , 4臺具有數字簽
名 OSPF能力的路由器環形成網 ,需要說明的是當
其中壹臺出現故障時 ,並不影響整個網絡的運行 ,
數據會自動繞過該故障路由器.
圖 5 路由域拓撲
2 . 2 針對序列號的攻擊
序列號在 LSA頭部是壹個重要的字段. 當壹
個路由器有同壹個 LSA的兩個實例時 ,可以通過
比較實例的 LS序列號字段來判斷哪個較新.由於
OSPF的 LSA是采用泛洪的方式傳播的 ,因此在泛
洪途中區域中的入侵者或錯誤路由器都可以對
LSA信息發起攻擊 ,篡改其內容.針對序列號的攻
擊有 2種:序列號加壹攻擊和最大序列號攻擊.第
1種 ,最大序列號攻擊:攻擊者直接將 LSA序列號
的值更改為正的最大值 0x7fffffff,重新計算校驗和
後泛洪出去.這壹 LSA在路由域中將停留 MaxAge
時間才被清除 ,使得路由信息的更新延誤. 如表 1
所示 ,鏈路狀態 I D為 10 . 8 . 6 . 123的 LSA由於 LS
序列號被人為修改為最大值,則其在鏈路狀態數據
庫中停留到 MaxAge - 1也就是系統中的 59 min時
尚未被清除.
表 1 最大序列號攻擊下的 LSADB
鏈路狀態 I D LS序列號 校驗和 年齡 10. 8. 6. 123 0x7fffffff 0xbe17 59
10. 8. 6. 2 0x80000003 0xf1da 11
10. 8. 6. 3 0x80000009 0x101f 21
10. 8. 6. 1 0x80000007 0x4917 17
· 684 · 哈 爾 濱 商 業 大 學 學 報 ( 自 然 科 學 版 ) 第 23卷在數字簽名系統中 ,此 LSA由於修改了 LS序
列號 ,導致校驗失敗 ,所以鏈路狀態 I D為 10 . 8 . 6 .
123的 LSA被拋棄.如表 2所示.
表 2 采用數字簽名後的 LSDB
鏈路狀態 I D LS序列號 校驗和 年齡
10. 8. 6. 2 0x80000003 0x12f2 12
10. 8. 6. 3 0x80000009 0x393a 21
10. 8. 6. 123 0x80000007 0x1f27 3
第 2種 ,序列號加壹攻擊 ,LSA頭部中 LS序列
號較大的實例被規定是較新的 ,並且 OSPF協議會
用最新的實例來替代較老的實例.在實驗中 ,我們
模仿壹個攻擊者將壹 LSA的序列號加壹 ,並重新
計算 LSA的校驗和 ,然後擴散出去.並不停的重復
這壹操作 ,網絡在如此操作的情況下變得極其不穩
定.在采用數字簽名後 ,壹旦將序列號加壹修改 ,即
便重新計算校驗和也無濟於事 ,由於沒有簽名私鑰
而沒法重新簽名 ,這樣的 LSA在接收的路由器處
校驗出錯並被丟棄.
2 . 3 最大年齡攻擊
攻擊者截取 LS A 後將 LS的 Age字段設為
MaxAge,由於 Age字段不在校驗和計算的範圍中 ,
因此不用計算校驗和即可泛洪此 LSA.任何接收到
此錯誤 LSA的路由器都將從其數據庫中清除與此
錯誤 LSA相同序列號的正確 LSA,從而造成路由
信息的丟失[ 11 ]
. 雖然 OSPF V2規定只有產生該
LSA的源路由器才可以將 LSA的 Age字段設置為
MaxAge,但這些措施並不能有效防止壹個錯誤的
路由器發動最大年齡攻擊[ 12 ]
.在數字簽名的 OSPF
中 ,對於 Age字段為 MaxAge的 LSA,該 LS A必須
由也只能有生成該 LSA的發源路由器進行簽名 ,
這樣在接收端進行的驗證可有效防止入侵者將
Age字段篡改為 MaxAge .但是數字簽名的 OSPF並
不能夠防止入侵者將 Age值修改為壹個接近 Max2
Age的值 ,因為將 LSA 的 Age字段置為壹個非
MaxAge值時並不需要經過簽名.但這種攻擊只能
加快路由器中 LSA的更新速度 ,卻並不能給路由
域帶來很嚴重的安全威脅.
3 結 語
對於 OSPF的數字簽名保護大大加強了路由
域的信息傳輸的安全性. 由於有了數字簽名的保
護 ,攻擊者對路由信息的篡改在接收處總是能被驗
證出 ,錯誤的信息被拋棄 ,從而凈化了路由信息.本
文所提出的 OSPF簽名方案在保證安全性的同時
很好地減少了路由器的開銷,實驗表明該方案是完
全可行的.在上述方案和實驗的情況下對數字簽名
的 OSPF協議的安全性進行了全面的分析 ,為進壹
步改進數字簽名的 OSPF協議的安全性做了有益
的工作.
參考文獻:
[ 1 ] MURPHY S, BADGER M, WELL I NGTON B. RFC2154 [ R ].
OSPF with Digital Signature , June, 1997.
[ 2 ] JOHN T . Moy RFC2328. OSPF Version 2 [ R ]1 Ap ril, 1998.
[ 3 ] 郭 偉,余亞華. 數字簽名 OSPF公***密鑰發布機制的研究
[ J ]. 江漢大學學報:自然科學版, 2003, 31 (3) : 46 - 481
[ 4 ] 李 鵬,王紹棣,王汝傳,等. 攜帶數字簽名的 OSPF路由協
議安全研究 [ J ]. 南京郵電學院學報, 2005, 25 (2) : 86 - 901
[ 5 ] MURPHY S, BADGER M. Digital Signature Protection of the
OSPF Routing Protocol[ C ] / / Proceedings of the 1996 Symposi2
um on Net work and Distribute System Security, [ S . l ] : [ s . n ] ,
1996.
[ 6 ] 盧開澄. 計算機密碼學 [M ]. 北京:清華大學出版社, 1990.
[ 7 ] JOHN TM1 OSPF Anatomy of an I nternet Routing Prot ocol[M ].
[ S . l ] : Addis onWesley, 1998. 11
[ 8 ] JOHN TM1 OSPF Comp lete I mp lementation[M ]. [ S . l1 ] : Ad2
dis onWesley, 2000. 121
[ 9 ] 蔡樂才,張仕斌.應用密碼學 [M ]. 北京:中國電力出版社,
2005.
[ 10 ] MOHAN A, BEN J, HAMMOND. Digital Signature[M ]. [ S .
l ] : McGraw Hill, 2002, 101
[ 11 ] 謝 蒂,楊 靜. 壹種低代價、 可靠的 OSPF驗證機制 [ J ].
計算機應用, 2003, 23 (12) : 33 - 34, 45.
[ 12 ] 曲英偉,鄭廣海 1基於多 Agent系統的安全體系結構 [ J ] 1
哈爾濱商業大學學報:自然科學版, 2005, 21 ( 2) : 182 - 185,
2491
· 784 · 第 4期 李長山 ,等:數字簽名保護的 OSPF路由協議的安全性研究