作者:
騰訊安全中心
·
2015/08/10 17:41
0x00 研究背景
在2015年初,小米釋出新款產品——小米智慧家庭套裝【如圖1】,由多功能閘道器、人體感測器、門窗感測器和無線開關四個產品組成,它們有一個共同的特點就是均支援 ZigBee
協議。之所以沒用到WiFi和藍芽,主要是考慮到兩個方面:低功耗和多裝置連線。由於WiFi耗電,藍芽最多支援7個裝置,不能自組網,因此小米採用ZigBee協議。
正是基於未來智慧裝置可能使用到ZigBee
協議,因此才對ZigBee協議的通訊原理和安全性進行研究,以為將來的智慧裝置研究作技術鋪墊。
同時,最近剛開的BlackHat USA
與Defcon
駭客大會上分別有2個關於ZigBee安全的議題,於是把之前5月份研究的部分內容整理成本文,如有誤,歡迎指正。
0x01 ZigBee簡介
ZigBee
是一個基於 IEEE802.15.4
標準(2.4 Ghz 頻段)的低功耗區域網協議,是一種短距離、低功耗的無線通訊技術,最大傳輸速率為250 Kbps,普遍傳輸範圍在10~100米。通常情況下,手機透過WiFi或藍芽即可實現對智慧裝置的控制,但若使用ZigBee協議,就需要使用介面卡或連線控制中心才能使用,其中小米多功能閘道器就是用來連線其它ZigBee裝置的,其它小米裝置使用內建電池可使用長達2年以上,這就是ZigBee的優缺點。
目前已有一些智慧家居系統使用到ZigBee協議,被應用於門窗、家電、安防等用途,下圖是ZigBee 智慧家居系統的應用場景【如圖2】:
0x02 ZigBee安全機制
(注:對於本節內容,可能在新版ZigBee協議標準中會有所變化,請以新版為準。) ZigBee主要提供有三個等級的安全模式: 1、 非安全模式:為預設安全模式,即不採取任何安全服務,因此可能被竊聽;
2、 訪問控制模式:透過訪問控制列表(Access Control List
, ACL
,包含有允許接入的硬體裝置MAC地址) 限制非法節點獲取資料;
3、 安全模式:採用AES 128位加密演算法進行通訊加密,同時提供有0,32,64,128位的完整性校驗,該模式又分為標準安全模式(明文傳輸金鑰)和高階安全模式(禁止傳輸金鑰)。 在一些模式裡面又分有多種安全子級,整體來看可以直接參考Wireshark裡面提供的安全級別(Edit=>Preferences=>Protocols=>ZigBee NWK
)【如圖3】,裡面也支援預設金鑰用於解析資料包。
如果使用安全模式,那麼它會提供3種型別的金鑰用於保證通訊安全:
主金鑰(Master Key
):用於配合ZigBee對稱金鑰的建立(SKKE)過程來派生其它金鑰,也就是說,裝置要先擁有信任中心(ZigBee網路中有且僅有的一個可信任裝置,負責金鑰分發與管理,以及網路的建立與維護)生成的主金鑰才能派生網路金鑰和鏈路金鑰給其它裝置,它可以由信任中心設定,也可基於使用者訪問資料,比如個人識別碼(PIN),口令或密碼等資訊;
網路金鑰(Network Key
):用於保護廣播和組資料的機密性和完整性,同時也為網路認證提供保護,被網路中的多個裝置所共享,僅在廣播訊息中使用;
連結金鑰(Link Key
):用於保護兩個裝置之間單播資料的機密性和完整性,僅通訊中的2個裝置持有,而單個裝置需要多個連結金鑰來保護每個端對端會話。
在ZigBee Pro(更高安全級別的ZigBee版本)中,管理員使用對稱金鑰建立方法來派生裝置上使用的網路金鑰和連結金鑰,但是這要求裝置擁有從信任中心生成的主金鑰,同時要求裝置已經加入網路。關於金鑰生成的方法主要有兩種方式:
1、 金鑰傳輸:採用此方法後,網路金鑰與連結金鑰可能以明文形式傳送到網路中的其它裝置,因此金鑰有可能被竊聽到,從而解密出所有通訊資料,或者偽造合法裝置去控制相應智慧裝置。為了避免金鑰明文傳輸,以及實現不同廠商裝置之間的相容性,協議還提供有預設的信任中心連結密 (TCLK:0x5A 0x69 0x67 0x42 0x65 0x65 0x41 0x6C 0x6C 0x69 0x61 0x6E 0x63 0x65 0x30 0x39
)去加密傳輸的金鑰,這就引入新的安全風險。此次BlackHat大會的ZigBee Exploited
議題也正是透過該預設金鑰去ZLL燈泡進行攻擊,實現遠端控制。
2、 預安裝:在裝置上直接配置好金鑰,如果需要更改,就需要重新刷裝置韌體,雖然這種方式更加安全可信,但也是最繁瑣複雜的方式。此次360安全團隊在Defcon大會上演示的正是對某種智慧燈泡的韌體進行逆向,從中找到金鑰,從而實現對智慧裝置的控制。
0x03 安全風險
1、竊聽攻擊
當ZigBee採用非安全模式時,對傳輸資料將不作加密處理,因此可能被外部竊取到通訊資料【如圖4】。
2、金鑰攻擊
由於在金鑰傳輸過程中,可能會以明文形式傳輸網路/連結金鑰【如圖5】,因此可能被竊取到金鑰,從而解密出通訊資料,或者偽造合法裝置。也有可能透過逆向一些智慧裝置韌體,從中獲取金鑰進行通訊命令解密,然後偽造命令進行攻擊。
有些聯合廠商在ZigBee基礎上作了改進,比如ZigBee Light Link
(ZLL)全球互聯照明標準(源自2014年第二屆家電節能與智慧化技術大會)就採用ZLL金鑰對傳輸金鑰進行一次AES 128位加密再發出去【如圖6】,以避免金鑰洩露的情況,該ZZL金鑰是ZigBee聯盟在產品認證後授予的。
0x04 總結
目前針對ZigBee協議的攻擊,主要還是圍繞金鑰安全問題進行攻擊。雖然ZigBee的流行度和使用範圍並沒有達到像WiFi、藍芽那樣普遍,但隨著此次小米智慧家庭套裝的引用,可能會帶動一波廠商使用到智慧裝置之中,因此有必要繼續關注下ZigBee在智慧裝置中的安全問題。
0x05 參考資料
1、 ZigBee Specification Document 053474r17:http://home.deib.polimi.it/cesana/teaching/IoT/papers/ZigBee/ZigBeeSpec.pdf
2、 KillerBee - Practical ZigBee Exploitation Framework
3、 Security Issues And Vulnerability Assessment Of ZigBee Enable Home Area Network Implementations
4、 ZigBee技術及其安全性研究_虞志飛
5、 ZigBee Exploited (BlackHat USA 2015):http://cognosec.com/zigbee_exploited_8F_Ca9.pdf
6、 Take Unauthorized Control Over ZigBee Devices(Defcon 23): https://media.defcon.org/DEF%20CON%2023/DEF%20CON%2023%20presentations/Speaker%20&%20Workshop%20Materials/Li%20Jun%20&%20Yang%20Qing/DEFCON-23-Li-Jun-Yang-Qing-I-AM-A-NEWBIE-YET-I-CAN-HACK-ZIGB.pdf
7、 docs-09-5378-00-0mwg-zigbee-security
8、 docs-05-3765-00-0mwg-zigbee-security-layer-technical-overview
9、ZigBee 3.0 – The Open, Global Standard for the Internet of Things
來自 @騰訊安全平臺部
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!