楊治秋 陳麗敏 張丹
摘要:由于故障或惡意節(jié)點(diǎn),收集或報(bào)告的傳感器數(shù)據(jù)可能是錯(cuò)誤的,基于此,提出了一種基于鄰域的無(wú)線傳感器網(wǎng)絡(luò)惡意節(jié)點(diǎn)檢測(cè)方案。計(jì)算機(jī)模擬結(jié)果表明,除非惡意節(jié)點(diǎn)的行為與正常節(jié)點(diǎn)相似,否則大多數(shù)惡意節(jié)點(diǎn)根據(jù)其自身讀數(shù)報(bào)告都會(huì)被正確檢測(cè)到。
關(guān)鍵詞:無(wú)線傳感器網(wǎng)絡(luò);惡意節(jié)點(diǎn);故障;基于鄰域的檢測(cè)
中圖分類(lèi)號(hào):TN83 ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):0439-8114(2020)05-0142-03
Abstract: Due to faults or malicious nodes,the sensor data collected or reported might be wrong. In this paper, we present a neighbor-based malicious node detection scheme for wireless sensor networks. Computer simulation shows that most of the malicious nodes reporting against their own readings are correctly detected unless they behave similar to the normal nodes.
Key words: wireless sensor networks; malicious nodes; faults; neighbor-based detection
在無(wú)線傳感器網(wǎng)絡(luò)中,傳感器節(jié)點(diǎn)在惡劣和無(wú)人值守的環(huán)境運(yùn)行時(shí),可能會(huì)產(chǎn)生錯(cuò)誤的傳感器讀數(shù)和錯(cuò)誤的報(bào)告,從而導(dǎo)致錯(cuò)誤的決策或能量消耗。錯(cuò)誤讀數(shù)和報(bào)告的潛在來(lái)源包括噪聲、故障和網(wǎng)絡(luò)中的惡意節(jié)點(diǎn)。與噪聲和故障不同,惡意節(jié)點(diǎn)可以任意修改檢測(cè)數(shù)據(jù),故意生成錯(cuò)誤報(bào)告[1]。為確保存在此類(lèi)錯(cuò)誤數(shù)據(jù)和報(bào)告的情況下進(jìn)行可靠的事件檢測(cè),有必要對(duì)惡意節(jié)點(diǎn)進(jìn)行檢測(cè)和隔離,從而大大降低其對(duì)決策的影響[2]。
基于此提出了一種鄰域的無(wú)線傳感器網(wǎng)絡(luò)惡意節(jié)點(diǎn)檢測(cè)方案。惡意節(jié)點(diǎn)被建模為有故障的節(jié)點(diǎn),這些節(jié)點(diǎn)可能故意報(bào)告一些不容易檢測(cè)到的智能錯(cuò)誤數(shù)據(jù)。在不犧牲正常節(jié)點(diǎn)和降低事件檢測(cè)精度的前提下,應(yīng)利用置信度和加權(quán)來(lái)檢測(cè)和隔離惡意節(jié)點(diǎn)。
1 ?網(wǎng)絡(luò)模型和操作模式
在介紹基于鄰域的惡意節(jié)點(diǎn)檢測(cè)方案時(shí),使用了一個(gè)平面網(wǎng)絡(luò),其中傳感器節(jié)點(diǎn)隨機(jī)部署在傳感器字段中[3]。假設(shè)所有傳感器節(jié)點(diǎn)具有相同的傳輸范圍R。因此,如果兩個(gè)節(jié)點(diǎn)的距離小于或等于R,則它們是彼此的鄰域。每個(gè)傳感器節(jié)點(diǎn),根據(jù)其自身的傳感器讀數(shù)和相鄰節(jié)點(diǎn)的讀數(shù)來(lái)檢測(cè)惡意節(jié)點(diǎn)以及故障節(jié)點(diǎn)。
在檢測(cè)惡意節(jié)點(diǎn)時(shí),可以使用兩種不同的操作模式:事件驅(qū)動(dòng)和周期性,其中Tc表示周期,ts是兩個(gè)連續(xù)傳感器之間的間隔讀數(shù),且Tc≥ts。在事件驅(qū)動(dòng)模式下,具有異常讀數(shù)的傳感器節(jié)點(diǎn)會(huì)向其鄰域發(fā)送警報(bào)。在周期模式下,每個(gè)傳感器節(jié)點(diǎn)定期向其鄰域發(fā)送報(bào)告,而不管事件是否發(fā)生。
2 ?惡意節(jié)點(diǎn)建模
為了處理惡意節(jié)點(diǎn),將它們視為可以任意修改其讀數(shù)的錯(cuò)誤節(jié)點(diǎn)。簡(jiǎn)單地根據(jù)其讀數(shù)報(bào)告可能會(huì)很快中斷,除非采取了一些容錯(cuò)措施,否則會(huì)導(dǎo)致網(wǎng)絡(luò)功能中斷[4]。然而,即使使用簡(jiǎn)單的檢測(cè)方案,也可以檢測(cè)到這樣一個(gè)微不足道的惡意行為。
在對(duì)惡意節(jié)點(diǎn)建模之前,首先定義故障和事件的模型。假設(shè)網(wǎng)絡(luò)中的任何節(jié)點(diǎn)都可能發(fā)生故障,并且所有傳感器節(jié)點(diǎn)的故障概率相同。假設(shè)每個(gè)傳感器節(jié)點(diǎn)都知道正常讀數(shù)的范圍,從而可以確定傳感器讀數(shù)是否屬于正常范圍。在這里,將“正?!狈秶x為無(wú)事件情況下的正確傳感器讀數(shù)范圍。為了方便起見(jiàn),所有超出正常范圍的其他讀數(shù)都被稱(chēng)為“異?!盵5]。因此,在一個(gè)事件區(qū)域中,一個(gè)好的傳感器節(jié)點(diǎn)上的正確讀數(shù)也被稱(chēng)為“異?!?。此外,假設(shè)每個(gè)傳感器讀數(shù)都是二進(jìn)制的,因此它是0(正常)或1(異常)。本研究考慮了兩種類(lèi)型的故障:瞬時(shí)故障和永久故障。假設(shè)瞬態(tài)和永久性故障分別發(fā)生在具有相同Pt和Pp概率的所有節(jié)點(diǎn)上,且是隨機(jī)和獨(dú)立的。具有瞬時(shí)故障的節(jié)點(diǎn)應(yīng)被視為正常節(jié)點(diǎn),即使它們有時(shí)顯示錯(cuò)誤的讀數(shù)。具有永久性故障的傳感器節(jié)點(diǎn)可能會(huì)重復(fù)報(bào)告0或1。為方便起見(jiàn),將這種故障命名為卡在0和卡在1故障。假設(shè)它們發(fā)生的概率相同(即Pp0=Pp1=PP/2)。
假設(shè)惡意節(jié)點(diǎn)以相同的概率Pm隨機(jī)獨(dú)立地發(fā)生。無(wú)論傳感器的實(shí)際讀數(shù)如何,它們都可以報(bào)告任何值,0或1。在對(duì)惡意節(jié)點(diǎn)建模時(shí),假設(shè)它們根據(jù)讀數(shù)報(bào)告概率Pma建模。例如,如果Pma=0.7,惡意節(jié)點(diǎn)根據(jù)其讀數(shù)報(bào)告,概率為0.7。
在簡(jiǎn)化假設(shè)Pt是對(duì)稱(chēng)的情況下,即P(1|無(wú)事件)=P(0|事件),惡意節(jié)點(diǎn)報(bào)告不同于基本事實(shí)的概率Pinv,Pinv可以寫(xiě)成Pinv=Pt(1-Pma)+(1-Pt)Pma。對(duì)于給定的Pt(<0.5),Pinv值隨著Pma值的增加而增加。如果Pt=0.20,Pma=0.20,Pinv=0.32,略高于Pt。如果Pma增加到0.80,Pinv=0.68,顯著高于Pt。如果Pma減小到0.10,Pinv=0.26,非常接近Pt。在這種情況下,很難區(qū)分惡意節(jié)點(diǎn)和普通節(jié)點(diǎn)。盡管惡意節(jié)點(diǎn)的行為類(lèi)似于普通節(jié)點(diǎn),但它們可能仍然未被檢測(cè)到,不會(huì)顯著影響系統(tǒng)性能。
方案主要是檢測(cè)惡意節(jié)點(diǎn)的行為與正常節(jié)點(diǎn)不同,同時(shí)即使面對(duì)惡意節(jié)點(diǎn)也能保持較高的事件檢測(cè)性能。由于惡意節(jié)點(diǎn)而添加的錯(cuò)誤讀數(shù)可能會(huì)導(dǎo)致不良事件檢測(cè)準(zhǔn)確性和增加錯(cuò)誤警報(bào),會(huì)使惡意節(jié)點(diǎn)的事件檢測(cè)變得更加復(fù)雜。
3 ?基于鄰域的惡意節(jié)點(diǎn)檢測(cè)
在檢測(cè)存在故障和事件的惡意節(jié)點(diǎn)時(shí),采用平滑濾波和置信度評(píng)估來(lái)提高惡意節(jié)點(diǎn)的檢測(cè)率。濾波器用于糾正由于瞬時(shí)故障導(dǎo)致的一些錯(cuò)誤讀數(shù)。因此,它有效地降低了瞬時(shí)故障概率Pt,從而可以在更大范圍的Pma中檢測(cè)惡意節(jié)點(diǎn)。置信水平用于估計(jì)傳感器節(jié)點(diǎn)的可信度,反映決策過(guò)程中的可信度。從邏輯上隔離惡意節(jié)點(diǎn)和存在永久性故障的節(jié)點(diǎn)。
3.1 ?數(shù)據(jù)平滑和變化測(cè)試
在周期性和事件驅(qū)動(dòng)的檢測(cè)中,受瞬時(shí)故障影響的讀數(shù)可能導(dǎo)致錯(cuò)誤決策,導(dǎo)致計(jì)算和通信資源的浪費(fèi)。此外,瞬時(shí)故障影響的診斷結(jié)果可能會(huì)導(dǎo)致一些正常的傳感器節(jié)點(diǎn)與網(wǎng)絡(luò)隔離,從而導(dǎo)致傳感器覆蓋率損失。
為了避免不必要的事件驅(qū)動(dòng)檢測(cè)周期和由瞬時(shí)故障引起的錯(cuò)誤決策,試驗(yàn)采用了一個(gè)濾波器,為了平滑傳感器讀數(shù),可以消除大多數(shù)瞬時(shí)過(guò)沖,而不會(huì)引起不必要的警報(bào)。將t=k時(shí)節(jié)點(diǎn)Vi的傳感器讀
數(shù)X給范圍測(cè)試塊,生成一個(gè)二進(jìn)制值y(例如,0或者1),然后應(yīng)用于平滑濾波器,生成輸出b。范圍測(cè)試塊檢查輸入是否屬于正常范圍。同樣的輸入X也被提供給變化測(cè)試塊,以查看傳感器讀數(shù){X|1≤k≤Nc}在Tc期間的變化,maxX(X)-minX(X),檢查循環(huán)中k的所有值是否小于δ。如果條件滿足,傳感器節(jié)點(diǎn)Vi處的標(biāo)志Si設(shè)置為1。當(dāng)正常傳感器的讀數(shù)在任何情況下都不發(fā)生變化時(shí),變化試驗(yàn)可應(yīng)用于在給定周期Tc內(nèi)變化大于或等于δ的應(yīng)用。例如,溫度傳感器的讀數(shù)(其中Tc是1 d)可能會(huì)發(fā)生變化,使得變化可能大于或等于δ(即δ=3)。這種變異測(cè)試可能會(huì)檢測(cè)到一些節(jié)點(diǎn)存在卡在0(正常)故障,這些故障在事件區(qū)域中會(huì)產(chǎn)生負(fù)面影響。
濾波器執(zhí)行以下平滑功能使用w最新讀數(shù)和閾值q,如下所示:
b=1for∑?y≥q ?(1)
在不修改方案其余部分的情況下,可以使用其他過(guò)濾器。平滑功能在傳感器節(jié)點(diǎn)內(nèi)執(zhí)行,不需要節(jié)點(diǎn)間通信。在Tc的每個(gè)測(cè)試周期(即周期性)或b =1(即事件驅(qū)動(dòng))時(shí),需要進(jìn)行一次代碼間通信。在事件驅(qū)動(dòng)模式下,只有從相鄰節(jié)點(diǎn)接收到警報(bào)的節(jié)點(diǎn)執(zhí)行事件檢測(cè)過(guò)程,以決定警報(bào)的正確性。
3.2 ?置信水平評(píng)價(jià)
為了解決惡意節(jié)點(diǎn)問(wèn)題,試驗(yàn)將傳感器網(wǎng)絡(luò)建模為加權(quán)有向圖,其中每個(gè)傳感器節(jié)點(diǎn)Vi都有Wij,范圍從0到1,從Vi的角度初始化為1,作為相鄰節(jié)點(diǎn)Vj的置信水平。根據(jù)Vj的報(bào)告和Vj對(duì)事件做出的決定,在節(jié)點(diǎn)Vi上更新Wij級(jí)別。如果Wij=1,節(jié)點(diǎn)Vi完全信任節(jié)點(diǎn)Vj。然而,如果Wij=0,Vi根本不信任Vj。同樣,每個(gè)節(jié)點(diǎn)Vi有自己的置信水平Wij,也在0到1之間。Wij達(dá)到0時(shí),Vi、Fi的故障狀態(tài)設(shè)置為1,表示Vi有故障。
上面定義的置信水平代表了相應(yīng)傳感器讀數(shù)的可信度,并反映在即將解決的基于鄰域的惡意節(jié)點(diǎn)檢測(cè)方案中。在每個(gè)事件驅(qū)動(dòng)和周期性檢測(cè)結(jié)束時(shí),每個(gè)傳感器節(jié)點(diǎn)更新自己的置信水平和相鄰節(jié)點(diǎn)的置信水平,以反映后續(xù)決策過(guò)程中的水平。
3.3 ?惡意節(jié)點(diǎn)檢測(cè)
在基于鄰域的檢測(cè)方案中,每個(gè)傳感器節(jié)點(diǎn)僅使用其相鄰節(jié)點(diǎn)的傳感器讀數(shù)在本地檢測(cè)惡意節(jié)點(diǎn)以及故障節(jié)點(diǎn)。使用置信水平作為權(quán)重的加權(quán)多數(shù)用于檢測(cè)惡意節(jié)點(diǎn)。提出的惡意節(jié)點(diǎn)檢測(cè)方案如下。
1)給定傳感器讀數(shù)X,獲取y并確定b,并對(duì)卡在0故障檢測(cè)進(jìn)行變化測(cè)試。
2)從鄰域處接收b和Fj(定期)。向相鄰節(jié)點(diǎn)發(fā)送警報(bào)(事件驅(qū)動(dòng))。
3)計(jì)算并做出決定Di
4)更新相應(yīng)的置信水平Wij。由于瞬時(shí)故障而導(dǎo)致的大多數(shù)錯(cuò)誤數(shù)據(jù)都會(huì)在本地糾正,因此可以大大減少錯(cuò)誤警報(bào),不會(huì)引起任何代碼間通信。此外,還對(duì)循環(huán)Tc期間的傳感器讀數(shù)進(jìn)行了變化測(cè)試。在步驟2)中,使用鄰域通信執(zhí)行定期檢查(在定期模式下)。但是,在事件驅(qū)動(dòng)模式下,只有bi=1的節(jié)點(diǎn)向相鄰節(jié)點(diǎn)報(bào)告警報(bào),以啟動(dòng)事件驅(qū)動(dòng)檢測(cè)。步驟3)執(zhí)行加權(quán)權(quán)重來(lái)決定事件,其中M1(M0)是bij= ? 1(0)的節(jié)點(diǎn)權(quán)重之和,di是Vi的節(jié)點(diǎn)度。置信水平反映在決策過(guò)程中。在步驟4)中,所有權(quán)重Wij都會(huì)更新。更新權(quán)重以有效地從網(wǎng)絡(luò)中刪除惡意節(jié)點(diǎn)是很重要的。
更新政策因事件的決定而有所不同。在沒(méi)有事件的情況下,權(quán)重Wij更新如表1所示,其中Fj表示Vj的故障狀態(tài)。只有當(dāng)Vj為無(wú)故障(即Fj=0)且屬于多數(shù)組時(shí),Vj節(jié)點(diǎn)Wij的置信水平才會(huì)增加β。否則,它會(huì)減少α。在這里,α和β必須正確選擇以?xún)?yōu)化性能。
在有事件的情況下,權(quán)重Wij更新如表2所示。惟一的區(qū)別是第三行的置信水平保持不變,因?yàn)槭录^(qū)域的確切邊界未知。
在無(wú)事件的情況下,每個(gè)傳感器節(jié)點(diǎn)Vi更新自己的置信水平Wij,如下所示。
Wij=max(0,Wij-?琢),bi=1或Si=1max(1,Wij+?茁),bi=Si=1 ?(4)
在上述表達(dá)式中,Si=1表示節(jié)點(diǎn)Vi處的讀數(shù)不滿足最小變化要求,表明存在潛在的卡在0故障。當(dāng)Wij達(dá)到0時(shí),節(jié)點(diǎn)Vi、Fi[最初為0(無(wú)故障)]的故障狀態(tài)設(shè)置為1(故障)。一旦設(shè)置為1,如果不采取任何恢復(fù)措施,它將保持在那里。
4 ?模擬結(jié)果
通過(guò)計(jì)算機(jī)仿真,評(píng)價(jià)了惡意節(jié)點(diǎn)檢測(cè)方案的有效性和檢測(cè)結(jié)果的準(zhǔn)確性。模擬在一個(gè)正方形區(qū)域隨機(jī)部署了1 024個(gè)傳感器節(jié)點(diǎn)。選擇傳輸范圍R將平均節(jié)點(diǎn)度數(shù)d設(shè)置為12。此外,假設(shè)事件區(qū)域是半徑為R的圓(即與傳輸范圍相同)。
永久性故障、瞬時(shí)故障和惡意節(jié)點(diǎn)是隨機(jī)獨(dú)立生成的。在永久性故障的情況下,它們?cè)谇?0個(gè)運(yùn)行周期內(nèi)均勻生成。在沒(méi)有事件的情況下,假設(shè)惡意節(jié)點(diǎn)根據(jù)實(shí)際讀數(shù)報(bào)告概率Pma。另一方面,假設(shè)它們?cè)谑录^(qū)域中時(shí)報(bào)告0,以估計(jì)最壞情況下的事件檢測(cè)性能。
定義了惡意節(jié)點(diǎn)檢測(cè)率(MDR)和誤判率(MR)兩個(gè)指標(biāo)來(lái)評(píng)價(jià)所提出的惡意節(jié)點(diǎn)檢測(cè)方案。MDR定義為檢測(cè)到的惡意節(jié)點(diǎn)數(shù)與惡意節(jié)點(diǎn)總數(shù)之間的比率。MR定義為故障的正常節(jié)點(diǎn)與正常節(jié)點(diǎn)總數(shù)之比。不針對(duì)惡意節(jié)點(diǎn)定義MR的原因是惡意節(jié)點(diǎn)的行為類(lèi)似于普通節(jié)點(diǎn)(即大多數(shù)情況下正確報(bào)告),在它們改變行為之前,不會(huì)造成任何傷害。
另外兩個(gè)指標(biāo),事件檢測(cè)準(zhǔn)確度(EDA)和誤報(bào)率(FAR)用于評(píng)估結(jié)果事件檢測(cè)性能。EDA定義為正確識(shí)別的事件數(shù)與生成的事件總數(shù)之間的比率。FAR是在沒(méi)有事件的情況下,報(bào)告1的節(jié)點(diǎn)數(shù)與節(jié)點(diǎn)總數(shù)的比率。
當(dāng)Pp=0.1,Pt=0.1,Pma=0.4時(shí),首先對(duì)4個(gè)不同的Pm(0.05、0.10、0.15和0.20)值進(jìn)行模擬估算MDR和MR。50個(gè)操作循環(huán)后的結(jié)果如表3所示,其中選擇α=0.2和β=0.05。為了進(jìn)行比較,還對(duì)α=β=0.1(表4)進(jìn)行了模擬。表3中的MDR很高,而MR很小。另一方面,表4中的MDR非常低,因?yàn)槭サ闹眯潘胶芸旎謴?fù)。α/β值必須適當(dāng)分配,以實(shí)現(xiàn)高M(jìn)DR,同時(shí)保持低MR。如果α/β=4,在沒(méi)有事件的情況下,每5個(gè)周期發(fā)送1次警報(bào)的惡意節(jié)點(diǎn)將恢復(fù)其置信水平,因此不太可能被檢測(cè)到。由于模擬中Pma設(shè)置為0.4,因此獲得了高M(jìn)DR。對(duì)于相同的α和β值,得出的EDA顯示為不同的Pm值。對(duì)于這兩種不同的情況,F(xiàn)AR幾乎相同,非常接近0。隨著Pm的增加,(0.2,0.05)保持了比(0.1,0.1)更持久、穩(wěn)定的性能。
5 ?結(jié)論
研究提出了一種基于鄰域的無(wú)線傳感器網(wǎng)絡(luò)惡意節(jié)點(diǎn)檢測(cè)方案。在不犧牲正常節(jié)點(diǎn)的情況下,在存在故障和事件的情況下檢測(cè)惡意節(jié)點(diǎn)。它們被建模為故障節(jié)點(diǎn),可以任意修改傳感器讀數(shù),并且行為智能不容易被檢測(cè)到。置信水平用于評(píng)估傳感器節(jié)點(diǎn)在正常運(yùn)行期間的可靠性。更新置信度的兩個(gè)參數(shù)用于區(qū)分惡意節(jié)點(diǎn)和正常模式,需要正確選擇它們之間的比率,以最終隔離惡意節(jié)點(diǎn),即使它們的行為與普通節(jié)點(diǎn)略有不同。在面對(duì)故障和事件時(shí),可以保持高檢測(cè)率和低錯(cuò)誤檢測(cè)率的水平。
參考文獻(xiàn):
[1] 劉 ?偉,胡安林.無(wú)線傳感器網(wǎng)絡(luò)覆蓋率與節(jié)能性研究[J].電子技術(shù)應(yīng)用,2016,42(6):98-100.
[2] 廖先莉.無(wú)線傳感器網(wǎng)絡(luò)多重覆蓋調(diào)度算法的研究[D].重慶:重慶大學(xué),2013.
[3] SINGH M,KHILAR P M.A range free geometric technique for localization of wireless sensor network(WSN) based on controlled communication range[J].Wireless personal communications,2017,94(3):1359-1385.
[4] 劉洲洲,王福豹,張克旺.基于改進(jìn)螢火蟲(chóng)優(yōu)化算法的WSN覆蓋優(yōu)化分析[J].傳感技術(shù)學(xué)報(bào),2013,26(5):675-681.
[5] 楊治秋,原福永.基于簇狀結(jié)構(gòu)的時(shí)間同步算法[J].儀表技術(shù)與傳感器,2017(4):100-104.