中航工業西安航空計算技術研究所 張 成
江海職業技術學院 張 乾
陜西應用物理化學研究所 任 偉
武漢烽火眾智數字技術有限責任公司 張方兵
隨著計算機技術對高速數據通信的需要日益增長,美國國家標準委員會(ANSI)研究了用于連接各種IO設備的高速串行數據傳輸的FC協議[1]。路由技術是FC網絡運作組織的核心,而FSPF(Fabric Shortest Path First)[2]是基于鏈路狀態的路徑選擇協議,可以較好的解決FC網絡擴展的問題,成為當前廣泛應用的FC網絡路由協議。
在FC網絡中,仍然迫切需要提高路由協議的安全性[3],本文介紹了該協議的研究情況,全面分析了FSPF協議的安全性,并給出了加強安全性的建議。
FSPF是基于鏈路狀態的路徑選擇協議,交換機的鏈路狀態的集合構成整個交換網的拓撲數據庫,FSPF協議基于該數據庫,計算從一個交換機到交換網內其他所有交換機的最短路徑。FSPF由4部分組成:Hello協議,用來確定與鄰居交換機的聯通性;可復制的拓撲數據庫,這個數據庫是由鏈路狀態報告(LSR)組成的集合,它是FSPF的核心;計算最短路徑的算法[4],可以考慮優先圖最短路徑的各種算法;拓撲數據庫更新機制。FSPF協議工作步驟見表1所示。
FSPF協議中主要發送的網絡協議幀有:Hello幀,LSR幀,LSU幀。
Hello幀的內容包含FSPF頭以及明確的Hello協議參數。LSR幀的內容包含FSPF頭及明確的LSR參數,包含了所有交換機級聯鏈路(ISL)信息。LSU幀是鏈路狀態更新序列,LSU幀的內容包含FSPF頭和明確的LSU參數,包含了LSR總數等信息。
交換機完成所有鄰居的初始數據庫同步后,當發生ISL的上下線和Hello超時時,需要發送LSR來保持數據庫的同步。另外連接在交換網中的交換機必須周期性的發送LSR以防止被從數據庫中刪除。當交換機需要發布新的LSR時,這個LSR以可靠的泛洪方式發送。
在數據庫更新階段,每個交換機用泛洪法向鄰居發送它的整個拓撲數據庫。拓撲數據庫的LSR在FSPF的鏈路狀態更新(LSU)序列中發送。一個LSU可能包含0個或者多個LSR,不帶LSR的LSU用來通知它的鄰居數據庫傳送已經完成。
作為一個廣泛應用的FC網絡路由協議,FSPF協議的設計充分考慮了安全性。
FSPF協議具備通信加密的功能。FSPF協議中有一個安全鑰分配服務器,然后通過安全鑰的分布認證,保證交換機之間可以安全的交換加密數據。安全鑰分布的服務按照下面的流程進行的。
首先,每個交換機有一個唯一的私有鑰,稱為“分布鑰”,在服務器中也有副本。分布鑰長度較長,一般在70-90比特,使用加密算法將它生成一個密鑰,長度較短,一般在40-75比特,用來對通信數據加密。
發送方向安全鑰分配服務器發送一個KEY_REQUEST請求,指明了發送方,響應地址標識符和一個唯一的請求標識符。服務器證實這個請求,并且對發送方、響應方和該請求生成一個密鑰。然后服務器使用發送方的分布鑰將密鑰、唯一的請求標識符和響應方標識符進行加密,它也用響應方分布鑰對密鑰和發送方標識符進行加密,最后把這些作為對KEY_REQUEST的答復發給發送方。
發送方收到該答復,用它的分布鑰對答復進行解密,獲取密鑰、答復方標識和唯一的請求標識符。然后它把一個加密標識符,響應方密鑰加密的密鑰和發送方標識符發送給響應方,響應方解密信息,獲得密鑰和發送方的標識符。
為了認證密鑰來源是否正確,響應方生成一個不同的唯一標識符,用密鑰對其進行加密,并發送給對方。發送方用密鑰進行解密,并對獲取的標識符進行減一操作,再用密鑰重新加密發送給響應方。當響應方解密收到的值,發現比原值少1,則確信密鑰正確,從而開始進行雙向的安全通信。
在FSPF協議幀接收過程中,要經過嚴格的檢驗,FC幀頭、FSPF協議幀頭和FSPF具體協議幀頭。這種接收的檢驗過程,增強了協議通信的安全性,具體處理流程如圖1所示。

圖1 FSPF協議幀檢驗流程

