◆王鑫 王夢瑩 梁金
身份認證是計算機安全、網絡安全的第一道防線。長久以來,人們一直在研究這方面的技術,試圖尋找一種安全的、可靠的、可行的和簡易的身份認證方式來滿足安全需求。目前市面上應用比較廣泛的身份認證方式有三種[1]:1)傳統字符密碼;2)生物特征認證(指紋識別、虹膜識別等);3)輔助設備(加密狗、口令卡等)。從安全性、方便性、廉價性分析,這些身份認證方式或多或少都存在不足。如傳統的字符型密碼容易被間諜軟件竊取、密鑰存儲問題、容易被猜出;生物特征識別(如指紋、虹膜識別)需要添加額外的設備,這會增加額外的成本開銷;使用輔助設備來進行身份識別(如口令卡、加密狗等),如果這些輔助設備丟失,就無法完成身份認證。因此,研究人員仍然不斷在尋找新的認證方法。
基于計算機輸入行為特征的認證方法,具有鮮明的特點,如:行為方式難以模仿;行為方式無需記憶;行為數據數據量多,行為密碼不具有明顯的特征;無需額外設備,并且在當前的大多數計算機系統中可以直接部署。正是因為這些特點,使得這種認證方法逐漸成為研究的熱點[2-3]。
由于基于計算機輸入行為特征的認證的優點,國內外學者在此基礎上做了很多研究。從2003年開始,國外有四個小組對鼠標的使用行為特征進行了初步的研究[4-8],內容多為基于統計的鼠標行為特征。文獻[9]提出一種基于鼠標運動的用戶再認證方案,他們提出對于每個用戶的每個請求都用決策樹分類器建立不同的模型。文獻[10]提出并實現設計一個為擊鍵特征識別系統設計的壓力感應鍵盤,將擊鍵時間和擊鍵壓力融合。文獻[11]提出基于實時擊鍵序列的主機入侵檢測,該方法能獨立于用戶名和口令之外對用戶進行身份認證。但是這些都僅基于擊鍵或是單考慮鼠標的行為特征,鮮有文章綜合鼠標、鍵盤兩者的行為進行身份認證。
本文提出并實現基于鼠標鍵盤行為的身份認證系統。系統通過常用的輸入設備——鼠標和鍵盤采集用戶訓練和認證的行為數據,采用優化過的SVM(Support Vector Machine,支持向量機)算法結合鼠標、鍵盤雙指標對登錄操作系統的用戶進行身份認證。系統采用靈活的結構布局,允許用戶在系統原有部件的基礎上進行二次開發,有很好的移植性。實驗證明,本系統采用的雙指標復合認證有較高的準確率。
基于鼠標、鍵盤行為的身份認證系統中有一個基本假設:對每個用戶而言,其鼠標、鍵盤操作都存在與其他用戶顯著不同的模式。每個用戶由于個人原因可能造成在使用鼠標、鍵盤時有不同的習慣,比如鼠標軌跡、鼠標滾輪操作速度、鼠標左右鍵的使用習慣、擊鍵時間間隔和擊鍵遲延時間。不同的用戶的操作行為有較大的區別,如不同的用戶在移動鼠標時的力度以及準確定位的能力不同,或是在點擊鍵盤時一次按鍵到下次按鍵之間的時間間隔習慣不同。鼠標、鍵盤的行為特征即是指用戶操作鼠標、鍵盤的習慣。
SVM算法在解決小樣本、非線性極高危模式識別中表現出許多特有的優勢,主要解決的是兩類問題。先來看下面的目標函數:

顯然這是一條直線,在確定的W值和b值下,只有唯一的X值可以滿足(1)式,其他的X值帶入后,要么大于零,要么小于零,這樣其他的X值便被分成兩類,不可分的是滿足(1)式的X。
以上W和X值是一維的情況,SVM在此基礎上給這參數賦予全新定義,將原先的W值和X值擴展到多維,得到如下目標函數:

