單鵬飛 戴大蒙
摘要:由于用戶對鍵盤的熟悉程度,擊鍵習(xí)慣各不相同,每個用戶都有自己的擊鍵行為特征。本文設(shè)計基于支持向量機的擊鍵生物特征模型對異常用戶進行識別,針對特殊的文本提出了基于邏輯回歸的缺失值補全算法和基于相關(guān)性熱圖分析的特征篩選算法對數(shù)據(jù)進行預(yù)處理。提出使用錯誤種類作為擊鍵認證的特征并使用優(yōu)化的支持向量機做分類處理。將提出的算法與傳統(tǒng)的樸素貝葉斯,決策樹等算法進行對比。
關(guān)鍵詞:機器學(xué)習(xí);擊鍵認證;數(shù)據(jù)預(yù)處理;異常用戶識別
中圖分類號:TP18 文獻標(biāo)志碼:A 文章編號:1009-3044(2018)19-0186-05
Abstract: Due to the user's familiarity with the keyboard, keystroke habits are different, and each user has his or her own keystroke behavior characteristics. This paper designed the keystroke biological characteristics model based on Support Vector Machine (SVM) for anomaly, which can identify users based on logistic regression is proposed in view of the special text missing values completion algorithm and feature selection algorithm based on correlation analysis of heat for data preprocessing. Put forward using the wrong type as the characteristics of the keystroke certification and use the optimization of Support Vector Machine (SVM) classification processing. The proposed algorithm is compared with traditional Naive Bayes and decision tree
Key words: machine learning; Keystroke authentication; Data preprocessing; Abnormal user identification
1 引言
目前,在互聯(lián)網(wǎng)操作中,口令,密碼和用戶名認證是主要的用戶認證方式。但這種機制最大的問題就是容易泄露個人隱私。隨著機器學(xué)習(xí),深度學(xué)習(xí)等生物認證技術(shù)的發(fā)展,為互聯(lián)網(wǎng)身份認證提供了新的解決思路。
生物認證技術(shù)是使用每個人特殊的生理信息和特有的行為信息,而這些生物信息具有很強的辨識性和唯一性,可以有效地通過生物認證技術(shù)來進行異常用戶的篩選。
由于人們對鍵盤的擊鍵習(xí)慣和個人性格的不同 , 使得每個人在輸入口令或完成一段文字輸入時均形成了自己獨特的擊鍵模式。擊鍵模式能夠反應(yīng)一個人敲打鍵盤的力度,速度,停頓習(xí)慣等,這些特征很難被模仿。美國華盛頓可選基金會通過進一步的研究證實了人們擊鍵特征的唯一性,所以擊鍵模式可以代表用戶身份。
2 研究背景
2.1 擊鍵特征匹配算法
(1) 靜態(tài)擊鍵認證
靜態(tài)擊鍵認證是指在建立樣本的過程中,用戶輸入的內(nèi)容是一樣的。在樣本采集的過程中,要求用戶輸入同樣的文本。國內(nèi)常用的算法主要是基于統(tǒng)計基礎(chǔ)的識別算法,例如貝葉斯,支持向量機(SVM)等和基于神經(jīng)網(wǎng)絡(luò)的算法兩大類。
(2) 動態(tài)擊鍵認證
動態(tài)擊鍵認證指的是建立模型階段和認證階段用戶輸入的文本都是隨機的,對輸入內(nèi)容,沒有限制。
本系統(tǒng)采用的算法屬于靜態(tài)擊鍵認證算法,參考了倪桂強等人[1]提出基于SVM的擊鍵特征認證模型。下面是原文獻中使用的特征提取算法。本文在基礎(chǔ)上針對特定的異常用戶識別問題對特征提取,SVM和數(shù)據(jù)預(yù)處理三個方面進行優(yōu)化。
擊鍵動力學(xué)中,常見的擊鍵時序特征[2]有以下五種:
1) 單鍵(Single Key)時延Ts:即按下某鍵到釋放該鍵的時間間隔。
2) R-P(Release-Press)時延TRP:即釋放第一個鍵到按下第二個鍵的時間間隔。
3) P-R(Press-Release)時延PR:即按下第一個鍵到釋放第二個鍵的時間間隔。
4) P-P(Press-Press)時延TPP:即按下第一個鍵到按下第二個鍵的時間間隔。
5) R-R(Release-Release)時延TRR:即釋放第一個鍵到釋放第二個鍵的時間間隔。
研究表明擊鍵時間包括按鍵的持續(xù)時間和轉(zhuǎn)移時間兩種,持續(xù)時間為某個按鍵按下到其彈起之間的時間間隔,定義為hold time(T1),轉(zhuǎn)移時間為某個鍵的彈起和其他鍵的按下之間的時間間隔,定義為transfer time(T2).Robinson等人表明hold time在擊鍵動力模型中更能體現(xiàn)測試者的擊鍵特征,如圖1所示:
2.2 算法應(yīng)用與改進
由于參考文獻[3]中的算法是用來判定能否正確識別出用戶身份的算法,所以是一個二分類的算法,并且輸入的樣本都是固定的六位密碼(由數(shù)字構(gòu)成)。本文采用的算法是將原文提到的二分類問題轉(zhuǎn)化成一個多分類問題。具體的流程是對多個用戶所構(gòu)成的樣本庫進行總體訓(xùn)練,逐一將用戶輸入的樣本與用戶庫的樣本進行匹配,如果匹配到用戶本人則認為此用戶行為正常,如沒有匹配到本人,則認定此用戶的行為出現(xiàn)異常,屬于異常用戶。本文在特征選取,參數(shù)選取,SVM算法以及損失函數(shù)上做了優(yōu)化,并加入了一些數(shù)據(jù)預(yù)處理,缺失數(shù)據(jù)補全,PCA,相關(guān)性分析等機制來提高算法的識別率。
3 本文提出的特征提取與數(shù)據(jù)預(yù)處理方法
3.1 本文采用的樣本
以往的擊鍵行為識別[4]大多數(shù)解決的是用戶登錄口令的問題,使用的樣本大多是6個字符的密碼,而本文需要解決的問題是異常用戶的識別,通過對用戶輸入的文本,判定是否為 本人操作,所以本文采用的樣本與以往的相關(guān)研究的樣本不同,用戶需要輸入一段特定文本作為測試樣本。
3.2 本文提取的特征
由于本文解決的是異常用戶識別的問題,所用的樣本不是參考文獻中所提出的固定6位數(shù)字密碼,而是英文文本,這就意味著固有的按鍵彈起時間不能很好地反應(yīng)打字行為特征,并且實際情況中,我們很難實時統(tǒng)計到用戶的擊鍵彈起時間,所以我們舍棄參考文獻中所使用的特征,選擇采用錯誤種類,擊鍵速度,以及擊鍵正確率作為特征。
3.2.1 錯誤種類相關(guān)特征
根據(jù)對數(shù)據(jù)的分析,我們將其中錯誤的種類分為以下幾種類別
(1) Bad case:擊鍵錯誤,比如將“。The”輸入成了“?!?/p>
(2) Bad ordering:當(dāng)擊打一串字符時,過早輸入某一個字符 ,例如將“house”輸入成“houes”
(3) Doublet:當(dāng)敲擊一串字符串時,同一個字母敲擊兩遍,例如將“home”輸入成“homee”
(4) Other:其他類型的敲擊錯誤。
(5) RED:敲擊時有明顯的錯誤但卻沒有修改。
3.2.2 速度相關(guān)特征
用戶在輸入文本時的擊打速度有明顯的個體差異,這些差異能明確地反應(yīng)在速度特征上,如圖2所示:
3.2.3 準(zhǔn)確率相關(guān)特征
用戶在輸入文本時,準(zhǔn)確率的差異也非常明顯,因此,我們提取用戶輸入的準(zhǔn)確信息,作為準(zhǔn)確率特征值。如圖3所示:
3.3 數(shù)據(jù)預(yù)處理
由于本文是為了解決異常用戶識別的問題,在實際情況中,會有部分數(shù)據(jù)丟失,比如用戶在輸入字符串時,先將“home”打成“homme”后,又刪除重新打成“hoem”,按照之前的錯誤種類分析,此時用戶的Bad ordering指標(biāo)累加一次,但是Doublet并沒有累加,這顯然是不合理的,這就導(dǎo)致了數(shù)據(jù)的丟失。不僅如此,在實際情況中,為了做到實時統(tǒng)計數(shù)據(jù),很大概率會出現(xiàn)部分數(shù)據(jù)的丟失,本文提出使用Lasso回歸對丟失數(shù)據(jù)進行補全來解決此類問題。
3.3.1 丟失數(shù)據(jù)的補全
以往此類問題[5]的數(shù)據(jù)補全通常使用以下幾種方法:
(1) 均值補全:利用丟失特征的均值,對個別樣本的缺失值進行補全。
(2) 零值補全:利用零值對樣本缺失值進行補全。
(3) 高斯補全:假設(shè)數(shù)據(jù)符合高斯分布,求出此類特征已知數(shù)據(jù)的均值與方差,由高斯分布構(gòu)造數(shù)據(jù),對丟失樣本進行補全。
實驗表明以上三種方法并不適合本文所解決的問題,根據(jù)相關(guān)性分析可知,5種錯誤特征有很大的相關(guān)性,利用這種特殊的關(guān)系,本文提出用lasso回歸補全丟失數(shù)據(jù)的方法,利用Lasso回歸補全丟失數(shù)據(jù)的過程如下:
(1) 需要補全的數(shù)據(jù)大概分為以下兩類,第一類是人為因素(統(tǒng)計樣本)所導(dǎo)致的錯誤,第二類是用戶本身就沒有犯某種錯誤(此類錯誤特征的值為0),但是在數(shù)據(jù)處理時0較多會影響處理結(jié)果,因此,需要對樣本數(shù)據(jù)進行補全處理。
(2) 將數(shù)據(jù)做歸一化處理,通過離群值分析,刪除一些異常數(shù)據(jù),用樣本均值進行補全
(3) 針對第一類問題,采用lasso回歸補全,本文將丟失的樣本作為測試集,測試集中丟失的值設(shè)為
(4) 針對第二類問題,使用0-1均值化,減小誤差。
3.3.2 解決多鍵盤,按鍵停頓過長,多種錯誤種類計數(shù)的問題
對于多鍵盤問題,我們對實驗數(shù)據(jù)采用基于高斯分布的降噪處理[6],以降低不同鍵盤對數(shù)據(jù)的影響。
對于按鍵停頓問題,我們允許在輸入文本的過程中有停頓,但停頓時間是在合理的范圍以內(nèi)。我們首先對每個測試樣本掃描一遍,如果輸入文本的時間過長,我們則認定這條輸入為異常輸入,重新要求用戶進行輸入。
對于多種錯誤種類計數(shù)的問題,本文規(guī)定,同一段字符串出現(xiàn)多次錯誤時,需要分別累加犯錯次數(shù),犯錯次數(shù)的統(tǒng)計以英文單詞個數(shù)為計數(shù)單位,而不是以字母個數(shù)為計數(shù)單位。
3.3.3 特征的篩選
在實際情況中,測試的用戶數(shù)據(jù)較少,為了提高算法的魯棒性,我們只用了11個人共88個樣本(每人8個)作為訓(xùn)練數(shù)據(jù),從而反應(yīng)在實際情況下算法的效果,但較少的數(shù)據(jù)量和較多的特征會導(dǎo)致過擬合,為了緩解過擬合現(xiàn)象,本文提出先使用相關(guān)性熱圖分析進行特征篩選,再利用PCA對數(shù)據(jù)做降維處理,過程如下:
構(gòu)建樣本的驗證數(shù)據(jù)集,利用交叉驗證來驗證數(shù)據(jù)是否過擬合,根據(jù)實驗結(jié)果顯示,當(dāng)增加數(shù)據(jù)量的時候,出現(xiàn)過擬合現(xiàn)象。
對已經(jīng)篩選好的特征使用主成分分析,降低維度,提高運行效率。主成分分析是一種無監(jiān)督的統(tǒng)計學(xué)方法,通常借助于正交變換,將分量相關(guān)的向量轉(zhuǎn)化為分量不相關(guān)的向量,在幾何上的直觀表現(xiàn)是將原有的坐標(biāo)系轉(zhuǎn)化為正交坐標(biāo)系,把樣本點散布在多個方向,并對多維變量進行降維處理。所降至的維度由如下公式?jīng)Q定。
3.4 評估模型
擊鍵動力學(xué)中,常用兩個指標(biāo)評估算法的可靠性,錯誤接受率FAR和錯誤拒絕率FRR。錯誤接受率FAR代表入侵者被錯誤地當(dāng)成合法用戶的比率,錯誤拒絕率FRR代表合法用戶被錯誤地當(dāng)成入侵者的比率。由于操作閾值的不同可能會導(dǎo)致評估標(biāo)準(zhǔn)不統(tǒng)一,所以常用相等錯誤率EER(Equal Error Rate)來衡量。錯誤接受率FAR和錯誤拒絕率FRR見公式:
如果錯誤接受率FAR過高,這說明身份識別系統(tǒng)不安全。如果錯誤拒絕率FRR較高,會導(dǎo)致身份識別系統(tǒng)拒絕合法用戶訪問,說明系統(tǒng)不合理。因此身份識別系統(tǒng)的設(shè)計目標(biāo)為通過控制減小錯誤接受率FAR和錯誤拒絕率FRR到一個可接受的水平來提高系統(tǒng)的性能質(zhì)量。由于本文是把一部分已知數(shù)據(jù)作為測試集,并且是多分類問題,所以可以用ACC和AUC來評估模型。AUC是一個概率值,當(dāng)你隨機挑選一個正樣本以及一個負樣本時,當(dāng)前的分類算法根據(jù)計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值。
4 本文提出的改進支持向量機算法
4.1 支持向量機算法
在以往的研究中,只是將間隔時間和按鍵時間作為生成模型的特征,效果不太理想,在分類算法中,數(shù)據(jù)的特征篩選是很重要的。另外以往的研究中[7]只是用支持向量機作為一個二分類器。而本文需要解決多分類的問題,所以本文對支持向量機做了一些算法上的優(yōu)化。此外,傳統(tǒng)的擊鍵問題雖然實驗效果很好,但很難投入商用,這主要是因為實驗數(shù)據(jù)量遠遠大于實際的應(yīng)用情況,為了解決此類問題,本文只用少量的樣本來進行多分類的訓(xùn)練。
4.2 改進的支持向量機算法
在線性不可分的情況下,支持向量機首先在低維空間中完成計算,然后通過核函數(shù)將輸入空間映射到高維特征空間,最終在高維特征空間中構(gòu)造出最優(yōu)分離超平面,從而把平面上本身不好分的非線性數(shù)據(jù)分開。本文使用優(yōu)化的高斯核函數(shù)來處理非線性的分類任務(wù)公式如下:
(4) 利用ACC和AUC評估模型。
5 實驗結(jié)果
本文的目的是使用擊鍵行為來對異常用戶進行識別。所以采用https://www.keyhero.com 網(wǎng)站上提供的數(shù)據(jù)集,該數(shù)據(jù)集包含11個用戶,每個用戶敲定不同的靜態(tài)文本8次,因此每個用戶包含8組數(shù)據(jù),每組數(shù)據(jù)有6個特征。將樣本的85%用于訓(xùn)練集,15%作為測試集。由于以往的擊鍵識別大多采用樸素貝葉斯,決策樹等算法[9],為了對比本文提出的優(yōu)化算法,我們對同樣的數(shù)據(jù)采用六種不同的算法進行對比實驗,實驗結(jié)果如下圖5所示:
由圖可知,本文提出的算法SVM(RBF)的ACC是1,即在訓(xùn)練集上可以做到0錯誤,樸素貝葉斯(Naive Bayes)和SVM(Linear)的ACC也為1,但是本文提出的SVM(RBF)在AUC的值上要優(yōu)于前面兩種算法,說明SVM(RBF)表現(xiàn)得更加穩(wěn)定。
本文在優(yōu)化算法的基礎(chǔ)上還對數(shù)據(jù)預(yù)處理和特征篩選上做了優(yōu)化[10],為了體現(xiàn)數(shù)據(jù)預(yù)處理和特征篩選的優(yōu)化效果,我們對同種數(shù)據(jù)使用不同的預(yù)處理方式,實驗結(jié)果如圖6所示:
由圖可知,在未使用本文提出的特征篩選和預(yù)處理算法時,SVM(RBF)的ACC僅有0.214,而使用預(yù)處理算法后,ACC得到顯著提升。
6 總結(jié)
本文提出一種基于擊鍵特征的異常用戶識別方法,該方法在支持向量機的基礎(chǔ)上加以改進,并在數(shù)據(jù)特征和數(shù)據(jù)預(yù)處理方面做了優(yōu)化。該算法只需要較少的訓(xùn)練樣本,訓(xùn)練時間短。實驗結(jié)果表明,使用本文提出的一系列優(yōu)化算法進行異常用戶識別時,ACC和AUC都得到顯著的提高。
參考文獻:
[1] 倪桂強.基于支持向量數(shù)據(jù)描述的擊鍵生物特征認證[J].高教探索, 2008,10(5):704-708
[2] 張引兵,劉楠楠,張力.身份認證技術(shù)綜述[J].電腦知識與技術(shù), 2011,9(3):14-16
[3] 欒方軍程海,宋曉宇.基于HMM的在線手寫簽名認證系統(tǒng)設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2008.06:59-62
[4] 郭磊,胡曉勤,江天宇,陳廣瑞. 基于擊鍵特征識別的網(wǎng)絡(luò)詐騙嫌疑人追蹤系統(tǒng)[J].技術(shù)研究,2013.12:62-66
[5] 高艷,管曉宏,孫國基等.基于實時擊鍵序列的主機入侵檢測[J].計算機學(xué)報,2004,27(3):394-401
[6] 張磊.文本分類及分類算法研究綜述[J].電腦知識與技術(shù),2017(34):225-226+232
[7] 李軍,高立群,蔡翔.基于支持向量機的消極性文本識別研究[J].電腦知識與技術(shù),2017(6):209-211
[8] 齊晉.基于支持向量機的擊鍵輔助認證系統(tǒng)[D].西安:西南財經(jīng)大學(xué),2014
[9] 李晨.基于擊鍵特征的身份認證與識別研究[D].南京:南京理工大學(xué),2014
[10] Gunetti and Picardi,Keystroke analysis of free text[J]. ACM Transactions on Information and System Security,2005,8[3]:312-347.