馬早霞,李 磊,劉 心
(河北工程大學 信息與電氣工程學院,河北 邯鄲 056038)
物聯網產業的飛速發展,對通信技術提出了更高的要求[1-3]。在此背景下,低功耗廣域網LPWAN (low power wide area network) 因其能耗小、通信范圍廣等特點得以廣泛應用。LoRa技術作為LPWAN中應用最為廣泛的通信技術之一具有低功耗、遠距離、廣范圍的特點,發展相對較快、較為成熟。智慧物聯網依托LPWAN,容易陷入隱私泄漏和其他安全危機。數據傳輸過程是整個物聯網信息傳輸最薄弱的環節,特別是在LoRa無線網絡中,由于帶寬、數據速率和包大小等受限,數據鏈路特別容易受到攻擊[4]。LoRaWAN是基于LoRa的上層協議,定義了整個系統的架構和運行過程。LoRaWAN使用對稱密鑰加密(AES-128bits)進行加密/解密和MAC操作,雖在一定程度上保護網絡中傳輸的數據有效負載,但仍面臨數據加密安全度不高,傳輸鏈路易被監聽等問題[4-5]。
LoRa廣域網的安全性受到廣泛關注,文獻[6]指出了通信各方由于同步問題易受攻擊的漏洞。文獻[7]首次對LoRaWAN協議的安全性進行研究,主要分析了LoRaWAN v1.0和LoRaWAN v1.1的密鑰交換部分,利用工具Scyther提出了一種針對v1.1的安全協議模型,定義了基于物理層的LPWAN網絡的結構和運行。但是該文獻提出的模型只是對協議進行安全性檢查,并不能解決LoRaWAN協議易受攻擊和重放的問題。文獻[8]針對MAC層安全機制提出了一種密鑰自動生成機制。文獻[9]在此基礎上提出一種密鑰衍生機制,該機制無差別地對連接請求過程進行加密,并沒有考慮對功耗的增加。文獻[10]提出一種低功耗的端對端的密鑰生成機制。文獻[11]展示了密鑰管理、通信和網絡連接階段的幾個漏洞,討論了LoRaWAN v1.0的一些漏洞。文獻[12]指出,在空中激活過程中,終端向服務器發送的連接請求加密等級不高。但是這個問題已經在LoRaWAN新版本協議中做出了改進。
本文旨在分析LoRaWAN協議傳輸鏈路的安全性,在有針對性地解決了重放攻擊問題的基礎之上,提出了一種基于LoRaWAN協議的安全入網機制,保證傳輸安全性的同時盡可能地降低功耗。
圖1為LoRa傳感網絡概念架構圖。LoRa網絡是一種星型拓撲網絡,終端采集數據后上傳至服務器,且終端與服務器之間均可以進行雙向通信。一個LoRa終端可與一個或多個網關相連,網關只對數據進行轉發處理[13]。

圖1 LoRa智慧網絡概念圖Fig.1 LoRa Intelligent Network Concept
LoRaWAN作為LoRa網絡的MAC層協議,定義了6種消息類型,如表1所示。
服務器根據收到的消息類型判斷是否需要進行應答。當發送的數據幀為confirmed類型的消息時,服務器要進行答復(即ACK要進行重置)。其他消息類型根據需求可不進行答復。本文所做研究針對LoRaWAN數據幀join request類型進行重構,即對入網請求幀進行重構。

表1 LoRaWAN消息類型
雙向認證機制是基于終端與網關之間的交互,建立安全的數據鏈路,防止重放攻擊的有效方法。服務器對終端發送的數據幀中MAC地址和IP地址等進行函數提取以及合法性檢測,然后被請求方根據請求方身份信息生成編碼重構序列,請求方根據編碼重構序列進行幀重構,然后隨機生成反向編碼重構序列一同發送給被請求方,由被請求方再次驗證身份。

