《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > ZigBee標(biāo)準(zhǔn)的密鑰協(xié)商機(jī)制分析

ZigBee標(biāo)準(zhǔn)的密鑰協(xié)商機(jī)制分析

2008-07-17
作者:周公博,, 韓振鐸,, 胡寧寧

??? 摘 要: 在大多數(shù)無(wú)線傳感網(wǎng)絡(luò)" title="無(wú)線傳感網(wǎng)絡(luò)">無(wú)線傳感網(wǎng)絡(luò)(WSN)的應(yīng)用中,,用戶對(duì)WSN的安全性要求都很高,而ZigBee標(biāo)準(zhǔn)具有高可靠性" title="高可靠性">高可靠性的特點(diǎn),,這種高可靠性就建立在安全協(xié)商協(xié)議的基礎(chǔ)上,。對(duì)ZigBee標(biāo)準(zhǔn)的密鑰協(xié)商機(jī)制進(jìn)行了詳細(xì)分析,并利用測(cè)試向量對(duì)該機(jī)制進(jìn)行了測(cè)試,,同時(shí)介紹了ZigBee的組網(wǎng)方式和安全服務(wù)平臺(tái),。
??? 關(guān)鍵詞: ZigBee? 安全? 密鑰協(xié)商? 無(wú)線傳感網(wǎng)絡(luò)

?

??? 隨著網(wǎng)絡(luò)和通信技術(shù)的發(fā)展,人們對(duì)無(wú)線通信技術(shù)的要求越來(lái)越高,,在追求低價(jià)格的同時(shí),,還要求低功耗" title="低功耗">低功耗、低復(fù)雜度,、高可靠性,。2004年12月,ZigBee工作組正式公布了ZigBee1.0標(biāo)準(zhǔn),。使用該標(biāo)準(zhǔn)組建短距離低速無(wú)線個(gè)域網(wǎng)LR—WPAN(Low Rate—Wireless Personal Area Network)不僅具有低成本,、低功耗、低速率,、低復(fù)雜度的特點(diǎn),,而且還具有可靠性高、組網(wǎng)簡(jiǎn)單和靈活的優(yōu)勢(shì),。成千上萬(wàn)個(gè)具有ZigBee結(jié)構(gòu)的微型傳感器構(gòu)成了自治的無(wú)線傳感器網(wǎng)絡(luò),,主要應(yīng)用于工業(yè)控制、軍事偵察,、環(huán)境科學(xué),、醫(yī)療健康、空間探索,、智能建筑等各種復(fù)雜環(huán)境中進(jìn)行檢測(cè),、診斷、目標(biāo)定位和跟蹤[1],。
??? 信息安全是現(xiàn)代通信中一個(gè)至關(guān)重要的問(wèn)題,,是信息網(wǎng)絡(luò)正常運(yùn)行的基礎(chǔ),ZigBee技術(shù)提供可選的安全架構(gòu),,保證了無(wú)線傳感網(wǎng)絡(luò)的可靠性,。
??? 本文將介紹ZigBee標(biāo)準(zhǔn)的組網(wǎng)方式、安全結(jié)構(gòu)和在安全協(xié)議層次上的實(shí)現(xiàn)模式,。
1 ZigBee技術(shù)及其網(wǎng)絡(luò)結(jié)構(gòu)
??? ZigBee無(wú)線通信技術(shù)工作在2.4GHz的ISM頻段上,,傳輸速率為20kbps~250kbps,傳輸距離為10m~75m,,主要應(yīng)用于自動(dòng)控制,、傳感和遠(yuǎn)程控制領(lǐng)域,。它依據(jù)802.15.4標(biāo)準(zhǔn),在數(shù)千個(gè)微小的傳感器之間相互協(xié)調(diào)實(shí)現(xiàn)通信,。這些傳感器只需要很少的能量,,就能以接力的方式通過(guò)無(wú)線電波將數(shù)據(jù)從一個(gè)傳感器發(fā)送到另一個(gè)傳感器,所以它們的通信效率非常高,。但ZigBee技術(shù)的較低數(shù)據(jù)速率以及較小通信范圍的特點(diǎn)決定了它只適合承載數(shù)據(jù)流量較小的業(yè)務(wù)[2],。
??? 為了實(shí)現(xiàn)低功耗,ZigBee網(wǎng)絡(luò)中定義了兩種類型的設(shè)備:一種是全功能設(shè)備FFD(Full Function Device)稱為主設(shè)備,。它承擔(dān)網(wǎng)絡(luò)協(xié)調(diào)者的功能,可與網(wǎng)絡(luò)中任何類型的設(shè)備通信,。如果采用安全機(jī)制" title="安全機(jī)制">安全機(jī)制,,網(wǎng)絡(luò)協(xié)調(diào)者又可成為信任中心(Trust center);另一種是簡(jiǎn)化功能設(shè)備RFD(Reduced Function Device)稱為從設(shè)備,。它不能作為網(wǎng)絡(luò)協(xié)調(diào)者,,只能與主設(shè)備通信。圖1是ZigBee技術(shù)主要采用的三種網(wǎng)絡(luò)結(jié)構(gòu),。

