??? 摘 要: 在大多數無線傳感網絡" title="無線傳感網絡">無線傳感網絡(WSN)的應用中,用戶對WSN的安全性要求都很高,而ZigBee標準具有高可靠性" title="高可靠性">高可靠性的特點,這種高可靠性就建立在安全協商協議的基礎上。對ZigBee標準的密鑰協商機制進行了詳細分析,并利用測試向量對該機制進行了測試,同時介紹了ZigBee的組網方式和安全服務平臺。
??? 關鍵詞: ZigBee? 安全? 密鑰協商? 無線傳感網絡
?
??? 隨著網絡和通信技術的發展,人們對無線通信技術的要求越來越高,在追求低價格的同時,還要求低功耗" title="低功耗">低功耗、低復雜度、高可靠性。2004年12月,ZigBee工作組正式公布了ZigBee1.0標準。使用該標準組建短距離低速無線個域網LR—WPAN(Low Rate—Wireless Personal Area Network)不僅具有低成本、低功耗、低速率、低復雜度的特點,而且還具有可靠性高、組網簡單和靈活的優勢。成千上萬個具有ZigBee結構的微型傳感器構成了自治的無線傳感器網絡,主要應用于工業控制、軍事偵察、環境科學、醫療健康、空間探索、智能建筑等各種復雜環境中進行檢測、診斷、目標定位和跟蹤[1]。
??? 信息安全是現代通信中一個至關重要的問題,是信息網絡正常運行的基礎,ZigBee技術提供可選的安全架構,保證了無線傳感網絡的可靠性。
??? 本文將介紹ZigBee標準的組網方式、安全結構和在安全協議層次上的實現模式。
1 ZigBee技術及其網絡結構
??? ZigBee無線通信技術工作在2.4GHz的ISM頻段上,傳輸速率為20kbps~250kbps,傳輸距離為10m~75m,主要應用于自動控制、傳感和遠程控制領域。它依據802.15.4標準,在數千個微小的傳感器之間相互協調實現通信。這些傳感器只需要很少的能量,就能以接力的方式通過無線電波將數據從一個傳感器發送到另一個傳感器,所以它們的通信效率非常高。但ZigBee技術的較低數據速率以及較小通信范圍的特點決定了它只適合承載數據流量較小的業務[2]。
??? 為了實現低功耗,ZigBee網絡中定義了兩種類型的設備:一種是全功能設備FFD(Full Function Device)稱為主設備。它承擔網絡協調者的功能,可與網絡中任何類型的設備通信。如果采用安全機制" title="安全機制">安全機制,網絡協調者又可成為信任中心(Trust center);另一種是簡化功能設備RFD(Reduced Function Device)稱為從設備。它不能作為網絡協調者,只能與主設備通信。圖1是ZigBee技術主要采用的三種網絡結構。
??????????????????????
2 ZigBee技術安全架構
??? ZigBee設備之間的通信使用IEEE 802.15.4無線標準。該標準指定兩層:物理層(PHY)和媒介存取控制層(MAC),而ZigBee則負責構建網絡層(NWK)和應用層(APL)。PHY層提供基本的物理無線通信能力;MAC層提供設備間的可靠性授權和一跳通信連接服務;NWK層提供用于構建不同網絡拓撲結構的路由和多跳功能;APL層包括一個應用支持子層(APS)、 ZigBee設備對象(ZDO)和應用。ZDO負責所有設備的管理,APS提供一個用于ZDO和ZigBee應用的基礎。
??? 該體系結構包括協議棧三層安全機制。MAC、NWK和APS負責各自幀的安全傳輸。APS子層提供建立和保持安全關系的服務。ZDO管理安全性策略和設備的安全性結構。圖2給出了ZigBee協議棧的完整視圖[3]。
????????????????????????
3 ZigBee標準的密鑰協商機制
??? ZigBee標準在安全協議層面上應用基于對稱密鑰的密鑰協商協議,并要求該對稱密鑰必須為帶有密鑰確認機制的完全對稱密鑰,而提供密鑰確認的則是消息鑒權編碼機制。圖3是該密鑰協商機制的消息傳輸情況。
??????????????????????????????
圖中U表示協議的發起設備(Initiator),V表示協議的響應設備(Responder),該機制通過兩次變換協商密鑰數據,U和V分別使用發起設備變換和響應設備變換協商密鑰數據。發起設備與響應設備本質上沒有區別,只是發起設備發送第一條交換消息而已。
??? 如果使用共享秘密密鑰作為輸入,當U執行發起設備變換而V執行響應設備變換時,U和V就計算相同的密鑰數據。
3.1 變換的組成部分
??? 發起設備變換與響應設備變換都使用Challenge生成原語" title="原語">原語、Challenge確認原語、秘密密鑰生成(SKG)原語、密鑰派生函數和一個消息鑒權編碼(MAC)機制。
3.1.1 Challenge生成原語與確認原語
??? Challenge生成與確認,實際上是設置所發送消息的大小與判別所接收到的信息的大小,即Challenge域的參數D=(minchallenge, maxchallenge)。生成原語產生參數D的兩個值,在大多數機制中D為一個定值,如D=128,此時minchallenge=maxchallenge=128。而確認原語則判別所收到的Challenge的參數D是否在預先設置的值域內,若不在,則拒絕該Challenge。
3.1.2 秘密密鑰生成(SKG)原語
??? 秘密密鑰是兩個ZigBee實體之間共享的密鑰,SKG原語是從分別屬于兩個實體的兩個Challenge中獲取秘密密鑰的,且這兩個Challenge的域參數D是相同的。若兩實體都正確地執行了此原語,則兩實體就能獲得相同的共享秘密值。
3.1.3? 密鑰派生函數
??? 密鑰派生函數從共享秘密值中計算密鑰數據,它不僅用于密鑰協商機制,還可用于非對稱的加密機制。此函數實質上由一個簡單的hash函數組成[4]。
3.1.4 消息鑒權編碼(MAC)機制
??? 消息鑒權編碼機制主要包括兩個變換:標記變換和標記校驗變換。密鑰協商機制使用MAC機制提供密鑰確認,ZigBee標準使用密鑰hash消息鑒權機制(HMAC),且所用hash函數是Matyas-Meyer-Oseas hash函數,該函數帶有一個消息摘要[4]。
3.2 密鑰協商機制的前提條件
??? ZigBee設備之間在進行密鑰協商前,必須滿足以下條件:
??? (1)每個ZigBee實體都有一個可信的系統Challenge域參數D的拷貝。
??? (2)每個ZigBee實體都可獲得一個長度為keylen的位串Key作為密鑰。實體決定本身各個部分獲得密鑰的情況。
??? (3)每個ZigBee實體都要有唯一的標識符。所有標識符串的長度必須相同,用entlen參數表示。
??? (4)每個ZigBee實體自己決定將使用哪個消息鑒權編碼機制。所選消息鑒權編碼機制使用的密鑰的長度由mackeylen參數表示。
??? (5)選擇一個帶有密鑰生成函數的密碼hash函數。
??? (6)選擇一個專用消息鑒權編碼機制,該機制含有帶有標志變換的秘密密鑰生成原語。該密鑰長度用keylen表示。
??? (7)選擇一個固定的字節表示方式表示二進制字符串。
3.3 發起設備變換
??? U執行發起設備變換,可獲得一個可信的V標識符的拷貝和一個與V共享的靜態秘密密鑰的可信拷貝。
此變換的輸入包括:生成密鑰數據的長度keydatalen;位串SharedData的長度shareddatalen(可選),其中SharedData由一些U和V共享的數據構成;位串Text2(可選),它由從U到V的一些附加數據組成。
??? U按如下步驟執行變換來獲得密鑰數據:
??? (1)使用Challenge生成原語生成一個符合Challenge 域參數D的ChallengeQEU,并把QEU發送到V。
??? (2)從V接收ChallengeQEV′,若沒接收到此值,輸出“invalid”并中止協議協商。
??? (3)從V接收可選位串Text1和標記MacTag1′。若這些值未接收到,輸出“invalid”并中止協議協商。
??? (4)核實QEV′是否為Challenge域參數D內的有效
??? Challenge,若確認原語拒絕此Challenge,輸出“invalid”并中止協議協商。
??? (5)使用SKG原語從U的Q1=QEU和V的Q2=QEV′的Challenge中獲得共享秘密位串Z,并把它作為共享密鑰Key,若SKG原語輸出“invalid”,則該變換輸出“invalid”并中止協議協商。
??? (6)使用密鑰派生函數和所建立的hash函數從共享的秘密值Z和共享數據SharedData中獲得密鑰數據KKeyData,長度為mackeylen+keydatalen。
??? (7)把KKeyData的最左端mackeylen解析為MAC密鑰MacKey,并且將剩余位作為密鑰數據KeyData。
??? (8) 由字節0216、V的標識符、U的標識符、位串QEV′’、位串QEU和Text1(若存在)構建位字符串:
???
??? (9)使用MAC機制的適當標記檢驗轉換校核MacTag1′是否為密鑰Mackey下MacData1的標記符。若標記檢驗轉換輸出“invalid”,則變換輸出“invalid”并中止協議協商。
??? (10)由字節0316、U的標識符、V的標識符、位串QEU對應的U的Challenge、位串QEV′對應的V的Challenge和可選位串Text2構建位字符串:
???
??? (11)在MacData2的基礎上,使用標記轉換和適當的MAC機制計算標記符MacTag2:
???
??? (12)若標記轉換輸出為“invalid”,則變換輸出“invalid”
??? 并中止協議協商。若存在MacTag2,則發送MacTag2和Text2到V。
??? 若上述步驟中任一次確認失敗,則輸出“invalid”且拒絕位串KeyData和Text1;否則,輸出“valid”,接受位串KeyData為與V共享的長度為keydatalen的密鑰數據,同時接受V作為位串Text1的源。
3.4 響應設備變換
??? V執行響應設備變換,可獲得一個可信的U標識符的拷貝和一個與U共享的靜態秘密密鑰的可信拷貝。
此變換的輸入包括:一個屬于U的ChallengeQEU′、生成密鑰數據的長度keydatalen、位串SharedData的長度shareddatalen(可選),其中,SharedData由一些U和V共享的數據組成,位串Text1(可選)由從V到U的一些附加數據組成。
V按如下步驟執行變換,來獲得密鑰數據:
??? (1)核實QEU′是否為Challenge域參數D內的有效
Challenge,若確認原語拒絕此Challenge,則輸出“invalid”并中止協議協商。
??? (2)使用Challenge生成原語生成在Challenge域參數D內的ChallengeQEV,并把它發送到U。
??? (3)使用SKG原語從U的Q1=QEU′和V的Q2=QEV的Challenge中獲得共享秘密位串Z,并把它作為共享密鑰Key,若SKG原語輸出“invalid”, 則該變換輸出“invalid”并中止協議協商。
??? (4)使用密鑰派生函數和所建立的hash 函數從共享的秘密值Z和共享數據SharedData中獲得密鑰數據KKeyData,長度為mackeylen+keydatalen。
??? (5)把KKeyData的最左端mackeylen解析為MAC密鑰MacKey,并且將剩余位作為密鑰數據KKeyData。
??? (6)由字節0216、V的標識符、U的標識符、位串QEV′、位串QEU′和Text1(若存在)構建位字符串:
???
??? (7)在MacData1的基礎上,使用標記轉換和適當的MAC機制計算標記符MacTag1:
???
??? 若標記轉換輸出為“invalid”,則變換輸出“invalid”并中止協議協商。若存在MacTag1,則發送MacTag1和Text1到U。
??? (8)從U接收可選位串Text2和MacTag2′標記。若這些值未接收到,輸出“invalid”并中止協議協商。
??? (9)由字節0316、U的標識符、V的標識符、位串QEU′對應的U的Challenge、位串QEV對應的V的Challenge和可選位串Text2構建位字符串:
???
??? (10)使用MAC機制的適當標記檢驗轉換校核MacTag2′是否為密鑰MacKey下MacData2的標記符。若標記檢驗轉換輸出“invalid”,則變換輸出“invalid”并中止協議協商。
??? 若上述步驟中任一次確認失敗,則輸出“invalid”且拒絕位串和;否則,輸出“valid”,接受位串KeyData為與U共享的長度為keydatalen的密鑰數據,同時接受U作為位串[Text2]的源。
4 向量測試
??? 針對上述密鑰協商機制,用向量測試的方式驗證該機制的可行性。這些向量在最開始時是相互獨立且不確定的。
預設前提條件如下:
??? (1)U=55 73 65 72 20 55 0D 0A; V= 55 73 65 72 20 56 0D 0A。
??? (2)Key= C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF;keylen=128bit。
??? (3)SharedData=D0 D1 D2 D3 D4 D5;shareddatalen=48 bit。
??? (4)選擇Matyas-Meyer-Oseas hash函數作為所用的
hash函數。
??? (5)選擇基于Matyas-Meyer-Oseas hash函數的HMAC
??? 機制[5]作為MAC機制。
??? 發起設備變換和響應設備變換最終都輸出“valid”,并接受位串KeyData= 72 57 7D 02 CC E1 39 33 1A BF F4 0B C5 6E A3 7F為與對方共享的長度為128bit的密鑰數據。
??? ZigBee技術在短距離、低數據量的無線通信中有著其他技術所不具有的優勢,而安全性服務是保證ZigBee技術立足市場的前提。在ZigBee聯盟公開的ZigBee 1.0標準規范說明中,著重強調了ZigBee所能提供的安全性服務,后續的增強版本中又再次加強了安全性服務。本文詳細分析的是安全協議層次上的協商機制,在安全性的其他層次上值得進一步研究,如數據加密、安全服務等。
參考文獻
[1]?AKYILDIZ L,SU W,SANKARASUBRAMANIAM Y,et al. ?A survey on sensor networks[J]. IEEE Communications
?Magazine,2002,40(8).
[2]?任秀麗. 基于ZigBee技術的無線傳感網的安全分析[J].計算機科學, 2006,33(10).
[3]?ZigBee specification. [EB/OL]? http://www.ZigBee.org.2005-06-27.
[4] ANSI X9.63-2001. Public key cryptography for the financial services industry-key agreement and key transport?using elliptic curve cryptography[S]. American Bankers?Association. http://www.ansi.org.2001-10-20.
[5]?The keyed-hash message authentication code: Federal?information processing standards publication 198[S]. US?Department of Commerce/N.I.S.T.,Springfield, Virginia,?http://csrc.nist.gov.2002-03-06.