摘 要:SPINS安全協(xié)議基于可信基站,為無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸提供了一套安全的解決方案。通過分析SPINS協(xié)議,指出其中存在的不足,并對(duì)其進(jìn)行了三方面的改進(jìn),即引入全局密鑰、支持網(wǎng)絡(luò)擴(kuò)展和加入密鑰更新機(jī)制。分析表明,改進(jìn)的方案具有較好的擴(kuò)展性,能有效支持路由信息的認(rèn)證,新的密鑰更新機(jī)制在一定程度上增加了安全性。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò); 安全; SPINS協(xié)議; 網(wǎng)絡(luò)擴(kuò)展; 密鑰更新
中圖分類號(hào):TP393.08文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2010)06-2331-04
doi:10.3969/j.issn.10013695.2010.06.096
Security research and improvement of SPINS protocol
ZHU Lei, WU Hao, WANG Qingxian
(School of Information Engineering, PLA Information Engineering University, Zhengzhou 450002, China)
Abstract:SPINS security protocol, which is based on the trusted base station, provides a solution for wireless sensor networks security. By analyzing the SPINS, this paper pointed out some existing shortages, and gave three improvements:the global key, network expansion, key update. The following analysis shows that, the improvement scheme has good scalability and effectively supports the authentication of routing messages. The new mechanism of key update increases the security level of WSNs to a certain extent.
Key words:wireless sensor networks(WSNs); security; SPINS protocol; network expansion; key update
無線傳感器網(wǎng)絡(luò)[1~3](WSNs)是一種由大量低成本、資源受限的傳感器節(jié)點(diǎn)通過無線傳輸介質(zhì)連接構(gòu)成的無線網(wǎng)絡(luò),通過節(jié)點(diǎn)間的協(xié)同工作采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中的目標(biāo)信息。WSNs通常配置在無人值守或不可控制的地區(qū),部署前網(wǎng)絡(luò)拓?fù)錈o法預(yù)知,部署后也經(jīng)常變化。其通信環(huán)境是開放的,傳感器節(jié)點(diǎn)部署后需要持續(xù)工作,容易遭受破壞和干擾,暴露的節(jié)點(diǎn)缺乏專門維護(hù),其安全性將受到嚴(yán)重的挑戰(zhàn);同時(shí),傳感器節(jié)點(diǎn)在存儲(chǔ)、計(jì)算、能量和通信帶寬方面的有限性[4],使得其中的安全問題更加難以解決。近些年來,隨著無線傳感器網(wǎng)絡(luò)技術(shù)的發(fā)展以及應(yīng)用領(lǐng)域的不斷擴(kuò)大,WSNs的安全性問題越來越受到重視[5],尤其是一些部署在危險(xiǎn)環(huán)境中的WSNs應(yīng)用,如戰(zhàn)場指揮、商業(yè)安全監(jiān)控等。在這些應(yīng)用中,需要對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密和認(rèn)證保護(hù)。
通常傳感器網(wǎng)絡(luò)由節(jié)點(diǎn)和基站構(gòu)成。連接傳感網(wǎng)與外部網(wǎng)絡(luò)的基站,與普通節(jié)點(diǎn)相比具有較大的存儲(chǔ)空間以及充足的能量供應(yīng),并且能夠保證足夠的安全性,不易受到破壞,存儲(chǔ)其中的秘密也不會(huì)泄露,因此可以認(rèn)為基站是可信的。基于可信基站,Perrig等人[6]提出了無線傳感器網(wǎng)絡(luò)上的安全協(xié)議(security protocols for sensor network,SPINS);LEAP[7]面向大規(guī)模分布式的WSNs,支持網(wǎng)內(nèi)數(shù)據(jù)處理;TinyPK[8]是LEAP的一個(gè)替代品,用非對(duì)稱密碼機(jī)制實(shí)現(xiàn)WSNs的安全;ZigBee[9]是目前業(yè)界流行的一套協(xié)議,為WSNs提供了高安全性,但是能耗較高;此外,TinySec[10]、SenSec[11]、MiniSec[12]和FlexiSec[13]在鏈路層上提出了各自的安全方案。在以上這些協(xié)議中,SPINS安全框架適用于各種無線傳感器網(wǎng)絡(luò),許多相關(guān)研究工作以SPINS作為基礎(chǔ)展開,但是SPINS設(shè)計(jì)上存在著缺乏密鑰的更新機(jī)制、不支持網(wǎng)絡(luò)拓展等一些不足[14,15]。針對(duì)SPINS出現(xiàn)的缺陷,本文提出了一些改進(jìn),在一定程度上提高了協(xié)議的安全性。本文會(huì)用到以下八個(gè)符號(hào):
A,B表示安全對(duì)象,也就是節(jié)點(diǎn);
IDA表示節(jié)點(diǎn)A的id號(hào);
NA表示節(jié)點(diǎn)A產(chǎn)生的一個(gè)nonce隨機(jī)數(shù);
M1|M2表示消息M1和M2的鏈接;
KAB表示節(jié)點(diǎn)A、B之間共享的密鑰;
IV表示初始向量;
{M}(KAB,IV)表示使用密鑰KAB和初始向量IV在某種加密模式下加密所得的密文,加密模式有分組鏈接(CBC)、輸出反饋(OFB)或計(jì)數(shù)器(CTR)模式等;
MAC(KAB,M)表示由密鑰KAB生成的消息M的消息認(rèn)證碼。
1 SPINS協(xié)議
SPINS[6]是Perrig等人提出的一套針對(duì)無線傳感器網(wǎng)絡(luò)的安全解決方案。考慮到傳感器網(wǎng)絡(luò)資源受限的特點(diǎn)以及安全機(jī)制帶來的負(fù)載,SPINS把自己建立在對(duì)稱密鑰體系上,通過兩大組成部分,即SNEP(secure network encryption protocol)和μTESLA(micro timed efficient stream losstolerant authentication),在WSNs中實(shí)現(xiàn)了網(wǎng)絡(luò)中數(shù)據(jù)的機(jī)密性、完整性、真實(shí)性和新鮮性。
SPINS協(xié)議采用節(jié)點(diǎn)和可信基站之間預(yù)共享主密鑰的模型,網(wǎng)絡(luò)部署前每個(gè)節(jié)點(diǎn)都與基站初始化一個(gè)共享的主密鑰。預(yù)共享的一系列主密鑰作為傳感器網(wǎng)絡(luò)中可信計(jì)算基的一部分,確保了整個(gè)SPINS協(xié)議的安全。
在SNEP中,為了達(dá)到雙向認(rèn)證、數(shù)據(jù)機(jī)密性、完整性和新鮮性,使用了計(jì)數(shù)器(counter,CTR)模式的加密機(jī)制和消息驗(yàn)證碼(message authentication code,MAC)。A發(fā)送到B的完整消息是:
A→B:{D}(Kenc,C),MAC(Kmac,C|{D}(Kenc,C))
其中:D表示加密前的消息;Kenc和Kmac分別表示加密密鑰和MAC密鑰;C表示計(jì)數(shù)器的值。在加密時(shí),C和計(jì)數(shù)器鏈接模式提供了加密的語義安全;在MAC時(shí),C與密文數(shù)據(jù)一起鏈接計(jì)算,提供了重放保護(hù)和弱新鮮性。SNEP協(xié)議要實(shí)現(xiàn)強(qiáng)新鮮性,則還需要引入nonce隨機(jī)數(shù)。
μTESLA利用散列函數(shù)的單向特性,將秘密延遲發(fā)布,實(shí)現(xiàn)了對(duì)廣播報(bào)文的認(rèn)證。基站首先使用單向散列函數(shù)H生成一個(gè)單向密鑰鏈{K0,K1,…,Kn}。其中Ki=H(Ki+1),由Ki+1容易計(jì)算得到Ki,而由Ki?jiǎng)t無法計(jì)算得到Ki+1。將網(wǎng)絡(luò)生存時(shí)間分為若干個(gè)時(shí)間片,在每一時(shí)間片對(duì)應(yīng)密鑰鏈中的一個(gè)密鑰。在第i個(gè)時(shí)間片內(nèi),基站發(fā)送認(rèn)證數(shù)據(jù)包,然后延遲一個(gè)時(shí)間δ后公布密鑰Ki。節(jié)點(diǎn)接收到該數(shù)據(jù)包后首先保存在緩沖區(qū)中,等待接收到最新公布的密鑰Ki,然后使用其目前保存的密鑰Kj,并使用Kj=Hi-j(Ki)來驗(yàn)證密鑰Ki是否合法。若合法,則使用Ki認(rèn)證緩沖區(qū)中的數(shù)據(jù)包。使用μTESLA,攻擊者很難獲取或偽造認(rèn)證密鑰,發(fā)布合法的廣播報(bào)文。
SPINS協(xié)議實(shí)現(xiàn)簡單,具有較小的負(fù)載,而且各個(gè)節(jié)點(diǎn)與基站間使用的密鑰不相關(guān),抗毀性好,但是SPINS也存在一些不足[5,14,15]:基站存儲(chǔ)與網(wǎng)絡(luò)中所有節(jié)點(diǎn)對(duì)應(yīng)的主密鑰,需要有較大的存儲(chǔ)空間;SPINS沒有考慮到網(wǎng)絡(luò)擴(kuò)展,部署后不能加入新節(jié)點(diǎn);沒有密鑰更新,SNEP中的加密密鑰和MAC密鑰不會(huì)改變;不能抵御DoS攻擊。
2 改進(jìn)的方案
2.1 引入全局密鑰
在無線傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)參與路由選擇與消息轉(zhuǎn)發(fā)。開放的無線網(wǎng)絡(luò)環(huán)境中傳輸?shù)穆酚尚畔⑷菀妆粣阂夤?jié)點(diǎn)截獲、竄改、重放甚至偽造。廉價(jià)的節(jié)點(diǎn)部署容易受到敵人的物理捕獲,敵人進(jìn)而可以發(fā)起各種形式的攻擊,威脅整個(gè)網(wǎng)絡(luò)的安全。Karlof等人[16]詳細(xì)闡述了WSNs中安全路由面對(duì)的威脅。
在WSNs中,實(shí)現(xiàn)路由安全的一種簡單方法就是提供對(duì)路由消息的驗(yàn)證。SPINS協(xié)議利用μTESLA機(jī)制來解決路由安全,有兩種方法:a)節(jié)點(diǎn)將加密的路由消息傳給基站,基站再用μTESLA機(jī)制廣播認(rèn)證的路由消息;b)節(jié)點(diǎn)用μTESLA機(jī)制廣播認(rèn)證的路由消息。前者依賴基站轉(zhuǎn)發(fā)路由消息,通信開銷較高,同時(shí)加重了基站的負(fù)載;后者需要在網(wǎng)絡(luò)中初始化節(jié)點(diǎn)的μTESLA初始密鑰,這是通過點(diǎn)到點(diǎn)的單播加密傳輸完成的,對(duì)于節(jié)點(diǎn)數(shù)為n的網(wǎng)絡(luò)初始化通信開銷為O(n2)。
通過引入網(wǎng)絡(luò)共享的全局密鑰Kg,驗(yàn)證路由消息,可以避免使用μTESLA機(jī)制降低網(wǎng)絡(luò)負(fù)載。可驗(yàn)證的路由消息格式為DATA,MAC(Ktg,DATA),Ktg由Kg臨時(shí)生成。全局密鑰能夠抵抗非法節(jié)點(diǎn)對(duì)路由的破壞,但對(duì)內(nèi)部被捕獲妥協(xié)節(jié)點(diǎn)的攻擊則無能為力。對(duì)這種情況,發(fā)現(xiàn)捕獲節(jié)點(diǎn)以后,網(wǎng)絡(luò)密鑰Kg立即更新,新的網(wǎng)絡(luò)密鑰對(duì)捕獲節(jié)點(diǎn)保密。
1)網(wǎng)絡(luò)密鑰Kg的生成
a)每個(gè)節(jié)點(diǎn)部署時(shí)都存有初始網(wǎng)絡(luò)密鑰Kg0。節(jié)點(diǎn)加入時(shí)由基站判斷當(dāng)前Kg是否為Kg0,如果不是,基站向新節(jié)點(diǎn)發(fā)送加密的Kg。
b)待發(fā)的路由消息在發(fā)送方用臨時(shí)網(wǎng)絡(luò)密鑰Ktg計(jì)算出MAC碼,在接收方用Ktg進(jìn)行驗(yàn)證。構(gòu)造路由報(bào)文時(shí),在報(bào)文中添加一個(gè)由發(fā)方提供的隨機(jī)數(shù)ctr,取目的地址dest、源地址src、報(bào)文長度len連同ctr組成新的隨機(jī)數(shù)R,R=dest|src|len|ctr。Ktg由Kg和隨機(jī)數(shù)R臨時(shí)生成Ktg=FKg(R)。
2)網(wǎng)絡(luò)密鑰Kg的更新
Kg在網(wǎng)絡(luò)中出現(xiàn)節(jié)點(diǎn)妥協(xié)情況下需要進(jìn)行更新。此時(shí),基站隨機(jī)生成一個(gè)新的Kg,并將其加密單播傳送給各個(gè)可信節(jié)點(diǎn)。
2.2 支持網(wǎng)絡(luò)擴(kuò)展
SPINS中基站與新節(jié)點(diǎn)間沒有共享密鑰,也沒有秘密渠道使兩者協(xié)商產(chǎn)生密鑰,因此SPINS不支持網(wǎng)絡(luò)擴(kuò)展,一旦部署后新節(jié)點(diǎn)不能加入網(wǎng)絡(luò)。為了支持網(wǎng)絡(luò)擴(kuò)展,修改了原協(xié)議的密鑰預(yù)共享機(jī)制,使之支持新進(jìn)節(jié)點(diǎn)的加入,然后設(shè)計(jì)了節(jié)點(diǎn)加入的具體流程。
2.2.1 密鑰預(yù)共享機(jī)制
SPINS中基站與網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的主密鑰是事先預(yù)置在基站和各節(jié)點(diǎn)中的,密鑰間有很強(qiáng)的不相關(guān)性,某個(gè)密鑰的泄露對(duì)其他密鑰沒有影響。但是SPINS的預(yù)共享機(jī)制不支持網(wǎng)絡(luò)擴(kuò)展,而且基站需要存儲(chǔ)大量的節(jié)點(diǎn)密鑰。借鑒LEAP[7]中預(yù)主密鑰生成主密鑰的方法,改進(jìn)原協(xié)議中的預(yù)共享機(jī)制,具體機(jī)制如下:
基站中只需預(yù)存一個(gè)預(yù)主密鑰Kpm。普通節(jié)點(diǎn)部署時(shí)根據(jù)預(yù)主密鑰Kpm和節(jié)點(diǎn)的id號(hào)生成初始網(wǎng)絡(luò)密鑰Kg0和節(jié)點(diǎn)的主密鑰Ki,將這兩個(gè)密鑰存入節(jié)點(diǎn)中。計(jì)算方法采用一個(gè)單向的偽隨機(jī)函數(shù)Fx(y)。為了節(jié)省節(jié)點(diǎn)的存儲(chǔ)資源,在這里用MACCBC實(shí)現(xiàn)Fx(y),便于代碼重用。Fx(y)可表示為MAC(x,y)。
Kg0 = FKpm(0)= MAC(Kpm,0)
Ki = FKpm(i)= MAC(Kpm,i)
IVi0 = FKi(0)= MAC(Ki,0)
其中:Ki表示節(jié)點(diǎn)i與基站共享的主密鑰;i表示節(jié)點(diǎn)的id號(hào);IVi0表示節(jié)點(diǎn)i初始的IV。
基站需要節(jié)點(diǎn)的主密鑰時(shí),可以根據(jù)預(yù)存的Kpm和節(jié)點(diǎn)的id號(hào)直接計(jì)算出來。新節(jié)點(diǎn)的部署也很容易,只需計(jì)算它的主密鑰然后存入節(jié)點(diǎn),無須對(duì)基站進(jìn)行處理。改進(jìn)的預(yù)共享機(jī)制支持網(wǎng)絡(luò)擴(kuò)展,同時(shí)保持了SPINS原有節(jié)點(diǎn)間主密鑰的不相關(guān)性,也為基站節(jié)省了存儲(chǔ)空間。
2.2.2 節(jié)點(diǎn)加入流程
新節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),需要對(duì)其進(jìn)行可信驗(yàn)證,即新節(jié)點(diǎn)需要向網(wǎng)絡(luò)出示可信任的憑據(jù)。如果驗(yàn)證成功,則該節(jié)點(diǎn)可以加入網(wǎng)絡(luò),這時(shí)要進(jìn)一步配置網(wǎng)絡(luò)參數(shù),使其加入后能正常工作。如果驗(yàn)證失敗,則將其看做非法節(jié)點(diǎn),拒絕其訪問。在本方案中,節(jié)點(diǎn)可信的憑據(jù)為通過預(yù)置在節(jié)點(diǎn)中的主密鑰Ki計(jì)算而得的節(jié)點(diǎn)MAC密鑰Ki-mac,必備的網(wǎng)絡(luò)參數(shù)有節(jié)點(diǎn)與基站的加密密鑰Kenc、密鑰Kmac、網(wǎng)絡(luò)密鑰Kg等。具體流程(圖1)如下:
a)新節(jié)點(diǎn)S尋找網(wǎng)絡(luò),查找它的鄰居節(jié)點(diǎn)。
b)鄰居節(jié)點(diǎn)N向新節(jié)點(diǎn)S回應(yīng),返回它的id。
c)新節(jié)點(diǎn)S向鄰居節(jié)點(diǎn)N發(fā)送入網(wǎng)認(rèn)證請(qǐng)求。
S→N:data1,MAC(Ksmac,IVs0|data1)
其中:data1是請(qǐng)求標(biāo)志;IVs0為節(jié)點(diǎn)S與基站B共享初始向量的初始值,IVs0 =MAC(Ks,0);Ksmac是S與B共享的MAC密鑰,可由Ks和IVs計(jì)算得到,具體方法見2.3節(jié)。
d)鄰居節(jié)點(diǎn)N向基站B發(fā)送新節(jié)點(diǎn)S的請(qǐng)求消息
N→B:s,data1,MAC(Ksmac,IVs0|data1),MAC(Knmac,IVni|s|data1|MAC(Ksmac,IVs0|data1))
其中:Knmac為鄰居節(jié)點(diǎn)N與基站B共享的MAC密鑰,IVni為當(dāng)前節(jié)點(diǎn)N與基站B的IV。
e)基站B收到新節(jié)點(diǎn)S的入網(wǎng)消息后,通過提取節(jié)點(diǎn)S、N的節(jié)點(diǎn)標(biāo)志s、n,與基站中的黑名單(已妥協(xié)或失效節(jié)點(diǎn))對(duì)比。如果n在黑名單中,則丟棄該消息;如果s在黑名單中,則判斷s為非法節(jié)點(diǎn);如果均不在黑名單中,則計(jì)算出節(jié)點(diǎn)S、N的當(dāng)前MAC密鑰Ksmac、Knmac。利用這兩個(gè)密鑰對(duì)收到的消息進(jìn)行驗(yàn)證,如果驗(yàn)證成功,則可判定新節(jié)點(diǎn)S為合法節(jié)點(diǎn);否則,判斷S為非法節(jié)點(diǎn),拒絕該節(jié)點(diǎn)接入網(wǎng)絡(luò),然后向節(jié)點(diǎn)N發(fā)送驗(yàn)證消息。
這里消息有兩種形式:
(a)如果節(jié)點(diǎn)S非法,則發(fā)送
B→N :data2,MAC(Knmac,IVnj|data2)
其中:data2是非法標(biāo)志,IVnj為當(dāng)前N、B共享的IV。
(b)如果節(jié)點(diǎn)S合法,則發(fā)送
B→N:data2,s,n,{Kg}(Ksenc,IVsj),MAC(Ksmac,IVsj|n|{Kg}(Ksenc,IVsj)),MAC(Knmac,IVnk|data2|s|n|{Kg}(Ksenc,IVsj)|MAC(Ksmac,IVsj|n|{Kg}(Ksenc,IVsj)))
其中:data2是合法標(biāo)志;s為節(jié)點(diǎn)S的id;Kg為當(dāng)前的網(wǎng)絡(luò)密鑰。報(bào)文中{Kg}(Ksenc,IVsj)以及MAC中相應(yīng)的部分是只有當(dāng)前的Kg不為Kg0時(shí)才出現(xiàn),若Kg=Kg0,報(bào)文格式為data2,s,n, MAC(Knmac,IVnk|data2|s|n)。
f)消息到達(dá)節(jié)點(diǎn)N,節(jié)點(diǎn)N對(duì)消息驗(yàn)證。如果消息為步驟e)中的(a)形式且驗(yàn)證成功,則表示新節(jié)點(diǎn)S不合法,鄰居節(jié)點(diǎn)N拒絕新節(jié)點(diǎn)S入網(wǎng),并且之后不會(huì)向節(jié)點(diǎn)S發(fā)送任何消息。
如果消息為步驟e)中的(b)形式且驗(yàn)證成功,則表示節(jié)點(diǎn)S可信,允許其加入網(wǎng)絡(luò),這時(shí)節(jié)點(diǎn)N向S發(fā)送入網(wǎng)消息,如圖1階段f)。
如果消息步驟e)的(b)中包含Kg,N→S:n,{Kg}(Ksenc,IVsj),MAC(Ksmac,IVsj|n|{Kg}(Ksenc,IVsj));否則,N→S:n。其中:n為鄰居節(jié)點(diǎn)N的id。
新節(jié)點(diǎn)S收到該消息后即加入網(wǎng)絡(luò),進(jìn)一步得到當(dāng)前網(wǎng)絡(luò)密鑰Kg。節(jié)點(diǎn)S根據(jù)μTESLA協(xié)議,從基站B取得廣播密鑰鏈當(dāng)前密鑰、μTESLA時(shí)間段間隔等一些初始μTESLA參數(shù),之后便可以驗(yàn)證基站的μTESLA廣播報(bào)文。
2.3 密鑰更新機(jī)制
SPINS沒有提供密鑰更新機(jī)制,節(jié)點(diǎn)部署后網(wǎng)絡(luò)中的密鑰,尤其是關(guān)鍵的加密密鑰、MAC密鑰并不改變。采用密鑰協(xié)商生成新密鑰的方式會(huì)產(chǎn)生大量的通信開銷以及時(shí)延,不適合于WSNs。這里采用的是基于共享變量的密鑰自更新機(jī)制,SPINS中,節(jié)點(diǎn)i與基站通信的消息描述如下:
i→B:{data}(Kenc,IV),MAC(Kmac,IV|{data}(Kenc,IV))
發(fā)送的數(shù)據(jù)以計(jì)數(shù)器模式(CTR)加密,Kenc為雙方的加密密鑰,Kmac為雙方的MAC密鑰。IV為雙方共享的初始向量,每次發(fā)送方發(fā)送一個(gè)消息/接收方收到一個(gè)消息,各自存儲(chǔ)的IV都加1。SPINS中,Kenc、Kmac分別由Ke=MAC(Ki,1)和Km=MAC(Ki,2)計(jì)算得來,在整個(gè)網(wǎng)絡(luò)生存期內(nèi)不會(huì)改變。
為了抵抗密碼分析,在原有的SPINS基礎(chǔ)上加入密鑰更新機(jī)制,使得每次發(fā)送/接收所對(duì)應(yīng)的密鑰都不同。由于WSNs資源有限,網(wǎng)絡(luò)中進(jìn)行密鑰交換,需要消耗一定的能量,帶來一定的延時(shí),并不適合WSNs的應(yīng)用。降低網(wǎng)絡(luò)負(fù)載的一個(gè)較好的辦法是用雙方共享的一個(gè)可變數(shù)值與原有的密鑰k混合,得出一個(gè)共享的新密鑰k′。新的加密密鑰、MAC密鑰可以通過以下公式計(jì)算出來:
Kenc = MAC(Ke,IV), Kmac = MAC(Km,IV)
IV初始值為FKi(0)= MAC(Ki,0),其值隨每個(gè)消息而自加1。因此,每次對(duì)消息加密和MAC驗(yàn)證時(shí)所用的密鑰不同,實(shí)現(xiàn)了密鑰的一次一密,一定程度上增加了SPINS的安全性。發(fā)送方在發(fā)送方向與接收方在接收方向上共享一個(gè)IV,并且保持同步,在收發(fā)雙方之間應(yīng)該有兩對(duì)相互獨(dú)立的IV。
要保證一次一密,IV必須不能重復(fù),同時(shí),由于采用計(jì)數(shù)器模式加密,也要求IV不能重復(fù),為此采用4 Byte(32 bit)作為IV的長度。可以證明4 Byte的IV不會(huì)出現(xiàn)重復(fù)。32 bit的IV可以表示232個(gè)消息報(bào)文,假設(shè)每個(gè)報(bào)文長度為30 bit,網(wǎng)絡(luò)傳輸速率為250 kbps(這是目前WSNs常用的速率),那么節(jié)點(diǎn)連續(xù)不停地發(fā)送數(shù)據(jù)最少可以發(fā)(232×30)/(250×210×60×60×24)≈ 5.8 d。這個(gè)數(shù)字對(duì)無線傳感器網(wǎng)絡(luò)已經(jīng)足夠了,在網(wǎng)絡(luò)的生存期內(nèi)可以保證IV不會(huì)重復(fù)。
3 性能分析
3.1 安全性能
1)支持網(wǎng)絡(luò)擴(kuò)展沒有改變SPINS的安全性 新節(jié)點(diǎn)能夠加入網(wǎng)絡(luò),是由于節(jié)點(diǎn)中預(yù)置了與基站共享的主密鑰,而基站通過存儲(chǔ)的預(yù)主密鑰和新節(jié)點(diǎn)id可以計(jì)算出相同的節(jié)點(diǎn)主密鑰。假設(shè)基站可信,存儲(chǔ)在其中的預(yù)主密鑰不會(huì)泄露,因此改進(jìn)的方案具有與原方案相同的安全性。
2)加入的密鑰更新機(jī)制實(shí)現(xiàn)了一次一密 每個(gè)報(bào)文使用的密鑰均不相同。與原協(xié)議不變的加密、MAC密鑰相比,改進(jìn)的方案在安全性上有一定程度的加強(qiáng)。
3)使用全局網(wǎng)絡(luò)密鑰驗(yàn)證路由信息的安全 敵人發(fā)動(dòng)的竄改、偽造攻擊容易被基站和應(yīng)用程序發(fā)現(xiàn)。由于Ktg生成時(shí)加入了隨機(jī)數(shù),敵人對(duì)數(shù)據(jù)進(jìn)行重放攻擊或選擇性轉(zhuǎn)發(fā)攻擊也會(huì)被發(fā)現(xiàn)。如果敵人利用非法節(jié)點(diǎn)發(fā)動(dòng)拒絕服務(wù)攻擊(DoS)或洪泛攻擊(HELLO flood),由于惡意數(shù)據(jù)不能被認(rèn)證,容易被基站或應(yīng)用程序發(fā)現(xiàn),并通過訪問控制機(jī)制進(jìn)行隔離。
當(dāng)節(jié)點(diǎn)被俘而未被發(fā)現(xiàn)時(shí),全局密鑰機(jī)制的安全性要稍弱些。SPINS協(xié)議使用μTESLA認(rèn)證,如果某個(gè)節(jié)點(diǎn)被捕獲而妥協(xié),敵人只知道該節(jié)點(diǎn)的μTESLA廣播密鑰鏈,只能偽造該節(jié)點(diǎn)發(fā)布的廣播路由消息。對(duì)于修改的方案,一個(gè)節(jié)點(diǎn)被俘,敵人可以根據(jù)泄露的全局密鑰偽造出任意的路由消息,而一旦發(fā)現(xiàn)被俘節(jié)點(diǎn),兩種方案都能將其從網(wǎng)絡(luò)可信節(jié)點(diǎn)中剔除出去,恢復(fù)路由安全。
表1為協(xié)議修改前后安全性能基本比較,可以看出修改后的方案對(duì)網(wǎng)絡(luò)中的各種攻擊是十分健壯的。
表1 方案路由安全性比較
安全方案竄改偽造重放攻擊選擇性轉(zhuǎn)發(fā)DoS攻擊HELLO flood
原協(xié)議抵御抵御不抵御不抵御不抵御抵御
修改后抵御抵御抵御抵御部分抵御抵御
3.2 負(fù)載分析
在系統(tǒng)中,節(jié)點(diǎn)id為2 Byte,隨機(jī)數(shù)、IV為4 Byte,預(yù)主密鑰、主密鑰、加密密鑰、認(rèn)證密鑰為8 Byte。
3.2.1 存儲(chǔ)開銷
修改后的方案在網(wǎng)絡(luò)部署時(shí)基站只存一個(gè)預(yù)主密鑰8 Byte,普通節(jié)點(diǎn)存儲(chǔ)主密鑰和全局密鑰,共16 Byte。原協(xié)議基站需要存儲(chǔ)8n Byte(n為網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目),普通節(jié)點(diǎn)中存儲(chǔ)開銷為8 Byte。
3.2.2 計(jì)算開銷
基站與節(jié)點(diǎn)通信事先要通過預(yù)主密鑰生成主密鑰、IV、Ke、Km,節(jié)點(diǎn)要通過主密鑰生成IV、Ke、Km。通信時(shí),要臨時(shí)計(jì)算加密密鑰、MAC密鑰或臨時(shí)網(wǎng)絡(luò)密鑰,然后用計(jì)算得來的密鑰加密、認(rèn)證數(shù)據(jù)。計(jì)算開銷最多為一個(gè)加密操作和三個(gè)MAC操作。
3.2.3 通信開銷
在路由安全方面,SPINS利用μTESLA廣播認(rèn)證的路由消息,如果節(jié)點(diǎn)本身不廣播認(rèn)證路由,通過將路由信息加密傳給基站,利用基站廣播,那么通信開銷為一個(gè)單播消息和一個(gè)廣播消息;如果節(jié)點(diǎn)自己廣播認(rèn)證路由消息,通信開銷為一個(gè)廣播消息,但是節(jié)點(diǎn)在之前必須將自己的μTESLA初始密鑰通過基站發(fā)到其他節(jié)點(diǎn)中,通信開銷為n個(gè)單播消息。改進(jìn)后的方案節(jié)點(diǎn)發(fā)送認(rèn)證路由消息的通信開銷為一個(gè)廣播消息。
為了支持網(wǎng)絡(luò)擴(kuò)展,新節(jié)點(diǎn)加入網(wǎng)絡(luò)需要的通信開銷為四個(gè)單播消息。
3.2.4 可擴(kuò)展性
如果傳感器節(jié)點(diǎn)數(shù)目增加,傳感器節(jié)點(diǎn)需要存儲(chǔ)的密鑰數(shù)量幾乎保持不變。對(duì)傳感器節(jié)點(diǎn)計(jì)算能力、通信負(fù)荷要求也是確定的,因此修改方案是可擴(kuò)展的。
表2為兩種方案負(fù)載的基本比較。通信開銷的單位為一個(gè)加密消息長度。修改的方案擴(kuò)展性好,對(duì)基站的存儲(chǔ)需求降低,而且計(jì)算和通信開銷沒有明顯增加。
表2 方案負(fù)載比較
安全方案
存儲(chǔ)開銷
計(jì)算開銷
通信開銷
路由安全節(jié)點(diǎn)加入
可擴(kuò)展性
原協(xié)議基站8n Byte,節(jié)點(diǎn)8 Byte一個(gè)ENC+一個(gè)MAC2或n+1無差
修改后基站8 Byte,節(jié)點(diǎn)16 Byte一個(gè)ENC+三個(gè)MAC14較好
4 結(jié)束語
SPINS是一種基于可信基站的無線傳感器網(wǎng)絡(luò)安全協(xié)議。本文在分析SPINS的基礎(chǔ)上,針對(duì)其存在的不支持網(wǎng)絡(luò)拓展、無密鑰更新機(jī)制等問題,提出了相應(yīng)的改進(jìn)措施。分析表明,本方案對(duì)網(wǎng)絡(luò)擴(kuò)展有較好的支持,自更新的密鑰機(jī)制在一定程度上增強(qiáng)了SPINS的安全性,全局網(wǎng)絡(luò)密鑰驗(yàn)證路由信息降低了通信開銷。
參考文獻(xiàn):
[1]任豐原,黃海寧,林闖.無線傳感器網(wǎng)絡(luò)[J].軟件學(xué)報(bào),2003,14(7):1282-1290.
[2]KARL H,WILLIG A. 無線傳感器網(wǎng)絡(luò)協(xié)議與體系結(jié)構(gòu)[M]. 邱天爽,等譯. 北京:電子工業(yè)出版社,2007:6-50.
[3]AKYILDIZ I F,SU W,SANKARASUBRAMANLAM Y,et al.Wireless sensor networks:a survey[J]. Computer Networks,2002,38 (4):393-422.
[4]HILL J,SZEWCZYK R,WOO A,et al.System architecture directions for networked sensors[J].ACM SIGPLAN Notices,2000,35(11):93-104.
[5]蘇忠,林闖,封富君,等.無線傳感器網(wǎng)絡(luò)密鑰管理的方案和協(xié)議[J].軟件學(xué)報(bào),2007,18(5):1218-1231.
[6]PERRIG A,SZEWCZYK R,WEN V,et al.SPINS: security protocols for sensor networks[J]. Wireless Networks,2002,8(5):512-534.
[7]ZHU S,SETIA S,JAJODIA S.LEAP: efficientsecurity mechanisms for largescale distributed sensor networks[C]//Proc of ACM Conference on Computing and Communication Security.Washington DC:ACM Press,2003:62-72.
[8]WATRO R,KONG D,CUTI S F,et al. TinyPK :securing sensor networks with public key technology[C]//Proc of the 2nd ACM Workshop on Security of Ad hoc and Sensor Networks.Washington DC:ACM Press,2004:59-64.
[9]ZigBee Alliance.ZigBee document 053474r17,version 1.0[S/OL] . (200801). http://www.zigbee.org.
[10]KARLOF C,SASTRY N,WAGNER D.TinySec:a link layer security architecture for wireless sensor networks[C]//Proc of ACM International Conference on Embedded Networked Sensor Systems.Maryland:ACM Press,2004:162-175.
[11]LI T,WU H,WANG X, et al. SenSec:sensor security framework for TinyOS[C]//Proc of the 2nd International Workshop on Networked Sensing Systems.San Diego:IEEE Press,2005:145-150.
[12]LUK M,MEZZOUR G,PERRIG A,et al.MiniSec:a secure sensor network communication architecture [C]//Proc of the 6th International Conference on Information Processing in Sensor Networks. Cambridge:ACM Press,2007:479-488.
[13]DEVESH J,DHIREN P,KANKAR D. FlexiSec:a configurable link layer security architecture for wireless sensor networks[J]. Journal of Information Assurance and Security,2009,4(6):582-603.
[14]程宏兵,王江濤,楊庚.SPINS安全框架研究[J].計(jì)算機(jī)科學(xué),2006,33(8):106-108.
[15]彭志娟,王汝傳,孫力娟.無線傳感器網(wǎng)絡(luò)SPINS安全協(xié)議分析與改進(jìn)[J].無線通信技術(shù),2007,16(1):14-16.
[16]KARLOF C,WAGNER D.Secure routing in wireless sensor networks: attacks and countermeasures[J]. Ad hoc Networks,2003,1(23):293-315.