陶志勇,張 潔,劉 影?,張 旭
(1.遼寧工程技術大學電子與信息工程學院,遼寧 葫蘆島 125105;2.金陵科技學院網絡與通信工程學院,江蘇 南京 211169)
互聯網的普及與信息技術的發展在很大程度上方便了人們的生活,但與此同時也帶來了新的挑戰。作為人機交互工具的鍵盤,人們在使用的過程中,不經意間就會忽視敲擊鍵盤可能帶來的信息泄露,如電子郵件、社交媒體互動、短信、搜索關鍵詞或賬戶密碼,容易存在個人隱私泄露或財產損失等危險。因此,關注計算機鍵盤輸入行為的檢測,對信息安全領域[1]以及人機交互發展有著重要意義。
近年來各種擊鍵識別技術層出不窮,提出了許多不同的識別方案。根據識別過程中所采用的信號媒介,可以分為基于聲音的方法[2-3]、基于傳感器的方法[4]和基于電磁波的方法等等,但是上述方法的研究仍存在一些不足。基于聲音的方法,由于擊鍵發出的聲音易受環境中噪音的影響,無疑增加信息獲取的難度;基于傳感器的方法,單純依賴部署專用傳感器,且可視角度受限[5];基于電磁波的方法,由于不受噪音影響,不需部署專用傳感器,在眾多的擊鍵行為識別方法中成為最有價值的解決方案之一[6]。
基于電磁波的擊鍵識別通過“復用”環境中的無線信號實現擊鍵感知。如Chen 等人[7]使用軟件定義無線電設備控制信號的發送和接收,結合信號振幅和相位來區分不同的擊鍵行為。Ali 等人[8]提出一種基于WiFi 信號的擊鍵識別系統WiKey,通過采集機械鍵盤不同鍵的CSI 數據,首次展示了WiFi信號也可以用來識別擊鍵行為。Li 等人[9]實現了一個新穎實用的手機支付密碼推斷系統,通過部署公共WiFi 熱點來收集目標的CSI 數據,僅在發生密碼輸入的敏感時期啟動擊鍵推斷。Zhang 等人[10]應用新的擊鍵分割算法,根據峰點和谷點的聚類來定位每個擊鍵波形的位置,實現POS 機支付密碼的無設備識別。Shen 等人[11]提出了一種基于環境閾值提取擊鍵波形的雙重判斷方法,可以提取手機用戶在不同環境下敲擊密碼的擊鍵波形,有效提高系統的環境適應能力。
上述基于WiFi 信號的方法專注于波形特征進行擊鍵行為識別,由于WiFi 設備固有噪聲以及室內環境對信號的影響,擊鍵識別方法穩定性的提升存在極大挑戰,因此本文提出一種基于CSI 空間特征的增強型擊鍵行為識別系統。首先系統更加注重數據的預處理,并采用基于動態方差閾值的方法進行動作分割。由于提取的擊鍵波形特征存在時間波動性以及空間歧義性問題,本系統采用更具穩健性的多信號空間特征。最后充分利用多根天線特征,對機械鍵盤的擊鍵樣本類別實現精準定位。
WiFi 信號的CSI 值反映的是多徑信號的建設性和破壞性干擾,因此擊鍵輸入過程中多徑傳播的變化在CSI 值的時間序列中產生獨特的模式,可以用于擊鍵識別。
但是,由于設備噪聲以及室內環境對WiFi 信號的影響,導致基于擊鍵波形特征進行分類識別出現較大誤差。具體表現為兩方面:①時間波動性:相同鍵不同時刻的擊鍵波形差異較大,如圖1所示,表示的是不同時刻B 鍵的擊鍵波形;②空間歧義性:物理位置不同的擊鍵波形十分相似,如圖2 所示,表示的是Q 鍵與其他鍵的擊鍵波形之間DTW(Dynamic Time Warping)距離,顏色越深代表距離越近。

圖1 時間波動性

圖2 空間歧義性
為解決上述問題,本文提出一種基于CSI 空間特征的增強型擊鍵行為識別系統Wi-Click。Wi-Click 系統的架構如圖3 所示,主要內容包括:數據采集、擊鍵信號建模、魯棒特征刻畫和分類識別。利用Halperin 等人提出的CSI-Tool 工具[12],在發送端持續不斷發送WiFi 信號,在接收端進行CSI 數據采集,通過分析各種不利因素產生的原因和機理,對CSI 數據依次進行預處理,特征提取,特征匹配,最后輸出擊鍵識別結果。

