基于单类分类器的键盘识别的windows登录系统

2015-05-29 12:37王小冬陈孔艳
电脑知识与技术 2015年10期
关键词:支持向量机

王小冬 陈孔艳

摘要:传统的windows登录方式是口令认证,口令易泄露将带来安全隐患,而采用人的生物特征结合传统认证方式可增强系统的安全性。该文利用对用户击键的特征采用单类分类器进行识别,大大提高windows口令认证的可靠性。

关键词:支持向量机;Gina; Windows登录

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)10-0088-02

对于windows操作系统, 传统的登录认证方式是用户名-口令单向鉴别模型, 但该模型存在诸如口令易被窃取和猜测等弊端 , 所以并不适合单独在一些对安全等级需求较高的场所中使用。智能卡、指纹认证登录能有效的提高安全性,但需要额外的硬件。击键特征是人们在键盘输入时击键的节奏,具有唯一性,因而也被列入生物特征认证技术范畴,击键特征的提取只要普通的键盘,因此不需要额外的硬件设备,将口令和击键特征结合起来作为windows登录认证方式,具有实现简便、安全性高的优点。

1 单类分类器

单类问题是相对多类问题而言的。分类时只需判别是某个模式属于或者不属于单个类别。这个特殊的类别通常称为目标类(或正常类),而不属于这个类别的统称为非目标类(或异常类)。单类分类器在训练阶段只能用正常类样本进行学习。缺失异常类样本的原因有:异常情况很少发生或代价太高;异常样本种类繁多而无法穷举[1]。

2 分类器的设计

2.1 击键特征提取

某个键按下到抬起所持续时间称为该键击键时间,击键间隔指前后两个键按下的时间间隔,如图 1。若[t(i)down]表示第[i]个键的按下时刻,[t(i)up]留表示第[i]个键抬起的时刻,则[Ti=t(i)up-t(i)down]表示第[i]个键的击键时间,则[Li,i+1=t(i+1)down-t(i)up]表示第[i]个键和第[i+1]个键的间隔时间。若用户的口令由[n]个字符组成,用向量为

[(T1,L1,2,T2,L2,3,T1,…Ln,n-1,Tn)]表示用户击键的特征[2,3]。。

图1 击键特征

2.2 基于欧式测度的单类分类器

设击键特征向量

[X=(x1,x2,…xn)],[F(X)=sig(αD-X-X2)],若如果[F(X)]=1表示击键特征匹配,可以登录;若[F(X)]=0则表示击键特征不匹配,无法登陆。则[X]的二范数表示为

其中[X]为击键特征,[X]为训练后的击键特征均值,[D]为训练后的击键特征方差,[α]为需要训练的系数,[X2=XXT],[sig(x)=1x≥00x<0]。

2.3 分类器的在线学习

1)均值在线学习

因[xn-1=1n-1i=1n-1xi]

所以[xn=1ni=1nxi][=1n(i=1n-1xi+xn)][=1n[(n-1)xn-1+xn]]

登陆成功,其中更新均值的公式如下([N]取5):

[Xnew=N-1NXold+1NXnow]

其中[Xnew]表示更新后的均值向量,[Xold]表示更新前的均值向量,[Xnow]表示当前登录的击键特征向量。

2)方差在线学习

因[Dn-1=1n-2i=1n-1(xi-xn-1)2]

故[Dn=1n-1i=1n(xi-xn)2]

[=1n-1i=1n-1(xi-xn-1-xn-xn-1n)2+1n-1(xn-xn-1-xn-xn-1n)2]

[=1n-1i=1n-1[(xi-xn-1)2+(xn-xn-1n)2-2(x1-xn-1)(xn-xn-1n)]]

[+1n-1[(xn-x)2((xn-xn-1)n)2-2(xn-xn-1)((xn-xn-1)n)]]

[=1n-1i=1n-1(xi-xn-1)2+(xn-xn-1n)2+(n-1)(xn-xn-1n)2]

[=1n-1i=1n-1(xi-xn-1)2+(xn-xn-1)2n]

如果连续5次登录成功,则更新方差;否则,不更新。其中方差的更新采用公式([N]取5)如下:

[Dnew=N-1NDold+1NXnew-Xold2]

其中[Dnew]表示更新后的方差,[Dold]表示更新前的方差。

3 Windows登录原理

3.1 GINA简介

windows 用户登录是由Winlogon、GINA和Network providers组成的交互式认证模块实现,其中GINA是Winlogon的一个动态链接库文件,Microsoft提供了的默认的文件名为msgina.dll。通过定制GINA可以实现特定的登录功能, 本文中GINA文件为mygina.dll,并将该文件放到系统windows下的system32目录下。修改注册表:\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ Winlogon的GinaDLL的键值改为mygina.dll。

3.2 自定义GINA的函数实现

开发特制的GINA,就要实现与winlogon.exe交互的18个标准函数接口[4,5]。,这18个函数大部分都是通过调用系统自带的函数来实现,主要实现WlxLoggedOutSAS,WlxLoggedOnSAS和WlxWkstaLockedSAS这三个函数。其中,WlxLoggedOnSAS实现用户登录,如计算机启动后的首次登录、注销或切换用户后的登录。WlxLoggedOnSAS是用户登录后发生SAS(Secure Attention Sequence)事件后实现相应的处理。WlxWkstaLockedSAS主要是实现锁定计算机。

4 系统登录界面与结论

安装本文的GINA后,登录系统就出现图2登录界面:

本文在利用击键时的生物特征,提出基于密码和击键特征的双Windows登录机制,克服了Windows开机登录因密码泄露所带来的安全问题,在方便、廉价的前提下有效的提高系统登录的安全性,在实际应用中取得了良好的效果。

参考文献:

[1] 赵加敏,冯爱民. 最大化约束密度单类分类器[J]. 计算机科学,2014(2).

[2] 许哲,郭海锋. 基于模糊c均值聚类的计算机键盘用户身份认证[J]. 延边大学学报,2005,31(2).

[3] 刘学军,陈松灿.基于支持向量机的计算机键盘用户身份验真[J]. 计算机研究与发展,2002,39(9).

[4] 蔡准,李大兴.通过GINA实现使用Smart Key登录Windows[J]. 计算机应用,2002(12).

[5] 范开涛, 周枫.基于 GINA的机房管理系统的应用[J].实验科学与技术,2008(5).

猜你喜欢
支持向量机
基于支持向量回归机的电能质量评估
基于智能优化算法选择特征的网络入侵检测
基于改进支持向量机的船舶纵摇预报模型
基于支持向量机的金融数据分析研究
管理类研究生支持向量机预测决策实验教学研究