圖2 雙向認證過程Fig.2 Two-way authentication process
圖2所示為LoRa終端與服務器之間雙向認證的過程。終端要按照服務器定義的規則對數據幀進行重構,并實現重構后數據幀的網絡通信傳輸。在數據鏈路建立時,首先由終端發起連接請求,服務器接收到連接請求后獲取數據幀的頭部信息,判斷是否需要進行重構,若需要重構則由服務器向終端發送反向連接請求。終端收到服務器的反向連接請求后根據編碼重構序列進行重構,然后第二次向服務器發送符合重構規則的連接請求。服務器接收重構后的連接請求判斷是否符合規則,若符合規則,則同意連接,至此通信鏈路建立成功。
該機制只有在數據鏈路建立的時候才啟動五次握手認證。就單次傳輸來說數據鏈路的建立和釋放的能耗是不可避免的。安全機制的消耗增加主要體現在以下幾個方面增加:(1)每次隨機生成重構因子的消耗;(2)五次握手機制的消耗;(3)數據鏈路釋放之后,再次建立時的消耗。該機制根據終端發送的請求數據幀的頭部信息生成的編碼重構序列,再利用編碼重構序列完成后續重構規則的通知,在重構規則協商過程中對請求方的設備合法性進行檢測,通過雙方設備合法性檢測的流程實現防止第三方竊聽的效果。
圖3是進行幀重構規則通知的數據幀結構,Preamble是幀的頭部,其中編碼了同步字來實現數據收發兩方的同步。PHDR為物理頭,PHDE_CRC為頭校驗。 MHDR是MAC 層幀頭,其中MType 是消息類型,MIC是4字節校驗[14]。MACPayload 部分為數據幀的重構部分,其中密鑰指示位代表密鑰指針指向的位置,通過此指針可以確定相同的密鑰。16 字節數據用于存放驗證信息。編碼重構序列由其余三個參數共同確定。
考慮到LoRaWAN通信過程的系統開銷,若每次終端節點接入都需要進行雙向認證,則會大大增加能耗,所以在這里利用節點的安全性等級來確定認證規則的更新周期。即規定,在一個周期內,終端節點只需在首次連接時進行雙向認證,其余連接只需進行網關與終端的單向認證即可。所以節點的安全等級與重構因子的更新周期息息相關,隨著信息安全性等級越高,重構因子的更新周期應該更短,才能保證數據的安全性。在本文中,我們按照終端節點所采集信息的隱私程度,將終端節點分為五個安全等級,對應認證規則的5個更新周期。T=1時,只需進行一次安全數據鏈路的建立,一旦數據鏈路建立,在之后的數據傳輸中將不再進行終端身份的認證,直到終端身份失效。
在網絡服務器端進行重構規則的周期性更新,給定重構因子一個更新周期,在周期內的重構因子不進行變化,而是在達到更新周期后對重構規則進行函數性變化。即不用每次建立數據鏈路都要生成隨機的重構因子,而是在一定時間內使用同一個重構因子,以此來減少系統開銷。
為解決重構規則更新時網關和終端雙方使用規則的不同步問題,設置一個緩沖區來保存原來的重構規則和已經發送過申請的終端地址合法性。若收到的攜帶重構因子的申請不符合重構規則但其設備身份是合法的,則該終端可能是按照上一個周期的重構規則進行幀重構的。
該機制的周期性處理流程見圖4。
為進一步提供通信鏈路安全性,該機制對雙向認證接入方法的重構規則進行周期性更新。為解決重構規則更新時服務器和終端雙方使用規則的不同步問題,在網關中設置一個白名單來保存已經發送過申請的終端的地址,白名單隨著重構規則進行周期性更新,若發送請求的終端數據幀地址已在白名單中保存,則可以判斷該終端在本周期內已經成功建立過連接,則可進一步判斷其請求幀是否符合重構規則。若請求幀符合重構規則,則服務器同意其連接請求;若不符合重構規則,則拒絕該終端本次連接請求。上述流程可見圖5。圖6所示為終端側設備合法性檢測流程圖,是終端發送連接請求后等待接收服務器的響應,并根據服務器響應進行數據幀重構或數據傳輸,若收到服務器發送的攜帶編碼重構序列的反向連接請求,則對自身請求幀進行響應重構,若接收到服務器的同意連接通知,則可進行數據傳輸。

