宋宇波 陳 冰,4 鄭天宇 陳宏遠 陳立全 胡愛群
1(東南大學網絡空間安全學院 南京 211189) 2(江蘇省計算機網絡技術重點實驗室(東南大學) 南京 210096) 3(紫金山實驗室 南京 211111) 4(東南大學信息科學與工程學院 南京 211189) (songyubo@seu.edu.cn)
近年來,無線網絡技術發展迅速,無線用戶數量激增.隨著無線網絡在金融交易、商業管理等一系列重要業務上的廣泛應用,無線網絡安全成為安全研究的重點.由于無線網絡使用開放性的無線信道傳輸數據,因此易遭受設備假冒攻擊和通信數據偽造攻擊.攻擊者可以通過竊聽無線傳輸數據來獲取合法用戶的身份信息,進而利用該身份信息假冒合法用戶接入網絡,或者通過發送攜帶合法用戶身份信息的偽造數據來欺騙無線網絡中的其他設備[1-3].IEEE 802.11i提供的基于密碼學的無線設備認證技術一直是防范上述攻擊的重要技術,但是已經出現有效的攻擊方案[4-7].此外,基于密碼學的無線設備認證技術需要無線終端進行復雜的密鑰計算和密鑰協商,一方面具有較大的時間開銷,另一方面難以在計算能力有限的嵌入式設備中實現.
基于信道狀態信息(channel state information, CSI)指紋的設備識別技術是一種非密碼學的設備識別技術[8-18].這類技術從無線設備的CSI中提取指紋,該指紋能夠標識設備的無線信道特征.CSI通常為無線信道的信道頻率響應,在OFDM無線通信系統中,CSI由各個子載波的幅度和相位組成,能夠在多頻點上提供細粒度的無線信道狀態信息.由于空間的多樣性,每臺設備的無線信道都是獨一無二的,因此反映細粒度無線信道特征的CSI指紋能夠用于標識設備身份.在設備識別過程中,識別設備獲取待識別終端的CSI并生成CSI指紋,該CSI由識別設備通過信道估計獲得,反映了設備的物理屬性,因此CSI指紋難以被偽造,進而大大增加了設備假冒攻擊和通信數據偽造攻擊的難度.
重要的是,CSI可以從現有的支持OFDM無線通信技術的802.11設備(如802.11a/g/n/ac/ax設備)中直接獲取,而無需定制特殊的設備或進行額外的信號處理,因此能夠輕松地在現有的無線設備中部署基于CSI指紋的無線設備身份識別系統.同時,在機器學習算法的幫助下,這類技術往往能夠獲得較高的設備識別準確率.但是這類技術面臨著2個問題:
1) 由于CSI指紋標識終端的無線信道特征,因此它會隨著終端的位置或所處環境的改變而改變.也就是,現有的技術通常需要提前采集終端的大量CSI指紋以用于后續的指紋匹配,但是若無線終端的位置發生變化,或周圍環境發生較大的改變,提前采集的CSI將無法代表最新的無線信道狀態,進而無法再用于后續的設備身份識別.尤其當長期處于離線狀態的無線終端請求接入網絡時,其無線信道狀態往往已經發生較大的變化,因此除非重新采集CSI指紋,否則后續的指紋匹配將無法成功進行.
2) 現有的技術通常將機器學習用于指紋匹配,以追求系統的高識別準確率,但是指紋匹配的計算復雜度也會隨之增加,進而無法在計算能力有限的嵌入式設備中實現.也就是,現有的基于CSI指紋的設備身份識別技術往往借助機器學習來進行特征提取、指紋分類以及指紋匹配等工作,進而獲得較好的特征提取效果和高識別準確率.但是,CSI指紋識別的計算復雜度也隨之增大,因此可能會對設備硬件造成巨大的負擔,同時無法在計算能力有限的嵌入式設備中實現.
以上2個問題給基于CSI指紋的無線設備身份識別技術的實際應用帶來了困難.為了解決這些問題,本文提出了一種基于混合特征的無線設備指紋生成方案,該方案在使用CSI指紋的同時引入了數據包到達時間間隔分布(packet arrival interval distribution, PAID)指紋,該指紋能夠標識設備的硬件特征.2種指紋被分別用于兩階段的設備識別:一是終端請求接入時,利用PAID指紋進行識別,并重新采集終端的CSI指紋;二是終端成功接入并開始通信時,從終端的每個數據包中提取CSI指紋并進行實時的逐包設備識別.此外,本文提出了一種計算復雜度較低的指紋匹配方案,以保證在計算能力有限的設備中也能快速且準確地識別設備.本文的主要貢獻有3個方面.
1) 針對CSI指紋會隨著終端的位置或所處環境的改變而改變的問題,本文提出了一種基于混合特征指紋的設備身份識別方案.該方案從無線終端的PAID和CSI中提取2類指紋:前者為PAID指紋,標識設備的硬件特征;后者為CSI指紋,標識設備的無線信道特征.該方案包含兩階段的設備識別:①當終端請求接入無線網絡時,識別設備捕獲該終端發送的若干數據包,從中提取PAID指紋和CSI指紋,并用PAID指紋進行識別,識別成功則用新獲取的CSI指紋進行后續的CSI指紋匹配;②當終端接入并開始通信時,識別設備從終端的每個數據包中提取CSI指紋并進行實時的逐包身份識別.
2) 針對現有的技術利用機器學習提高識別準確率的同時計算復雜度較高,無法在計算能力有限的嵌入式設備中實現的問題,本文提出了一種改進的指紋匹配方案,該方案利用基于自動編碼器的指紋匹配網絡來進行指紋匹配.該網絡包括匹配層和輸出層,前者由小規模自動編碼器并聯組成,后者由線性變換器構成,在保證高識別準確率的同時降低了計算復雜度.
3) 在樹莓派3B+上實現了基于混合特征指紋的設備識別原型系統,主要包括無線終端接入時的PAID指紋提取、PAID指紋匹配、CSI指紋采集,以及通信時的逐包CSI指紋提取和CSI指紋匹配.利用該原型系統在2種測試場景下分別進行了接入時和通信時的設備身份識別測試,并根據測試結果分析了設備識別系統的性能.
無線通信技術的發展為人們的生產和生活帶來了極大的便利.相比于有線網絡,無線網絡利用其無線傳輸的特點有效地聯通了互聯網的“最后一百米”,并且在公共服務、商業活動、金融交易、軍事、醫療等重要領域中得到了充分的應用.但是,一些惡意攻擊者的存在給無線網絡的安全性造成了威脅.攻擊者可以竊聽和攔截無線流量并獲取用戶的身份信息,然后通過將自身偽裝成合法設備來發起假冒攻擊欺騙無線接入點(access point, AP),實現以合法身份接入網絡.這意味著無線網絡必須對未知用戶進行精準的身份驗證以防御這些可能存在的攻擊,進而增強自身的安全性.
近年來,基于信道特征指紋的無線設備身份識別技術獲得了越來越多的關注.在信道特征指紋發展的早期,接收信號強度指示(received signal strength indication, RSSI)被用于提取信道特征指紋[19-22].該技術的基本思想是:不同設備的信號發射端會根據其信道狀態來設置信號的發射強度,因此RSSI指紋能夠反映設備的信道狀態.但是RSSI已被證實在較小的環境噪聲干擾下會產生較大的波動,并不能作為穩定的設備身份標識[23].因此,人們嘗試從信道沖激響應(channel impulse response, CIR)中提取用于標識設備的信道特征指紋.Mahmood等人[24]提出了基于CIR指紋的分布式無線設備身份識別方法,該方法利用在不同的位置部署多個測量設備的方式來提高系統的識別準確率.此后,CSI被用于生成信道特征指紋[8-18],這種指紋識別技術相比于RSSI指紋和CIR指紋具有重大的突破:首先,CSI包含比RSSI和CIR更細粒度的信道狀態信息,能夠更好地標識設備的無線信道狀態,即使2臺設備具有近似的無線信道狀態(如2臺設備距離很近),CSI也能捕捉設備之間的細微差異;其次,CSI可以很容易地從支持OFDM無線通信技術的802.11設備中獲得(如802.11a/g/n/ac/ax設備),而CIR的獲取則依賴于特殊的設備[25].
Liao等人[8]從CSI的幅度信息中提取指紋,并利用提前訓練的CNN將待識別的CSI指紋分類,若該指紋的分類結果與其攜帶的身份信息一致,并且輸出超過設定的閾值,則判定該CSI指紋攜帶的身份信息為真.但是文獻[8]并沒有給出安全地獲取CNN訓練集的方法,惡意設備可能會用假冒的身份污染CNN訓練集.為了解決該問題,Liu等人[11]提供了一種安全的CSI指紋采集方式,該文使用K-means算法將采集的CSI指紋進行聚類,根據聚類結果判斷指紋是否來自惡意終端.其同樣提取CSI的幅度信息作為指紋,并使用SVM算法對待識別的CSI指紋進行分類,若分類結果與CSI攜帶的身份一致則識別成功.以上技術均從單收發天線的CSI中提取指紋,Xie等人[12]將MIMO與基于CSI指紋的無線設備身份識別技術相結合,嘗試使用更高維度的MIMO-CSI指紋來提高身份識別的準確性.Liu等人[18]同樣使用MIMO-CSI指紋進行設備識別,但是該文提出了一種基于LOF的改進設備識別算法,該識別算法即使在低信噪比無線通信環境下也可以達到高準確率.
文獻[8-18]所述的方法雖然利用CSI指紋實現了高準確率的設備身份識別,但是沒有考慮設備位置改變或環境改變對CSI指紋帶來的影響.Liu等人[11]雖然提供了一種在設備位置改變后重新采集CSI指紋的方法,但是這種方法安全有效的前提是合法設備必須能夠隨時響應識別設備的指紋采集請求,這在大部分應用場合中是無法滿足的(如辦公場景下,人們時常需要攜帶筆記本電腦離開).
為了解決待認證設備的移動和合法設備的離線給CSI指紋認證帶來的問題,本文提出了一種基于混合特征指紋的設備識別技術.該技術在使用CSI指紋為無線終端提供實時的逐包設備識別服務的同時引入了另外一種指紋.該指紋從終端的PAID中提取,能夠反映設備的硬件特征,進而與設備所處的位置和環境無關.但是,由于獲取PAID指紋需要采集大量的數據包,因此無法用來實現實時的設備識別.因此,本文將PAID指紋用于接入時的設備識別,并將CSI指紋用于通信中實時的逐包設備識別.
本節介紹了基于混合特征指紋的無線設備識別技術所使用的相關技術,包括無線網絡的端到端時延組成、數據包時間間隔的影響因素、CSI的基本概念和測量方式,以及自動編碼器的相關概念和算法.
為了評估一個分組交換無線網絡的數據速率和吞吐量,需要研究影響數據包遞送速率的因素.在一個單跳分組交換無線網絡中,用戶通信時數據包的遞送步驟可以概括為:
1) 發送設備組建數據包;
2) 發送設備將數據包發送到無線信道上;
3) 數據包從發送設備傳輸到路由器;
4) 路由器接收數據包并將其放入處理隊列;
5) 路由器解析數據包并組建新數據包;
6) 路由器將新數據包發送到無線信道上;
7) 數據包從路由器傳輸到接收設備;
8) 接收設備接收并解析數據包.
其中,步驟1,5,8均為設備在本地處理數據包,因此這些步驟產生的時延可以歸納為處理時延;步驟2,6為設備將數據包發送到物理信道,將產生傳輸時延;步驟3,7為數據包在無線信道中傳播,此時存在傳播時延;步驟4為數據包在路由器中排隊等待處理,可視為存在排隊時延.
在由2臺直接相連的無線終端組成的網絡中利用Ping探討數據包時間間隔的時延組成.在本場景中,無線終端A為Ping請求設備,無線終端B為Ping響應設備,圖1顯示了當Ping請求發送間隔設置為10 ms時無線終端A和無線終端B的Ping時序關系.本研究中發送間隔為10 ms的含義為:無線終端A提前組建Ping Request數據包,并在10 ms的中斷處理程序中將已經組件好的請求包通過系統調用發送到無線信道中.如圖1所示,每組(Ping Request,Ping Response)都被限制在10 ms以內,相鄰2組之間沒有時域上的交疊.這種限制是合乎常理的,因為通過實際測試可知,當兩端設備中間無路由器、交換機等中轉設備時,Ping的往返時延(round-trip time, RTT)將小于5 ms.

