,,,
(1.陸軍裝甲兵學院 信息通信系,北京 100072;2.73630部隊)
隨著智能設備的普及和信息技術的高度發展,人們對電子設備的自動化、智能化有了更高的需求,物聯網作為新一代信息技術的重要組成部分,正踏上高速發展的快車道,逐步融入我們的生活。如圖1所示,目前已有的移動蜂窩網絡、藍牙、ZigBee、WiFi等無線通信技術,已經不能很好地滿足物聯網設備M2M通信模式遠距離、低功耗、多節點的需求[1],在這種情況下,低功耗廣域網(Low-Power Wide-Area Network,LPWAN)技術應運而生。

圖1 無線技術性能對比
LoRa是Semtech公司在2013年發布的基于擴頻調制的無線通信技術[2],是目前發展較為成熟的LPWAN技術之一,主要應用于物聯網終端節點,具備超長距離擴頻通信、抗干擾性強、功耗極低等性能。LoRa技術采用線性啁啾擴頻(Chirp Spread Spectrum,CSS)調制,不同的擴頻因子(Spreading Factor,SF)之間呈正交性[3],這種調制方式的信道容量接近香農理論極限[4],同時在抗阻塞和選擇性方面也具有明顯優勢,突破了傳統窄帶通信無法同時兼顧距離、抗干擾和功耗的技術瓶頸,并且在數據傳輸過程中集成了擴頻調制和前向糾錯,成為低速率、低功耗、遠距離傳輸和對可靠性要求較高的應用場景的最佳選擇。
隨著LoRa試點與日俱增,LoRaWAN應用已擴展至全球范圍[5],從個體運營者到大型企業,從簡單的實驗室平臺到大型工業項目,LoRaWAN經受著不同用戶群體、應用場合、外界環境的考驗,憑借大容量、全球統一標準、低成本、高靈活性的特點成為非授權頻段物聯網運營的首選方案。
根據LoRa聯盟公布的數據[6],截止至2017年末,荷蘭皇家KPN電信集團已在全國范圍內部署LoRa網絡,成為世界上第一個在全國范圍內普及物聯網的國家;美國運營商Senet在美國110多個城市進行網絡搭建試點,覆蓋面積超過12 500平方公里。在國內,2016年初由中興聯手LoRa聯盟成立中國LoRa應用聯盟(China LoRa Application Alliance,CLAA),旨在推動國內LoRa網絡建設和產業鏈發展;八月科技(AUGTEK)京杭大運河完成了284個LoRa基站的建設,覆蓋了1300 km的流域,成為國內覆蓋面積最大的LoRa網絡。這些大規模物聯網都是基于LoRaWAN運行的,其安全性能直接影響著系統的可靠性。
安全是物聯網技術應用推廣的基本前提,2017年度發生的多起無人機黑飛、安防攝像頭遠程非法控制、智能玩具數據泄露等事件為我們敲響了安全的警鐘[7],這些為我們生活帶來舒適和便利的智能產品如果使用稍有不慎,就有可能成為信息安全泄露的罪魁禍首,安全將成為物聯網產業的尖銳問題。
LoRa作為物聯網技術標準的有力備選方案,其安全性建設是重中之重,LoRaWAN白皮書中大量篇幅都在敘述通信的安全機制[8],包括雙向認證、信息完整性校驗、數據加密算法、密鑰管理機制等方面,同時結合LPWAN的技術特點,兼具低功耗、低成本和良好擴展性的設計,支持數以百萬計的節點設備聯網。然而LoRaWAN尚處在發展初期,還有很多不完備的地方,如雙向認證存在遭受DOS攻擊的可能、密鑰管理過分依賴節點設備物理安全等[13],一旦其安全漏洞遭到黑客攻擊,將會面臨巨大的信息安全威脅。全面分析LoRaWAN協議內容,了解目前相關參考文獻中LoRaWAN安全性研究的情況,從而提供改進性建議,對LoRa技術的普及、LPWAN健康生態環境的構建、物聯網技術的推進都具有重要意義。
本節對LoRaWAN 1.0.3協議正式版本[9]的內容作詳細介紹,主要從網絡架構、通信模式、幀結構、密鑰分類、激活方式、加密方式6個方面對協議進行簡要說明。
LoRaWAN網絡架構整體上分為4層,由下至上分別為終端節點、LoRa網關、網絡服務器、網絡應用。如圖2所示,單一網關采用單跳星型拓撲結構,對比于MESH等其他拓撲結構,星型拓撲結構具有延時小、易擴展、容量大、可靠性高的特點[7],終端節點與網關之間為半雙工通信,可以同時與多個網關相連,網關作為透明中繼連接終端節點和網絡服務器,服務器上可以注冊多個應用,用來與終端節點進行通信。

