謝英輝,彭維捷,蘇秀芝,易葉青
(1. 長沙民政職業(yè)技術(shù)學(xué)院,長沙 410004;2. 長沙商貿(mào)旅游學(xué)院,長沙 410004; 3. 湖南軟件職業(yè)學(xué)院,湖南 湘潭 411100;4. 湖南人文科技學(xué)院,湖南 婁底 417000)
為了節(jié)省有限的帶寬和能量,廣播通信是無線傳感器網(wǎng)絡(luò)最基本的通信方式之一。由于傳感器節(jié)點(diǎn)價(jià)格必須低廉,難以在節(jié)點(diǎn)上裝配價(jià)格較高的抗攻擊的設(shè)施,節(jié)點(diǎn)容易受到攻擊者的攻擊;因此在進(jìn)行廣播通信時(shí),數(shù)據(jù)受讓方須有對廣播數(shù)據(jù)包的來歷、是否完整和新鮮性等進(jìn)行分析識別 的能力[1]。
由于非對稱數(shù)字簽名對系統(tǒng)資源的消耗非常大,傳統(tǒng)基于對稱加密的廣播認(rèn)證機(jī)制不適合直接應(yīng)用于資源受限的傳感器網(wǎng)絡(luò)。為此國內(nèi)外很多學(xué)者專門從事基于無線傳感器網(wǎng)絡(luò)(wireless sensor networks, WSNs)的廣播認(rèn)證機(jī)制研究。文獻(xiàn)[2]提出了1 種針對WSNs 的稱之為 μTESLA 的容忍丟包的流認(rèn)證協(xié)議,最大的特點(diǎn)就是基于時(shí)間高效性,需要通過密鑰的延遲發(fā)布進(jìn)行廣播認(rèn)證,即先發(fā)布數(shù)據(jù)包,再公布認(rèn)證密鑰。但在此協(xié)議中,當(dāng)新節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),傳播過程變成了點(diǎn)對點(diǎn)的單播過程,當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí),該廣播協(xié)議初的始化的開銷會非常大。為了彌補(bǔ)文獻(xiàn)[2]等工作的不足,文獻(xiàn)[3-4]提出了1 種基于梅克萊(Merkle)樹的多級μTESLA 協(xié)議,在初始的過程中采用直接認(rèn)證方法,大大減少了網(wǎng)絡(luò)初始時(shí)的開銷。文獻(xiàn)[5]認(rèn)為在廣播認(rèn)證方案中,如果延遲密鑰發(fā)布,會容易引起拒絕服務(wù)(denial of service, DOS)攻擊,因此結(jié)合Merkle 散列樹與橢圓曲線密碼技術(shù),提出了1 種無延的廣播認(rèn)證方法,該方案能抵抗一定的DOS攻擊,但當(dāng)網(wǎng)絡(luò)規(guī)模增大時(shí),Merkle 樹的構(gòu)造開銷也大幅增大,造成內(nèi)存空間和網(wǎng)絡(luò)通信開銷大大增加等問題。文獻(xiàn)[6]提出了基于分級的Merkle 樹廣播認(rèn)證方案,在很大程度上減低了Merkle 樹的高度,從而有效地降低了網(wǎng)絡(luò)節(jié)點(diǎn)的內(nèi)存開銷與通信開銷。文獻(xiàn)[7]提出了網(wǎng)內(nèi)認(rèn)證方案,但該方案沒有給出認(rèn)證機(jī)制維護(hù)方案。文獻(xiàn)[8]提出了1 種基于混淆多項(xiàng)式技術(shù)的廣播認(rèn)證機(jī)制,該機(jī)制能對消息的完整性、正確性進(jìn)行認(rèn)證,并且開銷低和安全性好。但該方案并不能支持廣播優(yōu)化。
在無線傳感器網(wǎng)絡(luò)中,洪泛是1 個(gè)最為簡單的基本廣播策略,洪泛廣播會導(dǎo)致“廣播風(fēng)暴”問題。為了避免廣播風(fēng)暴等問題,不少學(xué)者研究針對傳感器網(wǎng)絡(luò)的廣播優(yōu)化方法[9]。已有的廣播優(yōu)化算法大體上可以分為2 類:1)建立1 個(gè)稱之為“控制集”的節(jié)點(diǎn)集來簡化廣播,其基本思路為在傳感器網(wǎng)絡(luò)中選擇一些符合條件的節(jié)點(diǎn)構(gòu)成控制集,WSNs 中的基站先將數(shù)據(jù)包以廣播方式傳給控制集中的節(jié)點(diǎn),再經(jīng)節(jié)點(diǎn)將數(shù)據(jù)包轉(zhuǎn)發(fā)給該節(jié)點(diǎn)對應(yīng)的鄰居節(jié)點(diǎn),控制集內(nèi)的節(jié)點(diǎn)之間可以相互轉(zhuǎn)發(fā)數(shù)據(jù)包,該方法可以避免非控制集節(jié)點(diǎn)之間的重復(fù)轉(zhuǎn)發(fā),防止產(chǎn)生廣播風(fēng)暴問題;2)將傳感器網(wǎng)絡(luò)分簇,1 個(gè)簇通常是地理位置相鄰的節(jié)點(diǎn)的集合,在這些節(jié)點(diǎn)集合中通常會有1 個(gè)稱之為“簇頭”的節(jié)點(diǎn),簇頭節(jié)點(diǎn)則負(fù)責(zé)簇內(nèi)的本地廣播。與1)相比,基于簇的廣播優(yōu)化方法更加側(cè)重于簇內(nèi)資源的優(yōu)化使用。在文獻(xiàn)[8]中提出的多項(xiàng)式廣播認(rèn)證方案中,任何節(jié)點(diǎn)都能識別廣播數(shù)據(jù)包是否由源節(jié)點(diǎn)發(fā)出。但缺點(diǎn)是難以驗(yàn)證轉(zhuǎn)發(fā)節(jié)點(diǎn)的身份,難以抵抗重放攻擊,數(shù)據(jù)包的可靠程度與轉(zhuǎn)發(fā)節(jié)點(diǎn)多少成反比。因此,該方案難支持廣播優(yōu)化策略。
為此,本文通過構(gòu)造1 種認(rèn)證函數(shù),提出1 種能夠識別轉(zhuǎn)發(fā)節(jié)點(diǎn)身份的認(rèn)證機(jī)制,以期認(rèn)證高效,能抵抗重放攻擊,能容忍大量的俘獲節(jié)點(diǎn),并且能夠支持廣播優(yōu)化策略。
本節(jié)提出1 種能夠支持廣播優(yōu)化的廣播認(rèn)證機(jī)制。
1)假設(shè)各個(gè)傳感器節(jié)點(diǎn)都有足夠的存儲空間用于保存數(shù)據(jù)、密鑰等。
2)假定整個(gè)網(wǎng)絡(luò)被細(xì)分成很多域,各個(gè)域由部分控制集節(jié)點(diǎn)和多個(gè)成員組成,控制集節(jié)點(diǎn)負(fù)責(zé)維護(hù)域內(nèi)通信/其他域的通信和域間節(jié)點(diǎn)數(shù)據(jù)轉(zhuǎn)發(fā),控制集節(jié)點(diǎn)之間相互連接形成1 個(gè)骨干子網(wǎng),基站向網(wǎng)絡(luò)廣播數(shù)據(jù)包時(shí)其過程如下:基站將廣播數(shù)據(jù)包發(fā)送給控制集節(jié)點(diǎn),由控制集點(diǎn)負(fù)責(zé)將數(shù)據(jù)包在所屬域內(nèi)廣播。稱這一骨干子網(wǎng)為整個(gè)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)層,普通的傳感器節(jié)點(diǎn)為校驗(yàn)層。
3)假設(shè)傳感器網(wǎng)絡(luò)在部署的一段時(shí)間內(nèi)是安全的,則該方案可利用這段時(shí)間完成密鑰預(yù)置等初始化工作。
主要考慮2 類典型的攻擊:第1 類外部攻擊,攻擊者沒有俘獲節(jié)點(diǎn),不知道密鑰信息,攻擊者對廣播消息包進(jìn)行篡改,并試圖讓其他節(jié)點(diǎn)接受,稱之為“哄騙攻擊”;或者通過收集一定數(shù)量的廣播數(shù)據(jù)包,從中獲取一些信息,稱之為“串謀攻擊”。第2 類是攻擊者俘獲了一些節(jié)點(diǎn),并得到了節(jié)點(diǎn)內(nèi)的密鑰,并通過妥協(xié)節(jié)點(diǎn)發(fā)動攻擊,稱之為“俘獲攻擊”。
本節(jié)主要討論所提出的能支持廣播優(yōu)化的廣播認(rèn)證機(jī)制,該方案主要包括:認(rèn)證函數(shù)的構(gòu)建、密鑰預(yù)置與廣播消息驗(yàn)證3 個(gè)部分。
2.2.1 認(rèn)證函數(shù)的構(gòu)建
為了能達(dá)到對數(shù)據(jù)包進(jìn)行完整性、正確性與安全性進(jìn)行認(rèn)證的目的,構(gòu)建的認(rèn)證函數(shù)需滿足如下條件:通過認(rèn)證函數(shù)處理過的數(shù)據(jù)值不能太大,這一條件保證了提出的算法具有低開銷的特征。
為了滿足上述條件,設(shè)計(jì)的安全存儲函數(shù)和查詢函數(shù)包括3 個(gè)部分:1)數(shù)據(jù)處理部分 ( ,*)G x ;2)傳感器節(jié)點(diǎn)身份標(biāo)識號(identity,ID)號處理部分 ( ,*)H y ,y 表示傳感器節(jié)點(diǎn)的ID;3)結(jié)果擾動部分sr 和ir,主要用于防止妥協(xié)的節(jié)點(diǎn)泄露認(rèn)證函數(shù)。綜上所述,首先構(gòu)造1 個(gè)母函數(shù)為
2.2.2 密鑰預(yù)置
在網(wǎng)絡(luò)部署之前,用戶從安全服務(wù)器上隨機(jī)產(chǎn)生2 個(gè)形如式(1)所示的2 個(gè)對稱認(rèn)證函數(shù) ζ( x, y)和 f ( a ,ζ ),它們的形式是一樣的,但系數(shù)不同。
每個(gè)節(jié)點(diǎn)預(yù)置以下3 部分信息:
1)每個(gè)節(jié)點(diǎn)的唯一身份標(biāo)識號;
2)認(rèn)證函數(shù) ζ( x, y);
3)節(jié)點(diǎn)根據(jù)其ID,利用認(rèn)證函數(shù) f (α ,ζ)生成數(shù)據(jù)包的校驗(yàn)函數(shù),如:某個(gè)節(jié)點(diǎn)的ID 為u,則數(shù)據(jù)包的校驗(yàn)函數(shù)為:veru(ζ)=f (u,ζ),各節(jié)點(diǎn)獲得校驗(yàn)函數(shù)之后刪除 f (α ,ζ)。
2.2.3 廣播數(shù)據(jù)包的生成、發(fā)送與驗(yàn)證
1)sink 生成廣播數(shù)據(jù)包(廣播數(shù)據(jù)包為M,時(shí)間戳T ),具體的步驟為:
第1 步,sink計(jì)算數(shù)據(jù)包的指紋信息φM=H(time, M),其中H()為1 個(gè)hash 函數(shù),然后將 φM代入到ζ( x, y ),得到1 元函數(shù) ζM( x ) = ζ ( x,φM),其中 x 為轉(zhuǎn)發(fā)節(jié)點(diǎn)的ID;
第2 步,將 ζM( x )代入到 f (α ,ζ),得到函數(shù)MACM(α , x ) =f (α , gM( x ));
第3 步,將廣播包M,MACM(α , x)發(fā)給控制集節(jié)點(diǎn)。
2)轉(zhuǎn)發(fā)層驗(yàn)證的步驟與思路如下:
第1 步,控制集節(jié)點(diǎn)u,解析數(shù)據(jù)包之后計(jì)算φu,M=H (ime, M)= φ,將 結(jié) 果 代 入 到 ζ( x, y),得ζu,uM=ζ (u ,φu,M),再將 ζu,uM代入到校驗(yàn)函數(shù)中得veru,M=veru(ζu,uM) =f ( u ,ζ ( u,φu,M));
第 2 步,將自身的 ID 代入數(shù)據(jù)包中的MACM(α , x)函 數(shù),得 到 MACM,u=MACM( u , u)=f (u ,ζ (u ,φ ));
第3 步,判斷MACM,u和veru,M是否相等,若2 個(gè)值相等,則將本身的ID 加入廣播數(shù)據(jù)包,得到M , u ,MACM(α , x)并在所在域內(nèi)進(jìn)行廣播;若不相等,則丟棄該數(shù)據(jù)包。
3)校驗(yàn)層驗(yàn)證的步驟與思路如下:
第1 步,校驗(yàn)層節(jié)點(diǎn)v,接收到數(shù)據(jù)包之后,利用預(yù)置hash 函數(shù)計(jì)算φv,M=H (ime, M)= φ,將φv,M和控制集轉(zhuǎn)發(fā)節(jié)點(diǎn) ID 帶入函數(shù) ζ( x, y),求出ζu,vM=ζ (u ,φv,M),代入校驗(yàn)函數(shù)得verv,M=verv(ζu,vM)= f(v, ζ(u,φv,M));
第2 步,將節(jié)點(diǎn)v 的ID 和控制集轉(zhuǎn)發(fā)節(jié)點(diǎn)ID代 入 認(rèn) 證 函 數(shù)MACM(α , x), 求 得 MACM,v= MACM(v,u)= f(v, ζ(u,φ));
第3 步,判斷MACM,v和verv,M的值是否相等,若果相等,則認(rèn)為該廣播數(shù)據(jù)包是有效,則接收廣播數(shù)據(jù)包M;否則,則丟棄該數(shù)據(jù)包。
本文所提出的廣播認(rèn)證機(jī)制與文獻(xiàn)[8]的最大的區(qū)別在于,普通節(jié)點(diǎn)能夠知道數(shù)據(jù)包是否從基站發(fā)出以及具體由哪個(gè)控制集節(jié)點(diǎn)轉(zhuǎn)發(fā),因而能支持基于控制集的廣播優(yōu)化機(jī)制。
式中:當(dāng) Nc= τ+1 時(shí),有2τ 個(gè)未知數(shù),方程沒有唯一解。倘若攻擊者俘獲更多的節(jié)點(diǎn),并建立方程,則每增加1 個(gè)方程將增加1 個(gè)未知數(shù),未知數(shù)的個(gè)數(shù)大于方程的個(gè)數(shù),因此方程組難以達(dá)到滿足唯一解的條件。若攻擊者通過猜測rk的辦法來求解方程組,則rk是長度為r 的隨機(jī)數(shù),則猜中1 個(gè)隨機(jī)數(shù)時(shí)間復(fù)雜度為 Ω ( 2r),那么猜中 τ + 1隨機(jī)數(shù)的時(shí)間負(fù)責(zé)度則為 Ω(( 2r)τ+1) =Ω(2r(τ+1)),所以破解認(rèn)證函數(shù)的總的時(shí)間復(fù)雜度為 Ω( 2r(τ+1)),即定理1 的結(jié)論成立。
1)在外部攻擊方面。本文所提出的方案,在攻擊者沒有俘獲任何節(jié)點(diǎn)的情況下,對于外部攻擊成功的可能性小于為/Lr--11 2 ,這與文獻(xiàn)[8]的結(jié)論是一致的。
2)在內(nèi)部攻擊方面。對于串謀攻擊,在文獻(xiàn)[8]中 當(dāng) 攻 擊 者 收 集 到 n ≥ τ+1 個(gè) 數(shù) 據(jù) 包mi,MACmi( x )時(shí),攻擊者破解 f ( x ,y )的時(shí)間復(fù)雜度為 Ω( 2r(τ+1)),其安全性受參數(shù)τ 制約,而這種攻擊在本文的方案中基本上是不存在的。當(dāng)攻擊者俘獲了n ≥ τ+1 個(gè)節(jié)點(diǎn)時(shí),文獻(xiàn)[8]攻擊者破解f ( x,y )的時(shí)間復(fù)雜度為 Ω( 2r(τ+1)),本文的方案中破解 認(rèn) 證 函 數(shù) f (α ,ζM( x ))的 時(shí) 間 復(fù) 雜 度 均 為Ω( 2r(τ+1)),2 者的安全性是一樣的。
3)在抗重放攻擊方面。在本文的方案中,引入hash 函數(shù)結(jié)合時(shí)間戳來生成認(rèn)證信息,所以本文提出的廣播認(rèn)證機(jī)制能對數(shù)據(jù)包的新鮮性進(jìn)行認(rèn)證,從而具備抗重放攻擊的能力。文獻(xiàn)[8]中并沒有考慮對數(shù)據(jù)包的新鮮性進(jìn)行認(rèn)證,因而難以抵抗重放攻擊。
在本文所提出的方案中,其存儲開銷包括:節(jié)點(diǎn)要存儲自身ID、認(rèn)證函數(shù)和驗(yàn)證函數(shù)。本文的方案在廣播數(shù)據(jù)包時(shí)分為2 個(gè)部分:第1 個(gè)部分是基站將數(shù)據(jù)包發(fā)送給控制集節(jié)點(diǎn);第2 個(gè)部分是控制集節(jié)點(diǎn)將數(shù)據(jù)包廣播給在所屬區(qū)域內(nèi)的普通節(jié)點(diǎn)。假定網(wǎng)絡(luò)的規(guī)模為N,則ID 的大小為Sizeof(ID) = log2N,單位為每個(gè)節(jié)點(diǎn)的存儲開銷為B (1 + (τ2+ 1)) + sizeof(ID),基站廣播數(shù)據(jù)包的大小為 B (1 + (τ2+1) ),單位為bit,控制集節(jié)點(diǎn)廣播數(shù)據(jù)包的大小為 B (1 + (τ2+ 1) ) +sizeof(ID),單位為bit。對比文獻(xiàn)[8],本文的方案為了能支撐已有的廣播優(yōu)化技術(shù),在節(jié)點(diǎn)的存儲開銷方面和和廣播數(shù)據(jù)包的長度方面略有增加。此外,本文能實(shí)時(shí)驗(yàn)證廣播數(shù)據(jù)包,計(jì)算耗時(shí)約7~90 ms(Mica2 節(jié)點(diǎn)測算結(jié)果),與已有采用公鑰加密的廣播認(rèn)證機(jī)制[8]相 比,明顯要低。
為了能進(jìn)一步驗(yàn)證本文所提方案的有效性,利用MATLAB 軟件建立仿真平臺,對本文所提方案進(jìn)行仿真。在第3 節(jié)中已經(jīng)對本文所提方案的安全性與節(jié)點(diǎn)的存儲開銷進(jìn)行了分析,因此仿真的重點(diǎn)是測試本文所提算法在不同的網(wǎng)絡(luò)規(guī)模下的網(wǎng)絡(luò)能量消耗情況。
參照文獻(xiàn)[11],仿真實(shí)驗(yàn)的參數(shù)設(shè)置如下表1 所示。
表1 參數(shù)設(shè)置表 單位: μJ/bit
網(wǎng)絡(luò)規(guī)模則設(shè)置為1 000~11 000,在本文的方案中,將選取約5%的節(jié)點(diǎn)作為控制集節(jié)點(diǎn),τ=2,基站廣播數(shù)據(jù)包的長度為 B( 1 + (τ2+ 1)),單位為bit,控 制 集 節(jié) 點(diǎn) 廣 播 數(shù) 據(jù) 包 的 長 度 為 B( 1 + (τ2+ 1))+sizeof(ID),單位為bit,式中的B=16,由于基站的能量不受限制,因此沒有統(tǒng)計(jì)基站的能量開銷。在文獻(xiàn)[8]中,同樣設(shè)置廣播數(shù)據(jù)包的長度為138+sizeof(ID)單位為bit,同樣不考慮基站開銷。圖1描繪了本文方案的網(wǎng)絡(luò)能量開銷與文獻(xiàn)[8]的能量開銷的對比情況。
圖1 網(wǎng)絡(luò)能量開銷對比圖
由圖1 可以看出,雖然本文方案由于要支持廣播優(yōu)化方法,其數(shù)據(jù)包的長度略大于文獻(xiàn)[8]的數(shù)據(jù)包的長度,但是文獻(xiàn)[8]在實(shí)際廣播的過程是1 個(gè)洪泛廣播的過程。從圖2 可以看出,采用洪泛廣播方式會產(chǎn)生很高冗余傳輸[12],數(shù)據(jù)越多,數(shù)據(jù)收集效率就越低,認(rèn)證速度也越慢,因此本文方案的能量消耗要大大低于文獻(xiàn)[8]的能量消耗,并且認(rèn)證速度也更快。
圖2 數(shù)據(jù)收集時(shí)間(場景一)
廣播認(rèn)證機(jī)制是無線傳感器網(wǎng)絡(luò)中的1 種基本的安全協(xié)議。本文針對現(xiàn)有的廣播認(rèn)證機(jī)制存在不能支持廣播優(yōu)化等不足,通過構(gòu)造1 種認(rèn)證函數(shù),提出1 種能夠識別轉(zhuǎn)發(fā)節(jié)點(diǎn)身份的認(rèn)證機(jī)制,該方案具有效率高,能抵抗重放攻擊、能夠容忍大量的俘獲節(jié)點(diǎn)的優(yōu)點(diǎn),而且能夠支持廣播優(yōu)化策略。理論分析和仿真結(jié)果表明本文所提方案是可行的和有效的。