王 林,賀冰清
西安理工大學 自動化與信息工程學院,西安 710048
近年來,人們使用大量的在線網絡應用程序,這些程序包括社交媒體平臺(如Facebook、Twitter、Weibo)、云存儲服務(如Drobox、Google Drive)和一些在線網絡游戲。然而這些網絡應用程序帶來的網絡犯罪竟然在不知不覺中蔓延到了世界各地。嚴重的網絡犯罪是指一些犯罪分子利用互聯網侵入受害者的賬戶,盜取包括密碼和金融財產在內的敏感信息。為了解決盜竊問題,人們通過一種額外的生物認證機制進入到在線程序或設備中來提高用戶賬號的安全性。在目前的各種計算機安全措施中,一種是使用基于口令的傳統身份驗證技術,但是口令容易泄漏;另一種是使用一些物理令牌(智能卡等)來代替簡單口令,但是該方法要求系統配備相應的硬件設備,使得成本增加,而且也存在物理令牌丟失、竊取、復制等問題。由于人的生物特征具有不可復制、難以改變等特性,使得生物特征識別技術成為研究熱點。常見的生物特征識別技術有指紋識別技術、人臉識別技術、虹膜識別技術等。但上述技術都需要配備成本較高的硬件設備,使其應用不方便且難以普及。
20世紀80年代初期,美國國家標準局和國家科學基金通過研究已經證實了人的擊鍵行為特征能夠被識別。人與人之間按鍵的力度和節奏會有較明顯的差異,在一般情況下可以用來區分不同的人,從而對人的身份進行識別。
擊鍵動態身份認證是一種基于擊鍵特性(例如擊鍵時延、擊鍵力量等)進行身份識別的生物認證技術。該方法通過監測用戶的鍵盤輸入,采集擊鍵數據,對用戶的擊鍵行為特征進行分類建模,由此來進行用戶身份的判別。擊鍵動態身份認證不僅解決了傳統基于口令身份驗證的安全性問題,同時和其他生物識別技術相比,不需要額外昂貴的硬件設備,具有成本低、靈活性高等優點。
當前研究的擊鍵特征主要分兩類[1]:一是分析固定文本(比如用戶密碼)的擊鍵特征;另一類是分析自由文本的擊鍵特征。下面分別簡述這兩類的研究現狀:
(1)固定文本。2010年,Harun等人[2]針對靜態文本下的Latency特征進行了研究,提出了一種人工智能神經網絡的分類算法,并將平均錯誤率降低到3%左右。2012年,Li等人[3]提出了一種將統計和加權算法相結合的改進算法,使得認證的準確度高于單一的統計學算法。2014年,李福祥等人[4]對面向擊鍵動態身份認證的多模板選擇算法進行研究,提出均衡概率多模板選擇算法,該算法相比單模板具有一定優勢,可將認證錯誤率控制在合理范圍內。2015年,易彬等人[5]在樸素貝葉斯分類理論的背景下,提出一種改進的加權貝葉斯方法;Darabseh等人[6]研究了利用遺傳、粒子群等優化算法,從大量的擊鍵特征中提取更有效的特征量,進而降低訓練和識別的時間和計算量。2016年,Putri等人[7]將擊鍵動態和觸摸手勢相結合,提出一種可應用于安卓手機系統的混合認證算法。2017年,Alpar等人[8]將時域上的擊鍵特征量通過短時間的離散傅里葉變換轉移到時-頻域上,采用高斯-牛頓神經網絡分類器得到了4.1%的相等錯誤率;Ho等人[9]利用小批量打包(Mini-Batch Bagging)方法提出一種用于擊鍵認證的機器學習改進算法;何斯譯等人[10]提出一種擊鍵認證的模板雙更新方法,該方法同時更新模板中的中心點及其容忍半徑,能適應用戶在前期擊鍵習慣變化較大而在后期基本不變的特點。
上述文獻中均采用擊鍵時間間隔和擊鍵持續時間作為特征向量,區別僅在于采用了不同的認證識別算法。另外,大多數文獻由于沒有公開性能測試中所使用的數據集,相關認證算法的應用范圍可能具有一定程度的局限性。
(2)自由文本。相對于固定文本,自由輸入的擊鍵特征的分析更困難,識別率也相對低一些。自由輸入擊鍵特征的分析方法借鑒了成熟的固定文本的擊鍵特征的分析方法,常用的包括統計學方法[11]、神經網絡[12]、決策樹[13]、支持向量機[14]、加權相對距離[15]和相對熵[16]等。
本文主要研究固定文本的擊鍵認證算法。通過對大量擊鍵認證算法文獻的研究可知,大部分的擊鍵認證算法均使用由擊鍵時間間隔和擊鍵持續時間構成的時間特征向量,主要研究基于不同原理的識別算法,而沒有研究如何引入新的特征量以提高認證效果。這些認證算法僅利用了擊鍵時間特征向量中所包含的每個特征值的大小來進行身份識別,而沒有考慮任意兩個相鄰特征值之間的變化率。在一些情況下,可能導致認證準確度并不是十分理想。此外,大多數文獻未使用公開的數據集檢驗認證算法性能,導致相關算法在應用范圍方面具有一定程度的局限性。因此,針對上述問題,本文提出了一種擊鍵特征曲線差異度的概念,其既與擊鍵時間特征向量中每個特征值的大小相關,還能體現出任意兩個相鄰特征值之間的變化率信息。與此同時,利用已公開的數據集進行大量實驗以檢驗所提算法的性能。
本文將擊鍵特征曲線差異度的思想應用于擊鍵動態身份認證,提出了一種新穎的基于擊鍵特征曲線差異度的識別算法。實驗表明,與已經廣泛應用的傳統認證方法相比,本文算法的錯誤拒絕率(False Reject Rate,FRR)、錯誤接受率(False Accept Rate,FAR)和相等錯誤率(Equal Error Rate,EER)更低,識別準確度更高,效果更好,即使在訓練樣本較少的情況下,依然能取得較好的認證效果。
當用戶敲擊鍵盤進行輸入時,若干特征可以被檢測到,主要包括擊鍵時間間隔、擊鍵持續時間、總的輸入速度、錯誤頻率、使用鍵盤上額外按鍵的習慣、大寫字母的輸入方式和擊鍵力度(需要使用特殊的鍵盤)等。但是,一般的擊鍵認證算法的設計并不必采用所有上述特征,其中擊鍵時間間隔和持續時間是最常用的特征量。
擊鍵持續時間指某個按鍵被按下到其彈起的時間間隔。
擊鍵時間間隔指從某個鍵被按下到其緊挨著的下一個鍵被按下的時間間隔。
與其他生物認證技術類似,主要有以下指標用于評估擊鍵動態認證的性能。
(1)錯誤拒絕率(FRR)
合法用戶的登錄請求被當作非法用戶(而被拒絕)的比例。錯誤拒絕率越高,表明認證系統越嚴格,系統可行性與便利性越低。

