謝英輝,彭維捷,蘇秀芝,易葉青
(1. 長沙民政職業技術學院,長沙 410004;2. 長沙商貿旅游學院,長沙 410004; 3. 湖南軟件職業學院,湖南 湘潭 411100;4. 湖南人文科技學院,湖南 婁底 417000)
為了節省有限的帶寬和能量,廣播通信是無線傳感器網絡最基本的通信方式之一。由于傳感器節點價格必須低廉,難以在節點上裝配價格較高的抗攻擊的設施,節點容易受到攻擊者的攻擊;因此在進行廣播通信時,數據受讓方須有對廣播數據包的來歷、是否完整和新鮮性等進行分析識別 的能力[1]。
由于非對稱數字簽名對系統資源的消耗非常大,傳統基于對稱加密的廣播認證機制不適合直接應用于資源受限的傳感器網絡。為此國內外很多學者專門從事基于無線傳感器網絡(wireless sensor networks, WSNs)的廣播認證機制研究。文獻[2]提出了1 種針對WSNs 的稱之為 μTESLA 的容忍丟包的流認證協議,最大的特點就是基于時間高效性,需要通過密鑰的延遲發布進行廣播認證,即先發布數據包,再公布認證密鑰。但在此協議中,當新節點加入網絡時,傳播過程變成了點對點的單播過程,當網絡規模較大時,該廣播協議初的始化的開銷會非常大。為了彌補文獻[2]等工作的不足,文獻[3-4]提出了1 種基于梅克萊(Merkle)樹的多級μTESLA 協議,在初始的過程中采用直接認證方法,大大減少了網絡初始時的開銷。文獻[5]認為在廣播認證方案中,如果延遲密鑰發布,會容易引起拒絕服務(denial of service, DOS)攻擊,因此結合Merkle 散列樹與橢圓曲線密碼技術,提出了1 種無延的廣播認證方法,該方案能抵抗一定的DOS攻擊,但當網絡規模增大時,Merkle 樹的構造開銷也大幅增大,造成內存空間和網絡通信開銷大大增加等問題。文獻[6]提出了基于分級的Merkle 樹廣播認證方案,在很大程度上減低了Merkle 樹的高度,從而有效地降低了網絡節點的內存開銷與通信開銷。文獻[7]提出了網內認證方案,但該方案沒有給出認證機制維護方案。文獻[8]提出了1 種基于混淆多項式技術的廣播認證機制,該機制能對消息的完整性、正確性進行認證,并且開銷低和安全性好。但該方案并不能支持廣播優化。
在無線傳感器網絡中,洪泛是1 個最為簡單的基本廣播策略,洪泛廣播會導致“廣播風暴”問題。為了避免廣播風暴等問題,不少學者研究針對傳感器網絡的廣播優化方法[9]。已有的廣播優化算法大體上可以分為2 類:1)建立1 個稱之為“控制集”的節點集來簡化廣播,其基本思路為在傳感器網絡中選擇一些符合條件的節點構成控制集,WSNs 中的基站先將數據包以廣播方式傳給控制集中的節點,再經節點將數據包轉發給該節點對應的鄰居節點,控制集內的節點之間可以相互轉發數據包,該方法可以避免非控制集節點之間的重復轉發,防止產生廣播風暴問題;2)將傳感器網絡分簇,1 個簇通常是地理位置相鄰的節點的集合,在這些節點集合中通常會有1 個稱之為“簇頭”的節點,簇頭節點則負責簇內的本地廣播。與1)相比,基于簇的廣播優化方法更加側重于簇內資源的優化使用。在文獻[8]中提出的多項式廣播認證方案中,任何節點都能識別廣播數據包是否由源節點發出。但缺點是難以驗證轉發節點的身份,難以抵抗重放攻擊,數據包的可靠程度與轉發節點多少成反比。因此,該方案難支持廣播優化策略。
為此,本文通過構造1 種認證函數,提出1 種能夠識別轉發節點身份的認證機制,以期認證高效,能抵抗重放攻擊,能容忍大量的俘獲節點,并且能夠支持廣播優化策略。
本節提出1 種能夠支持廣播優化的廣播認證機制。
1)假設各個傳感器節點都有足夠的存儲空間用于保存數據、密鑰等。
2)假定整個網絡被細分成很多域,各個域由部分控制集節點和多個成員組成,控制集節點負責維護域內通信/其他域的通信和域間節點數據轉發,控制集節點之間相互連接形成1 個骨干子網,基站向網絡廣播數據包時其過程如下:基站將廣播數據包發送給控制集節點,由控制集點負責將數據包在所屬域內廣播。稱這一骨干子網為整個網絡的轉發層,普通的傳感器節點為校驗層。
3)假設傳感器網絡在部署的一段時間內是安全的,則該方案可利用這段時間完成密鑰預置等初始化工作。
主要考慮2 類典型的攻擊:第1 類外部攻擊,攻擊者沒有俘獲節點,不知道密鑰信息,攻擊者對廣播消息包進行篡改,并試圖讓其他節點接受,稱之為“哄騙攻擊”;或者通過收集一定數量的廣播數據包,從中獲取一些信息,稱之為“串謀攻擊”。第2 類是攻擊者俘獲了一些節點,并得到了節點內的密鑰,并通過妥協節點發動攻擊,稱之為“俘獲攻擊”。
本節主要討論所提出的能支持廣播優化的廣播認證機制,該方案主要包括:認證函數的構建、密鑰預置與廣播消息驗證3 個部分。
2.2.1 認證函數的構建
為了能達到對數據包進行完整性、正確性與安全性進行認證的目的,構建的認證函數需滿足如下條件:通過認證函數處理過的數據值不能太大,這一條件保證了提出的算法具有低開銷的特征。
為了滿足上述條件,設計的安全存儲函數和查詢函數包括3 個部分:1)數據處理部分 ( ,*)G x ;2)傳感器節點身份標識號(identity,ID)號處理部分 ( ,*)H y ,y 表示傳感器節點的ID;3)結果擾動部分sr 和ir,主要用于防止妥協的節點泄露認證函數。綜上所述,首先構造1 個母函數為

