馬早霞,李 磊,劉 心
(河北工程大學(xué) 信息與電氣工程學(xué)院,河北 邯鄲 056038)
物聯(lián)網(wǎng)產(chǎn)業(yè)的飛速發(fā)展,對(duì)通信技術(shù)提出了更高的要求[1-3]。在此背景下,低功耗廣域網(wǎng)LPWAN (low power wide area network) 因其能耗小、通信范圍廣等特點(diǎn)得以廣泛應(yīng)用。LoRa技術(shù)作為L(zhǎng)PWAN中應(yīng)用最為廣泛的通信技術(shù)之一具有低功耗、遠(yuǎn)距離、廣范圍的特點(diǎn),發(fā)展相對(duì)較快、較為成熟。智慧物聯(lián)網(wǎng)依托LPWAN,容易陷入隱私泄漏和其他安全危機(jī)。數(shù)據(jù)傳輸過程是整個(gè)物聯(lián)網(wǎng)信息傳輸最薄弱的環(huán)節(jié),特別是在LoRa無線網(wǎng)絡(luò)中,由于帶寬、數(shù)據(jù)速率和包大小等受限,數(shù)據(jù)鏈路特別容易受到攻擊[4]。LoRaWAN是基于LoRa的上層協(xié)議,定義了整個(gè)系統(tǒng)的架構(gòu)和運(yùn)行過程。LoRaWAN使用對(duì)稱密鑰加密(AES-128bits)進(jìn)行加密/解密和MAC操作,雖在一定程度上保護(hù)網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)有效負(fù)載,但仍面臨數(shù)據(jù)加密安全度不高,傳輸鏈路易被監(jiān)聽等問題[4-5]。
LoRa廣域網(wǎng)的安全性受到廣泛關(guān)注,文獻(xiàn)[6]指出了通信各方由于同步問題易受攻擊的漏洞。文獻(xiàn)[7]首次對(duì)LoRaWAN協(xié)議的安全性進(jìn)行研究,主要分析了LoRaWAN v1.0和LoRaWAN v1.1的密鑰交換部分,利用工具Scyther提出了一種針對(duì)v1.1的安全協(xié)議模型,定義了基于物理層的LPWAN網(wǎng)絡(luò)的結(jié)構(gòu)和運(yùn)行。但是該文獻(xiàn)提出的模型只是對(duì)協(xié)議進(jìn)行安全性檢查,并不能解決LoRaWAN協(xié)議易受攻擊和重放的問題。文獻(xiàn)[8]針對(duì)MAC層安全機(jī)制提出了一種密鑰自動(dòng)生成機(jī)制。文獻(xiàn)[9]在此基礎(chǔ)上提出一種密鑰衍生機(jī)制,該機(jī)制無差別地對(duì)連接請(qǐng)求過程進(jìn)行加密,并沒有考慮對(duì)功耗的增加。文獻(xiàn)[10]提出一種低功耗的端對(duì)端的密鑰生成機(jī)制。文獻(xiàn)[11]展示了密鑰管理、通信和網(wǎng)絡(luò)連接階段的幾個(gè)漏洞,討論了LoRaWAN v1.0的一些漏洞。文獻(xiàn)[12]指出,在空中激活過程中,終端向服務(wù)器發(fā)送的連接請(qǐng)求加密等級(jí)不高。但是這個(gè)問題已經(jīng)在LoRaWAN新版本協(xié)議中做出了改進(jìn)。
本文旨在分析LoRaWAN協(xié)議傳輸鏈路的安全性,在有針對(duì)性地解決了重放攻擊問題的基礎(chǔ)之上,提出了一種基于LoRaWAN協(xié)議的安全入網(wǎng)機(jī)制,保證傳輸安全性的同時(shí)盡可能地降低功耗。
圖1為L(zhǎng)oRa傳感網(wǎng)絡(luò)概念架構(gòu)圖。LoRa網(wǎng)絡(luò)是一種星型拓?fù)渚W(wǎng)絡(luò),終端采集數(shù)據(jù)后上傳至服務(wù)器,且終端與服務(wù)器之間均可以進(jìn)行雙向通信。一個(gè)LoRa終端可與一個(gè)或多個(gè)網(wǎng)關(guān)相連,網(wǎng)關(guān)只對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)處理[13]。
圖1 LoRa智慧網(wǎng)絡(luò)概念圖Fig.1 LoRa Intelligent Network Concept
LoRaWAN作為L(zhǎng)oRa網(wǎng)絡(luò)的MAC層協(xié)議,定義了6種消息類型,如表1所示。
服務(wù)器根據(jù)收到的消息類型判斷是否需要進(jìn)行應(yīng)答。當(dāng)發(fā)送的數(shù)據(jù)幀為confirmed類型的消息時(shí),服務(wù)器要進(jìn)行答復(fù)(即ACK要進(jìn)行重置)。其他消息類型根據(jù)需求可不進(jìn)行答復(fù)。本文所做研究針對(duì)LoRaWAN數(shù)據(jù)幀join request類型進(jìn)行重構(gòu),即對(duì)入網(wǎng)請(qǐng)求幀進(jìn)行重構(gòu)。
表1 LoRaWAN消息類型
雙向認(rèn)證機(jī)制是基于終端與網(wǎng)關(guān)之間的交互,建立安全的數(shù)據(jù)鏈路,防止重放攻擊的有效方法。服務(wù)器對(duì)終端發(fā)送的數(shù)據(jù)幀中MAC地址和IP地址等進(jìn)行函數(shù)提取以及合法性檢測(cè),然后被請(qǐng)求方根據(jù)請(qǐng)求方身份信息生成編碼重構(gòu)序列,請(qǐng)求方根據(jù)編碼重構(gòu)序列進(jìn)行幀重構(gòu),然后隨機(jī)生成反向編碼重構(gòu)序列一同發(fā)送給被請(qǐng)求方,由被請(qǐng)求方再次驗(yàn)證身份。
圖2 雙向認(rèn)證過程Fig.2 Two-way authentication process
圖2所示為L(zhǎng)oRa終端與服務(wù)器之間雙向認(rèn)證的過程。終端要按照服務(wù)器定義的規(guī)則對(duì)數(shù)據(jù)幀進(jìn)行重構(gòu),并實(shí)現(xiàn)重構(gòu)后數(shù)據(jù)幀的網(wǎng)絡(luò)通信傳輸。在數(shù)據(jù)鏈路建立時(shí),首先由終端發(fā)起連接請(qǐng)求,服務(wù)器接收到連接請(qǐng)求后獲取數(shù)據(jù)幀的頭部信息,判斷是否需要進(jìn)行重構(gòu),若需要重構(gòu)則由服務(wù)器向終端發(fā)送反向連接請(qǐng)求。終端收到服務(wù)器的反向連接請(qǐng)求后根據(jù)編碼重構(gòu)序列進(jìn)行重構(gòu),然后第二次向服務(wù)器發(fā)送符合重構(gòu)規(guī)則的連接請(qǐng)求。服務(wù)器接收重構(gòu)后的連接請(qǐng)求判斷是否符合規(guī)則,若符合規(guī)則,則同意連接,至此通信鏈路建立成功。
該機(jī)制只有在數(shù)據(jù)鏈路建立的時(shí)候才啟動(dòng)五次握手認(rèn)證。就單次傳輸來說數(shù)據(jù)鏈路的建立和釋放的能耗是不可避免的。安全機(jī)制的消耗增加主要體現(xiàn)在以下幾個(gè)方面增加:(1)每次隨機(jī)生成重構(gòu)因子的消耗;(2)五次握手機(jī)制的消耗;(3)數(shù)據(jù)鏈路釋放之后,再次建立時(shí)的消耗。該機(jī)制根據(jù)終端發(fā)送的請(qǐng)求數(shù)據(jù)幀的頭部信息生成的編碼重構(gòu)序列,再利用編碼重構(gòu)序列完成后續(xù)重構(gòu)規(guī)則的通知,在重構(gòu)規(guī)則協(xié)商過程中對(duì)請(qǐng)求方的設(shè)備合法性進(jìn)行檢測(cè),通過雙方設(shè)備合法性檢測(cè)的流程實(shí)現(xiàn)防止第三方竊聽的效果。
圖3是進(jìn)行幀重構(gòu)規(guī)則通知的數(shù)據(jù)幀結(jié)構(gòu),Preamble是幀的頭部,其中編碼了同步字來實(shí)現(xiàn)數(shù)據(jù)收發(fā)兩方的同步。PHDR為物理頭,PHDE_CRC為頭校驗(yàn)。 MHDR是MAC 層幀頭,其中MType 是消息類型,MIC是4字節(jié)校驗(yàn)[14]。MACPayload 部分為數(shù)據(jù)幀的重構(gòu)部分,其中密鑰指示位代表密鑰指針指向的位置,通過此指針可以確定相同的密鑰。16 字節(jié)數(shù)據(jù)用于存放驗(yàn)證信息。編碼重構(gòu)序列由其余三個(gè)參數(shù)共同確定。
考慮到LoRaWAN通信過程的系統(tǒng)開銷,若每次終端節(jié)點(diǎn)接入都需要進(jìn)行雙向認(rèn)證,則會(huì)大大增加能耗,所以在這里利用節(jié)點(diǎn)的安全性等級(jí)來確定認(rèn)證規(guī)則的更新周期。即規(guī)定,在一個(gè)周期內(nèi),終端節(jié)點(diǎn)只需在首次連接時(shí)進(jìn)行雙向認(rèn)證,其余連接只需進(jìn)行網(wǎng)關(guān)與終端的單向認(rèn)證即可。所以節(jié)點(diǎn)的安全等級(jí)與重構(gòu)因子的更新周期息息相關(guān),隨著信息安全性等級(jí)越高,重構(gòu)因子的更新周期應(yīng)該更短,才能保證數(shù)據(jù)的安全性。在本文中,我們按照終端節(jié)點(diǎn)所采集信息的隱私程度,將終端節(jié)點(diǎn)分為五個(gè)安全等級(jí),對(duì)應(yīng)認(rèn)證規(guī)則的5個(gè)更新周期。T=1時(shí),只需進(jìn)行一次安全數(shù)據(jù)鏈路的建立,一旦數(shù)據(jù)鏈路建立,在之后的數(shù)據(jù)傳輸中將不再進(jìn)行終端身份的認(rèn)證,直到終端身份失效。
在網(wǎng)絡(luò)服務(wù)器端進(jìn)行重構(gòu)規(guī)則的周期性更新,給定重構(gòu)因子一個(gè)更新周期,在周期內(nèi)的重構(gòu)因子不進(jìn)行變化,而是在達(dá)到更新周期后對(duì)重構(gòu)規(guī)則進(jìn)行函數(shù)性變化。即不用每次建立數(shù)據(jù)鏈路都要生成隨機(jī)的重構(gòu)因子,而是在一定時(shí)間內(nèi)使用同一個(gè)重構(gòu)因子,以此來減少系統(tǒng)開銷。
為解決重構(gòu)規(guī)則更新時(shí)網(wǎng)關(guān)和終端雙方使用規(guī)則的不同步問題,設(shè)置一個(gè)緩沖區(qū)來保存原來的重構(gòu)規(guī)則和已經(jīng)發(fā)送過申請(qǐng)的終端地址合法性。若收到的攜帶重構(gòu)因子的申請(qǐng)不符合重構(gòu)規(guī)則但其設(shè)備身份是合法的,則該終端可能是按照上一個(gè)周期的重構(gòu)規(guī)則進(jìn)行幀重構(gòu)的。
該機(jī)制的周期性處理流程見圖4。
為進(jìn)一步提供通信鏈路安全性,該機(jī)制對(duì)雙向認(rèn)證接入方法的重構(gòu)規(guī)則進(jìn)行周期性更新。為解決重構(gòu)規(guī)則更新時(shí)服務(wù)器和終端雙方使用規(guī)則的不同步問題,在網(wǎng)關(guān)中設(shè)置一個(gè)白名單來保存已經(jīng)發(fā)送過申請(qǐng)的終端的地址,白名單隨著重構(gòu)規(guī)則進(jìn)行周期性更新,若發(fā)送請(qǐng)求的終端數(shù)據(jù)幀地址已在白名單中保存,則可以判斷該終端在本周期內(nèi)已經(jīng)成功建立過連接,則可進(jìn)一步判斷其請(qǐng)求幀是否符合重構(gòu)規(guī)則。若請(qǐng)求幀符合重構(gòu)規(guī)則,則服務(wù)器同意其連接請(qǐng)求;若不符合重構(gòu)規(guī)則,則拒絕該終端本次連接請(qǐng)求。上述流程可見圖5。圖6所示為終端側(cè)設(shè)備合法性檢測(cè)流程圖,是終端發(fā)送連接請(qǐng)求后等待接收服務(wù)器的響應(yīng),并根據(jù)服務(wù)器響應(yīng)進(jìn)行數(shù)據(jù)幀重構(gòu)或數(shù)據(jù)傳輸,若收到服務(wù)器發(fā)送的攜帶編碼重構(gòu)序列的反向連接請(qǐng)求,則對(duì)自身請(qǐng)求幀進(jìn)行響應(yīng)重構(gòu),若接收到服務(wù)器的同意連接通知,則可進(jìn)行數(shù)據(jù)傳輸。
圖3 幀重構(gòu)規(guī)則通知報(bào)文Fig.3 The frame reconstruction rules inform the message
圖4 雙向認(rèn)證機(jī)制路程圖Fig.4 Two-way authentication mechanism road map
圖5 服務(wù)器端設(shè)備合法性檢測(cè)流程圖Fig.5 Flow chart of server side device legality detection
圖6 終端側(cè)設(shè)備合法性檢測(cè)流程圖Fig.6 Flow chart of legality testing of terminal side equipment
所有終端的連接請(qǐng)求,經(jīng)NS(Network Servers)轉(zhuǎn)發(fā)給JS(Join Servers)處理。DevNonce是一個(gè)由終端設(shè)備在請(qǐng)求連接時(shí)產(chǎn)生,在一定范圍內(nèi)的隨機(jī)數(shù)[16]。已產(chǎn)生的DevNonce由JS設(shè)立的固定大小的數(shù)據(jù)池保存。在JS處理連接請(qǐng)求過程中,JS若判斷DevNonce是個(gè)不在數(shù)據(jù)池內(nèi)的隨機(jī)數(shù),則同意連接請(qǐng)求,若與數(shù)據(jù)池內(nèi)的數(shù)據(jù)匹配成功,則對(duì)連接請(qǐng)求予以丟棄。因?yàn)榉?wù)器可連接的終端設(shè)備是有限的,且一旦雙方建立連接,一般情況下,之后的連接將不再進(jìn)行身份認(rèn)證。所以服務(wù)器不會(huì)刪除數(shù)據(jù)池中保存的DevNonce。若終端需要重新連接網(wǎng)絡(luò),則生成新的DevNonce。惡意攻擊節(jié)點(diǎn)抓出這一特點(diǎn),通過占用大量DevNonce使終端設(shè)備不能產(chǎn)生規(guī)定范圍內(nèi)的隨機(jī)數(shù),而無法與服務(wù)器建立連接。
(1)
式中,Tr(以天為單位)代表攻擊節(jié)點(diǎn)重放需等待的時(shí)間,是表示數(shù)據(jù)鏈路安全性的重要系數(shù);ND代表最終數(shù)據(jù)池中的序列;fJ(固定值)代表每天每個(gè)終端設(shè)備的有效連接過程的數(shù)量。
從式(1)可以看出,只要ND越大,即數(shù)據(jù)池容量夠充足,則連接請(qǐng)求就夠安全。
而幀重構(gòu)機(jī)制可以在每次身份認(rèn)證結(jié)束后便丟棄已產(chǎn)生DevNonce,從而有效地防止了重放攻擊。
判斷算法優(yōu)越性的指標(biāo),除了防止重放的時(shí)間之外,還有終端連接的成功率。
假設(shè)DevNonce在數(shù)據(jù)集[1,…,N=216]內(nèi),S是存儲(chǔ)DevNonce的集合,|S|=ND,那么在LoRaWAN v1.1定義下,終端產(chǎn)生一個(gè)已被ND存儲(chǔ)的DevNonce的概率是:
(2)
可以看出ND越大,則連接成功率就越低。
而在通過業(yè)務(wù)區(qū)分機(jī)制中,引入了周期性幀重構(gòu)的概念。將一天的時(shí)間分為n個(gè)周期T,在一個(gè)周期結(jié)束后,服務(wù)器存儲(chǔ)的已被終端使用過的DevNonce數(shù)據(jù)池將清空。那么終端產(chǎn)生一個(gè)已被ND存儲(chǔ)的DevNonce的概率就是:
P[dK∈S]=P[dK∈S|Ti]
(3)
式中,Ti表示當(dāng)前所處周期,dk是第k次連接過程中產(chǎn)生的DevNonce。系數(shù)P代表信息的安全性,P系數(shù)越高,代表連接成功率越低,即信息傳輸風(fēng)險(xiǎn)越高。反之,則信息傳輸風(fēng)險(xiǎn)越低。
為了驗(yàn)證系統(tǒng)性能,在opnet中搭建了LoRa傳感器網(wǎng)絡(luò)模型,模擬信息發(fā)送與接收。根據(jù)信息的安全等級(jí)不同,將采集到的醫(yī)療信息分為五個(gè)等級(jí),每個(gè)等級(jí)有其相應(yīng)的重構(gòu)周期。采集到的數(shù)據(jù)會(huì)根據(jù)它對(duì)應(yīng)的等級(jí)選擇相應(yīng)的重構(gòu)周期進(jìn)行發(fā)送。所以在實(shí)際情況中,周期是可變的。在可變周期下的安全系數(shù)的對(duì)比見圖7。
圖7 安全系數(shù)對(duì)比圖Fig.7 Comparison diagram of safety factor
n代表著不同程度安全等級(jí),對(duì)比其對(duì)應(yīng)著的不同的概率。生成的ND增大,生成無效DevNonce的概率越高,即數(shù)據(jù)連接建立的成功率越低。但因?yàn)橹芷谛赃M(jìn)行幀重構(gòu)的原因,NS端存儲(chǔ)的DevNonce不斷刷新,終端生成的無效DevNonce值的概率一直小于標(biāo)準(zhǔn)LoRaWAN v1.1,且n越大,即周期時(shí)間越短,生成無效的DevNonce的概率越小,即安全數(shù)據(jù)鏈路連接成功率越高。
為了對(duì)比可變周期下的幀重構(gòu)與標(biāo)準(zhǔn)LoRaWAN v1.1的能量消耗,本文模擬了一段時(shí)間內(nèi)的數(shù)據(jù)的發(fā)送,并對(duì)其進(jìn)行業(yè)務(wù)區(qū)分,按照數(shù)據(jù)的重要程度對(duì)其進(jìn)行安全度的區(qū)分,得到其安全等級(jí)變化,見圖8。
圖8 安全等級(jí)設(shè)置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。依照這部分的不同安全等級(jí)的數(shù)據(jù)進(jìn)行系統(tǒng)開銷的計(jì)算。
先設(shè)定能量消耗系數(shù),假定發(fā)送一比特?cái)?shù)據(jù)消耗的能量為0.000 5。接收一比特?cái)?shù)據(jù)消耗的能量為0.001。終端每間隔20 s向服務(wù)器發(fā)送數(shù)據(jù)。在五個(gè)安全等級(jí)下(第一等級(jí)即按照標(biāo)準(zhǔn)LoRaWAN協(xié)議發(fā)送數(shù)據(jù))對(duì)能耗進(jìn)行比較,周期性進(jìn)行重構(gòu)的能量消耗顯然比標(biāo)準(zhǔn)LoRaWAN v1.1的能量消耗要大,且隨著安全性等級(jí)越高,其能耗就越高。而各部分?jǐn)?shù)據(jù)對(duì)安全性的要求也不同,若一味地追求高安全等級(jí),會(huì)大大加速終端的能耗。而采用可變周期的方式,將隱私程度較高的數(shù)據(jù)設(shè)置為高安全等級(jí),隱私度較低的數(shù)據(jù)設(shè)置為低安全等級(jí)。
圖9 數(shù)據(jù)認(rèn)證過程能耗圖Fig.9 Energy consumption chart of data authentication process
圖10 數(shù)據(jù)傳輸過程能耗圖(包括認(rèn)證過程)Fig.10 Data transmission process energy consumption diagram
圖9為1 000 s內(nèi)終端周期性身份認(rèn)證過程的能耗對(duì)比圖,在可變周期下產(chǎn)生的總能耗雖高于傳統(tǒng)LoRaWAN v1.1(即n1(base)_Energy曲線),但它在考慮安全性的基礎(chǔ)上,與單純追求高安全等級(jí)的傳輸相比,能耗大大降低。
圖10為1 000 s內(nèi)終端周期性身份認(rèn)證并進(jìn)行數(shù)據(jù)傳輸所產(chǎn)生的能耗對(duì)比圖,在可變周期下產(chǎn)生的總能耗雖高于傳統(tǒng)LoRaWAN v1.1,但它在考慮安全性的基礎(chǔ)上,與單純追求高安全等級(jí)的傳輸相比,能耗大大降低。
圖11 數(shù)據(jù)接受延遲分析圖Fig.11 Data reception delay analysis graph
從短期觀察信號(hào)延遲問題,通過圖11所示,由于在幀重構(gòu)機(jī)制服務(wù)器需要對(duì)終端進(jìn)行身份認(rèn)證,且終端需要根據(jù)服務(wù)器要求進(jìn)行幀重構(gòu),所以在最初進(jìn)行數(shù)據(jù)傳輸時(shí),本系統(tǒng)的延遲時(shí)間略高于標(biāo)準(zhǔn)LoRaWAN v1.1協(xié)議的延遲時(shí)間。當(dāng)完成身份認(rèn)證之后,受阻的數(shù)據(jù)會(huì)先后到達(dá)服務(wù)器,這部分?jǐn)?shù)據(jù)在身份驗(yàn)證過程中已經(jīng)進(jìn)行重構(gòu),所以圖中兩種模式會(huì)有短暫重疊,隨后兩條線漸漸趨于平緩。一個(gè)周期結(jié)束后,幀重構(gòu)機(jī)制中終端需要再一次進(jìn)行身份認(rèn)證,身份認(rèn)證結(jié)束后,延遲時(shí)間又恢復(fù)穩(wěn)定。通過對(duì)實(shí)驗(yàn)結(jié)果分析,在數(shù)據(jù)傳輸階段造成的實(shí)驗(yàn)增加不足7%。
本文針對(duì)性的LoRa無線傳感網(wǎng)絡(luò)的協(xié)議安全性問題,提出一種基于LoRaWAN協(xié)議的雙向認(rèn)證機(jī)制,該機(jī)制利用數(shù)據(jù)幀的編碼重構(gòu),實(shí)現(xiàn)終端與服務(wù)器之間雙向的身份認(rèn)證,并在此基礎(chǔ)上對(duì)重構(gòu)規(guī)則進(jìn)行周期性更新,對(duì)不同安全等級(jí)的節(jié)點(diǎn)進(jìn)行不同周期的重構(gòu)規(guī)則更新,避免多次重構(gòu)規(guī)則更新造成的系統(tǒng)開銷。通過對(duì)協(xié)議安全性的算法分析,結(jié)果表明該機(jī)制能夠有效提高終端與服務(wù)器建立連接過程的安全性,且協(xié)議安全性隨著重構(gòu)規(guī)則更新周期的縮短而增大。對(duì)該機(jī)制進(jìn)行能耗分析,結(jié)果顯示在雙方身份認(rèn)證過程中造成的能耗會(huì)隨著周期的縮短而增大,在整體數(shù)據(jù)傳輸過程中,能耗增加并不明顯,數(shù)據(jù)時(shí)延僅在認(rèn)證階段具有顯著增加,而在整體數(shù)據(jù)傳輸階段時(shí)延增加不過7%。該協(xié)議的安全性、能耗和時(shí)延均隨重構(gòu)規(guī)則更新周期的變化而變化,故該協(xié)議下一步將對(duì)更新周期的設(shè)置進(jìn)行進(jìn)一步研究,以求達(dá)到安全性和系統(tǒng)開銷的平衡。