(2)錯誤接受率(FAR)
非法用戶以合法用戶的身份進行登錄的請求被系統接受的比例。錯誤接受率越高,表明認證系統性能越低,系統被非法用戶攻入的機會越大。

(3)相等錯誤率(EER)
FAR與FRR隨閾值變化曲線的交點值,該點處FAR與FRR值相等。在算法中,可以通過調節來達到不同安全強度的參數,叫作閾值。EER可以作為一個單項性能指標,因為它表明當FAR和FRR相等時的誤差量度,EER值越低,代表這個認證或識別方法的性能越好。
由于傳統的擊鍵認證算法通常僅采用擊鍵持續時間和擊鍵時間間隔的大小,導致在一些情況下無法正確識別用戶身份。例如,采集用戶A和B輸入相同密碼“tire”時的擊鍵特征,用戶A某次采集的擊鍵持續時間向量為,擊鍵時間間隔向量為[210,180,230]ms,用戶B某次采集的擊鍵持續時間向量為,擊鍵時間間隔向量為[170,220,190]ms。假設用戶A和B所有采集樣本的平均擊鍵持續時間向量和擊鍵時間間隔向量相同此時如果采用經典的曼哈頓距離(Manhattan)算法,則無法正確區分用戶A和B。
但是,通過分析可知,用戶A和B任意兩個相鄰特征值之間的變化率是完全相反的。例如,用戶A按鍵“t”和“i”的持續時間分別為70 ms和60 ms,其變化率為-10 ms;用戶B按鍵“t”和“i”的持續時間分別為60 ms和80 ms,其變化率為20 ms。因此,利用兩個相鄰特征值之間的變化率,可以很容易地將用戶A和B區分開來。
為了將任意兩個相鄰特征值之間的變化率引入擊鍵認證算法中,本文定義了一種擊鍵特征曲線差異度的概念,既包含了常規的擊鍵特征量,又能體現出任意兩個相鄰特征值之間的變化率信息。基于上述思想,本文提出一種新穎的識別算法,可以進一步提高擊鍵認證算法的性能,識別準確度更高,效果更好。
對于具體的某個用戶,通過預先多次采集其擊鍵數據可以構成一個擊鍵數據集,其中的樣本均屬于與該用戶相對應的模式類。
擊鍵數據集由兩個子集組成,分別是輸入密碼時的擊鍵持續時間數據集Spr和擊鍵時間間隔數據集Spp。

