APP下载

基于支持向量机的击键特征异常用户识别

2018-11-01单鹏飞戴大蒙

电脑知识与技术 2018年19期
关键词:机器学习

单鹏飞 戴大蒙

摘要:由于用户对键盘的熟悉程度,击键习惯各不相同,每个用户都有自己的击键行为特征。本文设计基于支持向量机的击键生物特征模型对异常用户进行识别,针对特殊的文本提出了基于逻辑回归的缺失值补全算法和基于相关性热图分析的特征筛选算法对数据进行预处理。提出使用错误种类作为击键认证的特征并使用优化的支持向量机做分类处理。将提出的算法与传统的朴素贝叶斯,决策树等算法进行对比。

关键词:机器学习;击键认证;数据预处理;异常用户识别

中图分类号:TP18 文献标志码: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 引言

目前,在互聯网操作中,口令,密码和用户名认证是主要的用户认证方式。但这种机制最大的问题就是容易泄露个人隐私。随着机器学习,深度学习等生物认证技术的发展,为互联网身份认证提供了新的解决思路。

生物认证技术是使用每个人特殊的生理信息和特有的行为信息,而这些生物信息具有很强的辨识性和唯一性,可以有效地通过生物认证技术来进行异常用户的筛选。

由于人们对键盘的击键习惯和个人性格的不同 , 使得每个人在输入口令或完成一段文字输入时均形成了自己独特的击键模式。击键模式能够反应一个人敲打键盘的力度,速度,停顿习惯等,这些特征很难被模仿。美国华盛顿可选基金会通过进一步的研究证实了人们击键特征的唯一性,所以击键模式可以代表用户身份。

2 研究背景

2.1 击键特征匹配算法

(1) 静态击键认证

静态击键认证是指在建立样本的过程中,用户输入的内容是一样的。在样本采集的过程中,要求用户输入同样的文本。国内常用的算法主要是基于统计基础的识别算法,例如贝叶斯,支持向量机(SVM)等和基于神经网络的算法两大类。

(2) 动态击键认证

动态击键认证指的是建立模型阶段和认证阶段用户输入的文本都是随机的,对输入内容,没有限制。

本系统采用的算法属于静态击键认证算法,参考了倪桂强等人[1]提出基于SVM的击键特征认证模型。下面是原文献中使用的特征提取算法。本文在基础上针对特定的异常用户识别问题对特征提取,SVM和数据预处理三个方面进行优化。