圖3 幀重構規則通知報文Fig.3 The frame reconstruction rules inform the message

圖4 雙向認證機制路程圖Fig.4 Two-way authentication mechanism road map

圖5 服務器端設備合法性檢測流程圖Fig.5 Flow chart of server side device legality detection

圖6 終端側設備合法性檢測流程圖Fig.6 Flow chart of legality testing of terminal side equipment
所有終端的連接請求,經NS(Network Servers)轉發給JS(Join Servers)處理。DevNonce是一個由終端設備在請求連接時產生,在一定范圍內的隨機數[16]。已產生的DevNonce由JS設立的固定大小的數據池保存。在JS處理連接請求過程中,JS若判斷DevNonce是個不在數據池內的隨機數,則同意連接請求,若與數據池內的數據匹配成功,則對連接請求予以丟棄。因為服務器可連接的終端設備是有限的,且一旦雙方建立連接,一般情況下,之后的連接將不再進行身份認證。所以服務器不會刪除數據池中保存的DevNonce。若終端需要重新連接網絡,則生成新的DevNonce。惡意攻擊節點抓出這一特點,通過占用大量DevNonce使終端設備不能產生規定范圍內的隨機數,而無法與服務器建立連接。

(1)
式中,Tr(以天為單位)代表攻擊節點重放需等待的時間,是表示數據鏈路安全性的重要系數;ND代表最終數據池中的序列;fJ(固定值)代表每天每個終端設備的有效連接過程的數量。
從式(1)可以看出,只要ND越大,即數據池容量夠充足,則連接請求就夠安全。
而幀重構機制可以在每次身份認證結束后便丟棄已產生DevNonce,從而有效地防止了重放攻擊。
判斷算法優越性的指標,除了防止重放的時間之外,還有終端連接的成功率。
假設DevNonce在數據集[1,…,N=216]內,S是存儲DevNonce的集合,|S|=ND,那么在LoRaWAN v1.1定義下,終端產生一個已被ND存儲的DevNonce的概率是:
(2)
可以看出ND越大,則連接成功率就越低。
而在通過業務區分機制中,引入了周期性幀重構的概念。將一天的時間分為n個周期T,在一個周期結束后,服務器存儲的已被終端使用過的DevNonce數據池將清空。那么終端產生一個已被ND存儲的DevNonce的概率就是:
P[dK∈S]=P[dK∈S|Ti]
(3)
式中,Ti表示當前所處周期,dk是第k次連接過程中產生的DevNonce。系數P代表信息的安全性,P系數越高,代表連接成功率越低,即信息傳輸風險越高。反之,則信息傳輸風險越低。
為了驗證系統性能,在opnet中搭建了LoRa傳感器網絡模型,模擬信息發送與接收。根據信息的安全等級不同,將采集到的醫療信息分為五個等級,每個等級有其相應的重構周期。采集到的數據會根據它對應的等級選擇相應的重構周期進行發送。所以在實際情況中,周期是可變的。在可變周期下的安全系數的對比見圖7。

圖7 安全系數對比圖Fig.7 Comparison diagram of safety factor
n代表著不同程度安全等級,對比其對應著的不同的概率。生成的ND增大,生成無效DevNonce的概率越高,即數據連接建立的成功率越低。但因為周期性進行幀重構的原因,NS端存儲的DevNonce不斷刷新,終端生成的無效DevNonce值的概率一直小于標準LoRaWAN v1.1,且n越大,即周期時間越短,生成無效的DevNonce的概率越小,即安全數據鏈路連接成功率越高。
為了對比可變周期下的幀重構與標準LoRaWAN v1.1的能量消耗,本文模擬了一段時間內的數據的發送,并對其進行業務區分,按照數據的重要程度對其進行安全度的區分,得到其安全等級變化,見圖8。