這里定義了兩個新值Y和A,同時也不難看出X和W都變成了多維,(6)式相當于原來的(1)式,將不滿足(6)式的多維X分成兩類。
用戶定義為一個n維的向量X,取值為用戶鼠標或鍵盤操作特征,如用戶=(左鍵單擊時間t1)。假設有兩個用戶甲和乙。甲有三組鼠標鍵盤特征樣本X1,X2,X3,一組樣本就對應一個式(2),如X1=(x1,x2,x3),X2=(x1,x2,x3),X3=(x1,x2,x3)。應該注意不同樣本中xn值不一定相等,但都是同一類型的值(如鼠標或鍵盤特征),而且括號中的數據個數必須相等。至于數據個數為自定義,比如增加一個雙擊數據記為x4,則X1=(x1,x2,x3,x4),X1=(x1,x2,x3,x4),X1=(x1,x2,x3,x4)。同理,乙有三組鼠標鍵盤特征樣本X4,X5,X6。甲乙樣本數可以不等,但樣本中的鼠標或鍵盤特征必須一一對應,現在總樣本數為6。
再來看(3)(4)式,由于總樣本為6,因此,(3)(4)式子括號中的n為6,即由樣本總數確定,(3)(4)括號中的值要與6個樣本一一對應,如X1對應Y中的y1以及A中的a1,其他樣本以此類推,現將以上對應關系整理如下:

至于Y中的值,做這樣的處理:對應甲的所有y都賦1,對應乙的為-1,也可以反過來,即y1=y2=y3=1,y4=y5=y6=-1;或者,y1=y2=y3=-1,y4=y5=y6=1。A中的值是在用戶訓練時程序對用戶各樣本組計算后自動產生的。本例以用戶甲的y為1作為標準。
再來看(5)式,發現將以上整理的甲乙關系數據代入(5)式右邊,便可得出左邊的W值了。(5)式便是認證的式子,(6)式中的W便是(5)式的W,b為用戶訓練時程序自動產生,C和E為本算法自定義值,X代表待認證用戶的一組新樣本。注意:這里的待認證用戶只能是決定W的兩個用戶,這是因為(6)式和(1)式一樣,解決的是兩類問題,如本例中W由甲乙的樣本而得來,則只能認證甲乙,之后數據都帶入(6)式,大于式子左邊,認證通過。
那么,要對所收集來的行為數據進行整理,并把它們轉化為符合算法要求的格式。由于SVM算法是解決兩類樣本的分類問題的,因而只用一條分類線可以區分兩個樣本。對于多用戶的區分,采取這種方式判定當前用戶的身份。如對用戶1進行判定,且當前訓練過的用戶樣本有6個時,那么用戶1的訓練樣本與其余5個用戶的訓練樣本分別進行分類線計算,然后用這5條分類線進行樣本判定。這里需要注意的是:訓練樣本必須保持奇數個,若當前用戶訓練量不足奇數個,系統會自動調用存根樣本去補足。若分類線判定時投給用戶1的票數超過一半(一條分類線相當于一次投票),那么就判定為1用戶。
算法的優化情況:現在再將以上(2)~(6)式的參數值確定情況整理如表1所示。由表1看出,可以在這些參數中作改變的為X(上面已講過X可自定義,即鼠標指標數自定義且鼠標指標自定義)、C(程序自定義具體值),而剩下的參數要么固定,要么由其他參數算出。
系統概述 系統對收集到的用戶鼠標鍵盤行為信息進行處理、保存,當有用戶登錄系統時,從數據存儲中分析用戶是否合法,從而達到用戶身份認證。并且根據數據庫提供的各種安全措施來保障數據的安全。目前該系統已經封裝成DLL,系統工作原理圖如圖1所示。

