摘要:提出了一種無線傳感器網絡安全方案。它不但提供了一般的安全手段,還支持網內安全處理以延長網絡生命期以及概率性多路徑冗余傳輸來識別惡意節點。
關鍵詞:無線傳感器網絡; 安全方案; 概率性多路徑冗余傳輸
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2007)11-0135-04
隨著無線傳感器網絡越來越多的新應用出現,它的應用也越來越廣泛。但是,很多傳感器網絡都布置在無人地區或敵方地區。這些應用的實現對無線傳感器網絡應用的開發人員來說存在一個很大的問題,就是如何保證這些傳感器網絡的安全通信。沒有足夠的安全性,無線傳感器網絡就不可能廣泛應用。因此,提供安全保障機制對很多傳感器網絡應用來說是非常重要的。近年來,國外提出了許多用于傳感器網絡的安全管理方案[1~16]。
安全管理包含了安全體系建立(即安全引導)和安全體系變更(即安全維護)兩個部分。安全體系建立表示一個傳感器網絡如何從一些獨立的節點,或者說一個完全裸露的網絡通過一些共有的知識和協議過程,形成一個安全的網絡。安全體系變更主要是指在實際運行中,最初的安全平衡因為內部或者外部的因素被破壞,傳感器網絡識別并去除這些異構的惡意節點,重新恢復安全防護的過程。這種平衡的破壞可能由敵方進行外部攻擊造成,也可能由敵方俘獲合法的無線傳感器節點造成。還有一種變更的情況是增加新的節點到現有網絡中以延續網絡生命期的網絡變更。
本文提出了一種包括密鑰管理方法和數據加密方法的安全管理方案。它除了提供一般的密鑰刪除與更新和數據機密以外,還支持通過使用簇密鑰進行安全的網內處理,在不降低安全性的情況下,減少網絡通信量,提高網絡生存期。同時還能通過多層次概率性冗余路徑傳輸發現惡意節點的竄改、丟棄等行為,并將其逐出網絡。
1攻擊類型
目前針對無線傳感器網絡的攻擊類型包括以下幾種[17]:
a)虛假路由信息。通過欺騙、竄改和重發路由信息,攻擊者可以創建路由環,吸引或者拒絕網絡信息流通量,延長或者縮短路由路經,形成虛假錯誤消息,以分割網絡,增加端到端的時延。
b)選擇轉發攻擊。多跳傳感器網絡通常是基于參與節點可靠地轉發其收到信息這一假設的。在選擇轉發攻擊中,惡意節點可能拒絕轉發特定的消息并將其丟棄,以使得這些數據包不再進行任何傳播。然而,這種攻擊者冒著鄰近節點可能發現這條路由失敗并尋找新路由的危險。另一種更狡猾的表現形式是攻擊者修改特定節點傳送來的數據包,并將其可靠地轉發給其他節點,從而降低被懷疑的程度。當惡意節點在數據流傳輸路徑上時選擇轉發攻擊最有威脅。
c)Sinkhole攻擊。在這種攻擊中,攻擊者的目標是通過聲明高質量路由來吸引一個區域內的所有數據流通過攻擊者控制的節點,然后與其他攻擊(如選擇攻擊、竄改數據包的內容等)結合起來,達到攻擊網絡的目的。由于無線傳感器網絡自身中所有的數據包都共享同一目的地,一個被入侵的節點只需提供一條高質量路由,就能夠影響大量節點的通信。因此,傳感器網絡對Sinkhole攻擊非常敏感。
d)Sybil 攻擊。在這種攻擊中,攻擊節點向網絡中的其他節點聲明有多個身份,使其更易于成為路由路徑中的節點,然后與其他攻擊方法結合使用,達到攻擊的目的。
e)Wormholes攻擊。攻擊者把在網絡的某個區域中收到的消息用隧道傳輸,并且在網絡的其他區域中重放這些消息。Wormholes攻擊最為常見的形式是兩個相距較遠的惡意節點互相勾結,通過攻擊者自有的數據傳輸隧道進行轉發,以兩個節點間貌似較短的距離來吸引路由。最簡單的例子就是兩個節點串通合謀進行攻擊。一個惡意節點在基站附近,另一個相距較遠。這個節點聲稱自己與基站附近節點可以建立低時延高帶寬的鏈路,以吸引其他節點把其數據包發往這里。在這種情況下,遠離sink 的那個惡意節點其實也是一個Sinkhole。Wormholes攻擊可以與其他攻擊方式如選擇性地轉發或Sybil攻擊結合使用。
f)HELLO flood攻擊。由于許多協議要求節點廣播HELLO數據包來發現其鄰近節點,收到該包的節點將確信它在發送者的傳輸范圍內,即兩者在同一個簇內。假如攻擊者使用足夠大功率的無線設備廣播HELLO或其他信息,它就能夠使網絡中的部分甚至全部節點確信攻擊者就是其鄰近節點。這樣,網絡中的節點都試圖使用這條路由與基站進行通信。但由于一部分節點距離攻擊者相當遠,加上傳輸能力有限,發送的消息根本不可能被攻擊者接收而造成數據包丟失,從而使網絡陷入一種混亂狀態。
g)確認欺騙攻擊。一些傳感器網絡路由算法依賴于潛在的或者明確的鏈路層確認。惡意節點竊聽發往鄰居的分組,發送偽造的鏈路層確認,使發送者相信一個弱鏈路是健壯的,或者相信一個已經失效的節點還是可以使用的。
綜上所述,不難發現網絡傳感器網絡攻擊方式:通過一(多)個節點或大功率的通信設備等方法,營造出真實存在的或者是虛假的通往基站或另一個區域的高質量路由,使被攻擊者控制的節點看起來對周圍基于一定路由算法的節點更具有吸引力;這樣攻擊者周圍的每個節點就很可能會把轉發目的地的數據包交給攻擊者傳輸,并且向各自相鄰的節點傳播這個路由消息;然后攻擊者把通過它傳輸的數據包進行竄改、丟棄、重播或者改變目的地等方法以造成網絡的失效和癱瘓。
2安全方案
為了便于描述,假定了下列符號:
2.1密鑰分配
由于傳感器有限的能量供給、計算和通信能力,使得其成網后計算、分配密鑰是不現實的。目前在無線傳感器網絡中,引導密鑰(bootstrapping secret keys)的最實用方法就是使用預分配密鑰方法,也即密鑰在節點被散布前就裝載入每個節點。這樣就免去了傳感器節點很多的計算、通信能量,使網絡的生命期更長。
如果網絡使用全局密鑰,即整個網絡使用同一個密鑰來進行數據加密。這樣可以節省節點的內存并且減少節點為了協商密鑰而進行的通信開銷。但是使用全局密鑰是很危險的,如果某一個節點被破解,就會導致整個網絡的通信失去機密性。如果網絡使用成對密鑰,即每個節點提前裝載網絡剩余節點與之通信的密鑰,這樣網絡的安全性被大大提高了。某一個節點被破解只能影響與它有關的通信,網絡中其他節點之間的通信還是具有機密性。但成對密鑰的代價是,每個節點要存儲n-1個密鑰。當網絡中節點數目很大時,這種存儲代價對于存儲量有限的傳感器節點是不可接受的。所以本方案使用基于概率的密鑰預分發方式進行節點散布前的密鑰裝載。
在本方案中,密鑰分配由三個階段組成,分別是密鑰預分發、共享密鑰發現和多跳密鑰建立。
密鑰預分發階段由以下兩個步驟組成:
a)從整個密鑰空間中隨機選取|S|個密鑰和每個密鑰的標志,產生密鑰池S。
b)從S中隨機抽取k個密鑰和它們的標志,建立節點的密鑰環,將密鑰環裝載入每個節點的內存。
根據文獻[1]可知,在合適的密鑰池的大小、密鑰環的數目和網絡密度條件下,就可以得到非常高的任意兩節點有一個共享密鑰的概率(如0.999 9)。
共享密鑰發現階段發生在網絡散布后初始化時,每個節點在無線通信范圍內發現與它共享密鑰的鄰居。
c)對于任意兩個節點,每個節點都廣播它們的密鑰環上的密鑰標志列表。收到廣播的節點,比較接收到的密鑰環和自己的密鑰環,看是否有相同的密鑰標志符即密鑰。如果發現有共同密鑰,則發送用該共同密鑰加密的自己的id號給那個廣播密鑰環的節點。廣播密鑰環的節點收到數據包后,用共享密鑰解密,讀取id號;并存儲節點id和密鑰標志之間的對應關系,方便以后的使用。
A ——〉* :ID
C ——〉A :{nonce,id}k,c
在共享密鑰發現階段以后,還有一些節點之間因為沒有共享密鑰而無法建立安全通信。但是它們被兩條或多條鏈路連接。可以通過多跳密鑰建立階段為這些節點建立一個多跳密鑰。
d)對于一對在無線通信范圍內沒有共享密鑰但被兩條或多條鏈路連接的傳感器節點,當它們發現在共享密鑰階段結束后,它們之間還沒有建立共享密鑰,但可以找到一個中間節點。該中間節點與這一對節點都有共享密鑰,并各自建立了一條鏈路。這時,源節點可以發送一個包含nonce的數據包給中間節點,并以它們之間的密鑰加密。
A ——〉D :{nonce,id}k,c
e)中間節點解密后,再用它與另外一個節點共享的密鑰加密,發送給目標節點。
D ——〉C :{nonce,id}k,c
f)目標節點接收后,解密數據包,然后回復包含nonce的數據包給源節點,并以新密鑰加密。源節點接收到數據包后,查看nonce是否與它設定的相同。如果相同,則建立多跳密鑰成功。
兩者之間的密鑰有多種方法確定:(a)由源節點指定,放在發送給中間節點的數據包中,由中間節點傳遞給目標節點;(b)由中間節點確定,然后分別告訴原節點和目標節點,這時中間節點充當server的角色;(c)把中間節點與原節點和目標節點的密鑰異或,中間節點只將另一個密鑰告訴兩個節點,由它們自己合成。
g)執行分簇算法。選舉簇首后,由簇首確定一個簇密鑰(簇首可以異或自己的密鑰環來產生自己的簇密鑰);然后簇首用與每個簇成員共享的密鑰加密簇密鑰,分別發送給每個簇成員。每個簇成員接收到后保存簇密鑰。
CH ——〉CMi:{kcluster}ki
2.2加密通信
當節點需要與另一個節點通信時,通過共享密鑰和兩個不同的碰撞自由的單向散列函數計算加密密鑰和認證(MAC)密鑰;然后使用這兩個密鑰對要發送的數據包進行加密。
接收節點收到數據包以后,同樣計算兩個密鑰,然后解密。
A ——〉C :{{M}k,c,MAC{k,c||{M}k,c}
在無線傳感器網絡中有一個獨特的需要注意的問題,即密鑰加密方法對網內處理的影響。在很多應用中,網絡中的傳感器被要求進行數據融合(aggregation)、冗余刪除(duplicate elimination)和被動加入(passive participation)來提高效率和網絡的生命周期。從某幾個節點上收集的讀數或信息會在一個數據融合節點進行數據處理,然后壓縮成一個更加緊湊的格式傳送給中央處理節點。被動加入是另一種網內處理,它使節點能夠監聽信息,然后采取特定的行動。比如節點可以在監聽到鄰節點報告了相同事件時,取消報告該事件。加密方法可能會阻礙或降低網內處理的效能。為了支持被動加入,中間節點必須能夠解密或認證在另外兩個節點上傳輸的加密信息。因此,只有多個節點共享加密和認證的密鑰才能提供被動加入。
在需要網內處理的信息收集時間內,節點可以采用簇密鑰加密信息,然后根據路由算法返回給數據處理中心。每個轉發的節點接收到數據包后,解密數據包,然后再用自己的簇密鑰加密。由于采用節點的簇密鑰加密,這樣途經的節點及這些節點的簇成員可以看到信息內容,就可以很方便地進行對信息的精簡和再加工,減少網絡的流量,延長網絡的生存時間。
A ——〉C :{{M}k,c,MAC{k,c||{M}k,c}
2.3概率性多路徑冗余傳輸
節點每發送一個消息,就同時產生一個隨機數字,然后把這些數字累計相加。當和大于一定門限值時,就把當前的數據以加密方式分別傳送給每個相鄰節點,由各個相鄰節點通過自己的路由傳送回sink節點,由sink節點把數據返回給數據處理中心。數據處理中心可以通過比較該數據的多個版本來檢察網絡中是否有惡意節點,并且網絡中使用頻率高、信息流量大的區域(這種區域往往是敵方的攻擊重點)被檢查的概率大一些,使用頻率低、信息流量小的區域(這種區域不是敵方的攻擊重點)被檢查的概率小一些,這樣既動態地檢查了網絡安全性,通信開銷也沒有太大的增長。
每次產生的都是隨機數字,就算敵方通過捕獲節點獲得了門限值,也無法正確地估計每個節點進行多路徑冗余傳輸的具體時間,所以惡意節點的行為無法避免被數據處理中心發現,進而被驅逐出網絡。
對于重要信息,數據包在經過隨機跳數以后,當前的接收節點把數據再分別以安全方式傳送給每個相鄰節點;然后由各個相鄰節點通過自己的路由傳送回sink節點,由sink節點把數據返回給數據處理中心。這樣多層次概率性多路徑冗余傳輸擴大了冗余傳輸的成功率,可以使同一個數據包由更多的路徑回到數據處理中心,方便數據處理中心檢查該信息路由路徑上有沒有惡意節點。
2.4密鑰撤銷
由于傳感器節點是散布在敵方地區,傳感器節點可能被捕獲或破壞,從而導致密鑰泄露。網絡安全體系應能夠撤銷那個節點密鑰環上的所有密鑰集合。數據處理中心在分析數據接收器(sink)節點回傳的數據以后,如果對某個節點產生懷疑,就通過sink節點廣播一個撤銷投票命令,使得與該節點相鄰的所有節點發起一個投票選舉;如果撤銷票數超過一定門限值,就由數據處理中心發起對該節點的節點id和密鑰集合的撤銷。
數據處理中心通過sink節點,向與sink節點相鄰的簇首發送一個包含被撤銷節點的節點id和密鑰環上的k個密鑰標志列表的撤銷信息。撤銷信息使用sink節點與其相鄰簇首的共享密鑰加密和認證。收到消息的簇首節點分別用簇密鑰和共享密鑰加密的信息通知自己的簇成員和與自己相連的簇首。這樣撤銷消息就傳達到了整個網絡,并且網絡信息流量較少,大大節省了能量。
在獲得撤銷信息后,每個節點在它們自身的密鑰環上查找這些節點id和密鑰標志,然后刪除路由表中有關節點id的信息和密鑰標志所對應的密鑰。一旦從密鑰環上刪除了這些密鑰,一些鏈路可能會消失,被影響的節點需要通過重新開啟共享密鑰發現機制來重新配置那些鏈路,同樣路徑密鑰也可能被重新建立。因為只有k個密鑰被從密鑰池中刪除,所以密鑰撤銷僅僅影響了一小部分其他的節點和它們密鑰環上的一小部分密鑰。但是這樣卻可以禁止被捕獲節點的所有連通鏈路。
當刪除的是簇首時,被影響的簇重新進行簇組織。當簇重組后,新的簇首重新確定一個簇密鑰,然后簇首用與每個簇成員共享的密鑰加密簇密鑰,分別發送給每個簇成員。每個簇成員接收到后保存新的簇密鑰。
2.5密鑰更新
盡管人們期望在傳感器網絡中兩個節點之間的共享密鑰的生存期長于兩個節點的生存期,但在一些情況下密鑰的的生存期會耗盡而需要更新密鑰。密鑰更新相當于一個節點對自己的一個密鑰進行撤銷。在刪除了耗盡生存期的密鑰后,受影響的節點重新進行共享密鑰發現和路徑密鑰建立階段。
3安全分析
由于使用了簇密鑰,既大大降低了通信開銷,同時還保證了網內處理的安全;除了在網絡初始時節點廣播密鑰環以外,其他時候的網絡通信均是在共享密鑰的加密下完成的,所以很好地保護了網絡數據內容的機密性;由于雙方共享一個密鑰,由它計算出來的MAC認證密鑰具有與數字簽名相似的身份認證功能,可以起到數據源認證功能,保證數據的真實性;同時根據散列函數的強無碰撞特性,MAC認證可以發現對數據的任何微小的改動,保證了數據的完整性;由于通信使用計數器,可以提供數據新鮮性、語義安全和防重放;由于采用鏈路層加密機制,盡可能早地發現拒絕服務攻擊,能很好地解決拒絕服務攻擊。考慮到傳感器節點本身的性能限制,本文的加密算法采用對稱加密算法。
大部分外部攻擊通過簡單的鏈路層加密和認證就可以防止。由于網絡通信之前要建立安全鏈路,而外部攻擊節點沒有相同密鑰池中的密鑰、密鑰標志和節點id,無法通過建立安全鏈路來加入到網絡中。外部攻擊節點無法加入網絡,也就無法通過竄改、重發或丟棄路由信息來進行虛假路由信息攻擊、選擇轉發攻擊和確認欺騙攻擊;無法聲明高質量的路由和多重身份來進行Sinkhole攻擊和Sybil 攻擊;因為在建立安全鏈接時,收到攻擊節點發送的HELLO包的節點發送給攻擊節點的建立安全鏈接的數據包無法被攻擊節點收到,所以安全鏈路不會建立,攻擊節點也就不會被節點相信;對于Wormholes攻擊,由于攻擊節點沒有密鑰,無法竄改經過的信息。而數據處理中心會從被概率性多路徑冗余傳輸回來的信息中發現Wormholes攻擊節點丟棄了的路由信息,從而將其驅逐出網絡。
當攻擊者進行內部攻擊時,即攻擊者俘獲了網絡中的某個節點,獲取了密鑰,重新把攻擊者控制的節點放入網絡中進行攻擊時,攻擊者試圖產生虛假信息以通過攻擊節點周圍的冗余節點發回來的信息由數據處理中心比較發現;對于選擇轉發攻擊和Sinkhole攻擊,本文的冗余傳輸可以很容易地發現;由于節點都有節點id,如果多個id號出現在網絡中,會被數據處理中心發現,Sybil攻擊也無法實現;由于需要恢復才能建立安全連接,無法收到正常節點恢復的HELLO flood攻擊者并不會被多個節點認為是朋友;由于加密方案中有認證,確認欺騙攻擊也行不通;對于Wormholes攻擊,如果不修改經過攻擊節點的信息,僅能造成局部路由混亂,如果修改了信息,就可以通過冗余傳輸來發現。對于識別出的惡意節點,數據處理中心可以在網絡中發布節點撤銷和密鑰撤銷的命令。
4結束語
本文介紹了無線傳感器網絡的常見攻擊類型,并對這些攻擊類型作了分析,總結出它們的共性;然后提出了一種包括密鑰管理方法和數據加密方法的安全管理方案,描述了它的工作過程,并對其安全性能進行了分析。它能夠支持密鑰建立、更新和撤銷等過程,提供網絡數據內容的語義加密、數據源認證、數據完整性和數據新鮮。它還通過簇密鑰支持如數據融合、冗余刪除和被動加入等網內計算來精簡網絡數據,降低網絡通信量,提高效率和網絡生存期。同時,它通過多層次概率性多路徑冗余傳輸以較大的概率將一個使用頻率高、信息流量大的區域(這種區域往往是敵方的攻擊重點)的數據冗余地傳送回數據處理中心。這樣可以更好地監控重要區域的安全情況,盡早地發現惡意節點。
該方案提供對外部攻擊方式和內部攻擊方式的主動和被動防御,識別惡意節點并將其驅逐出網絡,對無線傳感器網絡提供了很好的安全防護。
參考文獻:
[1]ESCHENAUER L, GLIGOR V D.A key-management scheme for distributed sensor networks[M] . Washinigton D C:ACM Press,2002:41-47.
[2]CHAN H, PERRIG A, SONG D. Random key predistribution schemes for sensor networks[M] . Berkeley, CA : IEEE Computer Society,2003:197-213.
[3]JOLLY G, KUSCU M C, KOKATE P, et al.A low-energy key mana ̄gement protocol for wireless sensor network[C]//Proc of the 8th IEEE Int Symposium on Computers and Communications.Turkey:[s.n.], 2003:335-340.
[4]CARMAN D, KRUUS P, MATT B.Constraints and approaches for distributed sensor network security,Technical Report #00-010[R].[S.l.]:NAI Labs, 2000.
[5]PERRIG A, SZEWCZYK R, WEN V,et al.SPINS:security protocols for sensor networks[J].Journal of Wireless Networks,2002,8(5):521-534.
[6]PERRIG A, CANETTI R, TYGAR J D,et al.The TESLA broadcast authentication protocol[J] .Cryptobytes,2002,5(2):2-13.
[7]ZHU S, SATIA S, JAJODIA S.LEAP:efficient security mechanisms for large-scale distributed sensor networks[C]//Proc of the 10th ACM Conference on Computers and Communications. Washington D C:ACMPress,2003:62-72.
[8]DU Wen-gang, DENG Jing,HAN Y S,et al.A pairwise key pre-distribution scheme for wireless sensor networks[M]. Washington D C:ACM Press,2003:1-10.
[9]BLOM R.An optimal class of symmetric key generation systems[M]. Paris:Springer-Verlag,1985:335-338.
[10]LIU Dong-gang,NING Peng, LI Rong-fang.Establishing pairwise keys in distributed sensor networks[M]. Washington D C:ACM Press,2003:52-61.
[11]BLUNDO C,SANTIS A D,HERZBERG A,et al.Perfectly-secure key distribution for dynamic conferences[M]. Santa Barbara,California:Springer-Verlag,1993:471-486.
[12]WADAA A,OLARIU S,WILSON L,et al.Scalable cryptographic key management in wireless sensor networks[M]. Tokyo:IEEE Computer Society,2004:796-802.
[13]DU Wen-liang, DENG Jing, HAN Y S,et al.A key management scheme for wireless sensor networks using deploying knowledge[C]//Proc of INFOCOM.Hong Kong:IEEE Computer Society,2004:172-183.
[14]LIU Dong-gang,NING Peng.Efficient distribution of key chain commitments for broadcast authentication in distributed sensor networks[M]. San Diego,California:Internet Society Press,2003:263-276.
[15]BOHGE M, TRAPPE W. An authentication framework for hierarchical Ad hoc sensor networks[M]. San Diego,California:ACM Press,2003:79-87.
[16]MOHAMED G G, ELNOZAHY E N, HUANG C T, et al. Hop integrity in computer networks[J]. IEEE/ACM Transactions on Networking, 2002,10(3):308-319.
[17]KARLOF C, WAGNER D. Secure routing in wireless sensor networks:attacks and countemeasures[C]//IEEE International Workshop on Sensor Network Protocols and Applications. 2003:113-127.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”