數據集Spr中的任意元素均可用曲線表示,曲線的橫坐標為 j,縱坐標為j=1,2,…,n ,如圖1(a)所示。同理,數據集Spp中的任意元素也可用曲線表示,曲線的橫坐標為k,縱坐標為k=1,2,…,n-1,如圖1(b)所示。文中將上述曲線稱為擊鍵特征曲線。

圖1 擊鍵特征曲線
根據每個數據集Spr和Spp中所包含的元素取值,可獲得相應的m條擊鍵特征曲線,然后采用統計學方法計算擊鍵特征曲線的上下邊界。
首先,設集合Spr和Spp中所包含元素的均值分別為,則:

其次,設集合Spr和Spp中所包含元素的標準差分別為,則:

最后,設集合Spr中所包含元素的上、下邊界分別為,集合 Spp中所包含元素的上、下邊界分別為,則:

式中,ξ1為可調節的閾值,取值范圍為0~3。
注1 ξ1的取值范圍是根據中心極限定理(即假定采集的擊鍵時間特征量服從正態分布)而確定的。ξ1值越大,上、下邊界的范圍越大,樣本處于邊界內的概率增加,從而使FRR值減小,FAR值增大;ξ1值越大,上、下邊界的范圍越小,樣本處于邊界內的概率減小,進而使得FRR值增大,FAR值減小。選取的ξ1值應盡可能使EER值達到最小值,ξ1取值范圍是0~3,一般可選取ξ1=2。

圖2 擊鍵特征曲線上/下邊界
根據上述擊鍵特征曲線邊界的定義可知,上、下邊界曲線將整個二維平面劃分為內部區域和外部區域,如圖3所示。圖3中陰影區域稱為數據集內部區域,其余的非陰影區域則統稱為外部區域。

圖3 擊鍵數據集區域劃分示意圖
根據上述定義可知,如果一個樣本是某個數據集的外部樣本,在相應的外部區域內,這個樣本的特征曲線必定會與其數據集的上邊界或下邊界曲線構成若干個封閉區域(如圖4中的陰影區域所示)。所有封閉區域的總面積越大,表示樣本與此數據集的差異越大,樣本不屬于此數據集的可能性越大。因此基于上述原理,本文提出一種新穎的特征曲線差異度的概念,其定義如下:

圖4 擊鍵特征曲線差異度物理含義示意圖



式中:

根據擊鍵特征曲線差異度的定義可知,特征曲線差異度不僅與擊鍵持續時間(j=1,2,…,n)和擊鍵時間間隔相關,還與其任意兩個相鄰的時間特征值1,2,…,n-2)之間的變化率相關,主要包括變化方向和幅度。因此,與僅使用擊鍵持續時間和擊鍵時間間隔的傳統擊鍵認證算法相比,基于特征曲線差異度的用戶身份認證識別算法性能更好。
基于擊鍵特征曲線差異度的用戶身份認證算法步驟如下:
(1)數據采集
根據式(3)和式(4),設 Spr和 Spp為用戶A的擊鍵持續時間數據集和擊鍵時間間隔數據集,數據集的樣本個數為m,用戶輸入的密碼長度為n。
(2)訓練過程
步驟1根據式(5)和式(6)分別計算數據集Spr和Spp中元素的均值 μpr和 μpp。
步驟2根據式(7)和式(8)分別計算數據集Spr和Spp中元素的標準差σpr和σpp。
步驟3根據式(9)和式(10)分別計算數據集Spr和Spp中元素的特征曲線上、下邊界和
步驟4根據式(11)和式(12)分別計算數據集Spr和Spp中每個元素的特征曲線差異度,并構成擊鍵持續時間特征曲線差異度集合Qpr、擊鍵時間間隔特征曲線差異度集合Qpp和總的擊鍵特征曲線差異度集合

步驟5計算集合Qtotal中元素的均值μD和方差σD:

(3)測試過程
步驟1根據式(11)和式(12)分別計算測試樣本為和的特征曲線差異度和。
步驟2計算測試樣本總的特征曲線差異度Ds:

步驟3根據下式對測試樣本進行判定:

式中,ξ2為可調閾值,取值范圍為ξ2>0。
如果不等式(18)成立,認定此測試樣本屬于用戶A;否則,認定此測試樣本不屬于用戶A。
注2 ξ2是影響FRR和FAR的重要參數,ξ2取值越大,由式(18)可知,測試樣本被判定為屬于某用戶的可能性越大,因此FRR值越低而FAR值越高。故通常需要根據算法性能指標要求與ξ1的值來選取合適的ξ2,盡可能使EER值最小。
本文使用的數據來自于卡耐基梅隆大學Benchmark的數據集[9],采用已公開的第三方數據對各個算法進行比較會更客觀,產生的結果也更具有可比性。
他們從校園里招募了51名志愿者,覆蓋了學校里所有專業的學生。在記錄擊鍵信息時,所有的參與者都輸入相同的密碼,每一個志愿者要求輸入400次密碼(共分為8輪,每輪輸入50遍,每輪之間的間隔至少一天)。密碼選定為“.tie5Roanl”,該密碼長度為10,且包含了大小寫字母、數字和符號,是一個強度較高的密碼。
數據集中共包含了51名用戶對同一個密碼序列(“.tie5Roanl”)的重復錄入信息,即密碼序列共10位,則包含19個擊鍵特征信息,其中10個描述持續時間,9個描述擊鍵時間間隔。
該數據集在采集過程中,每個用戶的擊鍵信息分8輪采集,每輪之間的間隔至少一天,可能導致所采集的用戶擊鍵信息穩定性較差,波動幅度較大。因此,本文采用統計學的方法對原始實驗數據進行預處理。
步驟1根據式(5)~式(8),分別計算每個用戶的擊鍵數據集Spr、Spp中向量元素的均值 μpr、μpp和標準差σpr、σpp。
步驟2對Spr、Spp中的每個元素計算Δpr=如果(j為維度下標,j=1,2,…,n)或(k為維度下標,k=1,2,…,n-1),則將元素和從 Spr、Spp中刪除。
步驟3遞歸上述步驟,直至Spr、Spp中的所有元素均滿足且
經過實驗,認證算法的識別效果相比不進行預處理時有較顯著的改觀。
首先,在算法訓練階段,依次取每個用戶采樣數據集(預處理后)中前20%、40%、60%和80%的樣本作為訓練樣本來建立該用戶的模板。為便于實驗結果分析,用變量TP表示上述用戶的訓練樣本數量占總樣本數量的百分比。
然后,分別取數據集中后80%、60%、40%和20%的樣本作為測試樣本,計算該用戶的錯誤拒絕率FRR。
接下來,使用其他50個用戶的全部采樣樣本(預處理后)作為攻擊密碼,計算該用戶的錯誤接受率FAR。
上述過程會循環下去,直至51個用戶的FRR和FAR全部計算出來。最后,取所有用戶FRR和FAR的平均值作為身份認證算法的性能指標。
由于算法性能受閾值ξ1和ξ2的影響,首先實驗分析閾值ξ1和ξ2對FRR和FAR的影響規律,為閾值ξ1和ξ2的設置提供參考依據。當ξ2≡1時,FRR和FAR隨ξ1的變化曲線如圖5(a)所示;當 ξ1≡1時,FRR和FAR隨ξ2的變化曲線如圖5(b)所示。由此可知,FRR隨 ξ1和ξ2的增大而減小,FAR隨ξ1和ξ2的增大而增大,應設置合適的閾值ξ1和ξ2使得EER達到最小值。