??????????????????????
2 ZigBee技術(shù)安全架構(gòu)
??? ZigBee設(shè)備之間的通信使用IEEE 802.15.4無(wú)線標(biāo)準(zhǔn),。該標(biāo)準(zhǔn)指定兩層:物理層(PHY)和媒介存取控制層(MAC),而ZigBee則負(fù)責(zé)構(gòu)建網(wǎng)絡(luò)層(NWK)和應(yīng)用層(APL),。PHY層提供基本的物理無(wú)線通信能力,;MAC層提供設(shè)備間的可靠性授權(quán)和一跳通信連接服務(wù);NWK層提供用于構(gòu)建不同網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的路由和多跳功能,;APL層包括一個(gè)應(yīng)用支持子層(APS),、 ZigBee設(shè)備對(duì)象(ZDO)和應(yīng)用。ZDO負(fù)責(zé)所有設(shè)備的管理,APS提供一個(gè)用于ZDO和ZigBee應(yīng)用的基礎(chǔ),。
??? 該體系結(jié)構(gòu)包括協(xié)議棧三層安全機(jī)制,。MAC、NWK和APS負(fù)責(zé)各自幀的安全傳輸,。APS子層提供建立和保持安全關(guān)系的服務(wù),。ZDO管理安全性策略和設(shè)備的安全性結(jié)構(gòu)。圖2給出了ZigBee協(xié)議棧的完整視圖[3],。

????????????????????????  
3 ZigBee標(biāo)準(zhǔn)的密鑰協(xié)商機(jī)制
??? ZigBee標(biāo)準(zhǔn)在安全協(xié)議層面上應(yīng)用基于對(duì)稱密鑰的密鑰協(xié)商協(xié)議,,并要求該對(duì)稱密鑰必須為帶有密鑰確認(rèn)機(jī)制的完全對(duì)稱密鑰,而提供密鑰確認(rèn)的則是消息鑒權(quán)編碼機(jī)制,。圖3是該密鑰協(xié)商機(jī)制的消息傳輸情況,。

??????????????????????????????
  圖中U表示協(xié)議的發(fā)起設(shè)備(Initiator),V表示協(xié)議的響應(yīng)設(shè)備(Responder),,該機(jī)制通過(guò)兩次變換協(xié)商密鑰數(shù)據(jù),,U和V分別使用發(fā)起設(shè)備變換和響應(yīng)設(shè)備變換協(xié)商密鑰數(shù)據(jù),。發(fā)起設(shè)備與響應(yīng)設(shè)備本質(zhì)上沒(méi)有區(qū)別,只是發(fā)起設(shè)備發(fā)送第一條交換消息而已,。