圖3 系統架構
1.1.1 預處理
由于商用無線信號設備內部狀態轉變或環境干擾,導致CSI 時間序列中存在與動作無關的噪聲成分,因此本文首先采用窗口大小為7 的Hampel 濾波器和截止頻率為80Hz 的Butterworth 低通濾波器對信號進行濾波處理。
其次,每個CSI 矩陣中擁有30 個子載波的信息,使用所有子載波的信息進行特征提取和識別顯著增加了系統的計算復雜度,因此Wi-Click 利用子載波間變化的相關性,采用主成分分析(Principal Component Analysis,PCA)計算每個t-r天線對中所有子載波的主成分[13],并選取最能代表所有子載波的前d=3 個主成分進行后續分析,如圖4 所示。

圖4 前3 個主成分
經PCA 處理后,可以獲得CSI 矩陣中最具代表性的信息成分,同時去除了不相關噪聲。此外,文獻[14]因系統內部狀態轉換造成的高度相關噪聲而放棄使用第一主成分,但本文在進行主成分分析之前使用Hampel 濾波器能夠去除大部分此類噪聲[15],所以本文選擇保留第一主成分信息。
1.1.2 擊鍵波形提取
CSI 時間序列中既包含有效動作信號,又包含無效信號,因此提取有效擊鍵波形可以為后續特征刻畫及識別提供支持,擊鍵波形提取的主要步驟如表1 所示。

表1 擊鍵波形提取
采集的CSI 數據中包含多個擊鍵動作,因此需要分割CSI 時間序列以獲取單個擊鍵動作的CSI波形。當用戶不執行任何擊鍵動作時,時間序列處于穩定狀態,相比之下,當用戶執行擊鍵動作時,時間序列在擊鍵動作的開始和結束時急劇上升或下降,因此本文采用基于動態方差閾值的方法進行時間序列分割。將PCA1 時間序列以長度大小W分為n段,ΔVi則為時間序列第i段的方差,其計算公式為:

粗略分割時間序列后,選擇時間序列幅度均值A作為關鍵度量,對有效擊鍵波形實現精準定位。如圖5 所示,以直線y=A與波形的交點作為定位點,從最左邊的定位點出發,向左進行局部搜索,選擇距離最近的極小值點作為起點參考點rp,算法采用下列公式估計擊鍵波形的起點starpoint 和終點endpoint:

圖5 有效擊鍵波形提取

式中,Savg表示的是不同擊鍵波形長度的均值,Pleft與Pright為擊鍵波形兩側的保護間隔。根據起點和終點,可以提取擊鍵有效波形。因此,從CSI 時間序列的第i個主分量提 取 的 第m個 擊 鍵 波 形如下:

為解決擊鍵波形特征的時間波動性以及空間歧義性問題,本文基于擊鍵波形充分挖掘不同鍵位的空間感知能力,尋找更加穩健的擊鍵特征。受文獻[2]啟發,盡管同一鍵的擊鍵波形之差會隨時間推移發生不小的變化,但相同時刻不同鍵的擊鍵波形之差會保持相對穩定且更具有區分性,且這種穩健性在任意α 鍵與β 鍵的波形之差中都或強或弱存在。
具體來說,如果環境中有噪聲干擾,那么鍵盤上其他鍵感知到的WiFi 信號都將會受到影響,通過不同鍵的擊鍵波形做差形成的多信號空間特征代替傳統的單信號波形特征,使WiFi 信號相對變化小于WiFi 信號絕對變化,則系統能夠更好地容忍設備噪聲以及室內環境引起的信號變化。
如圖6 所示,B 鍵和U 鍵的擊鍵波形極其相似,當B 鍵和U 鍵選擇與各自相同時刻的C 鍵作差時,得到的擊鍵空間特征更有利于分類。

