文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)04-0056-03
ZigBee是一種近距離,、低速率、低功耗,、低成本的無(wú)線網(wǎng)絡(luò)技術(shù)[1],,正是由于這些優(yōu)點(diǎn),基于ZigBee標(biāo)準(zhǔn)的無(wú)線傳感器網(wǎng)絡(luò)的應(yīng)用越來(lái)越廣泛,。但由于ZigBee無(wú)線設(shè)備在存儲(chǔ)能力,、計(jì)算能力及電源供電時(shí)間方面的局限性,不僅使得原來(lái)在有線環(huán)境下的許多安全方案和安全技術(shù)不能直接應(yīng)用于ZigBee網(wǎng)絡(luò)環(huán)境中,,而且對(duì)ZigBee網(wǎng)絡(luò)安全服務(wù)過(guò)程與算法提出了較高要求,。目前,ZigBee網(wǎng)絡(luò)中采用的數(shù)據(jù)加密模式為128 bit的AES算法[2],。AES采用迭代型分組密碼Rijndael[3]算法,,具有優(yōu)秀的性能及抗攻擊能力,所以在受限工作環(huán)境中(如ZigBee網(wǎng)絡(luò)環(huán)境)也有較好的加密/解密運(yùn)算效率,。
基于AES算法的CCM*安全機(jī)制包括所有AES-CCM(計(jì)數(shù)器加密分組鏈接信息鑒別碼模式)[4-5]的功能且是更輕量級(jí)的加密模式,,既保證數(shù)據(jù)傳輸?shù)臋C(jī)密性又保證數(shù)據(jù)完整性。因此,,本文使用AES-CCM*模式進(jìn)行數(shù)據(jù)加密,,并重新定義了MSG的數(shù)據(jù)幀格式以提高加密效率和傳輸數(shù)據(jù)凈載荷量。仿真結(jié)果表明,,CCM*加密模式不僅可以降低系統(tǒng)開銷,、減小復(fù)雜度及縮短加密時(shí)間,同時(shí)還可以保證網(wǎng)絡(luò)的安全有效性,。
1 ZigBee網(wǎng)絡(luò)安全特征及攻擊類型
ZigBee網(wǎng)絡(luò)系統(tǒng)存在如數(shù)據(jù)竊聽,、篡改、偽造等安全威脅,。研究發(fā)現(xiàn),,攻擊者通過(guò)攻擊通信節(jié)點(diǎn)或分配惡意節(jié)點(diǎn)偽裝成合法節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)來(lái)改變,、丟棄或破壞數(shù)據(jù)包,最終致使整個(gè)ZigBee網(wǎng)絡(luò)癱瘓,。典型的內(nèi)部網(wǎng)絡(luò)攻擊包括Sinkhole攻擊,、Sybil攻擊、Wormholes攻擊,、Flooding攻擊,、應(yīng)答欺騙等[6]。除此之外,,安裝在無(wú)人區(qū)的網(wǎng)絡(luò)節(jié)點(diǎn)也可能會(huì)出現(xiàn)節(jié)點(diǎn)失效,、損毀或被捕獲的危險(xiǎn)??傊?,ZigBee網(wǎng)絡(luò)中的安全功能可以概括為兩方面內(nèi)容:(1)保證合法使用者正常使用;(2)防止非法破壞,,盜取信息,。這就要求ZigBee安全機(jī)制能提供密鑰建立、密鑰傳輸,、幀的保護(hù)和設(shè)備管理[7]等安全服務(wù),。
ZigBee協(xié)議棧提供的安全服務(wù)有數(shù)據(jù)加密、完整性校檢和鑒權(quán)等功能,,可以施加在應(yīng)用層,、網(wǎng)絡(luò)層或介質(zhì)訪問(wèn)控制層上。任何安全的ZigBee網(wǎng)絡(luò)都擁有一個(gè)指定的被稱為信托中心(Trust Center)的設(shè)備,,為其他設(shè)備分配鏈接密鑰(Link Key)和網(wǎng)絡(luò)密鑰(Network Key),。鏈接密鑰在兩個(gè)設(shè)備之間共享,并用于單播或組播通信,。網(wǎng)絡(luò)密鑰在整個(gè)網(wǎng)絡(luò)中共享,,當(dāng)消息被廣播時(shí)使用。
ZigBee網(wǎng)絡(luò)數(shù)據(jù)加密是發(fā)送者在數(shù)據(jù)發(fā)送之前通過(guò)加密算法對(duì)數(shù)據(jù)添加密鑰,,接收者在接收數(shù)據(jù)之后使用相同密鑰解密對(duì)數(shù)據(jù)進(jìn)行解密,。可以看出,,數(shù)據(jù)加密的關(guān)鍵就是對(duì)稱密鑰,,即發(fā)送者和接收者必須具有完全相同的128 bit密鑰才能進(jìn)行正常通信。使用對(duì)稱密鑰進(jìn)行數(shù)據(jù)加密的發(fā)送和接收過(guò)程[8]如圖1所示,。
系統(tǒng)的實(shí)現(xiàn)可以分為兩部分:
(1)數(shù)據(jù)經(jīng)過(guò)AES-CBC-MAC模式加密,,如圖2(a)所示。CBC-MAC模式被用于保護(hù)數(shù)據(jù)完整性,為了這個(gè)目的,,數(shù)據(jù)幀的包頭(Headers)和有效負(fù)載(Payload)必須經(jīng)過(guò)CBC模式加密,,生成的密文即為消息完整性代碼MIC(Message Integrity Code)的值。操作時(shí),,首先將第一部分?jǐn)?shù)據(jù)塊與初始化向量進(jìn)行“異或”運(yùn)算,,然后將其結(jié)果“異或”第二部分?jǐn)?shù)據(jù)塊,依次類推,。最后生成MIC用以確保傳輸數(shù)據(jù)不被篡改,。此操作過(guò)程的公式描述為:
由此可見,AES-CCM*安全加密模式結(jié)合了計(jì)數(shù)器模式與密碼分組連接模式兩者各自的優(yōu)點(diǎn),,并且有效縮短了ZigBee網(wǎng)絡(luò)數(shù)據(jù)的加密時(shí)間,。因此,AES-CCM*加密模式大大提高了單獨(dú)使用AES算法的加密效率,。
2.2 MSG命令幀類型
ZigBee網(wǎng)絡(luò)在應(yīng)用程序框架AF(Application Framework)中提供發(fā)送和接收數(shù)據(jù)的功能,。它包括兩種數(shù)據(jù)服務(wù)類型:鍵值對(duì)服務(wù)類型KVP(Key Value Pair)和報(bào)文服務(wù)類型MSG。KVP服務(wù)主要用于傳輸一些較為簡(jiǎn)單的變量格式,。由于ZigBee的很多應(yīng)用領(lǐng)域中的消息較為復(fù)雜,,并不適用于KVP格式,因此ZigBee協(xié)議規(guī)范定義了MSG服務(wù)類型,。MSG服務(wù)對(duì)數(shù)據(jù)格式和內(nèi)容不作要求,適合任何格式的數(shù)據(jù)傳輸,,可以用于傳送數(shù)據(jù)量大的消息,。MSG幀類型如表1所示,其中傳輸字節(jié)計(jì)數(shù)和幀類型都為4 bit,。如果幀類型值為0x02,,則表明該框架為MSG命令。每個(gè)數(shù)據(jù)包含有事務(wù)序列號(hào)(8 bit),、事務(wù)長(zhǎng)度(8 bit)和事務(wù)數(shù)據(jù)(bit可變),。
3 數(shù)據(jù)幀的安全處理過(guò)程
如果密鑰的位序列字段被設(shè)置為0,則數(shù)據(jù)幀未被保護(hù),。安全進(jìn)程可描述為:數(shù)據(jù)幀首先進(jìn)入AES-CBC-MAC模式以產(chǎn)生消息完整性代碼MIC,;然后進(jìn)入AES-CTR模式工作,將MIC值與有效負(fù)載進(jìn)行加密處理,;最后被加密的MIC與有效負(fù)載相結(jié)合構(gòu)成完整的密文包,。解密過(guò)程為加密過(guò)程的逆過(guò)程。
3.1 MSG變量的定義
unsigned char msg [32] =
{0xa6,0x62,0xd6,0x3d, 0x93,0x73,0xad,0x27,
0xad,0xc1,0x2b,0x3e, 0x3b,0x23,0x38,0xa5,
0xc3,0x18,0x45,0xa4, 0x8a,0x32,0x9d,0x35,
0xe9,0x4e,0xa2,0x93,0x9e,0xa3,0x11,0x57
}; //該數(shù)組被平均分為兩組
unsigned char ency_list [8]; //加密表
unsigned char tag_out_0, grap_1, grap_2, tag_out;
其中,,數(shù)據(jù)包“msg”包含被一分為二的32 bit的數(shù)組,,“ency_list”是一個(gè)動(dòng)態(tài)生成的8 bit的加密表,變量“tag_
out_0”是一個(gè)初始化向量,,“tag_out”是一個(gè)可變的MSG信息整合碼,。
3.2 數(shù)據(jù)加密算法的C語(yǔ)言描述
(1)AES-CBC-MAC模式工作代碼,,用以生成消息完整性代碼。其中“^”為異或運(yùn)算,,“%” 為互補(bǔ)操作,。
//計(jì)算B[i]矩陣,即初始化向量
ctr_cbc_mac_b[i*16+j] = msg[(i-2)*16+j];
for(i=0; i<cnt; i++)
{
for(j=0; j<16; j++)
aes_in[j] = Bi[i*16+j] ^ aes_out[j];
}
while (t < (10+1)*4) //計(jì)算輪密鑰
{
tk[i][0] ^= S[ tk[(i+1)%4][4-1] ];
tk[i][j] ^= tk[i][j-1];
}
//AES輪加密,,round為加密輪數(shù)
for(r=1; r < round; r++)
{
Byte-Sub(); //字節(jié)替換
ShiftRow(); //行移位
MixColumn(); //列混合
KeyAddition(); //輪密鑰加
}
Byte-Sub(); //最后一輪加密,,沒(méi)有列混合
ShiftRow();
KeyAddition();
out[i][j] = dataout[4*j + i]; //輸出密文
aes_cnt++;
}
(2)AES-CTR模式工作代碼,用以進(jìn)行數(shù)據(jù)加密,。其中使用ctr_cbc_mac_b矩陣存儲(chǔ)計(jì)數(shù)器值A(chǔ)i,。
//A[i]標(biāo)識(shí)符
ctr_cbc_mac_b[i*16+j] = nounceN[i-1];
for(i=0; i<cnt; i++)
{
for(j=0; j<16; j++)
aes_in[j] = Ai[i*16+j];
}
while (t < (10+1)*4) //計(jì)算輪密鑰
{
tk[i][0] ^= S[ tk[(i+1)%4][4-1] ];
tk[i][j] ^= tk[i][j-1];
}
{ AES輪加密 }
for(i=1; i<lm; i++) //msg 加密
{
Em_out[i] = msg[i] ^ Si[16+i];
Ciper_out[i] = Em_out[i];
}
for(i=0; i<M; i++) //MIC加密
{
U_out[i] = tag_out[i] ^ Si[i];
Ciper_out[lm+i] = U_out[i];
}
3.3 性能分析
該方案不僅可以有效地降低系統(tǒng)開銷及復(fù)雜度,同時(shí)還可以保證網(wǎng)絡(luò)的安全性,。每一個(gè)密文組與當(dāng)前明文組及AES加密結(jié)果的相關(guān)性滿足了數(shù)據(jù)機(jī)密性要求,。密文與消息完整性代碼的結(jié)合傳輸滿足了數(shù)據(jù)完整性要求。因此,,這種方法能夠有效改變ZigBee安全機(jī)構(gòu)的可行性和實(shí)用性,,并有效地縮短ZigBee網(wǎng)絡(luò)中數(shù)據(jù)加密的時(shí)間,可作為ZigBee網(wǎng)絡(luò)安全的可實(shí)施方案,。
本文主要研究ZigBee網(wǎng)絡(luò)安全機(jī)制中的數(shù)據(jù)安全加密算法,,提出基于AES-CCM*加密模式的簡(jiǎn)化MSG數(shù)據(jù)幀格式,以縮短加密時(shí)間,,增加ZigBee網(wǎng)絡(luò)傳輸數(shù)據(jù)凈載荷量,。AES-CCM*是ZigBee標(biāo)準(zhǔn)采用的基于AES-128算法的操作模式,既能保證數(shù)據(jù)傳輸?shù)臋C(jī)密性,,又能提供數(shù)據(jù)完整性校驗(yàn)功能,。仿真結(jié)果表明,AES-CCM*加密模式可以進(jìn)一步改進(jìn)ZigBee安全方面的性能,,以保證ZigBee技術(shù)的生存空間,。雖然此算法擁有較高的安全加密能力,但其仍然存在局限性,。
參考文獻(xiàn)
[1] ZigBee Alliance.ZigBee specifications:ZigBee and ZigBee Pro[EB/OL].[2013-09-06].http://www.ZigBee.org,,2010.
[2] National Institute of Standards and Technolo-gy(NIST).Advanced Encryption Standard(AES)[M].FIPS PUB 197,2001.
[3] DAEMEN J,,RIJMEN V.The design of Rijndael:AES the advanced encryption standard[M].Springer,,2002.
[4] YOO J H.Fast software implementation of AES-CCM on multiprocessors[M].Springer Berlin Heidelberg,2011.
[5] 封斌,,齊德昱,,韓海雯.IEEE 802.15.4中AES-CCM協(xié)議的擴(kuò)展指令集實(shí)現(xiàn)[J].電子與信息學(xué)報(bào),2013,35(2):335-340.
[6] VIDGREN N,,HAATAJA K,,PATINO A J L,et al.Security threats in ZigBee-enabled systems:vulnerability evaluation,,practical experiments,,countermeasures,and lessons learned[C]. System Sciences(HICSS),,2013 46th Hawaii International. Conference on,,IEEE,2013.
[7] ZigBee Alliance Board of Directors.Document 053474r17 ZigBee specification[S].2008.
[8] FARAHANI S.ZigBee wireless networks and transceivers[M]. Access Online via Elsevier,,2011.
[9] 谷利澤,,楊義先.現(xiàn)代密碼學(xué)教程[M].北京:北京郵電大學(xué)出版社,2009.
[10] YANG B,,F(xiàn)U R Y,,DIAO J Z,et al.Security mechanisms analysis for ZigBee standard based on AES-CCM*[J]. Advanced Materials Research,,2012(468):1359-1362.
[11] RUSINEK D,,KSIEZOPOLSKI B.Influence of CCM,CBCMAC,,CTR and stand-alone encryption on the quality of transmitted data in the high-performance WSN[J].Imote2 Annales UMCS Information AIXI,,2011(3):117-127.