楊 虎,陳 輝
(安徽理工大學(xué)計算機科學(xué)與工程學(xué)院,安徽 淮南 232001)
無線傳感器網(wǎng)絡(luò)(Wireles Sensor Networks,WSNs)是一種由多個傳感器組成的分布式網(wǎng)絡(luò)[1],作為物聯(lián)網(wǎng)中數(shù)據(jù)監(jiān)測以及信息采集的基礎(chǔ)組件,在國防軍事、航空航天、動物保護等領(lǐng)域得到了廣泛應(yīng)用。然而,攻擊者很容易監(jiān)聽和襲擊采用無線通信方式的傳感器網(wǎng)絡(luò),網(wǎng)絡(luò)中源節(jié)點位置的暴露也會威脅到受監(jiān)測者的安全。因此,WSNs中源節(jié)點位置隱私保護成為近幾年的研究熱點。
目前,無線傳感器網(wǎng)絡(luò)中位置的隱私保護可分為源節(jié)點位置隱私保護和基站位置隱私保護[2]。而已有的研究中根據(jù)攻擊者能力的強弱可將WSN攻擊者分為局部攻擊者和全局攻擊者[3]。局部攻擊者的能力較弱,只能監(jiān)聽通信范圍內(nèi)節(jié)點的通信數(shù)據(jù)包,并采用逐跳溯源的方式進行攻擊;全局攻擊者則可以采用更高效的方式進行攻擊,如流量分析。但是,在實際應(yīng)用中,全局攻擊者的成本太高,與之相比,局部攻擊者的部署與實施更為方便,價格也更為低廉。因此研究者們多是研究針對局部攻擊者的隱私保護算法。
對于局部攻擊者來說,傳統(tǒng)的數(shù)據(jù)加密算法已經(jīng)無法完全保護源節(jié)點位置隱私。針對局部攻擊者,OZTURK等[4]提出了通過幻影路由協(xié)議來保護WSN中源節(jié)點的位置隱私,該協(xié)議分成兩個階段:第一階段,數(shù)據(jù)包通過隨機多跳轉(zhuǎn)發(fā)至一個幻影節(jié)點;第二階段,幻影節(jié)點通過泛洪或者單跳等方式將數(shù)據(jù)包發(fā)送到基站,但該協(xié)議存在泛洪導(dǎo)致的能耗劇增以及單路徑傳輸導(dǎo)致的重合路由等多個問題。JIA等[5]提出了基于角度的WSN源位置隱私保護算法,通過動態(tài)調(diào)整節(jié)點的通信半徑以及非重復(fù)游走策略,延長攻擊者的回溯時間。BAI等[6]提出了基于角度和網(wǎng)絡(luò)劃分的WSN源位置隱私保護算法,通過網(wǎng)絡(luò)劃分使幻影節(jié)點分布遠離源節(jié)點,但沒有考慮到重合路徑的產(chǎn)生,具有一定的局限性。ZHOU等[7]提出了基于隨機游走的多分支源位置隱私保護方法,通過設(shè)置多個代理節(jié)點以及干擾區(qū)的方法隱藏源節(jié)點的真實地理位置,但是在該協(xié)議中,當(dāng)源節(jié)點距離基站較近時干擾區(qū)和代理節(jié)點無法完全實現(xiàn)對源節(jié)點位置的保護。WANG等[8]針對使用隱馬爾可夫模型估計源節(jié)點位置的局部攻擊者,提出了基于概率的源位置隱私保護算法,通過幻影節(jié)點和假源節(jié)點分化出多樣的路由路徑,干擾攻擊者。ADILBEKOV等[9]提出了基于概率假包的源位置隱私保護算法,通過假包來干擾攻擊者,并通過變換假包發(fā)送概率降低能耗。GURIAR等[10]提出了基于聚類的源位置隱私保護算法,通過匿名的方式在通信過程中隱藏節(jié)點的真實身份。BAI等[11]提出了基于隨機選擇的源位置隱私保護算法,但是該算法沒有考慮源節(jié)點距離基站較近時安全周期較低的問題。TANASH等[12]提出了基于聚類的源位置隱私保護算法,通過動態(tài)最短路徑策略和動態(tài)樹策略來對抗局部攻擊者。MIAO等[13]提出了一種基于云的源位置保護方案,通過多個中間節(jié)點靈活變換源節(jié)點的數(shù)據(jù)包轉(zhuǎn)發(fā)路徑,誘導(dǎo)攻擊者向錯誤的方向移動。白樂強等[14]出了基于隨機虛擬環(huán)的源位置隱私保護算法(Source location privacy protection algorithm for WSN based on Random Virtual Ring,ABRVR),通過將幻影節(jié)點布置在基站周圍的虛擬環(huán)內(nèi),解決源節(jié)點數(shù)據(jù)包低跳數(shù)轉(zhuǎn)發(fā)至基站時隱私保護能力較低的問題。蔡威[15]提出了基于攻擊感知的源位置隱私保護路由協(xié)議,通過跳頻參數(shù)檢測方法檢測攻擊者,一旦檢測到攻擊者則改變最短路由策略為迂回路由策略,提高網(wǎng)絡(luò)的安全性。郭蕊等[16]提出了基于目標(biāo)決策的源節(jié)點位置隱私保護協(xié)議,該協(xié)議采用分段定向隨機游走的方式確定幻影節(jié)點的位置,同時考慮能耗、剩余能量以及距離等多個因素選取轉(zhuǎn)發(fā)節(jié)點,延長網(wǎng)絡(luò)安全周期,降低傳輸時延。李攀攀等[17]提出的基于Hilbert填充曲線的海洋無線傳感網(wǎng)源節(jié)點位置隱私保護方法,采用泰森多邊形劃分規(guī)則對無線傳感器網(wǎng)絡(luò)中各個節(jié)點進行部署,同時節(jié)點會不定時發(fā)送偽信息干擾攻擊者。
雖然以上算法均較好地實現(xiàn)了對源節(jié)點位置的隱私保護,但是在算法的設(shè)計過程中考慮的因素較少,導(dǎo)致算法無法全面地實現(xiàn)對源節(jié)點位置的隱私保護。為此,本文提出了一種基于多虛擬環(huán)的WSN源位置隱私保護算法(Source location privacy protection algorithm for WSN based on Multi-Virtual Ring,SLPMVR)。該算法通過生成源節(jié)點和基站外的虛擬環(huán)來選擇均勻分布的源幻影節(jié)點和靠近基站的基站幻影節(jié)點,采用概率路由策略實現(xiàn)源幻影節(jié)點與基站幻影之間的數(shù)據(jù)傳輸,減少重合路徑產(chǎn)生,并分化出多樣的路由路徑;在基站虛擬環(huán)環(huán)內(nèi)基站幻影節(jié)點將數(shù)據(jù)包通過定向隨機步策略轉(zhuǎn)發(fā)至基站,進而提高源節(jié)點位置的隱私保護能力。
無線傳感器網(wǎng)絡(luò),通常用于監(jiān)控野外的野生動物[16],由一個基站節(jié)點(Sink)和數(shù)量眾多的感知節(jié)點組成。
網(wǎng)絡(luò)模型滿足如下條件:1)無線傳感器網(wǎng)絡(luò)中所有的傳感器節(jié)點均無法隨意移動;2)無線傳感器網(wǎng)絡(luò)中所有的傳感器節(jié)點均存在ID且ID唯一[17];3)無線傳感器網(wǎng)絡(luò)中節(jié)點通過定位算法獲得自己的坐標(biāo);4)網(wǎng)絡(luò)中唯一的基站處于無線傳感器網(wǎng)絡(luò)中心且無法移動。
攻擊者為了獲得珍稀野生動物的位置信息,會在基站周圍監(jiān)聽網(wǎng)絡(luò)中發(fā)往基站周圍的數(shù)據(jù)包,通過不斷追蹤數(shù)據(jù)包到達源節(jié)點位置并捕獲野生動物。
本文對攻擊者模型的假設(shè)如下:1)攻擊者具有良好的軟硬件設(shè)備;2)攻擊者監(jiān)聽到數(shù)據(jù)包后,會移動至數(shù)據(jù)包的發(fā)送節(jié)點的位置進行監(jiān)聽[18-20];3)攻擊者初始時位于基站附近;4)攻擊者可以觀察節(jié)點周圍區(qū)域的流量情況;5)攻擊者追蹤數(shù)據(jù)包時,不會對網(wǎng)絡(luò)的正常運轉(zhuǎn)進行干擾,不會破壞網(wǎng)絡(luò)中的節(jié)點[21];6)攻擊者無法對網(wǎng)絡(luò)中加密后的數(shù)據(jù)包進行解密或者篡改等操作。
為了更好地闡述本文提出的算法,引入以下相關(guān)定義。
定義1 虛擬環(huán):源節(jié)點和基站生成用于控制數(shù)據(jù)路由范圍的環(huán)形區(qū)域。
定義2 虛擬環(huán)區(qū):源節(jié)點周圍處于可視區(qū)和虛擬環(huán)之間的區(qū)域,環(huán)區(qū)內(nèi)的所有節(jié)點構(gòu)成候選幻影節(jié)點的集合,有相同概率的節(jié)點被選作幻影節(jié)點。
定義3 幻影節(jié)點:選擇用于確定數(shù)據(jù)包傳輸方向的節(jié)點,幻影節(jié)點分成源幻影節(jié)點和基站幻影節(jié)點。
定義4 重合路徑:兩個不同的節(jié)點以最短路由的方式向基站發(fā)送的數(shù)據(jù)包經(jīng)過同一個中間節(jié)點后,該節(jié)點數(shù)據(jù)包轉(zhuǎn)發(fā)至基站的最短路徑唯一,則這個最短路徑即為重合路徑。
定義5 候選轉(zhuǎn)發(fā)節(jié)點:在源幻影節(jié)點向基站幻影節(jié)點路由階段,節(jié)點鄰居列表中與基站的距離小于當(dāng)前節(jié)點與基站的距離的節(jié)點。鄰居列表中所有候選轉(zhuǎn)發(fā)節(jié)點組成候選轉(zhuǎn)發(fā)節(jié)點集合,節(jié)點會在該集合中選擇下一跳轉(zhuǎn)發(fā)數(shù)據(jù)包。
基于多虛擬環(huán)的源位置隱私保護算法包括初始化階段和數(shù)據(jù)傳輸階段。在初始化階段,基站節(jié)點B在網(wǎng)絡(luò)中泛洪數(shù)據(jù)包,每個節(jié)點通過由基站發(fā)出的數(shù)據(jù)包得到基站以及鄰居節(jié)點的相關(guān)信息,完成節(jié)點對鄰居列表中鄰居節(jié)點位置的初始化;在數(shù)據(jù)傳輸階段,源節(jié)點S按照最短路由策略將數(shù)據(jù)包轉(zhuǎn)發(fā)至源幻影節(jié)點,然后源幻影節(jié)點將接收的數(shù)據(jù)包采用基于角度的概率路由策略轉(zhuǎn)發(fā)至基站幻影節(jié)點,最后基站幻影節(jié)點采用定向隨機步策略將數(shù)據(jù)包轉(zhuǎn)發(fā)至基站,完成數(shù)據(jù)的安全傳輸。
網(wǎng)絡(luò)初始化完成后,源節(jié)點會選定一個節(jié)點作為幻影節(jié)點,即源幻影節(jié)點。為了避免現(xiàn)有算法產(chǎn)生幻影節(jié)點可能在可視區(qū)內(nèi)或者集中在某個區(qū)域,易加劇重合路由的產(chǎn)生和降低網(wǎng)絡(luò)的安全周期,在選擇幻影節(jié)點時,充分考慮幻影節(jié)點的不均勻分布以及避免幻影節(jié)點可能產(chǎn)生在可視區(qū)內(nèi)的情況。源節(jié)點在選擇出源幻影節(jié)點后,會將數(shù)據(jù)包以最短路由的方式轉(zhuǎn)發(fā)至源幻影節(jié)點。
3.1.1 源幻影節(jié)點選擇
本文采用基于虛擬環(huán)的方法產(chǎn)生源幻影節(jié)點,源節(jié)點S生成以自身為圓心、以rmax為半徑的圓Cmax,設(shè)源節(jié)點可視區(qū)為圓Cmin,其半徑為rmin,而源幻影節(jié)點所在區(qū)域處于虛擬環(huán)S內(nèi),即Cmax-Cmin區(qū)域,如圖1所示。設(shè)源節(jié)點坐標(biāo)為(xs,ys),源幻影節(jié)P1的坐標(biāo)為(xp1,yp1)。將虛擬環(huán)區(qū)等分成n個小分區(qū),每個小分區(qū)的角度是α=2π/n,定義這些區(qū)域為s1,s2,…,sn。源節(jié)點在進行數(shù)據(jù)傳輸時,首先會選擇一個區(qū)域Sλi,λi服從[1,n]隨機分布,選定小分區(qū)后再選擇源幻影節(jié)點在小分區(qū)內(nèi)的偏移角度δ與偏移距離d,偏移角度δ服從[(λi-1)α,λiα]隨機分布,d服從(rmin,rmax]隨機分布。則選定的源幻影節(jié)點P1的相對坐標(biāo)為(xs+dcosδ,ys+dsinδ)。
圖1 源節(jié)點虛擬環(huán)分區(qū)示意圖
由于源幻影節(jié)點坐標(biāo)是隨機選定的,因此可能出現(xiàn)選定的坐標(biāo)無任何節(jié)點的情況。若出現(xiàn)這種情況,則選定離該預(yù)期位置最近的節(jié)點為源幻影節(jié)點。為了讓產(chǎn)生的源幻影節(jié)點分布更加均勻,同一個源節(jié)點連續(xù)產(chǎn)生的源幻影節(jié)點不會集中在同一塊區(qū)域內(nèi),當(dāng)源節(jié)點在一次區(qū)域選擇中選定區(qū)域Sλi后,則該節(jié)點在下一次進行分區(qū)選擇時不會選擇與Sλi相鄰的區(qū)域。
源節(jié)點在選擇幻影節(jié)點時,前后兩次選擇的源幻影節(jié)點地理上相隔的最小距離為
(1)
因此,在不同的應(yīng)用場景,可以通過調(diào)整參數(shù)n和rmin來控制幻影節(jié)點的最小間隔。
3.1.2 源節(jié)點數(shù)據(jù)傳輸
源幻影節(jié)點被確定后,源節(jié)點通過最短路由方式將數(shù)據(jù)包轉(zhuǎn)發(fā)至源幻影節(jié)點。
Step1 源節(jié)點判斷鄰居節(jié)點中是否存在源幻影節(jié)點,若存在則將數(shù)據(jù)包轉(zhuǎn)發(fā)至源幻影節(jié)點;若不存在則轉(zhuǎn)至Step2。
Step2 源節(jié)點判斷通信范圍中是否存在源幻影節(jié)點坐標(biāo),若存在則選定距離該坐標(biāo)最近的鄰居節(jié)點為源幻影節(jié)點,并將數(shù)據(jù)包轉(zhuǎn)發(fā)至該節(jié)點;若不存在則轉(zhuǎn)至Step3。
Step3 源節(jié)點將數(shù)據(jù)包轉(zhuǎn)發(fā)至距離源幻影節(jié)點最近的鄰居節(jié)點。
Step4 重復(fù)上述步驟,直到數(shù)據(jù)包轉(zhuǎn)發(fā)至源幻影節(jié)點。
3.2.1 基站幻影節(jié)點選擇
假定以基站B為圓心、R為半徑的基站虛擬環(huán)為CB,如圖2所示。設(shè)基站的坐標(biāo)為(xB,yB),源幻影節(jié)點P1的坐標(biāo)為(xP1,yP1),基站幻影節(jié)P2的坐標(biāo)為(xP2,yP2),設(shè)(x,y)是直線LBP1之間的任意一點,則直線LBP1的方程可以用方程y=kx+b表示,則參數(shù)k和b可以分別用如下方程表示:
虛擬環(huán)可以用如下方程表示:
(x-XB)2+(y-YB)2=R2.
(2)
聯(lián)立(1)(2)可以得到兩個交點:
或者
選擇靠近源幻影節(jié)點P1的交點為基站幻影節(jié)點P2,即選擇在x軸上的距幻影節(jié)點P1最近的交點,如果|x1-XS|<|x2-XS|,則XP2=X1,XP2=Y1,否則XP2=X2,XP2=Y2。
圖2 基站幻影節(jié)點選擇示意圖
3.2.2 源幻影節(jié)點數(shù)據(jù)傳輸
在一般的源位置隱私保護路由策略中,為了更快地將數(shù)據(jù)包轉(zhuǎn)發(fā)至基站,通常采用最短路由的方式轉(zhuǎn)發(fā)數(shù)據(jù)包,但采用這種方式會產(chǎn)生重合路徑。如圖3所示,B為基站節(jié)點,對兩個不同節(jié)點P3和P4采用最短路由策略轉(zhuǎn)發(fā)數(shù)據(jù)包至相同節(jié)點P5后,數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑相同,產(chǎn)生的重合路徑使局部攻擊者很容易在路由階段發(fā)現(xiàn)幻影節(jié)點,進而發(fā)現(xiàn)源節(jié)點,降低網(wǎng)絡(luò)安全周期。因此本文提出基于角度的概率路由策略,如圖4所示,在不過多增加能耗與跳數(shù)的情況下,增加路由路徑,提高攻擊者的反向追蹤難度。該策略將根據(jù)不同情況采取以下三種處理方式:
1)當(dāng)源幻影節(jié)點P1處于基站虛擬環(huán)內(nèi)時,數(shù)據(jù)包由P1向基站幻影節(jié)點P2的傳輸路徑將遠離基站,在下一個階段進行傳輸時存在冗余跳數(shù)且無法提高網(wǎng)絡(luò)隱私保護能力,因此無需再通過虛擬環(huán)選擇基站幻影節(jié)點P2,將當(dāng)前源幻影節(jié)點P1選定為基站幻影節(jié)點進入下一路由階段。
2)當(dāng)源幻影節(jié)點P1的候選轉(zhuǎn)發(fā)節(jié)點集合中存在基站幻影節(jié)點P2或在當(dāng)前轉(zhuǎn)發(fā)節(jié)點的通信范圍內(nèi)存在基站幻影節(jié)點P2的坐標(biāo)時,則直接將數(shù)據(jù)包發(fā)至該基站幻影節(jié)點或者將距離該坐標(biāo)最近的節(jié)點選定為基站幻影節(jié)點P2,然后再將數(shù)據(jù)包轉(zhuǎn)發(fā)給該基站幻影節(jié)點。
3)當(dāng)源幻影節(jié)點P1需通過多跳將數(shù)據(jù)包轉(zhuǎn)發(fā)至基站幻影節(jié)點時,轉(zhuǎn)發(fā)路徑的下一跳節(jié)點選取概率采用如下公式:
(3)
其中,θi、θj為候選轉(zhuǎn)發(fā)節(jié)點與源幻影節(jié)點P1所連線段同線段BP1在源幻影節(jié)點P1處的垂直線之間形成的夾角,n為候選轉(zhuǎn)發(fā)節(jié)點的數(shù)目。θi、θj越大,被選取的概率qi越高,通過該節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包所產(chǎn)生的能耗越低;θi、θj越小,被選取的概率qi越低,通過該節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包所產(chǎn)生的能耗與跳數(shù)越大,被選擇作為下一跳轉(zhuǎn)發(fā)時能避開重合路徑。
圖3 重合路徑示意圖
圖4 基于角度的概率路由示意圖
該策略通過概率選取鄰居節(jié)點中候選轉(zhuǎn)發(fā)節(jié)點作為下一跳,相比于最短路徑路由產(chǎn)生的重合路徑,存在更多的路由路徑選取可能性,增加了攻擊者逐跳追蹤難度,提高網(wǎng)絡(luò)安全周期。
基于角度的概率路由流程如圖5所示。
圖5 基于角度的概率路由流程圖
數(shù)據(jù)包轉(zhuǎn)發(fā)至基站幻影節(jié)點P2后,若直接通過最短路由方式將數(shù)據(jù)包轉(zhuǎn)發(fā)至基站,攻擊者很容易通過產(chǎn)生的重合路徑回溯至基站幻影節(jié)點,降低網(wǎng)絡(luò)的安全周期。若采用常規(guī)的單向路由方式轉(zhuǎn)發(fā)數(shù)據(jù)包,攻擊者很容易通過單個方向的數(shù)據(jù)包鏈路追蹤到基站幻影節(jié)點。因此本文提出了環(huán)內(nèi)定向梯度路由策略,將數(shù)據(jù)包在基站虛擬環(huán)內(nèi)會向兩個不同方向傳輸,即基站幻影節(jié)點P2收到數(shù)據(jù)包后選擇與上一次方向相反的環(huán)方向(順時針或者逆時針),為了減少重合路徑以及增加攻擊者在虛擬環(huán)內(nèi)逐跳追蹤的難度,增加了對下一跳節(jié)點的判斷流程。為了提高數(shù)據(jù)包在虛擬環(huán)內(nèi)的路由路徑多樣性,假定數(shù)據(jù)包沿P2B方向梯度下降最快。此時需要選擇梯度下降趨勢較小的鄰居節(jié)點作為下一跳傳輸數(shù)據(jù)包。如圖6所示,假定基站幻影節(jié)點P2選擇順時針方向的鄰居節(jié)點中產(chǎn)生夾角最大的節(jié)點P6作為下一跳后,節(jié)點P6選擇節(jié)點P7作為下一跳時需要符合以下兩個條件:1)θ7<θ6;2)節(jié)點P6的鄰居節(jié)點中不存在夾角比θ7大、比θ6小的鄰居節(jié)點。
假定攻擊者位于距離基站較近的位置,以捕獲基站虛擬環(huán)內(nèi)數(shù)據(jù)包為例進行分析。根據(jù)攻擊者的位置不同,攻擊者監(jiān)測區(qū)域與基站虛擬環(huán)存在相離、相交和相容三種情況。由于攻擊者監(jiān)測區(qū)與基站虛擬環(huán)相離時無重合空間,虛擬環(huán)無法實現(xiàn)對數(shù)據(jù)包的保護,因此不進行分析。下面對攻擊者監(jiān)測區(qū)域與基站虛擬環(huán)相交和相容時攻擊者捕獲數(shù)據(jù)包概率進行分析。
當(dāng)攻擊者監(jiān)測區(qū)與基站虛擬環(huán)相交時,攻擊者與虛擬環(huán)的位置關(guān)系有:攻擊者在基站虛擬環(huán)外部(相交)和攻擊者在基站虛擬環(huán)內(nèi)部(相含)兩種。攻擊者與虛擬環(huán)的位置關(guān)系只影響攻擊者監(jiān)測區(qū)與虛擬環(huán)的重合面積,因此僅對攻擊者與虛擬環(huán)位置關(guān)系不同時的重合面積計算方式進行分開討論。
假定攻擊者與虛擬環(huán)位置關(guān)系如圖7所示,設(shè)A為攻擊者,基站虛擬環(huán)為C1,攻擊者監(jiān)測區(qū)為C2。其中C1的半徑為R,面積為SR,C2半徑為r,面積為Sr。設(shè)源節(jié)點虛擬環(huán)Cmax的半徑為rmax,面積為Smax。攻擊者監(jiān)測區(qū)與基站虛擬環(huán)相交時,用dAB來表示攻擊者到基站的距離,dAB不同時攻擊者在虛擬環(huán)內(nèi)的監(jiān)聽區(qū)域不同,捕捉數(shù)據(jù)包的概率也不同。設(shè)dAB取某一固定值時攻擊者捕捉數(shù)據(jù)包的概率為Pb,則攻擊者在基站虛擬環(huán)內(nèi)捕捉數(shù)據(jù)包的概率PB可以用dAB取不同值時Pb的均值表示。同理設(shè)dAS為攻擊者到源節(jié)點的距離,dAS取某一固定值時攻擊者捕捉數(shù)據(jù)包概率為Ps,則攻擊者在源節(jié)點虛擬環(huán)區(qū)內(nèi)捕捉數(shù)據(jù)包的概率PS可以用dAS取不同值時Ps的均值表示。
S=S1+S2-S3.
(4)
圖7 攻擊者-虛擬環(huán)相交模型
圖8 攻擊者-虛擬環(huán)相含模型
(5)
在基站虛擬環(huán)內(nèi)數(shù)據(jù)包采用定向隨機步策略轉(zhuǎn)發(fā),當(dāng)數(shù)據(jù)包進入基站虛擬環(huán)內(nèi)時會進行分流,后一次轉(zhuǎn)發(fā)至基站幻影節(jié)點的數(shù)據(jù)包,與前一次轉(zhuǎn)發(fā)至基站幻影節(jié)點的數(shù)據(jù)包,在基站虛擬環(huán)內(nèi)的路由方向相反,攻擊者很難捕捉兩個方向上的數(shù)據(jù)包,因此需要對前后兩次數(shù)據(jù)包的捕捉概率取平均值,則攻擊者對基站虛擬環(huán)范圍內(nèi)數(shù)據(jù)包的捕獲概率可以表示為
(6)
同理,當(dāng)攻擊者與源節(jié)點虛擬環(huán)相交時,攻擊者捕捉數(shù)據(jù)包的概率為
(7)
則此時攻擊者對源節(jié)點虛擬環(huán)區(qū)范圍內(nèi)數(shù)據(jù)包的捕獲概率可以表示為
(8)
攻擊者-虛擬環(huán)相容模型如圖9所示,攻擊者監(jiān)測區(qū)與虛擬環(huán)相容,即攻擊者檢測區(qū)C2在虛擬環(huán)C內(nèi)部,此時攻擊者捕捉數(shù)據(jù)包的概率與距離dAB無關(guān)。
圖9 攻擊者-虛擬環(huán)相容模型
攻擊者在基站虛擬環(huán)內(nèi)捕捉數(shù)據(jù)包的概率:
(9)
由于源節(jié)點虛擬環(huán)內(nèi)部存在源節(jié)點可視區(qū),隨著攻擊者的反向追蹤,當(dāng)攻擊者監(jiān)測區(qū)與源節(jié)點可視區(qū)相交時,攻擊者捕捉數(shù)據(jù)包的概率會發(fā)生變化。此時攻擊者捕捉數(shù)據(jù)包的概率需要根據(jù)攻擊者監(jiān)測區(qū)與源節(jié)點可視區(qū)的位置情況考慮。攻擊者監(jiān)測區(qū)與源節(jié)點可視區(qū)的位置情況分為相離(攻擊者可視區(qū)在源節(jié)點虛擬環(huán)內(nèi)部)與相交(攻擊者在可視區(qū)外部)兩種。
在源節(jié)點虛擬環(huán)內(nèi)部時,攻擊者監(jiān)測區(qū)與源節(jié)點可視區(qū)相離時捕捉源節(jié)點虛擬環(huán)范圍內(nèi)數(shù)據(jù)包的概率為
(10)
假定攻擊者與源節(jié)點可視區(qū)位置關(guān)系如圖7所示,此時攻擊者捕捉數(shù)據(jù)包的概率為
(11)
則攻擊者對源節(jié)點可視區(qū)內(nèi)數(shù)據(jù)包的捕獲概率可以表示為
(12)
隨著攻擊者對數(shù)據(jù)包的反向追蹤,當(dāng)攻擊者追蹤至攻擊者的可視區(qū)范圍內(nèi)時則表明源節(jié)點被發(fā)現(xiàn),無需再進行數(shù)據(jù)包追蹤。設(shè)攻擊者在捕獲源節(jié)點時在基站虛擬環(huán)范圍內(nèi)移動了i跳,在源節(jié)點虛擬環(huán)區(qū)內(nèi)移動了j跳,攻擊者捕獲源節(jié)點的概率可以用如下公式表示:
(13)
由上式可得,網(wǎng)絡(luò)中數(shù)據(jù)包在虛擬環(huán)內(nèi)轉(zhuǎn)發(fā)次數(shù)越多,攻擊者捕捉源節(jié)點概率越低,難度越大。
使用Matlab進行仿真實驗。為了更好地模擬自然狀態(tài)下節(jié)點的分布,先將6 000 m×6 000 m的區(qū)域均勻劃分成10 000個方格,將10 000個傳感器節(jié)點以一定的擾動值分布于10 000個方格內(nèi)。假設(shè)攻擊者的監(jiān)聽半徑r=100 m,源節(jié)點可視區(qū)半徑rmin=300 m。
SLPMVR算法中虛擬環(huán)半徑取值不同時,網(wǎng)絡(luò)中的通信開銷和網(wǎng)絡(luò)安全周期兩個性能指標(biāo)也不同。本文中通信開銷是指數(shù)據(jù)包從源節(jié)點轉(zhuǎn)發(fā)至基站經(jīng)歷的跳數(shù),安全周期是指源節(jié)點被攻擊者捕獲前發(fā)出數(shù)據(jù)包的個數(shù)。因此,需要選出網(wǎng)絡(luò)通信開銷在可接受范圍內(nèi)且網(wǎng)絡(luò)安全周期最高時的最優(yōu)虛擬環(huán)半徑。SLPMVR算法中的虛擬環(huán)分為基站虛擬環(huán)和源節(jié)點虛擬環(huán)。雖然兩種虛擬環(huán)保護機制存在部分差異,但是源節(jié)點虛擬環(huán)和基站虛擬環(huán)對攻擊者防御原理相同,所以本算法中兩種虛擬環(huán)的最優(yōu)虛擬環(huán)半徑相同。由于源節(jié)點虛擬環(huán)和基站虛擬環(huán)在算法中分開進行,當(dāng)源節(jié)點距離基站較遠時,源節(jié)點虛擬環(huán)與基站虛擬環(huán)相離,此時源節(jié)點虛擬環(huán)對基站虛擬環(huán)造成的影響較小。在進行實驗時,假定源節(jié)點虛擬環(huán)半徑為可視區(qū)半徑的兩倍,分析基站虛擬環(huán)半徑R分別為400 m、500 m、600 m、700 m時的通信開銷和網(wǎng)絡(luò)安全周期,選出通信開銷在可接受范圍內(nèi)的最優(yōu)基站虛擬環(huán)半徑。圖10是基站虛擬環(huán)半徑R取值不同時通信開銷變化示意圖,圖11是基站虛擬環(huán)半徑R取值不同時的網(wǎng)絡(luò)安全周期變化示意圖。
圖10 不同半徑通信開銷對比
圖11 不同半徑安全周期對比
由圖10和圖11可知,當(dāng)基站虛擬環(huán)半徑R<600 m時,隨著基站虛擬環(huán)半徑的增大,網(wǎng)絡(luò)安全周期顯著提升,在虛擬環(huán)半徑處于400 m至500 m之間時安全周期漲幅較大,但安全周期較低;當(dāng)基站虛擬環(huán)半徑R>600 m時,基站虛擬環(huán)內(nèi)節(jié)點數(shù)目過多,基站幻影節(jié)點向基站路由階段轉(zhuǎn)發(fā)次數(shù)過多,通信開銷較大且安全周期漲幅較小??紤]到通信開銷和網(wǎng)絡(luò)安全周期兩種因素,當(dāng)基站虛擬環(huán)半徑R=500 m時在45跳時通信開銷為95,網(wǎng)絡(luò)安全周期為720,網(wǎng)絡(luò)安全周期較低;當(dāng)基站虛擬環(huán)半徑R=700 m時在45跳時通信開銷為155,網(wǎng)絡(luò)安全周期為880,相比于基站虛擬環(huán)半徑R=600 m時通信開銷和安全周期分別增長了34%和1%,與通信開銷增幅相比網(wǎng)絡(luò)安全周期的增長幅度較小。與基站虛擬環(huán)半徑R=700 m時相比,基站虛擬環(huán)半徑R=600 m時通信開銷在可以接受的范圍內(nèi)取得最高網(wǎng)絡(luò)安全周期。由此可知,在通信開銷可以接受的情況下,虛擬環(huán)半徑R=600 m時,虛擬環(huán)對源節(jié)點隱私保護能力較強。
進行對比實驗,將本文實驗分成10組,每組隨機選取1 000個節(jié)點,統(tǒng)計所有源節(jié)點發(fā)出的數(shù)據(jù)包從源節(jié)點到基站轉(zhuǎn)發(fā)跳數(shù)的平均值為衡量指標(biāo),選擇基于隨機虛擬環(huán)的隱私保護算法(SLPMVR)和基于環(huán)路由的源位置隱私保護算法[22](A source location privacy protection scheme based on ring-loop routing for the IoT,APS)作為實驗比較對象。在進行對比實驗時,SLPMVR算法的兩個幻影節(jié)點選擇區(qū)域半徑均為600 m,APS算法的幻影節(jié)點區(qū)域半徑為200 m。通信開銷如圖12所示。
由圖12可知,SLPMVR算法和ABRVR算法的通信開銷遠大于APS算法,這是因為SLPMVR算法和ABRVR算法通過不同方式進行了基站虛擬環(huán)的環(huán)內(nèi)多跳路由,增加了通信開銷。源節(jié)點距離基站較近時,SLPMVR算法相比于ABRVR算法通信開銷增加了5%,但是大于APS算法,因為與采用單個幻影節(jié)點的算法不同,SLPMVR算法通過不同的選擇機制選擇出源幻影節(jié)點和基站幻影節(jié)點來實現(xiàn)對源節(jié)點位置的隱私保護,并且在數(shù)據(jù)包轉(zhuǎn)發(fā)至基站的過程中,SLPMVR算法先后采用了概率路由機制和環(huán)內(nèi)定向隨機步機制,通過對數(shù)據(jù)包進行分流,產(chǎn)生更多的路由路徑,因此會產(chǎn)生額外的通信開銷。
同時由圖12表明,當(dāng)源節(jié)點在基站虛擬環(huán)內(nèi)時,由于此時源節(jié)點處于基站虛擬環(huán)內(nèi)部,源幻影節(jié)點向基站幻影節(jié)點路由階段的篩選機制跳過概率路由機制的冗余轉(zhuǎn)發(fā),因此通信開銷較小;源節(jié)點距離基站虛擬環(huán)越遠,在源幻影節(jié)點路由階段概率路由轉(zhuǎn)發(fā)所需跳數(shù)越大,網(wǎng)絡(luò)的通信開銷也越大。
圖12 不同算法通信開銷對比
圖13 不同算法安全周期對比
在對算法的網(wǎng)絡(luò)安全周期仿真實驗中,進行10輪實驗,每一輪實驗抽取100個傳感器節(jié)點,每個節(jié)點分別向基站發(fā)送1 000個數(shù)據(jù)包,最后統(tǒng)計源節(jié)點被捕獲時已發(fā)送數(shù)據(jù)包個數(shù)的平均值,安全周期如圖13所示。
由圖13可知,隨著源節(jié)點到基站的跳數(shù)增加,APS算法和SLPMVR算法的安全周期都相應(yīng)增長。因為隨著源節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包至基站所需跳數(shù)增加,產(chǎn)生的幻影節(jié)點距離基站越遠,攻擊者發(fā)現(xiàn)源節(jié)點所需時間也越長;而ABRVR算法更傾向于保護距離基站較近的源節(jié)點,因此當(dāng)源節(jié)點距離基站較近時,源節(jié)點會將數(shù)據(jù)包通過最短路由轉(zhuǎn)發(fā)給基站虛擬環(huán)上的基站幻影節(jié)點,增加額外的傳輸跳數(shù),提高了網(wǎng)絡(luò)安全周期。當(dāng)源節(jié)點距離基站較遠時,APS算法和ABRVR算法均采用最短路由的方式轉(zhuǎn)發(fā)數(shù)據(jù)包,存在重合路徑的風(fēng)險,無法很好地實現(xiàn)對源節(jié)點位置的隱私保護。當(dāng)跳數(shù)H=45時,SLPMVR算法的安全周期為890,相比于APS算法和ABRVR算法的安全周期750和780,分別提升了16.4%和14.1%。與APS算法和ABRVR算法相比,SLPMVR算法不僅保證了源幻影節(jié)點均勻分布,而且在源幻影節(jié)點路由階段通過概率路由的方式轉(zhuǎn)發(fā)數(shù)據(jù)包,避免了重合路由的風(fēng)險,提供了更多的路由傳輸路徑。數(shù)據(jù)包轉(zhuǎn)發(fā)至基站幻影節(jié)點后,基站幻影節(jié)點會對數(shù)據(jù)包進行分流,后一次轉(zhuǎn)發(fā)至基站幻影節(jié)點的數(shù)據(jù)包在基站虛擬環(huán)內(nèi)的路由方向與前一次轉(zhuǎn)發(fā)至基站幻影節(jié)點數(shù)據(jù)包相反。因此攻擊者很難在基站虛擬環(huán)內(nèi)連續(xù)捕捉前后兩次向不同方向路由的數(shù)據(jù)包,即使攻擊者在基站虛擬環(huán)內(nèi)抓捕到另一個方向的數(shù)據(jù)包,攻擊者開始向另一個方向的數(shù)據(jù)包進行追蹤時,需要對新方向上的數(shù)據(jù)包進行追蹤,攻擊者在之前花費的時間被浪費,因此攻擊者需要花費更多的時間對基站虛擬環(huán)內(nèi)的數(shù)據(jù)包進行追蹤,實現(xiàn)阻礙攻擊者反向追蹤的目的。
由圖13可知,當(dāng)源節(jié)點距離基站較近時,SLPMVR算法安全周期較低。當(dāng)源節(jié)點距離基站較近時,源節(jié)點在基站虛擬環(huán)內(nèi),此時算法通過源節(jié)點向源幻影節(jié)點路由階段和基站幻影節(jié)點路由階段保護源節(jié)點位置隱私,而攻擊者在基站附近很容易在數(shù)據(jù)包到達基站前捕捉數(shù)據(jù)包,因此網(wǎng)絡(luò)安全周期較低;當(dāng)源節(jié)點距離基站較遠時,源節(jié)點產(chǎn)生的源幻影節(jié)點距離基站虛擬環(huán)較遠,此時源幻影節(jié)點通過概率路由的方式轉(zhuǎn)發(fā)數(shù)據(jù)包,提高了傳輸路徑的隨機性與多樣性,增加了攻擊者捕獲數(shù)據(jù)包的難度,獲得較好的隱私保護性能,而且源幻影節(jié)點距離基站越遠,通過概率路由產(chǎn)生的傳輸路徑越多,網(wǎng)絡(luò)的隱私保護能力越強。
本文提出的基于多虛擬環(huán)的源位置隱私保護算法(SLPMVR)可以防止攻擊者通過數(shù)據(jù)包追蹤發(fā)現(xiàn)源節(jié)點的位置,通過布置在源節(jié)點周圍的虛擬環(huán)選擇源幻影節(jié)點,對源幻影節(jié)點采用基于角度的概率路由將數(shù)據(jù)包轉(zhuǎn)發(fā)至選定的基站幻影節(jié)點,基站幻影節(jié)點通過定向隨機步策略將數(shù)據(jù)包隨機步數(shù)轉(zhuǎn)發(fā)后,再通過最短路由的方式將數(shù)據(jù)包轉(zhuǎn)發(fā)至基站。實驗結(jié)果表明,本文提出的SLPMVR算法不僅會阻礙和干擾攻擊者的回溯追蹤,而且能使數(shù)據(jù)包轉(zhuǎn)發(fā)的路徑具有多樣性,總體上提高了網(wǎng)絡(luò)的安全周期,實現(xiàn)了對源節(jié)點位置的隱私保護,有很好的隱私保護能力。本文僅針對能力較弱的局部攻擊者進行研究,下一步將針對能力更強的全局攻擊者進行研究,提高源節(jié)點位置隱私的保護強度。