CN110443012A - 基于击键特征的身份识别方法 - Google Patents

基于击键特征的身份识别方法 Download PDF

Info

Publication number
CN110443012A
CN110443012A CN201910494404.3A CN201910494404A CN110443012A CN 110443012 A CN110443012 A CN 110443012A CN 201910494404 A CN201910494404 A CN 201910494404A CN 110443012 A CN110443012 A CN 110443012A
Authority
CN
China
Prior art keywords
keystroke
data
characteristic
key
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910494404.3A
Other languages
English (en)
Inventor
秦玉海
刘路强
时傲东
杜昊霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHINA COLLEGE OF CRIMINAL POLICE
Original Assignee
CHINA COLLEGE OF CRIMINAL POLICE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHINA COLLEGE OF CRIMINAL POLICE filed Critical CHINA COLLEGE OF CRIMINAL POLICE
Priority to CN201910494404.3A priority Critical patent/CN110443012A/zh
Publication of CN110443012A publication Critical patent/CN110443012A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints

Abstract

本发明属网络安全身份识别方法领域,尤其涉及一种基于击键特征的身份识别方法,包括击键数据采集模块、训练模块及匹配模块;所述击键数据采集模块主要完成当用户进行击键行为时,对用户所产生的击键数据进行收集,得到原始数据;所述训练模块完成击键特征数据的提取与分离;把用户从键盘输入的样本击键信息进行击键数据预处理和击键特征提取,并完成用户样本数据训练分类,生成特征数据库;所述匹配模块完成判别用户击键特征是否匹配。本发明正确识别率高,无需特定物理硬件,硬件安装和普及,成本低廉。

Description