表1 各式子參數值確定情況表
本系統有兩個主要過程,分別是訓練模塊和認證模塊。訓練和認證都必須在特定的場景內進行,每一個場景都對應于一個特定的鼠標或鍵盤的行為指標,如左鍵單擊、左鍵雙擊、右鍵單擊、滾輪等,系統共提供9個場景用于訓練和認證。用戶必須根據場景給出的提示完成指定的操作,對于非指定操作、認證或訓練,系統將會自動屏蔽對應的行為數據,并且用戶無法完成當前認證或訓練。由于SVM算法的特性,系統可以根據用戶當前的訓練數據給出一個評估,即根據當前訓練的數據,對在進行認證時通過的可能性進行估計。用戶可以根據此評估結果決定是否再次進行訓練。訓練狀態下,用戶除了完成全部場景的訓練任務,還需要賦予當前賬戶的權限和設置認證時所需的安全級別。認證狀態下,用戶需要提供自己賬戶的賬號和密碼,并根據提示完成對應安全級別的認證場景過程。訓練產生數據的計算、認證數據的分類判斷,全部由優化過的SVM算法完成。系統軟件流程圖如圖2所示。


用戶信息收集和分析 本系統共提供了9個場景用于用戶的訓練和認證。每一個場景的設計都是建立在一定的背景之上的,避免了使用過程中的枯燥和復雜。它們分別是:爺爺的大餐(雙擊圖片)、按點劃線(鼠標軌跡相關)、弟弟的數數測試(單擊圖片)、力量訓練(鼠標滾輪操作)、妹妹的購物(右擊圖片)、口算訓練(鍵盤按鍵相關指標)、寵物市場大搶購(鼠標軌跡相關)、我的密碼手勢(軌跡相關)、傳統密碼字符(擊鍵特征)。每一個場景都對應一個或多個特定的行為指標,在場景過程中,用戶必須按照場景給出的提示完成相應的操作,對于非指定操作,場景將給出操作失誤的提示,該操作所對應的行為數據也將被丟棄。場景指標都是經過測試后選出來的。用這些指標進行身份認證時,需要的樣本數據量小,自然數據收集時間也相應的減少,這樣在訓練和認證的過程中就省了不少的時間。所選出的這些指標,在進行身份判別測試中,它們的效果也是不一樣的。因此,用安全級別對認證時這些指標的使用進行劃分歸類:對于效果比較好的指標,將歸入高的安全級別;對于效果一般的指標,將歸入一般或較低的安全級別。這樣在進行認證時,用戶只需通過預先設定好的安全級別所對應的場景,而不需要通過全部的場景,相比訓練時間又減少了不少。
通過使用特定的場景環境,再結合全局的鍵盤鉤子(WH_KEYBOARD_LL)和全局鼠標鉤子(WH_MOUSE_LL),可以精確地收集到想要的行為數據。在場景環境中,用戶需要根據場景所給出的提示完成一系列的操作,如單擊鼠標左鍵、單擊鼠標右鍵、雙擊鼠標左鍵、滾動鼠標滾輪、移動鼠標光標、輸入預定的密碼字符串等。在場景中,單場景中的每一步操作、場景間的切換都具有可控性,所以可以很精確地定位用戶當前時間段所產生的行為數據是什么,進而可以對這些行為數據進行分類整理,并按計算分析模塊的數據格式要求進行初步的整理。
用戶行為數據的分析是整個系統的核心。采用前文所描述的優化的SVM算法對收集到的用戶行為數據進行處理,然后對登錄操作系統的用戶進行身份認證。
系統特點 本文討論的基于鼠標鍵盤行為的身份認證系統具有以下優點。
1)訓練時間短。系統在收集用戶行為數據時根據特定場景引導用戶操作,相應地減少了訓練的時間。
2)精確性。與單指標認證相比,本系統采用的是雙指標復合認證,認證的準確性有了較大的提高,系統誤識率和拒識率都有所降低。
3)適應性。系統的各功能模塊封裝成DLL,在遵循一定的調用規則的前提下,可以在原有模塊的基礎上進行二次開發。
隨機選取6名用戶,讓他們分別進行全場景訓練操作,收集他們的行為數據。然后使用這些行為數據,進行規定次數的分指標認證,記錄相應的認證結果并對該結果做出分析。
由于C>32后分類結果不好,因此,本工程只考慮C大于等于1且小于等于32的情況。現工程共定義5個指標:左鍵單擊時間、左鍵雙擊時間、右鍵單擊時間、滾輪移動速率、擊鍵時間。這些指標共有31種組合方式,下面給出部分組合的測試數據,如表2、表3所示。