Fig.1 Ping timing diagram and delay composition圖1 Ping時序圖與時延組成
圖1給出了2組(Ping Request,Ping Response)的時序關系,并分別編號為(Ping Request(1),Ping Response(1))和(Ping Request(2),Ping Response(2)).如圖1所示,無線終端A在發送時間節點0 ms,10 ms,…上將數據包傳輸到信道中,該傳輸時延記作tA-trans;數據包從無線終端A傳播到無線終端B,其傳播時延記作tA-prop;無線終端B接收、解析Ping Request并組建、傳輸Ping Response產生的時延包括處理時延和傳輸時延,記作tB-proc+tB-trans;Ping Response從無線終端B傳播到無線終端A產生的傳播時延記作tB-prop.
為了計算數據包接收時間間隔,將2組Ping數據包的時延分別用(1),(2)進行編號,因此數據包接收時間間隔t可計算為:
(1)
(2)

t=10+ΔtA-trans+ΔtA-prop+ΔtB-trans+
ΔtB-prop+ΔtB-proc.
(3)
式(3)還可以被進一步簡化.首先,普通商用無線設備的數據包的傳輸時延通常為毫秒到微妙級,而數據包的處理時延僅為微秒級甚至更小的數量級,因此tB-proc?tB-trans;再者,無線傳輸的距離通常為100 m左右甚至更小,因此數據包的傳播時延將為微秒級甚至更小的數量級,因此tB-prop?tB-trans.相應地,由于設備軟硬件因素和無線信道爭用造成的處理、傳播時延抖動(ΔtB-proc,ΔtB-prop)也會遠小于傳輸時延抖動ΔtB-trans.由此,數據包接收時間間隔t可以被簡化為
t=10+ΔtA-trans+ΔtB-trans.
(4)
因此,t的主要影響因素為發送設備和接收設備的傳輸時延.
在無線通信中,發射機發出的無線信號將沿著多條無線路徑傳播到接收機,這些路徑組成了用于設備通信的無線多徑信道.CSI通常指該無線多徑信道的信道頻率響應(channel frequency response, CFR),因此當傳輸頻率為f時,CSI可以表示為
(5)
由式(5)可知,CSI反映了無線信道整體的幅度衰減和相位偏移.在實際無線通信中,組成無線信道的每條傳播路徑都具有不同的幅度衰減和時間延遲.當無線信號沿著不同的路徑抵達接收機時,不同幅度和相位的信號疊加組成了最終的接收信號,CSI則反映了多條傳播路徑疊加后的幅度衰減和相位偏移.
基于OFDM的無線網絡(如IEEE 802.11a/g/n)利用多載波傳輸技巧實現頻帶的高效利用和系統吞吐量的提升.當設備在2.4 GHz頻段上以20 MHz的帶寬傳輸數據時,其所使用的信道將包含64個子載波.這種情況下,接收端測量得到的CSI包含每個子載波的頻率響應,進而組成64維的CSI復數向量.在MIMO-OFDM無線通信系統(假設該系統具有V根發射天線和G根接收天線)中,由發射天線和接收天線組成的V×G個天線對各有一個CSI,進而將CSI拓展為V×G×64的3維復數矩陣.
相比于RSSI,CIR用來表征無線信道物理特性的物理量,CSI借助OFDM多載波傳輸的特點,在多個頻點上記錄信道的幅度衰減和頻率偏移,因此包含了更加細粒度的無線信道信息.同時,基于OFDM的IEEE 802.11a/g/n無線設備在信道估計模塊提供CSI的測量和提取,其根據CSI測量值來優化接收器參數,使得接收機適應當前的信道狀態.因此,能夠從現有的商用IEEE 802.11a/g/n無線網卡中直接獲取CSI測量值,無需添加新固件或定制的硬件.
OFDM無線通信系統利用信道估計來獲取CSI,而信道估計則依賴于無限物理層PLCP子層協議數據單元(presentation protocol data unit, PPDU)的長訓練序列.在采用OFDM技術的IEEE 802.11協議(如IEEE 802.11 a/g/n/ac/ax)中,物理層包含物理層匯聚過程子層(physical layer convergence procedure, PLCP)和物理介質相關子層(physical medium dependent, PMD),其負責將介質訪問控制層(medium access control, MAC)發來的數據發送到無線介質.該過程可以概括為:PLCP接收到MAC發來的MAC層業務數據單元后,將其封裝為MAC層協議數據單元,并作為PLCP子層業務數據單元發送到PLCP子層,PLCP子層將其封裝為PPDU.
以工作在2.4 GHz頻段、帶寬為20 MHz的無線通信系統為例,PPDU的幀格式如圖2所示,其中,PLCP前導碼包含發送端和接收端共享的長訓練序列L,L在64個子載波上的幅度為:L在編號為-32~-27,0,27~31的子載波上幅度為0,在其余子載波上的幅度為1.當發送信號為X、接收信號為Y時,有:
Y=HX+N,
(6)
其中,H為信道頻率響應,N為噪聲.當忽略噪聲N時,信道頻率響應可估計為
H=YX-1.
(7)
通過該信道估計方法,接收端利用長訓練序列L可以獲取無線信道的CSI.需注意的是,L僅在52個子載波上的幅度不為0,CSI的有效值分布在L的幅度不為0的子載波上.

Fig.2 Frame structure of PPDU圖2 PPDU的幀結構
自動編碼器作為一種特殊的人工神經網絡,其學習目標為尋找一種數據映射,該映射首先將輸入樣本壓縮得到低維度樣本,然后以盡可能低的誤差將低維樣本重建為原始維度的樣本.
該數據映射分為編碼映射和解碼映射.其中,編碼映射負責輸入樣本的降維,解碼映射負責將編碼得到的低維樣本重建為與輸入樣本維度相同的輸出樣本.降維后的樣本具有比輸入樣本更少的特征,其攜帶的信息量通常少于輸入樣本所攜帶的信息量.為了根據低維樣本重建出高維樣本,自動編碼器需要從訓練樣本中學習樣本的分布特征.這種重建方式類似于大腦根據已掌握的不完整信息和經驗來預測未知的結果.

