王月嬌,孫達志,2
(1.天津大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,天津300072;2.中國科學(xué)院 信息工程研究所 信息安全國家重點實驗室,北京100093)
無線傳感器網(wǎng)絡(luò) (wireless sensor networks,WSN)是由傳感器節(jié)點以Ad Hoc方式構(gòu)成的無線網(wǎng)絡(luò),由于傳感器節(jié)點大多部署在惡劣環(huán)境,所以很容易遭到攻擊破壞。為了保障無線傳感器網(wǎng)絡(luò)的安全,需要設(shè)計一套完善的身份認(rèn)證方案[1-5]。Zhou在2007年提出了基于橢圓曲線密碼(elliptic curve cryptography,ECC)的認(rèn)證協(xié)議[6],比基于RSA 的認(rèn)證方法更高效,但由于時間戳的引用使其很難獲得推廣 應(yīng) 用。Huang 在2009 年 提 出NACP 協(xié) 議[7],在ECC的基礎(chǔ)上使用hash鏈進行認(rèn)證,但不能實現(xiàn)雙向認(rèn)證且存在重放攻擊和假冒攻擊等問題。隨后Kim 等人對NACP協(xié)議進行改進并提出ENACP 協(xié)議[8],實現(xiàn)了雙向認(rèn)證但仍不能抵抗假冒攻擊。最近Lee等人提出了基于hash值的認(rèn)證方法—PACPs協(xié)議[9],安全性有所提高卻不能解決新節(jié)點加入網(wǎng)絡(luò)等問題。
本文重點分析了無線傳感器網(wǎng)絡(luò)中基于密碼hash函數(shù)的兩類認(rèn)證協(xié)議:基于hash鏈的認(rèn)證協(xié)議ENACP 和基于hash值的認(rèn)證協(xié)議PACPs。針對這兩類協(xié)議的不足,提出新的改進雙向認(rèn)證協(xié)議,新協(xié)議在解決安全認(rèn)證問題的同時增加了舊節(jié)點撤銷機制,滿足了無線傳感器網(wǎng)絡(luò)的實際需求。
hash鏈:產(chǎn)生hash鏈?zhǔn)沁B續(xù)使用哈希函數(shù)h 計算一系列hash值的過程。例如要產(chǎn)生長度為N 的hash鏈,先選擇一個隨機數(shù)r,然后計算h(r)、h2(r)…h(huán)N(r)。由于哈希函數(shù)的單向性,已知h(r)求r在計算上是不可能的。
橢圓曲線離散問題:令E 為階是n 的有限域Fq上的橢圓曲線,P 為橢圓曲線上一點。已知Q =rP 求r 在計算上是不可能的。
無線傳感器網(wǎng)絡(luò)的安全通信主要指傳感器節(jié)點之間的安全通信以及傳感器節(jié)點與基站 (base station,BS)之間的安全通信。基站的能量和存儲能力是不受限制的,它負(fù)責(zé)整個網(wǎng)絡(luò)的運行,并且假設(shè)基站是絕對安全的。但由于傳感器節(jié)點的配置環(huán)境一般比較惡劣,加之無線網(wǎng)絡(luò)本身固有的脆弱性,因而極易受到各種攻擊。
為了保證信息的安全傳遞,需要有一種機制來驗證通信各方身份的合法性。因此必須建立一套綜合考慮安全、效率和性能的傳感器網(wǎng)絡(luò)身份認(rèn)證方案。為了防止攻擊者注入非法信息或篡改數(shù)據(jù),在節(jié)點認(rèn)證身份的同時必須建立會話密鑰。此外,安全認(rèn)證還需要考慮不可信節(jié)點的被發(fā)現(xiàn)、舊節(jié)點的能量耗盡以及新節(jié)點的加入等情況。
下面是文中協(xié)議所用的一些符號。
Ni:第i個傳感器節(jié)點;
IDX:節(jié)點X 的標(biāo)識;
ki/ai:節(jié)點Ni的密鑰/隨機數(shù);
ks/as:BS的密鑰/隨機數(shù);
h:哈希函數(shù);
z:哈希鏈的長度;
Kij:節(jié)點Ni和Nj的會話密鑰;
kAB:節(jié)點A 和B 的共享密鑰;
AS:認(rèn)證集;
HID:AS 中的一個索引;
R_D/R_A:舊節(jié)點撤銷/新節(jié)點加入的標(biāo)志。
對于ENACP 協(xié)議重點介紹初始化和認(rèn)證與建立密鑰階段,細節(jié)可參照文獻 [8]。
(1)初始化
假設(shè)在指定區(qū)域有r 個傳感器節(jié)點。BS首先產(chǎn)生ks、as、z、h并計算hz(ks‖as)。然后為傳感器節(jié)點產(chǎn)生r個密鑰k1,k2…kr,r 個隨機數(shù)a1、a2…as,并將ki、ai、z、h、hz(ks‖as)加載到節(jié)點Ni(1≦i≦r)中。最后BS計算并廣播所有的hz(ki‖ai)以及與橢圓曲線相關(guān)的信息Eq、P、n。
(2)認(rèn)證與建立密鑰
傳感器節(jié)點每次認(rèn)證成功之后更新自己的hash鏈,假設(shè)Ni和Nj分別完成了u 次和v 次認(rèn)證,則此時認(rèn)證Ni和Nj的hash鏈的值分別為hz-u(ki‖ai)和hz-v(kj‖aj)。Ni和Nj之間認(rèn)證與建立密鑰過程如圖1所示。
圖1 ENACP協(xié)議證與建立密鑰階段
(3)新節(jié)點加入
當(dāng)新節(jié)點Nr+1加入網(wǎng)絡(luò)時,BS首先對Nr+1進行初始化,然后廣播與Nr+1有關(guān)的hash鏈信息,最后廣播自己的hash鏈。各節(jié)點收到廣播檢驗消息無誤后確認(rèn)新節(jié)點并更新BS的hash鏈。
(4)hash鏈重定義
在認(rèn)證過程中傳感器節(jié)點的hash鏈長度會越來越短,如果Ni需要重新定義hash鏈則先向BS發(fā)出請求,BS確認(rèn)請求后重置ai、hz(ki‖ai)并把相關(guān)信息廣播給各節(jié)點。各節(jié)點收到廣播確認(rèn)BS身份后更新Ni和BS的hash鏈。
secPACP協(xié)議和ePACP協(xié)議共同組成PACPs協(xié)議,其中ePACP協(xié)議只是對secPACP的存儲進行了優(yōu)化。下面以secPACP協(xié)議為例進行分析,具體內(nèi)容可參照文獻[9]。
(1)初始化
假設(shè)系統(tǒng)最初有N 個傳感器節(jié)點,每個節(jié)點都有自己的密鑰和認(rèn)證集。BS首先為N 個傳感器節(jié)點產(chǎn)生N 個密鑰k1,k2…kN,然后為每個節(jié)點隨機選擇其它m (m<N)個節(jié)點組成認(rèn)證集。例如對于節(jié)點X,BS 為它產(chǎn)生密鑰kX,隨機選擇m 個節(jié)點的密鑰為 {kYi},i∈{1,2…m}。則ASX= {(HIDi,h(IDX‖kYi)},其中HIDi代表kYi的所有者。最后BS將kX、ASX等信息加載到節(jié)點X 中。
(2)認(rèn)證與建立密鑰
假設(shè)傳感器節(jié)點A 與B 是鄰居,且ASA中含有(HIDB、h(IDA‖kB)),則A 可以向B 發(fā)起認(rèn)證與建立會話密鑰的通信,交互過程如圖2所示。
(3)新節(jié)點加入
新節(jié)點NN+1加入到網(wǎng)絡(luò)時,BS將h、kN+1、ASN+1等信息加載到NN+1中,對已存在的節(jié)點沒有多余步驟。
圖2 secPACP協(xié)議與建立密鑰階段
(1)ENACP協(xié)議分析
文獻 [9]指出ENACP協(xié)議對hash鏈的更新造成極大的通信量,而且協(xié)議是有狀態(tài)的,這會產(chǎn)生數(shù)據(jù)不同步問題。文獻 [10]指出ENACP協(xié)議在新節(jié)點加入與hash鏈重定義階段存在假冒攻擊。除了假冒攻擊,攻擊者在這兩個階段修改BS發(fā)出的Nr+1、Ni會造成新節(jié)點Nr+1、合法節(jié)點Ni不能被認(rèn)證,所以協(xié)議也不能抵抗消息篡改攻擊。
ENACP協(xié)議最嚴(yán)重的安全問題是在認(rèn)證與建立密鑰階段仍存在假冒攻擊。由于認(rèn)證身份的hash值明文傳輸,使得攻擊者能假冒通信的任何一方。攻擊者先進行竊聽,攔截hz-u-1(ki‖ai)中斷當(dāng)前認(rèn)證。然后 冒充節(jié)點Ni產(chǎn)生隨機數(shù)ti’并計算相應(yīng)的Ai’、si’、zi’,重放消息hz-u-1(ki‖ai),這樣節(jié)點Nj檢驗hz-u-1(ki‖ai)、zi’、si’都是正確的。最后Nj會錯誤的認(rèn)為攻擊者是節(jié)點Ni,并和攻擊者共享會話密鑰Kij’。
(2)secPACP協(xié)議分析
secPACP協(xié)議主要在效率和功能上存在問題。在認(rèn)證與建立密鑰階段,協(xié)議一共使用4 條消息存在消息冗余。而數(shù)據(jù)發(fā)送所需電量占總電量很大比重,所以減少通信量對節(jié)省傳感器節(jié)點的資源有很大意義。
在功能上,secPACP協(xié)議不能保障網(wǎng)絡(luò)的連通性。協(xié)議要求節(jié)點之間進行通信的前提是認(rèn)證集中包含對方的信息,但是在初始化階段認(rèn)證集中節(jié)點的隨機選擇會造成個別節(jié)點不能與任何節(jié)點進行通信。此外,協(xié)議的新節(jié)點加入階段是無效的。作者指出在新節(jié)點加入階段對已存在節(jié)點沒有任何多余步驟,這樣已存在節(jié)點的認(rèn)證集中沒有新節(jié)點的信息,新節(jié)點便不能與網(wǎng)絡(luò)中原來的節(jié)點進行通信。
(1)初始化
假設(shè)系統(tǒng)最初有N 個傳感器節(jié)點,BS首先產(chǎn)生傳感器節(jié)點X 與BS的共享密鑰kXS(1≦X ≦N),然后為X 產(chǎn)生與其它m (m<N)個節(jié)點的共享密鑰kXYi,并與對應(yīng)的IDYi一起 組 成 認(rèn) 證 集ASX。即ASX= {(IDYi,kXYi),(BS,kXS)},其中i∈ {1,2…m}。最后BS 將ASX、h、橢圓曲線參數(shù)Eq、P、n 加載到X 中,并將 (IDX,kXYi)添加到ASYi中,保證共享密鑰出現(xiàn)在成對的節(jié)點中。
(2)認(rèn)證與建立密鑰
圖3所示為節(jié)點A 和B 的交互過程,具體步驟如下。
圖3 新協(xié)議認(rèn)證與建立密鑰階段
步驟1 A 產(chǎn)生隨機數(shù)tA,計算TA,然后廣播 {IDA,TA}。
步驟2 B 收到消息后產(chǎn)生隨機數(shù)tB,計算TB、KAB、ZB并廣播 {IDB,TB,ZB}。
步驟3 A 收到消息后計算KAB,檢查ZB是否等于h (IDB‖TB‖KAB‖kAB)。如果ZB正確則確認(rèn)B 的身份和會話密鑰KAB,最后計算并廣播ZA。否則丟棄消息,認(rèn)證失敗。
步驟4 節(jié)點B 收到消息后檢查ZA是否等于h(IDA‖TA‖KAB‖kAB)。如果ZA正確則確認(rèn)A 的身份及會話密鑰KAB。否則丟棄消息,認(rèn)證失敗。
傳感器節(jié)點與BS的認(rèn)證與建立會話密鑰過程與上述過程類似。將圖3 中的B、IDB、kAB分別改為BS、BS、kAS即變成A 與BS的認(rèn)證與建立密鑰過程。
(3)舊節(jié)點撤銷
傳感器節(jié)點由于能量耗盡或被攻擊者俘獲等原因會變成無效甚至惡意的節(jié)點,撤銷這些節(jié)點是實現(xiàn)安全認(rèn)證必須要考慮的問題。當(dāng)節(jié)點X 需要退出網(wǎng)絡(luò)時,BS將撤銷X的消息發(fā)送給所有與X 有共享密鑰的節(jié)點Ni,然后再撤銷X 在BS中的記錄。圖4所示為BS與節(jié)點Ni的交互過程。
步驟1 BS產(chǎn)生隨機數(shù)tS,廣播 {R_D,IDNi,tS}。
步驟2 Ni收到消息后產(chǎn)生隨機數(shù)ti,用共享密鑰kis加密 (R_D‖IDNi‖tS‖ti)得到Zi。然后發(fā)送 {IDNi,ti,Zi}。
步驟3 BS用kis對Zi解密并檢查Zi的正確性,如果正確則計算并發(fā)送ZS。
圖4 新協(xié)議舊節(jié)點撤銷階段
步驟4 Ni收到消息后用kis對ZS解密并檢查其正確性。如果正確則認(rèn)證BS并從ASi中刪除 (IDX、kiX)。
(4)新節(jié)點加入
當(dāng)新節(jié)點NN+1加入網(wǎng)絡(luò)時,BS首先對它進行初始化,將ASN+1、h、Eq、P、n 等 信 息 加 載 到NN+1中。假 設(shè)(IDNi、ki(N+1))在ASN+1中,則BS與節(jié)點Ni的通信過程如圖5所示。
圖5 新協(xié)議新節(jié)點加入階段
步驟1 BS產(chǎn)生隨機數(shù)tS,廣播 {R_A,IDNi,tS}。
步驟2 Ni收到消息后產(chǎn)生隨機數(shù)ti,用共享密鑰kis加密 (R_A‖IDNi‖tS‖ti)得到Zi,然后發(fā)送 {IDNi,ti,Zi}。
步驟3 BS用kis對Zi解密檢查Zi的正確性,如果正確則計算并發(fā)送ZS。
步驟4 Ni收到消息后用kis對ZS解密并檢查其正確性。如果正確則認(rèn)證BS,添加(IDN+1、ki(N+1))到ASi中。
新協(xié)議實現(xiàn)了雙向認(rèn)證,利用隨機數(shù)保證了消息的新鮮性;ZA、ZB等值的構(gòu)造體現(xiàn)了消息的完整性;橢圓曲線離散問題保證了會話密鑰的前向安全性;認(rèn)證協(xié)議的實施過程為安全有效的訪問控制提供了基礎(chǔ),下面具體說明新協(xié)議可以抵抗各種攻擊。
抵抗被動攻擊:在認(rèn)證與建立密鑰階段,橢圓曲線離散問題使攻擊者通過竊聽不能獲得tA、tB,hash函數(shù)的單向性使攻擊者不能獲取有關(guān)共享密鑰和會話密鑰的信息。在舊節(jié)點撤銷和新節(jié)點加入階段,認(rèn)證消息通過密文傳輸也可以抵抗被動攻擊。
抵抗重放攻擊:協(xié)議的各階段都產(chǎn)生隨機數(shù)保證消息的新鮮性,認(rèn)證信息包含在hash函數(shù)中沒有以明文形式傳送。因此攻擊者重放之前的消息不能通過認(rèn)證。
抵抗消息篡改攻擊:協(xié)議中ZA、ZB等值的構(gòu)造保證了消息的完整性,可以有效的防止攻擊者對消息進行篡改。
抵抗假冒攻擊:在認(rèn)證與建立密鑰階段,協(xié)議使用含有共享密鑰的hash值作為認(rèn)證信息;在舊節(jié)點撤銷和新節(jié)點加入階段,認(rèn)證消息經(jīng)過共享密鑰加密后傳輸。攻擊者在不知道共享密鑰的情況下不能進行假冒。
下面主要從安全、效率、功能3個方面對協(xié)議進行比較,結(jié)果如表1、表2、表3所示。表1中×表示不存在此類攻擊,○表示存在此類攻擊。結(jié)果表明新協(xié)議和secPACP協(xié)議的安全性高于ENACP協(xié)議。
表1 安全性比較
效率比較的是存儲量、計算量和通信量。以認(rèn)證與建立密鑰階段為例,由表2 可知新協(xié)議只需2 次點乘、2 次hash計算、3條消息,效率明顯優(yōu)于其它兩種協(xié)議。
表2 效率性比較
表3中√表示能夠?qū)崿F(xiàn)此功能,×表示不能實現(xiàn)此功能。結(jié)果表明新協(xié)議在保證網(wǎng)絡(luò)連通性的同時能夠有效實現(xiàn)認(rèn)證與建立會話密鑰,并且可以適應(yīng)無線傳感器網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)變化。
實現(xiàn)認(rèn)證是保證無線傳感器網(wǎng)絡(luò)安全的關(guān)鍵。本文從無線傳感器網(wǎng)絡(luò)的實際需求出發(fā),提出了一個安全、高效、實用的基于hash運算的認(rèn)證協(xié)議。該協(xié)議解決了已有協(xié)議在安全、效率以及功能上的不足,具有很高的應(yīng)用價值。但是由于對稱加密的局限性,當(dāng)節(jié)點被攻擊者俘獲且沒有退出網(wǎng)絡(luò)時,攻擊者不但可以假冒被俘獲的節(jié)點欺騙其它節(jié)點,還可以假冒其它節(jié)點欺騙被俘獲的節(jié)點。如何解決節(jié)點俘獲之后的假冒攻擊,設(shè)計一個具有強安全的公鑰認(rèn)證協(xié)議是今后的研究方向。
表3 功能性比較
[1]Dwoskin J,Xu D,Huang J,et al.Secure key management architecture against sensor-node fabrication attacks [C]//Global Telecommunications Conference. IEEE, 2007:166-171.
[2]Karl H,Willig A.Protocols and architectures for wireless sensor networks[M].Wiley,2007.
[3]Du X,Xiao Y,Guizani M,et al.An effective key management scheme for heterogeneous sensor networks[J].Ad Hoc Networks,2007,5 (1):24-34.
[4]Xiao Y,Rayi V K,Sun B,et al.A survey of key management schemes in wireless sensor networks [J].Computer Communications,2007,30 (11):2314-2341.
[5]Liu A,Ning P.TinyECC:A configurable library for elliptic curve cryptography in wireless sensor networks[C]//International Conference on Information Processing in Sensor Networks.IEEE,2008:245-256.
[6]Zhou Y,Zhang Y,F(xiàn)ang Y.Access control in wireless sensor networks[J].Ad Hoc Networks,2007,5 (1):3-13.
[7]Huang H F.A novel access control protocol for secure sensor networks[J].Computer Standard and Interfaces,2009,31(2):272-276.
[8]Kim H S,Lee S W.Enhanced novel access control protocol over wireless sensor networks[J].IEEE Transactions on Consumer Electronics,2009,55 (2):492-498.
[9]Lee H,Shin K,Lee D H.PACPs:Practical access control protocols for wireless sensor networks[J].IEEE Transactions on Consumer Electronics,2012,58 (2):491-499.
[10]Zeng P,Choo K K R,Sun D Z.On the security of an enhanced novel access control protocol for wireless sensor networks [J].IEEE Transactions on Consumer Electronics,2010,56 (2):566-569.