??? 如果使用共享秘密密鑰作為輸入,,當(dāng)U執(zhí)行發(fā)起設(shè)備變換而V執(zhí)行響應(yīng)設(shè)備變換時(shí),U和V就計(jì)算相同的密鑰數(shù)據(jù),。
3.1 變換的組成部分
??? 發(fā)起設(shè)備變換與響應(yīng)設(shè)備變換都使用Challenge生成原語(yǔ)" title="原語(yǔ)">原語(yǔ),、Challenge確認(rèn)原語(yǔ)、秘密密鑰生成(SKG)原語(yǔ),、密鑰派生函數(shù)和一個(gè)消息鑒權(quán)編碼(MAC)機(jī)制,。
3.1.1 Challenge生成原語(yǔ)與確認(rèn)原語(yǔ)
??? Challenge生成與確認(rèn),實(shí)際上是設(shè)置所發(fā)送消息的大小與判別所接收到的信息的大小,,即Challenge域的參數(shù)D=(minchallenge, maxchallenge),。生成原語(yǔ)產(chǎn)生參數(shù)D的兩個(gè)值,在大多數(shù)機(jī)制中D為一個(gè)定值,,如D=128,,此時(shí)minchallenge=maxchallenge=128。而確認(rèn)原語(yǔ)則判別所收到的Challenge的參數(shù)D是否在預(yù)先設(shè)置的值域內(nèi),,若不在,,則拒絕該Challenge。
3.1.2 秘密密鑰生成(SKG)原語(yǔ)
??? 秘密密鑰是兩個(gè)ZigBee實(shí)體之間共享的密鑰,,SKG原語(yǔ)是從分別屬于兩個(gè)實(shí)體的兩個(gè)Challenge中獲取秘密密鑰的,,且這兩個(gè)Challenge的域參數(shù)D是相同的。若兩實(shí)體都正確地執(zhí)行了此原語(yǔ),,則兩實(shí)體就能獲得相同的共享秘密值,。
3.1.3? 密鑰派生函數(shù)
??? 密鑰派生函數(shù)從共享秘密值中計(jì)算密鑰數(shù)據(jù),它不僅用于密鑰協(xié)商機(jī)制,,還可用于非對(duì)稱的加密機(jī)制,。此函數(shù)實(shí)質(zhì)上由一個(gè)簡(jiǎn)單的hash函數(shù)組成[4]
3.1.4 消息鑒權(quán)編碼(MAC)機(jī)制
??? 消息鑒權(quán)編碼機(jī)制主要包括兩個(gè)變換:標(biāo)記變換和標(biāo)記校驗(yàn)變換,。密鑰協(xié)商機(jī)制使用MAC機(jī)制提供密鑰確認(rèn),,ZigBee標(biāo)準(zhǔn)使用密鑰hash消息鑒權(quán)機(jī)制(HMAC),且所用hash函數(shù)是Matyas-Meyer-Oseas hash函數(shù),,該函數(shù)帶有一個(gè)消息摘要[4],。
3.2 密鑰協(xié)商機(jī)制的前提條件
??? ZigBee設(shè)備之間在進(jìn)行密鑰協(xié)商前,必須滿足以下條件:
??? (1)每個(gè)ZigBee實(shí)體都有一個(gè)可信的系統(tǒng)Challenge域參數(shù)D的拷貝,。
??? (2)每個(gè)ZigBee實(shí)體都可獲得一個(gè)長(zhǎng)度為keylen的位串Key作為密鑰,。實(shí)體決定本身各個(gè)部分獲得密鑰的情況。
??? (3)每個(gè)ZigBee實(shí)體都要有唯一的標(biāo)識(shí)符,。所有標(biāo)識(shí)符串的長(zhǎng)度必須相同,,用entlen參數(shù)表示,。
??? (4)每個(gè)ZigBee實(shí)體自己決定將使用哪個(gè)消息鑒權(quán)編碼機(jī)制。所選消息鑒權(quán)編碼機(jī)制使用的密鑰的長(zhǎng)度由mackeylen參數(shù)表示,。
??? (5)選擇一個(gè)帶有密鑰生成函數(shù)的密碼hash函數(shù),。
??? (6)選擇一個(gè)專用消息鑒權(quán)編碼機(jī)制,該機(jī)制含有帶有標(biāo)志變換的秘密密鑰生成原語(yǔ),。該密鑰長(zhǎng)度用keylen表示,。
??? (7)選擇一個(gè)固定的字節(jié)表示方式表示二進(jìn)制字符串。
3.3 發(fā)起設(shè)備變換
??? U執(zhí)行發(fā)起設(shè)備變換,,可獲得一個(gè)可信的V標(biāo)識(shí)符的拷貝和一個(gè)與V共享的靜態(tài)秘密密鑰的可信拷貝,。
此變換的輸入包括:生成密鑰數(shù)據(jù)的長(zhǎng)度keydatalen;位串SharedData的長(zhǎng)度shareddatalen(可選),,其中SharedData由一些U和V共享的數(shù)據(jù)構(gòu)成,;位串Text2(可選),它由從U到V的一些附加數(shù)據(jù)組成,。
??? U按如下步驟執(zhí)行變換來(lái)獲得密鑰數(shù)據(jù):
??? (1)使用Challenge生成原語(yǔ)生成一個(gè)符合Challenge 域參數(shù)D的ChallengeQEU,并把QEU發(fā)送到V,。
??? (2)從V接收ChallengeQEV′,,若沒(méi)接收到此值,輸出“invalid”并中止協(xié)議協(xié)商,。
??? (3)從V接收可選位串Text1和標(biāo)記MacTag1′,。若這些值未接收到,輸出“invalid”并中止協(xié)議協(xié)商,。
??? (4)核實(shí)QEV′是否為Challenge域參數(shù)D內(nèi)的有效
??? Challenge,,若確認(rèn)原語(yǔ)拒絕此Challenge,輸出“invalid”并中止協(xié)議協(xié)商,。
??? (5)使用SKG原語(yǔ)從U的Q1=QEU和V的Q2=QEV′的Challenge中獲得共享秘密位串Z,,并把它作為共享密鑰Key,若SKG原語(yǔ)輸出“invalid”,,則該變換輸出“invalid”并中止協(xié)議協(xié)商,。
??? (6)使用密鑰派生函數(shù)和所建立的hash函數(shù)從共享的秘密值Z和共享數(shù)據(jù)SharedData中獲得密鑰數(shù)據(jù)KKeyData,長(zhǎng)度為mackeylen+keydatalen,。
??? (7)把KKeyData的最左端mackeylen解析為MAC密鑰MacKey,,并且將剩余位作為密鑰數(shù)據(jù)KeyData。
??? (8) 由字節(jié)0216,、V的標(biāo)識(shí)符,、U的標(biāo)識(shí)符、位串QEV′’,、位串QEU和Text1(若存在)構(gòu)建位字符串:
???

