孟 遠,涂山山 ,于金亮
1.北京工業(yè)大學 信息學部,北京 100124
2.可信計算北京市重點實驗室,北京 100124
在過去的十年中,由于移動互聯(lián)網(wǎng)流量呈指數(shù)級增長,移動設備引導著無線通信和網(wǎng)絡的顯著發(fā)展[1]。其中,蜂窩異構網(wǎng)絡、毫米波通信及多輸入多輸出(Multiple-Input Multiple-Output,MIMO)技術為下一代用戶提供了千兆無線網(wǎng)絡接入服務,使得處理效率低下的移動設備也能夠借助遠程云數(shù)據(jù)中心的高處理能力和大內存存儲能力運行各自的計算服務[2]。然而在云計算中,不同的用戶、應用程序會在不同的時間、位置生成和利用數(shù)據(jù),如語音服務、視頻服務和游戲等產(chǎn)生的數(shù)據(jù)都與用戶的時刻位置有關,這將導致不同的應用程序需要更高的處理和存儲要求,并且不同的應用程序數(shù)據(jù)在執(zhí)行時往往沒有考慮用戶的移動性[3]。當前,云服務器與終端用戶的距離較遠,而大量物聯(lián)網(wǎng)設備的加入使得終端迫切需要低延遲、位置感知等能力。因此,傳統(tǒng)云計算不再適用于新一代移動物聯(lián)網(wǎng)網(wǎng)絡,霧計算的出現(xiàn)彌補了新的應用場景的缺失。在霧計算網(wǎng)絡中,處理數(shù)據(jù)的應用程序運行于依據(jù)地理位置分布的霧節(jié)點中,大多數(shù)霧節(jié)點與終端通過無線網(wǎng)絡連接,霧節(jié)點之間也存在高頻率互動。然而,由于霧節(jié)點與終端用戶間的行為在無線網(wǎng)絡中往往容易暴露,霧計算網(wǎng)絡容易受到惡意用戶的偽裝攻擊。同時,現(xiàn)有的方法大多通過使用應用層的安全技術保護霧計算網(wǎng)絡,而沒有考慮物理層安全技術在霧計算網(wǎng)絡中的應用,缺少對無線信道移動隨機性的研究,而對物理層安全技術的研究可以增強密鑰的安全性,使密鑰基于無線信道由雙方直接生成,不需要密鑰管理中心及密鑰分發(fā)過程,并且物理層安全技術獨立于計算復雜度,能夠簡單高效地解決安全問題。因此,本文基于物理層安全(Physical Layer Security,PLS),提出一種基于DQL(Double Q-learning)算法的霧計算偽裝攻擊檢測方案,貢獻如下:
(1)設計了在靜態(tài)環(huán)境中非法節(jié)點(霧節(jié)點和終端用戶)與接收端之間的零和博弈,通過在接收端建立基于信道狀態(tài)信息(Channel Status Information,CSI)的假設檢驗,解決了用于檢測偽裝攻擊的閾值問題。
(2)提出了基于強化學習中的DQL 算法在動態(tài)環(huán)境下檢測偽裝攻擊的方案,實現(xiàn)了對檢測閾值的優(yōu)化。
(3)通過與常用Q-learning 算法比較誤報率(Fault Alarm Rate,F(xiàn)AR)、漏檢率(Miss Detection Rate,MDR)、平均錯誤率(Average Error Rate,AER),證明了該方案能夠解決Q-learning 算法中的Q 值過度估計問題,降低FAR、MDR 和AER,提高偽裝檢測的準確率,增強霧節(jié)點與終端用戶間的安全性。
霧計算中惡意用戶的偽裝攻擊指的是霧節(jié)點或者終端用戶使用虛假的媒體訪問控制地址(Media Access Control Address,MAC-A)冒充合法節(jié)點向其他節(jié)點發(fā)送數(shù)據(jù),以此實現(xiàn)中間人攻擊和拒絕服務攻擊,從而獲取非法收益。為了識別偽裝攻擊,可以利用物理層技術實現(xiàn)霧節(jié)點與終端用戶間的無線網(wǎng)絡安全通信。物理層安全技術利用無線信道中標志著無線鏈路物理層特征的信道參數(shù)識別偽裝攻擊,這些信道參數(shù)包括信道頻率響應(Channel Frequency Response,CFR)、接收信號強度指示器(Receiving Signal Strength Indicator,RSSI)、信道狀態(tài)信息(Channel Status Information,CSI)、接收信號強度(Receiving Signal Strength,RSS)。當前,終端用戶與霧節(jié)點間的環(huán)境是動態(tài)的,移動終端不斷運動,信道也隨之改變,使得接收端難以識別非法數(shù)據(jù)包。為了應對動態(tài)環(huán)境中的偽裝攻擊問題,最新的研究利用強化學習中的算法,在動態(tài)環(huán)境中尋找用于檢測偽裝攻擊的最優(yōu)閾值的方案[4]。
霧計算可以為終端用戶提供計算、存儲等服務,但是也存在很多安全問題,如數(shù)據(jù)信息、密鑰信息易泄露,易受到竊聽、干擾攻擊等。面對這些問題,研究人員提出了不同的解決方法。文獻[5]提出了一種安全可驗證的矩陣外包方案,該方案將矩陣求逆任務從客戶端交由霧服務器執(zhí)行,使用混沌系統(tǒng)為矩陣加密,保證了矩陣在服務器端的安全。然而,此方法對身份驗證和攻擊模型的考慮較少。文獻[6]研究了一種基于5G的網(wǎng)絡服務鏈模型,并且針對霧層的cloudlet服務實現(xiàn)了處理DDoS(Distributed Denial of Service)攻擊的終端用戶身份驗證方法,但此方法使用了多個驗證票據(jù),步驟較為繁瑣。文獻[7]提出了基于屬性加密的密鑰交換協(xié)議,結合數(shù)字簽名技術,實現(xiàn)了保密性、身份驗證和訪問控制。文獻[8]介紹了一種基于霧的重復數(shù)據(jù)刪除空間眾包框架,解決了終端與霧節(jié)點間任務與感知數(shù)據(jù)安全傳輸問題,但是計算復雜度較高。
綜合上述研究,由于霧計算網(wǎng)絡中存在偽裝攻擊,并且現(xiàn)有研究大多使用應用層安全技術,缺少對物理層安全的研究,因此本文提出了基于物理層安全和DQL算法檢測偽裝攻擊的方案。
本文構建了一個霧節(jié)點層與用戶層間的偽裝攻擊網(wǎng)絡模型,并且在接收端建立用于檢測攻擊的假設檢驗。
本文的網(wǎng)絡模型面向霧節(jié)點與終端用戶,考慮霧節(jié)點與終端用戶間的無線網(wǎng)絡,如圖1所示。假設有a個發(fā)送端,r個接收端,h個合法節(jié)點和i個非法節(jié)點,其中:
圖1 偽裝攻擊網(wǎng)絡模型
非法節(jié)點表示帶有虛假MAC-A 地址的節(jié)點,它可以是霧節(jié)點,也可以是終端用戶節(jié)點。同時該節(jié)點可以假冒終端用戶向霧節(jié)點或終端用戶發(fā)送數(shù)據(jù)包,也可以假冒霧節(jié)點向合法用戶發(fā)送數(shù)據(jù)包。非法用戶在一個時隙內發(fā)送一個虛假MAC-A 地址的概率為pj∈[0,1]。第a個發(fā)送端的MAC-A地址為αa∈θ,?a∈A,其中θ是表示所有MAC-A地址的集合。每個接收端收到每個數(shù)據(jù)包后均估計其相關的CSI,并提取數(shù)據(jù)包的信道向量,接收端接收的數(shù)據(jù)包的信道向量被稱為信道記錄。例如,數(shù)據(jù)包的導頻可以用于發(fā)送端的信道響應估計。因此,第a個發(fā)送端發(fā)送的第t個數(shù)據(jù)包的信道向量為,第a個發(fā)送者發(fā)送的第t個數(shù)據(jù)包的信道記錄為,x表示第t個數(shù)據(jù)包的第x個信息[9]。
假設檢驗用來驗證數(shù)據(jù)包的身份,合法節(jié)點發(fā)送的數(shù)據(jù)包的信道向量為,合法節(jié)點的MAC-A 地址為,假設Η0表示MAC-A 的數(shù)據(jù)包是由合法節(jié)點發(fā)送的,假設Η1表示MAC-A的數(shù)據(jù)包是由非法節(jié)點發(fā)送的,如下所示:
物理層安全中,CSI表明了信道特征,它是唯一的,接收端提取CSI 可以驗證數(shù)據(jù)包。如果信道向量與信道記錄相同,那么發(fā)送端發(fā)送的數(shù)據(jù)包被認為是合法數(shù)據(jù)包,接收端接收;否則,數(shù)據(jù)包被認為是從非法節(jié)點發(fā)送而來,接收端拒絕接收。假設檢驗的統(tǒng)計量為:
因為歐式距離的值S大于等于0,所以閾值也大于等于0。定義誤報率PA與漏檢率PB:
其中,PR為條件概率,誤報率表示合法節(jié)點發(fā)送的合法數(shù)據(jù)包被檢測為非法數(shù)據(jù)包的概率。漏檢率表示非法的數(shù)據(jù)包被檢測為合法數(shù)據(jù)包的概率。接收端接收(6)中合法節(jié)點發(fā)送的合法數(shù)據(jù)包的概率和接收端拒絕(7)中非法數(shù)據(jù)包的概率分別為[4]:
根據(jù)假設檢驗,假設測試閾值的大小影響偽裝攻擊檢測的精確率,當閾值增大時,漏檢率隨之增加,另一方面,當閾值減小時,誤報率也會增加。除了物理層安全檢測,接收方也應該設定高層數(shù)據(jù)包檢測(Higher Layer Authentication,HLA),檢測經(jīng)過物理層驗證的數(shù)據(jù)包,最終接受所有通過檢測的數(shù)據(jù)包,每個數(shù)據(jù)包被接受時,,若不被接受,。
綜上所述,通過在接收端建立假設檢驗,可以為偽裝檢測設置一個檢測統(tǒng)計量,以便于將其與測試閾值進行比較,判斷每一個接收到的數(shù)據(jù)包是否是合法數(shù)據(jù)包。
本章主要介紹靜態(tài)檢測中基于博弈論的效用計算和動態(tài)場景中使用DQL算法檢測偽裝攻擊的方法。
在靜態(tài)偽裝檢測中,在接收端建立假設檢驗并選擇閾值檢測偽裝攻擊,使用零和博弈計算接收端的效用,其中有F個非法節(jié)點和N個接收者[10]。非法節(jié)點發(fā)送非法數(shù)據(jù)包的概率為pj∈[0,1],1 ≤j≤F,發(fā)送非法數(shù)據(jù)包的集合為Y=[pj]1≤j≤F,非法節(jié)點之間可以互相協(xié)作,假設在一個時隙中只有一個非法節(jié)點進行偽裝攻擊,接收端接收到一個非法數(shù)據(jù)包的概率為。另外,接收端接收合法數(shù)據(jù)包的收益為g1,拒絕非法數(shù)據(jù)包的收益為g0,接收端拒絕合法數(shù)據(jù)包的成本為C1,接受非法數(shù)據(jù)包的成本為C0。因此,偽裝攻擊先驗分布下偽裝檢測的貝葉斯風險[11]為:
上式中第一項為合法數(shù)據(jù)包的收益,第二項為偽裝攻擊產(chǎn)生的收益。因此,在零和博弈中,接收端的收益為:
在式(11)中,λ為接收端選擇的測試閾值,λ∈[0,∞)。在實際的場景中,節(jié)點具有移動性,是動態(tài)變化的,對接收端來說,它不知道完整的信道狀態(tài),因此,在下一節(jié)中將采用DQL算法尋找動態(tài)環(huán)境中的最優(yōu)測試閾值。
DQL算法是強化學習算法,它改進了Q-learning算法。DQL 與Q-learning 都可以在動態(tài)環(huán)境中得到不充分信息的最優(yōu)策略[12-13]。相對于Q-learning 算法,DQL解決了Q值過度估計的問題[13]。
在動態(tài)偽裝檢測中,接收端構建假設檢驗,評估每個時隙中發(fā)送來的T個數(shù)據(jù)包,利用測試閾值檢測它們的發(fā)送者是合法節(jié)點還是非法節(jié)點。將測試閾值分為L+1 級,λ∈{l/L},0 ≤l≤L ,接收端在時刻τ的狀態(tài)表示為sτ,它指的是在時刻τ-1 處的 FAR 與 MDR,表示為,其中D為接收端所有狀態(tài)的集合。因此,誤差率同樣被量化為L+1 級,它們的值與測試閾值相關。根據(jù)DQL 算法,接收端在每個狀態(tài)下選擇動作,其獲得的立即收益如下式所示:
DQL 算法使用了兩個Q 值表Q1和Q2,它們互相選擇最大Q值和動作,彌補錯誤。接收端使用ε-greedy策略在每個狀態(tài)選擇動作,以ε的概率選擇次優(yōu)動作,以1-ε的概率選擇使當前狀態(tài)下最大的動作[14],概率值為:
在DQL算法中,μ表示獎勵性衰變系數(shù),μ∈(0,1),學習效率δ表示下一狀態(tài)可能帶來的收益,δ∈(0,1),更新公式如下:
式(18)表示當前狀態(tài)中對應于各個動作下Q1+Q2的均值最大值。因此,最佳測試閾值為:
式(19)計算的是在每個狀態(tài)下使兩個Q 表收益和最大的動作。
根據(jù)上述公式,獲取最佳閾值和最大化效用的DQL算法步驟總結如下:
步驟1 初始化,給ε、μ、δ、Q1(sτ,λ)、Q2(sτ,λ) 賦初值,其中 ?λ∈{l/L},0 ≤l≤L。
步驟2τ=1,2,…,在當前狀態(tài)sτ下,選擇測試閾值λτ,用于判斷當前狀態(tài)與前一狀態(tài)間的時隙內所有數(shù)據(jù)包的合法性。
步驟3 接收端a接收到一個數(shù)據(jù)包,觀察MAC-A地址,αa∈θ,?a∈A,提取信道向量和信道記錄,即和。
步驟4 使用式(3)計算歐式距離。如果,那么將這個數(shù)據(jù)包發(fā)給HLA處理,并且,接收這個數(shù)據(jù)包;否則拒絕這個數(shù)據(jù)包。此步驟用于判斷接收到的數(shù)據(jù)包是否是合法數(shù)據(jù)包,接收合法數(shù)據(jù)包,丟棄非法數(shù)據(jù)包。
步驟5 重復步驟3 和步驟4,直到接收端處理完一個時隙中接收到的T個數(shù)據(jù)包。
步驟6 進入下一個狀態(tài)sτ+1,根據(jù)式(12)計算Δτ,以0.5的概率使用式(14)更新Q1(sτ,λτ),以0.5的概率使用式(15)更新Q2(sτ,λτ),并且使用式(18)更新V(sτ),獲取當前Q值平均值的最大值。
步驟7 返回步驟2 繼續(xù)執(zhí)行,重復步驟2~步驟6,直到達到目標狀態(tài),完成優(yōu)化公式(18)、(19)所表示的最大Q值和最優(yōu)測試閾值的過程。
假設檢驗中,F(xiàn)AR與MDR基于DQL算法的計算公式如下[15]:
其中,F(xiàn)x22M是2M自由度的累積分布函數(shù),接收端以σ2獲得發(fā)送端的平均功率增益,ρ為合法數(shù)據(jù)包的信號與干擾加噪聲比(Signal to Interference plus Noise Ratio,SINR)。b為信道增益的相對變化,k為偽裝者的信道增益與發(fā)送端的信道增益比。
仿真實驗針對本文提出的基于DQL算法檢測偽裝攻擊的方法與基于Q-learning算法檢測偽裝攻擊的方法進行對比,并將兩種算法在FAR、MDR、AER 和最大Q值這四個方面進行比較。本文的實驗環(huán)境模擬為20 m×20 m 的房間,房間內的節(jié)點隨機分散,所有的信道增益服從常規(guī)分布ξ(0,1)[4]。假設同一時隙內接收端處理T=20 個數(shù)據(jù)包,設定信號的中心頻率為f0=2.4 GHz,其中相關的初始值設置為g1=6,g0=9,C0=4,C1=2。根據(jù)4.2 節(jié)描述的DQL 算法中參數(shù)的取值范圍,本實驗假設ε=0.5,μ=0.4,δ=0.8。同時,為了計算FAR、MDR和AER的值,本文根據(jù)實驗環(huán)境選擇了合適的初值ρ=10 dB,k=0.2,b=3 dB[4],實驗用到的初始化參數(shù)及意義見表1。
表1 仿真實驗用到的參數(shù)值及意義
在初始化參數(shù)下,1~100 次連續(xù)實驗中,基于DQL算法進行偽裝檢測和基于Q-learning算法進行偽裝檢測的FAR值對比如圖2所示。
圖2 兩種算法的FAR值對比圖
隨著實驗次數(shù)的增加,算法中的閾值也在不斷變化,在DQL算法中,根據(jù)式(20),F(xiàn)AR值先降低,但隨后大體保持在23.3%~23.7%之間。這是因為進行多次實驗后,隨著接收端收到的比特數(shù)增加,每當選擇最優(yōu)閾值檢測偽裝攻擊時,算法都會利用之前多次檢測攻擊的經(jīng)驗選擇最優(yōu)檢測閾值,一定實驗次數(shù)后,最優(yōu)測試閾值差別減小。另外,根據(jù)霧計算無線網(wǎng)絡動態(tài)變化的特點,信道衰落的不同導致信道向量有所差別,因此FAR值小幅波動,但大體保持在恒定范圍內。與Q-learning算法相比,在大部分實驗次數(shù)下,DQL算法的FAR值較低,這是由于接收端使用兩個Q 表互相彌補估計誤差,增加了收益估計的準確率,使其選擇了更合理的閾值。因此,在使用基于DQL算法檢測偽裝攻擊時,接收端接收到合法數(shù)據(jù)包但將它視為非法數(shù)據(jù)包并丟棄的可能性更低,從而增加了合法數(shù)據(jù)包的接收率,提高了霧節(jié)點與終端用戶間通信的安全性。
相似地,在初始化參數(shù)下1~100 次連續(xù)實驗中,兩種算法的MDR值比較如圖3所示。
圖3 兩種算法的MDR值對比圖
很明顯,由于接收端的Q表初始值全為0,前期實驗中所選擇的最優(yōu)閾值較小,隨著實驗次數(shù)的增加,當最優(yōu)閾值增大時,根據(jù)式(21),與FAR 值相反,MDR 值有較小幅度的增加。一定實驗次數(shù)后,因為每次實驗的信道向量和選擇的最優(yōu)閾值有微小差異,導致MDR 值在小范圍內上下波動,但其值已經(jīng)穩(wěn)定下來,大體保持在恒定范圍內。另外,DQL 算法的MDR 值比Q-learning算法更小,因此,在DQL 算法下,接收端接收到非法數(shù)據(jù)包但將它視為合法數(shù)據(jù)包并接受的可能性更低,增加了非法數(shù)據(jù)包的丟棄率,提高了霧層與用戶層間通信的安全性。
基于FAR和MDR值,本實驗再次比較了在ρ=10,b=0.2,k=3 時,1~100次優(yōu)化測試閾值的實驗過程中兩種算法的平均錯誤率,其結果如圖4所示。
圖4 兩種算法的AER值對比圖
AER表示在固定網(wǎng)絡模型中,給定的初始化參數(shù)條件下偽裝檢測的平均錯誤率,計算公式如下:
與FAR、MDR一樣,隨著接收端判斷并接收了更多比特的數(shù)據(jù)包,它學習到了許多選擇最優(yōu)閾值的經(jīng)驗,平均錯誤率保持在恒定范圍內。可以看到,使用DQL算法檢測偽裝攻擊的AER 值比使用Q-learning 算法檢測偽裝攻擊的AER 值小,因為AER 值是綜合FAR 值、MDR值計算得到的。因此,在接收端使用DQL算法檢測合法節(jié)點和非法節(jié)點發(fā)送的數(shù)據(jù)包的性能優(yōu)于使用Q-learning算法,它可以提高偽裝攻擊檢測的精確度,減少在霧計算網(wǎng)絡下接收端受到偽裝攻擊的概率。
最后,本實驗比較了兩種算法在初始化參數(shù)設定下1~100 次連續(xù)實驗過程中共5 000 個狀態(tài)下的最大Q值。結合前文所述的錯誤率分析,由圖5 可以看出,在每個狀態(tài)下DQL 算法的最大Q 值比Q-learning 算法的最大Q 值小,這是由于接收端使用的DQL 算法借助兩個Q 表相互彌補收益的估計誤差,處理了Q-learning 算法存在的Q值過度估計問題,使得每個狀態(tài)下收益的估計值更加精確,從而對每個狀態(tài)下的閾值選擇產(chǎn)生影響。即優(yōu)化了最優(yōu)閾值的判斷,選擇更合適的閾值檢測數(shù)據(jù)包的合法性,進而降低了FAR、MDR 和AER 的值,減少了接收端受到偽裝攻擊的數(shù)量。綜合上述實驗,基于DQL 算法的偽裝攻擊檢測優(yōu)于基于Q-learning 算法的偽裝攻擊檢測。
圖5 兩種算法的最大Q值對比圖
本文分析了霧計算網(wǎng)絡中霧節(jié)點與終端用戶易受到偽裝攻擊的缺陷,提出一種利用霧節(jié)點與終端用戶之間的無線信道特性檢測偽裝攻擊的方案。該方案首先在接收端建立假設檢驗,利用靜態(tài)偽裝檢測,基于零和博弈計算接收端和偽裝者的收益;其次,將假設檢驗和博弈論的方法用于動態(tài)偽裝檢測中,設計了一個基于強化學習DQL算法獲取偽裝檢測最優(yōu)閾值的方案。仿真實驗結果表明,基于DQL 算法檢測偽裝攻擊能夠降低誤報率、漏檢率和平均錯誤率,其檢測性能優(yōu)于使用Q-learning 算法的偽裝攻擊檢測。在未來的工作中,將繼續(xù)使用強化學習的方法解決各種安全威脅,比如竊聽攻擊、身份驗證、干擾攻擊、拒絕服務攻擊等。