仇國慶,包俊杰,曹冬梅,劉 帥
(重慶郵電大學 智能儀器儀表及工業自動化與測試技術實驗室,重慶400065)
ZigBee是一種近距離、低速率、低功耗、低成本的無線網絡技術[1],正是由于這些優點,基于 ZigBee標準的無線傳感器網絡的應用越來越廣泛。但由于ZigBee無線設備在存儲能力、計算能力及電源供電時間方面的局限性,不僅使得原來在有線環境下的許多安全方案和安全技術不能直接應用于ZigBee網絡環境中,而且對ZigBee網絡安全服務過程與算法提出了較高要求。目前,ZigBee網絡中采用的數據加密模式為 128 bit的AES算法[2]。AES采用迭代型分組密碼Rijndael[3]算法,具有優秀的性能及抗攻擊能力,所以在受限工作環境中(如ZigBee網絡環境)也有較好的加密/解密運算效率。
基于AES算法的CCM*安全機制包括所有AESCCM(計數器加密分組鏈接信息鑒別碼模式)[4-5]的功能且是更輕量級的加密模式,既保證數據傳輸的機密性又保證數據完整性。因此,本文使用AES-CCM*模式進行數據加密,并重新定義了MSG的數據幀格式以提高加密效率和傳輸數據凈載荷量。仿真結果表明,CCM*加密模式不僅可以降低系統開銷、減小復雜度及縮短加密時間,同時還可以保證網絡的安全有效性。
ZigBee網絡系統存在如數據竊聽、篡改、偽造等安全威脅。研究發現,攻擊者通過攻擊通信節點或分配惡意節點偽裝成合法節點進入網絡來改變、丟棄或破壞數據包,最終致使整個ZigBee網絡癱瘓。典型的內部網絡攻擊包括 Sinkhole攻擊、Sybil攻擊、Wormholes攻擊、Flooding攻擊、應答欺騙等[6]。除此之外,安裝在無人區的網絡節點也可能會出現節點失效、損毀或被捕獲的危險。總之,ZigBee網絡中的安全功能可以概括為兩方面內容:(1)保證合法使用者正常使用;(2)防止非法破壞,盜取信息。這就要求ZigBee安全機制能提供密鑰建立、密鑰傳輸、幀的保護和設備管理[7]等安全服務。
ZigBee協議棧提供的安全服務有數據加密、完整性校檢和鑒權等功能,可以施加在應用層、網絡層或介質訪問控制層上。任何安全的ZigBee網絡都擁有一個指定的被稱為信托中心(Trust Center)的設備,為其他設備分配鏈接密鑰(Link Key)和網絡密鑰(Network Key)。鏈接密鑰在兩個設備之間共享,并用于單播或組播通信。網絡密鑰在整個網絡中共享,當消息被廣播時使用。
ZigBee網絡數據加密是發送者在數據發送之前通過加密算法對數據添加密鑰,接收者在接收數據之后使用相同密鑰解密對數據進行解密。可以看出,數據加密的關鍵就是對稱密鑰,即發送者和接收者必須具有完全相同的128 bit密鑰才能進行正常通信。使用對稱密鑰進行數據加密的發送和接收過程[8]如圖1所示。

圖1 對稱密鑰數據加密示意圖
AES算法建立在有限域 GF(28)之上,屬于對稱密鑰算法中的分組迭代密碼算法,采用替代/置換(SP)網絡結構。AES算法擁有密碼分組連接模式CBC(Cipher Block Chaining)、計數器模式 CTR(Counter)、密文反饋模式 CFB(Cipher Feed Back)等多種安全模式[9]。
本文采用更輕量級的AES-CCM*[10]安全機制。CCM*安全機制是一種全新的分組密碼操作模式,它同時提供了加密與鑒別服務,是CTR模式與CBC-MAC模式的聯合操作模式,其中加密服務由CTR提供,而鑒別服務由CBC-MAC模式提供[11]。CCM*模式的詳細加密過程如圖2所示。

圖2 AES-CCM*模式的詳細加密過程
系統的實現可以分為兩部分:
(1)數據經過 AES-CBC-MAC模式加密,如圖 2(a)所示。CBC-MAC模式被用于保護數據完整性,為了這個目的,數據幀的包頭(Headers)和有效負載(Payload)必須經過CBC模式加密,生成的密文即為消息完整性代碼MIC(Message Integrity Code)的值。操作時,首先將第一部分數據塊與初始化向量進行“異或”運算,然后將其結果“異或”第二部分數據塊,依次類推。最后生成MIC用以確保傳輸數據不被篡改。此操作過程的公式描述為:

操作過程的執行時間為:

其中,Lblock與TAES分別代表加密模塊長度和加密時間,payload-size表示有效負載大小。
(2)AES-CTR模式加密過程,如圖2(b)所示。CTR模塊提供數據保密性,它將MIC值和數據幀中有效負載部分進行加密處理。操作過程中,將計數器值(An)和密鑰K使用AES算法加密,然后將AES加密結果與發送方的明文塊進行“異或”運算產生密文塊,計數器值加1。依此類推,最后完成全部發送數據的加密。操作過程的數學表達式為:

此操作模塊的加密時間:


由此可見,AES-CCM*安全加密模式結合了計數器模式與密碼分組連接模式兩者各自的優點,并且有效縮短了ZigBee網絡數據的加密時間。因此,AES-CCM*加密模式大大提高了單獨使用AES算法的加密效率。
ZigBee網絡在應用程序框架AF(Application Framework)中提供發送和接收數據的功能。它包括兩種數據服務類型:鍵值對服務類型KVP(Key Value Pair)和報文服務類型MSG。KVP服務主要用于傳輸一些較為簡單的變量格式。由于ZigBee的很多應用領域中的消息較為復雜,并不適用于KVP格式,因此ZigBee協議規范定義了MSG服務類型。MSG服務對數據格式和內容不作要求,適合任何格式的數據傳輸,可以用于傳送數據量大的消息。MSG幀類型如表1所示,其中傳輸字節計數和幀類型都為4 bit。如果幀類型值為0x02,則表明該框架為MSG命令。每個數據包含有事務序列號(8 bit)、事務長度(8 bit)和事務數據(bit可變)。
AES-CCM*組合模式的算法加密時間由式(3)~式(6)決定,因此其加密時間可由式(7)給出:

表1 應用程序框架中MSG幀類型
標準ZigBee傳輸協議中,數據從應用層到物理層逐層傳輸,每個數據幀中都包含各層完整的幀頭信息。為簡化加密過程并提高傳輸數據凈載荷量,本文重新定義了MSG的幀類型,新的MSG幀類型結構如表2所示。事務序列號被分為兩組,分別占8 bit密鑰字節的高4位和低4位,8 bit MIC用以指定消息完整性代碼。

表2 重新定義的MSG幀類型事務數據段
如果密鑰的位序列字段被設置為0,則數據幀未被保護。安全進程可描述為:數據幀首先進入AES-CBCMAC模式以產生消息完整性代碼MIC;然后進入AESCTR模式工作,將MIC值與有效負載進行加密處理;最后被加密的MIC與有效負載相結合構成完整的密文包。解密過程為加密過程的逆過程。

其中,數據包“msg”包含被一分為二的 32 bit的數組,“ency_list”是一個動態生成的 8 bit的加密表,變量“tag_out_0”是一個初始化向量,“tag_out”是一個可變的 MSG信息整合碼。
(1)AES-CBC-MAC模式工作代碼,用以生成消息完整性代碼。其中“^”為異或運算,“%”為互補操作。


該方案不僅可以有效地降低系統開銷及復雜度,同時還可以保證網絡的安全性。每一個密文組與當前明文組及AES加密結果的相關性滿足了數據機密性要求。密文與消息完整性代碼的結合傳輸滿足了數據完整性要求。因此,這種方法能夠有效改變ZigBee安全機構的
可行性和實用性,并有效地縮短ZigBee網絡中數據加密的時間,可作為ZigBee網絡安全的可實施方案。
本文主要研究ZigBee網絡安全機制中的數據安全加密算法,提出基于AES-CCM*加密模式的簡化MSG數據幀格式,以縮短加密時間,增加ZigBee網絡傳輸數據凈載荷量。AES-CCM*是ZigBee標準采用的基于AES-128算法的操作模式,既能保證數據傳輸的機密性,又能提供數據完整性校驗功能。仿真結果表明,AES-CCM*加密模式可以進一步改進ZigBee安全方面的性能,以保證ZigBee技術的生存空間。雖然此算法擁有較高的安全加密能力,但其仍然存在局限性。
[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 協議的擴展指令集實現[J].電子與信息學報,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]谷利澤,楊義先.現代密碼學教程[M].北京:北京郵電大學出版社,2009.
[10]YANG B,FU 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.