白恩健,葛華勇,楊陽
(1.東華大學信息科學與技術學院,上海201620;2.數(shù)字化紡織服裝技術教育部工程研究中心,上海201620)
無線傳感器網(wǎng)絡是由大量具有特定功能的傳感器節(jié)點通過自組織的無線通信方式,協(xié)同完成特定功能的智能專用網(wǎng)絡[1].它面臨著眾多針對網(wǎng)絡層的安全攻擊.多路徑路由在保障數(shù)據(jù)傳輸?shù)目煽啃?、均衡?jié)點能耗、解決傳輸過程的容錯性、滿足網(wǎng)絡服務質(zhì)量QoS等方面與單路徑路由相比具有更多優(yōu)勢.多路徑路由與其他安全機制相結合是實現(xiàn)安全路由的有效方法[2-4].Nasser提出安全和能量有效的多路徑路由協(xié)議[5-6];Abu-Ghazaleh 等[7]提出基于地理位置的安全路由協(xié)議;Khalil等[8]提出可以檢測并排除惡意節(jié)點的安全路由協(xié)議;Madria等[9]提出可以抵抗Wormhole攻擊路由協(xié)議;Deng等[10]采用最大距離可分加密來解決安全路由問題.上述協(xié)議都只針對特定的網(wǎng)絡攻擊方式,忽略了網(wǎng)絡分簇的重要性.本文結合多路徑路由和節(jié)點可信度提出了一種基于可信簇頭的安全多路徑路由協(xié)議,有效地實現(xiàn)了無線傳感器網(wǎng)絡的安全路由.該協(xié)議在分簇階段選擇剩余能量多的節(jié)點作為簇頭,成簇后通過鄰居節(jié)點對簇頭進行可信度評價,在多路徑路由選擇時將簇頭信任值作為路由選擇的標準,根據(jù)所期望的安全性要求、節(jié)點信任值以及傳感器節(jié)點到匯聚節(jié)點的跳數(shù)來確定下一跳節(jié)點的數(shù)目.信任值僅在簇頭節(jié)點之間產(chǎn)生、交流,具有很好的安全性和網(wǎng)絡性能.
在分簇網(wǎng)絡結構中,整個網(wǎng)絡被分成若干簇,每個簇由一個簇頭節(jié)點及多個普通節(jié)點組成.同一個簇內(nèi)的普通節(jié)點可以互相進行通信、交換數(shù)據(jù),同時可以向簇頭節(jié)點發(fā)送監(jiān)測到的信息,省去了維護復雜的路由信息而產(chǎn)生的開銷,工作量減小,也降低了能量的消耗.而簇頭節(jié)點則負責整個簇內(nèi)數(shù)據(jù)的融合、轉發(fā),協(xié)調(diào)簇內(nèi)普通節(jié)點的正常工作,并將預處理的數(shù)據(jù)發(fā)送給基站,同時還可以與其他簇頭之間互相通信交換信息,其功能及開銷相對普通節(jié)點會比較大,因此需要選擇存儲能力及運算能力相對較強的節(jié)點作為簇頭節(jié)點,或者周期性更換簇頭,以避免簇頭因能量耗盡而失效.分簇網(wǎng)絡結構具有較高的抗毀性,同時能很好的滿足無線傳器網(wǎng)絡的動態(tài)拓撲變化,較適用于目前無線傳感器網(wǎng)絡越來越廣泛的應用及逐步擴大的規(guī)模.圖1為無線傳感器網(wǎng)絡的分簇結構示意圖.
圖1 無線傳感器網(wǎng)絡分簇結構Fig.1 Hierarchical wireless sensor network
基站附近的節(jié)點承擔較多的信息傳遞工作,能量消耗比其他節(jié)點大.因此,首先把節(jié)點分為基站附近節(jié)點集合SR和網(wǎng)內(nèi)其他節(jié)點集合SUR,然后再進行分簇.基站根據(jù)具體應用選擇一個發(fā)送功率,以通信半徑R播信息,接收到該信息的節(jié)點即屬于SR.分簇算法:
1)判斷節(jié)點xi是否屬于集合SR.如果屬于集合SR,該節(jié)點自動升級為簇頭節(jié)點;其他節(jié)點成為備選節(jié)點,參與接下來的簇頭選舉.
2)為了使剩余能量多的節(jié)點優(yōu)先當選為簇頭,節(jié)點當選為簇頭的概率:
式中:p是簇頭節(jié)點所占所有傳感器節(jié)點的百分比,En-current為節(jié)點的當前能量,En-max為節(jié)點的初始能量,r為當前輪數(shù),G是這一輪循環(huán)中未當選簇頭的節(jié)點集合.一旦當選了簇頭,T(n)重置為0,在一個選簇周期中該節(jié)點就不再當選為簇頭.
3)該輪選舉的簇頭還不是最終的簇頭,該輪簇頭一經(jīng)選定,以其通信半徑R向外廣播ADV消息,收到此消息的簇頭節(jié)點就是發(fā)送消息的簇頭節(jié)點的簇內(nèi)節(jié)點.普通節(jié)點一旦已經(jīng)收到ADV消息,再接收到其他簇頭節(jié)點的ADV消息都予以丟棄,這樣處于2個簇頭節(jié)點通信重疊區(qū)域的普通節(jié)點就成為首次接到信息來源簇頭的簇內(nèi)節(jié)點.然后該簇頭計算其區(qū)域內(nèi)的節(jié)點密度DL,如果DL大于整個無線傳感網(wǎng)絡區(qū)域內(nèi)的平均節(jié)點密度,則重新從2)開始選簇,否則選簇成功.這是為了防止簇內(nèi)節(jié)點過于集中,導致能量消耗失衡.
通過建立有效的信任模型對節(jié)點之間的交互行為進行總結量化,就可以判斷出該節(jié)點是否為不良節(jié)點或惡意節(jié)點,從而在選擇路由下一跳節(jié)點的時候選擇出值得信任的節(jié)點,可以避開不良節(jié)點或者惡意節(jié)點.
2.2.1 節(jié)點可信度來源
網(wǎng)絡中每個簇頭節(jié)點都保留其對鄰居節(jié)點的直接信任值,該信任值是建立在節(jié)點在過去的一段時間內(nèi)與其他節(jié)點的交互情況基礎之上的,通過觀察鄰居節(jié)點的數(shù)據(jù)轉發(fā)過程中的表現(xiàn)來衡量其是否值得信任.文中選取以下2個因素作為信任來源:
1)數(shù)據(jù)包轉發(fā)成功率Sp=Nf/Nr,衡量鄰居節(jié)點的數(shù)據(jù)轉發(fā)合作情況.其中,Nr為公告節(jié)點實際收到的數(shù)據(jù)包的統(tǒng)計值,Nf為公告節(jié)點實際轉發(fā)的數(shù)據(jù)包總數(shù).
2)包重傳率Rij=n/m,其中,n為節(jié)點i到j的重傳包個數(shù),m為總包數(shù).
2.2.2 節(jié)點可信度量化
節(jié)點直接信任值Td量化為Td=θ1Tp+θ2Tr,其中 θ1,θ2∈[0,1],且 θ1+ θ2=1.θ1、θ2的值可根據(jù)實際應用情況進行設定.根據(jù)文獻[11]的模型,本文引入時間因子來描述信任Tp和Tr:
式中:PF為數(shù)據(jù)包轉發(fā),RF為數(shù)據(jù)包重傳.遺忘因子β∈[0,1]的值取決于vj行為變化的快慢程度,vj行為越不穩(wěn)定,β取值越小;tc表示計算信任值的當前時刻;tk表示每次觀察的時刻.
2.2.3 節(jié)點可信度合成
當一個節(jié)點需要對鄰節(jié)點進行信任度評價的時候,如果完全依靠自身信息進行判斷,可能會因惡意節(jié)點的欺騙而導致判斷出現(xiàn)誤差,因此節(jié)點S對節(jié)點D的總體信任值Tsd來源于通過對D行為的觀察建立的直接信任以及其他實體對D的推薦,即S對D的間接信任.信任評估節(jié)點將不同推薦者提供的間接信任與自己對節(jié)點的直接信任進行合并,得到最終的信任值:
根據(jù)文獻[12]的方法,用節(jié)點信任值來衡量下一跳節(jié)點的可靠性,計算能保證期望安全性要求的下一跳節(jié)點數(shù)目.
設ss表示系統(tǒng)要求的數(shù)據(jù)源發(fā)送數(shù)據(jù)分組到匯聚節(jié)點的成功概率,ts表示節(jié)點安全程度,hs表示源節(jié)點到匯聚節(jié)點的跳數(shù).由于ts為一個節(jié)點可信任概率,對于數(shù)據(jù)源節(jié)點而言,經(jīng)過hs跳后數(shù)據(jù)包安全到達匯聚節(jié)點的概率為,經(jīng)過p條路徑后數(shù)據(jù)包不能安全到達匯聚節(jié)點的概率為,而
若需要的成功傳輸路徑數(shù)p大于數(shù)據(jù)源節(jié)點的鄰居節(jié)點數(shù)目,則需要某些鄰居節(jié)點發(fā)送多份數(shù)據(jù)拷貝來滿足安全性需求.為降低節(jié)點計算量,預先計算出 ts=0.5∶0.05∶1,即 ts=0.50,0.55,…,0.95,1時對應的p值,將其儲存在節(jié)點內(nèi),當計算p值的時候,將其信任值與預先設定的值進行比對即可.
按照鄰居節(jié)點到匯聚節(jié)點的跳數(shù)把鄰居節(jié)點劃分為H-、H0、H+這3個集合,其中H-中鄰居節(jié)點到匯聚節(jié)點跳數(shù)比自身到匯聚節(jié)點的跳數(shù)少,H0中鄰居節(jié)點到匯聚節(jié)點跳數(shù)與自身節(jié)點到匯聚節(jié)點的跳數(shù)相等,H+中鄰居節(jié)點到匯聚節(jié)點跳數(shù)比自身節(jié)點到匯聚節(jié)點的跳數(shù)多.
2.4.1 安全多路徑路由建立
源節(jié)點負責發(fā)起路由.當源節(jié)點收到上層協(xié)議發(fā)送的數(shù)據(jù)流請求時,將數(shù)據(jù)流信息登記在數(shù)據(jù)流信息表中,并在本地路由緩存表中查找是否有滿足條件的可信路由,如果有則利用這條路由進行數(shù)據(jù)包發(fā)送,如果沒有則發(fā)起路由發(fā)現(xiàn)過程.
1)源節(jié)點根據(jù)ts,尋找對應的p值,得到源節(jié)點需要的轉發(fā)路徑數(shù)后,在鄰居節(jié)點中選擇下一跳節(jié)點,并分配相應的轉發(fā)路徑.源節(jié)點首先在H-節(jié)點集合中選擇作為默認的下一跳節(jié)點的鄰居節(jié)點,判斷H-集合中的節(jié)點最高信任值是否大于定義的信任閾值tlim,小于信任閾值的節(jié)點一律不參與下一跳節(jié)點競選,只有當按照式(5)計算出的路徑數(shù)p值大于H-節(jié)點集合中可供選取的節(jié)點數(shù)量時,才需要從H0、H+節(jié)點集合中選取節(jié)點.在H0、H+節(jié)點集合中選取下一跳節(jié)點時也需要把信任值低于信任閾值的節(jié)點予以排除.
2)源節(jié)點的鄰居節(jié)點i在收到路由請求后將自己作為源節(jié)點,按照1)的方法得到需要的轉發(fā)路徑,同樣的路徑選擇方法一直到達匯聚節(jié)點為止.這樣路徑上的每一個節(jié)點都具有可信性,整個傳輸路徑就保證了數(shù)據(jù)傳輸?shù)陌踩孕枨?
3)基站接收到主路徑發(fā)送的路由請求,發(fā)送路由回復給源節(jié)點,路徑上每個節(jié)點都保存足夠安全個數(shù)的下一跳節(jié)點和下一條備用路徑.至此,多路徑路由建立完成.圖2描述了源節(jié)點和中間節(jié)點處理路由請求的過程.安全性參數(shù)為ss,故可得,從而
圖2 源節(jié)點發(fā)起路由發(fā)現(xiàn)、中間節(jié)點處理路由請求流程Fig.2 Route discovery by the source node and route request processing by intermediate node
2.4.2 安全多路徑路由維護
當某一節(jié)點發(fā)現(xiàn)鏈路連接失敗時,它將從路由緩存區(qū)中尋找到達目標節(jié)點的另外一條路徑,如果存在則直接用新的路由來發(fā)送分組,否則源節(jié)點將啟動到目標節(jié)點的一個新的路由發(fā)現(xiàn)過程.當某一節(jié)點的可用帶寬不足以發(fā)送數(shù)據(jù)包時,它將通知基站,基站從路由緩存區(qū)中挑選不包含該節(jié)點的次優(yōu)路徑,并對源節(jié)點進行路由更新回復,提示更換路由,使用次優(yōu)路徑來發(fā)送分組.當傳輸超時,發(fā)現(xiàn)超時的節(jié)點向源節(jié)點發(fā)送路由錯誤分組,并且繼續(xù)傳送數(shù)據(jù)包.
穩(wěn)定的數(shù)據(jù)通信階段結束后,一輪周期循環(huán)結束.開始執(zhí)行新的周期,重新選舉簇頭,本輪簇頭保存的鄰居簇頭節(jié)點信任值全部失效,予以丟棄.新一輪的信任機制重新展開,這樣惡意節(jié)點參與評價的概率較低而且不固定,即使有惡意節(jié)點參與數(shù)據(jù)傳輸,其影響最多持續(xù)一個周期,從而限制了對網(wǎng)絡性能的破壞作用.
直接惡意行為指惡意節(jié)點直接干預網(wǎng)絡中數(shù)據(jù)傳輸?shù)男袨?,一般包括丟棄數(shù)據(jù)包、更改數(shù)據(jù)內(nèi)容、更改數(shù)據(jù)包地址、不按源路由規(guī)定而隨意轉發(fā)數(shù)據(jù)包、頻繁發(fā)送偽造數(shù)據(jù)包等.
信任模型能夠很好地防范惡意節(jié)點的直接惡意行為.網(wǎng)絡中節(jié)點信任值量化的來源就是監(jiān)測得到的節(jié)點行為,節(jié)點的任何直接惡意行為都會造成自身信任值的下降.在DOS攻擊模型中,惡意節(jié)點拒絕其相鄰節(jié)點發(fā)起的合作請求,這將導致惡意節(jié)點在其相鄰節(jié)點中記錄的信任值大幅下降,而最終被相鄰的節(jié)點拋棄,被迫退出網(wǎng)絡系統(tǒng).在Sinkhole攻擊模型中,攻擊的目的是進行選擇性轉發(fā),這將造成數(shù)據(jù)包丟失,也同樣會使該惡意節(jié)點的信任值下降,最終被系統(tǒng)識別.在Hello泛洪攻擊模型中,惡意節(jié)點不斷地向它能訪問到的所有相鄰節(jié)點發(fā)送連接請求,從而消耗節(jié)點的資源,當相鄰節(jié)點在短時間處理的數(shù)據(jù)包過多時,也會拒絕與該節(jié)點的合作,使惡意節(jié)點沒有發(fā)揮攻擊作用的基礎.
間接惡意行為是指惡意節(jié)點通過發(fā)布虛假信任信息,降低正常節(jié)點的信任值,或者提高惡意節(jié)點的信任值來干擾正常節(jié)點對信任度的評價.
在信任模型中,并不能直接識別惡意節(jié)點的這類行為.但是信任模型中每個節(jié)點都不會單憑一個節(jié)點提供的數(shù)值對信任值做出決定,每個節(jié)點都只相信自己對其他節(jié)點的行為判斷,通過參照其他信任節(jié)點對待評價節(jié)點的信任值,綜合得出對待評價節(jié)點的信任度.由于合并信任參考了多個對評估對象有直接經(jīng)驗的節(jié)點推薦,避免了一個節(jié)點對其他節(jié)點信任值的主觀量化,而其信任值通過多個節(jié)點得出,惡意節(jié)點要想篡改節(jié)點信任度需要聯(lián)合多個節(jié)點共同發(fā)布虛假信任值,才能對總體信任值有細微的影響,單個惡意節(jié)點更是很難影響到節(jié)點的信任度的評價.
仿真工具采用Omnet++3.2,仿真網(wǎng)絡由100個無線傳感器節(jié)點組成,通過生存周期和吞吐量指標對網(wǎng)絡性能進行評價.如果仿真中網(wǎng)絡節(jié)點過半死亡,則認為網(wǎng)絡仿真結束,網(wǎng)絡仿真結束時間定義為網(wǎng)絡生存期.網(wǎng)絡仿真時間內(nèi)數(shù)據(jù)包接收和發(fā)送的比率定義為網(wǎng)絡吞吐量.生存周期和吞吐量越大,說明協(xié)議性能越好.網(wǎng)絡參數(shù)設置詳見表1.
表1 仿真參數(shù)Table 1 Simulation parameters
圖3~5分別顯示了惡意節(jié)點數(shù)目對網(wǎng)絡生存周期、受影響節(jié)點比例和吞吐量的影響.圖中用MRBCH(multipath routing protocol based on credible cluster heads for wireless sensor networks)表示所提出的協(xié)議,惡意節(jié)點的惡意行為設置為丟棄接收到的數(shù)據(jù)包.
圖3 網(wǎng)絡生存周期隨惡意節(jié)點數(shù)目的變化Fig.3 The network lifetime changes with the number of malicious nodes
由圖3可以看出,當網(wǎng)絡中惡意節(jié)點較少時,MRBCH跟LEACH(low energy adaptive clustering hierarchy)相比優(yōu)勢并不明顯,這是因為在信任值產(chǎn)生階段有計算和存儲上的開銷.當惡意節(jié)點增加時,LEACH消耗大量的能量對數(shù)據(jù)包進行復制重傳,MRBCH則利用信任評價和多路徑在惡意節(jié)點產(chǎn)生攻擊行為的開始階段將其排除出去,因此能夠在惡意節(jié)點數(shù)目增加的情況下將網(wǎng)絡生存周期維持在較高的水平上.
由圖4可以看出,在LEACH的分簇式拓撲結構中,若惡意節(jié)點被選為簇頭,該簇的簇內(nèi)節(jié)點均會受影響,因此LEACH中受惡意節(jié)點影響的節(jié)點很多.ReInform為平面式拓撲結構,而且對路徑選擇有一套有效的可靠性算法,因而受到影響的節(jié)點數(shù)少于LEACH協(xié)議.MRBCH協(xié)議中對簇頭節(jié)點進行了有效地信任評估,受影響的節(jié)點范圍基本上控制在惡意節(jié)點的數(shù)量上.
圖4 受影響節(jié)點隨惡意節(jié)點數(shù)目的變化Fig.4 Effected nodes changes with the malicious nodes
圖5 網(wǎng)絡吞吐量隨惡意節(jié)點數(shù)目的變化Fig.5 Network throughput changes with the number of malicious nodes
上述的仿真結果表明,在惡意節(jié)點數(shù)目較多的網(wǎng)絡中,MRBCH的路由性能優(yōu)于LEACH協(xié)議和ReInForM協(xié)議.
提出了一種基于可信簇頭的多路徑路由協(xié)議,通過引入信任機制對簇頭節(jié)點進行安全認證,節(jié)約節(jié)點能量;利用信任值計算下一跳節(jié)點數(shù)目;利用多路徑平衡網(wǎng)絡負載,增強安全性.對路由選擇實施信任機制和多路徑雙重保證,達到節(jié)能與安全的平衡,在保證了網(wǎng)絡安全性能的同時盡量延長網(wǎng)絡的生存周期.仿真結果表明在惡意節(jié)點數(shù)目較多的網(wǎng)絡環(huán)境中,MRBCH協(xié)議的安全性與路由性能均優(yōu)于LEACH和 ReInForM協(xié)議.下一步的研究可以在MARCH協(xié)議的基礎上,結合數(shù)據(jù)加密機制和安全認證機制,進一步提高無線傳感器網(wǎng)絡的安全性.
[1]AKYILDIZ I F,SU W,SANKARASUBRAMANIAM Y,et al.Wireless sensor networks:a survey[J].Computer Networks,2002,38(4):393-422.
[2]STAVROU E,PITSILLIDES A.A survey on secure multipath routing protocols in WSNs[J].Computer Networks,2010,54(13):2215-2238.
[3]OTHMAN J B,MOKDAD L.Enhancing data security in ad hoc networks based on multipath routhing[J].Journal of Parallel andDistributedComputing, 2010, 70(3):309-316.
[4]YANG Y W,ZHONG C S,SUN Y M,et al.Network coding based reliable disjoint and braided multipath routing for sensor networks[J].Journal of Network and Computer Applications,2010,33(4):422-432.
[5]NASSER N,CHEN Y.Secure multipath routing protocol for wireless sensor networks[C]//27th International Conference on Distributed Computing Systems Workshops.Toronto,Canada,2007:12.
[6]NASSER N,CHEN Y.SEEM:secure and energy-efficient multipath routing protocol for wireless sensor networks[J].Computer Communications,2007,30(11/12):2401-2412.
[7]ABU-GHAZALEH N,KANG K,LIU K.Towards resilient geographic routing in WSNs[C]//Proceedings of the First ACM Workshop on Q2S and Security for Wireless and Mobile Networks.Montreal,Canada,2005:71-78.
[8]KHALIL I,BAGCHI S,ROTARU C N,et al.UNMASK:utilizing neighbor monitoring for attack mitigation in multihop wireless sensor networks[J].Ad Hoc Networks,2010,8(1):148-164.
[9]MADRIA S,YIN J.SeRWA:a secure routing protocol against wormhole attacks in sensor networks[J].Ad Hoc Networks,2009,7(6):1051-1063.
[10]DENG J,HAN Y S.Multipath key establishment for wireless sensor networks using just-enough redundancy transmission[J].IEEE Transactions on Dependable and Secure Computing,2008,5(3):177-190.
[11]SUN Y,YU W,HAN Z,et al.Trust modeling and evaluation in ad hoc networks[C]//IEEE Global Telecommunications Conference.St.Louis,USA,2005:1862-1867.
[12]DEB B,BHATNAGAR S,NATH B.ReInForm:reliable information forwarding using multiple paths in sensor networks[C]//28th Annual IEEE International Conference on Local Computer Networks.Bonn,Germany,2003:406-415.