圖8 安全等級設置Fig.8 Safety level setting
其中P(n=1)=0.25,P(n=2)=0.272 5,P(n=3)=0.198 8,P(n=4)=0.127 1,P(n=5)=0.151 6。依照這部分的不同安全等級的數據進行系統開銷的計算。
先設定能量消耗系數,假定發送一比特數據消耗的能量為0.000 5。接收一比特數據消耗的能量為0.001。終端每間隔20 s向服務器發送數據。在五個安全等級下(第一等級即按照標準LoRaWAN協議發送數據)對能耗進行比較,周期性進行重構的能量消耗顯然比標準LoRaWAN v1.1的能量消耗要大,且隨著安全性等級越高,其能耗就越高。而各部分數據對安全性的要求也不同,若一味地追求高安全等級,會大大加速終端的能耗。而采用可變周期的方式,將隱私程度較高的數據設置為高安全等級,隱私度較低的數據設置為低安全等級。

圖9 數據認證過程能耗圖Fig.9 Energy consumption chart of data authentication process

圖10 數據傳輸過程能耗圖(包括認證過程)Fig.10 Data transmission process energy consumption diagram
圖9為1 000 s內終端周期性身份認證過程的能耗對比圖,在可變周期下產生的總能耗雖高于傳統LoRaWAN v1.1(即n1(base)_Energy曲線),但它在考慮安全性的基礎上,與單純追求高安全等級的傳輸相比,能耗大大降低。
圖10為1 000 s內終端周期性身份認證并進行數據傳輸所產生的能耗對比圖,在可變周期下產生的總能耗雖高于傳統LoRaWAN v1.1,但它在考慮安全性的基礎上,與單純追求高安全等級的傳輸相比,能耗大大降低。

圖11 數據接受延遲分析圖Fig.11 Data reception delay analysis graph
從短期觀察信號延遲問題,通過圖11所示,由于在幀重構機制服務器需要對終端進行身份認證,且終端需要根據服務器要求進行幀重構,所以在最初進行數據傳輸時,本系統的延遲時間略高于標準LoRaWAN v1.1協議的延遲時間。當完成身份認證之后,受阻的數據會先后到達服務器,這部分數據在身份驗證過程中已經進行重構,所以圖中兩種模式會有短暫重疊,隨后兩條線漸漸趨于平緩。一個周期結束后,幀重構機制中終端需要再一次進行身份認證,身份認證結束后,延遲時間又恢復穩定。通過對實驗結果分析,在數據傳輸階段造成的實驗增加不足7%。
本文針對性的LoRa無線傳感網絡的協議安全性問題,提出一種基于LoRaWAN協議的雙向認證機制,該機制利用數據幀的編碼重構,實現終端與服務器之間雙向的身份認證,并在此基礎上對重構規則進行周期性更新,對不同安全等級的節點進行不同周期的重構規則更新,避免多次重構規則更新造成的系統開銷。通過對協議安全性的算法分析,結果表明該機制能夠有效提高終端與服務器建立連接過程的安全性,且協議安全性隨著重構規則更新周期的縮短而增大。對該機制進行能耗分析,結果顯示在雙方身份認證過程中造成的能耗會隨著周期的縮短而增大,在整體數據傳輸過程中,能耗增加并不明顯,數據時延僅在認證階段具有顯著增加,而在整體數據傳輸階段時延增加不過7%。該協議的安全性、能耗和時延均隨重構規則更新周期的變化而變化,故該協議下一步將對更新周期的設置進行進一步研究,以求達到安全性和系統開銷的平衡。