Fig.3 The structure of autoencoder圖3 自動編碼器結構示意圖
本文所用的自動編碼器為具有單一隱藏層的3層自動編碼器,圖3展示了一個典型的單隱藏層自動編碼器結構.由圖3可知,自動編碼器的每一層由若干個神經元構成,相鄰2層的神經元通過突觸兩兩連接.圖3所示的自動編碼器輸入維度為4,輸出維度與輸入維度一致.其具有一個隱藏層,該隱藏層對輸入向量的壓縮比為4∶3.為了后續表示的方便,分別用l(1),l(2),l(3)來表示自動編碼器的輸入層、隱藏層、輸出層,并用dim(1),dim(2),dim(3)表示l(1),l(2),l(3)的神經元數量(dim(1)=dim(3)).自動編碼器的壓縮率ρ定義為
(8)
此外,W(1)和W(2)分別表示連接(輸入層,隱藏層)和(隱藏層,輸出層)的突觸的權重.其中,W(1)為dim(1)×dim(2)的矩陣,W(2)為dim(2)×dim(3)的矩陣.b(1)和b(2)分別表示隱藏層和輸出層的偏差向量,它們的維度分別為dim(2)和dim(3).
自編碼器是數據相關的,具體表現為:使用特定樣本集訓練的自動編碼器掌握了該樣本集的分布特征,因此對于具有相同分布特征的樣本具有良好的重建能力;但是對于具有不同分布特征的樣本,該自動編碼器的重建能力將很差.用輸入樣本和輸出樣本的均方根誤差來表示自動編碼器對該輸入樣本的重建能力:
(9)
在本文中,利用自動編碼器的數據相關特性對無線設備的CSI指紋進行標記和識別.具體方式為:首先利用目標設備的CSI指紋集訓練自動編碼器,然后將新的屬于未知設備的CSI指紋輸入自動編碼器,最后獲得該CSI指紋的重建誤差.若重建誤差大于設置好的閾值,則該CSI指紋被判定為不具有訓練集特征,進而不屬于目標設備.
自動編碼器的執行過程為輸入向量在神經網絡中逐層傳遞的過程,這與人類的末梢神經接收信號并沿著神經網絡將其傳遞到深層神經類似,將其稱為神經網絡的前向傳播過程.假設輸入向量為x,則l(2)接收到的向量為a(2)=g(W(1)·x+b(1))接收到的向量為a(3)=x′=g(W(2)·a(2)+b(2)).其中,g為激活函數.本文所用的激活函數為sigmoid函數,因此g定義為
(10)
通過使用激活函數,每一層接收到的信號均為上層信號的非線性組合,因此整個神經網絡可以擬合出復雜的非線性模型.若不使用激活函數,則整個前向傳播過程等價于將輸入向量進行線性組合,因此失去了擬合復雜模型的能力.將整個前向傳播過程表示為
hΘ(x)=x′,
(11)
其中,Θ≡(W(1),b(1),W(2),b(2)),在下文中用于代指自動編碼器.
在自動編碼器的訓練過程中,初始的自動編碼器被賦予隨機的權重,并利用訓練集中的樣本進行權重的更新.其中,用于訓練自動編碼器的訓練集由具有相同分布特征的樣本組成.對于本文所用的對稱自動編碼器,可以在編碼映射和解碼映射2個部分使用鏡像的權重矩陣,因此可以將權重矩陣簡化為W(1)=W,W(2)=WT.

Fig.4 The backward propagation process of the autoencoder圖4 自動編碼器的后向傳播過程示意圖
自動編碼器的訓練依據為所有神經元的激活誤差deltas=[δij]dim(1)×dim(2),而獲得deltas的通用方法為反向傳播算法.為了清晰地展示反向傳播算法的計算過程,提供了一個dim(1)=dim(3)=3,dim(2)=2的單隱藏層自動編碼器,并在圖4中繪制了后向傳播過程.由圖4可知,deltas由隱藏層、輸出層中所有神經元的激勵誤差組成,其計算方式為
(12)
(13)
其中,Wij(i=1,2,…,dim(1);j=1,2,…,dim(2))為權重矩陣W的第i行、第j列元素.由式(12)(13)可知,每一層的誤差均由下一層神經元的激勵誤差反向加權得來,因此該計算過程稱為反向傳播.
本文選擇使用隨機梯度下降算法(stochastic gradient descent, SGD)作為自動編碼器的訓練算法.原始的梯度下降算法(gradient descent, GD)在每次更新權重時需要使用所有訓練樣本計算下降梯度,SGD僅使用單個樣本,相比于GD具有更快的收斂速度.本文提出的設備認證系統需要在通信時為設備提供數據包級別的認證服務,對神經網絡的訓練速度要求達到微秒級,因此選用更為迅速的SGD算法.在利用SGD算法更新權重之前,首先需要利用式(12)(13)計算出deltas,然后利用式(14)更新權重:
(14)
其中,ε為自動編碼器的學習率.式(14)的計算利用了sigmoid函數求導公式:

(15)
本節描述了基于混合特征的無線設備指紋生成方案,包括PAID指紋和CSI指紋的生成方案,并利用理論分析和實驗測試2種方式驗證了PAID指紋和CSI指紋的有效性.
為了獲取待識別無線終端的數據包到達時間間隔,終端需要以恒定速率Qpkts/s發送無線數據包,每個數據包都應當攜帶發送設備的身份信息(如MAC,IP等),便于識別設備篩選.處于監聽模式的識別設備接收到來自該終端的數據包Pi(i為接收數據包的編號)時,記錄下數據包的到達時間ti,并將其添加在數據包到達時間序列PA=(t1,t2,…,ti-1)的末尾.當識別設備接收到L+1個來自該終端的數據包P1,P2,…,PL+1后,利用PA=(t1,t2,…,tL+1)計算數據包到達時間間隔序列PAI=(Δt1,Δt2,…,ΔtL).其中,Δti(i=1,2,…,L)的計算方式為
Δti=ti+1-ti.
(16)
隨后,通過計算PAI的分段密度來獲取其分布特征.PAI的分段密度的計算方法為:將時間區間[tbeg,tend]平均分為SEG個子時間區間([tbeg,tend1],(tend2,tend3],…,(tend(SEG-1),tend]).計算PAI中的時間間隔落在每個子區間中的數量,記為PN=(pn1,pn2,…,pnSEG).令pn為PAI中的時間間隔落在時間區間[tbeg,tend]中的總數,則分段密度計算方法為
(17)
該SEG維序列即為PAID指紋PFP=(h1,h2,…,hSEG).
為了方案描述的統一性,以帶寬為20 MHz、使用64個OFDM子載波進行數據傳輸的無線網絡和具有單收發天線的無線終端進行講解.接收機接收到無線終端發來的數據包后利用信道估計算法獲取CSI(見2.2節),該CSI是一個長度為64的復向量,表示為M=(m1,m2,…,m64).由2.2節可知,用于信道估計的長訓練序列在編號為-32,-31,-30,-29,-28,-27,0,27,28,29,30,31的12個子載波上幅度為0,因此在生成CSI指紋前需將這些值剔除.剔除后獲得長度為52的復向量U=(u1,u2,…,u52),每個值代表了相應子載波的幅度和相位.
CSI的相位信息需要經過特殊處理才能更加穩定,這種處理將會增加認證系統的計算復雜度.相比之下,未經處理的CSI的幅度已經具有較高的穩定性和設備差異(見3.4節).出于降低設備識別方案的數據處理復雜度、提高設備識別時間效率的需求,本文將使用CSI的幅度來生成設備的CSI指紋.將CSI幅度序列表示為ACSI=(a1,a2,…,a52),則ai=|ui|(i=1,2,…,52).