表2 單指標準確率(X指標數=1,C=1)

表3 單指標準確率(X指標數=1,C=32)
通過表2和表3結果的比較,不難看出本用戶正確識別率和其他用戶正確攔截率在C值變化下成此消彼長的關系,經過C值變化結果的分析,C值設為1為最優。
X維數和指標對實驗結果的影響比較復雜,有太多可能性。從實際對31種組合的測試結果中選擇最優的組合,最后選擇的是:X指標數=2,指標是右鍵單擊時間和擊鍵時間,C值為1,測試結果如表4所示。
從表2、表3、表4中可以看出,在雙指標時系統對用戶身份認證有較好的效果。實驗證明,與單指標認證相比,系統采用的雙指標復合認證的準確性有了較大的提高,系統誤識率和拒識率都有所降低。

表4 雙指標準確率(X指標數=1,C=32)
本文提出并實現一種基于鼠標、鍵盤行為的身份認證系統,通過實驗驗證結合鼠標、鍵盤兩種指標的行為特征進行身份認證,效果更好。系統通過特定場景縮短用戶訓練時間,并采用優化的SVM算法實現用戶信息分析,同時該系統具有較好的移植性。接下來的工作放在提高認證的準確度方面,將繼續對鼠標、鍵盤的行為數據進行深入分析和測試,尋找效果更加穩定的指標。
[1]郭曉靜.基于統計學的擊鍵序列身份認證算法研究與改進[D].北京:北京郵電大學,2013.
[2]沈超,蔡忠閩,管曉宏,等.基于鼠標行為特征的用戶身份認證與監控[J].通信學報,2010(7):68-75.
[3]張世雷.基于擊鍵特征的身份識別研究[D].哈爾濱:哈爾濱工業大學,2011.
[4]PUSARA M, BRODLEY C E. User re-authentication via mouse movements[C]//Proceedings of the 2004 ACM Workshop on Visualization and Data Mining for Computer Security, DMSEC Session. Washington DC, USA:2004:1-8.
[5]GAMBOA H, FRED A. A behavioral biometric system based on human computer interaction[J].Proceedings of SPIE,2004,54:4-36.
[6]AHMED A A E, TRAORE I. Anomaly intrusion detection based on biometrics[C].Proceedings of 6th IEEE Information Assurance Workshop. New York, USA:2005:452-453.
[7]AHMED A A E, TRAORE I. Detecting computer intrusions using behavioral biometrics[C].3rd Annual Conference on Privacy, Security and Trust, St. Andrews, Canada:2005:91-98.
[8]GARG A, VIDYARAMAN S, UPADHYAYA S, et al. USim: a user behavior simulation framework for training and testing IDSes in GUI based systems[C].Proceedings of 39th Annual Simulation Symposium. Huntsville, AL:2006:196-203.
[9]PUSARA M, BRODLEY C E. User re-authentication via mouse movements[C].Proceedings of the 2004 ACM Workshop on Visuali-zation and Data Mining for Computer Security, DMSEC Session. Washington DC, USA:2004:1-8.
[10]房超,蔡忠閩,沈超,等.基于鼠標動力學模型的用戶身份認證與監控[J].西安交通大學學報,2008(10):1235-1239.
[11]高艷,管曉宏,孫國基,等.基于實時擊鍵序列的主機入侵檢測[J].計算機學報,2004(3):396-401.