網(wǎng)絡安全攻防:ZigBee安全
微信公眾號:計算機與網(wǎng)絡安全
ID:Computer-network
1. ZigBee簡介
ZigBee(又稱紫蜂協(xié)議)是基于IEEE802.15.4標準的低功耗局域網(wǎng)協(xié)議。根據(jù)國際標準規(guī)定,ZigBee技術是一種短距離、低功耗的無線通信技術。ZigBee來源于蜜蜂的八字舞,由于蜜蜂(Bee)是靠飛翔和“嗡嗡”(Zig)地抖動翅膀的“舞蹈”來與同伴傳遞花粉所在方位信息,也就是說蜜蜂依靠這樣的方式構成了群體中的通信網(wǎng)絡。其特點是近距離、低復雜度、自組織、低功耗、低數(shù)據(jù)速率。主要適合用于自動控制和遠程控制領域,可以嵌入各種設備。簡而言之,ZigBee就是一種便宜的、低功耗的近距離無線組網(wǎng)通信技術。ZigBee是一種低速短距離傳輸?shù)臒o線網(wǎng)絡協(xié)議。ZigBee 協(xié)議從下到上分別為物理層(PHY)、媒體訪問控制層(MAC)、傳輸層(TL)、網(wǎng)絡層(NWK)、應用層(APL)等。其中物理層和媒體訪問控制層遵循IEEE 802.15.4標準的規(guī)定。
給出ZigBee的定義之后,接下來對ZigBee的特點進行詳細的介紹。
(1)低功耗:兩節(jié)五號電池支持長達6個月到2年左右的使用時間。
(2)低成本:由于簡化了協(xié)議棧,降低內核的性能要求,以CC2530為例,內核就是一個增強型的8051內核,從而降低了芯片成本,每塊CC2530大約15元。
(3)低速率:ZigBee可以提供3種原始數(shù)據(jù)吞吐率,分別為:250 kbit/s(2.4 GHz)、40 kbit/s(915 MHz)、20 kbit/s(868 MHz)。
(4)近距離:“近”是相對的,與藍牙相比,ZigBee屬于低速率遠距離數(shù)據(jù)傳輸。
(5)可靠:采用碰撞避免機制,同時為需要固定帶寬的通信業(yè)務預留了專用時隙,避免了發(fā)送數(shù)據(jù)時的競爭和沖突;節(jié)點模塊之間具有自動動態(tài)組網(wǎng)的功能,信息在整個 ZigBee網(wǎng)絡中通過自動路由的方式進行傳輸,從而保證了信息傳輸?shù)目煽啃浴?/p>
(6)短時延:針對時延敏感的應用做了優(yōu)化,通信時延和從休眠狀態(tài)激活的時延都非常短。
(7)網(wǎng)絡容量大:ZigBee可采用星狀、樹狀和網(wǎng)狀網(wǎng)絡結構。
(8)安全:ZigBee提供數(shù)據(jù)完整性檢查和鑒權功能,加密算法采用通用的AES-128。
(9)高保密性:64位出廠編號和支持AES-128加密。
ZigBee協(xié)議的層次結構如圖1所示。
圖1 ZigBee協(xié)議的層次結構
物理層是由IEEE802.15.4規(guī)范定義的,該協(xié)議與IEEE 802.11協(xié)議類似,都是無線網(wǎng)絡協(xié)議。而介質訪問控制層也與物理層一樣,是由該協(xié)議定義的,這一層還包含了構建擴張ZigBee網(wǎng)絡的各項功能,如相連設備間的拓撲結構、數(shù)據(jù)幀的結構設計、“設備的角色”以及網(wǎng)絡上的“建立關聯(lián)”和“解除關聯(lián)”等。網(wǎng)絡層以及應用層都是根據(jù)ZigBee標準定義的,其中,網(wǎng)絡層主要是負責實現(xiàn)高層的功能,如“網(wǎng)絡程序”“設備發(fā)現(xiàn)”“地址分配”和“數(shù)據(jù)路由”。應用層則是這個協(xié)議棧的最高層,規(guī)定了“應用對象”的操作和接口。
2. ZigBee安全
無線取代有線是一個趨勢,因為每個人都可能為繁雜的線路煩惱。而現(xiàn)在無線技術主要分為藍牙、Wi-Fi、Zwave、ZigBee 4種。而ZigBee在小范圍的無線技術中是比較安全的。
ZigBee使用的加密算法是AES加密算法。AES(Advanced Encryption Standard)是美國國家標準與技術研究所用于加密電子數(shù)據(jù)的規(guī)范。它被預期能成為人們公認的加密金融、電信和政府數(shù)字信息等內容的方法。AES是一個新的可以用于保護電子數(shù)據(jù)的加密算法。明確地說,AES是一個迭代的、對稱密鑰分組的密碼,它可以使用128 bit、192 bit和256 bit密鑰,并且用128 bit(16 B)分組加密和解密數(shù)據(jù)。與公共密鑰密碼使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數(shù)據(jù)。通過分組密碼返回的加密數(shù)據(jù)的位數(shù)與輸入數(shù)據(jù)相同。迭代加密使用一個循環(huán)結構,在該循環(huán)中重復置換(permutations)和替換(substitutions)輸入數(shù)據(jù)。
在Z-stack中采用的是128 bit的密,首先需要一個128 bit的key,不同的key加密出來的內容也不同,在 Z-stack 中是通過 DEFAULT_KEY="{0x01,0x03,0x05,0x07,0x09,0x0B,0x0D,0x0F,0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0D}"這種方式來定義的。
Z-stack已經(jīng)在協(xié)議棧中實現(xiàn)了這個加密算法,如果需要使用,直接開啟這個服務就可以了。
如果使用了加密算法,網(wǎng)絡中所有的設備都需要開啟這個算法,而且各個設備中的 key必須相同,否則后果是很嚴重的,這會導致網(wǎng)絡不能正常通信,因為沒有加密的數(shù)據(jù)或相同key加密,這些數(shù)據(jù)網(wǎng)絡是不認識的,根本就不會傳到網(wǎng)絡層。
加密算法開啟以后,如果需要修改代碼,就必須改變key,或擦除一次flash,否則會出現(xiàn)不可預期的錯誤,而且沒有規(guī)律。通常的做法是擦除一次flash,這樣可以保證和整個網(wǎng)絡的key相同,除了這個機制以外,還具備白名單機制。在入網(wǎng)時,將入網(wǎng)設備的MAC地址加密后生成key,可以在運行時通過串口協(xié)議控制節(jié)點的入網(wǎng)許可。
3. ZigBee攻擊
作為無線通信協(xié)議,它避免不了在通信過程中造成的協(xié)議漏洞。在使用ZigBee通信時,攻擊者可以嗅探傳輸?shù)臄?shù)據(jù),捕獲傳輸?shù)臄?shù)據(jù)后進行重放攻擊,在初次通信時嗅探加密密鑰、欺騙攻擊、拒絕服務。這些攻擊是無線通信協(xié)議的通病,每個無線通信協(xié)議基本上都會存在。
將ZigBee的攻擊分為兩種,一種是竊聽攻擊,另一種是密鑰攻擊。
(1)竊聽攻擊
ZigBee的安全機制共有3種模式:非安全模式、訪問控制模式和安全模式。
非安全模式:為默認安全模式,即不采取任何安全服務,因此可能被竊聽。
訪問控制模式:通過訪問控制列表(ACL,Access Control List)限制非法節(jié)點獲取數(shù)據(jù),ACL中包含有允許接入的硬件設備MAC地址。
安全模式:采用AES 128位加密算法進行通信加密,同時提供有0、32、64、128 bit的完整性校驗,該模式又分為標準安全模式(明文傳輸密鑰)和高級安全模式(禁止傳輸密鑰)。
所以,竊聽攻擊發(fā)送在非安全模式下,攻擊者可以通過抓取數(shù)據(jù)分組的形式,查看受害者的數(shù)據(jù)分組內容。
(2)密鑰攻擊
由于在密鑰傳輸過程中,可能會以明文形式傳輸網(wǎng)絡/鏈接密鑰,因此可能被竊取到密鑰,從而解密出通信數(shù)據(jù),或偽造合法設備。也有可能通過一些逆向智能設備固件,從中獲取密鑰進行通信命令解密,然后偽造命令進行攻擊。
ZigBee攻擊的工具,比較有名的就是KillerBee。KillerBee是一套專門用來攻擊ZigBee網(wǎng)絡和IEEE802.15.4 協(xié)議的一組攻擊套件,它是基于 Python 編寫的應用程序框架。整個項目都是在Linux操作系統(tǒng)上完成的。而這個項目不是去完成攻擊,而是提供編寫程序的框架,攻擊者可以通過自己學習這個程序以簡化常見的攻擊過程。詳細地說,就是使用這個框架中的一些功能可以完成對ZigBee的安全漏洞攻擊,在攻擊的同時還需要使用KillerBee工具包。
要想使用KillerBee工具包的全部功能,有些組件需要被編譯鏈接,然后創(chuàng)建到工具包中,其中主要包括下面的硬件和軟件。
硬件:RZ Raven USB接口的記憶棒、AVR Dragon片上編譯器、100 ms到50 ms JTAG支持架適配器、50 ms“公頭對公頭”的連接頭和10針2排5列100 ms“母頭對母頭”帶狀連接線。
軟件:AVRDUDE工具、RZUSBstick記憶棒的免費KillerBee固件、主機(用于運行連接和將程序寫入RZUSBstick記憶棒中)。