2.2.2 密鑰預置
在網絡部署之前,用戶從安全服務器上隨機產生2 個形如式(1)所示的2 個對稱認證函數 ζ( x, y)和 f ( a ,ζ ),它們的形式是一樣的,但系數不同。
每個節點預置以下3 部分信息:
1)每個節點的唯一身份標識號;
2)認證函數 ζ( x, y);
3)節點根據其ID,利用認證函數 f (α ,ζ)生成數據包的校驗函數,如:某個節點的ID 為u,則數據包的校驗函數為:veru(ζ)=f (u,ζ),各節點獲得校驗函數之后刪除 f (α ,ζ)。
2.2.3 廣播數據包的生成、發送與驗證
1)sink 生成廣播數據包(廣播數據包為M,時間戳T ),具體的步驟為:
第1 步,sink計算數據包的指紋信息φM=H(time, M),其中H()為1 個hash 函數,然后將 φM代入到ζ( x, y ),得到1 元函數 ζM( x ) = ζ ( x,φM),其中 x 為轉發節點的ID;
第2 步,將 ζM( x )代入到 f (α ,ζ),得到函數MACM(α , x ) =f (α , gM( x ));
第3 步,將廣播包M,MACM(α , x)發給控制集節點。
2)轉發層驗證的步驟與思路如下:
第1 步,控制集節點u,解析數據包之后計算φu,M=H (ime, M)= φ,將 結 果 代 入 到 ζ( x, y),得ζu,uM=ζ (u ,φu,M),再將 ζu,uM代入到校驗函數中得veru,M=veru(ζu,uM) =f ( u ,ζ ( u,φu,M));
第 2 步,將自身的 ID 代入數據包中的MACM(α , x)函 數,得 到 MACM,u=MACM( u , u)=f (u ,ζ (u ,φ ));
第3 步,判斷MACM,u和veru,M是否相等,若2 個值相等,則將本身的ID 加入廣播數據包,得到M , u ,MACM(α , x)并在所在域內進行廣播;若不相等,則丟棄該數據包。
3)校驗層驗證的步驟與思路如下:
第1 步,校驗層節點v,接收到數據包之后,利用預置hash 函數計算φv,M=H (ime, M)= φ,將φv,M和控制集轉發節點 ID 帶入函數 ζ( x, y),求出ζu,vM=ζ (u ,φv,M),代入校驗函數得verv,M=verv(ζu,vM)= f(v, ζ(u,φv,M));
第2 步,將節點v 的ID 和控制集轉發節點ID代 入 認 證 函 數MACM(α , x), 求 得 MACM,v= MACM(v,u)= f(v, ζ(u,φ));
第3 步,判斷MACM,v和verv,M的值是否相等,若果相等,則認為該廣播數據包是有效,則接收廣播數據包M;否則,則丟棄該數據包。
本文所提出的廣播認證機制與文獻[8]的最大的區別在于,普通節點能夠知道數據包是否從基站發出以及具體由哪個控制集節點轉發,因而能支持基于控制集的廣播優化機制。