圖6 擊鍵波形之差
由于擊鍵波形時間波動性以及空間歧義性問題的存在,僅使用波形作為特征會導致分類識別誤差較大,因此本文提出了基于擊鍵波形特征與空間特征的KNN-DTW 聯合識別模型。
算法首先利用多個天線對的CSI 信息構建多分類器集成系統,在每個分類器的近鄰樣本級別上對擊鍵動作類別實施聯合判決。其次,將聯合判決投票結果依據票數降序排列,則測試樣本的真實類別存在于投票結果的前M 位中,通常分類錯誤的測試樣本投票結果歧義度非常大,即前M 位中各類別之間的票數之差Gap 十分接近,因此可以根據歧義度閾值Gap,選擇需要啟動二次識別的測試樣本。最后,充分利用不同鍵位的空間多樣性,為每個啟動二次識別的測試樣本構建由多個多分類器集成系統組成的組合分類器,對測試樣本的真實類別實現精準定位。
具體步驟如下:
Step 1:多分類器構建。構建一個Mt×Mr×3 的多分類器集成系統,使用從所有t-r天線對中提取的擊鍵波形特征訓練每個分類器,從每個分類器中獲取與測試樣本距離最近的k個近鄰樣本。
Step 2:聯合判決。qi表示每個近鄰樣本的類別標簽,則測試樣本的類別為多分類器標簽向量q=[q1,q2,…,qMt×Mr×3×k]的多數投票結果。
Step 3:組合分類器構建與判決。首次識別后,系統將啟動二次識別的測試樣本X?的投票結果前M位類別輸出。假設M取值為3,則前M位類別分別為M1、M2 和M3,剩余類別分別為M4、M5、…、M26。以此M個類別的訓練集同剩余類別的訓練集分別做差構建23 個做差訓練集,將測試樣本X?同剩余類別的測試樣本分別做差構建23 個做差測試集,則組合分類器由23 個多分類器構成,組合分類器的具體構建方案如圖7 所示。

圖7 組合分類器的構建方案
2.1.1 實驗平臺搭建及數據采集
實驗均采用配備1 根全向天線的商用TP-Link WiFi 路由器作為發射端,將配備3 根全向天線且帶有Intel 5300 網卡的商用筆記本電腦作為接收端。發射端工作在5.8 GHz 頻段和IEEE 802.11n AP 模式下,在接收端利用Halperin 等人開發的Linux CSItool 工具從Intel 5300 網卡中解析出CSI 值,并使用MATLAB 軟件進一步處理。
實驗階段,天線距離地面的高度均為1 m,將WiFi 路由器放置在測試鍵盤右側1.5 m 的位置,將接收天線放置在測試鍵盤左側30 cm 的位置,且接收天線在WiFi 路由器的LOS 范圍內。WiFi 路由器以2 500 包/s 左右的高速率向接收端發送ICMP ping 包,表2 給出了實驗過程中的基本參數配置。

表2 實驗的基本參數配置
為評估Wi-Click 系統的性能,本文設置了如圖8 所示的兩種實驗測試平臺,包括空曠的實驗室和環境相對復雜的實驗室。實驗邀請志愿者在實驗場景中進行多次實驗,通過多次按下26 個字母鍵為每個鍵提供30 個樣本。選取所采數據集中90%的數據作為訓練集樣本,將數據集中剩余的樣本作為測試集樣本。

圖8 不同實驗平臺
2.1.2 評價指標
對于Wi-Click 系統的性能分析,本文采用準確率Accuracy 以及精確率Precisionj作為2 個評價指標,其計算公式分別為:

式中,Accuracy 表示用戶所有擊鍵行為的識別準確率,Precisionj表示字母j鍵的識別精確率,TA 表示測試樣本正確總數,TS 表示測試樣本總數,TPAj和TPSj分別表示字母j 鍵的測試樣本正確總數和測試樣本總數。
為測試收發天線距離對系統性能的具體影響,實驗通過線性增加收發天線距離,觀察擊鍵波形的變化。
圖9 為發射天線距離鍵盤1.5 m 情況下,接收天線與鍵盤間距離增加時擊鍵波形的變化,隨著距離的增加擊鍵波形幅度逐漸衰減,并且當位置改變時,擊鍵波形的形狀發生顯著變化。同樣,當接收天線與鍵盤間距離保持不變時,實驗測試了改變發射天線與鍵盤間距離時擊鍵波形的變化,也出現了類似的變化趨勢,如圖10 所示。雖然收發天線間距離較近時波形變化比較顯著,但同時也更多地引入了由用戶身體引起的噪聲,如心跳和呼吸,而其他距離下的波形幅度略有波動,但仍然可以區分。因此,實驗采用距離發射天線1.5 m、距離接收天線30 cm 的擊鍵位置進行系統性能評估。

