張 倩
(武警西安指揮學(xué)院教研部信息技術(shù)教研室,陜西西安 710038)
近年來,國內(nèi)倍受關(guān)注的物聯(lián)網(wǎng),使得無線傳感器網(wǎng)絡(luò)(WSNs)的應(yīng)用范圍深入到了社會的各個領(lǐng)域,如軍事、環(huán)境和安全監(jiān)視、設(shè)備跟蹤等。2010年11月,美國谷歌公司向外界公布了汽車在無人駕駛技術(shù)上取得的成果。車中裝載的各類傳感器識別車輛、行人及障礙物的無人駕駛系統(tǒng),比精力不集中或者疲勞駕駛的司機更安全可靠。
與傳統(tǒng)網(wǎng)絡(luò)相比,WSNs具有節(jié)點分布密集、存儲空間和計算能力有限、周邊環(huán)境惡劣、易遭受物理破壞等特點。這使得在WSNs中進行節(jié)點間認證等安全協(xié)議變得非常困難。
本文提出了一種WSNs中的強實體認證協(xié)議。協(xié)議提供了基于秘密共享的認證服務(wù),通過多個節(jié)點對用戶進行認證,能夠有效防止偽裝用戶加入網(wǎng)絡(luò);同時,當單個或幾個節(jié)點被捕獲時,認證協(xié)議仍然可以執(zhí)行,具有良好的抗攻擊能力。實驗分析結(jié)果表明:協(xié)議具有強認證的特性,能夠保障雙方實體相互認證,同時具有低計算量和存儲量。
王剛等人在文獻[1]中提出了基于身份的WSNs認證協(xié)議,該協(xié)議克服了公鑰密碼體制開銷大的缺點,適用于多播網(wǎng)絡(luò),但對于普通的分布式網(wǎng)絡(luò)不是高效的。
WSNs分布式認證方案[2]中沒有使用復(fù)雜的密碼算法,而是采用了秘密共享和組群同意的密碼學(xué)概念,降低了認證方案中的計算復(fù)雜度和內(nèi)存存儲量。
強用戶認證方案[3]中使用了密鑰長度更短,卻與RSA具有同等安全強度的橢圓曲線加密算法。方案中還采用了多個節(jié)點共同認證一個用戶的方法,有效地抵御了少數(shù)節(jié)點被捕獲的攻擊。但是方案中使用的ECC公鑰算法,計算量較大,而且當某個非法用戶發(fā)送偽造證書時,節(jié)點也要完成所有步驟才能發(fā)現(xiàn),能量很容易被耗盡。
Shamir的門限秘密共享方案[4,5]通過構(gòu)造一個k-1 次多項式,并將所要共享的秘密作為這個多項式的常數(shù)項,將秘密分成n個秘密份額分別分給k個參與者。k個或k個以上的參與者合作利用插值公式可以恢復(fù)出所共享的秘密,但少于k個參與者合作不能得到關(guān)于共享秘密的任何信息。
本文提出的認證協(xié)議中,合法用戶與基站共享秘密D?;緯悦孛蹹和網(wǎng)絡(luò)中各個節(jié)點的身份標識ID為參數(shù),為每個節(jié)點計算其秘密份額。希望加入網(wǎng)絡(luò)的用戶只有計算出每個節(jié)點的秘密份額時才可以加入網(wǎng)絡(luò)。網(wǎng)絡(luò)中的每個節(jié)點將收到的秘密份額與自己存儲的份額相比較,如果相同,則通過對該用戶的認證;當有N個節(jié)點認證成功時,該用戶才可以正式加入網(wǎng)絡(luò)。
協(xié)議的系統(tǒng)模型由基站(BS)和大量功能相同的傳感器節(jié)點構(gòu)成,每個節(jié)點擁有唯一的身份標識ID,如圖1。
圖1 協(xié)議系統(tǒng)模型Fig 1 Protocol system module
具體模型如下:
1)基站(BS)可以看成是可信第三方,在BS中保存了合法傳感器用戶表和合法節(jié)點列表。BS負責選取秘密D,并計算秘密份額。在節(jié)點被部署到監(jiān)測區(qū)域前,BS為每個節(jié)點載入身份標識IDi和秘密份額ShIDi。在秘密更新時,BS還負責重新隨機選取秘密并將秘密發(fā)送給節(jié)點。
2)在網(wǎng)絡(luò)中,每個節(jié)點被載入相同的程序,對周圍的環(huán)境進行監(jiān)測和數(shù)據(jù)收集,并將收集到的數(shù)據(jù)傳送給節(jié)點。每個節(jié)點屬于一個子群,子群中節(jié)點的數(shù)量是確定的,而群內(nèi)的節(jié)點可以是動態(tài)的。節(jié)點負責對新加入的用戶進行身份認證。
3)用戶(user,U)可以是手機、節(jié)點、PC機等,它們擁有比一般節(jié)點更強的計算能力。當用戶希望加入網(wǎng)絡(luò)時,它需要與子群中的節(jié)點進行交互,只有節(jié)點對用戶認證成功后,用戶才可以加入網(wǎng)絡(luò),進行數(shù)據(jù)查詢、收集等操作。
4)協(xié)議中,攻擊者能夠捕獲一個或多個傳感器節(jié)點。攻擊者能得到被捕獲節(jié)點內(nèi)的所有信息,包括ID號,秘密份額等;攻擊者還可以對節(jié)點內(nèi)的信息和程序進行篡改。
5)協(xié)議采用了典型的“詢問—應(yīng)答”模式進行身份認證。協(xié)議中使用Shamir的基于拉格朗日插值多項式的秘密共享方案。用戶加入傳感器網(wǎng)絡(luò)時,它首先向通信范圍內(nèi)的N個節(jié)點廣播請求信息。節(jié)點收到請求信息后,向用戶發(fā)送身份標識ID。以節(jié)點ID為參數(shù),用戶分別計算出節(jié)點的份額ShIDi,并將份額分別傳送給節(jié)點;節(jié)點收到ShIDi后與自己存儲的份額ShIDi進行比較,如果相同,認為用戶是合法的,否則,拒絕用戶加入網(wǎng)絡(luò)。當至少有t個節(jié)點認證成功,用戶才可以加入網(wǎng)絡(luò)。
初始化階段時,BS首先選取秘密D和多項式系數(shù)a1,a2,…,ak-1,并發(fā)送給合法用戶。用戶在加入傳感器網(wǎng)絡(luò)時會利用D計算各個節(jié)點的份額。其次,BS用以下方式將秘密分為份額:
1)在GF(q)中隨機選擇k-1 個數(shù):a1,a2,…,ak-1;
2)令f(x)=D+a1x+a2x2+ … +ak-1xk-1;
3)在GF(q)中隨機選擇n個不同的數(shù)x1,x2,…,xn,并計算ShIDi=f(IDi),1≤IDi≤N。
1)首先,用戶向通信范圍內(nèi)的N個節(jié)點廣播請求信息:IDU‖RU;
2)節(jié)點收到用戶的請求后,向用戶回復(fù)消息:IDi‖IDU‖RU‖Ri;
3)用戶收到節(jié)點的身份信息后,利用Shamir的門限秘密共享方案計算節(jié)點的份額Sh'IDi=f'(IDi),1≤IDi≤N,發(fā)送ShIDi給節(jié)點;
4)節(jié)點將ShIDi'與自己存有的秘密份額ShIDi進行比較,如果相同,則認為該用戶合法,否則,拒絕該用戶加入網(wǎng)絡(luò)。最后,至少有t個節(jié)點認為該用戶合法,該用戶才可以正式加入WSNs。具體的強實體認證協(xié)議過程如下:
3)U計算份額f(x)=D+a1x+a2x2+ … +ak-1xk-1.令Sh'IDi=f'(IDi),1≤IDi≤N;
4)U→SIDi:IDi‖Ri‖RU‖MACIDi‖IDi'(ShIDi'‖IDU‖Ri‖RU),1≤IDi≤N;
5)SID i:計算MACIDU‖IDi(ShIDi‖IDU‖Ri‖RU),認證MAC(*)?MAC'(*)。
協(xié)議中使用隨機數(shù)Ri,RU不僅保證了數(shù)據(jù)的新鮮性,而且達到了雙方相互確認身份的目的。同時,消息中加入的用戶和節(jié)點的身份信息達到了實體認證的目的。
由于WSNs是不安全的,因此,必須周期性地更新使用的秘密D。秘密更新在動態(tài)認證中是非常重要的階段,當一個或多個節(jié)點失效或被捕獲時,BS需要及時更新信息,以防止由于節(jié)點中的信息泄露,導(dǎo)致整個網(wǎng)絡(luò)的不安全。為了更新秘密D,BS需要隨機選擇一個秘密并將它分為N個份額,這里考慮2種情況:
1)被動更新:當一個節(jié)點或多個節(jié)點被捕獲了,BS查找成員列表,刪除被捕獲節(jié)點的ID,向整個網(wǎng)絡(luò)廣播刪除該節(jié)點的信息,并分別發(fā)送新的秘密和份額給合法用戶和節(jié)點;
2)主動更新:當網(wǎng)絡(luò)正常運行時,BS定時選取新的秘密D,然后分別發(fā)送新的秘密和份額給用戶和節(jié)點。
1)強認證性
協(xié)議中,用戶在加入網(wǎng)絡(luò)之前,必須向傳感器網(wǎng)絡(luò)中的N個節(jié)點發(fā)送請求信息,當至少t個節(jié)點對用戶認證成功時,用戶才可以加入網(wǎng)絡(luò)進行信息收集。此時,攻擊者必須同時捕獲t個節(jié)點才能成功加入網(wǎng)絡(luò),增加了網(wǎng)絡(luò)攻擊的難度;另一方面,方案中并不是通過單一節(jié)點來認證用戶,如果這個節(jié)點是不安全的,那么,非法用戶都可以通過該節(jié)點加入網(wǎng)絡(luò)。方案通過N個節(jié)點對用戶同時認證來判定用戶的合法性,如果1個或d個節(jié)點失效或被捕獲,只要d<N-t,協(xié)議仍可以對用戶進行驗證,從而實現(xiàn)了強認證性。
2)雙方認證
協(xié)議在認證階段,進行通信的用戶和傳感器節(jié)點能夠進行相互認證。現(xiàn)有的很多WSNs中的實體認證方案都只能是普通節(jié)點對用戶進行認證,用戶卻無法確定節(jié)點的身份。通過在方案中建立雙方認證形式,用戶和節(jié)點可以確信它們的通信對方正是它們所聲明的。
3)抗節(jié)點捕獲性
比起單一節(jié)點認證用戶的方法,方案采用多個節(jié)點共同認證用戶的方法,當有1個或幾個節(jié)點失效或被捕獲時,只要數(shù)量不超過N-t,就不會影響方案的正常執(zhí)行。一個非法用戶要想加入網(wǎng)絡(luò),它必須能夠捕獲足夠多的節(jié)點,這無疑增加了難度,因此,增強了傳感器網(wǎng)絡(luò)的魯棒性。
實驗編寫了nesC程序來實現(xiàn)協(xié)議中的算法,并加載到IRIS 節(jié)點(Atmegal 1281 處理器,7.37MHz,8bit,128program Memory,SRAM 8kB)上,作為用戶實體請求加入網(wǎng)絡(luò)。用戶的計算量與子群中的節(jié)點個數(shù)N和多項式的指數(shù)k相關(guān),表1列出了不同的N與k下用戶的執(zhí)行時間。
根據(jù)表1中的數(shù)據(jù),當k值一定時,作出了子群中節(jié)點數(shù)量N與計算時間T的關(guān)系曲線如圖2所示。
當N值一定時,多項式指數(shù)k與用戶計算時間的關(guān)系曲線如圖3。
圖2中選取k=5,6,7作為樣本,可以看出:隨著N的增大,用戶的計算時間呈線性增長;圖3中選取N=20,30,40,50作為樣本,用戶計算時間隨k的增加呈指數(shù)增長。與基于公鑰算法的實體認證方案比較,本協(xié)議大大降低了計算量,更能適應(yīng)受限的傳感器網(wǎng)絡(luò)。此外,實驗編寫的程序經(jīng)過編譯后加載到IRIS上,實際僅占用ROM 3124字節(jié),RAM為408字節(jié)(N=55時),存儲上占用的空間相對較小。
表1 用戶計算時間Tab 1 Computing time of user
圖2 N與用戶計算耗時關(guān)系Fig 2 Relationship between N and computing time of user
圖3 k與用戶計算時間的關(guān)系Fig 3 Relationship between k and computing time of user
文獻[2]中,挑戰(zhàn)者群內(nèi)的所有節(jié)點都需要重構(gòu)秘密,增加了計算量,而在本方案中每個認證節(jié)點只要對比接收到的秘密份額與存儲的份額是否相同即可,計算量相對較小;另一方面,Szewczyk R等人的研究[6]表明:使用Micadot節(jié)點發(fā)送一個字節(jié)數(shù)據(jù)的能耗可以用來執(zhí)行800條指令。在文獻[2]中,節(jié)點不但要進行廣播通信,而且群內(nèi)所有節(jié)點要相互協(xié)同通信,能量消耗大,且容易造成信息碰撞。本方案中用戶與節(jié)點間只進行了“三次握手”便完成了認證,減小了通信耗能。
與文獻[3]提出的基于ECC的強認證方案相比,本方案采用的是秘密共享機制,用戶和節(jié)點之間認證所需的計算時間和內(nèi)存占用量都遠遠小于文獻[3]中的方案。
3種方案的能量消耗對比如圖4。
圖4 三種認證方案能量消耗對比Fig 4 Energy consumption contrast of three authentication schemes
本文提出了一種WSNs中的強實體認證協(xié)議,協(xié)議中的用戶加入網(wǎng)絡(luò)時必須提供合法的秘密D。協(xié)議具有以下2個特點:1)協(xié)議采用有效的機制實現(xiàn)了可交互式的實體認證;2)當有幾個節(jié)點被捕獲時,方案的強認證性能夠保證協(xié)議的正常執(zhí)行。實驗分析結(jié)果表明:協(xié)議具有較高的認證效率,同時具有較低的計算量和存儲量。
[1]王 剛,溫 濤,郭 權(quán),等.WSNs中基于身份的高效多播認證協(xié)議[J].通信學(xué)報,2009,30(6):64 -69.
[2]Bauer K,Lee H.A distributed authentication scheme for a wireless sensing system[C]//Proceedings of the 2nd International Workshop on Networked Sensing Systems,2005:210.
[3]Benenson Z,Gedicke N,Raivio O.Realizing robust user authentication in sensor networks[C]//Workshop on Real-World Wireless Sensor Networks,2005:135.
[4]Shamir A.How to share a secret[J].Communications of the ACM,1979,22(11):612.
[5]Blakley G.Safeguarding cryptographic keys[C]//Proceedings of the National Computer Conference,1979:313.
[6]Szewczyk R,F(xiàn)erencz A.Energy implications of network sensor designs.[EB/OL][2005—10—12].http://www.cs.Berkeley.edu/~ szewczyk/cs252/paper.pdf.