式中:當 Nc= τ+1 時,有2τ 個未知數,方程沒有唯一解。倘若攻擊者俘獲更多的節點,并建立方程,則每增加1 個方程將增加1 個未知數,未知數的個數大于方程的個數,因此方程組難以達到滿足唯一解的條件。若攻擊者通過猜測rk的辦法來求解方程組,則rk是長度為r 的隨機數,則猜中1 個隨機數時間復雜度為 Ω ( 2r),那么猜中 τ + 1隨機數的時間負責度則為 Ω(( 2r)τ+1) =Ω(2r(τ+1)),所以破解認證函數的總的時間復雜度為 Ω( 2r(τ+1)),即定理1 的結論成立。
1)在外部攻擊方面。本文所提出的方案,在攻擊者沒有俘獲任何節點的情況下,對于外部攻擊成功的可能性小于為/Lr--11 2 ,這與文獻[8]的結論是一致的。
2)在內部攻擊方面。對于串謀攻擊,在文獻[8]中 當 攻 擊 者 收 集 到 n ≥ τ+1 個 數 據 包mi,MACmi( x )時,攻擊者破解 f ( x ,y )的時間復雜度為 Ω( 2r(τ+1)),其安全性受參數τ 制約,而這種攻擊在本文的方案中基本上是不存在的。當攻擊者俘獲了n ≥ τ+1 個節點時,文獻[8]攻擊者破解f ( x,y )的時間復雜度為 Ω( 2r(τ+1)),本文的方案中破解 認 證 函 數 f (α ,ζM( x ))的 時 間 復 雜 度 均 為Ω( 2r(τ+1)),2 者的安全性是一樣的。
3)在抗重放攻擊方面。在本文的方案中,引入hash 函數結合時間戳來生成認證信息,所以本文提出的廣播認證機制能對數據包的新鮮性進行認證,從而具備抗重放攻擊的能力。文獻[8]中并沒有考慮對數據包的新鮮性進行認證,因而難以抵抗重放攻擊。
在本文所提出的方案中,其存儲開銷包括:節點要存儲自身ID、認證函數和驗證函數。本文的方案在廣播數據包時分為2 個部分:第1 個部分是基站將數據包發送給控制集節點;第2 個部分是控制集節點將數據包廣播給在所屬區域內的普通節點。假定網絡的規模為N,則ID 的大小為Sizeof(ID) = log2N,單位為每個節點的存儲開銷為B (1 + (τ2+ 1)) + sizeof(ID),基站廣播數據包的大小為 B (1 + (τ2+1) ),單位為bit,控制集節點廣播數據包的大小為 B (1 + (τ2+ 1) ) +sizeof(ID),單位為bit。對比文獻[8],本文的方案為了能支撐已有的廣播優化技術,在節點的存儲開銷方面和和廣播數據包的長度方面略有增加。此外,本文能實時驗證廣播數據包,計算耗時約7~90 ms(Mica2 節點測算結果),與已有采用公鑰加密的廣播認證機制[8]相 比,明顯要低。
為了能進一步驗證本文所提方案的有效性,利用MATLAB 軟件建立仿真平臺,對本文所提方案進行仿真。在第3 節中已經對本文所提方案的安全性與節點的存儲開銷進行了分析,因此仿真的重點是測試本文所提算法在不同的網絡規模下的網絡能量消耗情況。
參照文獻[11],仿真實驗的參數設置如下表1 所示。

表1 參數設置表 單位: μJ/bit
網絡規模則設置為1 000~11 000,在本文的方案中,將選取約5%的節點作為控制集節點,τ=2,基站廣播數據包的長度為 B( 1 + (τ2+ 1)),單位為bit,控 制 集 節 點 廣 播 數 據 包 的 長 度 為 B( 1 + (τ2+ 1))+sizeof(ID),單位為bit,式中的B=16,由于基站的能量不受限制,因此沒有統計基站的能量開銷。在文獻[8]中,同樣設置廣播數據包的長度為138+sizeof(ID)單位為bit,同樣不考慮基站開銷。圖1描繪了本文方案的網絡能量開銷與文獻[8]的能量開銷的對比情況。

圖1 網絡能量開銷對比圖
由圖1 可以看出,雖然本文方案由于要支持廣播優化方法,其數據包的長度略大于文獻[8]的數據包的長度,但是文獻[8]在實際廣播的過程是1 個洪泛廣播的過程。從圖2 可以看出,采用洪泛廣播方式會產生很高冗余傳輸[12],數據越多,數據收集效率就越低,認證速度也越慢,因此本文方案的能量消耗要大大低于文獻[8]的能量消耗,并且認證速度也更快。

圖2 數據收集時間(場景一)
廣播認證機制是無線傳感器網絡中的1 種基本的安全協議。本文針對現有的廣播認證機制存在不能支持廣播優化等不足,通過構造1 種認證函數,提出1 種能夠識別轉發節點身份的認證機制,該方案具有效率高,能抵抗重放攻擊、能夠容忍大量的俘獲節點的優點,而且能夠支持廣播優化策略。理論分析和仿真結果表明本文所提方案是可行的和有效的。