Fig.5 CSI fingerprints before and after normalization圖5 歸一化前后的CSI指紋
圖5(a)展示了從受人員走動干擾的終端采集的10 000個CSI幅度序列ACSI.可以看到,由于存在環境干擾,該終端的CSI幅度在測量時間內存在較為明顯的變化:ACSI發生整體上下偏移.但是盡管如此,所有的ACSI仍然具有相近的形狀.為了削弱幅度變化對指紋識別性能帶來的負面影響,需要提取ACSI的形狀信息.該形狀信息通過將每個CSI幅度序列進行最大-最小值歸一化來獲取.對于ACSI,令amax=max{a1,a2,…,a52},amin=min{a1,a2,…,a52},則最大-最小值歸一化方法為
(18)
歸一化后的CSI幅度序列即為CSI指紋CFP=(c1,c2,…,c52).圖5(b)展示了圖5(a)中的CSI幅度序列歸一化后得到的CSI指紋,可以看出,CSI指紋僅保留了CSI幅度序列的形狀信息,相比于未經處理的CSI幅度序列具有更小的離散度.
本節將分析PAID指紋的有效性,即PAID指紋確實能夠標識設備的硬件特征,并用于設備身份識別.
設備利用無線網卡發送數據包是一個復雜的過程.當網絡層構建好一個數據包后,CPU在主存儲器(dynamic random access memory,DRAM)中創建緩沖區描述符,該描述符包含數據包在存儲器中的存儲地址以及數據的長度(當數據包存儲在多個不連續的虛擬內存塊時,CPU需要創建多個緩沖區描述符).然后,CPU將新建的緩沖區描述符信息通過外部數據總線、北橋芯片、PCI總線寫入網絡接口卡(network interface card, NIC)的內存映射寄存器.NIC檢測到新數據包到來后,啟動若干個直接內存訪問(direct memory access, DMA)檢索描述符并讀取數據包,這些數據仍然通過外部數據總線、北橋芯片、PCI總線傳輸.最終,NIC通過MAC單元發送數據包.
由上述過程可以看出,數據包的發送主要依賴于CPU、DRAM、L1/L2 Cache、外部數據總線、北橋芯片、PCI總線、NIC、DMA控制器、MAC單元.進一步地,這些硬件是影響利用無線網卡發送數據包所需時間的主要因素,而該時間正是數據包的傳輸時延(見2.1節).不同型號的設備將使用不同的硬件,因此傳輸時延能夠用來反映不同型號的設備之間的差異.此外,即使是型號相同的設備,硬件的電氣特性也會因為生產誤差而不同,這會導致不同的設備具有不同的時鐘偏移,因此數據包的傳輸時延也能夠用來反映相同型號的設備之間的差異.由2.1節的討論可知,數據包到達時間間隔主要由收發設備的數據包傳輸時延組成,因此數據包達到時間間隔也能夠反映設備硬件的差異.
重要的是,由于操作系統調度算法和無線信道退避算法的隨機性,單個數據包達到時間間隔也具有隨機性.可以將數據包到達時間間隔看作服從某種分布的隨機數,雖然單個數值受軟件影響具有隨機性,但是整體分布特征由設備硬件特征決定.因此,可以利用大量數據包時間間隔的分布特征來生成PAID指紋.分布特征通常包含差異性特征(如極差、標準偏差和方差)、規律性特征(如算術平均值、中位數、眾數)和概率密度.前兩者從單一維度描述分布特征,概率密度則能夠完全描述分布情況.因此,分段密度作為一種概率密度的粗粒度近似計算方式,能夠很好地反映數據包到達時間間隔的分布特征,進而標識設備的硬件特征.
以上通過理論分析證明了基于數據包時間間隔分布的PAID指紋的有效性,下面從2個方面結合實際測試結果來證實PAID指紋的有效性.
1) 基于數據包時間間隔分布的指紋能夠標識設備的硬件:為了證實這一點,從2類測試設備集提取了PAID指紋.第1類設備集包含4臺不同型號的設備,第2類設備集則包含3臺同型號的設備.為了更清晰地看出設備間指紋的差異,用折線圖來繪制指紋.圖6(a)展示了第1類設備集的PAID指紋,并標有每個指紋對應的設備型號.可以看出,除了設備2的數據包達到時間間隔集中分布在9.65 ms左右外,其余3臺設備均集中分布在10 ms左右,這表明規律性特征無法反映設備硬件差異;此外,設備2與設備3的數據包時間間隔樣本都較為離散,因此差異性特征無法反映設備硬件差異.對比之下,用分段密度表示的粗粒度概率密度則能夠很好地反映此差異.圖6(b)展示了第2類設備集的PAID指紋,可以看出,雖然該組設備集的PAID指紋差異較小,但是仍具有不同的分布趨勢,借助機器學習算法可以感知同型號設備之間的差異并進行有效的身份識別.

Fig.6 PAID fingerprints for different devices圖6 不同設備的PAID指紋
2) 基于數據包時間間隔分布的指紋與設備所處的物理環境無關:為了證實這一點,利用圖6(a)所示的4臺設備進行了測試.測試時,每臺設備被分別放置在4個不同的位置,圖7顯示了4臺設備在4個不同位置上的PAID指紋.可以看出,即使設備的位置發生了改變,設備的PAID指紋依舊相似,而不同的設備之間則具有很大的差異.這表明PAID指紋與設備所處的物理環境無關.
本節將分析CSI指紋的有效性,即CSI指紋確實能夠標識設備的無線信道特征,并用于設備身份識別.
在無線設備工作時,設備的物理位置決定了無線信道的多徑環境.這意味著,處于不同物理位置的設備將具有不同的多徑環境.如2.2節所示,CSI反映了通過多條無線路徑傳輸的無線信號后在接收機端疊加后的整體幅度衰減和相位偏移,所以CSI刻畫了無線信道的多徑效應.當接收機被放置在固定位置時,每個發射機與接收機之間的無線信道都是獨特且相對穩定的,因此能夠通過匹配CSI的方式來驗證發射機的身份.

Fig.8 CSI amplitude waveforms of different devices圖8 不同設備的CSI幅度波形
上一段通過理論分析證明了CSI指紋的有效性,下面從2個方面結合實際測試結果來證實CSI指紋的有效性.
1) CSI指紋能夠標識設備的無線信道,進而能夠用于設備身份識別:圖8展示了4臺放置在室內不同位置的無線終端的CSI幅度曲線,每張子圖均包含1 000個CSI樣本.由于測試場地面積較小,因此在采集CSI的過程中,終端的兩兩距離最小僅有0.5 m左右.可以看到,即使終端間的距離較小,4臺終端的CSI幅度曲線仍然具有肉眼可見的形狀差異.這種差異存在的根本原因為不同的終端使用不同的無線信道來傳輸數據,而且即使終端位置相鄰,其無線信道仍然具有很大的差異,這些差異體現在CSI幅度曲線中,因此CSI指紋能夠作為設備的信道標識,進而實現設備身份識別.

Fig.9 CSI amplitude waveforms under different interference圖9 不同干擾條件下的CSI幅度波形
2) 處于干擾環境中的固定無線設備的CSI指紋具有穩定性:在與圖8相同的CSI采集場景中,無線終端和監聽設備被放置在固定的位置,在3種干擾條件下進行了時長1 min的CSI采集,并繪制了CSI幅度曲線,如圖9所示.3種干擾分別為人員在距終端1 m,2 m,3 m遠的位置為中心來回走動(不經過無線終端與監聽設備的視距路徑),CSI測量結果分別如圖9(a)~(c)所示.由圖9可知,當無線終端受到最大程度的干擾(第1種干擾條件)時,在不同時間測得的CSI幅度曲線依然保持近似的形狀,只是所有子載波的幅度統一地增大或減小,這種差異可以通過指紋提取時的歸一化來削弱.
本節主要介紹基于混合特征指紋的無線設備識別方案,包括識別方案的基本設計思想、設備識別方案的整體流程.
本文的無線設備識別方案主要包括2個階段的設備身份識別:
1) 無線終端接入時的設備識別.該階段發生在處于離線狀態的無線終端發出請求接入的數據報文、識別設備接收到該報文時,此時識別設備需要獲取該無線終端的設備身份信息并進行身份識別,若身份識別為合法則允許該終端接入網絡.
2) 無線終端通信時的設備識別.該階段發生在無線終端成功接入無線網絡后、開始不斷地發送數據包時,此時識別設備從每一個來自該終端的數據包中提取身份信息并進行身份識別,若身份識別合法則判定該數據包確實來自合法終端并接受之,否則判定該數據包來自非法的終端并丟棄之.
總而言之,本文的設備識別方案包括接入時和通信時的指紋獲取與身份識別.第3節討論了PAID指紋和CSI指紋,這2種指紋具有2個重要的區別:
1) CSI指紋反映了設備的無線信道特征,PAID指紋則反映了設備的硬件特征.CSI指紋標記了無線終端的無線信道,因此即使是同一臺終端,當該終端所處的環境改變時,其CSI指紋也會發生變化;與此不同的是,PAID指紋標記了設備的硬件特性,無論設備所處的環境如何變化,PAID指紋都將保持穩定.
2) CSI指紋可以從單個數據包中提取,PAID指紋則需要從大量數據包中提取.首先,由2.2節可知,每個PPDU幀都包含一個完整的CSI,而單個數據包通常由一個或多個PPDU幀傳輸,因此CSI指紋可以從單個數據包中提取;相比之下,PAID是大量數據包的到達時間間隔的分段密度,因此為了獲取PAID指紋,必須接收來自指定無線終端的大量數據包.
當長期處于離線狀態的無線終端重新請求接入無線網絡時,其位置往往已經改變.此時,識別設備提前采集的用于指紋匹配的CSI指紋已經不能反映當前的信道狀態.因此,接入時的設備身份識別應使用與外界因素無關的PAID指紋而非CSI指紋.在采集PAID指紋的過程中,需要接收來自待識別終端的大量數據包,如果接入時設備識別成功,則從這些數據包中提取的CSI指紋可以被用于通信時設備識別的指紋匹配,因為這些CSI指紋反映了最新的信道狀態.若不利用PAID指紋進行接入時設備識別,而是直接重新采集終端的CSI指紋再進行接入時設備識別,則無法確定該無線終端是否偽造了身份.因為如果非法終端利用偽造的合法身份請求接入,識別設備就會采集到來自非法終端的指紋,識別設備并沒有判斷新采集的CSI指紋是否來自合法終端的能力.當采用了PAID指紋時,若PAID指紋匹配成功,則表明這些數據包來自合法終端.
當無線終端成功接入并開始通信時,應采用CSI指紋而非PAID指紋.因為CSI可以從單個數據包中提取,因此相比于PAID指紋,CSI指紋可以用于在終端通信時實現實時的逐包設備識別,并及時發現非法終端發來的偽造數據包,進而過濾攜帶虛假身份的數據.

