鄧 波,肖俊聰,潘莉麗
(中國電子科技集團公司第三十研究所,四川 成都 610041)
在窄帶無線網絡組網過程中,路由設備作為網絡的數據中轉核心設備,需要參與路由的發現、建立和維護。由于自身的開放性,無線信道易受竊聽和干擾,入侵方可在網絡層面通過路由欺騙、節點假冒、重放攻擊等手段,對窄帶無線網絡進行破壞。入侵方通過構造合法節點的身份,接入被入侵方網絡,通過配置錯誤的工作參數、發送偽造的錯誤路由信息等方式對網內其他節點的路由功能進行擾亂,導致網絡癱瘓。如果常規的窄帶無線路由協議中沒有部署安全防護措施,窄帶無線網絡中會存在極大的安全威脅。因此,需要進一步研究適用于窄帶無線網絡的安全路由技術,以保障窄帶無線網絡的安全和正常運行。
受窄帶無線網絡低帶寬、弱連接的限制,以及節點的網絡分布式、動態化組網應用方式的限制,安全路由在設計上需要綜合考慮各節點在路由組網過程中面臨的安全威脅、傳輸鏈路質量、信道帶寬。針對網絡弱連接和高動態的特征,設計與窄帶無線網絡應用場景緊密結合的路由和安全機制,從而能夠在不明顯降低通信性能的前提下,對窄帶無線自組網節點間組網和路由過程進行安全加固。
通常,安全路由協議的設計目標包括對網絡節點身份進行鑒別和認證,確保路由報文數據的完整性以及可用性[1]。因此,在安全路由協議設計時,重點考慮以下幾個方面:
(1)降低路由協議對信道帶寬的占用。安全路由協議在設計時,要盡量降低路由協議對信道帶寬的占用。常用的降低路由協議的信道帶寬占用量的方法有:調整降低發送維護消息頻度、壓縮路由信息、采用增量更新機制、采用廣播更新機制等[2]。
(2)具有適應窄帶無線網絡的身份認證能力。傳統交互式身份認證的方法開銷較大,不適用于窄帶無線自組織網絡。因此,安全路由協議網絡中節點鑒別和認證方法需要適配窄帶無線網絡特性。文獻[3]提出了一種適用于窄帶無線通信網絡的基于標簽的單向身份認證技術,可防止非法假冒節點的接入,為安全路由協議的身份認證機制設計提供了一定的參考。
(3)具備路由報文機密性和完整性保護能力。窄帶無線網絡的開放性使得路由協議報文在傳輸過程中可能被非法用戶截獲、篡改。安全無線路由協議在設計時,應該考慮到此類安全威脅,對路由協議進行安全加固設計,提供機密性和完整性保護能力。
本設計參考OLSRv2 路由協議[4]的觸發更新機制,即在拓撲發生變化時,并不立即觸發路由更新,而是延緩一定時間后再觸發路由更新,以減少不必要的路由信息更新,降低對無線信道帶寬的占用。
路由信息包括鄰居維護信息和拓撲維護信息,結合路由更新機制和安全性考慮,設計路由報文類型如下:
(1)HELLO 報文:用于建立和維護鄰居關系。
(2)更新報文:用于向鄰居通告本節點全部或更新的路由信息。
(3)請求報文:用于向鄰居請求所有的路由信息或需要重傳的路由信息。
路由報文安全設計通過在路由報文中增加加密標識和消息序號,以及在報文尾部增加校驗字段實現。增加安全設計后的路由報文格式如圖1 所示。

圖1 路由報文格式
安全路由報文各個字段內容如下:
(1)路由報文頭部:由報文類型、分片標志以及報文長度等信息組成。
(2)加擾/加密標識:共2 bit,代表報文是否經過加密/加擾。
(3)路由信息序號:共6 bit,用于更新報文的序號,序號隨更新報文發送遞增,同一分片使用相同更新序號。
(4)消息載荷:用于存放路由報文消息凈荷。
(5)哈希運算消息認證碼(Hash-based Message Authentication Code,HMAC)校驗字段:占用4 字節,主要有兩個方面的用途,一是路由節點間身份認證,以建立和維護安全鄰居關系;二是對更新報文和請求報文進行完整性保護,確保路由報文在無線傳輸過程中未受到非法篡改攻擊。
考慮到窄帶無線自組織網絡的分布式特點,路由節點間身份認證采用預共享對稱密鑰的方式實現。
在進行網絡規劃的時候,事先為每個節點分配好統一的身份認證密鑰,同一子網內路由節點采用該認證密鑰通過哈希計算HMAC 校驗值,并封裝在HELLO 報文中發送。HMAC 值采用MD5 算法進行計算,經MD5 算法計算出的HMAC 長度為16 字節,為了減少對信道帶寬的占用,可按一定規則提取16字節中的4 字節在報文中進行發送。接收端校驗通過后,即可完成路由節點間的身份認證,建立安全鄰居關系,從而有效防范非法網絡節點的接入。
節點間通過身份認證,建立安全鄰居關系的流程如圖2 所示。