圖2 LoRaWAN網絡架構
LoRaWAN協議將通信模式分為Class A、Class B、Class C三類,所有的通信設備必須滿足Class A以符合基本的通信標準。
Class A:終端節點在傳輸上行數據后會打開兩個下行數據接收窗口RX1、RX2,RX1的頻率和波特率與上行數據一致,RX2的頻率與波特率可由MAC命令配置。開窗時間RECEIVE_DELAY1和RECEIVE_DELAY2可由MAC指令修改。Class A是功耗最低也是最基本的通信模式,其數據傳輸是突發式的,服務器和用戶應用無法預知通信時間。
Class B:在終端節點傳輸上行數據后,除了打開RX1、RX2接收窗口外,還會開放額外的窗口SLOT,用于接收下行數據,該模式下網關會周期性向所有終端節點發送同步信號BEACON,終端節點會根據BEACON的時間信息進行開窗,以克服Class A中通信時間無法預知的不足。
Class C:在終端節點傳輸上行數據之外的時間均處于接收狀態,在上行數據發送后,RX1接收窗口正常開窗,其余空閑時間均處在RX2窗口接收范圍內,該模式可最小化通信丟包率,但功耗最大。
三類通信模式對比圖如圖3所示。

圖3 LoRaWAN通信模式
LoRaWAN上下行數據幀結構基本一致,均分為前導碼(Preamble)、PHY頭(PHDR)、PHY頭校驗碼(PHDR_CRC)、PHY負載(PHYPayload)4個部分,上行數據比下行數據多了CRC校驗碼。其中,Preamble用于LoRa接收機信道檢測,PHDR包含數據報速率、信道等信息,PHDR_CRC負責校驗信息傳遞的正確性。PHYPayload由MAC頭(MHDR)、消息部分、完整性校驗(MIC)組成,其中MHDR按位分為版本號(Major)、保留位(RFU)、消息種類(MType)。消息部分分為MAC負載(MACPayload)、入網請求(Join-Request)、入網應答(Join-Response)三種消息類型,MACPayload可進一步分為上下行認證消息及非認證消息4種,由MType進行區分,如圖4所示。

圖4 PHY負載結構
為保證網絡安全可靠,LoRaWAN共設有6種密鑰,分別是設備地址(DevAddr)、設備標識(DevEUI)、根密鑰(AppKey)、應用標識(AppEUI)、網絡會話密鑰(NwkSKey)和應用會話密鑰(AppSKey),這些密鑰在終端節點和網絡服務器間共享,分別應用于入網激活、設備尋址、信息加密等過程,是確保網絡安全可靠的關鍵。
DevAddr由32位組成,用來標識節點設備,其中DevAddr[31:25]為NwkID,用來標識網絡,DevAddr[24:0]為NwkAddr,用來標識設備在該網絡中的地址,該地址可由網絡管理者修改。
DevEUI是一個遵循IEEE EUI-64標準的64位標識,用來標識全球唯一的終端節點ID。
AppEUI是一個遵循IEEE EUI-64標準的64位標識,用來標識全球唯一的應用ID。
AppKey由128位組成,是LoRaWAN加密算法的根密鑰,網絡服務器和OTAA模式下的終端節點用之產生NwkSKey和AppSKey。
NwkSKey由AppKey等信息經AES-128計算產生,用于FRMPayload傳遞MAC指令時加解密信息,以及信息的完整性校驗。在OTAA模式下,NwkSKey是動態變化的,ABP模式下NwkSKey是固定不變的。
AppSKey由AppKey等信息經AES-128計算產生,用于FRMPayload傳遞一般信息時加解密信息,以及信息的完整性校驗。在OTAA模式下,AppSKey是動態變化的,ABP模式下AppSKey是固定不變的。
終端節點首先需要激活入網才能夠進行通信,激活入網的方式有兩種:空中激活(Over-The-Air Activation,OTAA)和手動激活(Activation By Personalization,ABP),兩者的入網過程和密鑰管理方式不同,適用于不同的應用場合。
(1)空中激活
在空中激活模式下,終端節點需要向網絡服務器發送入網請求,網絡服務器需要向終端節點發送入網請求應答,入網激活流程如圖5所示,在入網過程中,由終端節點向網絡服務器發送入網請求,當檢測信息符合入網條件時,網絡服務器向終端節點發送入網請求應答,終端節點通過入網應答中的AppNonce或DevNonce生成NwkSKey和AppSKey,并存儲在終端節點中作為此次入網通信的AES密鑰,由于AppNonce、DevNonce具有隨機性,終端節點每次入網通信的密鑰都不同,從而可以有效避免重放攻擊,保證了通信的可靠性。

圖5 OTAA入網流程
(2)手動激活
在手動激活模式下,終端節點直接配置與網絡服務器相一致的DevAddr、NwkSKey、AppSKey,直接與網絡服務器進行通信,不需要入網激活,且NwkSKey、AppSKey不再由AppKey動態計算產生。整個通信過程中DevAddr、NwkSKey、AppSKey始終存儲在終端節點中固定不變。ABP是一種簡單的入網機制,適合于建立小型私人網絡等安全性要求不高的場合。
LoRaWAN采用雙層AES-128加密算法,在OTAA模式的入網激活階段,網絡服務器的入網請求應答采用電碼本(Electronic Code Book,ECB)模式的AES-128加密算法,正常通信時的消息幀采用計數器(Counter,CTR)模式的AES-128加密算法。
(1)Join-Response加密算法
LoRaWAN協議針對Join-Response的AES-128加密算法類似ECB模式,首先將Join-Reaponse與MIC碼進行“或”運算,之后將加和后的信息按照k=ceil(len(Join-Response|MIC)/16)分成k組,對每組使用根密鑰(AppKey)進行加密處理,最后將k組加密結果進行“或”運算得到最終的加密數據,整個加密過程如圖6所示。