Fig.10 Flow chart of the device identification scheme圖10 設備身份識別方案的總流程圖
本文使用指紋匹配網絡來分別進行接入時和通信時的指紋匹配和設備識別,分為PAID指紋匹配網絡和CSI指紋匹配網絡.設備識別時,首先將指紋輸入匹配網絡,再將輸出的匹配結果和閾值進行比較來判定識別是否成功.PAID/CSI指紋匹配網絡具有相同的基本結構,其主要組成單元為自動編碼器,在進行指紋匹配之前需要提前采集大量的PAID/CSI指紋來訓練匹配網絡.
設備身份識別方案的總流程見圖10.可以看到,設備識別流程主要分為3個步驟:
1) 接入時的設備識別.當接收到無線終端D發來的接入請求后,開始執行接入時設備識別,主要包括PAID指紋提取、CSI指紋提取與PAID指紋匹配;獲取指紋匹配結果后,將其與設定的閾值進行比較,并獲得識別結果;若識別成功,利用新獲得的CSI指紋更新CSI指紋匹配網絡,否則拒絕終端D的接入請求并結束本次識別工作.
2) 更新CSI指紋匹配網絡.接入時設備識別成功,說明新采集的CSI指紋攜帶的身份信息是真實的,因此以這些指紋為訓練集重新訓練CSI指紋匹配網絡.重新訓練的CSI指紋匹配網絡能夠反映終端D的最新無線信道狀態,因此可以用于后續的實時設備識別.
3) 通信時的實時設備識別.當CSI指紋匹配網絡訓練結束后,對終端D發來的數據包進行實時的設備識別.也就是,從每個數據包中提取CSI指紋并進行CSI指紋匹配,若匹配結果超過預設的閾值,則數據包的身份識別成功,否則身份識別失敗,將該數據包丟棄.

Fig.11 Training flowchart of PAID fingerprint matching network圖11 PAID指紋匹配網絡的訓練流程圖

