雷路路,沈繼忠,董利達
(浙江大學信息與電子工程學系,杭州 310027)
WirelessHART是第一個應用于工業過程自動化和控制系統的無線 Mesh網絡通信協議規范[1]。WirelessHART網絡設備中,網絡管理器與安全管理器一起用于安全密鑰的管理與分發[2-3]。W irelessHART網絡提供三類安全服務:源地址端到目的地址端的安全、兩個鄰居設備之間通信的安全和對等通信的安全[3]。W irelessHART網絡層采用計數器模式及密碼分組鏈接模式消息認證碼與 128比特先進加密標準相結合(Counter with Cipher Block Chaining Message Authentication Code in Conjunction with the Advanced Encryption Standard-128 Block Cipher,AES-CCM*)算法實現源地址端到目的地址端的安全。數據鏈路層保證設備之間消息的完整性,但沒有實現數據鏈路層載荷的加密[4]。無線手持設備可與無線現場設備建立對等設備之間的安全會話。WirelessHART網絡提供新鮮性,保密性,完整性和鑒權性安全服務[3],而這些安全服務都需要一個好的密鑰管理機制來保障。WirelessHART協議規范沒有給出網絡密鑰管理的實現規范,因此需對 WirelessHART網絡密鑰管理方案進行研究。
WirelessHART網絡可看作是一種分層的無線傳感器網絡,由基站和節點構成。網絡管理器、網關和安全管理器構成基站,作為密鑰分發中心,不被滲透,且能量、計算、存儲和通信能力不受限制。無線現場設備和無線手持設備作為節點,有可能被滲透,能量、計算、存儲和通信能力有限制。
WirelessHART協議規范規定有八種網絡密鑰,可分為四類[1]:(1)節點與基站共享的密鑰:Join Key,Network Manager Unicast Key,Gateway Unicast Key。(2)全網絡共享的密鑰:Network Key,Network Manager Broadcast Key,Gateway Broadcast Key。 (3)無線手持設備和無線現場設備共享的密鑰:Handheld Key。(4)全網已知的密鑰:Well Known Key。前七種密鑰都需要更新。WirelessHART網絡具有以基站為中心的無線傳感器網絡結構,基站對網絡通信資源統一調度[5],節點之間沒有密鑰協商的能力,除初始的 Join Key,節點所有密鑰的管理都由基站完成。
目前對 WirelessHART網絡密鑰管理方案的研究很少。文獻[1]設計和實現了 WirelessHART網絡密鑰管理方案。該方案中密鑰更新方式為:用Join Key更新 Network Manager Unicast Key和 Gateway Unicast Key,用 Network Manager Unicast Key更新 Join Key,用 Network Key更新 Network Manager Broadcast Key和 Gateway Broadcast Key,用 Network Manager Broadcast Key更新 Network Key。其密鑰更新不是相互獨立的。同時該方案也沒有提供前向安全和后向安全,即當前通信密鑰被破解,攻擊者可正確解密采用先前密鑰加密的數據包以及采用之后密鑰加密的數據包。由于該方案采用的是用密鑰對密鑰實行加密,若破解了當前密鑰,也會導致之前的密鑰被破解,從而之前被截獲的加密包也能被正確解密。另外該方案中基站沒有提供密鑰更新的廣播認證機制,即要求密鑰更新命令來自基站,而不是其他節點。當節點被非法入侵時,節點中的安全算法及密鑰都被獲取,則該節點被捕獲。一旦有節點被捕獲,可獲得 Broadcast Key,被捕獲節點可偽裝為基站,利用該密鑰執行非法的全網共享密鑰更新,對整個網絡造成嚴重的影響。
對傳統無線傳感器網絡密鑰管理方案的研究有很多,但不能很好的適用于 WirelessHART網絡的密鑰管理。SPINS[6]具有通信開銷低、數據認證和重放保護等優點,但沒有考慮通信密鑰更新的問題。LEAP[7]支持四種不同類型的密鑰,分別是單個密鑰、對偶密鑰、簇密鑰和組密鑰,每個節點都要維護這些密鑰,節點的存儲代價很高,不符合 WirelessHART網絡設備資源有限的要求。SELF[8]對廣播密鑰更新次數有限制,另外廣播密鑰更新沒有提供有確認的傳輸,有可能將正常節點誤認為失效或被俘,因而不能滿足 WirelessHART網絡密鑰更新可靠性的要求。文獻[9]和文獻[10]要求節點之間能夠協商密鑰,因而該方案不能適應于 WirelessHART網絡的密鑰管理。
為保證 WirelessHART網絡的前向安全及后向安全、密鑰更新的廣播認證和節點被捕獲后的密鑰更新,本文提出一種基于單向散列函數的 WirelessHART網絡密鑰管理方案。
單向散列函數被廣泛的應用于無線傳感器網絡的密鑰管理當中[11-12]。消息認證碼 MAC算法一般都具有很好的散列特性[6],直接采用 WirelessHART網絡中規定的 CBC-MAC算法設計實現密鑰生成函數,可以滿足生成密鑰單向性和散列性的需求,同時可為資源有限的節點節約代碼空間。
WirelessHART網絡中用于生成網絡層 MIC碼的函數為 f(m,a,N,K)[3],采用的是 CBC-MAC模式的 AES算法,該函數有四個參數:①m,網絡層所需加密的有效載荷;②a,網絡層數據包頭部;③N,13 byte的 NONCE值;④K,16 byte的密鑰。令 m=x,a=x,K=x,其中 x為 16 byte,與 WirelessHART網絡規定的密鑰長度相同,N取 x最低位的 13 byte并記為 x'。則設計得到單向散列函數f(x,x,x',x),并記為 y=h(x),其中輸入值 x,輸出值 y都為 16 byte。
BS基站
Si節點 i
HeldB手持設備節點 B
KJ,i節點 i與基站共享的 Join Key
KNMU,i節點 i與基站共享的 Network Manager Unicast Key
KGWU,i節點 i與基站共享的 Gateway Unicast Key
KH,i節點 i與基站共享的 Handheld Key
KN全網絡共享的 Network Key
KNMB全網絡共享的 Network Manager Broadcast Key
KGWB全網絡共享的 Gateway Broadcast Key
h(x)本文所設計的單向散列函數
Ka,j密鑰鏈號為 a,序號為 j的鏈密鑰
Ek(M)用密鑰 k對消息 M加密所得的消息
NA由基站生成的隨機數
TrustIDi節點 i的加入認證信息
PeerNicki對等設備 i的 Nickname
WirelessHART網絡部署之前要對基站和節點執行密鑰的初始化操作。
(1)基站隨機生成兩個初始鏈密鑰 Ka,0、Kb,0,運用所設計的單向散列函數 h(x)構造兩條長度為n的單向密鑰鏈:{Ka,0,Ka,1,Ka,2…Ka,n-1},{Kb,0,Kb,1,Kb,2…Kb,n-1}。其中 Ka,j+1=h(Ka,j),Kb,j+1=h(Kb,j),根據基站的計算和存儲資源選擇合適的密鑰鏈長度 n。將函數 h(x)和兩條密鑰鏈存儲在基站中,所有節點的初始 KJ,i和認證信息 TrustIDi也預先存儲在基站中;
(2)將密鑰鏈中最末位的鏈密鑰 Ka,n-1和 Kb,n-1及函數 h(x)預置到每個節點中,初始 KJ,i及 TrustIDi也預置入各節點。
首先,節點 Si采用預置的 KJ,i加密認證信息發送給基站。基站認證通過后,采用該 KJ,i加密初始密鑰發送給節點 Si。節點加入網絡及初始密鑰分發步驟如下:
(1)Si?BS:EKJ,i(TrustIDi);
(2)若節點 Si認證通過,則 BS?Si:EKJ,i(KN),EKJ,i(KNMB),EKJ,i(KNMU,i),EKJ,i(KGWB),EKJ,i(KGWU,i);
(3)若節點 Si收到基站發送的初始密鑰,則要發送確認消息給基站
Si?BS:EKJ,i(KN),EKJ,i(KNMB),EKJ,i(KNMU,i),EKJ,i(KGWB),EKJ,i(KGWU,i)。
若無線手持設備 B需與無線現場設備 A建立對等會話,手持會話密鑰分發步驟如下:
(1)HeldB?BS:EKNMU,B(PeerNickA);
(2)BS?HeldB:EKNMU,B(PeerNickA,KH);
(3)BS?SA:EKNMU,A(KH);
(4)SA?BS:EKNMU,A(KH)。
3.5.1 全網絡共享密鑰的更新
首先,基站選擇當前使用的密鑰鏈,不妨取為密鑰鏈 a。然后采用鏈密鑰 Ka,j+1對 Ka,j加密,全網廣播。節點收到廣播包后,采用已有鏈密鑰 Ka,j+1解密該包得到新的鏈密鑰 Ka,j。為驗證廣播包的合法性,節點需判斷 h(Ka,j)是否與 Ka,j+1相等。由于無線鏈路的不確定性,且 WirelessHART數據鏈路層對廣播包提供的是不確認的傳輸,在指定的時間內基站若沒收到節點 Si發送的確認信息,則改用節點與基站共享密鑰 KNMU,i加密 Ka,j發送給節點 Si。全網共享密鑰更新步驟如下:
(1)BS?Si:EKa,j+1(Ka,j);
(2)若發生廣播包超時,則 BS?Si:EKNMU,i(Ka,j);
(3)若節點 Si接收到廣播包,用鏈密鑰 Ka,j+1解密出新的鏈密鑰 Ka,j,若接收到單播包,則用 KNMU,i解密出 Ka,j;
(4)若 h(Ka,j)與 Ka,j+1相等,執行全網共享密鑰更新:KN=h(KN⊕ Ka,j),KNMB=h(KNMB⊕ Ka,j),KGWB=h(KGWB⊕ Ka,j)。然后節點 Si發送確認信息給基站 Si?BS:EKNMU,i(Ka,j)。若 h(Ka,j)與 Ka,j+1不相等,不執行全網共享密鑰更新。
3.5.2 節點與基站共享密鑰,無線手持設備和無線現場設備共享密鑰的更新
基站直接采用 KJ,i加密由基站生成隨機數 NA發送給節點 Si,節點 Si利用 NA計算出下一次使用的共享密鑰。節點與基站共享密鑰更新步驟如下:
(1)BS?Si:EKJ,i(NA);
(2)節點執行 KJ,i=h(KJ,i⊕ NA),KNMU,i=h(KNMU,i⊕ NA),KGWU,i=h(KGWU,i⊕ NA)
KH,i=h(KH,i⊕ NA)。節點 Si返回確認信息給基站 Si?BS:EKJ,i(NA)。
3.5.3 密鑰鏈的更新
本方案采用了兩條密鑰鏈用于發送廣播包并執行全網共享密鑰更新,若一條密鑰鏈用完,則啟用第二條密鑰鏈,并對第一條密鑰鏈執行更新,從而解決全網共享密鑰更新次數受限的問題。當一條密鑰鏈用完,則基站采用 h(x)生成新的密鑰鏈來替換該條密鑰鏈,且將新的鏈密鑰 Ka,n-1或 Kb,n-1采用 KNMU,i加密后分發給各個節點,以便之后基站采用該條密鑰鏈進行全網共享密鑰更新。
由于 WirelessHART網絡中的節點可以工作于混雜監聽模式[13],在該模式下數據鏈路層不會對收到的數據包做任何的過濾,從而網絡中的節點可以觀察到鄰居節點大部分發送和接收的網絡數據包。若某一節點發現鄰居節點沒有按預期要求轉發數據包,而是將數據包丟棄或者執行非法的路由轉發,則該節點即可檢測出鄰居節點行為異常。同時,每個節點必須定期的發送網絡健康報告給基站。因此網絡節點被捕獲后,在一定時間內能被基站檢測到[3]。
若有節點被捕獲,則該節點的全網共享密鑰,節點與基站共享密鑰,單向散列函數都會泄露。一段時間后,基站檢測到該節點被捕獲,則需執行密鑰更新。基站采用 h(x)重新產生兩條密鑰鏈,采用與正常節點共享的 KNMU,i加密新的鏈密鑰 Ka,n-1及 Kb,n-1發送到正常節點,并執行全網共享密鑰的更新:KN=h(KN⊕ Ka,n-1),KNMB=h(KNMB⊕ Ka,n-1),KGWB=h(KGWB⊕ Ka,n-1)。被捕獲節點不能解密出Ka,n-1,即使得到了單向散列函數和當前的全網共享密鑰,也無法執行全網共享密鑰的正確更新。
文獻[1]各個密鑰的更新不是相互獨立的,安全性不高。本文所提出的密鑰管理方案采用了單向散列函數來更新密鑰,提供了前向安全性和后向安全性,即使當前密鑰被破解,也不能推導出之前和以后的密鑰,不能對之前和以后截獲的加密包執行正確的解密。
文獻[1]的設計中沒有提出節點捕獲后密鑰更新的策略。若單個節點被捕獲,攻擊者可得到廣播會話密鑰,由于基站未提供密鑰更新的廣播認證,節點就有可能偽造成基站,采用該廣播會話密鑰加密并執行非法的全網密鑰更新,使整個網絡的密鑰安全都受到威脅。而本文方案提供了基站的廣播認證機制,節點只有收到基站合法的密鑰更新命令時才執行密鑰更新。單個節點被捕獲,只會影響該節點與基站之間的通信。另外被捕獲節點在被基站檢測出來之前,被捕獲節點能獲得數據鏈路層密鑰,可能對網絡中的數據包進行非法路由,但 WirelessHART網絡的路由調度完全由基站統一管理,被捕獲節點對網絡的影響有限。當基站檢測出被捕獲節點并執行全網密鑰更新之后,被捕獲節點就不能獲知當前的通信密鑰,不再對網絡進行影響。因而本文方案具有更好的網絡被攻擊的抵抗性。
這里的負載指的是建立密鑰管理方案所需要消耗的資源,包括通信能耗,計算能耗及存儲開銷。
4.3.1 通信能耗分析
采用 MATLAB仿真平臺將本文的密鑰管理方案和文獻[1]方案的通信能耗進行對比分析。能量模型采用文獻[14]的無線信道能量消耗自由空間模型,發送一個 k比特的數據包到距離發送端為 d的節點需消耗的能量為:

接收該數據包需消耗的能量為:

通信能耗仿真主要參數如表 1所示,其基本參數引用文獻[14]。分析 WirelessHART網絡數據包格式可知,密鑰管理包長度設為 640比特較為合適。根據三類密鑰更新頻率的不同,有 P>M>Q。考慮不同網絡規模下的節點平均通信能耗及基站鄰居節點剩余能量情況。其中節點平均通信能耗為網絡中所有節點的總密鑰管理通信能耗除以節點個數。假設基站所有鄰居節點的地位相同,則可采用任意基站鄰居節點的剩余能量作為評價指標。考慮到 WirelessHART網絡的大小,網絡規模可設置為 25,50,100,150,200個節點,基站位置和節點位置都已知并且固定,密鑰的分發和更新都采用相同的路由。

表1 通信能耗仿真主要參數
圖1和圖 2分別給出了不同網絡規模下本文方案和文獻[1]方案的節點平均通信能耗和基站鄰居節點剩余能量情況。由圖 1可知,本文方案的設計比文獻[1]方案至少節省 50%密鑰管理通信能耗,且隨著網絡規模的增大,通信能耗節省的比例也在增大。由于網絡規模增大,離基站遠的節點更多,這些節點需更多的跳數才能與基站通信,從而平均通信能耗也會增加。由圖 2可知,本文方案中基站鄰居節點剩余能量比文獻[1]方案的大,且隨著網絡規模的增加,并不像文獻[1]方案中下降的那么快,由于 WirelessHART網絡是以基站為中心的多跳網絡,基站鄰居節點擁有網絡中除基站外最大的通信負載,因此本文方案比文獻[1]方案具有更大的網絡生命周期。