圖9 不同接收距離波形變化

圖10 不同發射距離波形變化
在實驗的基本參數配置條件下,首次識別的投票結果排序中測試樣本的真實類別排名于第N位的樣本數量曲線圖如圖11 所示。從圖中可以觀察到,當N<3 時,曲線下降速度較快,當N>3 時,曲線逐漸趨于平緩,即大部分測試樣本的真實類別存在于投票結果排序的前M=3 位中。M取值越大,需要進行二次識別的樣本數量就會增加,系統的識別準確率也會逐漸增大,但是系統的運行時間也會逐漸增大。考慮到系統總體運行時間成本與識別準確率的平衡,本文取M=3。

圖11 測試樣本的真實類別排名于第N 位的樣本數量曲線圖
為驗證本文提出方法的有效性,實驗采用基于波形特征的SVM 方法、基于波形特征的BP 方法、基于波形特征的KNN 方法和基于波形特征與空間特征的KNN 方法這4 組對比方案。其中,波形特征與空間特征分別為1.1.2 節與1.2 節所提方法獲得的特征,不同方法的識別準確率如圖12 所示。

圖12 不同方法對比
本文提出的基于波形特征與空間特征的KNN方法識別準確率為92.31%,在四種方法中表現最優。雖然BP 神經網絡和基于DTW 的SVM 方法能夠克服不同擊鍵波形的中點與長度不匹配問題,但是由于擊鍵波形存在時間波動性以及空間歧義性問題,導致二者很難建立良好的預測模型,而KNN 方法僅需尋找近鄰樣本,并不需要建立預測模型,因此基于傳統擊鍵波形特征的KNN 方法可以獲得顯著的性能提升,如果通過多信號空間特征對擊鍵行為類別進行精確定位,將會獲得更穩定可靠的性能。
CSI 主要刻畫了信號傳播空間的特性,信號采集環境能夠對識別準確率產生重要影響[16],因此在不同實驗環境下對Wi-Click 系統的性能評估必不可少。本文選擇兩種實驗環境進行系統性能分析,在這2 種環境下分別對Wikey[8]與本文所提方法Wi-Click 進行比較,識別結果如表3 所示,可以看出,本文所提方法在不同場景下都表現出優異的性能,具有一定的環境抗干擾能力。

表3 不同實驗環境下的識別準確率
樣本的數據中不僅包含著動作信息,而且包含著豐富的周圍環境信息,因此為確定訓練集樣本數量對Wi-Click 系統的影響,本文分別測試了系統在每個鍵27 個訓練樣本和每個鍵54 個訓練樣本情況下擊鍵行為識別的準確率與精確率。
本文用混淆矩陣展示了不同訓練樣本數量中每個鍵的識別精確率,如圖13 所示。設置每個鍵27 個訓練樣本的識別準確率為92.31%,而每個鍵54 個訓練樣本的識別準確率為94.87%。因此,可通過增加訓練集樣本數量來提高系統的識別準確率和精確率。

圖13 不同訓練樣本數量的識別結果混淆矩陣
論文提出了一種基于CSI 空間特征的增強型擊鍵行為識別方法Wi-Click,該方法通過充分利用不同鍵位的空間多樣性,緩解了擊鍵波形特征的時間波動性和空間歧義性問題,能夠獲得穩定魯棒的性能。實驗結果表明,Wi-Click 對擊鍵行為識別的準確率可以達到92%以上,且該方法在不同環境中均具有較好的識別準確率,與基于傳統波形特征的方法相比,Wi-Click 識別效果更佳。目前,本文只針對靜態環境中單個擊鍵動作進行識別,在未來工作中計劃研究組合擊鍵動作的檢測與識別,或在動態環境中做更多的實驗,以實現更惡劣場景下的擊鍵行為識別。