??? (9)使用MAC機(jī)制的適當(dāng)標(biāo)記檢驗(yàn)轉(zhuǎn)換校核MacTag1′是否為密鑰Mackey下MacData1的標(biāo)記符,。若標(biāo)記檢驗(yàn)轉(zhuǎn)換輸出“invalid”,,則變換輸出“invalid”并中止協(xié)議協(xié)商。
??? (10)由字節(jié)0316,、U的標(biāo)識(shí)符,、V的標(biāo)識(shí)符、位串QEU對(duì)應(yīng)的U的Challenge,、位串QEV′對(duì)應(yīng)的V的Challenge和可選位串Text2構(gòu)建位字符串:
???

??? (11)在MacData2的基礎(chǔ)上,,使用標(biāo)記轉(zhuǎn)換和適當(dāng)?shù)腗AC機(jī)制計(jì)算標(biāo)記符MacTag2:
???

??? (12)若標(biāo)記轉(zhuǎn)換輸出為“invalid”,則變換輸出“invalid”
??? 并中止協(xié)議協(xié)商,。若存在MacTag2,,則發(fā)送MacTag2和Text2到V。
??? 若上述步驟中任一次確認(rèn)失敗,,則輸出“invalid”且拒絕位串KeyData和Text1,;否則,輸出“valid”,,接受位串KeyData為與V共享的長(zhǎng)度為keydatalen的密鑰數(shù)據(jù),,同時(shí)接受V作為位串Text1的源。
3.4 響應(yīng)設(shè)備變換
??? V執(zhí)行響應(yīng)設(shè)備變換,,可獲得一個(gè)可信的U標(biāo)識(shí)符的拷貝和一個(gè)與U共享的靜態(tài)秘密密鑰的可信拷貝,。
此變換的輸入包括:一個(gè)屬于U的ChallengeQEU′、生成密鑰數(shù)據(jù)的長(zhǎng)度keydatalen,、位串SharedData的長(zhǎng)度shareddatalen(可選),,其中,SharedData由一些U和V共享的數(shù)據(jù)組成,,位串Text1(可選)由從V到U的一些附加數(shù)據(jù)組成,。
V按如下步驟執(zhí)行變換,來(lái)獲得密鑰數(shù)據(jù):
??? (1)核實(shí)QEU′是否為Challenge域參數(shù)D內(nèi)的有效
Challenge,,若確認(rèn)原語(yǔ)拒絕此Challenge,,則輸出“invalid”并中止協(xié)議協(xié)商。
??? (2)使用Challenge生成原語(yǔ)生成在Challenge域參數(shù)D內(nèi)的ChallengeQEV,,并把它發(fā)送到U,。
??? (3)使用SKG原語(yǔ)從U的Q1=QEU′和V的Q2=QEV的Challenge中獲得共享秘密位串Z,并把它作為共享密鑰Key,,若SKG原語(yǔ)輸出“invalid”,, 則該變換輸出“invalid”并中止協(xié)議協(xié)商。
??? (4)使用密鑰派生函數(shù)和所建立的hash 函數(shù)從共享的秘密值Z和共享數(shù)據(jù)SharedData中獲得密鑰數(shù)據(jù)KKeyData,,長(zhǎng)度為mackeylen+keydatalen,。
??? (5)把KKeyData的最左端mackeylen解析為MAC密鑰MacKey,并且將剩余位作為密鑰數(shù)據(jù)KKeyData。
??? (6)由字節(jié)0216,、V的標(biāo)識(shí)符,、U的標(biāo)識(shí)符、位串QEV′,、位串QEU′和Text1(若存在)構(gòu)建位字符串:
???