圖1 節點平均通信能耗

圖2 基站鄰居節點剩余能量
4.3.2 計算能耗分析
硬件平臺選擇 Atmel公司的 Atmega128L單片機,CPU時鐘為 7.3728 MHz,對 WirelessHART中的函數 f(m,a,N,K)進行性能測試。測試的輸入參數為 16 byte的加密密鑰,13 byte的 NONCE值,23 byte的有效載荷,10 byte的附加頭部。經硬件測試得到,進行一次完整的有效載荷的加密及 MIC碼生成操作所需的時間為 410 ms,其中調用了 7次標準的 AES加密,則每次 AES加密所需時間為58.6 ms。本文設計的單向散列函數h(x)直接來源于 f(m,a,N,K),故進行單向密鑰生成所需的時間與該測試結果相當。WirelessHART協議規范中規定的缺省的端對端重傳超時時間為 30 s,缺省的廣播包的答復時間為 60 s,因此采用本文設計的單向散列函數可以滿足密鑰分發的時間要求。另外由于 WirelessHART網絡是一個全加密通信的無線傳感器網絡,在網絡層都需要進行加解密操作,添加用于密鑰更新的單向散列函數并不會增加節點計算的復雜度,計算能耗與文獻[1]相當。
4.3.3 存儲開銷分析
實際測得本文用于生成網絡層 MIC碼的函數f(m,a,N,K)占用的代碼空間約為 3.8 kbyte,所設計的單向散列函數 h(x)直接來源于該函數,并不會占用額外的代碼空間。節點只需與基站共享少數的密鑰,也不會占用較多的內存空間。若采用其他的單向散列函數用于密鑰更新,必定要增加更多的代碼空間。如采用文獻[6]中的 RC5算法設計單向散列函數,則一般要增加 2.6 kbyte的代碼空間。與文獻[1]相比,本文方案在沒有增加節點存儲開銷的情況下提高了 WirelessHART網絡的安全性。
針對已有的 WirelessHART網絡密鑰管理方案安全性不足的問題,本文提出了一種基于單向散列函數的 WirelessHART網絡密鑰管理方案,直接采用 WirelessHART協議規范要求的 CBC-MAC算法設計單向散列函數,用于實現生成密鑰的單向性和散列性,保證網絡的前向安全和后向安全。另外設計了兩條散列密鑰鏈實現全網共享密鑰更新的廣播認證,且密鑰更新次數不受限制,結合廣播和單播通信執行全網共享密鑰更新,提高了密鑰更新的可靠性。本文提出的基于單向散列函數的 WirelessHART網絡密鑰管理方案在不增加節點計算能耗和存儲開銷的情況下,大幅度降低了節點的通信能耗,能很好的滿足WirelessHART網絡在工業過程自動化中安全應用的要求。
[1]Raza S,Voigt T,Slabbert A,et al.Design and Implementation of a Security Manager for Wireless HART Networks[C]//IEEE 6th International Conference on Mobile Adhoc and Sensor Systems,Macau SAR,China,2009:995-1004.
[2]Lennvall T,Svensson S,Heklan F.A Comparison of WirelessHART and ZigBee for Industrial Applications[C]//IEEE International Workshop on Factory Communication Systems,2008:85-88.
[3]Raza S,Slabbert A,Voigt T,et al.Security Considerations for the WirelessHART Protocol[C]//Proceedings of the 14th IEEE international conference on Emerging technologies&factory automation,Palmade Mallorca,Spain,2009:242-249.
[4]Song Jian-ping,Han Song,Mok A K,et al.WirelessHART:Applying Wireless Technlology in Real-time Industrial Process Control[C]//Proceedings of the 14th IEEE Real-Time and Embedded Technology and Applications Symposium,Louis,MO,United States,2008:377-386.
[5]Fiore G,Ercoli V,Isaksson A J,et al.Multihop Multi-Channel Scheduling for Wireless Control in WirelessHART Networks[C]//Proceedings of the 14th IEEE international conference on Emerging technologies&factory automation,Palmade Mallorca,Spain,2009:758-765.
[6]Perrig A,Szewczyk R,Tygar JD,et al.SPINS:Security Protocols for Sensor Networks[J].Wireless Networks,2002,8(5):521-534.
[7]ZHU Sen-cun,SETIA S,Jajodia S.LEAP+:Efficient Security Mechanisms for Large-scale Distributed Sensor Networks[J].Transactions on Sensor Networks,2006,2(4):500-528.
[8]朱政堅,譚慶平,朱培棟.無線傳感器網絡中抗捕獲的密鑰管理協議[J].計算機應用研究,2008,25(10):3088-3091.
[9]李國瑞,何涇沙,付穎芳.無線傳感器網絡中動態密鑰管理方案的研究[J].傳感技術學報,2007,20(12):2635-2639.
[10]龐遼軍,焦李成,王育民.無線傳感器網絡節點間認證及密鑰協商協議[J].傳感技術學報,2008,21(8):1422-1426.
[11]Tian Bi-m ing,Han Song,Dillon T S.A Key Management Scheme for Heterogeneous Sensor Networks Using Keyed-Hash[C]//Proceedings of the 2009 Fifth International Conference on Mobile Ad-hoc and Sensor Networks,WuYiMountain,China,2009:448-455.
[12]Hussain S,Rahman M S,Yang L T.Key Predistribution Scheme using Keyed-Hash Chain and Multipath Key Reinforcement for Wireless Sensor Networks[C]//Proceedings of the 2009 IEEE International Conference on Pervasive Computing and Communications,Galveston,Texas,United States,2009:1-6.
[13]Marti S,Giuli T J,Lai K,et al.Mitigating Routing Misbehavior in Mobile Ad Hoc Networks[C]//Proceedings of the 6th annual international conference on Mobile computing and networking,Boston,MA,U-nited States,2000:255-265.
[14]SmaragdakisG,Matta I,Bestavros A.SEP:A Stable Election Protocol for Clustered Heterogeneous Wireless Sensor Networks[C]//Proc of Int'1Workshop on SANPA,2004:660-669.