击键动力学中,常见的击键时序特征[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:即释放第一个键到释放第二个键的时间间隔。

研究表明击键时间包括按键的持续时间和转移时间两种,持续时间为某个按键按下到其弹起之间的时间间隔,定义为hold time(T1),转移时间为某个键的弹起和其他键的按下之间的时间间隔,定义为transfer time(T2).Robinson等人表明hold time在击键动力模型中更能体现测试者的击键特征,如图1所示:

2.2 算法应用与改进

由于参考文献[3]中的算法是用来判定能否正确识别出用户身份的算法,所以是一个二分类的算法,并且输入的样本都是固定的六位密码(由数字构成)。本文采用的算法是将原文提到的二分类问题转化成一个多分类问题。具体的流程是对多个用户所构成的样本库进行总体训练,逐一将用户输入的样本与用户库的样本进行匹配,如果匹配到用户本人则认为此用户行为正常,如没有匹配到本人,则认定此用户的行为出现异常,属于异常用户。本文在特征选取,参数选取,SVM算法以及损失函数上做了优化,并加入了一些数据预处理,缺失数据补全,PCA,相关性分析等机制来提高算法的识别率。

3 本文提出的特征提取与数据预处理方法

3.1 本文采用的样本

以往的击键行为识别[4]大多数解决的是用户登录口令的问题,使用的样本大多是6个字符的密码,而本文需要解决的问题是异常用户的识别,通过对用户输入的文本,判定是否为 本人操作,所以本文采用的样本与以往的相关研究的样本不同,用户需要输入一段特定文本作为测试样本。

3.2 本文提取的特征

由于本文解决的是异常用户识别的问题,所用的样本不是参考文献中所提出的固定6位数字密码,而是英文文本,这就意味着固有的按键弹起时间不能很好地反应打字行为特征,并且实际情况中,我们很难实时统计到用户的击键弹起时间,所以我们舍弃参考文献中所使用的特征,选择采用错误种类,击键速度,以及击键正确率作为特征。

3.2.1 错误种类相关特征

根据对数据的分析,我们将其中错误的种类分为以下几种类别

(1) Bad case:击键错误,比如将“。The”输入成了“。”

(2) Bad ordering:当击打一串字符时,过早输入某一个字符 ,例如将“house”输入成“houes”

(3) Doublet:当敲击一串字符串时,同一个字母敲击两遍,例如将“home”输入成“homee”

(4) Other:其他类型的敲击错误。

(5) RED:敲击时有明显的错误但却没有修改。

3.2.2 速度相关特征

用户在输入文本时的击打速度有明显的个体差异,这些差异能明确地反应在速度特征上,如图2所示:

3.2.3 准确率相关特征

用户在输入文本时,准确率的差异也非常明显,因此,我们提取用户输入的准确信息,作为准确率特征值。如图3所示:

3.3 数据预处理

由于本文是为了解决异常用户识别的问题,在实际情况中,会有部分数据丢失,比如用户在输入字符串时,先将“home”打成“homme”后,又删除重新打成“hoem”,按照之前的错误种类分析,此时用户的Bad ordering指标累加一次,但是Doublet并没有累加,这显然是不合理的,这就导致了数据的丢失。不仅如此,在实际情况中,为了做到实时统计数据,很大概率会出现部分数据的丢失,本文提出使用Lasso回归对丢失数据进行补全来解决此类问题。

3.3.1 丢失数据的补全

以往此类问题[5]的数据补全通常使用以下几种方法:

(1) 均值补全:利用丢失特征的均值,对个别样本的缺失值进行补全。

(2) 零值補全:利用零值对样本缺失值进行补全。

(3) 高斯补全:假设数据符合高斯分布,求出此类特征已知数据的均值与方差,由高斯分布构造数据,对丢失样本进行补全。

实验表明以上三种方法并不适合本文所解决的问题,根据相关性分析可知,5种错误特征有很大的相关性,利用这种特殊的关系,本文提出用lasso回归补全丢失数据的方法,利用Lasso回归补全丢失数据的过程如下:

(1) 需要补全的数据大概分为以下两类,第一类是人为因素(统计样本)所导致的错误,第二类是用户本身就没有犯某种错误(此类错误特征的值为0),但是在数据处理时0较多会影响处理结果,因此,需要对样本数据进行补全处理。

(2) 将数据做归一化处理,通过离群值分析,删除一些异常数据,用样本均值进行补全

(3) 针对第一类问题,采用lasso回归补全,本文将丢失的样本作为测试集,测试集中丢失的值设为,没有丢失的样本作为训练集,测试集中丢失数据的特征记为,训练集中的值记为y,除去以外的特征记为X,从而预测出

(4) 针对第二类问题,使用0-1均值化,减小误差。

3.3.2 解决多键盘,按键停顿过长,多种错误种类计数的问题

对于多键盘问题,我们对实验数据采用基于高斯分布的降噪处理[6],以降低不同键盘对数据的影响。

对于按键停顿问题,我们允许在输入文本的过程中有停顿,但停顿时间是在合理的范围以内。我们首先对每个测试样本扫描一遍,如果输入文本的时间过长,我们则认定这条输入为异常输入,重新要求用户进行输入。

对于多种错误种类计数的问题,本文规定,同一段字符串出现多次错误时,需要分别累加犯错次数,犯错次数的统计以英文单词个数为计数单位,而不是以字母个数为计数单位。

3.3.3 特征的筛选

在实际情况中,测试的用户数据较少,为了提高算法的鲁棒性,我们只用了11个人共88个样本(每人8个)作为训练数据,从而反应在实际情况下算法的效果,但较少的数据量和较多的特征会导致过拟合,为了缓解过拟合现象,本文提出先使用相关性热图分析进行特征筛选,再利用PCA对数据做降维处理,过程如下:

构建样本的验证数据集,利用交叉验证来验证数据是否过拟合,根据实验结果显示,当增加数据量的时候,出现过拟合现象。

对已经筛选好的特征使用主成分分析,降低维度,提高运行效率。主成分分析是一种无监督的统计学方法,通常借助于正交变换,将分量相关的向量转化为分量不相关的向量,在几何上的直观表现是将原有的坐标系转化为正交坐标系,把样本点散布在多个方向,并对多维变量进行降维处理。所降至的维度由如下公式决定。

3.4 评估模型

击键动力学中,常用两个指标评估算法的可靠性,错误接受率FAR和错误拒绝率FRR。错误接受率FAR代表入侵者被错误地当成合法用户的比率,错误拒绝率FRR代表合法用户被错误地当成入侵者的比率。由于操作阈值的不同可能会导致评估标准不统一,所以常用相等错误率EER(Equal Error Rate)来衡量。错误接受率FAR和错误拒绝率FRR见公式:

如果错误接受率FAR过高,这说明身份识别系统不安全。如果错误拒绝率FRR较高,会导致身份识别系统拒绝合法用户访问,说明系统不合理。因此身份识别系统的设计目标为通过控制减小错误接受率FAR和错误拒绝率FRR到一个可接受的水平来提高系统的性能质量。由于本文是把一部分已知数据作为测试集,并且是多分类问题,所以可以用ACC和AUC来评估模型。AUC是一个概率值,当你随机挑选一个正样本以及一个负样本时,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。

4 本文提出的改进支持向量机算法

4.1 支持向量机算法

在以往的研究中,只是将间隔时间和按键时间作为生成模型的特征,效果不太理想,在分类算法中,数据的特征筛选是很重要的。另外以往的研究中[7]只是用支持向量机作为一个二分类器。而本文需要解决多分类的问题,所以本文对支持向量机做了一些算法上的优化。此外,传统的击键问题虽然实验效果很好,但很难投入商用,这主要是因为实验数据量远远大于实际的应用情况,为了解决此类问题,本文只用少量的样本来进行多分类的训练。

4.2 改进的支持向量机算法

在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开。本文使用优化的高斯核函数来处理非线性的分类任务公式如下:

(4) 利用ACC和AUC评估模型。

5 实验结果

本文的目的是使用击键行为来对异常用户进行识别。所以采用https://www.keyhero.com 网站上提供的数据集,该数据集包含11个用户,每个用户敲定不同的静态文本8次,因此每个用户包含8组数据,每组数据有6个特征。将样本的85%用于训练集,15%作为测试集。由于以往的击键识别大多采用樸素贝叶斯,决策树等算法[9],为了对比本文提出的优化算法,我们对同样的数据采用六种不同的算法进行对比实验,实验结果如下图5所示:

由图可知,本文提出的算法SVM(RBF)的ACC是1,即在训练集上可以做到0错误,朴素贝叶斯(Naive Bayes)和SVM(Linear)的ACC也为1,但是本文提出的SVM(RBF)在AUC的值上要优于前面两种算法,说明SVM(RBF)表现得更加稳定。

本文在优化算法的基础上还对数据预处理和特征筛选上做了优化[10],为了体现数据预处理和特征筛选的优化效果,我们对同种数据使用不同的预处理方式,实验结果如图6所示:

由图可知,在未使用本文提出的特征筛选和预处理算法时,SVM(RBF)的ACC仅有0.214,而使用预处理算法后,ACC得到显著提升。

6 总结

本文提出一种基于击键特征的异常用户识别方法,该方法在支持向量机的基础上加以改进,并在数据特征和数据预处理方面做了优化。该算法只需要较少的训练样本,训练时间短。实验结果表明,使用本文提出的一系列优化算法进行异常用户识别时,ACC和AUC都得到显著的提高。

参考文献:

[1] 倪桂强.基于支持向量数据描述的击键生物特征认证[J].高教探索, 2008,10(5):704-708

[2] 张引兵,刘楠楠,张力.身份认证技术综述[J].电脑知识与技术, 2011,9(3):14-16

[3] 栾方军程海,宋晓宇.基于HMM的在线手写签名认证系统设计与实现[J].计算机应用与软件,2008.06:59-62

[4] 郭磊,胡晓勤,江天宇,陈广瑞. 基于击键特征识别的网络诈骗嫌疑人追踪系统[J].技术研究,2013.12:62-66

[5] 高艳,管晓宏,孙国基等.基于实时击键序列的主机入侵检测[J].计算机学报,2004,27(3):394-401

[6] 张磊.文本分类及分类算法研究综述[J].电脑知识与技术,2017(34):225-226+232

[7] 李军,高立群,蔡翔.基于支持向量机的消极性文本识别研究[J].电脑知识与技术,2017(6):209-211

[8] 齐晋.基于支持向量机的击键辅助认证系统[D].西安:西南财经大学,2014

[9] 李晨.基于击键特征的身份认证与识别研究[D].南京:南京理工大学,2014

[10] Gunetti and Picardi,Keystroke analysis of free text[J]. ACM Transactions on Information and System Security,2005,8[3]:312-347.

猜你喜欢

机器学习
前缀字母为特征在维吾尔语文本情感分类中的研究
下一代广播电视网中“人工智能”的应用
基于支持向量机的金融数据分析研究