??? (7)在MacData1的基礎(chǔ)上,,使用標(biāo)記轉(zhuǎn)換和適當(dāng)?shù)腗AC機(jī)制計(jì)算標(biāo)記符MacTag1
???

??? 若標(biāo)記轉(zhuǎn)換輸出為“invalid”,則變換輸出“invalid”并中止協(xié)議協(xié)商,。若存在MacTag1,,則發(fā)送MacTag1和Text1到U。
??? (8)從U接收可選位串Text2和MacTag2′標(biāo)記,。若這些值未接收到,,輸出“invalid”并中止協(xié)議協(xié)商。
??? (9)由字節(jié)0316,、U的標(biāo)識(shí)符,、V的標(biāo)識(shí)符、位串QEU′對(duì)應(yīng)的U的Challenge,、位串QEV對(duì)應(yīng)的V的Challenge和可選位串Text2構(gòu)建位字符串:
???

??? (10)使用MAC機(jī)制的適當(dāng)標(biāo)記檢驗(yàn)轉(zhuǎn)換校核MacTag2′是否為密鑰MacKey下MacData2的標(biāo)記符,。若標(biāo)記檢驗(yàn)轉(zhuǎn)換輸出“invalid”,,則變換輸出“invalid”并中止協(xié)議協(xié)商,。
??? 若上述步驟中任一次確認(rèn)失敗,,則輸出“invalid”且拒絕位串和,;否則,,輸出“valid”,,接受位串KeyData為與U共享的長(zhǎng)度為keydatalen的密鑰數(shù)據(jù),,同時(shí)接受U作為位串[Text2]的源,。
4 向量測(cè)試
??? 針對(duì)上述密鑰協(xié)商機(jī)制,,用向量測(cè)試的方式驗(yàn)證該機(jī)制的可行性。這些向量在最開(kāi)始時(shí)是相互獨(dú)立且不確定的,。
預(yù)設(shè)前提條件如下:
??? (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函數(shù)作為所用的
hash函數(shù),。
??? (5)選擇基于Matyas-Meyer-Oseas hash函數(shù)的HMAC
??? 機(jī)制[5]作為MAC機(jī)制。
??? 發(fā)起設(shè)備變換和響應(yīng)設(shè)備變換最終都輸出“valid”,,并接受位串KeyData= 72 57 7D 02 CC E1 39 33 1A BF F4 0B C5 6E A3 7F為與對(duì)方共享的長(zhǎng)度為128bit的密鑰數(shù)據(jù),。
??? ZigBee技術(shù)在短距離、低數(shù)據(jù)量的無(wú)線通信中有著其他技術(shù)所不具有的優(yōu)勢(shì),,而安全性服務(wù)是保證ZigBee技術(shù)立足市場(chǎng)的前提,。在ZigBee聯(lián)盟公開(kāi)的ZigBee 1.0標(biāo)準(zhǔn)規(guī)范說(shuō)明中,,著重強(qiáng)調(diào)了ZigBee所能提供的安全性服務(wù),后續(xù)的增強(qiáng)版本中又再次加強(qiáng)了安全性服務(wù),。本文詳細(xì)分析的是安全協(xié)議層次上的協(xié)商機(jī)制,,在安全性的其他層次上值得進(jìn)一步研究,如數(shù)據(jù)加密,、安全服務(wù)等,。
參考文獻(xiàn)
[1]?AKYILDIZ L,SU W,,SANKARASUBRAMANIAM Y,,et al. ?A survey on sensor networks[J]. IEEE Communications
?Magazine,2002,,40(8).
[2]?任秀麗. 基于ZigBee技術(shù)的無(wú)線傳感網(wǎng)的安全分析[J].計(jì)算機(jī)科學(xué), 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.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]