表1 FSPF協議工作步驟
在網絡運行過程中,為了同步拓撲數據庫,FSPF使用泛洪法對全網發布鏈路狀態更新LSU。每個交換機收到消息后,將其承載的鏈路狀態記錄與自己的副本數據庫的內容比較。如果收到的LSR比存在的新,就代替數據庫中的舊的實例,如果交換機數據庫中沒有這個LSR,那么保存收到的這個實例。每個LSR都有一個年齡域和一個實體號域。實體號域值越大,LSR實例越新;年齡域值越小,LSR越新。
在泛洪法的整個過程中,每個交換機只使用來自最初信息發布者通告的未經加工的信息,而不是來自其鄰居整合過的信息。這種信息獨立,有助于使用身份認證來驗證消息源的可靠性。
FSPF協議支持分層路由方式,就是將全局網絡劃分為一個主干區和其他若干自治區域(AR),劃分架構見圖2。每個AR內交換機發布的鏈路狀態更新只能在該AR內傳播,每個AR的邊界交換機(BSW)連接起來組成主干區。當某個AR內交換機的安全受到威脅時,產生的危害對于整個網絡來說是很有限的,其他AR的功能仍然正常,這也為FSPF提供了一定的安全性。

圖2 FSPF網絡分區架構
雖然FSPF路由協議自身的安全機制使得對FSPF的攻擊較難實施,但是它并不足夠安全,仍存在著很多薄弱環節可以被攻擊者利用。
在FSPF協議的安全性中,網絡分區機制主要是盡力減小攻擊的影響范圍域,它不能杜絕攻擊,且無法發出告警。而且若攻擊者入侵到一個AR,它就可以偽裝成該自治系統的邊界交換機,從而進一步攻擊所有的AR。
虛構一個自治系統中本不存在的交換機使其它交換機認為好像存在這么一個交換機,這樣的交換機稱為幻影交換機。以幻影交換機的身份注入大量虛假信息。然而需要注意的是該交換機并不一定會參與最短路徑的計算,除非該幻影交換機能夠和某個交換機形成鄰接關系。
FSPF協議通信過程中使用密鑰長度為40-75比特,假設整個網絡被安全的管理并且沒有被侵人,密鑰沒有暴露。由信息論表明:英語每8比特字符其平均信息嫡只有1.3,如果管理者選擇英語字母作為密鑰,以MD5加密認證機制為例,則40-75比特密鑰的信息嫡相當低,攻擊者最多需要數天就能破解。而FSPF協議在密鑰變更方面并沒有規定,很多時候3個月、半年才變換一次,有的甚至從來不變化。因此,當一個攻擊者獲得一條Hello協議幀,他就很有可能破解該密鑰,并在隨后侵人整個路由域。可見FSPF協議通信過程中的驗證方式并不足夠安全。
FSPF交換機定期向外發送Hello協議幀,用以發現鄰居和維護鄰接交換機之間的關系。假如Hello協議幀中域ID、Hello超時等參數錯誤,會使該Hello協議幀被鄰居交換機丟棄,造成鄰居下線。如果被攻擊者攻破了FSPF的驗證體系,攻擊者就可以修改Hello協議幀中的某些參數來達到攻擊的效果,從而直接在鏈路上阻絕Hello協議幀。
通過不間斷的大量發送各種類型的FSPF協議幀,很可能造成被攻擊交換機的資源耗竭,而無法正常工作。例如向鄰居交換機發送包含過長鄰居列表的超大Hello協議幀,鄰居交換機將需為鄰居列表上的每個鄰居創建鄰居結構,而消耗大量的資源。
以上分析表明FSPF協議并不足夠安全,一旦一個交換機被破壞或者被欺騙,將存在拒絕服務攻擊數據丟失、網絡整體性破壞和信息被嗅探等攻擊。在應用FSPF協議的網絡中應該采用積極的主動防護和檢測機制來增加FSPF協議的安全。例如采用數字簽名策略、經常更新密鑰防止密碼驗證的攻擊;設計適當的入侵檢測系統來告警和阻止對FSPF協議的攻擊;結合電子法律使用網絡取證系統,采取法律手段主動應對網絡攻擊。
[1]孫曉葵,尹政,王勝學.兩種網絡存儲方式NAS、SAN比較和分析[J].福建電腦,2005,12.
[2]Fabric Shortest Path First(FSPF).Rev2.0.America 1998.
[3]呂欣.我們國家信息網絡安全現狀與趨勢[J].信息安全與通信保密,2007,2.
[4]周炯槃.通訊網理論基礎[M].2009.