蔡志偉,江 汀,李銀勇,李 佳,褚偉銘
(中國人民解放軍理工大學(xué)通信工程學(xué)院 南京 210007)
由于傳感器網(wǎng)絡(luò)具有自組織、無線通信等特點,被運用于軍事通信、地震等緊急情況下的通信。隨著傳感器廣泛地運用于各種領(lǐng)域,其網(wǎng)絡(luò)的安全性日益被關(guān)注。傳感器網(wǎng)絡(luò)的無線通信的特點,比固定網(wǎng)絡(luò)面臨著更多的安全問題,構(gòu)建良好的安全路由協(xié)議是其必要的一種手段。傳統(tǒng)路由協(xié)議的主要設(shè)計目標(biāo)是如何提供更好的QoS和高效利用網(wǎng)絡(luò)帶寬,安全節(jié)約的問題被放到了次要的地位。本文根據(jù)傳感器網(wǎng)絡(luò)的特點,提出一種基于CPK和能量的安全路由算法。
無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)是一種特殊類型的網(wǎng)絡(luò),其約束條件很多 (相對于計算機網(wǎng)絡(luò)),這些約束條件加劇了網(wǎng)絡(luò)的安全問題[1]。參考文獻[2]列出了WSN在網(wǎng)絡(luò)協(xié)議棧的各個層次可能受到的攻擊和主要的防御手段,如表1所示。
本文研究融合網(wǎng)絡(luò)安全路由機制,因此重點分析網(wǎng)絡(luò)層面臨的安全威脅。針對網(wǎng)絡(luò)層的攻擊主要有以下幾種[3~5]。
表1 傳感器網(wǎng)絡(luò)各層攻防手段
·選擇性的轉(zhuǎn)發(fā),基于多跳傳輸?shù)穆酚蓹C制,中間節(jié)點需要忠實地轉(zhuǎn)發(fā)數(shù)據(jù)包。但處在數(shù)據(jù)傳輸路徑上的惡意節(jié)點在轉(zhuǎn)發(fā)信息包時會有意丟棄,造成信息包的丟失。
·黑洞攻擊,就是通過一個惡意節(jié)點吸引一個特定區(qū)域的幾乎所有的數(shù)據(jù)流量。這個節(jié)點使路由算法認(rèn)為數(shù)據(jù)經(jīng)過它能達到最優(yōu)的性能。黑洞形成后,惡意節(jié)點可以實施其他攻擊,比如選擇性轉(zhuǎn)發(fā)攻擊。
·偽造、篡改或者重放路由信息,攻擊者通過改變原路由,在網(wǎng)絡(luò)中形成路由環(huán)路,創(chuàng)造不存在的路由,吸引或抑制網(wǎng)絡(luò)流量,縮短或延長路由長度,產(chǎn)生虛假錯誤消息,延長端到端的時延,分割網(wǎng)絡(luò)等。
傳統(tǒng)路由協(xié)議的主要設(shè)計目標(biāo)是如何提供更好的QoS和高效利用網(wǎng)絡(luò)帶寬,節(jié)約能量的問題被放到了次要的地位。
針對不同的網(wǎng)絡(luò)應(yīng)用,研究人員提出了不同的路由協(xié)議。到目前為止,路由協(xié)議分類仍然不具有確定性,參考文獻[6]總結(jié)了不同的分類方法如圖1所示。有時一種協(xié)議具有多種屬性,可以同時分屬于多類。
傳感器網(wǎng)絡(luò)的安全需求主要表現(xiàn)為以下幾個方面。
·數(shù)據(jù)機密性:無線通信的廣播特性使節(jié)點間傳輸?shù)臄?shù)據(jù)包很容易被截聽。機密性的含義是即使攻擊者截獲節(jié)點間的物理通信信號仍然不能破解其所攜帶的具體內(nèi)容。
·數(shù)據(jù)完整性:在WSN通信環(huán)境下,惡意節(jié)點極容易對傳輸?shù)臄?shù)據(jù)進行改動。完整性要求網(wǎng)絡(luò)節(jié)點收到的數(shù)據(jù)包在傳輸過程中未被插入、刪除、篡改等,即保證收到的消息和源方發(fā)出的消息是完全一致的。
·數(shù)據(jù)真實性:數(shù)據(jù)的真實性需求主要體現(xiàn)在點對點的消息認(rèn)證和廣播認(rèn)證。前者指任何一個節(jié)點在收到來自另一節(jié)點的消息時,能夠核實這個消息的來源真實性,不是被偽造或假冒的。
傳感器網(wǎng)絡(luò)專門設(shè)立了安全管理中心用來實現(xiàn)密鑰的生成與分配。安全管理中心主要作用就是負(fù)責(zé)用戶的注冊和認(rèn)證,為每個新接入網(wǎng)絡(luò)的節(jié)點分配ID。如圖2所示,節(jié)點在通信前以現(xiàn)場接觸的方式到安全管理中心獲取橢圓曲線參數(shù)、公鑰矩陣、自己的私鑰以及身份標(biāo)識ID,通過這些參數(shù)節(jié)點就能得到全網(wǎng)的公鑰和自己的私鑰。
傳感器節(jié)點需要與其他節(jié)點通信時,只要知道其ID就可以進行數(shù)據(jù)加解密、數(shù)字簽名等操作。若節(jié)點需要發(fā)送數(shù)據(jù)給節(jié)點i時(IDi),節(jié)點需要先計算公鑰。首先節(jié)點將節(jié)點的身份標(biāo)識IDi通過標(biāo)識映射算法Functionmap得出值data:
圖1 WSN路由協(xié)議分類
圖2 密鑰分配
然后在公鑰矩陣PKM中找出與data對應(yīng)的元素A:
最后,組合這些元素A生成節(jié)點i的公鑰PKi:
節(jié)點通過得到公鑰 PKi對數(shù)據(jù)進行加密處理,數(shù)據(jù)包到達節(jié)點i時,節(jié)點i通過自己的私鑰對數(shù)據(jù)包進行解密處理。
該體制的優(yōu)點就是網(wǎng)絡(luò)擴展性很好,容易實現(xiàn)新節(jié)點的加入。新節(jié)點只需要到安全管理中心獲取自己的私鑰、公鑰矩陣、標(biāo)識映射算法以及使用的橢圓曲線的一系列參數(shù)即可獲得加入網(wǎng)絡(luò)的資格,而其他節(jié)點不需要進行額外的通信開銷。
在LEACH中采取等概率的方式進行簇頭選擇,這樣會導(dǎo)致網(wǎng)絡(luò)中節(jié)點的能量分布不均。為了延長網(wǎng)絡(luò)壽命,本協(xié)議是以能量為依據(jù)進行簇頭選擇,以此來保證網(wǎng)絡(luò)能量的均衡,其基本思想是簇頭的選擇盡量靠近低能量節(jié)點,避免低能量節(jié)點能量消耗過快退出網(wǎng)絡(luò)。
在簇頭選舉之初,網(wǎng)絡(luò)中節(jié)點交換自己的剩余能量,首先廣播自己的能量包。能量報文格式如圖3所示。
圖3 能量報文格式
并在每個節(jié)點內(nèi)設(shè)置兩個參數(shù):N為收到廣播包的總數(shù),L為收到廣播包能量小于自己的數(shù)目。根據(jù)參考文獻中指出的簇優(yōu)化方案,當(dāng)每個簇節(jié)點接近20個左右時,網(wǎng)絡(luò)壽命最長,故在本算法中盡量使得每個簇接近20個,即網(wǎng)絡(luò)可分為N/20個簇。
假設(shè)節(jié)點i在時間t其能量為Ei(t),每次收到廣播包的能量Ej(t),若 Ej(t) 通過簇頭初選之后,簇頭節(jié)點發(fā)布自己為簇頭的消息,非簇頭節(jié)點根據(jù)收到簇頭消息中的能量指示加入該簇頭,為了保證安全性,在加入簇頭階段時,雙方要進行身份認(rèn)證。當(dāng)節(jié)點經(jīng)過身份認(rèn)證后,發(fā)布入簇消息,然后進行時隙分配。 節(jié)點確定可以成為簇頭之后: ·生成隨機數(shù)NHead,用自身私鑰SKHead對廣播消息BHead加密,得到 MSG=DSK(BHead+NHead); ·候選簇頭廣播消息BHead、MSG和自己的ID; ·等待節(jié)點加入消息。 如圖4所示,其為簇頭節(jié)點進行認(rèn)證的步驟。 圖4 簇頭節(jié)點認(rèn)證步驟 上述步驟可以看出,當(dāng)非簇頭節(jié)點使用簇頭的公鑰解密密文MSG時,如果得不到原明文,則證明簇頭并沒有使用簇頭節(jié)點的私鑰加密,從而判斷來源不真實,實現(xiàn)了核實發(fā)送者的功能;如果報文遭他人篡改,則非簇頭節(jié)點解密密文MSG時,不能得到可閱讀的明文,從而實現(xiàn)了報文的完整性驗證功能。 在數(shù)據(jù)傳輸階段,普通節(jié)點采集監(jiān)測地域的數(shù)據(jù),然后把這些數(shù)據(jù)上傳給簇頭節(jié)點。簇頭節(jié)點將收集到的數(shù)據(jù)進行融合處理,得到用戶所需的信息,然后沿路由傳輸給用戶。由于傳輸?shù)男畔⒕怯脩舻拿舾行畔?,為了保證數(shù)據(jù)的機密性,需要對數(shù)據(jù)進行安全加密處理,其處理流程如下。 節(jié)點A在向節(jié)點B發(fā)包之前,對報文進行如下處理。 第一步,節(jié)點A首先根據(jù)節(jié)點B的ID組合出B的公鑰PKB,使用PKB加密數(shù)據(jù)。加密計算式如式(4)所示: 其中EnMsg表示加密后的密文;Msg表示加密前的明文;PKB表示簇頭節(jié)點的公鑰。 圖5 數(shù)據(jù)的安全傳輸 第二步,對密文進行報文摘要運算Fone-way后得到報文摘要MD,如式(5)所示,將簽名的報文摘要附加在密文EnMsg的尾端等待發(fā)送。 節(jié)點B收包之后,進行如下處理。 第一步,節(jié)點B收包后,首先從數(shù)據(jù)包中分離出密文EnMsg和報文摘要MD。 第二步,對報文EnMsg’進行報文摘要運算得到報文摘要 MD’: 比較MD與MD’,一致則消息完整、真實,不一致則消息被人篡改。 第三步,節(jié)點B使用其私鑰SKB、計數(shù)器C的值,解密密文 EnMsg,獲取明文Msg。 其具體的傳輸流程如圖5所示。 本文采用NS2仿真工具建立了網(wǎng)絡(luò)仿真模型,對改進算法和LEACH路由算法進行了仿真和性能比較。模擬將100個節(jié)點隨機分布在(100×100)的空間中,SINK節(jié)點的位置為(0,0)。所有的節(jié)點都是靜止的。帶寬設(shè)置為1 Mbit/s,消息的長度為500 byte,發(fā)送與接收的時延均為25 s,每個節(jié)點的初始能量相同,為2 J。 指標(biāo)主要有3個:網(wǎng)絡(luò)的穩(wěn)定周期以及網(wǎng)絡(luò)的生存期。其中網(wǎng)絡(luò)穩(wěn)定周期是指傳感器網(wǎng)絡(luò)啟動到第一個節(jié)點能量耗盡的時間。 圖6 網(wǎng)絡(luò)生存期 圖6 顯示了兩種協(xié)議的網(wǎng)絡(luò)生命周期。從中可以看出,第一個節(jié)點的死亡時間,BECPK協(xié)議要晚于LEACH,網(wǎng)絡(luò)穩(wěn)定周期比LEACH要長,全部節(jié)點死亡時BECPK比LEACH多運行了31輪,網(wǎng)絡(luò)生存期要比LEACH要長。這說明,新協(xié)議加入了安全機制和能量計算,雖然造成了一定的能量消耗,但是由于可以使能量損耗更加均勻地分布到所有的節(jié)點中,避免了單個節(jié)點因能量損耗過大而過早死亡,從而延長了網(wǎng)絡(luò)的生存期。本文的仿真場景僅包含100個節(jié)點,當(dāng)WSN網(wǎng)絡(luò)規(guī)模更大時,網(wǎng)絡(luò)的性能提升會更好。 本文提出了適用于基于能量和組合密鑰的安全路由算法。本算法借鑒鄰近節(jié)點信息交換的思想,在成簇過程中與探測范圍內(nèi)的節(jié)點交換能量信息,保護低能量節(jié)點,有效延長了網(wǎng)絡(luò)的穩(wěn)定周期,并且加入了基于CPK的安全機制,能夠在一定程度上防御有害節(jié)點的入侵。該算法具有分布式算法的優(yōu)點,無需任何全局信息和地理位置信息,因此有很好的可擴展性。 1 李善倉,張克旺.無線傳感器網(wǎng)絡(luò)原理與應(yīng)用.北京:機械工業(yè)出版社,2008 2 趙海霞.無線傳感器網(wǎng)絡(luò)安全路由研究.國防科學(xué)技術(shù)大學(xué)碩士學(xué)位論文,2005 3 Wood A,Stankovic J.Denial of service in sensor networks.IEEE Computer,2002,35(10):54~62 4 Yu B,Xiao B.Detecting selective forwarding attacks in wireless sensor networks.In:Proceedings of the 2nd International Workshop on Security in Systems and Networks,Greece,2006 5 Newsome J, Shi E, Song D, et al.The sybil attack in sensor networks analysis and defenses.In:Proceedings of Third Int'1 Symposium on Information Processingin SensorNetworks,Berkeley,2004 6 嚴(yán)國強.無線傳感器網(wǎng)絡(luò)路由協(xié)議研究.蘭州西北工業(yè)大學(xué)碩士學(xué)位論文,2007 7 何美紅,徐成謙,張東良.基于NS2的LEACH協(xié)議仿真與分析.電子測量技術(shù),2009,32(1):40~423.3 數(shù)據(jù)穩(wěn)定傳輸
4 仿真實驗
5 結(jié)束語