圖5 閾值ξ1和ξ2對FRR和FAR的影響
為驗證算法的性能,將本文提出的基于擊鍵特征曲線差異度的用戶身份認證算法與Manhattan距離算法[17]、Manhattan(scaled)算法[17]和統計學算法(Statistics)[3]、神經網絡算法(Neural networks)[8]和機器學習算法(Machine learning)[9]進行對比。上述5種比對算法是目前在擊鍵動力學中廣泛應用且認證效果較好的方法。
實驗得到了用戶訓練樣本數量占總樣本數量的比例(TP)分別為20%、40%、60%和80%情況下,各種算法的錯誤拒絕率(FRR)、錯誤接受率(FAR)和相等錯誤率(EER)。
通過分析表1~表4中的實驗結果可知,在TP取值不同的情況下,本文提出的基于擊鍵特征曲線差異度的認證算法的相等錯誤率(EER)分別為12.01%、7.88%、7.09%和5.81%,均顯著優于其他5種比對算法,識別準確度高,對擊鍵序列的認證效果更理想。

表1 TP為20%時算法性能指標

表2 TP為40%時算法性能指標

表3 TP為60%時算法性能指標

表4 TP為80%時算法性能指標
由圖6可知,隨著訓練樣本數量(TP)的增加,各算法的相等錯誤率(EER)均逐漸減小。但是,與其他5種算法相比,本文算法的EER隨TP的收斂速度快。神經網絡算法和機器學習算法在訓練樣本較小的情況下,性能與本文算法存在一定的差距,僅在訓練樣本足夠多的情況下,性能指標才與本文算法接近。例如,在TP為20%時,本文算法的EER為12.01%,顯著優于Manhattan算法的 29.32%、Manhattan(scaled)算法的 18.60%、Statistics算法的17.60%、神經網絡算法的17.12%和機器學習算法的14.97%。這說明,即使在訓練樣本較少的情況下,本文算法依然能取得較好的認證效果。

圖6 各算法的EER指標隨TP的變化曲線
因此,上述實驗結果表明,本文提出的采用擊鍵特征曲線差異度的認證算法比目前應用的傳統算法的識別準確度更高,性能更好。
本文提出了一種新穎的基于擊鍵特征曲線差異度的用戶身份認證方法。相對于傳統的認證算法,本文算法不僅使用了常規的擊鍵時間特征量,例如擊鍵持續時間和擊鍵時間間隔,而且引入了任意兩個相鄰時間特征值之間的變化率,并給出了擊鍵特征曲線差異度的概念和相關的認證算法。通過實驗對比,相比于傳統算法,采用擊鍵特征曲線差異度的認證算法的錯誤拒絕率(FRR)、錯誤接受率(FAR)和相等錯誤率(EER)更低,即使在訓練樣本較少的情況下,依然能取得較好的識別效果,在一定程度上反映出本文算法的有效性和優越性。