Fig.12 PAID fingerprint matching network structure圖12 PAID指紋匹配網絡結構
此外,圖11給出了PAID指紋匹配網絡的訓練流程,該流程需要在開始識別無線終端之前完成,可以視作設備識別的準備工作.下文將按照順序詳細介紹各步驟的流程.
圖12顯示了PAID指紋匹配網絡的基本結構.由圖12可知,PAID指紋匹配網絡由匹配層和輸出層組成.其中,匹配層由I個自動編碼器并聯組成,輸出層則有一個線性變換器構成.假設匹配層的每個自動編碼器的輸入維度均為Dim,壓縮率均為ρ,則自動編碼器隱藏層的維度為ρDim.線性變換器的輸入I個自動編碼器的重建誤差RMSE,其將所有自動編碼器的I個重建誤差進行線性變換得到最終匹配結果γ,變換方法為
γ=ε0+ε1RMSE1+…+εIRMSEI.
(19)
在進行設備識別之前,需要提前采集無線終端的PAID指紋并訓練PAID指紋匹配網絡.圖11給出了PAID指紋匹配網絡的訓練流程,具體描述為:
1) 令PAID指紋計數器p=0,該計數器用于記錄當前已采集的PAID指紋數量.令目標指紋數量為PacketNum,當已采集的PAID指紋數量達到PacketNum后停止采集.
2) 初始化PAID指紋計數器后,識別設備進入監聽狀態,捕獲來自無線終端D的連續L+1個數據包,記作(MP1,MP2,…,MPL+1).這些數據包被按照到達的時間排序,因此MPi+1的到達時間一定大于等于MPi的到達時間,其中i=1,2,…,L.
3) 識別設備在接收數據包MPi(i=1,2,…,L)時,記錄下其到達時間ti.當接收到L+1個數據包后,識別設備獲取無線終端D的數據包到達時間序列(t1,t2,…,tL+1).然后,利用3.1節提供的PAID指紋生成方法計算數據包到達時間間隔(Δt1,Δt2,…,ΔtL).
4) 根據3.1節給出的分段密度計算方法計算(Δt1,Δt2,…,ΔtL)的分段密度,生成PAID指紋PFPp=(h1,h2,…,hSEG).以PFPp為訓練樣本,對PAID指紋匹配網絡進行單次訓練.
5) PAID指紋匹配網絡的單次訓練完成后,判斷已采集的PAID指紋數量是否達標(達標即p≥PacketNum).若p≥PacketNum,結束PAID指紋匹配網絡的訓練;若p 圖13為PAID指紋匹配網絡的單次訓練過程示意圖.如圖13所示,PAID指紋匹配網絡需要訓練的部分為匹配層的I個自動編碼器,輸出層的線性變換器通常選用固定的參數,因此無需訓練或進行數值更改. Fig.13 Training process of PAID fingerprint matching network圖13 PAID指紋匹配網絡的訓練過程示意圖 圖13中所示的訓練過程主要包括2個方面. 2) 匹配層自動編碼器的訓練.令θ表示匹配層中所有自動編碼器的集合,θi(i=1,2,…,I)表示匹配層中的第i個自動編碼器,則訓練過程為:將PFPi輸入θi(i=1,2,…,I)并進行前向傳播,獲得所有神經元的激活Ai和輸出yi;利用后向傳播算法計算所有神經元的激活誤差deltai;結合Ai和deltai,利用隨機梯度下降算法更新θi.以上所使用的前向傳播算法、后向傳播算法和隨機梯度下降算法如2.3節所示. PAID指紋匹配網絡的單次訓練算法描述為: (20) 5) 利用神經元的激活Ai和激活誤差deltasi訓練θi. 圖14的前3個主要步驟描述了PAID指紋提取的流程.當識別設備接收到來自無線終端D的接入請求后,需要獲得終端D的PAID指紋,以進行接入時的設備識別.為了獲取終端D的PAID指紋,識別設備進入監聽狀態,捕獲來自無線終端D的連續L+1個數據包,記作(P1,P2,…,PL+1).這些數據包按照到達的時間排序,因此Pi+1的到達時間一定大于等于Pi的到達時間,其中i=1,2,…,L. 識別設備在接收數據包Pi(i=1,2,…,L)時,記錄下其到達時間ti.當接收到L+1個數據包后,識別設備獲取無線終端D的數據包到達時間序列(t1,t2,…,tL+1).然后,利用3.1節提供的PAID指紋生成方法計算數據包到達時間間隔(Δt1,Δt2,…,ΔtL). 根據3.1節給出的分段密度計算方法計算(Δt1,Δt2,…,ΔtL)的分段密度,生成PAID指紋PFP=(h1,h2,…,hSEG). Fig.14 Flow chart of PAID fingerprint based device authentication in access phase圖14 基于PAID指紋的接入時設備識別流程圖 圖14的后2個主要步驟描述了PAID指紋匹配的流程.獲取無線終端D的PAID指紋PFP后,識別設備利用提前訓練好的PAID指紋匹配網絡來匹配PFP,并根據匹配結果來判斷接入時識別成功與否.首先,識別設備將PFP輸入PAID指紋匹配網絡.匹配網絡輸出匹配結果γ0,識別設備將γ0與預設的閾值thresholdac進行比較來判斷識別是否成功:若γ0≤thresholdac則識別成功,即判斷無線終端D使用了真實的身份信息;若γ0>thresholdac則識別失敗,即判斷無線終端D使用了虛假的身份信息. PAID指紋匹配算法描述如下: 1) 定義一個I維向量v,并初始化為0.向量v為線性變換器的輸入,其內部存儲匹配層的I個自動編碼器的匹配輸出. (21) (22) 6) 所有自動編碼器的前向傳播完成后,將v輸入線性變換模塊,得到最終匹配結果γ0: γ0=ε0+ε1RMSE1+…+εIRMSEI. (23) CSI指紋匹配網絡具有與圖11所示的PAID指紋匹配網絡相同的基本結構,由匹配層和輸出層組成.其中,匹配層由J個自動編碼器并聯組成,輸出層則有一個線性變換器構成.其中,每個自動編碼器的壓縮率均為ρ.線性變換器的輸入為J個自動編碼器的重建誤差RMSE,其將所有自動編碼器的J個重建誤差進行線性變換得到最終匹配結果γ,變換方法為 γ=ε0+ε1RMSE1+…+εJRMSEJ. (24) CSI指紋匹配網絡的訓練過程與PAID指紋匹配網絡近似,最大的區別在于:CSI指紋在生成時已經歸一化,因此輸入匹配網絡之前無需再次歸一化. 在進行通信時的實時設備識別之前,需要訓練CSI指紋匹配網絡,以獲取無線終端最新的無線信道狀態.圖15給出了CSI指紋匹配網絡的訓練流程,具體描述為: 1) 從在接入時獲取的L+1個數據包 (P1,P2,…,PL+1)中提取出L+1個CSI指紋(CFP1,CFP2,…,CFPL+1),指紋提取方法見第3.2節; 4) 將訓練好的CSI指紋匹配網絡存儲在本地,用于通信時的實時設備識別. Fig.15 Training flowchart of CSI fingerprint matching network圖15 CSI指紋匹配網絡的訓練流程圖 CSI指紋的降噪處理包括2個步驟,分別為異常值剔除和時域平滑. 異常值剔除的步驟為:在短時間間隔內,CSI指紋中的每個子載波對應的數值應在有限的范圍內浮動.但是在現實中往往由于存在軟硬件缺陷等原因而出現遠超預期數值波動范圍的數值.這種數值無法反映設備的無線信道特征,保留下來會降低CSI指紋的設備識別性能.因此需要將這些異常值剔除. (25) 其中,erfinv為逆誤差函數. (26) 其中,η為判斷數值是否為異常值的閾值權重. (27) 其中,ω為平滑濾波窗口的長度. CSI指紋匹配網絡的訓練算法描述為: 3) 將CFPj和yj輸入?j并進行后向傳播,獲得激活誤差deltasj; 4) 結合2.3節的隨機梯度下降算法,利用神經元的激活Aj和激活誤差deltasj訓練?j. 圖16的第1個主要步驟為CSI指紋提取.當無線終端D通過接入時的設備識別后,終端D成功接入無線網絡,并開始不斷地發送數據包,識別設備則利用CSI指紋來識別每個數據包攜帶的身份信息是否真實. 識別設備首先令數據包計數器n=1.數據包計數器用于記錄從通信時的實時識別開始到目前為止當前已經識別的數據包的數量.然后,等待無線終端D發來新的數據包DPn.在終端D沒有發送新的數據包時,識別設備將處于阻塞狀態;當接收到終端D發來新的數據包DPn后,識別設備結束阻塞狀態,并針對該包進行身份識別. Fig.16 Flow chart of real-time CSI fingerprint based device authentication in communication phase圖16 基于CSI指紋的通信時實時設備識別流程圖 獲取新數據包DPn的CSI后,生成CSI指紋CFPn,具體的CSI指紋生成方法如3.2節所述:首先,從所有子載波中篩選出可用子載波,得到CSI′;然后提取CSI′的幅度,得到CSI幅度序列ACSI;利用最大-最小歸一化法對ACSI進行歸一化,得到CSI指紋CFPn. 圖16的帶背景顏色的框為CSI指紋匹配的3個主要步驟.獲取數據包DPn的CSI指紋CFPn后,將其輸入CSI指紋匹配網絡進行身份識別.將匹配網絡的輸出γn與閾值thresholdas比較來獲得識別結果:若γn≤thresholdas則數據包DPn的身份識別成功,接受該數據包;否則識別失敗,判定DPn攜帶了虛假的設備身份并丟棄該數據包. CSI指紋匹配算法描述為: 1) 定義一個J維向量v,并初始化為0.向量v為線性變換器的輸入,其內部存儲匹配層的J個自動編碼器的匹配輸出. (28) 5) 所有自動編碼器的前向傳播完成后,將v輸入線性變換模塊,得到最終匹配結果γn: γn=ε0+ε1RMSE1+ε2RMSE2+…+ (29) 圖16的最后一個主要步驟為更新CSI指紋匹配網絡.在無線終端通信過程中,即使終端位置沒有發生改變,終端所處環境的細微變化的疊加會體現在終端的CSI指紋上,表現為在一段時間內(如10 min)采集的CSI指紋發生“連續”的變化,該“連續”是指相鄰的CSI指紋之間的差異很小.這種變化雖然在短期內不會使CSI指紋產生較大的改變,但是設備識別通常是一項長期的工作,因此在接入時設備識別過程中重新訓練的CSI指紋匹配網絡很可能再次失效(即無法反映最新的信道狀態,進而使得合法設備識別失敗). 利用從新數據包中獲取的CSI指紋不斷地訓練CSI指紋匹配網絡可以使匹配網絡始終反映最新的信道狀態.在實際通信過程中,每秒發送的數據包通常為數百個,因此當無線終端活躍時,每秒都可以獲取足夠的CSI指紋,用于更新CSI指紋匹配網絡.重要的是,僅使用識別成功的CSI指紋來更新匹配網絡,因為識別失敗的CSI指紋被判定為來自攜帶虛假身份信息的非法終端.更新CSI指紋匹配網絡的算法與4.4節中給出的單次訓練算法一致. 本節主要分析PAID指紋匹配網絡和CSI指紋匹配網絡的時間復雜度.分析時間復雜度時將會使用的變量有:SEG和N分別表示PAID指紋和CSI指紋的長度,I和J分別表示PAID指紋和CSI指紋的分段數量(即匹配層中的自動編碼器的數量),則SEG/I和N/J分別表示PAID指紋和CSI指紋匹配網絡的自動編碼器的輸入維度.此外,ρ表示自動編碼器的壓縮率,則硬件和CSI指紋匹配網絡中自動編碼器隱藏層的神經元數量分別為ρSEG/I和ρN/J. 對于單個自動編碼器,假設其輸入維度為u,中間層的降維比例為ρ.在前向傳播過程中,中間層的激活需要u×ρu=ρu2次計算,輸出層的激活同樣需要ρu2次計算.因此,單個自動編碼器的前向傳播復雜度為O(ρu2)=O(u2).此外,自動編碼器的后向傳播與前向傳播具有相同的復雜度,因此后向傳播復雜度也為O(u2). 假設匹配層的所有自動編碼器均為串行運算,則利用PAID指紋匹配網絡進行一次指紋匹配的復雜度為O(I×(SEG/I)2+SEG)=O(SEG2/I).令I=SEG/β,β為子PAID指紋的長度.如果對匹配層中自動編碼器的規模進行限制(限制在6或6以下),則β可以被視為常量.則復雜度表達為O(SEG2/I)=O(SEG2/(SEG/β))=O(βSEG)=O(SEG). 同樣地,利用CSI指紋匹配網絡進行一次指紋匹配的復雜度為O(J×(N/J)2+N)=O(N2/J).令J=N/α,α為子CSI指紋的長度.如果對匹配層中自動編碼器的規模進行限制(限制在6或6以下),則α可以被視為常量.則復雜度表示為O(N2/J)=O(N2/(N/α))=O(αN)=O(N). 當不采用多個自動編碼器組成的網絡,而采用單個大規模自動編碼器進行指紋匹配時,PAID指紋匹配網絡和CSI指紋匹配網絡將分別由輸入維度為SEG和N的自動編碼器構成,根據上文所推導的自動編碼器的時間復雜度可知,此時PAID指紋匹配網絡和CSI指紋匹配網絡的識別時間復雜度為O(SEG2)和O(N2).由此可見,如果將單個自動編碼器的輸入維度控制在固定值以下,那么本文提供的指紋匹配網絡能夠將平方時間復雜度降低到線性時間復雜度. 本節講述了基于混合特征指紋的設備識別框架的實現與評估.首先整體描述了基于混合特征值的識別框架,然后描述了識別框架中的各個部分的具體實現方法,接著給出了實際測試的場景設置、評估指標以及2個設備識別階段下的設備識別結果. 圖17展示了設備識別框架.從組成來看,該框架可分為3個部分,分別為:指紋匹配網絡、接入時設備識別和通信時實時設備識別.其中,接入時設備識別部分模擬了無線終端接入時的設備識別過程,通信時實時設備識別則模擬了終端成功接入后、開始通信時實時的逐包識別過程. Fig.17 Wireless device identification framework based on hybrid feature fingerprint圖17 基于混合特征指紋的無線設備識別框架 從功能來看,該框架可分為3個層次:指紋采集層、設備識別層和CSI指紋匹配網絡訓練層. 指紋采集層包括: 1) 接入時PAID指紋采集模塊,負責在無線終端請求接入時采集PAID指紋; 2) 通信時CSI指紋采集模塊,負責在無線終端通信時,從終端發來的每一個數據包中提取CSI指紋. 設備識別層包括: 1) 接入時設備識別模塊,負責利用無線終端的PAID指紋來識別其身份; 2) 通信時設備識別模塊,負責利用數據包的CSI指紋來識別其身份,進而判斷數據包是否攜帶真實的身份信息. CSI指紋匹配網絡訓練層包括: 1) CSI指紋匹配網絡訓練模塊,負責利用接入時采集的新CSI指紋來訓練網絡; 2) CSI指紋匹配網絡更新模塊,負責利用識別成功的CSI指紋單次訓練網絡. 為了更清晰地描述整個設備識別框架,給出一臺無線終端的完整識別流程:識別設備接收到來自終端的接入請求時,接入時PAID指紋采集模塊采集該終端的PAID指紋;獲得PAID指紋后,接入時設備識別模塊讀取該終端的PAID指紋匹配網絡并進行指紋匹配,根據匹配結果得到識別結果;若識別成功,CSI指紋匹配網絡訓練模塊利用接入時PAID指紋采集模塊中獲得的數據包生成CSI指紋集,將其作為訓練集來訓練CSI指紋匹配網絡,訓練后的網絡覆蓋原網絡;通信時CSI指紋采集模塊等待終端發來的數據包,捕獲到新數據包后,從中提取CSI指紋;通信時設備識別模塊讀取該終端的CSI指紋匹配網絡并進行指紋匹配,匹配成功則接受該數據包,否則丟棄;若數據包識別成功,CSI指紋匹配網絡更新模塊利用該CSI指紋單次訓練CSI指紋匹配網絡. 為了更方便地描述指紋匹配網絡以及3個層次的實現方式,假設設備識別框架的應用場景為帶寬為20 MHz、使用64個OFDM子載波的無線網絡,識別設備和無線終端均具有單收發天線. 指紋匹配網絡是無線設備識別框架的核心,它包含PAID指紋匹配網絡和CSI指紋匹配網絡,負責在2個設備識別階段(接入時設備識別、通信時逐包設備識別)提供用于指紋匹配的匹配網絡. 其具體實現方式為:對于每個需要使用無線網絡的合法無線終端,識別設備在內部新建一個PAID指紋匹配網絡文件和一個CSI指紋匹配網絡文件,文件用JSON格式保存用于描述指紋匹配網絡的參數.通過讀取和寫入文件中的相應參數來實現匹配網絡的讀取和更改. 下面將討論指紋匹配網絡的參數.回顧第4節可知,PAID指紋匹配網絡和CSI指紋匹配網絡均由自動編碼器和線性變換器組成.本文所使用的線性變換器選用均值變換器,即對于PAID指紋匹配網絡有ε1=ε2=…=εI=1/I,ε0=0;對于CSI指紋匹配網絡有ε1=ε2=…=εJ=1/J,ε0=0.以上參數均為固定值,因此無需存儲在文件中.此外,本文將PAID/CSI指紋匹配網絡中所有自動編碼器的學習率設為0.05,壓縮率ρ設為0.75,激活函數設為sigmoid函數,匹配層自動編碼器的個數I和J均設為固定值,這些參數均無需存儲.因此,需要存儲在文件中的參數僅為:PAID指紋匹配網絡的匹配層中所有自動編碼器的參數θ={θ1,θ2,…,θI},以及CSI指紋匹配網絡的匹配層中所有自動編碼器的參數?=(?1,?2,…,?J). 指紋采集層主要負責接入時和通信時的指紋采集,包括接入時PAID指紋采集模塊、通信時CSI指紋采集模塊.這2個模塊分別負責接入時識別和通信時逐包識別的指紋采集. 1) 接入時PAID指紋采集模塊的實現:首先定義一個空的數據包到達序列PA,然后令該終端以100 pkts/s的發送速度連續發出L+1個數據包(P1,P2,…,PL+1).每接收到一個數據包Pi,模塊提取其到達時間和CSI序列,分別記作ti和Ci,將ti添加到PA的末尾,將Ci放入CSI隊列,以備后續使用.捕獲完成后,按照3.1節給出的PAID指紋生成方案,利用PA生成PAID指紋PFP,并放入PAID指紋隊列,以備后續使用.其中,在接入時讓終端以指定速度連續發送數據包需要修改現有的協議,本文為了簡化設計,選擇利用ICMP協議來模擬這一過程:識別設備以100 pkts/s的速度向終端發送ICMP回送請求(echo request)數據包,并捕獲終端卡來的ICMP回送響應(echo reply)數據包. 設備識別層主要負責接入時和通信時的設備識別,包括接入時設備識別模塊、通信時設備識別模塊.這2個模塊分別負責接入時和通信時的指紋匹配,并根據匹配結果來獲得識別結果. 1) 接入時設備識別模塊的實現.開始工作后,首先進入阻塞等待狀態,等待PAID指紋隊列非空;PAID指紋隊列出現新指紋后等待結束,從隊列中取出PAID指紋PFP;讀取PAID指紋匹配網絡參數,并新建一個匹配網絡;將PFP輸入網絡,獲得匹配結果γ0;比較γ0與thresholdac,若γ0>thresholdac則識別失敗并向所有模塊發出終止信號,否則識別成功并向CSI指紋匹配網絡訓練模塊發出識別成功信號. 2) 通信時設備識別模塊的實現.開始工作后,首先進入阻塞等待狀態,CSI指紋匹配網絡訓練模塊發來訓練完成信號;接收到信號后,讀取CSI指紋匹配網絡參數,并新建一個匹配網絡;阻塞等待CSI指紋隊列非空;CSI指紋隊列出現新指紋后等待結束,從隊列中取出CSI指紋CFPn;將CFPn輸入網絡,獲得匹配結果γn;比較γn與thresholdas,若γn>thresholdas則識別失敗并向所有模塊發出終止信號,否則識別成功并將CFPn放入訓練隊列;進入阻塞等待狀態,繼續等待CSI指紋隊列非空. CSI指紋匹配網絡更新層主要負責接入時和通信時的CSI指紋匹配網絡訓練,包括CSI指紋匹配網絡訓練模塊、CSI指紋匹配網絡更新模塊.這2個模塊分別負責接入時和通信時的網絡訓練以及更新. 2) CSI指紋匹配網絡更新模塊的實現.開始工作后,首先進入阻塞等待狀態,等待訓練隊列非空;訓練隊列出現新指紋后等待結束,從隊列中取出用于更新的CSI指紋CFP;用CFP單次訓練通信時識別模塊的CSI指紋匹配網絡. 需要注意的是,該模塊與通信時設備識別模塊共用一個CSI指紋匹配網絡.若兩模塊不共用網絡,那么當該模塊更新網絡后,需要將新的參數寫入文件,然后通信時設備識別模塊需要讀取文件并重新建立匹配網絡.前者避免了頻繁的文件讀寫,提高了識別的時間效率. 本節所提供的無線設備身份識別框架包含接入時識別和通信時逐包識別這2個工作階段,2個階段使用不同類型的指紋、不同的指紋采集和處理方案以及不同的指紋匹配方案.為了評估每種指紋識別方案的性能,本節先后測試了基于PAID指紋的接入時設備識別和基于CSI指紋的逐包設備識別. 在接入時設備識別測試中,選取了18臺無線設備作為被識別的對象,設備信息如表1所示.其中包含3臺型號相同的路由器、3臺型號相同的樹莓派以及3臺型號相同的臺式電腦,這3組設備用于評估接入時設備識別方案識別相同型號的設備性能.其余還包括手機、平板電腦以及筆記本電腦,用于測試該識別方案能否用于多種設備類型.此外,用1臺樹莓派(Raspberry Pi 3 Model B+)作為識別設備,負責采集待測無線終端的PAID指紋.該設備通過安裝hostapd服務和dhcp服務實現無線網絡共享,進而作為無線路由器與無線終端直接相連,方便采集指紋的同時消除了數據包轉發時延對PAID指紋帶來的干擾. Table 1 The Information of the Devices Used for Evaluation in Access Stage 接入時設備識別測試流程為:識別設備R開啟無線網絡共享,待測終端D接入R的共享網絡,此時R為D的網關;R以100 pkts/s的速度向D發送ICMP回送請求包,并監聽D的ICMP回送響應包,記錄響應包到達時間;每采集到L+1個到達時間,生成PAID指紋并寫本地文件;采集8 000個PAID指紋后停止;新建1個PAID指紋匹配網絡,讀取本地文件中的指紋,以前1 000個PAID指紋為訓練集訓練匹配網絡,以后7 000個指紋為測試集測試PAID指紋識別的準確率.對所有待測設備重復以上步驟. 在通信時逐包設備測試中,選取2個測試場景進行CSI指紋采集和設備識別,分別為公寓測試場景和實驗室測試場景.2個測試場景均使用帶寬為20 MHz的WiFi網絡,并且均用一臺固定放置的樹莓派(Raspberry Pi 3 Model B+)作為識別設備,負責采集待測無線終端的CSI指紋.該樹莓派安裝了Gringoli等人[26]提供的插件,該插件通過修改WiFi網卡驅動程序來監聽指定MAC地址的無線數據包,并將該數據包的CSI發送到應用層.公寓測試場景中,將4臺無線終端作為待測設備放置在4個不同的位置,其中3臺放置在無物體移動、無人員走動的室內,1臺放置在無人員走動、但是離識別設備較遠且有墻壁相隔的走廊.在實驗室測試場景中,將1臺無線終端作為待測設備放置在固定的位置,人員在距其1 m,2 m,3 m位置處來回走動. 通信時逐包設備識別測試流程為:在公寓測試場景中,識別設備創建4個空文件,分別用于存儲4臺無線終端的CSI;4臺終端同時以100 pkts/s的速率對任意IP發送ICMP回送請求包;識別設備捕獲數據包,同時獲取數據包的MAC地址和CSI,根據MAC地址將CSI存入相應的文件;每臺設備均采集10 000組CSI,采集完成后停止;對于每臺設備,對前L+1個指紋進行降噪,降噪后的指紋作為訓練集;剩余的指紋作為測試集. 為了評估身份驗證框架的性能,使用真正例率TPR和真反例率TNR作為兩階段的設備識別準確率的評估指標.其中,TPR=TP/(TP+FN):TP是真正例的數量,在本文中即某終端的所有指紋中識別成功的指紋數量;FN是假反例的數量,即某終端的所有指紋中識別失敗的指紋數量.TNR=TN/(TN+FP):TN是真反例的數量,即所有不屬于某終端的指紋中識別失敗的指紋數量;FP是假正例的數量,即所有不屬于某終端的指紋中識別成功的指紋數量.TPR被用來評估指紋標識設備身份的能力,TNR則被用來評估設備識別框架檢測攜帶虛假身份信息的設備的能力. 為了清晰地描述測試指標的計算方法,以接入時設備識別中設備1、設備2和設備3的PAID指紋構成的測試集為例.當測試設備1的TPR時,先用設備1的前10 00個PAID指紋訓練PAID指紋匹配網絡,然后利用該網絡識別剩余7 000個PAID指紋,此時TP+FN=7 000,TP為識別成功的PAID指紋的數量.當測試設備1的TNR時,首先用設備1的前1 000個PAID指紋訓練PAID指紋匹配網絡,然后利用該網絡識別設備2和設備3的16 000個PAID指紋,此時TN+FP=16 000,TN為識別失敗的指紋的數量. 由3.1節的PAID指紋生成方案可知,影響指紋生成的變量有數據包到達時間間隔序列PAI的長度L,以及PAID指紋長度SEG.L越大,則用于提取PAID指紋的數據包(P1,P2,…,PL+1)就越多,因此采集PAID指紋所需的時間就越長,進而增加接入時設備識別的用時.但是,L越小則數據包就越少,數據包到達時間的統計特征可能會淹沒在退避算法和操作系統調度帶來的隨機性當中,因此需要選擇合適的L來生成PAID指紋.為此,在SEG=20時利用不同的L開展了識別準確率測試,測試數據集為設備10、設備11和設備12的PAID指紋,TPR,TNR分別為3臺設備的TPR,TNR的平均值.測試結果如圖18所示.可以看出,L不同時TNR>0.99,TPR僅在0.01的范圍內變化:當L≤1 400時,TPR超過0.97,而當L>1 400時,TPR下降至0.97以下.考慮到L越小,PAID指紋采集速度就越快,本文在后續測試中令L=1 000. Fig.18 Identification accuracy corresponding to different L圖18 不同L對應的識別準確率 Fig.19 Identification accuracy corresponding to different SEG圖19 不同SEG對應的識別準確率 SEG為PAID指紋的長度,也為計算分段密度時數據包到達時間間隔序列PAI的分段數量.較小的SEG會導致分段密度失真,無法體現出PAI的密度特征,進而降低不同設備間PAID指紋的區分度;過大的SEG則會增大PAID指紋匹配網絡的規模,進而降低接入時設備識別的時間效率.因此,需要選擇合適的SEG來生成PAID指紋.為此,利用不同的SEG測試了識別準確率,測試方法與圖18相同.圖19給出了不同SEG對應的識別準確率(每個SEG對應的I均為5).可以看出,當10≤SEG≤15時,TNR始終接近1,TPR呈現上升趨勢;當SEG≤20時,TPR的增長較快;而當SEG>20時,TPR則緩慢增長,且始終低于0.98.考慮到SEG越小,PAID指紋匹配速度就越快,因此在后續測試中令SEG=20. 為選取接入時設備識別的判別閾值thresholdac,計算了任意2臺設備的PAID指紋的匹配結果,計算方法為:針對設備i(i=1,2,…,18)和設備j(j=1,2,…,18)組成的測試設備對(設備i,設備j),以設備i的前1 000個PAID指紋為訓練集訓練PAID指紋匹配網絡,然后以設備j的PAID指紋作為測試集進行指紋匹配,將8 000個指紋的匹配結果的均值作為最終結果.圖20顯示了所有測試設備對的匹配結果,可以看出,設備與自身的匹配結果為0.15左右,與其他設備的匹配結果則大于0.3,因此將thresholdac設置為0.2. Fig.20 Matching results of all devices pairs圖20 所有測試設備對的匹配結果 最終,對18臺設備分別進行了準確率測試,測試數據集為所有設備的PAID指紋集.圖21為測試結果.設備6的TPR最高,約為0.981 7;設備8的TPR最低,約為0.962 3.進一步地,設備4、設備5和設備6的TPR均高于0.976,設備7、設備8和設備9的TPR均低于0.968,設備1、設備2和設備3的TPR則約為0.97,因此相比于臺式機,本文所提供的PAID指紋能夠更好地標識樹莓派和路由器的硬件特征.此外,設備10~16的TPR均高于0.96,因此該PAID指紋同樣適用于手機、平板電腦和筆記本電腦.此外,所有設備的TNR均高于0.99,表明該PAID指紋能夠標識設備間的硬件特征差異,進而能夠以高準確率檢測出攜帶虛假身份信息的無線終端. 在通信時的實時設備身份識別中,由于CSI指紋具有固定的維度,在帶寬為20 MHz的WiFi網絡中,CSI指紋的維度為52,因此影響識別準確率的主要因素為CSI指紋匹配網絡中自動編碼器的個數J.圖22(a)展示了J=13,6,4,2,1時的識別準確率,隨著J的增加,TNR近似于1,TPR則逐漸增大.CSI指紋匹配網絡中的J個自動編碼器分別用于匹配J個子CSI指紋,當J增加時,CSI指紋被拆分為更多的子指紋,因此匹配目標更加局部,噪聲干擾導致的CSI指紋波動則被進一步地放大,進而降低了識別準確率;當J減小時,子指紋長度增加,匹配目標趨于指紋整體,因此能夠更好地學習指紋的特征,并且削弱噪聲的干擾. Fig.21 Identification accuracy of all devices圖21 所有測試設備的識別準確率 Fig.22 Identification accuracy for different J and identification time distribution of a single packet 圖22 不同J對應的識別準確率和單個數據包的識別時間分布圖 但是,由4.6節的指紋匹配網絡時間復雜度分析可知,隨著J的降低,匹配網絡的匹配時間會隨之增大,單個數據包的識別時間也隨之增加.圖22(b)顯示了10 000個CSI指紋的指紋匹配時間的分布密度圖,與4.6節的理論推導一致.過長的匹配時間可能會導致數據包到達速率與識別速度不匹配,進而無法實現實時的逐包識別,因此需要選取合適的J,在提高準確率的同時保證識別的實時性.考慮到J=4時的TPR僅比J=2時低0.006,識別時間則近似為后者的1/2,在后續測試中令J=4,此時子CSI指紋的長度為13. Fig.23 Identification accuracy in two test scenarios圖 23 2種測試場景下的識別準確率 圖23(a)展示了公寓測試場景中位于4個不同位置的無線終端的TPR.前3個位置在公寓內,3臺終端的TPR均高于0.986;被放置在走廊中的終端的TPR下降到0.978 7.在公寓測試場景中,終端4的CSI樣本的方差為3.985×103,遠高于前3個位置的方差.以上測試結果表明,終端與識別設備的距離不是影響通信時設備識別準確率的直接因素.盡管隨著距離的增大,存在干擾的可能性也會增加,但是在物體移動、人員走動較少的室內環境中可以忽略這種影響.走廊中的終端的CSI指紋穩定性較差,這是因為2個原因: 1) 終端與識別設備沒有視距(line of sight, LOS)無線傳播路徑; 2) 走廊有行人走動干擾.因此,本文給出的通信時逐包設備識別框架更適用于存在LOS路徑、較為穩定的室內環境. 圖23(b)展示了實驗室測試場景中,3種不同干擾條件下無線終端的TPR.隨著人員走動路徑的遠離,TPR從0.943 6增長到0.975 3.在實驗室測試場景下,3種干擾條件對應的CSI樣本方差分別為10.084×103,7.099×103和6.941×103,因此,當人員走動路徑遠離時,無線終端和識別設備受到的干擾降低,同一終端的CSI指紋更加穩定,通信時設備識別準確率也更高.這表明環境干擾會降低通信時逐包設備識別框架的性能,但是在受到較大干擾(行人在距終端1 m處走動)時,通信時逐包識別準確率仍能夠達到0.94.以上的測試均使用了CSI指紋匹配網絡更新模塊.為了測試該模塊對通信時逐包設備識別準確率的改善效果,在不啟用該模塊的條件下測試了無線終端的TPR,測試結果如圖23所示.在干擾較小的環境中(公寓測試場景中的位置1,2,3),TPR最低降至0.729 1,比啟用更新模塊時降低了0.257 7.在干擾較大的環境中(公寓測試場景中的位置4和實驗室測試場景),TPR最低降至0.173 7,比啟用更新模塊時降低了0.805.因此,CSI指紋匹配網絡更新模塊雖然增大了通信時逐包設備識別時間,但是能夠改善設備識別的性能,這種改善效果在干擾環境下更為顯著. 本文提出了一種基于混合特征指紋的設備身份識別方案,該方案將2種流量特征指紋分別用于2種設備識別場景:1)在終端請求接入時,該方案利用PAID生成指紋并進行識別;2)在終端成功接入并開始通信時,該方案利用來自終端的每個數據包的CSI生成指紋,從而實現實時的逐包設備識別.同時,本文提出了一種計算復雜度較低的指紋匹配網絡,以保證在計算能力有限的設備中也能快速且準確地識別設備. 為了解決CSI指紋會隨著終端的位置或所處環境的改變而改變的問題,本文提出了一種基于混合特征指紋的設備身份識別方案.該方案從無線終端的PAID和CSI中提取2類指紋:前者為PAID指紋,標識設備的硬件特征;后者為CSI指紋,標識設備的無線信道特征.該方案包含兩階段的設備識別:一是當終端請求接入無線網絡時,識別設備捕獲該終端發送的若干數據包,從中提取PAID指紋和CSI指紋,并用PAID指紋進行識別,識別成功則用新獲取的CSI指紋進行后續的CSI指紋匹配;二是當終端接入并開始通信時,識別設備從終端的每個數據包中提取CSI指紋并進行實時的逐包身份識別. 為了解決現有的利用機器學習進行指紋匹配的設備識別技術計算復雜度較高,無法在計算能力有限的嵌入式設備中實現的問題,本文提出了一種改進的指紋匹配方案,該方案利用基于自動編碼器的指紋匹配網絡來進行指紋匹配.該網絡包括匹配層和輸出層,前者由小規模自動編碼器并聯組成,后者由線性變換器構成,在保證高識別準確率的同時降低了計算復雜度. 在樹莓派3B+上實現了基于混合特征指紋的設備識別原型系統,具體實現了無線終端接入時的PAID指紋提取、CSI指紋提取、PAID指紋匹配,以及通信時的逐包CSI指紋提取和CSI指紋匹配.利用樹莓派和無線終端在公寓和實驗室開展了設備識別實驗,實驗表明:該系統在接入時和通信時均能達到較高的設備識別準確率.





4.3 基于PAID指紋的接入時設備識別






4.4 訓練CSI指紋匹配網絡







4.5 基于CSI指紋的通信時實時設備識別



εJRMSEJ.4.6 指紋匹配網絡時間復雜度分析
5 設備身份識別框架的實現與評估
5.1 設備識別框架的設計與實現



5.2 測試場景與評估指標

5.3 接入時的設備識別性能分析



5.4 通信時的實時設備識別性能分析



6 總 結