李荣华 李永忠
(江苏科技大学计算机科学与工程学院 镇江 212003)
近年来互联网快速发展,给社会发展、经济增长以及文化繁荣带来了各种各样的机会,互联网给人们带来便利的同时也带来了不小的网络安全风险。网络安全尤其是身份认证技术[1]逐渐成为人们关注的问题。安全的身份认证是保证计算机网络系统安全运行的基本前提。由于行为特征具有唯一性和易采集性的特点,在身份认证技术领域备受关注,为了阻止攻击者利用安全漏洞逃避鼠标或者键盘中的某一个设备的入侵检测,采用击键行为特征[1~2]和鼠标行为特征相结合的方式进行身份认证[3]。
身份认证技术[4]原理主要是用户在登录系统时输入账户名/密码,系统通过用户输入的账户名/密码与存储在系统中的合法身份的账户名密码进行匹配,以验证该用户身份信息的合法性。输入账户名/密码与存储的账户名/密码信息匹配成功,系统认为登录者的身份合法,授权访问系统并分配对应的系统资源和服务权限,如果输入的账户名/密码与存储的账户名/密码信息匹配不成功,系统认为登录者的身份为非法用户,登录失败。身份认证技术的关键步骤主要包括:
1)提取能够唯一表示用户身份特征的关键信息;提取用户身份特征的主要任务是从用户提供的一般信息中选择出可以区别于其他用户的信息作为特征值并抽取;
2)建立身份认证系统;建立身份认证系统的主要任务是基于身份特征选择和提取的用户特征值,建立一个用户分类模型,可以根据抽取的用户特征值区分合法用户和非法用户;
3)匹配认证用户的身份;匹配认证用户身份的主要任务是在用户登录访问系统资源或服务时,首先从用户输入的账户名密码中提取特征值,再根据建立的用户分类模型进行信息匹配,确定用户身份的合法性并决定是否授权访问系统资源。
研究表明,每个人都有独一无二的击键特征和鼠标特征,通过分析用户的这些特征就可以识别其身份。行为特征可以很方便地在已有的账户名/密码身份认证系统中加入基于击键行为特征和鼠标行为特征分析的二次认证模块,提高系统的安全性。此认证方案可以在不影响用户使用的情况下,增强现有密码认证方案的安全性。用户在用键盘输入时使用双手,由于个人使用习惯不同,敲击键盘的力度和熟练程度也会不同。本文通过分析这些击键行为特征和鼠标行为特征,实现对用户身份的鉴别[3]。
信任模型建立的基本思想是根据用户在系统上执行的各种操作行为判断操作对象是真实用户还是攻击者。如果操作对象的操作行为是按照存储在用户配置文件或者模板中的操作行为进行操作,则该用户就被判定为是真实用户,信任值增加。如果操作对象的操作行为与存储在用户配置文件或者模板中的操作行为有很大偏差,那么系统就判定操作对象是攻击者,信任值降低。操作对象信任值低于阈值后系统就会自动锁定,开启静态认证模式(用户名/密码登录)。
每个人操作行为不可能一直完全一模一样。对于真实用户来说,有时候也可能会有导致信任程度降低的偏差操作行为。但是真实用户的大部分操作行为都很相近,会使信任程度增加,依然可以获得高度信任值。但是对于入侵者却是相反。入侵者虽然可以模仿真实用户的操作行为,但是大部分操作行为与真实用户的操作行为偏差甚大,信任值会被降低。很明显,理想的系统初始会信任任何人,非真实用户的信任度在操作时,会迅速降低到预先设置的阈值甚至低于阈值,导致系统自动锁定,启动静态身份认证,重启系统。
动态信任模型[5]方法参数的具体设定是根据用户执行的不同类型来进行设定的,一个用户可以同时设置三组不同的参数数据,如:击键行为数据,鼠标点击行为数据以及鼠标移动行为数据。具体详细参数如下:
Sci:第i次操作行为的分类分数集;A:阈值;B:距离宽度值;C:单次操作行为信任增加最大值;D:单次操作行为信任降低最大值;Trusti-1:第i-1次操作后系统信任值;Trusti:第i次操作后系统信任值;
信任函数方法计算公式:
式(1)中ΔT代表信任改变值,由操作行为分类分数集和四个参数共同计算得到。由公式可以看出操作分数的分类分数集等于设置的阈值时,信任改变值就为0,即:Sci=A时,ΔT=0。如果操作分数的分类分数集大于设置的阈值,那么信任改变值就为大于0,即:Sci>A时,ΔT>0,表示信任值增加,操作用户得到reward。如果操作分数的分类分数集小于设置的阈值,信任改变值就为小于0,即:Sci<A时,ΔT<0,表示信任值降低,操作用户得到penalty。式(2)中给出了第i次操作行为信任值与第i-1次操作行为信任值之间的关系。其中Trusti代表第i次操作行为信任值。
本文提出的是在用户名/密码登录认证方式之上的另外一种连续动态身份认证方案,主要是基于用户的键盘按键操作[6]和鼠标点击操作两部分操作行为数据作为识别的数据基础。研究中通过检查用户的每一个操作动作,仔细调整信任模型,因为在任何时间点,用户都只能执行击键操作或者鼠标按键[7],鼠标移动或者鼠标滚动,点击操作中的任何一个,因此本文的信任模型都是基于其中一种进行的分类,没有多模态融合架构。而且系统采集的数据一定是这几类操作中的一种。采集数据总架构图如图1所示。
图1 数据采集系统框架图
3.1.1 击键行为特征架构设计
击键行为也称为击键动力学[11],表示操作键盘的行为。击键操作行为包括单键操作和多键有向操作。系统采集器通过采集这两种数据后,通过分类器对采集数据进行分析处理,与模板文件中对应的样本数据进行匹配,最后得到该用户的结果集,计算出操作对象的信任得分,根据信任得分值判断用户是否为真实用户还是攻击者。击键动力学模型框架图如图2所示。
图2 击键模型框架图
3.1.2 鼠标行为特征架构设计
鼠标行为也称为鼠标动力学,它表示了鼠标的全部操作行为,主要有鼠标单击,鼠标双击,鼠标移动以及鼠标滚动四种鼠标操作行为。系统采集器通过采集四种数据后,通过分类器对采集数据进行分析处理,与模板文件中的样本数据进行匹配,最后得到该用户的结果集,计算出操作者的信任得分,根据信任得分值判断用户是否为真实用户还是攻击者。鼠标动力学模型框架图如图3所示。
图3 鼠标模型框架图
3.2.1 击键行为特征数据采集
击键事件的数据格式主要如表1所示。
表1 击键事件数据格式
列表中每一列变量代表的属性:
Seq:事件的发生顺序;Evt.Type:值一般为‘K’,表示击键相关事件;Action:表示击键动作,击键动作只有两种:点击和释放。点击取值分别为‘D’,释放取值为‘U’;Value:通过用UTF-8编码表示击键动作;Time:以毫秒为单位,16ms为周期记录击键事件动作发生;Relation:前一事件发生的序列号;Flag:系统击键是否是激活状态;AF:释放按键之前,按键操作的重复发生情况。
在研究中,将击键行为特征分为两类不同的事件动作。第一类是单键动作,即按键事件是一个键的按下和释放之间的间隔时间差。第二类是击键有向图行为,行为特征包括有:
1)总时间(Total Time);
2)第一个键按下和第二个键按下之间的时间(Down-Down Time);
3)第一个键释放和第二个键按下之间的时间(Up-Down Time);
4)第一个键释放和第二个键释放之间的时间(Up-Up Time)。
图4展示了击键特征提取过程。
在分析中,多键数据采集采用了有向图行为,约束两个连续键之间的延迟时间在2000ms以内。忽略长时间的延迟操作,因为这段时间不能代表用户的正常操作行为。用户可能在这段时间内停下来思考,喝咖啡或者阅读。所以在用户按下最后一个键和在按一个新键之间所用的时间超过2000ms被判定为不是他的正常输入操作行为。
图4 击键特性采集
3.2.2 鼠标行为特征数据采集
鼠标事件的数据格式如表2所示。
表2 鼠标事件数据格式
Seq:表示鼠标事件的发生顺序;Evt.Type:表示鼠标相关事件,值一般为‘M’;Action:表示鼠标动作,鼠标动作共分为四种。鼠标移动,鼠标滚轮滚动,鼠标按钮点击和释放。鼠标移动取值为‘M’,鼠标滚轮滚动取值为‘W’,鼠标按钮按下和释放取值分别为‘D’和‘U’;Value:以x_y表示的坐标值,x代表横坐标,y代表纵坐标,以下划线连接。其中在鼠标滚轮滚动动作的值记为δ,表示滚轮滚动多少。滚轮向上滚动取值为正,滚轮向下滚动,取值为负;Time:以ms为单位,16ms为周期记录鼠标事件动作发生;Relation:前一事件发生的序列号;Flag:鼠标事件动作是被按下还是释放状态;AF:鼠标事件在按下和释放阶段的矩形活动区域。
在鼠标行为特征研究中,对鼠标点击事件分为四类不同的事件。第一类为鼠标单击动作,类似于击键动作,即为鼠标单次点击在鼠标按键按下与鼠标按键释放之间的时间差;第二类是鼠标双击动作,鼠标点连续两次点击时间小于1000ms才记为有效的鼠标双击动作时间,否则不计数。第三类是鼠标移动动作。最后一类为鼠标拖动动作,它类似于鼠标移动动作。对于鼠标拖动动作,它是一系列动作的组合,首先是鼠标点击事件,然后是鼠标移动,最后是鼠标点击事件,三个动作顺序发生。
本系统采用了攻击操作行为平均数(Average Number of Imposter Actions,ANIA)和真实操作行为平均数(Average Number of Genuine Actions,ANGA)作为系统性能指标。通过ANIA和ANGA值可以表明,在入侵者操作导致系统锁定之前,攻击者做了哪些类似真实用户操作的动作,导致系统信任值改变。ANIA和ANGA两个指标对于DCA系统来说是一个很好的性能指标描述。不同于静态认证系统(SA)的错误匹配率、错误不匹配率和错误相等率。DET曲线就可以完整地表现SA系统的性能。同样的对于DCA系统,也可以有相应的性能描述指标。系统最好的表现是:
1)用户不会因为系统采集的数据模型进行操作的被误判断,而导致系统锁定;
2)所有的入侵者操作系统,系统可以尽快识别出,自动锁定系统。
然而实际情况却不尽如上面所述。系统有时候可能也会出现误判,真实用户操作系统时候,会导致系统自动锁定,非真实用户操作系统时未被识别出。对全部可能发生的情况进行分类,得到如下四类可能的情况:
A类:最理想的情况,所有的入侵者和真实用户都能被识别出来;
B类:真实用户可以识别出来,同时系统不会自动锁定,但是一些入侵者不能被判断出来。
C类:系统可以识别全部的入侵者,同时锁定系统,但是一些真实用户有时候会被误判成为入侵者,导致系统锁定;
D类:最糟糕的情况。部分入侵者没有被检测出来,部分真实用户被系统误判为入侵者,锁定系统。
部分采集数据如图5所示。
图5 键盘行为操作数据
通过进行相同的预处理技术,使用相同的分类技术对PA系统和DCA系统同时进行了测试,选择数据基数大小从100到1000,其中VP-1,VP-2,VP-3代表不同的验证过程。对应用于DCA系统的ANIA和ANGA性能指标,根据不同验证过程,在DCA系统和PA系统进行了测试,ANGA测试结果如图6所示。
图6 ANGA指标在PA系统与DCA系统的测试结果
对于ANGA指标中,DCA系统表现更好,当ANIA值相差不大时,ANGA的值较PA系统中更高。当ANGA值相差不大时,DCA系统的ANIA的值较PA系统的ANIA值更小。ANIA测试结果如图7所示。
图7 ANIA指标在PA系统与DCA系统的测试结果
本文利用击键行为特征和鼠标行为特征提高身份认证系统的安全性,采用连续认证的方式确定操作过程用户的真实身份。多因素认证与持续性安全认证是本文系统安全理念上的创新,是系统的核心竞争力。击键行为特征和鼠标行为特征作为一种不需要额外硬件设备就能采集的行为特征,在各个领域都有着广泛的应用,特别是在网络安全领域应用最为广泛。本文提出的动态连续身份认证系统可实现在不影响用户体验的前提下,提高身份认证系统的安全性。实验研究的环境模拟真实环境进行,在DCA系统实验结果与PA系统实验结果对比中发现,DCA系统在准确识别率和用户友好方面都有很高的优越性。
为了提升系统性能和建立一个可部署的安全方案,研究中对用户软件的交互数据做了进一步调查,对于连续身份认证系统中行为特征识别的数据模板更新问题,将做进一步研究,主动攻击下的安全性问题也会着重关注,减少入侵者利用阈值大小的漏洞进行攻击。