鳳俊翔
FENG Jun-xiang
(江蘇科技大學 電子信息學院,鎮(zhèn)江 212003)
無線移動自組網(wǎng)絡(Mobile Ad Hoc Network,MANET)是一種特殊的無線移動通信網(wǎng)絡,它由一組帶有無線通信收發(fā)裝置的移動終端節(jié)點組成的一個多跳臨時無中心的網(wǎng)絡,可以在任何時刻任何地點快速構建的,并且不需要現(xiàn)有信息基礎網(wǎng)絡設施的支持,網(wǎng)絡中的每個終端可以自由移動且地位相等[1]。網(wǎng)絡中的節(jié)點同時擔當著主機和路由的功能,作為主機,終端需要運行面向用戶的應用程序,作為路由器,終端需要運行相應的路由協(xié)議。這種網(wǎng)絡所具有的獨立組網(wǎng)、無中心、自組織及多跳路由特點較傳統(tǒng)的網(wǎng)絡有了更大的靈活性和自由度,使其能廣泛的應用于緊急情況,偏遠野外,臨時會議等各種對靈活性要求高的場合。但它在帶來這些優(yōu)點的同時,也存在不可避免的問題,一方面是由于移動終端本身的局限性,這種局限性主要體現(xiàn)在節(jié)點的能源有限,內存較小,CPU的處理能力較低等,另一方面是網(wǎng)絡的局限性,由于Ad hoc網(wǎng)絡采用的是無線信道,有限電源,分布式控制等技術,使其更容易受到被動竊聽,拒絕服務,剝奪“睡眠”等網(wǎng)絡攻擊,這些問題的存在嚴重影響了整個網(wǎng)絡運行的質量和效率。針對這些問題,目前ad hoc網(wǎng)絡研究的重點主要在網(wǎng)絡的路由,管理,節(jié)能及安全等方面。
安全問題是ad hoc網(wǎng)絡研究中的一個重要課題,在對安全敏感的應用中尤其如此。其安全性目標和傳統(tǒng)網(wǎng)絡相一致[1]:
1)可用性:即使當網(wǎng)絡受到攻擊,節(jié)點仍然能夠在需要的時候提供有效服務。
2)機密性:能保證特定的信息不會泄露給未經(jīng)授權的用戶,比如在軍事戰(zhàn)場上。
3)完整性:就是保證信息在傳輸過程中不會被中斷,并且保證節(jié)點接收的信息應與發(fā)送的信息完全一樣。
4)安全認證:使每個節(jié)點能夠確認與其通信節(jié)點的身份,同時能夠在沒有全局的認證機構的情況下實施對用戶的鑒別。
5)抗抵賴性:這個可以確保一個節(jié)點不能否認是他發(fā)出的信息。
對移動自組網(wǎng)的攻擊根據(jù)攻擊特性可分為主動攻擊、自私性攻擊和被動攻擊[2]。
被動攻擊是指攻擊節(jié)點只是消極竊聽,竊聽的信息主要包括“通信的內容”和“通信的路由”信息,單純的被動攻擊只能獲取信息,并不造成網(wǎng)絡的癱瘓。主動攻擊則指攻擊節(jié)點采用各種方式主動入侵網(wǎng)絡各個環(huán)節(jié),降低網(wǎng)絡性能和可用性;主動攻擊可以分為“外部攻擊”和“內部攻擊”,外部攻擊指實施攻擊的節(jié)點設備沒有通過網(wǎng)絡驗證,內部攻擊是指攻擊設備已經(jīng)在網(wǎng)絡中獲得合法身份。而自私性攻擊是指網(wǎng)絡中部分節(jié)點可能由于資源有限和計算能量等原因而不愿承擔為其他節(jié)點的轉發(fā)任務。
對付網(wǎng)絡外部的攻擊者,可以使用身份安全認證和密鑰策略[3]。比如自組織的公共密鑰機制,基于PKI的局部化認證機制,異步分布式密鑰管理策略等。而對網(wǎng)絡內部的攻擊者,認證和密鑰無能為力,我們可以采用采用入侵檢測和行為檢測機制。主要是根據(jù)某個節(jié)點的行為來判斷節(jié)點是否是攻擊節(jié)點。
DSR[4](Dynamic Routing Protocol,動態(tài)源路由協(xié)議)協(xié)議是一個典型的按需路由協(xié)議,也是最早采用按需路由思想的協(xié)議,DSR是基于源路由概念 的按需自適應路由協(xié)議,移動節(jié)點需要保留存儲節(jié)點所知的源路由的路由緩沖,當新的路由被發(fā)現(xiàn)時,緩沖內地條目隨之更新,它的最大特點是使用源路由機制,每一個分組的頭部都包含整條路由信息。這種機制最初被IEEE802.5協(xié)議用在由網(wǎng)橋互連的多個令牌環(huán)網(wǎng)中尋找路由。DSR借鑒該機制,并結合了按需路由思想。DSR協(xié)議使用源路由,采用Cache(緩沖器)存放路由信息,且中間節(jié)點不必存儲轉發(fā)分組所需的路由信息,網(wǎng)絡開銷較少。
DSR路由協(xié)議包括兩個過程:路由發(fā)現(xiàn)和路由維護。
路由發(fā)現(xiàn):當一個節(jié)點欲發(fā)送數(shù)據(jù)到目的節(jié)點時,它首先查詢路由緩沖器看是否有到目的節(jié)點的路由,如果有,則采用此路由發(fā)送數(shù)據(jù),如果沒有,源節(jié)點就開始啟動路由發(fā)現(xiàn)程序,路由發(fā)送過程使用泛洪路由。
路由維護:DSR支持主動應答和被動應答兩種鏈路狀態(tài)監(jiān)測方法,路由維護通過路由錯誤分組和確認分組來實現(xiàn),一旦節(jié)點在發(fā)送數(shù)據(jù)時發(fā)現(xiàn)需要使用的鄰接鏈路斷開,它發(fā)送“路由出錯”分組給這些斷開路由的源節(jié)點,源節(jié)點收到分組后,將失效路由從路由表中刪除,沿途轉發(fā)“路由出錯”的節(jié)點也從自己的路由表中刪除包含該斷開鏈路的所有路由。
除路由錯誤分組外,確認分組可以用來驗證路由連接的正確運行,路由維護過程中源節(jié)點檢測網(wǎng)絡拓撲的變化,若有變化導致源路由中斷,源節(jié)點就嘗試用緩存中的路由信息,如果不成功,就重啟路由發(fā)現(xiàn)過程,為減少路由開銷,節(jié)點緩存學習到底或用過的路由信息,并通過隨機收聽的方式來獲取路由信息。
由前面分析可知,DSR路由協(xié)議在構建之初,并未考慮到網(wǎng)絡的安全性問題。網(wǎng)絡中的惡意節(jié)點可以利用中間任何環(huán)節(jié)發(fā)出攻擊,是數(shù)據(jù)不能正常傳輸。例如當源節(jié)點向目的節(jié)點發(fā)送數(shù)據(jù)包時,路由信息被加入到數(shù)據(jù)包的IP選項域,中間節(jié)點根據(jù)IP頭中的源路由信息轉發(fā)數(shù)據(jù)包。路由維護處理鏈路斷開的情況。這種路由情況下所暴露的問題是:在路由發(fā)現(xiàn)階段,中間節(jié)點需要將自己的路徑信息記錄在路由數(shù)據(jù)包中,惡意節(jié)點在這個過程中可能通過插入錯誤的路徑信息,使路由包的傳輸路徑發(fā)生偏離和變更,繞過合法路徑;同時中間節(jié)點也可能丟棄路由包,使得路由包不能到達目的節(jié)點;惡意節(jié)點可能會重復地轉發(fā)一個舊的路由請求包等。
為了提高路由協(xié)議的安全性,減少中間節(jié)點對數(shù)據(jù)的處理和可能的修改,保證數(shù)據(jù)的完整性,可以應用單向散列函數(shù)[3]于數(shù)據(jù)中,hash函數(shù)將任意長的數(shù)字串M映射為定長的短數(shù)字串H=h(M),H稱為M的hash值,hash函數(shù)h(M)必須很容易計算,我們可以驗證序列M和M'是否具有相同的hash值,卻不能從H求出來,由于hash函數(shù)這樣的特性,我們可以充分運用它來驗證我們數(shù)據(jù)傳輸過程中是否改變,但是僅僅通過字串的hash值,則只能用于檢測數(shù)據(jù)的完整性,現(xiàn)在我們在求hash值時加上密鑰控制,即H=h(k,m),則可以大大增加偽造消息的難度,這樣有密鑰控制的hash值也可用于認證。源節(jié)點在數(shù)據(jù)傳輸時除了對數(shù)據(jù)進行加密外,同時對數(shù)據(jù)進行計算散列函數(shù),但并不傳輸,留在緩沖區(qū)內,而目的節(jié)點接收到數(shù)據(jù)后先解密,解密成功后計算數(shù)字摘要,并將數(shù)字摘要通過自己的反向路由回傳給源節(jié)點,源節(jié)點會將接收到的數(shù)據(jù)和自己緩沖區(qū)的數(shù)據(jù)比較,如果是相同的,則繼續(xù)傳輸數(shù)據(jù),若不相同,則換一條路徑傳輸。
對于密鑰,我們采用對稱性加密算法,如每次數(shù)據(jù)傳輸前,先通過DH算法交換密鑰,待密鑰交換成功后再進行傳輸,由于是每次傳輸時才會產生密鑰,所以不需要每個節(jié)點記下其他節(jié)點密鑰,在需要是進行交換即可。
DH[6]密鑰交換算法是基于數(shù)論中的一個古典難題:離散對數(shù)問題。離散對數(shù)問題:若 p 是素數(shù),p 已知,考慮方程 y = gx mod p,給定 g,x 求 y是簡單的,但給定 y,g 求 x,即求 x = logg,py mod p,在計算上是不可行的。
DH 密鑰交換算法的描述如下:已知公開的素數(shù) p 和 p 的本原根 α
1)用戶 A 選擇秘密的 Xa<p,計算 Ya = αXa mod p,將其發(fā)送給 B。
2)用戶 B 選擇秘密的 Xb<p,計算 Yb = αXb mod p,將其發(fā)送給 A。
3)A 和 B 分別計算 Ka = (Yb)Xa mod p 和Kb = (Ya)Xb mod p,就同時得到了共享的密鑰K=Ka=Kb,然后就可以用 K 進行加密傳輸了。DH密鑰交換算法的優(yōu)點在于:雙方在通信前不需要知道任何共享的密鑰,而是通過公開的 p 和 α 協(xié)商出一個密鑰來進行加密通信。
通過前面分析,我們可以將DSR路由協(xié)議如下流程圖進行改進。
圖1 改進的DSR安全路由協(xié)議
本文在DSR路由協(xié)議的基礎上采用對稱加密機制防止數(shù)據(jù)傳輸時中間節(jié)點的篡改,添加,并使用密鑰交換算法實現(xiàn)傳輸前密鑰的交換,以及利用數(shù)字摘要回傳比較方法抵御中間某些知道密鑰的節(jié)點而修改數(shù)據(jù),從而進一步保證數(shù)據(jù)的安全性。
[1]鄭相全.無線自組網(wǎng)技術實用教程[M].北京:清華大學出版社.2004,3-4,307
[2]王建新,拉米.移動自組網(wǎng)的安全性研究[J].技術縱橫,2004,5.
[3]姜海,何永明,程時昕.移動Ad Hoc網(wǎng)絡關鍵技術研究[J].中興通訊高級論壇,2001,(7) :61-65
[4]D.B.Johnson and D.A.Maltz,"Dynamic source routing in adhoc wireless network, mobile computing,"In Mobile Computing,edited by Tomasz Imieliski and Hank Korth,Kluwer Academie Publishers,1996,151-181,
[5]蔣睿,胡愛群,等.網(wǎng)絡信息安全理論與技術[M].湖北:華中科技大學出版社,2007.
[6]http://bbs.cisps.org/viewtopic.php?p=64863.