,,,
(1.陸軍裝甲兵學院 信息通信系,北京 100072;2.73630部隊)
隨著智能設備的普及和信息技術的高度發(fā)展,人們對電子設備的自動化、智能化有了更高的需求,物聯(lián)網(wǎng)作為新一代信息技術的重要組成部分,正踏上高速發(fā)展的快車道,逐步融入我們的生活。如圖1所示,目前已有的移動蜂窩網(wǎng)絡、藍牙、ZigBee、WiFi等無線通信技術,已經(jīng)不能很好地滿足物聯(lián)網(wǎng)設備M2M通信模式遠距離、低功耗、多節(jié)點的需求[1],在這種情況下,低功耗廣域網(wǎng)(Low-Power Wide-Area Network,LPWAN)技術應運而生。
圖1 無線技術性能對比
LoRa是Semtech公司在2013年發(fā)布的基于擴頻調(diào)制的無線通信技術[2],是目前發(fā)展較為成熟的LPWAN技術之一,主要應用于物聯(lián)網(wǎng)終端節(jié)點,具備超長距離擴頻通信、抗干擾性強、功耗極低等性能。LoRa技術采用線性啁啾擴頻(Chirp Spread Spectrum,CSS)調(diào)制,不同的擴頻因子(Spreading Factor,SF)之間呈正交性[3],這種調(diào)制方式的信道容量接近香農(nóng)理論極限[4],同時在抗阻塞和選擇性方面也具有明顯優(yōu)勢,突破了傳統(tǒng)窄帶通信無法同時兼顧距離、抗干擾和功耗的技術瓶頸,并且在數(shù)據(jù)傳輸過程中集成了擴頻調(diào)制和前向糾錯,成為低速率、低功耗、遠距離傳輸和對可靠性要求較高的應用場景的最佳選擇。
隨著LoRa試點與日俱增,LoRaWAN應用已擴展至全球范圍[5],從個體運營者到大型企業(yè),從簡單的實驗室平臺到大型工業(yè)項目,LoRaWAN經(jīng)受著不同用戶群體、應用場合、外界環(huán)境的考驗,憑借大容量、全球統(tǒng)一標準、低成本、高靈活性的特點成為非授權頻段物聯(lián)網(wǎng)運營的首選方案。
根據(jù)LoRa聯(lián)盟公布的數(shù)據(jù)[6],截止至2017年末,荷蘭皇家KPN電信集團已在全國范圍內(nèi)部署LoRa網(wǎng)絡,成為世界上第一個在全國范圍內(nèi)普及物聯(lián)網(wǎng)的國家;美國運營商Senet在美國110多個城市進行網(wǎng)絡搭建試點,覆蓋面積超過12 500平方公里。在國內(nèi),2016年初由中興聯(lián)手LoRa聯(lián)盟成立中國LoRa應用聯(lián)盟(China LoRa Application Alliance,CLAA),旨在推動國內(nèi)LoRa網(wǎng)絡建設和產(chǎn)業(yè)鏈發(fā)展;八月科技(AUGTEK)京杭大運河完成了284個LoRa基站的建設,覆蓋了1300 km的流域,成為國內(nèi)覆蓋面積最大的LoRa網(wǎng)絡。這些大規(guī)模物聯(lián)網(wǎng)都是基于LoRaWAN運行的,其安全性能直接影響著系統(tǒng)的可靠性。
安全是物聯(lián)網(wǎng)技術應用推廣的基本前提,2017年度發(fā)生的多起無人機黑飛、安防攝像頭遠程非法控制、智能玩具數(shù)據(jù)泄露等事件為我們敲響了安全的警鐘[7],這些為我們生活帶來舒適和便利的智能產(chǎn)品如果使用稍有不慎,就有可能成為信息安全泄露的罪魁禍首,安全將成為物聯(lián)網(wǎng)產(chǎn)業(yè)的尖銳問題。
LoRa作為物聯(lián)網(wǎng)技術標準的有力備選方案,其安全性建設是重中之重,LoRaWAN白皮書中大量篇幅都在敘述通信的安全機制[8],包括雙向認證、信息完整性校驗、數(shù)據(jù)加密算法、密鑰管理機制等方面,同時結合LPWAN的技術特點,兼具低功耗、低成本和良好擴展性的設計,支持數(shù)以百萬計的節(jié)點設備聯(lián)網(wǎng)。然而LoRaWAN尚處在發(fā)展初期,還有很多不完備的地方,如雙向認證存在遭受DOS攻擊的可能、密鑰管理過分依賴節(jié)點設備物理安全等[13],一旦其安全漏洞遭到黑客攻擊,將會面臨巨大的信息安全威脅。全面分析LoRaWAN協(xié)議內(nèi)容,了解目前相關參考文獻中LoRaWAN安全性研究的情況,從而提供改進性建議,對LoRa技術的普及、LPWAN健康生態(tài)環(huán)境的構建、物聯(lián)網(wǎng)技術的推進都具有重要意義。
本節(jié)對LoRaWAN 1.0.3協(xié)議正式版本[9]的內(nèi)容作詳細介紹,主要從網(wǎng)絡架構、通信模式、幀結構、密鑰分類、激活方式、加密方式6個方面對協(xié)議進行簡要說明。
LoRaWAN網(wǎng)絡架構整體上分為4層,由下至上分別為終端節(jié)點、LoRa網(wǎng)關、網(wǎng)絡服務器、網(wǎng)絡應用。如圖2所示,單一網(wǎng)關采用單跳星型拓撲結構,對比于MESH等其他拓撲結構,星型拓撲結構具有延時小、易擴展、容量大、可靠性高的特點[7],終端節(jié)點與網(wǎng)關之間為半雙工通信,可以同時與多個網(wǎng)關相連,網(wǎng)關作為透明中繼連接終端節(jié)點和網(wǎng)絡服務器,服務器上可以注冊多個應用,用來與終端節(jié)點進行通信。
圖2 LoRaWAN網(wǎng)絡架構
LoRaWAN協(xié)議將通信模式分為Class A、Class B、Class C三類,所有的通信設備必須滿足Class A以符合基本的通信標準。
Class A:終端節(jié)點在傳輸上行數(shù)據(jù)后會打開兩個下行數(shù)據(jù)接收窗口RX1、RX2,RX1的頻率和波特率與上行數(shù)據(jù)一致,RX2的頻率與波特率可由MAC命令配置。開窗時間RECEIVE_DELAY1和RECEIVE_DELAY2可由MAC指令修改。Class A是功耗最低也是最基本的通信模式,其數(shù)據(jù)傳輸是突發(fā)式的,服務器和用戶應用無法預知通信時間。
Class B:在終端節(jié)點傳輸上行數(shù)據(jù)后,除了打開RX1、RX2接收窗口外,還會開放額外的窗口SLOT,用于接收下行數(shù)據(jù),該模式下網(wǎng)關會周期性向所有終端節(jié)點發(fā)送同步信號BEACON,終端節(jié)點會根據(jù)BEACON的時間信息進行開窗,以克服Class A中通信時間無法預知的不足。
Class C:在終端節(jié)點傳輸上行數(shù)據(jù)之外的時間均處于接收狀態(tài),在上行數(shù)據(jù)發(fā)送后,RX1接收窗口正常開窗,其余空閑時間均處在RX2窗口接收范圍內(nèi),該模式可最小化通信丟包率,但功耗最大。
三類通信模式對比圖如圖3所示。
圖3 LoRaWAN通信模式
LoRaWAN上下行數(shù)據(jù)幀結構基本一致,均分為前導碼(Preamble)、PHY頭(PHDR)、PHY頭校驗碼(PHDR_CRC)、PHY負載(PHYPayload)4個部分,上行數(shù)據(jù)比下行數(shù)據(jù)多了CRC校驗碼。其中,Preamble用于LoRa接收機信道檢測,PHDR包含數(shù)據(jù)報速率、信道等信息,PHDR_CRC負責校驗信息傳遞的正確性。PHYPayload由MAC頭(MHDR)、消息部分、完整性校驗(MIC)組成,其中MHDR按位分為版本號(Major)、保留位(RFU)、消息種類(MType)。消息部分分為MAC負載(MACPayload)、入網(wǎng)請求(Join-Request)、入網(wǎng)應答(Join-Response)三種消息類型,MACPayload可進一步分為上下行認證消息及非認證消息4種,由MType進行區(qū)分,如圖4所示。
圖4 PHY負載結構
為保證網(wǎng)絡安全可靠,LoRaWAN共設有6種密鑰,分別是設備地址(DevAddr)、設備標識(DevEUI)、根密鑰(AppKey)、應用標識(AppEUI)、網(wǎng)絡會話密鑰(NwkSKey)和應用會話密鑰(AppSKey),這些密鑰在終端節(jié)點和網(wǎng)絡服務器間共享,分別應用于入網(wǎng)激活、設備尋址、信息加密等過程,是確保網(wǎng)絡安全可靠的關鍵。
DevAddr由32位組成,用來標識節(jié)點設備,其中DevAddr[31:25]為NwkID,用來標識網(wǎng)絡,DevAddr[24:0]為NwkAddr,用來標識設備在該網(wǎng)絡中的地址,該地址可由網(wǎng)絡管理者修改。
DevEUI是一個遵循IEEE EUI-64標準的64位標識,用來標識全球唯一的終端節(jié)點ID。
AppEUI是一個遵循IEEE EUI-64標準的64位標識,用來標識全球唯一的應用ID。
AppKey由128位組成,是LoRaWAN加密算法的根密鑰,網(wǎng)絡服務器和OTAA模式下的終端節(jié)點用之產(chǎn)生NwkSKey和AppSKey。
NwkSKey由AppKey等信息經(jīng)AES-128計算產(chǎn)生,用于FRMPayload傳遞MAC指令時加解密信息,以及信息的完整性校驗。在OTAA模式下,NwkSKey是動態(tài)變化的,ABP模式下NwkSKey是固定不變的。
AppSKey由AppKey等信息經(jīng)AES-128計算產(chǎn)生,用于FRMPayload傳遞一般信息時加解密信息,以及信息的完整性校驗。在OTAA模式下,AppSKey是動態(tài)變化的,ABP模式下AppSKey是固定不變的。
終端節(jié)點首先需要激活入網(wǎng)才能夠進行通信,激活入網(wǎng)的方式有兩種:空中激活(Over-The-Air Activation,OTAA)和手動激活(Activation By Personalization,ABP),兩者的入網(wǎng)過程和密鑰管理方式不同,適用于不同的應用場合。
(1)空中激活
在空中激活模式下,終端節(jié)點需要向網(wǎng)絡服務器發(fā)送入網(wǎng)請求,網(wǎng)絡服務器需要向終端節(jié)點發(fā)送入網(wǎng)請求應答,入網(wǎng)激活流程如圖5所示,在入網(wǎng)過程中,由終端節(jié)點向網(wǎng)絡服務器發(fā)送入網(wǎng)請求,當檢測信息符合入網(wǎng)條件時,網(wǎng)絡服務器向終端節(jié)點發(fā)送入網(wǎng)請求應答,終端節(jié)點通過入網(wǎng)應答中的AppNonce或DevNonce生成NwkSKey和AppSKey,并存儲在終端節(jié)點中作為此次入網(wǎng)通信的AES密鑰,由于AppNonce、DevNonce具有隨機性,終端節(jié)點每次入網(wǎng)通信的密鑰都不同,從而可以有效避免重放攻擊,保證了通信的可靠性。
圖5 OTAA入網(wǎng)流程
(2)手動激活
在手動激活模式下,終端節(jié)點直接配置與網(wǎng)絡服務器相一致的DevAddr、NwkSKey、AppSKey,直接與網(wǎng)絡服務器進行通信,不需要入網(wǎng)激活,且NwkSKey、AppSKey不再由AppKey動態(tài)計算產(chǎn)生。整個通信過程中DevAddr、NwkSKey、AppSKey始終存儲在終端節(jié)點中固定不變。ABP是一種簡單的入網(wǎng)機制,適合于建立小型私人網(wǎng)絡等安全性要求不高的場合。
LoRaWAN采用雙層AES-128加密算法,在OTAA模式的入網(wǎng)激活階段,網(wǎng)絡服務器的入網(wǎng)請求應答采用電碼本(Electronic Code Book,ECB)模式的AES-128加密算法,正常通信時的消息幀采用計數(shù)器(Counter,CTR)模式的AES-128加密算法。
(1)Join-Response加密算法
LoRaWAN協(xié)議針對Join-Response的AES-128加密算法類似ECB模式,首先將Join-Reaponse與MIC碼進行“或”運算,之后將加和后的信息按照k=ceil(len(Join-Response|MIC)/16)分成k組,對每組使用根密鑰(AppKey)進行加密處理,最后將k組加密結果進行“或”運算得到最終的加密數(shù)據(jù),整個加密過程如圖6所示。
圖6 Join-Response加密流程
(2)FRMPayload加密算法
LoRaWAN協(xié)議針對FRMPayload的AES-128加密算法相當于CTR模式,首先根據(jù)k=ceil(len(PRMPayload)/16)將原始數(shù)據(jù)FRMPayload分成k組,然后對CTR計數(shù)器Ai(i=1,…,k)進行填充,Ai的幀結構如圖7所示,其中Dir是數(shù)據(jù)傳遞的方向,0代表上行數(shù)據(jù),1代表下行數(shù)據(jù),F(xiàn)CntUp和FCntDown分別是上行數(shù)據(jù)和下行數(shù)據(jù)計數(shù)器,對每一個分組進行AES-128加密處理得到Si,再將每塊分組的加密數(shù)據(jù)進行或運算得到S,S與pad16補齊過的FRMPayload進行“異或”運算,最后將運算結果截短至原FRMPayload長度L,即得到最后的加密數(shù)據(jù),整個加密過程如圖8所示。
圖7 CTR計數(shù)器幀結構
圖8 FRMPayload加密流程
LoRa技術的發(fā)展大體上可分為三個階段:第一階段進行基礎設施建設和試點運行工作,主要研究技術方案的可行性;第二階段為現(xiàn)行方案提供技術完善,增加系統(tǒng)的穩(wěn)定性、安全性、可靠性;第三階段為大規(guī)模應用推廣,普及商用。目前LoRa技術在國外市場主要處于第二、三階段,近年來隨著一些國家LoRa技術在全國范圍內(nèi)應用推廣,LoRaWAN的安全性研究引起了高度重視,涌現(xiàn)出許多優(yōu)秀的研究成果,國內(nèi)LoRa技術的研究開始于2016年CLAA的成立,目前主要工作停留在第一階段,有關安全性研究還未全面展開。本文對有關LoRaWAN安全性的一些研究成果進行介紹。
Emekcan Aras指出[10],盡管LoRa采用的CSS調(diào)制具有很強的抗干擾性,但是如果惡意設備采用相同擴頻因子和通信頻段發(fā)送信號,一樣可以達到干擾通信的作用,而且這個過程無需專用設備,一般的LoRa通信產(chǎn)品就可以實現(xiàn),并提出如果終端節(jié)點通過UART、SPI等接口傳遞密鑰信息,則利用專用的外圍設備(如FTDI)就可以介入相應接口并竊取密鑰信息。除此之外,參考文獻還指出LoRaWAN的數(shù)據(jù)包格式中沒有基于時間的標簽信息,這為重放攻擊和蟲洞攻擊留下了隱患。
SimoneZulian指出[11],LoRaWAN在OTAA模式入網(wǎng)申請-應答機制存在安全漏洞,協(xié)議中并沒有規(guī)定網(wǎng)絡服務器DevNonce記錄的具體數(shù)量,并指出如果DevNonce記錄數(shù)量不合適,則有可能導致正確的入網(wǎng)請求和應答遭到拒絕,為此作者用嚴謹?shù)臄?shù)學方法推導出DevNonce記錄的最佳數(shù)量。之后通過理論分析指出,為使終端節(jié)點在整個工作周期內(nèi)保持可靠性,網(wǎng)絡服務器應記錄所有的DevNonce,而且為避免出現(xiàn)重復性,提出將DevNonce由原來的16位擴展至24或32位。
Ramon Sancheziborra和Jaehyu Kim等人[12-13]分析了LoRaWAN組網(wǎng)通信過程中密鑰更新機制存在的安全漏洞,其中對比分析了其他可能應用的安全協(xié)議架構,結合LoRaWAN通信速率以及帶寬的限制,提出了一種基于EDHOC架構的輕量級密鑰更新機制,使得密鑰可以在資源開銷較小情況下得到及時更新,提出即便是安全性能較高的OTAA模式也存在AppKey得不到有效更新的漏洞,同時提出一種雙重密鑰激活入網(wǎng)方案,在激活入網(wǎng)的第一階段使用原始密鑰NwkKey和AppKey,在第二階段使用原始密鑰產(chǎn)生的會話密鑰NwkSKey和AppSKey,入網(wǎng)后使用會話密鑰進行通信,原始密鑰將被更新,之后的會話將使用更新的密鑰,并用實驗與原方案在收包成功率、延時、能耗等性能方面做了對比。
很多參考文獻都對LoRaWAN協(xié)議作了詳細的分析和研究,提出了其存在的安全漏洞,并介紹安全可行的方案,但仍有一些局限性:第一,漏洞分析缺乏整體性、系統(tǒng)性的研究過程,目前已有比較完善的信息安全研究框架,但現(xiàn)有參考文獻對LoRaWAN的安全性分析卻沒有基于這些成熟的框架,也沒有從系統(tǒng)角度對安全漏洞進行分類,這使得漏洞研究工作不具備整體性、系統(tǒng)性;第二,將研究重點偏向安全方案設計,對提出的安全漏洞沒有應用具體硬件設備進行實驗驗證,對理論分析的驗證不充分、不具體,這使得漏洞分析工作不徹底、不深入。未來對LoRaWAN的安全性研究應從以上兩點分析入手,從全局角度考慮系統(tǒng)安全漏洞,并將重點放在實驗驗證方面,通過具體的硬件平臺驗證安全漏洞的風險性以及安全方案的可行性,提供真實、詳細的實驗數(shù)據(jù)。