圖2 安全鄰居建立流程
接收端路由節點收到HELLO 路由報文后,首先判斷源節點是否在鄰居列表中,如果源節點在鄰居列表中,則更新鄰居狀態信息,否則觸發身份認證處理:接收端路由節點根據本地保存的口令密鑰計算出HAMC 值,并同路由報文中的HAMC 進行對比,若HMAC 值一致,則認為源路由節點是合法用戶,否則認為是非法用戶。
對于合法用戶,將源節點加入安全鄰居列表中并更新鄰居狀態信息,從而建立起安全鄰居關系。對于非法用戶,啟用定時器,在規定時間內,不再處理該節點發來的HELLO 路由報文。該方法可用于防止惡意節點通過不斷向路由節點發送HELLO路由報文的方式,占用節點計算資源使節點癱瘓。
路由加擾是指所有路由節點事先約定擾碼,對所有需要交互的路由報文進行加擾處理,節點收到其他節點發來的路由報文,進行解擾操作后,才會依據報文格式進行進一步的解析和處理。該方法不需要在報文中增加額外的字段傳遞相關信息,同時加擾和解擾的過程也只是簡單的異或運算,由此帶來的計算開銷可以忽略不計。
加密是指對路由報文進行加密,可以實現路由報文的機密性保護。由于加密算法復雜,且具有不同的密鑰體制,基于非對稱密鑰體制的加密算法無法適用于窄帶無線網絡環境,因此采用預置密碼對稱加密方式。在進行網絡規劃的時候,事先為每個節點分配好統一密鑰,節點采用該密鑰,并使用特定加密算法進行加解密。
加擾和加密處理流程如圖3、圖4 所示。

圖3 發送端加擾/加密處理流程

圖4 接收端加擾/加密處理流程
在發送端,節點發送報文時,需要判斷報文類型,如果為更新報文,則需要對報文進行加密后再進行加擾處理,否則直接進行加擾處理。
在接收端,節點收到報文時,先對其進行解擾處理,再依據報文類型,決定是否需要進行解密處理。只有當解擾和解密都通過時,才會對報文進行后續處理,否則將報文直接丟棄。
安全無線路由協議的路由發現一般包括鄰居關系建立、路由狀態同步、路由狀態更新以及路由狀態維護4 個過程。鄰居關系建立后,需要進行路由狀態同步,典型的同步過程為雙方互相發送請求報文及互相回復更新報文,如果網絡狀態發生變化,會觸發更新報文的發送,路由狀態維護過程主要是鄰居互發保持報文。
如果網絡拓撲變化較快,會觸發短期內大量更新報文的發送,因此,在接收更新報文的時候,還需要對時間間隔進行判斷,如果間隔太短,則將報文丟棄,以減少網絡動蕩對路由造成的影響。此外,對更新報文進行解擾解密處理后,還需要將本地狀態與報文內容進行對比,如果發現路由的度量/代價值差距過大,則表明該報文很有可能來自攻擊節點,對報文進行丟棄。在上述判斷都沒問題的情況下,再對報文進行進一步解析處理。
在本設計中,采用基于時間度量的方式進行異常行為判別和處理。異常行為具體處理流程如圖5所示。

圖5 異常路由行為處理流程
路由節點在收到HELLO 報文后,首先判定發送節點是否在本地安全鄰居列表中,如果不在,則直接將報文丟棄;其次對HELLO 報文的時間間隔進行判斷,如果時間間隔過短,認為可能遭到攻擊,則將報文丟棄。如果上述判斷均滿足要求,才對報文進行解擾/解密處理,處理完成后,會對報文進行進一步的解析處理,并根據處理結果同步本地路由狀態。
如果網絡狀態發生變化,路由節點收到其他節點發來的路由報文后,首先判定發送節點是否在本地合法鄰居列表中,如果不在,則可以認為該報文來源于攻擊者,不對報文進行任何處理。
本文設計的安全路由協議在每個路由報文中會增加5 個字節的數據,假設某窄帶無線通信網絡采用時分多址(Time Division Multiple Access,TDMA)時隙靜態平均規劃的方式,每個節點平均每分鐘發送的安全路由報文次數為6 次,即每分鐘增加30個字節。在不考慮信道丟包和重傳的前提下,估算不同信道帶寬和節點數的情況下,安全路由協議對信道帶寬占用增加的情況,結果如表1 所示。

表1 安全路由協議對帶寬占用評估
從表1 可以看出,安全路由協議在同一信道帶寬情況下對信道帶寬的占用率隨著網絡節點規模增加而增加。在信道帶寬為19.2 kbit/s,節點數量為64 個的情況下,對路由協議進行安全加固后,對信道帶寬的占用率僅增加了1.3%。通過調整路由報文發送間隔參數或者采用路由壓縮技術[5],還可進一步降低安全路由協議對信道帶寬的占用。
本文針對窄帶無線網絡的特點和安全威脅進行了路由協議的安全加固設計,實現了節點間的身份認證,能夠有效識別和防范非法用戶。通過對路由報文的機密性和完整性保護設計,防止路由報文在傳輸過程中被非法竊取和篡改;通過異常協議檢測機制,實現對異常協議交互行為的識別與阻斷。本文設計的安全路由協議對信道帶寬的占用率增加極小,適用于窄帶無線通信網絡,對窄帶無線網絡的安全路由設計和工程應用有一定借鑒意義。