陳向益,王良民,詹永照
(江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212013)
無(wú)線傳感器網(wǎng)絡(luò)(WSN, wireless sensor network)節(jié)點(diǎn)通常部署在無(wú)人照看的環(huán)境中,通過自組織的方式形成網(wǎng)絡(luò)進(jìn)行環(huán)境監(jiān)測(cè)、敵情勘察等重要工作。由于WSN的無(wú)人照看的特性使得無(wú)線傳感器網(wǎng)絡(luò)特別容易遭受各種攻擊,而來自于WSN內(nèi)部的安全威脅[1]嚴(yán)重影響了WSN的正常運(yùn)轉(zhuǎn)。
在這些內(nèi)部攻擊中,復(fù)件攻擊是一種較為隱蔽的潛在的安全威脅,指的是攻擊者通過物理俘獲無(wú)線傳感器網(wǎng)絡(luò)內(nèi)部的合法節(jié)點(diǎn),破解而獲得節(jié)點(diǎn)的身份ID、密鑰等重要信息,接著克隆出使用同樣身份ID和密鑰等信息的復(fù)件節(jié)點(diǎn),偷偷地將這些復(fù)件節(jié)點(diǎn)部署在網(wǎng)絡(luò)中,隨后利用這些復(fù)件節(jié)點(diǎn)發(fā)起諸如數(shù)據(jù)注入、選擇性轉(zhuǎn)發(fā)、制造路由環(huán)路甚至拓?fù)浞指畹葠毫拥墓艋顒?dòng)。如圖1所示,黑色節(jié)點(diǎn)代表正常節(jié)點(diǎn),自組織地形成了網(wǎng)絡(luò),攻擊者俘獲了的節(jié)點(diǎn)用灰色表示,白色的節(jié)點(diǎn)代表攻擊者克隆并部署的復(fù)件節(jié)點(diǎn)。
由于復(fù)件節(jié)點(diǎn)對(duì)無(wú)線傳感器網(wǎng)絡(luò)的正常運(yùn)行構(gòu)成了嚴(yán)重的潛在安全威脅,因此,復(fù)件節(jié)點(diǎn)的檢測(cè)和撤銷成為無(wú)線傳感器網(wǎng)絡(luò)安全的一個(gè)重要研究?jī)?nèi)容[1]。好的檢測(cè)方案要求檢測(cè)率高、誤檢率低、檢測(cè)方案造成的計(jì)算、存儲(chǔ)和通信開銷低,并且要求檢測(cè)開銷要能夠在網(wǎng)內(nèi)節(jié)點(diǎn)間均衡不致于使得個(gè)別節(jié)點(diǎn)過早能量耗盡而死亡。
圖1 基于移動(dòng)sink的復(fù)件節(jié)點(diǎn)檢測(cè)方案
現(xiàn)有的復(fù)件節(jié)點(diǎn)的檢測(cè)方案可以分為中心式檢測(cè)[2]、局部檢測(cè)[3~5]和廣播檢測(cè)[6]。中心式檢測(cè)方案[2]采用所有的節(jié)點(diǎn)將自己的鄰居節(jié)點(diǎn)列表上傳到中心基站進(jìn)行節(jié)點(diǎn)ID的比對(duì)和判斷,這種方案較為有效,能夠檢測(cè)出網(wǎng)內(nèi)所有的復(fù)件節(jié)點(diǎn),但是中心基站的模式存在能耗嚴(yán)重不均的問題,越靠近基站的節(jié)點(diǎn)能量消耗越高,容易能量過早耗盡而死亡;局部檢測(cè)方案[3~5]采用本地節(jié)點(diǎn)間的投票來檢測(cè)出復(fù)件節(jié)點(diǎn),能夠有效地檢測(cè)出本地復(fù)件節(jié)點(diǎn),缺點(diǎn)是不能檢測(cè)到分散距離較遠(yuǎn)的復(fù)件節(jié)點(diǎn);廣播式的檢測(cè)方案[6]讓所有節(jié)點(diǎn)廣播自己ID和所在位置的聲明消息,那些收到同個(gè)ID在不同位置的證人節(jié)點(diǎn)就成功檢測(cè)到復(fù)件節(jié)點(diǎn),然后向網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)廣播撤銷該ID所對(duì)應(yīng)節(jié)點(diǎn)的消息,該方案能夠有效地進(jìn)行分布式地檢測(cè),主要缺點(diǎn)是每個(gè)節(jié)點(diǎn)都要進(jìn)行聲明消息的廣播,并且要存儲(chǔ)和比較收到的其他節(jié)點(diǎn)的聲明消息,存儲(chǔ)和通信開銷較大。
在廣播式方案的基礎(chǔ)上,為降低檢測(cè)開銷,相應(yīng)的改進(jìn)方案[6~8]被提出。其中,文獻(xiàn)[6]提出了RM和LSM方案,RM方案中,節(jié)點(diǎn)將使用基于身份的公鑰機(jī)制簽名的身份和位置綁定的聲明信息廣播給自己的鄰居節(jié)點(diǎn),鄰居節(jié)點(diǎn)再以一定的概率將該聲明消息發(fā)送到隨機(jī)選擇的網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)進(jìn)行見證,按照生日悖論,相同ID的節(jié)點(diǎn)將以較大的概率擁有相同的證人節(jié)點(diǎn),從而被證人節(jié)點(diǎn)檢測(cè)到;為了進(jìn)一步提高RM方案的檢測(cè)概率,LSM方案讓轉(zhuǎn)發(fā)聲明消息的路徑上的節(jié)點(diǎn)也存儲(chǔ)和比較聲明消息,從而一個(gè)聲明消息從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)形成了由線段形成的驗(yàn)證線,而相同ID節(jié)點(diǎn)的驗(yàn)證線將有較大的概率相交于網(wǎng)絡(luò)內(nèi)的某些節(jié)點(diǎn),從而這些節(jié)點(diǎn)成為證人節(jié)點(diǎn),檢測(cè)到復(fù)件節(jié)點(diǎn)并發(fā)起撤銷過程,LSM方案相對(duì)RM方案提高了檢測(cè)率,但也增加了節(jié)點(diǎn)的存儲(chǔ)開銷,同時(shí)也存在驗(yàn)證現(xiàn)在網(wǎng)絡(luò)中心交叉概率大的中心擁擠問題。文獻(xiàn)[7]針對(duì)LSM檢測(cè)方案存在的中心擁擠問題提出了RED檢測(cè)方案,提出使用一個(gè)全網(wǎng)共享并更新的隨機(jī)數(shù)種子,使得復(fù)件節(jié)點(diǎn)和變節(jié)節(jié)點(diǎn)通過相同的偽隨機(jī)函數(shù)計(jì)算得到同樣的位置聲明消息發(fā)送的目的地節(jié)點(diǎn),從而被這些證人節(jié)點(diǎn)檢測(cè)到,但是該方案要實(shí)現(xiàn)隨機(jī)數(shù)種子的全網(wǎng)共享和更新,多數(shù)情況下不易實(shí)現(xiàn)。文獻(xiàn)[8]則在概率選取的基礎(chǔ)上,利用群部署(group deployment)的先驗(yàn)知識(shí)進(jìn)一步降低安全代價(jià)并提高檢測(cè)率??傊@些檢測(cè)方案的成功率和精度依賴于生日悖論和隨機(jī)概率,檢測(cè)的開銷依然較大。
在無(wú)線傳感器網(wǎng)絡(luò)的推廣應(yīng)用過程中,移動(dòng)節(jié)點(diǎn)的出現(xiàn)則擴(kuò)充了無(wú)線傳感器網(wǎng)絡(luò)的使用范圍。文獻(xiàn)[9]研究了由移動(dòng)節(jié)點(diǎn)組成的WSN的復(fù)件節(jié)點(diǎn)攻擊檢測(cè)方法,提出使用SQRT方法,以移動(dòng)節(jié)點(diǎn)的移動(dòng)速度不能超過系統(tǒng)設(shè)置的最大值為標(biāo)準(zhǔn)進(jìn)行檢測(cè),但是僅適用于由移動(dòng)節(jié)點(diǎn)構(gòu)成的無(wú)線傳感器網(wǎng)絡(luò)。文獻(xiàn)[10]借用節(jié)點(diǎn)移動(dòng)的思想到靜態(tài)傳感器網(wǎng)絡(luò),提出使用移動(dòng)Patroller作為檢測(cè)者,進(jìn)行網(wǎng)絡(luò)復(fù)件節(jié)點(diǎn)的檢測(cè),能夠有效地檢測(cè)出網(wǎng)絡(luò)的復(fù)件節(jié)點(diǎn),通過使用移動(dòng)Patroller降低了網(wǎng)絡(luò)內(nèi)部靜態(tài)節(jié)點(diǎn)的能耗,能夠有效地延長(zhǎng)網(wǎng)絡(luò)的壽命,但是,方案中靜態(tài)節(jié)點(diǎn)仍舊需要執(zhí)行節(jié)點(diǎn)定位算法和時(shí)間同步算法從而增加了節(jié)點(diǎn)的計(jì)算和通信開銷。復(fù)件節(jié)點(diǎn)的檢測(cè)問題遠(yuǎn)沒有有效地解決,仍舊是一個(gè)需要繼續(xù)深入研究的開放性問題。
受移動(dòng)節(jié)點(diǎn)這一思想的啟發(fā),本文設(shè)計(jì)了使用移動(dòng)sink來進(jìn)行復(fù)件節(jié)點(diǎn)檢測(cè)的方法,不需要使用節(jié)點(diǎn)定位機(jī)制和節(jié)點(diǎn)間的時(shí)間同步算法,通過移動(dòng)sink在網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)收集和巡視,來檢測(cè)網(wǎng)絡(luò)中的復(fù)件節(jié)點(diǎn)。本文后續(xù)內(nèi)容組織如下:第2節(jié)給出網(wǎng)絡(luò)和攻擊者的模型;第3節(jié)提出基于移動(dòng)sink的復(fù)件節(jié)點(diǎn)檢測(cè)和撤銷方案;第4節(jié)針對(duì)提出的協(xié)議進(jìn)行分析并給出仿真實(shí)驗(yàn)結(jié)果;第5節(jié)對(duì)本方案和現(xiàn)有的相關(guān)方案進(jìn)行比較;第6節(jié)對(duì)文中的提出的方案進(jìn)行總結(jié)。
假設(shè)無(wú)線傳感器網(wǎng)絡(luò)WSN由靜態(tài)傳感器節(jié)點(diǎn)和一個(gè)移動(dòng)sink組成,移動(dòng)sink在網(wǎng)絡(luò)部署區(qū)域移動(dòng)巡視,假設(shè)移動(dòng)sink是可信的管理者,計(jì)算、存儲(chǔ)、通信能力較強(qiáng),能量充足。另外,假設(shè)網(wǎng)絡(luò)中的所有的通信是雙向的,這也是多數(shù)復(fù)件檢測(cè)方案的假設(shè)。
移動(dòng)sink熟悉網(wǎng)絡(luò)的拓?fù)浜凸?jié)點(diǎn)部署的大致地理位置,并且移動(dòng)sink帶有定位裝置(如GPS設(shè)備)知道自身當(dāng)前的地理位置,靜態(tài)傳感器節(jié)點(diǎn)不需要知道自己的位置信息。
網(wǎng)絡(luò)中移動(dòng)sink和靜態(tài)節(jié)點(diǎn)之間的通信采用基于身份的公鑰方案(ID-based public key schema)進(jìn)行加密和簽名,類似于文獻(xiàn)[6~10],只有節(jié)點(diǎn)知道自己的私鑰,節(jié)點(diǎn)的私鑰由網(wǎng)絡(luò)部署者采用秘密的信息和節(jié)點(diǎn)的ID通過計(jì)算得到,而這個(gè)秘密的信息不存儲(chǔ)在節(jié)點(diǎn)中,因此攻擊者不可能獲得這個(gè)秘密。節(jié)點(diǎn)的公鑰由它的身份標(biāo)識(shí)ID通過函數(shù)f(ID)計(jì)算得到,節(jié)點(diǎn)不需要存儲(chǔ)對(duì)方的公鑰或者證書信息。表1列出了本文提出的方案描述中使用到的相關(guān)的符號(hào)和對(duì)應(yīng)的含義。
表1 文中使用到的符號(hào)和對(duì)應(yīng)的含義
攻擊者由于不可能獲得網(wǎng)絡(luò)部署者的秘密信息,不可能任意地創(chuàng)造節(jié)點(diǎn)的身份ID,除非通過物理俘獲已有的網(wǎng)絡(luò)內(nèi)靜態(tài)節(jié)點(diǎn)、破解從而獲得它的私鑰,這就限制了攻擊者只能通過變節(jié)節(jié)點(diǎn)而進(jìn)行克隆來制作復(fù)件節(jié)點(diǎn)。
在網(wǎng)絡(luò)部署之后,網(wǎng)絡(luò)部署者將網(wǎng)絡(luò)的部署區(qū)域按照移動(dòng)sink的通信覆蓋能力分割成一系列的子區(qū)域,使得每個(gè)子區(qū)域保證移動(dòng)sink的通信半徑能夠完全的覆蓋到,將這些子區(qū)域按照方便巡視的方式進(jìn)行編號(hào),移動(dòng)sink按照編號(hào)的順序依次巡視這些小區(qū)域,完成節(jié)點(diǎn)數(shù)據(jù)匯集和復(fù)件節(jié)點(diǎn)的檢測(cè)和撤銷過程,如圖1所示,細(xì)虛線表示區(qū)域劃分,粗虛曲線表示可能的巡視路徑。
移動(dòng)sink在WSN部署的區(qū)域中按照一定的周期進(jìn)行巡視,到達(dá)一個(gè)區(qū)域之后,進(jìn)行數(shù)據(jù)的收集、復(fù)件節(jié)點(diǎn)的檢測(cè),然后移動(dòng)進(jìn)入下一個(gè)區(qū)域,執(zhí)行同樣的工作,直到網(wǎng)絡(luò)的所有部署區(qū)域巡視結(jié)束,完成一個(gè)巡視周期。然后,移動(dòng)sink查看檢測(cè)到的復(fù)件節(jié)點(diǎn)表格,如果檢測(cè)到新的復(fù)件節(jié)點(diǎn),則向網(wǎng)絡(luò)廣播撤銷消息,之后進(jìn)入下一個(gè)巡視周期。
靜態(tài)節(jié)點(diǎn)的待巡視周期編號(hào)為iN,網(wǎng)絡(luò)初始部署之后,每個(gè)節(jié)點(diǎn)都將自己存儲(chǔ)的待巡視周期初始化為零,該編號(hào)在節(jié)點(diǎn)被巡視過之后加一表示等待下一個(gè)巡視周期;移動(dòng)sink也將巡視周期No初始化為零。在開始一個(gè)新的巡視周期的時(shí)候,移動(dòng)sink將該編號(hào)加一,表示開始一個(gè)新的巡視周期。
在本檢測(cè)方案中,移動(dòng)sink和傳感器網(wǎng)絡(luò)內(nèi)部節(jié)點(diǎn)間的通信交互的時(shí)間順序如圖2所示,移動(dòng)sink執(zhí)行如圖3所示的算法;無(wú)線傳感器網(wǎng)絡(luò)內(nèi)的靜態(tài)節(jié)點(diǎn)執(zhí)行如圖4所示的算法。
圖2 移動(dòng)sink和節(jié)點(diǎn)間的通信過程
圖3 移動(dòng)sink執(zhí)行的檢測(cè)算法
圖4 網(wǎng)內(nèi)靜態(tài)節(jié)點(diǎn)執(zhí)行的算法
第1步:移動(dòng)sink向所在的子區(qū)域內(nèi)廣播數(shù)據(jù)收集請(qǐng)求消息Message1,內(nèi)容如式(1)所示,
第2步:節(jié)點(diǎn)應(yīng)答移動(dòng)sink。
網(wǎng)絡(luò)內(nèi)處于移動(dòng)sink通信覆蓋區(qū)域的節(jié)點(diǎn)收到Message1之后,根據(jù)IDsink計(jì)算出移動(dòng)sink的公鑰,使用該公鑰驗(yàn)證簽名過的內(nèi)容得到IDsink,Req和No,對(duì)比IDsink,比對(duì)No和節(jié)點(diǎn)內(nèi)存儲(chǔ)的待巡視周期Ni,并據(jù)Req判斷是否是收集數(shù)據(jù)的請(qǐng)求,驗(yàn)證不通過則忽略該消息,否則構(gòu)造并向移動(dòng)sink發(fā)送應(yīng)答消息Message2,如式(2)所示。
Message2中包含節(jié)點(diǎn)自己的身份標(biāo)識(shí)IDi和節(jié)點(diǎn)私鑰簽名的內(nèi)容,將標(biāo)識(shí)再次包含進(jìn)去是為了給對(duì)方進(jìn)一步驗(yàn)證。
第3步:移動(dòng)sink發(fā)送對(duì)稱密鑰給“忠實(shí)”應(yīng)答的節(jié)點(diǎn)。
移動(dòng)sink收到消息Message2之后,首先根據(jù)IDi檢查已經(jīng)檢測(cè)到的復(fù)件節(jié)點(diǎn)列表ReplicaTable,如果該身份標(biāo)識(shí)已經(jīng)在該列表中,說明該身份ID對(duì)應(yīng)的節(jié)點(diǎn)是已知的復(fù)件節(jié)點(diǎn),則處理結(jié)束;否則,根據(jù)IDi計(jì)算得到節(jié)點(diǎn)Si的公鑰,驗(yàn)證簽名內(nèi)容,比對(duì)IDi確認(rèn)身份,比對(duì)Ni確認(rèn)巡視周期,驗(yàn)證通過,將Message2存儲(chǔ)起來以備撤銷時(shí)候使用。接著檢查本檢測(cè)周期中已經(jīng)巡視過的節(jié)點(diǎn)列表IDTable,如果該ID已經(jīng)在該列表中說明該節(jié)點(diǎn)是復(fù)件節(jié)點(diǎn),移動(dòng)sink一個(gè)巡視周期No內(nèi)收到2個(gè)來自同一個(gè)ID的Message2,則發(fā)現(xiàn)復(fù)件節(jié)點(diǎn),將該ID存儲(chǔ)到復(fù)件節(jié)點(diǎn)列表,并將矛盾的Message2作為證據(jù),在撤銷時(shí)使用。
對(duì)于正常應(yīng)答的節(jié)點(diǎn),在處理結(jié)束之后更新對(duì)稱密鑰RandNumNo給該IDi對(duì)應(yīng)的節(jié)點(diǎn),消息內(nèi)容如Message3所示,其中要更新的對(duì)稱密鑰RandNumNo使用節(jié)點(diǎn)的公鑰進(jìn)行加密,并隨同移動(dòng)sink的身份表示和巡視周期編號(hào)一起被移動(dòng)sink數(shù)字簽名,如式(3)所示。
為了防范復(fù)件節(jié)點(diǎn)在第2步不應(yīng)答移動(dòng)sink從而躲避檢查,移動(dòng)sink針對(duì)“忠實(shí)”應(yīng)答的節(jié)點(diǎn)的回復(fù)更新傳感器網(wǎng)絡(luò)內(nèi)靜態(tài)節(jié)點(diǎn)間通信使用的對(duì)稱密鑰RandNumNo,該對(duì)稱密鑰在每個(gè)巡視周期No由移動(dòng)sink進(jìn)行更新。通過該機(jī)制將使得復(fù)件節(jié)點(diǎn)除非在第2步進(jìn)行應(yīng)答,否則,將得不到移動(dòng)sink更新的對(duì)稱密鑰,從而不能參與后續(xù)的網(wǎng)絡(luò)內(nèi)活動(dòng)。
節(jié)點(diǎn)收到Message3之后,驗(yàn)證簽名并解密得到對(duì)稱密鑰RandNumNo,在網(wǎng)內(nèi)通信時(shí)用于消息的加密和解密。
移動(dòng)sink在一個(gè)子區(qū)域處理完畢,進(jìn)入下一個(gè)子區(qū)域執(zhí)行以上過程,直到網(wǎng)絡(luò)的所有子區(qū)域都處理完畢回到起點(diǎn),從而完成整個(gè)巡視周期。在一個(gè)巡視周期結(jié)束之后,如果復(fù)件節(jié)點(diǎn)列表為空,說明經(jīng)過檢測(cè)沒有發(fā)現(xiàn)復(fù)件節(jié)點(diǎn),則不需要執(zhí)行撤銷過程;如果復(fù)件節(jié)點(diǎn)列表非空,則說明檢測(cè)到了復(fù)件節(jié)點(diǎn),則隨之執(zhí)行3.3節(jié)的復(fù)件節(jié)點(diǎn)撤銷過程。
撤銷過程由2步構(gòu)成。
第1步:移動(dòng)sink向網(wǎng)絡(luò)中的節(jié)點(diǎn)廣播撤銷消息Message4,如式(4)所示。
Revoc是撤銷請(qǐng)求的命令,Evidence包含被撤銷的節(jié)點(diǎn)標(biāo)識(shí)iID和撤銷證據(jù)信息,內(nèi)容如式(5)所示。
Message2和Message2'是移動(dòng)sink在一個(gè)巡視周期No內(nèi)收到的身份標(biāo)識(shí)都是IDi的2條應(yīng)答消息,在此作為證據(jù),在撤銷消息中附帶,發(fā)送給網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行驗(yàn)證。
第2步:靜態(tài)節(jié)點(diǎn)收到撤銷消息之后將節(jié)點(diǎn)加入復(fù)件節(jié)點(diǎn)黑名單。
靜態(tài)節(jié)點(diǎn)在收到Message4之后,根據(jù)IDsink計(jì)算移動(dòng)sink公鑰,驗(yàn)證簽名內(nèi)容得到sinkID、No、Revoc和Evidence,比對(duì)身份標(biāo)識(shí)IDsink和巡視周期No,驗(yàn)證Revoc確認(rèn)是撤銷消息,這些驗(yàn)證任何一個(gè)沒有通過則忽略該消息。驗(yàn)證通過則查看證據(jù)Evidence的內(nèi)容,根據(jù)證據(jù)中的身份標(biāo)識(shí)IDi,首先檢查復(fù)件節(jié)點(diǎn)黑名單,如果該節(jié)點(diǎn)已經(jīng)在黑名單中,則結(jié)束處理;否則,依次驗(yàn)證證據(jù)消息Message2和Message2',驗(yàn)證通過則信任該證據(jù),將身份標(biāo)識(shí)IDi存入復(fù)件節(jié)點(diǎn)黑名單,拒絕該身份ID所對(duì)應(yīng)節(jié)點(diǎn)的所有通信。
4.1.1 漏檢
本方案中,通過引入移動(dòng)sink,使得網(wǎng)絡(luò)內(nèi)靜態(tài)節(jié)點(diǎn)獲得和移動(dòng)sink的直接通信機(jī)會(huì),而移動(dòng)sink在收集節(jié)點(diǎn)的傳感器數(shù)據(jù)的同時(shí)通過判別節(jié)點(diǎn)的ID來檢測(cè)復(fù)件節(jié)點(diǎn)。理論上只要復(fù)件節(jié)點(diǎn)應(yīng)答移動(dòng)sink的消息,則移動(dòng)sink最后將找到網(wǎng)絡(luò)內(nèi)的所有復(fù)件節(jié)點(diǎn)。由于一輪檢測(cè)周期中,每個(gè)ID對(duì)應(yīng)的節(jié)點(diǎn)只會(huì)發(fā)送一個(gè)消息給移動(dòng)sink,則重復(fù)ID的節(jié)點(diǎn)一定是復(fù)件節(jié)點(diǎn),使得本方案不存在漏檢的問題。
4.1.2 虛警
由于在移動(dòng)sink的檢測(cè)過程中,采用了數(shù)字簽名的方案,保證了消息的可信性;撤銷消息中采用節(jié)點(diǎn)簽過名的身份作為證據(jù),保證了撤銷過程的可信性;因而,網(wǎng)內(nèi)節(jié)點(diǎn)不會(huì)被錯(cuò)誤地檢測(cè)和撤銷掉,不存在虛警的問題。
4.1.3 檢測(cè)開銷的均衡
移動(dòng)sink在網(wǎng)絡(luò)內(nèi)巡視,將檢測(cè)過程的開銷平均分配到網(wǎng)絡(luò)中的節(jié)點(diǎn),實(shí)現(xiàn)了檢測(cè)開銷的均衡。
4.1.4 通信次數(shù)
在一個(gè)巡視周期中,如果沒有檢測(cè)到復(fù)件節(jié)點(diǎn),正常節(jié)點(diǎn)只需要接收2條移動(dòng)sink的消息,發(fā)送一條消息給移動(dòng)sink;如果檢測(cè)到復(fù)件節(jié)點(diǎn),則除了以上的開銷之外,還將接收移動(dòng)sink的一條撤銷消息。
4.1.5 計(jì)算開銷
1) 靜態(tài)節(jié)點(diǎn)計(jì)算開銷
網(wǎng)絡(luò)中不存在復(fù)件節(jié)點(diǎn)時(shí),在收到移動(dòng)sink的Message1后,驗(yàn)證簽名要用到公鑰算法,發(fā)送消息Message2給移動(dòng)sink時(shí),需要用公鑰算法進(jìn)行簽名,收到移動(dòng)sink發(fā)送的Message3時(shí),需要使用公鑰算法驗(yàn)證簽名、解密移動(dòng)sink更新的對(duì)稱密鑰,網(wǎng)絡(luò)內(nèi)的靜態(tài)傳感器節(jié)點(diǎn)需要執(zhí)行4次公鑰算法。
如果復(fù)件節(jié)點(diǎn)被移動(dòng)sink檢測(cè)到,在撤銷時(shí),需要執(zhí)行3次公鑰算法,一次是對(duì)撤銷消息的驗(yàn)證,另外2次用于檢驗(yàn)證據(jù)。
2) 移動(dòng)sink計(jì)算開銷
在一輪巡視周期中,移動(dòng)sink發(fā)送2個(gè)消息給節(jié)點(diǎn)要簽名兩次,從節(jié)點(diǎn)接收一個(gè)消息,要驗(yàn)證簽名一次,在傳送秘密給節(jié)點(diǎn)時(shí)要加密一次,對(duì)于一個(gè)區(qū)域中的節(jié)點(diǎn)要執(zhí)行一次公鑰算法,與網(wǎng)絡(luò)內(nèi)的每個(gè)節(jié)點(diǎn)通信總共需要執(zhí)行3次公鑰算法。對(duì)于存在撤銷消息的情況,發(fā)送撤銷消息將需要執(zhí)行一次公鑰簽名算法。
4.1.6 存儲(chǔ)開銷
1) 靜態(tài)節(jié)點(diǎn)存儲(chǔ)開銷
由于靜態(tài)節(jié)點(diǎn)不需要存儲(chǔ)檢測(cè)過程中其他節(jié)點(diǎn)的信息,只需要存儲(chǔ)待檢測(cè)周期,由ID計(jì)算公鑰的函數(shù),移動(dòng)sink更新的對(duì)稱密鑰,復(fù)件節(jié)點(diǎn)身份標(biāo)識(shí)黑名單等數(shù)據(jù),節(jié)點(diǎn)的存儲(chǔ)空間需求正比于復(fù)件節(jié)點(diǎn)的身份標(biāo)識(shí)ID的數(shù)目。
2) 移動(dòng)sink存儲(chǔ)開銷
移動(dòng)sink需要將每個(gè)節(jié)點(diǎn)的應(yīng)答Message2都存儲(chǔ)起來以便于比對(duì)以及作為撤銷時(shí)的證據(jù),所以存儲(chǔ)能力要求較高,跟網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)目n成線性關(guān)系。另外,移動(dòng)sink要存儲(chǔ)已經(jīng)檢測(cè)過的節(jié)點(diǎn)身份標(biāo)識(shí)列表,復(fù)件節(jié)點(diǎn)身份標(biāo)識(shí)列表信息。
為了檢驗(yàn)本文提出的基于移動(dòng)sink的檢測(cè)方案,在NS2仿真環(huán)境中進(jìn)行了大量的不同場(chǎng)景下的仿真實(shí)驗(yàn)。
仿真的設(shè)置為:場(chǎng)地為500m×500m的平面區(qū)域,即場(chǎng)地為二維平面坐標(biāo)XY中坐標(biāo)為(0,0),(0,499),(499,499),(499,0)4個(gè)頂點(diǎn)構(gòu)成的方形區(qū)域;無(wú)線通信節(jié)點(diǎn)物理層的射頻通信模型采用TwoWayGround,MAC層的協(xié)議采用IEEE 802.11,由于本文只考慮讓移動(dòng)sink和通信范圍內(nèi)的鄰居節(jié)點(diǎn)直接通信,不考慮路由,所以將路由協(xié)議設(shè)置為DumbAgent,即不帶路由功能;移動(dòng)sink的移動(dòng)路徑依次為位置坐標(biāo)(124,124),(124,374),(374,374),(374,124),這樣將方形區(qū)域劃分為大小相等的4個(gè)小方塊,這樣設(shè)計(jì)的依據(jù)是讓移動(dòng)sink的通信范圍能夠覆蓋到劃分的小區(qū)域,在仿真工具NS2中默認(rèn)的無(wú)線節(jié)點(diǎn)的通信半徑是250m,因此采用如上的子區(qū)域劃分能夠保證移動(dòng)sink對(duì)子區(qū)域完全的通信覆蓋。
1) 檢測(cè)結(jié)果以及節(jié)點(diǎn)數(shù)目對(duì)結(jié)果的影響
首先,為了檢驗(yàn)本文設(shè)計(jì)的方案的檢測(cè)結(jié)果,進(jìn)行了一個(gè)復(fù)件節(jié)點(diǎn)的檢測(cè)仿真。設(shè)定只有一個(gè)復(fù)件節(jié)點(diǎn),但是改變節(jié)點(diǎn)個(gè)數(shù)n,讓這n個(gè)節(jié)點(diǎn)被隨機(jī)撒播在場(chǎng)地中,隨機(jī)分布采用均一分布,檢查本協(xié)議在不同節(jié)點(diǎn)數(shù)目情況下對(duì)唯一一個(gè)復(fù)件節(jié)點(diǎn)的檢測(cè)結(jié)果。仿真的結(jié)果顯示,在存在一個(gè)復(fù)件節(jié)點(diǎn)的情況下,本文提出的協(xié)議能夠成功地檢測(cè)到該復(fù)件節(jié)點(diǎn),檢測(cè)所需要的時(shí)間以巡視輪數(shù)來衡量的話,該時(shí)間隨著場(chǎng)地內(nèi)節(jié)點(diǎn)的數(shù)目增多而延長(zhǎng),圖5是依據(jù)仿真結(jié)果而繪制的曲線。
圖5 節(jié)點(diǎn)數(shù)目對(duì)檢測(cè)的影響(存在1個(gè)復(fù)制節(jié)點(diǎn)的檢測(cè)場(chǎng)景)
仿真實(shí)驗(yàn)中,節(jié)點(diǎn)數(shù)目分別設(shè)置為50、100、150、200、250、300、350、400、450、500,為了消除節(jié)點(diǎn)隨機(jī)分布對(duì)檢測(cè)結(jié)果的影響,針對(duì)每個(gè)節(jié)點(diǎn)數(shù)目進(jìn)行20次仿真實(shí)驗(yàn)求出平均的結(jié)果。由圖5可見,隨著節(jié)點(diǎn)數(shù)目的增加,檢測(cè)該復(fù)件節(jié)點(diǎn)所需要的時(shí)間也隨之增加,但該復(fù)件節(jié)點(diǎn)總能被本文提出的協(xié)議所檢測(cè)到,時(shí)間的變化是由于節(jié)點(diǎn)數(shù)目增加之后,場(chǎng)地內(nèi)節(jié)點(diǎn)的密度增大,無(wú)線通信的干擾也隨之增大,導(dǎo)致移動(dòng)sink和場(chǎng)地內(nèi)節(jié)點(diǎn)之間的通信成功率降低,從而使得移動(dòng)sink要通過多次巡視才能完成對(duì)網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)的遍歷訪問,并找到復(fù)件節(jié)點(diǎn),因此造成了檢測(cè)時(shí)間的增加。
從仿真結(jié)果看,實(shí)際的傳感器網(wǎng)絡(luò)在部署的時(shí)候,節(jié)點(diǎn)的密度對(duì)于檢測(cè)過程具有較大的影響,因?yàn)楸緳z測(cè)協(xié)議在執(zhí)行過程中,要通過移動(dòng)sink廣播檢測(cè)請(qǐng)求信息,收到檢測(cè)請(qǐng)求的節(jié)點(diǎn)在進(jìn)行應(yīng)答的時(shí)候的隨機(jī)性使得通信沖突隨著節(jié)點(diǎn)的部署密度增加而增大。
2) 復(fù)件節(jié)點(diǎn)數(shù)目對(duì)檢測(cè)過程的影響
固定節(jié)點(diǎn)個(gè)數(shù),增加某個(gè)身份ID被復(fù)制的節(jié)點(diǎn)的數(shù)目,考察復(fù)件節(jié)點(diǎn)數(shù)目的改變對(duì)檢測(cè)過程和結(jié)果的影響。
實(shí)驗(yàn)中,固定節(jié)點(diǎn)數(shù)目n=500,將一個(gè)身份ID被復(fù)制多個(gè)復(fù)件隨機(jī)部署在網(wǎng)絡(luò)中,同樣進(jìn)行多次仿真實(shí)驗(yàn)求出平均的結(jié)果。如圖6所示是仿真結(jié)果,在節(jié)點(diǎn)數(shù)目固定之后,移動(dòng)sink巡視網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)所需要的總的時(shí)間基本固定,在被復(fù)制節(jié)點(diǎn)的數(shù)目增多后,移動(dòng)sink找到復(fù)件節(jié)點(diǎn)的機(jī)會(huì)也增大。檢測(cè)所需要的時(shí)間(以巡視輪數(shù)來表示)隨著復(fù)件節(jié)點(diǎn)的數(shù)目增加而減小,至少需要一輪的時(shí)間。
圖6 復(fù)件節(jié)點(diǎn)數(shù)目對(duì)檢測(cè)時(shí)間的影響
3) 檢測(cè)過程的通信開銷
為了分析檢測(cè)協(xié)議的檢測(cè)開銷,進(jìn)行如下的仿真實(shí)驗(yàn),固定節(jié)點(diǎn)數(shù)目為n=100、復(fù)件節(jié)點(diǎn)數(shù)目c固定為1。實(shí)驗(yàn)并分析為了檢測(cè)到該復(fù)件節(jié)點(diǎn)網(wǎng)絡(luò)內(nèi)每個(gè)靜態(tài)節(jié)點(diǎn)所需要的通信次數(shù),仿真的結(jié)果如圖7所示。從仿真結(jié)果分析,為了找到該復(fù)件節(jié)點(diǎn),移動(dòng)sink需要在網(wǎng)絡(luò)的部署區(qū)域巡視大約兩輪,在這兩輪的巡視中網(wǎng)絡(luò)內(nèi)的靜態(tài)節(jié)點(diǎn)需要平均發(fā)送1.9個(gè)數(shù)據(jù)分組給移動(dòng)sink,而平均需要從移動(dòng)sink接收6.17個(gè)數(shù)據(jù)分組,平均總共需要8.07個(gè)數(shù)據(jù)分組與移動(dòng)sink的收發(fā)。該結(jié)果包含了由于節(jié)點(diǎn)間的通信沖突而導(dǎo)致的數(shù)據(jù)分組重傳的因素影響。這個(gè)結(jié)果與理論分析也是吻合的,因?yàn)閺睦碚摲治鰜砜?,本文提出的檢測(cè)協(xié)議中,一輪檢測(cè)過程,網(wǎng)絡(luò)內(nèi)每個(gè)靜態(tài)節(jié)點(diǎn)需要從移動(dòng)sink接收2個(gè)數(shù)據(jù)分組,靜態(tài)節(jié)點(diǎn)需要發(fā)送1個(gè)數(shù)據(jù)分組給移動(dòng)sink,總共需要3個(gè)數(shù)據(jù)分組的通信過程。實(shí)際仿真的結(jié)果分析是由于執(zhí)行兩輪的檢測(cè)才能遍歷完整個(gè)網(wǎng)絡(luò)內(nèi)的所有靜態(tài)節(jié)點(diǎn),并包含了重傳的因素。
圖7 網(wǎng)內(nèi)節(jié)點(diǎn)的通信開銷
從以上的仿真結(jié)果來看,在不限制仿真時(shí)間的情況下,本文提出的檢測(cè)協(xié)議能夠有效地檢測(cè)到網(wǎng)絡(luò)內(nèi)的復(fù)件節(jié)點(diǎn),不存在誤檢和漏檢的情況,并且當(dāng)同一個(gè)身份ID的復(fù)件節(jié)點(diǎn)增加的情況下,檢測(cè)出復(fù)件節(jié)點(diǎn)所需要的時(shí)間極大地降低;當(dāng)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)的數(shù)目增加從而使得節(jié)點(diǎn)的密度增大之后,節(jié)點(diǎn)之間的通信沖突增加從而導(dǎo)致較多的數(shù)據(jù)分組丟失和重傳,使得仿真實(shí)驗(yàn)時(shí)檢測(cè)出復(fù)件節(jié)點(diǎn)的時(shí)間相應(yīng)地延長(zhǎng),通信的開銷也相應(yīng)地由于分組丟失和重傳而增加,這也說明本方案不太適用于節(jié)點(diǎn)稠密的傳感器網(wǎng)絡(luò)部署環(huán)境。通常的實(shí)際應(yīng)用環(huán)境中,基于成本的考慮,環(huán)境中節(jié)點(diǎn)的部署不會(huì)采用非常稠密的方式,所以本文提出的檢測(cè)方案能夠應(yīng)用于多數(shù)實(shí)際的傳感器網(wǎng)絡(luò)。從通信的開銷來看,本文提出的協(xié)議與理論分析的通信開銷是基本吻合,但是由于通信沖突的原因稍高于理論分析值。
本文提出使用移動(dòng)sink檢測(cè)和撤銷方案,通過移動(dòng)sink在網(wǎng)絡(luò)中收集數(shù)據(jù)來判斷復(fù)件節(jié)點(diǎn),與現(xiàn)有的復(fù)件節(jié)點(diǎn)檢測(cè)方案相比,節(jié)點(diǎn)不需要使用定位裝置或者定位算法,并且不需要節(jié)點(diǎn)間的時(shí)間同步,降低了執(zhí)行定位算法和時(shí)間同步算法的開銷。表2列出了本文的方案和現(xiàn)有的方案在檢測(cè)開銷上的比較,其中,c表示被復(fù)制的身份ID的數(shù)目。
表2 檢測(cè)開銷對(duì)比
移動(dòng)sink的巡視在網(wǎng)絡(luò)節(jié)點(diǎn)間均衡了檢測(cè)開銷。在每個(gè)巡視周期內(nèi),每個(gè)節(jié)點(diǎn)都會(huì)與移動(dòng)sink通信一次,保證了復(fù)件節(jié)點(diǎn)一定會(huì)被檢測(cè)到并撤銷掉,不存在誤檢和漏檢的問題,并且在撤銷的廣播消息中采用了節(jié)點(diǎn)簽過名的證據(jù),保證了撤銷過程的可信性。
與中心式檢測(cè)方案相比,本文中的基于移動(dòng)sink的方案,改善了中心式檢測(cè)方案存在的靠近中心基站的網(wǎng)絡(luò)節(jié)點(diǎn)能耗較大的問題,同時(shí)通過移動(dòng)sink主動(dòng)式的分區(qū)域的訪問,不會(huì)出現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)統(tǒng)一向中心基站匯報(bào)可能造成的擁塞問題。
與采用鄰居間投票表決的方案相比,本方案能夠檢測(cè)出全局復(fù)件節(jié)點(diǎn),即使復(fù)件節(jié)點(diǎn)不在共同的鄰居域中,仍然能夠被有效地檢測(cè)到。
本方案和采用廣播方式的檢測(cè)方案相比,網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)不需要周期性地向網(wǎng)絡(luò)中的證人節(jié)點(diǎn)發(fā)送消息,減少了檢測(cè)報(bào)文的轉(zhuǎn)發(fā)開銷,使得每個(gè)節(jié)點(diǎn)的檢測(cè)都不依賴于其他節(jié)點(diǎn),不會(huì)增加其他節(jié)點(diǎn)的開銷。
本文提出了一種基于移動(dòng)sink的復(fù)件節(jié)點(diǎn)檢測(cè)和撤銷方案,能夠有效地檢測(cè)和撤銷網(wǎng)絡(luò)中的復(fù)件節(jié)點(diǎn),與現(xiàn)有的檢測(cè)方案相比,檢測(cè)開銷較小并且檢測(cè)開銷在網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)間實(shí)現(xiàn)了均衡。通過大量的仿真實(shí)驗(yàn)進(jìn)一步驗(yàn)證了本方案的有效性。與現(xiàn)有的檢測(cè)方案相比,本方案不需要定位裝置或者算法;其次,本方案不需要執(zhí)行時(shí)間同步算法。而這兩項(xiàng)改進(jìn)能夠較大地降低節(jié)點(diǎn)的成本以及計(jì)算和通信方面的開銷,延長(zhǎng)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的壽命。本文提出的方案專注于復(fù)件攻擊的檢測(cè),主要考慮了網(wǎng)絡(luò)通信正常進(jìn)行情況下復(fù)件攻擊的檢測(cè),下一步的工作將從以下2個(gè)方面展開:首先,研究移動(dòng)sink更新網(wǎng)絡(luò)對(duì)稱密鑰存在的不同步問題,提出更加有效的網(wǎng)絡(luò)對(duì)稱密鑰的更新方法;其次,研究通信失效的情形對(duì)檢測(cè)協(xié)議和網(wǎng)絡(luò)造成的影響,并給出更為有效的解決方案降低這種影響。
[1] 王良民, 李菲, 熊書明等. 無(wú)線傳感器網(wǎng)絡(luò)內(nèi)部攻擊檢測(cè)方法研究[J]. 計(jì)算機(jī)科學(xué). 2011, 38(4):97-129.WANG L M, LI F, XIONG S M, etal. Research on detection methods for insidious attack of wireless sensor networks[J]. Computer Science.2011, 38(4):97-129.
[2] ESCHENAUER L, GLIGOR V D. A key-management scheme for distributed sensor networks[A]. Proceedings of the ACM Conference on Computer and Communication Security (CCS)[C]. Washington,USA, 2002. 41-47.
[3] CHAN H, PERRIG A, SONG D. Random key predistribution schemes for sensor networks[A]. Proceedings of IEEE Symposium on Security and Privacy[C]. Berkeley, USA, 2003. 197-213.
[4] DOUCEUR J. R. The sybil attack[A]. Proceedings of the 1st International Workshop on Peer-to-Peer Systems (IPTPS’01)[C]. London,UK, 2002. 251–260.
[5] NEWSOME J, SHI E, SONG D, etal. The sybil attack in sensor networks: analysis & defenses[A]. Proceedings of ACM IPSN’04[C].Berkeley, USA, 2004. 259-268.
[6] PARNO B, PERRIG A, GLIGOR V D. Distributed detection of node replication attacks in sensor networks[A]. Proceedings of 2005 IEEE Symposium on Security and Privacy (S&P ’05)[C]. Oakland, USA,2005. 49-63.
[7] CONTI M, PIETRO R, MANCINI L. A randomized, efficient, and distributed protocol for the detection of node replication attacks in wireless sensor networks[A]. Proceedings of the 8th ACM International Symposium on Mobile Ad Hoc Networking and Computing(MobiHoc’07) [C]. Quebec, Canada, 2007. 80-89.
[8] HO J W, LIU D G, WRIGHT M, etal. Distributed detection of replica node attacks with group deployment knowledge in wireless sensor networks[J]. Ad Hoc Networks, 2009(7):1476-1488.
[9] HO J W, WRIGHT M, DAS S K. Fast detection of replica node attacks in mobile sensor networks using sequential analysis[A]. IEEE INFOCOM 2009[C]. Rio de Janeiro, Brazil,2009. 1773-1781.
[10] WANG L M, SHI Y. Patrol detection for replica attacks on wireless sensor networks[J]. Sensors, 2011, 11(3):2496-2504.