0 引言
無線傳感器網(wǎng)絡(luò)(WSN,Wireless Sensor Network)是一種自組織網(wǎng)絡(luò),由大量具有無線通信、數(shù)據(jù)采集和處理、協(xié)同合作等功能的節(jié)點(diǎn)協(xié)同組織構(gòu)成。WSN在軍事、環(huán)境、工控和交通等方面有著廣闊的應(yīng)用前景。由于大多數(shù)用戶對(duì)WSN的安全性有較高要求,而WSN有著與傳統(tǒng)的Ad hoc網(wǎng)絡(luò)不同的特點(diǎn),大多數(shù)傳統(tǒng)的安全機(jī)制和安全協(xié)議難以直接應(yīng)用于WSN,因此有必要設(shè)計(jì)適合WSN的安全性方案。
無線傳感器網(wǎng)絡(luò)與傳統(tǒng)的ad hoc網(wǎng)絡(luò)相比有如下獨(dú)有的特點(diǎn)[1]:
(1)傳感器節(jié)點(diǎn)數(shù)量巨大,網(wǎng)絡(luò)規(guī)模龐大;
(2)節(jié)點(diǎn)密集分布在目標(biāo)區(qū)域;
(3)節(jié)點(diǎn)的能量、存儲(chǔ)空間及計(jì)算能力受限,容易失效;
(4)動(dòng)態(tài)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
(5)通常節(jié)點(diǎn)不具有統(tǒng)一的身份(ID)。
1 WSN的安全性問題
WSN中,最小的資源消耗和最大的安全性能之間的矛盾,是傳感器網(wǎng)絡(luò)安全性的首要問題。通常兩者之間的平衡需要考慮到有限的能量、有限的存儲(chǔ)空間、有限的計(jì)算能力、有限的通信帶寬和通信距離這五個(gè)方面的問題。
WSN在空間上的開放性,使得攻擊者可以很容易地竊聽、攔截、篡改、重播數(shù)據(jù)包。網(wǎng)絡(luò)中的節(jié)點(diǎn)能量有限,使得WSN易受到資源消耗型攻擊。而且由于節(jié)點(diǎn)部署區(qū)域的特殊性,攻擊者可能捕獲節(jié)點(diǎn)并對(duì)節(jié)點(diǎn)本身進(jìn)行破壞或破解。
另外,WSN是以數(shù)據(jù)通信為中心的,將相鄰節(jié)點(diǎn)采集到的相同或相近的數(shù)據(jù)發(fā)送至基站前要進(jìn)行數(shù)據(jù)融合,中間節(jié)點(diǎn)要能訪問數(shù)據(jù)包的內(nèi)容,因此不適合使用傳統(tǒng)端到端的安全機(jī)制。通常采用鏈路層的安全機(jī)制來滿足WSN的要求。
2 常見的攻擊和解決方案
在WSN協(xié)議棧的不同層次上,會(huì)受到不同的攻擊,需要不同的防御措施和安全機(jī)制。
2.1 物理層
物理層完成頻率選擇、載波生成、信號(hào)檢測(cè)和數(shù)據(jù)加密的功能。所受到的攻擊通常有:
1)擁塞攻擊:攻擊節(jié)點(diǎn)在WSN的工作頻段上不斷的發(fā)送無用信號(hào),可以使在攻擊節(jié)點(diǎn)通信半徑內(nèi)的節(jié)點(diǎn)不能正常工作。如這種攻擊節(jié)點(diǎn)達(dá)到一定的密度,整個(gè)網(wǎng)絡(luò)將面臨癱瘓。
擁塞攻擊對(duì)單頻點(diǎn)無線通信網(wǎng)絡(luò)影響很大,采用擴(kuò)頻和跳頻的方法可很好地解決它。
2)物理破壞:WSN節(jié)點(diǎn)分布在一個(gè)很大的區(qū)域內(nèi),很難保證每個(gè)節(jié)點(diǎn)都是物理安全的。攻擊者可能俘獲一些節(jié)點(diǎn),對(duì)它進(jìn)行物理上的分析和修改,并利用它干擾網(wǎng)絡(luò)的正常功能。甚至可以通過分析其內(nèi)部敏感信息和上層協(xié)議機(jī)制,破壞網(wǎng)絡(luò)的安全性。
對(duì)抗物理破壞可在節(jié)點(diǎn)設(shè)計(jì)時(shí)采用抗竄改硬件,同時(shí)增加物理損害感知機(jī)制。另外,可對(duì)敏感信息采用輕量級(jí)的對(duì)稱加密算法進(jìn)行加密存儲(chǔ)。
2.2 MAC層
MAC層為相鄰節(jié)點(diǎn)提供可靠的通信通道。MAC協(xié)議分3類:確定性分配、競(jìng)爭(zhēng)占用和隨機(jī)訪問。其中隨機(jī)訪問模式比較適合無線傳感網(wǎng)絡(luò)的節(jié)能要求。
隨機(jī)訪問模式中,節(jié)點(diǎn)通過載波監(jiān)聽的方式來確定自身是否能訪問信道,因此易遭到拒絕服務(wù)攻擊(Distributed Denial of Service,DOS)[2]。一旦信道發(fā)生沖突,節(jié)點(diǎn)使用二進(jìn)指數(shù)倒退算法確定重發(fā)數(shù)據(jù)的時(shí)機(jī)。攻擊者只需產(chǎn)生一個(gè)字節(jié)的沖突就可以破壞整個(gè)數(shù)據(jù)包的發(fā)送,這時(shí)接收者回送數(shù)據(jù)沖突的應(yīng)答ACK,發(fā)送節(jié)點(diǎn)則倒退并重新選擇發(fā)送時(shí)機(jī)。如此這般反復(fù)沖突,節(jié)點(diǎn)不斷倒退,導(dǎo)致信道阻塞,且很快耗盡節(jié)點(diǎn)有限的能量。
目前對(duì)抗這種DOS攻擊沒有很好的解決方案,可采用信道監(jiān)聽機(jī)制降低沖突率。若攻擊者只是瞬間攻擊,只影響個(gè)別數(shù)據(jù)位,可采用糾錯(cuò)碼來對(duì)抗這種攻擊。
如MAC層協(xié)議采用時(shí)分多路復(fù)用算法為每個(gè)節(jié)點(diǎn)分配傳輸時(shí)間片,不需要在數(shù)據(jù)傳輸前進(jìn)行協(xié)商,可避免沖突,但也會(huì)受到DOS攻擊。惡意節(jié)點(diǎn)會(huì)利用MAC協(xié)議的交互特性來實(shí)施攻擊。例如,基于IEEE 802.11的MAC協(xié)議用RTS、CTS和DATA ACK消息來預(yù)定信道、傳輸數(shù)據(jù)。如果惡意節(jié)點(diǎn)向某節(jié)點(diǎn)持續(xù)地用RTS消息來申請(qǐng)信道,則目的節(jié)點(diǎn)不斷地CTS回應(yīng)。這種持續(xù)不斷的請(qǐng)求最終導(dǎo)致目的節(jié)點(diǎn)能量耗盡。
訪問控制可對(duì)抗這種攻擊。讓節(jié)點(diǎn)自動(dòng)忽略過多的請(qǐng)求,不必應(yīng)答每個(gè)請(qǐng)求。同時(shí)在協(xié)議中添加策略,對(duì)過度頻繁的請(qǐng)求不予理睬,或限制同一數(shù)據(jù)包的重傳次數(shù)。
2.3 網(wǎng)絡(luò)層
路由協(xié)議在網(wǎng)絡(luò)層實(shí)現(xiàn)。WSN中的路由協(xié)議有很多種,主要可以分為3類,分別是以數(shù)據(jù)為中心的路由協(xié)議、層次式路由協(xié)議以及基于地理位置的路由協(xié)議[3]。而大多數(shù)路由協(xié)議都沒有考慮安全的需求,使得這些路由協(xié)議都易遭到攻擊,從而使整個(gè)WSN崩潰。在網(wǎng)絡(luò)層WSN受到的主要攻擊有:
1.虛假路由信息
惡意節(jié)點(diǎn)在接收到一個(gè)數(shù)據(jù)包后,除了丟棄該數(shù)據(jù)包外,還可能通過修改源和目的地址,選擇一條錯(cuò)誤的路徑發(fā)送出去,從而導(dǎo)致網(wǎng)絡(luò)的路由的混亂。如果惡意的節(jié)點(diǎn)將收到的數(shù)據(jù)包全部轉(zhuǎn)向網(wǎng)絡(luò)中的某一個(gè)固定節(jié)點(diǎn),該節(jié)點(diǎn)可能會(huì)通信阻塞和能量耗盡而失效。
這種攻擊方式與網(wǎng)絡(luò)層協(xié)議相關(guān)。對(duì)于層次式路由協(xié)議,可以使用輸出過濾的方法,即對(duì)源路由進(jìn)行認(rèn)證,確認(rèn)一個(gè)數(shù)據(jù)包是否是從它的合法子節(jié)點(diǎn)發(fā)送過來的,直接丟棄不能認(rèn)證的數(shù)據(jù)包。
2.選擇性轉(zhuǎn)發(fā)/不轉(zhuǎn)發(fā)
惡意節(jié)點(diǎn)在轉(zhuǎn)發(fā)數(shù)據(jù)包過程中丟棄部分或全部數(shù)據(jù)包,使得數(shù)據(jù)包不能到達(dá)目的節(jié)點(diǎn)。另外惡意節(jié)點(diǎn)也可能將自己的數(shù)據(jù)包以很高的優(yōu)先級(jí)發(fā)送,破壞網(wǎng)絡(luò)通信秩序。
通常采用多徑路由來解決這個(gè)問題。即使惡意節(jié)點(diǎn)丟棄了數(shù)據(jù)包,數(shù)據(jù)包仍然可以通過其它的路徑到達(dá)到目的節(jié)點(diǎn)。雖然多徑路由方式增加了數(shù)據(jù)傳輸?shù)目煽啃?,但是也引入了新的安全問題。
3.貪婪轉(zhuǎn)發(fā)
即黑洞(sinkhole)攻擊。攻擊者利用收發(fā)能力強(qiáng)的特點(diǎn)吸引一個(gè)特定區(qū)域的幾乎所有流量,創(chuàng)建一個(gè)以攻擊者為中心的槽洞。基于距離向量的路由機(jī)制通過計(jì)算路徑長短進(jìn)行路由選擇,這樣收發(fā)能力強(qiáng)的惡意節(jié)點(diǎn)通過發(fā)送0距離(表明自己到達(dá)目標(biāo)節(jié)點(diǎn)的距離為0)公告,吸引周圍節(jié)點(diǎn)所有的數(shù)據(jù)包,在網(wǎng)絡(luò)中形成一個(gè)路由黑洞,使數(shù)據(jù)包不能到達(dá)正確的目標(biāo)節(jié)點(diǎn)。
黑洞攻擊破壞性大,但較易被感知。通過認(rèn)證、多路徑路由等方法可以抵御黑洞攻擊。
4.Sybil攻擊[4]
在Sybil攻擊中,一個(gè)節(jié)點(diǎn)以多個(gè)身份出現(xiàn)在網(wǎng)絡(luò)中的其它節(jié)點(diǎn)面前,使其更易于成為路由路徑中的節(jié)點(diǎn),然后與其他攻擊方法結(jié)合達(dá)到攻擊目的。Sybil攻擊能夠明顯地降低路由方案對(duì)于諸如分布式存儲(chǔ)、分散和多路徑路由、拓?fù)浣Y(jié)構(gòu)保持的容錯(cuò)能力。它對(duì)于基于位置信息的路由協(xié)議構(gòu)成很大的威脅。這類位置敏感的路由為了高效地為用地理地址標(biāo)識(shí)的包選路,通常要求節(jié)點(diǎn)與它們的鄰居交換坐標(biāo)信息。一個(gè)節(jié)點(diǎn)對(duì)于相鄰節(jié)點(diǎn)來說應(yīng)該只有唯一的一組合理坐標(biāo),但攻擊者可以同時(shí)處在不同的坐標(biāo)上。
對(duì)抗Sybil攻擊,通常采用基于密鑰分配、加密和身份認(rèn)證等方法。
5.Wormholes攻擊
Wormholes攻擊通常需要兩個(gè)惡意節(jié)點(diǎn)互相串通,合謀攻擊。一個(gè)惡意節(jié)點(diǎn)在基站附近,另一個(gè)離基站較遠(yuǎn)。較遠(yuǎn)的節(jié)點(diǎn)聲稱自己和基站附近的節(jié)點(diǎn)可以建立低時(shí)延高帶寬的鏈路,吸引周圍節(jié)點(diǎn)的數(shù)據(jù)包。Wormholes攻擊很可能與選擇性轉(zhuǎn)發(fā)或Sybil攻擊相結(jié)合。當(dāng)它與Sybil攻擊相結(jié)合的時(shí)候,通常很難探測(cè)出。
在路由設(shè)計(jì)中加入安全等級(jí)策略可對(duì)抗wormholes攻擊。文獻(xiàn)[5]中給出了Ad hoc網(wǎng)絡(luò)路由設(shè)計(jì)中添加安全等級(jí)的方法,可對(duì)之稍作改進(jìn),采用基站來完成監(jiān)聽和檢測(cè)下一個(gè)節(jié)點(diǎn)信道的任務(wù)。改進(jìn)后的路由協(xié)議可對(duì)抗sinkhole和wormhole攻擊?;诘乩砦恢妙惖穆酚蓞f(xié)議,如Greedy Perimeter Stateless Routing[6],通過定期廣播探測(cè)幀來檢測(cè)黑洞區(qū)域,可有效地發(fā)現(xiàn)和抵御sinkhole攻擊和wormholes攻擊。
6.HELLO flood
很多路由協(xié)議需要節(jié)點(diǎn)定時(shí)發(fā)送HELLO包,以聲明自己是其他節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。攻擊者用足夠大的發(fā)射功率廣播HELLO包,使得網(wǎng)絡(luò)中所有節(jié)點(diǎn)認(rèn)為其是鄰居節(jié)點(diǎn),實(shí)際上卻相距甚遠(yuǎn)。如其他節(jié)點(diǎn)以普通的發(fā)射功率向它發(fā)送數(shù)據(jù)包,則根本到達(dá)不了目的地,從而造成網(wǎng)絡(luò)混亂。
在路由設(shè)計(jì)中加入廣播半徑的限制可對(duì)抗HELLO flood。限制節(jié)點(diǎn)的數(shù)據(jù)發(fā)送半徑,使它只能對(duì)這個(gè)半徑區(qū)域內(nèi)的節(jié)點(diǎn)發(fā)送數(shù)據(jù),而不是對(duì)全網(wǎng)廣播,避免高能的攻擊者在整個(gè)網(wǎng)絡(luò)區(qū)域不斷發(fā)送數(shù)據(jù)包,使得網(wǎng)絡(luò)節(jié)點(diǎn)不停地處理這些數(shù)據(jù),造成DOS和能源耗盡攻擊。
2.4 傳輸層
傳輸層用于建立WSN與Internet或者其他外部網(wǎng)絡(luò)的端到端的連接。目前在WSN大多數(shù)應(yīng)用中,都沒有對(duì)于傳輸層的需求,傳輸層協(xié)議一般采用傳統(tǒng)網(wǎng)絡(luò)協(xié)議。
2.5 應(yīng)用層
應(yīng)用層提供了WSN的各種實(shí)際應(yīng)用,因此也面臨各種安全問題。密鑰管理和安全組播為整個(gè)WSN的安全機(jī)制提供了安全支撐。
WSN中采用對(duì)稱加密算法、低能耗的認(rèn)證機(jī)制和hash函數(shù)。目前普遍認(rèn)為可行的密鑰分配方案是預(yù)分配,即在節(jié)點(diǎn)在部署之前,將密鑰預(yù)先配置在節(jié)點(diǎn)中。實(shí)現(xiàn)方法有多種:
基于密鑰池的預(yù)配置方案。每個(gè)節(jié)點(diǎn)在部署前,從事先生成的密鑰池中隨機(jī)選取一定數(shù)目的密鑰子集,節(jié)點(diǎn)部署到指定區(qū)域后,只與具有相同密鑰的節(jié)點(diǎn)通信。
基于多項(xiàng)式的預(yù)配置方案。由C Blundo等人提出 [7],能有效地抵御節(jié)點(diǎn)被捕獲,擴(kuò)展性強(qiáng),但計(jì)算開銷大,也不支持鄰居節(jié)點(diǎn)的身份認(rèn)證。
利用節(jié)點(diǎn)部署信息的預(yù)配置方案。文獻(xiàn)[8,9]均是將節(jié)點(diǎn)按照地理位置關(guān)系分組,給處于相同組或是相鄰組的節(jié)點(diǎn)之間分配共享密鑰,使節(jié)點(diǎn)的分組模式和查詢更符合節(jié)點(diǎn)廣播特征,提高密鑰利用率,減少了密鑰分配和維護(hù)代價(jià)。
4 結(jié)論
作為一種新的信息獲取和處理技術(shù),WSN在某些領(lǐng)域有著傳統(tǒng)技術(shù)不可比擬的優(yōu)勢(shì),但由于傳感器網(wǎng)絡(luò)和節(jié)點(diǎn)自身的一些限制,給它的安全性設(shè)計(jì)帶來新的挑戰(zhàn)。高效加密算法、安全的MAC協(xié)議和路由協(xié)議以及密鑰管理和安全組播等都是值得深入研究的領(lǐng)域。
本文作者創(chuàng)新點(diǎn)在于從WSN協(xié)議棧的不同層次上探討了安全性問題,對(duì)物理層的擁塞攻擊提出了擴(kuò)頻的方法,以及完善傳感器節(jié)點(diǎn)以對(duì)抗物理破壞。鏈路層的DOS攻擊,可采用糾錯(cuò)碼、訪問控制和限制重傳等抵御方法。網(wǎng)絡(luò)層的路由協(xié)議中增加安全機(jī)制,可采用層次路由、多徑傳輸、安全等級(jí)和廣播半徑限制等方法。密鑰管理和安全組播為整個(gè)WSN提供了安全支撐。