圖6 Join-Response加密流程
(2)FRMPayload加密算法
LoRaWAN協議針對FRMPayload的AES-128加密算法相當于CTR模式,首先根據k=ceil(len(PRMPayload)/16)將原始數據FRMPayload分成k組,然后對CTR計數器Ai(i=1,…,k)進行填充,Ai的幀結構如圖7所示,其中Dir是數據傳遞的方向,0代表上行數據,1代表下行數據,FCntUp和FCntDown分別是上行數據和下行數據計數器,對每一個分組進行AES-128加密處理得到Si,再將每塊分組的加密數據進行或運算得到S,S與pad16補齊過的FRMPayload進行“異或”運算,最后將運算結果截短至原FRMPayload長度L,即得到最后的加密數據,整個加密過程如圖8所示。

圖7 CTR計數器幀結構

圖8 FRMPayload加密流程
LoRa技術的發展大體上可分為三個階段:第一階段進行基礎設施建設和試點運行工作,主要研究技術方案的可行性;第二階段為現行方案提供技術完善,增加系統的穩定性、安全性、可靠性;第三階段為大規模應用推廣,普及商用。目前LoRa技術在國外市場主要處于第二、三階段,近年來隨著一些國家LoRa技術在全國范圍內應用推廣,LoRaWAN的安全性研究引起了高度重視,涌現出許多優秀的研究成果,國內LoRa技術的研究開始于2016年CLAA的成立,目前主要工作停留在第一階段,有關安全性研究還未全面展開。本文對有關LoRaWAN安全性的一些研究成果進行介紹。
Emekcan Aras指出[10],盡管LoRa采用的CSS調制具有很強的抗干擾性,但是如果惡意設備采用相同擴頻因子和通信頻段發送信號,一樣可以達到干擾通信的作用,而且這個過程無需專用設備,一般的LoRa通信產品就可以實現,并提出如果終端節點通過UART、SPI等接口傳遞密鑰信息,則利用專用的外圍設備(如FTDI)就可以介入相應接口并竊取密鑰信息。除此之外,參考文獻還指出LoRaWAN的數據包格式中沒有基于時間的標簽信息,這為重放攻擊和蟲洞攻擊留下了隱患。
SimoneZulian指出[11],LoRaWAN在OTAA模式入網申請-應答機制存在安全漏洞,協議中并沒有規定網絡服務器DevNonce記錄的具體數量,并指出如果DevNonce記錄數量不合適,則有可能導致正確的入網請求和應答遭到拒絕,為此作者用嚴謹的數學方法推導出DevNonce記錄的最佳數量。之后通過理論分析指出,為使終端節點在整個工作周期內保持可靠性,網絡服務器應記錄所有的DevNonce,而且為避免出現重復性,提出將DevNonce由原來的16位擴展至24或32位。
Ramon Sancheziborra和Jaehyu Kim等人[12-13]分析了LoRaWAN組網通信過程中密鑰更新機制存在的安全漏洞,其中對比分析了其他可能應用的安全協議架構,結合LoRaWAN通信速率以及帶寬的限制,提出了一種基于EDHOC架構的輕量級密鑰更新機制,使得密鑰可以在資源開銷較小情況下得到及時更新,提出即便是安全性能較高的OTAA模式也存在AppKey得不到有效更新的漏洞,同時提出一種雙重密鑰激活入網方案,在激活入網的第一階段使用原始密鑰NwkKey和AppKey,在第二階段使用原始密鑰產生的會話密鑰NwkSKey和AppSKey,入網后使用會話密鑰進行通信,原始密鑰將被更新,之后的會話將使用更新的密鑰,并用實驗與原方案在收包成功率、延時、能耗等性能方面做了對比。
很多參考文獻都對LoRaWAN協議作了詳細的分析和研究,提出了其存在的安全漏洞,并介紹安全可行的方案,但仍有一些局限性:第一,漏洞分析缺乏整體性、系統性的研究過程,目前已有比較完善的信息安全研究框架,但現有參考文獻對LoRaWAN的安全性分析卻沒有基于這些成熟的框架,也沒有從系統角度對安全漏洞進行分類,這使得漏洞研究工作不具備整體性、系統性;第二,將研究重點偏向安全方案設計,對提出的安全漏洞沒有應用具體硬件設備進行實驗驗證,對理論分析的驗證不充分、不具體,這使得漏洞分析工作不徹底、不深入。未來對LoRaWAN的安全性研究應從以上兩點分析入手,從全局角度考慮系統安全漏洞,并將重點放在實驗驗證方面,通過具體的硬件平臺驗證安全漏洞的風險性以及安全方案的可行性,提供真實、詳細的實驗數據。
