周明偉,劉淵
江南大學(xué)數(shù)字媒體學(xué)院,江蘇無(wú)錫214122
傳感器的感知功能以及節(jié)點(diǎn)間的通訊能力,為無(wú)線傳感器網(wǎng)絡(luò)提供了廣闊的應(yīng)用前景。作為一種無(wú)處不在的感知技術(shù),無(wú)線傳感器網(wǎng)絡(luò)廣泛應(yīng)用于軍事、環(huán)境監(jiān)測(cè)和預(yù)報(bào)、智能家居、健康護(hù)理、建筑物狀態(tài)監(jiān)控、復(fù)雜機(jī)械監(jiān)控、城市交通、空間探索以及機(jī)場(chǎng)、大型工業(yè)園區(qū)的安全監(jiān)測(cè)等領(lǐng)域。隨著無(wú)線傳感器網(wǎng)絡(luò)的深入研究和廣泛應(yīng)用,無(wú)線傳感器網(wǎng)絡(luò)將逐漸深入到人類生活的各個(gè)領(lǐng)域。無(wú)線傳感器網(wǎng)絡(luò)采集的數(shù)據(jù)往往需要與其位置信息相結(jié)合才有意義,因此,確定事件發(fā)生的位置或獲取信息的節(jié)點(diǎn)位置是無(wú)線傳感器網(wǎng)絡(luò)最基本的功能之一,對(duì)無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用的有效性是至關(guān)重要的,當(dāng)一個(gè)傳感器節(jié)點(diǎn)檢測(cè)到一個(gè)緊急事件時(shí),它的位置信息應(yīng)該快速并準(zhǔn)確地被識(shí)別,不知道傳感器位置的遙感數(shù)據(jù)是沒(méi)有意義的[1]。一個(gè)直接的解決辦法是為每一個(gè)傳感器節(jié)點(diǎn)配置一個(gè)GPS接收器。這樣就可以準(zhǔn)確提供它們的位置信息,然而為每個(gè)節(jié)點(diǎn)都配備GPS定位組件將消耗大量的成本,不符合最小化成本的目的。因此只能為一小部分節(jié)點(diǎn)配備GPS組件,這些配備GPS的節(jié)點(diǎn)稱為信標(biāo)節(jié)點(diǎn)或錨節(jié)點(diǎn),未知位置的節(jié)點(diǎn)稱為未知節(jié)點(diǎn)或待定位節(jié)點(diǎn),待定位節(jié)點(diǎn)可以利用附近的多個(gè)錨節(jié)點(diǎn)的位置信息來(lái)估計(jì)自身的位置。
WSNs中節(jié)點(diǎn)定位技術(shù)越來(lái)越受到研究者的關(guān)注,并且提出了許多基于測(cè)距和基于非測(cè)距的方案?;跍y(cè)距的技術(shù)需要測(cè)量相鄰節(jié)點(diǎn)間的絕對(duì)距離或方位來(lái)計(jì)算未知節(jié)點(diǎn)的位置,包括信號(hào)強(qiáng)度測(cè)距法(Received Signal Strength Indicator,RSSI)[2],到達(dá)時(shí)間差(Time Difference On A rrival,TDOA)測(cè)距法[3],到達(dá)時(shí)間(Time Of A rrival,TOA)定位法[4]和到達(dá)角(Angle Of A rrival,AOA)[5]定位算法等。基于非測(cè)距的定位技術(shù)利用節(jié)點(diǎn)間的估計(jì)距離計(jì)算節(jié)點(diǎn)位置,包括質(zhì)心(centroid algorithm)定位算法,凸規(guī)劃(convex optim ization)定位算法,以三角形內(nèi)的點(diǎn)近似定位(APIT)算法[6],基于距離矢量計(jì)算跳數(shù)(DV-Hop)定位算法[7]等。但提出的這些定位算法僅能夠在環(huán)境較穩(wěn)定,未受到攻擊者破壞的理想環(huán)境中進(jìn)行,但由于位置信息是無(wú)線傳感器網(wǎng)絡(luò)服務(wù)的重要部分,設(shè)計(jì)一個(gè)具有抵御攻擊的安全定位方案尤為重要。然而,任何一種安全措施都需要消耗一定的資源包括節(jié)點(diǎn)自身的計(jì)算和能源開(kāi)銷以及網(wǎng)絡(luò)通信開(kāi)銷等,因此,對(duì)于一個(gè)具體的定位系統(tǒng),還要考慮系統(tǒng)的應(yīng)用背景、攻擊模型、安全需求和資源條件等多種因素進(jìn)行折中,以確定其防御策略[8]。
考慮到傳感器節(jié)點(diǎn)自身?xiàng)l件的限制,本文在非測(cè)距的DV-Hop定位算法的基礎(chǔ)上,增加了一些安全機(jī)制。DV-Hop定位算法是一種典型的利用跳數(shù)來(lái)定位未知節(jié)點(diǎn)的非測(cè)距方法,對(duì)節(jié)點(diǎn)的硬件要求低,實(shí)現(xiàn)簡(jiǎn)單。同時(shí),本文選取蟲(chóng)洞攻擊作為抵御目標(biāo),因?yàn)橄x(chóng)洞攻擊不需要損壞任何節(jié)點(diǎn)也不需要破譯密鑰便可以實(shí)施攻擊,因此,僅通過(guò)密鑰管理技術(shù)來(lái)抵御蟲(chóng)洞攻擊是不夠的。
本文研究的安全方案是在對(duì)節(jié)點(diǎn)進(jìn)行定位前,利用簡(jiǎn)單的三角不等式規(guī)則對(duì)信標(biāo)節(jié)點(diǎn)的合法性進(jìn)行檢測(cè),然后在DV-Hop定位算法的第一步進(jìn)行改進(jìn),利用鄰節(jié)點(diǎn)間的RTT屬性值增加檢測(cè)蟲(chóng)洞攻擊的模塊,若檢測(cè)出蟲(chóng)洞攻擊,則通過(guò)調(diào)整通信節(jié)點(diǎn)間的跳數(shù)來(lái)抵御蟲(chóng)洞攻擊。最后,仿真實(shí)驗(yàn)證明了該方案對(duì)惡意信標(biāo)節(jié)點(diǎn)、蟲(chóng)洞攻擊的檢測(cè)以及抵御的有效性。
距離向量算法(DV-hop)使用平均每跳距離計(jì)算實(shí)際距離,對(duì)節(jié)點(diǎn)的硬件要求較低,實(shí)現(xiàn)簡(jiǎn)單,它的定位過(guò)程如下:
(1)計(jì)算未知節(jié)點(diǎn)與每個(gè)信標(biāo)節(jié)點(diǎn)的最小跳數(shù)
信標(biāo)節(jié)點(diǎn)向鄰居節(jié)點(diǎn)廣播自身位置信息的分組,其中包含跳數(shù)字段,初始化為0,接收節(jié)點(diǎn)記錄到每個(gè)信標(biāo)節(jié)點(diǎn)的最小跳數(shù),忽略來(lái)自同一個(gè)信標(biāo)節(jié)點(diǎn)的較大跳數(shù)的分組,然后將跳數(shù)值加1,并轉(zhuǎn)發(fā)給鄰節(jié)點(diǎn),通過(guò)這個(gè)方法,網(wǎng)絡(luò)中的所有節(jié)點(diǎn)能夠記錄到每個(gè)信標(biāo)節(jié)點(diǎn)的最小跳數(shù)。
(2)計(jì)算未知節(jié)點(diǎn)與信標(biāo)節(jié)點(diǎn)的實(shí)際跳段距離
每個(gè)信標(biāo)節(jié)點(diǎn)根據(jù)第一階段中記錄的其他信標(biāo)節(jié)點(diǎn)位置信息和相距跳數(shù),利用公式(1)估算平均每跳的實(shí)際距離:
其中(xi,yi),(xj,yj)是信標(biāo)節(jié)點(diǎn)i,j的坐標(biāo),hj是信標(biāo)節(jié)點(diǎn)i與j之間的跳段數(shù)。
然后信標(biāo)節(jié)點(diǎn)將計(jì)算的每跳平均距離用帶有生存期字段的分組廣播到網(wǎng)絡(luò)中,未知節(jié)點(diǎn)僅記錄接收到的第一個(gè)平均每跳距離,并轉(zhuǎn)發(fā)給鄰居節(jié)點(diǎn),這個(gè)策略確保了絕大多數(shù)節(jié)點(diǎn)從最近的信標(biāo)節(jié)點(diǎn)接收每跳平均距離值。未知節(jié)點(diǎn)接收到平均距離后,根據(jù)記錄的跳數(shù),計(jì)算到每個(gè)信標(biāo)節(jié)點(diǎn)的距離。
(3)利用三邊測(cè)量法或者極大似然估計(jì)法計(jì)算自身位置
未知節(jié)點(diǎn)利用第二階段中記錄的到各個(gè)信標(biāo)節(jié)點(diǎn)的跳段距離,用三邊測(cè)量法或極大似然估計(jì)法計(jì)算自身坐標(biāo)。極大似然估計(jì)法在無(wú)線傳感器網(wǎng)絡(luò)定位計(jì)算中被廣泛使用。假設(shè)與未知節(jié)點(diǎn)D(x,y)能夠直接通信的信標(biāo)節(jié)點(diǎn)有N個(gè)且坐標(biāo)分別為(x1,y1),(x2,y2),…,(xn,yn),并且假設(shè)通過(guò)測(cè)距技術(shù)已知它們到節(jié)點(diǎn)D的距離分別為d1,d2,…,dn,則存在如下關(guān)系:
由第一個(gè)方程開(kāi)始逐一減去最后一個(gè)方程,則得到:
將式(3)表示為:
最后,使用標(biāo)準(zhǔn)的最小均方差估計(jì)法即可以估算得到未知節(jié)點(diǎn)D的坐標(biāo):
蟲(chóng)洞攻擊是通過(guò)兩個(gè)串謀惡意節(jié)點(diǎn)n1、n2建立起一條高質(zhì)量高帶寬的私有通道,攻擊者在網(wǎng)絡(luò)中的節(jié)點(diǎn)n1位置上記錄數(shù)據(jù)分組或位置信息,通過(guò)此私有通道將竊取的信息傳遞到網(wǎng)絡(luò)的另一個(gè)位置節(jié)點(diǎn)n2處。由于蟲(chóng)洞攻擊采用高質(zhì)量高帶寬的私有通道,所以通過(guò)私有通道傳遞的數(shù)據(jù)分組比通過(guò)正常多跳路徑傳遞的數(shù)據(jù)分組要早到目標(biāo)節(jié)點(diǎn)。在這種情況下,即使網(wǎng)絡(luò)通訊間存在信任和身份認(rèn)證,攻擊者無(wú)密鑰仍能夠進(jìn)行攻擊。蟲(chóng)洞攻擊對(duì)DV-hop定位算法的影響主要表現(xiàn)在兩方面:
(1)引起定位誤差
蟲(chóng)洞攻擊可以極大惡化DV-hop的定位過(guò)程,在DV-hop定位算法的第一階段,蟲(chóng)洞攻擊使得信標(biāo)節(jié)點(diǎn)間的跳數(shù)異常,這直接影響了算法第二部計(jì)算平均跳段的過(guò)程,最終導(dǎo)致整個(gè)定位系統(tǒng)失效。如圖1所示,在惡意節(jié)點(diǎn)A1和A2之間存在一條蟲(chóng)洞鏈,A1接收來(lái)自于節(jié)點(diǎn)B1的信息,然后將信息通過(guò)隧道轉(zhuǎn)發(fā)給A2,A2將信息重放給B2,正常情況下,信標(biāo)節(jié)點(diǎn)B1和B2之間有5跳,但在存在蟲(chóng)洞鏈的情況下,跳數(shù)變?yōu)?跳,導(dǎo)致B2對(duì)平均每跳的距離作出錯(cuò)誤的估算。同樣,位于B2附近的節(jié)點(diǎn)也將會(huì)得到一個(gè)較小的距離B1的跳數(shù),這樣使用三邊測(cè)量法或者最大似然估計(jì)法計(jì)算坐標(biāo)的時(shí)候?qū)?huì)得到一個(gè)具有較大誤差的位置估計(jì)結(jié)果。
圖1 蟲(chóng)洞攻擊對(duì)系統(tǒng)的影響
(2)能量消耗
在存在蟲(chóng)洞攻擊的情況下,節(jié)點(diǎn)不得不傳送更多的重傳信息,這樣消耗了更多的能量,這對(duì)于一個(gè)資源有限的網(wǎng)絡(luò)來(lái)說(shuō)是致命的。
總之,蟲(chóng)洞攻擊因其實(shí)現(xiàn)簡(jiǎn)單,對(duì)基于非測(cè)距的定位系統(tǒng)破壞性極大,因此,本文以蟲(chóng)洞攻擊作為研究對(duì)象。
本文提出的安全定位方案,主要由三部分構(gòu)成,如圖2所示。系統(tǒng)首先檢測(cè)并移除非法或惡意的信標(biāo)節(jié)點(diǎn),待確定了信標(biāo)節(jié)點(diǎn)的合法性之后,檢測(cè)網(wǎng)絡(luò)中是否存在蟲(chóng)洞攻擊,然后根據(jù)得到的信息采取不同的定位方案。
圖2 安全定位系統(tǒng)模型
由于無(wú)線傳感器網(wǎng)絡(luò)中未知節(jié)點(diǎn)是根據(jù)信標(biāo)節(jié)點(diǎn)發(fā)送的位置信息來(lái)完成自身的定位過(guò)程,故信標(biāo)節(jié)點(diǎn)的有效性直接關(guān)系到定位結(jié)果的有效性。若信標(biāo)節(jié)點(diǎn)被惡意節(jié)點(diǎn)破壞或者是由惡意節(jié)點(diǎn)偽造的節(jié)點(diǎn),那么所有的基于信標(biāo)節(jié)點(diǎn)的定位系統(tǒng)都將失效。因此,本文研究的安全方案在定位之前添加了檢測(cè)并移除非法信標(biāo)節(jié)點(diǎn)的模塊。考慮到傳感器節(jié)點(diǎn)的自身資源的有限性,該模塊使用了一個(gè)簡(jiǎn)單的規(guī)則——三角不等式規(guī)則來(lái)檢測(cè)信標(biāo)節(jié)點(diǎn)的合法性。
設(shè)N為待檢測(cè)節(jié)點(diǎn),B1和B2是一對(duì)待檢測(cè)的信標(biāo)節(jié)點(diǎn),這三個(gè)節(jié)點(diǎn)構(gòu)成了一個(gè)三角形ΔNB1B2,根據(jù)三角不等式規(guī)則,第三邊必小于另兩邊之和并且大于另兩邊之差。即在ΔNB1B2中有:為B1與B2之間的距離,d1、d2為檢測(cè)節(jié)點(diǎn)N分別到B1、B2節(jié)點(diǎn)的距離,利用接收到的信標(biāo)信號(hào),通過(guò)物理方法可以得到。若檢測(cè)節(jié)點(diǎn)N發(fā)現(xiàn)d12不滿足其中的任一條件則將認(rèn)為B1、B2為惡意節(jié)點(diǎn)。然后檢測(cè)節(jié)點(diǎn)N將檢測(cè)結(jié)果發(fā)送給基站,基站將建立一個(gè)表格用于保存每個(gè)信標(biāo)節(jié)點(diǎn)的ID以及被標(biāo)記為惡意節(jié)點(diǎn)的次數(shù)統(tǒng)計(jì)。當(dāng)某個(gè)節(jié)點(diǎn)被標(biāo)記的次數(shù)超過(guò)閾值t時(shí),則確認(rèn)該節(jié)點(diǎn)為惡意節(jié)點(diǎn)將其從網(wǎng)絡(luò)中移除。
在該方案中采用了一個(gè)簡(jiǎn)單的投票機(jī)制,假設(shè)網(wǎng)絡(luò)中共有n個(gè)信標(biāo)節(jié)點(diǎn),每?jī)蓚€(gè)節(jié)點(diǎn)組成一個(gè)待檢測(cè)對(duì)。當(dāng)檢測(cè)節(jié)點(diǎn)檢測(cè)到信標(biāo)節(jié)點(diǎn)為惡意節(jié)點(diǎn)時(shí)則投一票,最后將每個(gè)信標(biāo)節(jié)點(diǎn)的票數(shù)累加??芍?,一個(gè)信標(biāo)節(jié)點(diǎn)獲得最多票數(shù)為n-1,最少為0,即n-1代表著最不可信節(jié)點(diǎn),而0代表著最可信節(jié)點(diǎn)。閾值t取為最大值與最小值的平均值,即
在確定了信標(biāo)節(jié)點(diǎn)的合法性后,接下來(lái)對(duì)網(wǎng)絡(luò)中存在的非法節(jié)點(diǎn)進(jìn)行檢測(cè)。本文以蟲(chóng)洞攻擊為研究目標(biāo),因其容易實(shí)現(xiàn)并且對(duì)定位方案具有很大影響,對(duì)定位系統(tǒng)是一個(gè)很大的挑戰(zhàn)。同樣考慮到傳感器節(jié)點(diǎn)自身的有限資源,本文提出的安全方案是在DV-hop定位方案的第一階段進(jìn)行改進(jìn),利用節(jié)點(diǎn)間完成一次通信的時(shí)間RTT(Round Trip Time)[9]來(lái)檢測(cè)網(wǎng)絡(luò)中存在的蟲(chóng)洞鏈,若發(fā)現(xiàn)異常,則通過(guò)修改節(jié)點(diǎn)間跳數(shù)來(lái)降低蟲(chóng)洞攻擊對(duì)定位系統(tǒng)的影響。抵御蟲(chóng)洞攻擊算法流程圖如圖3所示。
3.2.1 RTT分析
圖3 算法流程圖
RTT是指數(shù)據(jù)包從一個(gè)節(jié)點(diǎn),經(jīng)過(guò)無(wú)線網(wǎng)絡(luò)傳遞到另一節(jié)點(diǎn)的往返時(shí)間,RTT可由接收消息時(shí)間Rrec減去消息發(fā)送時(shí)間Rsend求得,即RTT=Rrec-Rsend。假設(shè)節(jié)點(diǎn)s1與鄰居節(jié)點(diǎn)s2進(jìn)行通信,在正常情況下,節(jié)點(diǎn)s1與節(jié)點(diǎn)s2的RTT值為2p。如果s1與s2之間建立的直接連接是由蟲(chóng)洞攻擊形成的,那么往返時(shí)間RTTwormhole=2(p+w+p)=2(2p+w)。其中w為數(shù)據(jù)包在蟲(chóng)洞鏈形成的隧道中傳遞時(shí)消耗的時(shí)間,因此,可以認(rèn)為存在蟲(chóng)洞鏈時(shí),節(jié)點(diǎn)間的RTT至少是正常鏈接情況下的2倍,雖然RTT值不僅受到惡意節(jié)點(diǎn)存在的影響,還和網(wǎng)絡(luò)的可用帶寬、瓶頸帶寬、是否擁塞等有關(guān),但是理論上在同等狀況下的網(wǎng)絡(luò)環(huán)境中以上關(guān)系是不會(huì)發(fā)生改變的,即在w遠(yuǎn)小于p的情況下仍然成立。
3.2.2 抵御蟲(chóng)洞攻擊算法的具體描述
(1)信標(biāo)節(jié)點(diǎn)Sn發(fā)送包含自身位置信息的分組,其中包含跳數(shù)字段,初始化為0,同時(shí)記錄發(fā)送時(shí)間Rsend。
(2)接收到信息的鄰居節(jié)點(diǎn)發(fā)送應(yīng)答消息給節(jié)點(diǎn)Sn,Sn接收應(yīng)答消息并記錄接收時(shí)間Rrec。計(jì)算Sn與每個(gè)鄰節(jié)點(diǎn)的RTT=Rrec-Rsend,并對(duì)所有RTT求和得RTTtotal。
(3)計(jì)算節(jié)點(diǎn)Sn與所有鄰節(jié)點(diǎn)Si完成一次通信的平均時(shí)間avgRTT=RTTtotal/i。
(4)比較每個(gè)RTT(sn,si)是否大于k×avgRTT,其中,n是節(jié)點(diǎn)具有的鄰節(jié)點(diǎn)總數(shù),m為存在的蟲(chóng)洞鏈的最多數(shù)量。若大于,則認(rèn)為Sn與Si之間的鏈路為蟲(chóng)洞鏈路,則執(zhí)行步驟(5);若不大于,執(zhí)行步驟(6)。
(5)修改Sn與Si之間的跳數(shù)統(tǒng)計(jì),具體方法將在下文中介紹。
(6)判斷網(wǎng)絡(luò)泛洪是否結(jié)束,如果結(jié)束則進(jìn)行DV-hop算法的其他階段,否則返回步驟(1)繼續(xù)尋找下一跳的鄰節(jié)點(diǎn)。
本方案可以很大程度地降低蟲(chóng)洞鏈對(duì)定位系統(tǒng)的影響,這將在后文實(shí)驗(yàn)部分給予證明。
3.2.3 修改受蟲(chóng)洞鏈影響的跳數(shù)
當(dāng)檢測(cè)到有蟲(chóng)洞攻擊時(shí),跳數(shù)信息必須進(jìn)行處理,這樣才可以避免蟲(chóng)洞攻擊所造成的巨大影響,如果重新設(shè)置的跳數(shù)信息仍然不合理,會(huì)造成定位誤差的擴(kuò)大。如何設(shè)置跳數(shù)信息是個(gè)具有挑戰(zhàn)性的問(wèn)題。本文利用文獻(xiàn)[10]的方法,只不過(guò)在取整過(guò)程中,本文采用向上取整的方法,由于能夠相互通信的節(jié)點(diǎn)必定在通信半徑的范圍之內(nèi),不能夠相互通信的節(jié)點(diǎn)只能夠通過(guò)第三方進(jìn)行中轉(zhuǎn)。對(duì)兩信標(biāo)節(jié)點(diǎn)之間的距離與通信半徑的商采用向上取整的方式來(lái)確定兩點(diǎn)之間的最小跳數(shù)更加合理,即當(dāng)≤3時(shí),跳數(shù)hop為:
為了能夠抵御蟲(chóng)洞攻擊實(shí)現(xiàn)安全定位,本方案使用了兩個(gè)簡(jiǎn)單的算法,首先檢測(cè)并移除非法的信標(biāo)節(jié)點(diǎn),因?yàn)槲粗?jié)點(diǎn)的定位與信標(biāo)節(jié)點(diǎn)發(fā)送的位置信息緊密相關(guān)。檢測(cè)非法信標(biāo)節(jié)點(diǎn)時(shí),使用一個(gè)特定的檢測(cè)節(jié)點(diǎn)N,利用三角不等式規(guī)則對(duì)信標(biāo)節(jié)點(diǎn)的合法性進(jìn)行判斷,這個(gè)待檢測(cè)節(jié)點(diǎn)N要確保其合法性,實(shí)際環(huán)境中可以采用一個(gè)特制的節(jié)點(diǎn),由于三角不等式規(guī)則不需要復(fù)雜計(jì)算并且此過(guò)程并未增加過(guò)多的硬件要求,只需要一個(gè)性能良好的節(jié)點(diǎn)來(lái)完成。因此,該方案不會(huì)增加傳感器網(wǎng)絡(luò)的負(fù)擔(dān)。
待確定了信標(biāo)節(jié)點(diǎn)的合法性后,在信標(biāo)節(jié)點(diǎn)向網(wǎng)絡(luò)中發(fā)送包含自身位置信息的過(guò)程中,通過(guò)計(jì)算與鄰節(jié)點(diǎn)之間的RTT值來(lái)判斷通信節(jié)點(diǎn)間是否存在蟲(chóng)洞鏈,對(duì)RTT值的計(jì)算不需要很大的存儲(chǔ)空間,因此該過(guò)程不會(huì)消耗過(guò)多的資源。在檢測(cè)到蟲(chóng)洞鏈時(shí),通過(guò)修改節(jié)點(diǎn)之間的跳數(shù)來(lái)最小化蟲(chóng)洞攻擊對(duì)定位系統(tǒng)的影響,該過(guò)程只有在檢測(cè)到蟲(chóng)洞鏈存在時(shí)才會(huì)執(zhí)行,否則按原始算法進(jìn)行處理。因此,該方法充分考慮到節(jié)點(diǎn)資源的有限性,并且沒(méi)有增加任何的硬件成本。
本節(jié)驗(yàn)證基于三角不等式規(guī)則檢測(cè)惡意信標(biāo)節(jié)點(diǎn)的有效性。設(shè)無(wú)線傳感器網(wǎng)絡(luò)布局在500m×500m的區(qū)域內(nèi),如圖4所示,網(wǎng)絡(luò)中設(shè)置一個(gè)檢測(cè)節(jié)點(diǎn)N,節(jié)點(diǎn)間通訊半徑為r,以檢測(cè)節(jié)點(diǎn)N為圓心(x0=y0=0),半徑為l的圓內(nèi)設(shè)置n個(gè)信標(biāo)節(jié)點(diǎn),保證節(jié)點(diǎn)之間都可以相互通信。假設(shè)惡意信標(biāo)節(jié)點(diǎn)謊報(bào)的位置與真實(shí)位置偏移距離為a,為了保證實(shí)驗(yàn)效果,實(shí)驗(yàn)中假設(shè)偏移方向?yàn)樗椒较颍处=a,Δy=0。實(shí)驗(yàn)中設(shè)置n=11,c分別取值2、5、8,閾值t=5,a∈(0.1r,2r),r=50m,用C程序來(lái)進(jìn)行實(shí)驗(yàn),所有信標(biāo)節(jié)點(diǎn)到檢測(cè)節(jié)點(diǎn)N的真實(shí)距離通過(guò)公式計(jì)算得到。實(shí)驗(yàn)結(jié)果如圖5所示。
圖4 網(wǎng)絡(luò)中節(jié)點(diǎn)布局
圖5 偏移量a與系統(tǒng)識(shí)別惡意節(jié)點(diǎn)的關(guān)系
(1)由圖5可知,當(dāng)惡意節(jié)點(diǎn)的偏移距離a較小時(shí),該方案不能夠準(zhǔn)確地將所有惡意信標(biāo)節(jié)點(diǎn)識(shí)別出來(lái),當(dāng)偏移距離a≥r時(shí)該方案才能發(fā)揮理想作用,將大部分惡意節(jié)點(diǎn)準(zhǔn)確識(shí)別出,這說(shuō)明惡意節(jié)點(diǎn)偏移量的大小對(duì)該方案的有效性有直接的影響。但在接下來(lái)的實(shí)驗(yàn)將證明若偏移量a較小時(shí),其對(duì)定位系統(tǒng)的定位精度影響是很微弱的,即攻擊者若想對(duì)定位系統(tǒng)造成較大的影響必須將偏移量a設(shè)置得足夠大。但在a值較大的情況下,本方案可以將大部分惡意節(jié)點(diǎn)識(shí)別出。因?yàn)閷?shí)際環(huán)境中,存在即使信標(biāo)節(jié)點(diǎn)偏離實(shí)際位置很遠(yuǎn),也可能滿足三角不等式規(guī)則的情況,這會(huì)對(duì)識(shí)別結(jié)果造成一定的影響,如何避免此影響的研究將是今后的工作。
(2)該網(wǎng)絡(luò)環(huán)境中設(shè)置了11個(gè)信標(biāo)節(jié)點(diǎn),當(dāng)惡意節(jié)點(diǎn)的數(shù)目較少時(shí),即小于n/2時(shí),系統(tǒng)不會(huì)發(fā)生誤報(bào)的現(xiàn)象,但惡意節(jié)點(diǎn)的數(shù)量超過(guò)節(jié)點(diǎn)總數(shù)的一半后,如c=8時(shí),系統(tǒng)會(huì)將良性信標(biāo)節(jié)點(diǎn)誤報(bào)為惡意節(jié)點(diǎn),即該方案對(duì)惡意節(jié)點(diǎn)的數(shù)量有一定的要求,若系統(tǒng)中存在過(guò)多的惡意節(jié)點(diǎn),則會(huì)使系統(tǒng)失效,引起誤報(bào)的情況。
網(wǎng)絡(luò)布局如圖6所示,在200m×200m的區(qū)域中,布置10個(gè)節(jié)點(diǎn),通訊半徑為50m,其中B1、B2、B3為信標(biāo)節(jié)點(diǎn),且B3為惡意信標(biāo)節(jié)點(diǎn),選定節(jié)點(diǎn)N為待定位節(jié)點(diǎn),已知B1到B3之間的距離為B1B3=125,B1B2=111.8,B2B3=125,B1與B3通信需要的最小跳數(shù)是3,B1與B2的為4,B3與B2的為4。因?yàn)榇ㄎ还?jié)點(diǎn)通信只需要1跳,根據(jù)DV-hop算法可知,節(jié)點(diǎn)N接收從B3獲得的矯正值,而丟棄從B1、B2獲得的。矯正值為(125+125)/(3+4)=35.71,因此它與3個(gè)信標(biāo)節(jié)點(diǎn)之間的距離分別為NB1=3×35.71,NB2=3×35.71,NB3=1×35.71,使用三邊測(cè)量法可以得到未知節(jié)點(diǎn)的位置信息,惡意節(jié)點(diǎn)會(huì)對(duì)矯正值產(chǎn)生影響,導(dǎo)致整個(gè)定位過(guò)程出現(xiàn)誤差。本實(shí)驗(yàn)使用C程序來(lái)實(shí)現(xiàn),實(shí)驗(yàn)結(jié)果如表1所示,其中定位誤差為誤差與通信半徑之比。
圖6 無(wú)線傳感器網(wǎng)絡(luò)布局
由表1可以看出,當(dāng)偏移量a值較小時(shí),其引起的定位誤差在可以接受的范圍內(nèi),僅為通信半徑的0~30%之間。而當(dāng)a值較大時(shí),如1r附近,其引起的誤差較大,對(duì)定位精度有著較大的影響。因此,得出結(jié)論,攻擊者若企圖破壞定位系統(tǒng),a值必須足夠大。
本部分實(shí)驗(yàn)在Linux環(huán)境下,使用NS2模擬網(wǎng)絡(luò)環(huán)境,然后對(duì)生成的trace文件進(jìn)行分析,驗(yàn)證該方案檢測(cè)以及抵御蟲(chóng)洞攻擊的有效性。蟲(chóng)洞攻擊由兩個(gè)具有遠(yuǎn)大于正常節(jié)點(diǎn)的通信半徑的特殊節(jié)點(diǎn)來(lái)模擬,并在兩個(gè)惡意節(jié)點(diǎn)間用一條有線鏈路表示蟲(chóng)洞鏈。無(wú)線傳感器網(wǎng)絡(luò)布置在一個(gè)500m×500m的區(qū)域中,均勻分布100個(gè)傳感器節(jié)點(diǎn),其中包括信標(biāo)節(jié)點(diǎn)和普通節(jié)點(diǎn),節(jié)點(diǎn)的通信半徑設(shè)置為50m。
表1 偏移量對(duì)定位精度的影響
在不存在蟲(chóng)洞攻擊的情況下,隨著信標(biāo)節(jié)點(diǎn)的增長(zhǎng),定位精度的變化如圖7所示。隨著信標(biāo)節(jié)點(diǎn)的增加,定位誤差逐漸下降,當(dāng)信標(biāo)節(jié)點(diǎn)達(dá)到一定數(shù)量后,定位精度趨于平緩。
根據(jù)圖7,選取15個(gè)信標(biāo)節(jié)點(diǎn)來(lái)實(shí)驗(yàn)隨著蟲(chóng)洞鏈的增加,DV-hop基本算法與使用本文提出的安全定位方案的定位誤差之間的對(duì)比。假設(shè)每個(gè)蟲(chóng)洞鏈都可以成功截獲數(shù)據(jù)包,并通過(guò)隧道傳遞給蟲(chóng)洞鏈另一端的惡意節(jié)點(diǎn)。實(shí)驗(yàn)過(guò)程中選定一個(gè)待定位節(jié)點(diǎn)作為實(shí)驗(yàn)對(duì)象,并人工設(shè)定蟲(chóng)洞鏈的位置,以便對(duì)定位結(jié)果造成直接影響,實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 定位誤差隨著蟲(chóng)洞鏈數(shù)變化的情況
從圖8可以看出,隨著蟲(chóng)洞鏈數(shù)量的增長(zhǎng),由常規(guī)定位算法計(jì)算出未知節(jié)點(diǎn)的定位誤差增長(zhǎng)很快,在蟲(chóng)洞鏈數(shù)量為2時(shí),定位誤差超過(guò)了通信半徑的一半以上,定位結(jié)果已經(jīng)接近無(wú)效。由此可見(jiàn),蟲(chóng)洞攻擊對(duì)系統(tǒng)的定位效果有極大的影響,但本文提出的方案可以有效地減弱蟲(chóng)洞攻擊對(duì)定位系統(tǒng)的影響。隨蟲(chóng)洞鏈數(shù)量的增長(zhǎng),本文提出的安全定位方案的定位誤差并未呈現(xiàn)急劇增長(zhǎng)的局面,而是很好地控制了誤差的增長(zhǎng),使得定位誤差仍然在可以接受的范圍內(nèi)。
文獻(xiàn)[11]中提出了一種通過(guò)檢測(cè)兩個(gè)節(jié)點(diǎn)之間的跳數(shù)是否受到了攻擊的算法DWDV(Defined Wormhole attack in DV-hop),具體的方法是首先檢測(cè)節(jié)點(diǎn)間跳數(shù)是否小于最小跳數(shù)hopleast,如果小于,則表明該跳數(shù)是不合理的,那么就用最優(yōu)化跳數(shù)hopopt替換受到攻擊的跳數(shù),hopopt是同網(wǎng)絡(luò)區(qū)域相關(guān)的。將本文提出的算法與該算法進(jìn)行對(duì)比,結(jié)果如圖9所示。
圖9 與文獻(xiàn)[11]中算法效果對(duì)比圖
從圖9中可以看出,在蟲(chóng)洞鏈數(shù)量較少的時(shí)候,文獻(xiàn)[11]中的算法同樣發(fā)揮出較好的效果,但隨著蟲(chóng)洞鏈比重的增加到4個(gè)以上的時(shí)候,定位誤差會(huì)急劇上升,而本文提出的算法仍然能夠保持較好的定位效果。
本文分析了常用于無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位的算法,其中大部分算法在理想的環(huán)境中不存在惡意攻擊的情況下發(fā)揮了良好的定位性能,但隨著技術(shù)不斷更新,社會(huì)復(fù)雜化的加劇,顯然已有的算法不能發(fā)揮其應(yīng)有的價(jià)值,尤其是在對(duì)安全性要求較高的環(huán)境如戰(zhàn)場(chǎng)中,在敵人采用惡意節(jié)點(diǎn)攻擊的情況下,如何能夠及時(shí)識(shí)別惡意節(jié)點(diǎn)并采取相應(yīng)措施,顯得尤為重要。因此,研究了一種安全的定位方案,由于蟲(chóng)洞攻擊的特殊性,本文用其作為抵御對(duì)象,同時(shí)考慮到節(jié)點(diǎn)自身資源的限制,本文在實(shí)現(xiàn)簡(jiǎn)單,對(duì)硬件要求低的基于非測(cè)距的定位算法DV-hop的基礎(chǔ)上增加了安全模塊,并在運(yùn)行定位模塊之前增加檢測(cè)并移除惡意信標(biāo)節(jié)點(diǎn)的過(guò)程。理論分析及仿真實(shí)驗(yàn)證明,提出的安全定位方案不需要借助昂貴的硬件輔助,實(shí)現(xiàn)簡(jiǎn)單,在檢測(cè)惡意信標(biāo)節(jié)點(diǎn)以及抵御蟲(chóng)洞攻擊上具有良好的效果。本文研究對(duì)象限制在靜態(tài)傳感器節(jié)點(diǎn)上,下一步的重點(diǎn)是研究能夠適用于大規(guī)模隨機(jī)性布置節(jié)點(diǎn)的動(dòng)態(tài)網(wǎng)絡(luò)節(jié)點(diǎn)定位的安全方案。
[1]Rabaey J M,Ammer M J,da Silva J L,et al.PicoRadio supports ad hoc ultra-low power w ireless networking[J].Computer,2002,33(7):42-48.
[2]Girod L,Bychovskiy V,Elson J,et al.Locating tiny sensors in time and space:a case study[C]//Proceedings of the 2002 IEEE International Conference on Computer Design:VLSI in Computers and Processors,F(xiàn)reiburg,2002:214-219.
[3]Girod L,Estrin D.Robust range estimation using acoustic and multi modal sensing[C]//Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems,Maui,2001:1312-1320.
[4]Harter A,Hopper A,Steggles P,et al.The anatom y of a context-aware application[C]//Proceedings of the 5th Annual ACM/IEEE International Conference on Mobile Computing and Networking,Seattle.[S.l.]:ACM Press,1999:59-68.
[5]Nicolescu D,Nath B.Ad-hoc positioning system using AoA[C]//Proceedings of IEEE International Conference on Computer Communications,San Francisco,2003.
[6]He T,Huang C,Blum B M,et al.Range free location schemes for large scale sensor networks[C]//Proceedings of ACM International Symposium on Mobile Ad-hoc Networking&Computing,Maryland,2003.
[7]Niculescu D,Nath B.DV based positioning in Ad hoc networks[J].Journal of Telecommunication Systems,2003,22(1/4):267-280.
[8]Labraoui N,Gueroui M,A liouat M,et al.Data aggregation security challenge in Wireless Sensor Networks:a survey[C]//Proceedings of the 5th IEEE International Symposium on Wireless Pervasive Computing(ISWPC),2010:325-330.
[9]Labraoui N,Gueroui M.Secure range-free localization scheme in Wireless Sensor Networks[C]//Proceedings of the 10th International Symposium on Programming and Systems(ISPS),2011:1-8.
[10]Liu Caixia,Huang Yanlei.Research on improved DV-hop algorithm against wormhole attacks in WSN[J].Chinese Journal of Sensors and Actuators,2011,24(10).
[11]Zhu Bin,Liao Junguo,Zhang Huifu.Defending wormhole attack in ASP DV-Hop[C]//Proceedings of the 3rd International Conference on Communications and Networking,2008.