基于击键特征的身份识别方法
技术领域
本发明属网络安全身份识别技术领域,尤其涉及一种基于击键特征的身份识别方法。
背景技术
随着互联网的迅猛发展,计算机已经成为人类大脑的延伸,计算机已经成为我们这个时代的核心设备,每时每刻都需要它。截至2018年12月,中国网民规模达8.29亿,全年新增网民5653万,互联网普及率为59.6%。互联网已经逐渐融入人们的生活,成为不可或缺的一部分。但是伴随着互联网的快速发展,互联网安全也逐渐进入互联网用户的关注视线。
互联网发展初期,系统设计者设计身份验证系统,互联网身份验证系统的目的是验证用户的现实身份与虚拟网络身份是否一致。口令身份验证是使用最多的身份验证系统,它依据用户设置的用户名、密码进行身份验证。目前,身份验证系统沿用至今,成为任何具有安全级别系统中不可缺乏的一部分。因此,身份验证系统并不是以一种新生的技术出现在互联网用户视线中。随着人工智能的发展,生物特征鉴别和智能卡身份鉴别都被应用于互联网身份验证系统中。
随着网民规模不断扩大,网络犯罪分子利用互联网的匿名性、隐蔽性伪装成各种各样身份的人,在网络中进行犯罪活动。人类不得不面临很多信息安全方面的挑战,如网络可能被非法入侵,系统可能受到恶意攻击,私人信息可能被窃取等。在侦办黑客入侵和攻击案件时,犯罪嫌疑人否认曾经入侵和攻击过受害者计算机,因此认定犯罪嫌疑人与击键行为人同一非常重要。
生物识别属于生物测定学的内容,生物测定学将生物识别分为生理性生物测定和行为性生物测定。利用生物先天所有的特征进行生物测定属于生理性生物测定,例如指纹、面部和虹膜。而利用生物生活习惯、对某一事物的熟悉程度进行生物测定属于行为性生物测定,例如击键特征身份识别、步态特征身份识别等。
击键特征身份识别技术属于行为性生物测定,意味着它是通过分析用户的行为方式进行用户测定。由于不同用户对每一个按键的击键习惯不同,每个用户对键盘的熟悉程度不一致,这就使得各用户在输入信息时均形成了自己独特的击键特征。目前在身份验证系统普遍存在着数据采集效率差,正确识别率低,成本高,操作复杂等问题。
发明内容
本发明旨在克服现有技术的不足之处而提供一种正确识别率高,无需特定物理硬件,硬件安装和普及,安全性好,成本低廉的基于击键特征的身份识别方法。
为解决上述技术问题,本发明是这样实现的:
基于击键特征的身份识别方法,包括击键数据采集模块、训练模块及匹配模块;
所述击键数据采集模块主要完成当用户进行击键行为时,对用户所产生的击键数据进行收集,得到原始数据;
所述训练模块完成击键特征数据的提取与分离;把用户从键盘输入的样本击键信息进行击键数据预处理和击键特征提取,并完成用户样本数据训练分类,生成特征数据库;击键数据预处理主要对用户击键特征数据的清洗;击键特征提取主要提取击键特征信息,按键按下时间、按键释放时间、按键弹起时间以及击键指纹特征;
所述匹配模块完成判别用户击键特征是否匹配;匹配模块同样需要完成击键数据预处理和击键特征提取工作;将获得的用户击键特征与特征数据库中的模版进行判断是否匹配;若匹配成功,说明用户身份识别成功,则把获取到的击键特征信息加入特征数据库;若匹配失败,说明用户身份识别失败。
作为一种优选方案,本发明所述击键数据采集模块包括安装键盘钩子模块、按键按下事件模块、按键释放事件模块、按键弹起事件模块以及卸载键盘钩子模块。
进一步地,本发明所述击键数据包括固定文本击键数据或自由文本击键数据。
进一步地,本发明所述固定文本击键数据选择“按键按下时间长度”、“按键释放时间长度”和“按键弹起时间长度”作为击键特征值,选取43个击键特征属性对击键行为人进行唯一标识。
进一步地,本发明所述自由文本击键数据选择11个最常见的韵母作为击键特征,选取34个击键特征属性对击键行为人进行唯一标识。
进一步地,本发明所述固定文本击键数据采用击键特征多感知机分类方法。
进一步地,本发明所述自由文本击键数据采用击键特征朴素贝叶斯分类方法。
与现有技术相比,本发明具有如下特征:
(1)唯一性
由于各用户键盘熟悉程度、击键习惯等不尽相同,这就使得各用户在输入自己口令时均形成了自己独特的击键特征。而且每个用户对单独按键的习惯独一无二,想要模仿一个人的击键特征很难实现,因此击键行为特征可以唯一标识每个个体,且难以被模仿。
(2)数据采集便利
DNA识别、指纹识别、视网膜识别等生物识别的信息采集需要特定的设备,而且设备价格昂贵。相比其他生物识别,击键特征识别只需要键盘即可完成击键特征原始数据的采集,对于采集到的数据可上传至指定服务器,而对击键特征的匹配依赖与软件即可实现判别。由于生活中键盘随处可见,大大提高了击键特征数据采集的效率,降低了击键特征数据采集成本,因此击键特征身份识别比其他生物识别更加便利。
(3)与密码等身份验证结合增加安全性
单纯的密码作为身份验证,当发生密码泄露或攻击者暴力破解用户密码时,攻击者可以轻而易举的登陆用户账户。当击键特征身份识别与密码身份验证结合是,即使攻击者已经获取到用户密码,根据其输入密码时的击键特征进行二次身份验证,击键特征很难被假冒,可以有效阻止除真正用户之外的其他攻击者登陆用户账户。因此当击键特征身份识别与密码等身份验证结合可以增加密码认证强度,进而增加系统的安全性。
(4)持续监测和验证
基于击键特征的身份识别技术能够实现连续监测和验证,当用户持续使用键盘时,对在用户自由文本击键特征的身份识别即可实现持续对用户的击键行为进行监测,对连续收集到的用户原始击键特征数据进行不间断匹配,能够实时对用户身份进行识别验证。
本发明应用钩子技术设计了击键特征数据采集模块,进而完成了数据采集程序的开发。在固定文本击键特征研究过程中,通过对击键数据的分析,选择“按键按下时间长度”、“按键释放时间长度”和“按键弹起时间长度”作为击键特征值,选取43个击键特征属性对击键行为人进行唯一标识。经过对实验结果的统计分析,得出正确识别率最高的分类方法是“多感知机”分类方法,正确识别率高达93.6%。在自由文本击键特征研究过程中,选择11个最常见的韵母作为击键特征,选取34个击键特征属性对击键行为人进行唯一标识,经过对实验结果的统计分析,得出正确识别率最高的分类方法是“朴素贝叶斯”分类方法,正确识别率达到89.4%。
附图说明
下面结合附图和具体实施方式对本发明作进一步说明。本发明的保护范围不仅局限于下列内容的表述。
图1本发明击键特征身份识别工作流程框图。
图2本发明击键击键原数据采集工作流程框图。
具体实施方式
如图1所示,基于击键特征的身份识别方法,包括击键数据采集模块、训练模块及匹配模块;
所述击键数据采集模块主要完成当用户进行击键行为时,对用户所产生的击键数据进行收集,得到原始数据;
所述训练模块完成击键特征数据的提取与分离;把用户从键盘输入的样本击键信息进行击键数据预处理和击键特征提取,并完成用户样本数据训练分类,生成特征数据库;击键数据预处理主要对用户击键特征数据的清洗;击键特征提取主要提取击键特征信息,按键按下时间、按键释放时间、按键弹起时间以及击键指纹特征;
所述匹配模块完成判别用户击键特征是否匹配;匹配模块同样需要完成击键数据预处理和击键特征提取工作;将获得的用户击键特征与特征数据库中的模版进行判断是否匹配;若匹配成功,说明用户身份识别成功,则把获取到的击键特征信息加入特征数据库;若匹配失败,说明用户身份识别失败。
击键原数据采集准确性保证了对击键特征分析研究的精准度。对于击键特征数据的采集,本发明使用钩子技术,对用户击键行为产生的击键特征进行记录。针对击键数据采集,设计击键数据采集程序,其程序流程图如图2所示。
本发明所述击键数据采集模块包括安装键盘钩子模块、按键按下事件模块、按键释放事件模块、按键弹起事件模块以及卸载键盘钩子模块。本发明所述击键数据包括固定文本击键数据或自由文本击键数据。本发明所述固定文本击键数据选择“按键按下时间长度”、“按键释放时间长度”和“按键弹起时间长度”作为击键特征值,选取43个击键特征属性对击键行为人进行唯一标识。本发明所述自由文本击键数据选择11个最常见的韵母作为击键特征,选取34个击键特征属性对击键行为人进行唯一标识。本发明所述固定文本击键数据采用击键特征多感知机分类方法。本发明所述自由文本击键数据采用击键特征朴素贝叶斯分类方法。多层感知机分类方法由感知机分类方法(PLA,Perceptron LearningAlgorithm)推广而来,它拥有多个神经元层,因此也被称作深度神经网络。感知机PLA是一个线性的二分类器,只能对线性数据进行有效分类,对于非线性的数据可能无法进行有效分类。因此,便希望加深网络层次,加深后的多层网络可以模拟更加复杂的函数。多感知机应运而生,多层网络是多层感知机(MLP)最重要的特点。多层网络的第一层为输入层,最后一层为输出层,输入层与输出层之间称为隐层。在多层感知机中,隐层的数量不做固定,具体层数根据需求进行选择。输出层神经元的个数也不做规定,可以有多个输出神经元。朴素贝叶斯分类法,又叫做NaiveBayes分类法,在统计资料的基础上,依据某些特征,计算各个类别的概率,从而实现分类。其中朴素是指特征条件独立,贝叶斯是指该分类法基于贝叶斯定理。朴素贝叶斯分类法指的是对创造学习模型的监督,实现简单,没有迭代。
本发明所使用的的击键特征分类方法包括:贝叶斯分类法、多感知机分类法、决策树分类法、K-最近邻分类法。其中贝叶斯分类法又包括朴素贝叶斯分类法和贝叶斯网络分类法。
钩子技术的实现
编写钩子程序的步骤分为3步:定义钩子函数、安装钩子和卸载钩子。
(1)定义钩子函数
钩子函数是一种特殊的回调函数。钩子监视的特定事件发生后,系统会调用钩子函数进行处理。钩子函数的原型:
public delegate int HookProc(intnCode,Int32 wParam,IntPtr lParam)
其中参数wParam和 lParam包含所钩消息的信息,nCode包含有关消息本身的信息,比如是否从消息队列中移出。先在钩子函数中实现自定义的功能,然后调用函数CallNextHookEx()把钩子信息传递给钩子链的下一个钩子函数。CallNextHookEx()函数的原型如下:
public static extern int CallNextHookEx(int idHook, int nCode,Int32wParam,IntPtr lParam);
参数idHook是钩子句柄,nCode、wParam和lParam是钩子函数。当然也可以通过直接返回TRUE来丢弃该消息,就阻止了该消息的传递。
(2)安装钩子
在程序初始化的时候,调用函数SetWindowsHookEx()安装钩子。其函数原型为:
public static extern int SetWindowsHookEx(int idHook,HookProc lpfn,IntPtr hInstance,int threadId)
参数idHook表示钩子类型,它是和钩子函数类型一一对应的。比如,WH_KEYBOARD表示安装的是键盘钩子,WH_MOUSE表示是鼠标钩子等。lpfn是钩子函数的地址。hInstance是钩子函数所在的实例的句柄。对于线程钩子,该参数为NULL;对于全局钩子,该参数为钩子函数所在的DLL句柄。threadId 指定钩子所监视的线程的线程号,使用GetCurrentThreadId函数可以获取线程id。对于全局钩子,该参数为NULL。
(3)卸载钩子
当不再使用钩子时,必须及时卸载。简单地调用函数:
public static extern bool UnhookWindowsHookEx(int idHook)
参数idHook表示钩子类型,它是和钩子函数类型一一对应的。
击键数据采集程序主要包括五个部分,分别是安装键盘钩子、按键按下事件、按键释放事件、按键弹起事件以及卸载键盘钩子。
(1)安装键盘钩子
安装键盘钩子需要调用Start()函数,具体代码如下:
public void Start(){
if (hKeyboardHook == 0)
{KeyboardHookProcedure = new HookProc(KeyboardHookProc);
hKeyboardHook=SetWindowsHookEx(WH_KEYBOARD_LL,KeyboardHookProcedure,GetModuleHandle(System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName), 0);
if (hKeyboardHook == 0) { Stop();
throw new Exception("安装键盘钩子失败"); } } }
关于SetWindowsHookEx (int idHook, HookProc lpfn, IntPtr hInstance, intthreadId)函数将钩子加入到钩子链表中,说明一下四个参数:
idHook 钩子类型,即确定钩子监听何种消息,当idHook的值为2时,即监听键盘事件消息并且是线程钩子。当idHook的值为7时,即全局钩子监听鼠标事件消息。当idHook的值为13时,即全局钩子监听键盘事件消息。当idHook的值为14时,即线程钩子监听鼠标事件消息。
lpfn钩子进程的地址指针。如果dwThreadId参数为0 或是一个由别的进程创建的线程的标识,lpfn必须指向DLL中的钩子子程。除此以外,lpfn可以指向当前进程的一段钩子子程代码。钩子函数的入口地址,当钩子钩到任何消息后便调用这个函数。
hInstance应用程序实例的句柄。标识包含lpfn所指的子程的DLL。如果threadId标识当前进程创建的一个线程,而且进程代码位于当前进程,hInstance必须为NULL。可以很简单的设定其为本应用程序的实例句柄。threaded 与安装的钩子进程相关联的线程的标识符。如果为0,钩子进程与所有的线程关联,即为全局钩子。
(2)按键按下事件
按键按下事件需要调用hook_KeyDown()函数,使用DateTime.Now.Ticks()函数计时,能够记录按键按下时的时间。xieru()函数,将按键特征值写入到本地文档保存。
public void hook_KeyDown(object sender, KeyEventArgs e){
timeks = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff");longcurrentTicks=DateTime.Now.Ticks;DateTime dtFrom = new DateTime(2000, 1, 1, 0,0, 0, 0);currentMillis1 = (currentTicks - dtFrom.Ticks) / 10000;up_down =currentMillis1 - currentMillis3;xieru(e.KeyData.ToString() + "," +currentMillis1);}
(3)按键释放事件
按键释放事件需要调用hook_KeyPressEvent()函数,使用DateTime.Now.Ticks()函数计时,能够记录按键按下时的时间。xieru()函数,将按键特征值写入到本地文档保存。
public void hook_KeyPressEvent(object sender, KeyPressEventArgs e){int i = (int)e.KeyChar;timeks = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ssfff");long currentTicks = DateTime.Now.Ticks;DateTime dtFrom = new DateTime(2000, 1, 1, 0, 0, 0, 0);currentMillis2 = (currentTicks - dtFrom.Ticks) /10000;xieru("," + currentMillis2);}
(4)按键弹起事件
按键谈起事件需要调用hook_KeyUp()函数,使用DateTime.Now.Ticks()函数计时,能够记录按键按下时的时间。xieru2()函数,将按键特征值写入到本地文档保存。
public void hook_KeyUp(object sender, KeyEventArgs e){
timeks = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff");
long currentTicks = DateTime.Now.Ticks;
DateTime dtFrom = new DateTime(2000, 1, 1, 0, 0, 0, 0);
currentMillis3 = (currentTicks - dtFrom.Ticks) / 10000;
long down_release = currentMillis2 - currentMillis1;
long release_up = currentMillis3 - currentMillis2;
xieru2("," + currentMillis3 + "," + up_down + "," + down_release + "," +release_up);}
(5)卸载键盘钩子
当程序结束时,需要调用UnhookWindowsHookEx()函数释放钩子,以确保系统性能。
public void Stop(){
bool retKeyboard = true;
if (hKeyboardHook != 0){
retKeyboard = UnhookWindowsHookEx(hKeyboardHook);
hKeyboardHook = 0;}
if (!(retKeyboard)) throw new Exception("卸载钩子失败");}
固定文本击键特征身份识别
1、击键特征信息
在用户产生击键行为时,用户敲击键盘所产上的信息将会被记录,主要包括按键值、按键从按下到按键弹起所持续时间、一次按键弹起事件到下一次按键开始按下事件间隔时间、按键开始按下以及按键开始弹起等,这些事件及其时间均可以被提取。现在关于击键特征信息大概可以提取五种,分别是KD(Key Down)、KR(KeyRelease)KU(KeyUp)、KU_KD、KD_KR、KR_KU。其中KD是指键按下事件,KU是指按键弹起事件。KU_KD是上一个按键按键弹起事件(KeyUp)发生到下一个按键按下事件(KeyDown)发生,也就是两个按键之间间隔时间。KD_KR是按键按下事件(KeyDown)发生到按键释放事件(KeyRelease)发生,也就是按键按下持续时间。KR_KU是按键释放事件(KeyRelease)发生到按键弹起事件(KeyUp)发生。
2、数据分析和特征属性提取
击键特征根据输入字符串是否固定,将基于击键特征的身份识别技术研究主要分为固定文本击键特征身份识别和自由文本击键特征身份识别。固定文本击键特征指用户输入固定字符串或者固定文本。
3、数据采集
击键特征时间信息包括六类,按键按下时间(KD,KeyDown)、按键释放时间(KR,KeyRelease)、按键弹起时间(KU,KeyUp)、KU_KD时间、KD_KR时间以及KR_KU时间,其中按键按下时间、按键释放时间、按键弹起时间时间是根据硬件采集到的时间数据,KU_KD、KD_KR和KR_KU则是根据采集到的时间经过计算所得。所以数据采集需要使用键盘钩子Hook技术记录按键按下事件KD时间、按键释放事件KR时间和按键弹起事件KU时间。用户输入“NIHAOWOMENSHI”并以回车键为结尾,使用键盘钩子Hook技术获取到按键的原始数据。
4、数据分析
对击键特征身份识别需要选取合理的击键时间作为击键特征值数据,只有选取合理的击键特征信息,才能确保在特征数据库匹配阶段能够保证匹配的可靠性,进而提高击键特征身份识别系统的准确度。
为了选取可靠的击键特征时间数据,我们选取在汉语中最常用的一段文字编辑“你好 我们是”的汉语拼音(“nihao womenshi”)和“space”键结合,总共14个固定字符作为实验数据字符。通过HOOK技术采集击键行为时间戳。本实验选用10名经常使用计算机的用户进行实验,每个用户输入50次实验数据。采集到的实验数据包括4.1节中提到的七元组序列(Key、KeyDown、KeyRelease、KeyUp、KU_KD、KD_KR以及KR_KU),主要分析KU_KD、KD_KR和KR_KU三个实验数据,找出一种最能唯一标识击键行为人的击键数据作为击键特征值。
(1)KU_KD:是上一个按键按键弹起事件(KeyUp)发生到下一个按键按下事件(KeyDown)发生,也就是两个按键之间间隔时间。计算KU_KD时间的公式(4.1)如下:
KU_KD n+1 =KeyDownn+1- KeyUpn (4.1)
其中KeyDown和KeyUp分别代表按键按下事件和按键弹起事件的时间戳。通过将击键行为的KU_KD时间按照事件发生顺序组成特征向量,可得KU_KD时间的特征向量,见式(4.2):
VKU_KD = { KU_KD1,KU_KD2,KU_KD3,……,KU_KDn } (4.2)
其中n为输入字符串的长度。
(2)KD_KR:是按键按下事件(KeyDown)发生到按键释放事件(KeyRelease)发生,也就是按键按下持续时间。计算KD_KR时间的公式(4.3)如下:
KD_KRn = KeyReleasen – KeyDownn (4.3)
其中KeyDown和KeyRelease分别代表按键按下事件和按键释放事件的时间戳。通过将击键行为的KU_KD时间按照事件发生顺序组成特征向量,可得KU_KD时间的特征向量,见式(4.4)
VKD_KR = {KD_KR1,KD_KR2,KD_KR3,…,KD_KRn } (4.4)
其中n为输入字符串的长度。
(3)KR_KU:是按键释放事件(KeyRelease)发生到按键弹起事件(KeyUp)发生。计算KR_KU时间的公式(4.5)如下:
KR_KUn = KeyUpn - KeyReleasen (4.5)
其中KeyUp和KeyRelease分别代表按键弹起事件和按键释放事件的时间戳。通过将击键行为的KR_KU时间按照事件发生顺序组成特征向量,可得KR_KU时间的特征向量,见式(4.6):
VKR_KU = { KR_KU1,KR_KU2,KR_KU3,……,KR_KUn } (4.6)
其中n为输入字符串的长度。
为保证用户对计算机键盘的熟悉程度,每名用户使用各自最常用的计算机键盘为输入设备,尽量保持环境因素不变,以减少环境对用户按键习惯的影响,确保同一行为人击键特征数据不会太大波动。以其中一组数据为例,对击键原数据进行处理,得出KU_KD、KD_KR以及KR_KU的值。
5、特征属性提取
特征提取将经计算后的三种KU_KD、KD_KR和KR_KU击键特征时间数据从击键原数据当中提取出来,以KU_KD、KD_KR和KR_KU击键特征时间数据作为用户击键行为特征数据,同时选定“NIHAO WOMENSHI”14个字符为固定文本。
实验选择14个字符做为击键行为时的按键。每个击键行为分别对应三个时间,分别是KU_KD、KD_KR和KR_KU,为了区分不同的实验用户,增加users变量,直观标识实验用户,由此实验选取43个击键特征数据作为击键特征。43条击键特征可以唯一标识一名实验用户。
对实验的10名用户所产生的原始击键数据进行进行各特征值比较,将每名用户所产生的50次击键特征求取平均值,对每名用户击键行为的每一种特征的击键特征值分别比较。
自由文本击键特征身份识别
1、击键特征选取
击键特征根据输入字符串是否固定,将基于击键特征的身份识别技术研究主要分为固定文本击键特征身份识别和自由文本击键特征身份识别。自由文本击键特征身份识别是指用户输入不特定字符串,对用户输入的文本信息所产生的击键特征信息进行分析研究,得出训练集与样本的匹配度,并根据匹配度决定训练集与样本是否来自同一个体。
相比固定文本击键行为,自由文本击键行为产生数据信息量大,特征种类多,数据提取难度大,增加了自由文本击键特征的研究。自由文本击键特征需要对用户击键特征进行持续性或周期性的监管。在用户使用计算机使用键盘时,能够时刻对用户所产生的大量击键特征信息进行收集,收集到击键特征信息的庞杂,同时也会受到各种环境因素的影响,对击键特征信息的数据预处理和特征提取与分离增加了难度,因此对原始击键特征信息的选取特别重要。
对自由文本击键特征的研究,本发明采用与对固定文本击键特征研究相同分类方法,将自由文本击键特征转化为对固定文本击键特征。虽然输入文本不固定,但是采集的特征进行固定。针对自由文本击键特征的研究,本发明以11组按键组合为击键特征,分别是中文中7组复韵母(ai,ao,ou,iu,ie,ue,er)和4组前鼻音韵母(an,en,in,un)。以其中一组击键行为“ai”为例,需要使用键盘钩子HOOK技术采集连续按键“a”和按键“i”按下事件KD时间、按键释放事件KR时间和按键弹起事件KU时间。如图2击键事件时间所示:
其中Ta表示按键“a”按下到弹起的时间间隔,Tai表示按键“a”弹起到按键“i”按下的时间间隔,Ti表示按键“i”按下到弹起的时间间隔。
2、数据分析和特征属性提取
根据采集的连续按键“a”和按键“i”按下事件KD时间、按键释放事件KR时间和按键弹起事件KU时间,计算出Ta、Tai以及Ti时间间隔。用Ta、Tai以及Ti时间间隔唯一标识一次完整的“ai”击键行为。
(1)其中Ta表示按键“a”的一次完整击键行为时间,按键“a”按下到按键“a” 弹起的时间间隔,计算式为:Ta=TaKD-TaKU
TaKD代表按键“a” 按下事件KD时间,TaKU代表按键“a” 按键弹起事件KU时间。
(2)Ti表示按键“i”的一次完整击键行为时间,按键“i”按下到按键“i” 弹起的时间间隔,计算式为:Ti=TiKD-TiKU
TiKD代表按键“i” 按下事件KD时间,TiKU代表按键“i” 按键弹起事件KU时间。
(3)Tai表示一次按键“a”与一次按键“i”的击键行为之间的间隔时间,按键“a”弹起到按键“i” 按下的时间间隔,计算式为:Tai= TaKU -TiKD
TiKD代表按键“i” 按下事件KD时间,TiKU代表按键“i” 按键弹起事件KU时间。
以其中一组数据为例,对击键原数据进行处理,得出完整击键行为时间T和两次击键间隔时间T的值。完整击键行为时间T和两次击键间隔时间根据式,经计算处理所得出。
3、特征属性提取
自由文本击键特征提取分别是中文中7组复韵母(ai,ao,ou,iu,ie,ue,er)和4组前鼻音韵母(an,en,in,un)的击键特征,需要提取每组中的按键完整击键行为时间T和两个按键间隔时间T。实验选择11组个字符组合做为击键行为时的按键。每组击键行为分别对应三个时间,分别是按键组合中第一个按键的完整击键行为时间Ti、第二个按键的完整击键行为时间Tj和两次按键的间隔时间T,为了区分不同的实验用户,增加users变量属性,直观标识实验用户,由此实验选取34个击键特征数据作为自由文本击键特征。34条击键特征可以唯一标识一名实验用户。
4、实验结果
对自由文本击键特征的实验,本发明选择了34个特征属性做为唯一标识击键行为。实验分为两个阶段,第一阶段采集用户击键特征原数据,采集10名用户50次击键行为的时间。第二阶段使用WEKA工具,对采集的用户击键特征数据进行分析,采用十折交叉验证法,基于决策树、神经网络、贝叶斯网络、朴素贝叶斯、K-近邻等多种分类方法对数据进行分析,分析结果如下。采用决策树分类方法中的J48分类方法,正确分类的样本数为393个,分类错误样本数为107。正确分类率为78.6%,错误分类率为21.4%,Kappa系数为0.7622,标准误差为0.2022,平均ROC值为0.899。采用多感知机分类方法,正确分类的样本数为440,分类错误样本数为60。正确分类率为88%,错误分类率为12%,Kappa系数为0.8666,标准误差为0.1379,平均ROC值为0.976。采用贝叶斯网络分类方法,正确分类的样本数为444,分类错误样本数为56。正确分类率为88.8%,错误分类率为11.2%,Kappa系数为0.8755,标准误差为0.1217,平均ROC值为0.988。
采用朴素贝叶斯分类方法,正确分类的样本数为447,分类错误样本数为53。正确分类率为89.4%,错误分类率为10.6%,Kappa系数为0.8822,标准误差为0.1195,平均ROC值为0.988。采用K-最近邻分类,正确分类的样本数为408,分类错误样本数为92。正确分类率为81.6%,错误分类率为18.4%,Kappa系数为0.7955,标准误差为0.1898,平均ROC值为0.898。。
可以理解地是,以上关于本发明的具体描述,仅用于说明本发明而并非受限于本发明实施例所描述的技术方案,本领域的普通技术人员应当理解, 仍然可以对本发明进行修改或等同替换,以达到相同的技术效果;只要满足使用需要,都在本发明的保护范围之内。

Claims (7)

1.基于击键特征的身份识别方法,其特征在于,包括击键数据采集模块、训练模块及匹配模块;
所述击键数据采集模块主要完成当用户进行击键行为时,对用户所产生的击键数据进行收集,得到原始数据;
所述训练模块完成击键特征数据的提取与分离;把用户从键盘输入的样本击键信息进行击键数据预处理和击键特征提取,并完成用户样本数据训练分类,生成特征数据库;击键数据预处理主要对用户击键特征数据的清洗;击键特征提取主要提取击键特征信息,按键按下时间、按键释放时间、按键弹起时间以及击键指纹特征;
所述匹配模块完成判别用户击键特征是否匹配;匹配模块同样需要完成击键数据预处理和击键特征提取工作;将获得的用户击键特征与特征数据库中的模版进行判断是否匹配;若匹配成功,说明用户身份识别成功,则把获取到的击键特征信息加入特征数据库;若匹配失败,说明用户身份识别失败。
2.根据权利要求1所述的基于击键特征的身份识别方法,其特征在于:所述击键数据采集模块包括安装键盘钩子模块、按键按下事件模块、按键释放事件模块、按键弹起事件模块以及卸载键盘钩子模块。
3.根据权利要求2所述的基于击键特征的身份识别方法,其特征在于:所述击键数据包括固定文本击键数据或自由文本击键数据。
4.根据权利要求3所述的基于击键特征的身份识别方法,其特征在于:所述固定文本击键数据选择“按键按下时间长度”、“按键释放时间长度”和“按键弹起时间长度”作为击键特征值,选取43个击键特征属性对击键行为人进行唯一标识。
5.根据权利要求4所述的基于击键特征的身份识别方法,其特征在于:所述自由文本击键数据选择11个最常见的韵母作为击键特征,选取34个击键特征属性对击键行为人进行唯一标识。
6.根据权利要求4所述的基于击键特征的身份识别方法,其特征在于:所述固定文本击键数据采用击键特征多感知机分类方法。
7.根据权利要求5所述的基于击键特征的身份识别方法,其特征在于:所述自由文本击键数据采用击键特征朴素贝叶斯分类方法。
CN201910494404.3A 2019-06-10 2019-06-10 基于击键特征的身份识别方法 Pending CN110443012A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910494404.3A CN110443012A (zh) 2019-06-10 2019-06-10 基于击键特征的身份识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910494404.3A CN110443012A (zh) 2019-06-10 2019-06-10 基于击键特征的身份识别方法

Publications (1)

Publication Number Publication Date
CN110443012A true CN110443012A (zh) 2019-11-12

Family

ID=68428770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910494404.3A Pending CN110443012A (zh) 2019-06-10 2019-06-10 基于击键特征的身份识别方法

Country Status (1)

Country Link
CN (1) CN110443012A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124860A (zh) * 2019-12-16 2020-05-08 电子科技大学 一种在不可控环境下使用键盘和鼠标数据识别用户的方法
CN111416809A (zh) * 2020-03-13 2020-07-14 国网河北省电力有限公司信息通信分公司 一种基于击键识别的持续性认证方法及装置
CN112507299A (zh) * 2020-12-04 2021-03-16 重庆邮电大学 持续身份认证系统中的自适应击键行为认证方法及装置
CN112765579A (zh) * 2021-04-06 2021-05-07 北京芯盾时代科技有限公司 一种用户身份识别方法、装置、设备和存储介质
CN113157662A (zh) * 2021-02-23 2021-07-23 北京芯盾时代科技有限公司 一种行为数据库构建方法、装置和可读存储介质
US11429699B2 (en) 2020-04-13 2022-08-30 International Business Machines Corporation Systems and methods for authentication of a user based on free text

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486832A (zh) * 2010-12-06 2012-06-06 中国人民解放军理工大学 基于击键模式识别的用户认证方法
CN105450412A (zh) * 2014-08-19 2016-03-30 阿里巴巴集团控股有限公司 身份认证方法及装置
CN106529354A (zh) * 2016-11-22 2017-03-22 北京工业大学 身份识别键盘及根据身份识别键盘进行身份验证的方法
CN107124395A (zh) * 2017-03-16 2017-09-01 华北电力大学 一种基于击键韵律的用户身份识别系统及其识别方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486832A (zh) * 2010-12-06 2012-06-06 中国人民解放军理工大学 基于击键模式识别的用户认证方法
CN105450412A (zh) * 2014-08-19 2016-03-30 阿里巴巴集团控股有限公司 身份认证方法及装置
CN106529354A (zh) * 2016-11-22 2017-03-22 北京工业大学 身份识别键盘及根据身份识别键盘进行身份验证的方法
CN107124395A (zh) * 2017-03-16 2017-09-01 华北电力大学 一种基于击键韵律的用户身份识别系统及其识别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐鸿雁 等: "基于中文自由文本击键特征的自动欺骗检测模型", 《四川大学学报(自然科学版)》 *
王振辉 等: "基于鼠标和键盘行为特征组合的用户身份认证", 《计算机应用与软件》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124860A (zh) * 2019-12-16 2020-05-08 电子科技大学 一种在不可控环境下使用键盘和鼠标数据识别用户的方法
CN111124860B (zh) * 2019-12-16 2021-04-27 电子科技大学 一种在不可控环境下使用键盘和鼠标数据识别用户的方法
CN111416809A (zh) * 2020-03-13 2020-07-14 国网河北省电力有限公司信息通信分公司 一种基于击键识别的持续性认证方法及装置
US11429699B2 (en) 2020-04-13 2022-08-30 International Business Machines Corporation Systems and methods for authentication of a user based on free text
CN112507299A (zh) * 2020-12-04 2021-03-16 重庆邮电大学 持续身份认证系统中的自适应击键行为认证方法及装置
CN113157662A (zh) * 2021-02-23 2021-07-23 北京芯盾时代科技有限公司 一种行为数据库构建方法、装置和可读存储介质
CN112765579A (zh) * 2021-04-06 2021-05-07 北京芯盾时代科技有限公司 一种用户身份识别方法、装置、设备和存储介质
CN112765579B (zh) * 2021-04-06 2021-07-09 北京芯盾时代科技有限公司 一种用户身份识别方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN110443012A (zh) 基于击键特征的身份识别方法
Ali et al. Keystroke biometric systems for user authentication
Banerjee et al. Biometric authentication and identification using keystroke dynamics: A survey
Monrose et al. Keystroke dynamics as a biometric for authentication
Saevanee et al. Multi-modal behavioural biometric authentication for mobile devices
Chang et al. Capturing cognitive fingerprints from keystroke dynamics
Mondal et al. Continuous authentication in a real world settings
Ali et al. Authentication and identification methods used in keystroke biometric systems
Lv et al. Biologic verification based on pressure sensor keyboards and classifier fusion techniques
Chen et al. Applying hidden Markov models to keystroke pattern analysis for password verification
Giot et al. Keystroke dynamics authentication
Darabseh et al. On accuracy of classification-based keystroke dynamics for continuous user authentication
Ahmed et al. Digital fingerprinting based on keystroke dynamics.
El Masri et al. Identifying users with application-specific command streams
Krishna et al. Keystroke based user authentication using modified differential evolution
Stolerman Authorship verification
Dora et al. Remote suspect identification and the impact of demographic features on keystroke dynamics
Yaacob et al. Decision making process in keystroke dynamics
Shen et al. Handedness recognition through keystroke-typing behavior in computer forensics analysis
Zareen et al. An authentication system using keystroke dynamics
Changshui et al. AR model for keystroker verification
Tschinkel et al. Keylogger keystroke biometric system
ÖZBEK Classification performance improvement of keystroke data
Menshawy et al. Enhanced authentication mechanisms for desktop platform and smart phones
Panasiuk et al. On the comparison of the keystroke dynamics databases

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191112