基于不同上下文环境中的持续身份认证方法和系统
技术领域
本发明属于生物认证技术领域,特别涉及一种基于不同上下文环境中的持续身份认证方法和系统。
背景技术
计算机的普及已经深入到我们日常生活、娱乐和工作等方方面面,其不仅给我们的生活带来了诸多便利,而且每个系统都包含了各式各样的信息,其中包含用户的私人信息和工作信息,也包含了公司或企业的内部信息。而对于大多数现有的计算机系统,当用户通过验证登录系统以后,直到用户退出系统之前,系统内资源都可供该用户使用。攻击者一旦攻破用户的静态认证或者用户登录系统后无人看管,都很容易导致系统资源泄露,造成非常严重的后果。因此,持续检测用户身份是非常重要的。
用户的持续身份认证根据认证的过程是否需要用户主动参与分为显示认证和隐式认证。显示认证使用口令,安全提问,指纹识别等方式来认证用户,认证过程需要用户主动的参与,而且这些方法虽然在一定程度上能够识别用户身份,但是密码等记忆型验证技术很容易进行社交工程,并且可以使用字典攻击和暴力攻击等方法轻松破解;瞳孔、指纹等需要额外的硬件来捕获数据,分析计算很复杂。总之,显示认证会不断干扰用户的正常操作,给用户造成不便。隐私认证在系统执行的过程中采集到的用户行为特征,利用这些行为特征为用户生成身份认证模型,之后利用生成的身份认证模型对用户身份进行验证,系统在用户使用系统的整个过程中都能识别用户的身份,并无需用户主动参与。
由于每个用户的行为都有其生物特征,而用户的击键行为和鼠标行为与用户的年龄、性别、和对计算机设备的熟悉程度等都有联系,不同用户的击键行为模式是难以被他人模仿和盗用的。采用鼠标击键两种行为方式是为了防止伪冒者通过限制到一个输入设备来避免检测,而且认证方式并不需要额外的硬件支持,成本较低。因此基于用户击键行为和鼠标行为的持续认证方法具有良好的可行性。
在现有的基于用户生物行为的持续身份认证工作中,只能对用户在同一台电脑,同一个地点做持续验证,却没有考虑用户的日常行为习惯,所以不切合实际生活场景。例如,用户在公司、家或者出差途中使用系统会有不同的日常行为和生物行为,针对这些不同的上下文环境,传统的持续身份认证方法并不能有效的验证当前用户。因此,如何在不同上下文环境中持续验证用户身份是目前亟待解决的问题。
发明内容
为了在不同上下文环境中持续验证用户身份,本发明提出一种基于不同上下文环境中的持续身份认证方法和系统,所述方法包括:
S1、根据用户登录的信息判断当前用户是否为新用户;
S2、如果当前用户为新用户,根据合法上下文信息、击键行为和鼠标行为构建合法用户的用户模型;
S3、如果当前用户不为新用户,根据用户登陆时的上下文信息设置阈值;
S4、采集用户在登录后的鼠标行为和击键行为;
S5、采集用户在登录系统后对不同功能模块的请求,然后调整阈值;
S6、根据采集到的用户鼠标行为和击键行为创新性的提取用户生物行为的特征向量;
S7、采用特征级融合和决策级融合对提取的特征值进行判断,计算当前用户的信任度;
S8、将当前用户的信任度与阈值比较,如果信任度小于阈值,那么当前用户为非法用户,将被锁定系统,需重新登录才能继续操作,如果可信度大于阈值,用户为合法用户,用户可进行下一操作,同时存储当前用户上下文信息和生物行为特征并更新所述用户模型。
进一步的,步骤S2具体包括:
S21、读取数据库中用户ID对应的标准化特征向量,并根据标准化特征向量为用户构建标签;
S22、利用用户标签属性和用户ID分别构建3种训练集:用户击键行为特征的训练集、用户鼠标行为特征的训练集和用户击键与鼠标行为特征的特征级融合的训练集;
S23、利用用户击键行为特征的训练集、用户鼠标行为特征的训练集、用户采用特征级融合的训练集和用户上下文信息为用户生成身份认证模型,并将用户认证模型传输至认证模型存储器中。
进一步的,步骤S3具体包括:获取用户的上下文信息,包括采集用户的用户信息、时间信息和位置信息三个方面,其中,用户信息包括用户ID、姓名、年龄、性别等,主要发出服务请求到服务器,确定当前用户;时间信息包括用户的登录时间、退出时间和星期;位置信息包括用户的登录地点、浏览器和操作平台信息;并根据上下文信息计算阈值U。
进一步的,阈值U的计算包括:
其中,hj为上下文信息类别j的权值,sumj为类别j出现的总次数,sumij为类别j中元素i出现的总次数,n为上下文信息的种类数量。进一步的,所述步骤S4具体包括:记录用户使用系统过程中每t秒时间内的鼠标行为和击键行为,将每两个t秒的用户生物行为传入特征提取模块。
进一步的,所述步骤S6具体包括:
S61、获取到的两个t秒的数据都为用户的击键行为时,提取每t秒时间的击键行为特征向量;
S62、获取到的两个t秒的数据都为用户的鼠标行为时,提取每t秒时间的鼠标行为特征向量;
S63、获取到的两个t秒的数据为用户的鼠标行为和击键行为时,分别提取特征向量,然后使用特征级融合将鼠标特征向量和击键特征向量连接为一个特征向量,最后得到三种特征向量。
进一步的,所述步骤S7具体包括:将连续获得的两个t秒节点作为一个单位S秒,将得到的两个节点暂存,然后每S秒就进行如下三种判断,得到用户当前信任度T;
当单位S中包含两个鼠标特征节点,匹配模块分别将两个鼠标的特征向量作为测试集与模板库中的模型进行匹配,得到结果R1和R2;如果R1=R2=1,那么当前用户的信任度T加1,将两个节点的特征向量存入模板库;如果R1=R2=0,那么当前用户的信任度T减1;如果R1≠R2,那么当前用户的信任度T加0.5;
当单位S中包含两个击键特征节点,匹配模块分别将两个击键的特征向量作为测试集与模板库中的模型进行匹配,得到结果R1和R2。如果R1=R2=1,那么当前用户的信任度T加1,将两个节点的特征向量存入模板库;如果R1=R2=0,那么当前用户的信任度T减1;如果R1≠R2,那么当前用户的信任度T加0.5;
当单位S中包含一个击键特征节点和一个鼠标特征节点时,匹配模块分别对两个节点作为测试集与模板库中的模型进行匹配,然后进行将匹配结果进行决策级融合得到最终判定结果R1;匹配模块再将两个特征节点进行特征级融合得到一个特征向量,然后与模板库中的模型进行匹配,得到最终判定结果R2;如果R1=R2=1,那么当前用户的信任度T加1(T不超过a),将两个节点的特征向量存入模板库;如果R1=R2=0,那么当前用户的信任度T减2;如果R1≠R2,那么当前用户的信任度T加1。
如上所述,本发明的自适应持续身份认证方法,具有如下优点:
(1)设计出在不同上下文环境中用户日常习惯和生物行为习惯的持续身份认证方法,使得用户在不同上下文环境中具有自适应的认证方式,保证认证准确率;
(2)设计出在不同上下文环境中用户击键行为特征提取方式,去除了大量冗余的鼠标特征,使得在只有少量行为数据时,能准确认证当前用户,提高持续认证的响应能力;
(3)根据用户的上下文信息,设计自适应阈值U的计算方法。
附图说明
图1为本发明不同上下文环境下持续身份认证方法的模型结构示意图;
图2为图1中提取有效击键特征的流程图;
图3为本文采用的融合方法1的示意图;
图4为本文采用的融合方法2的示意图;
图5为系统功能请求的权值树。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
根据用户登录的信息判断当前用户是否为新用户,首先判断当前用户是否为新用户,若为新用户,根据合法上下文信息、击键行为和鼠标行为构建合法用户的用户模型,则构建合法用户的用户模型包括:
读取数据库中用户ID对应的标准化特征向量,并根据标准化特征向量为用户构建标签;利用用户标签属性和用户ID分别构建3种训练集:用户击键行为特征的训练集、用户鼠标行为特征的训练集和用户击键与鼠标行为特征的特征级融合的训练集;利用用户击键行为特征的训练集、用户鼠标行为特征的训练集、用户采用特征级融合的训练集和用户上下文信息为用户生成身份认证模型,并将用户认证模型传输至认证模型存储器中。
若用户不为新用户或者根据上述步骤为新用户建立好用户模型之后,则根据用户成功登录系统后,获取的用户登录时的上下文信息设置阈值;其中用户的上下文信息包括采集用户的用户信息、时间信息和位置信息三个方面,其中,用户信息包括用户ID、姓名、年龄、性别等,主要发出服务请求到服务器,确定当前用户;时间信息包括用户的登录时间、退出时间和星期;位置信息包括用户的登录地点、浏览器和操作平台信息,阈值的计算包括:
其中,hj为上下文信息类别j的权值,sumj为类别j出现的总次数,sumij为类别j中元素i出现的总次数,n为上下文信息的种类数量。
开始采集用户在登录后的鼠标行为和击键行为,采集过程包括记录用户使用系统过程中每t秒时间内的鼠标行为和击键行为,将每两个t秒的用户生物行为传入特征提取模块;采集用户在登录系统后对不同功能模块的请求,然后调整阈值。
根据采集到的用户鼠标行为和击键行为创新性的提取用户生物行为的特征向量,具体包括:从上一步骤中获取到的两个t秒的数据都为用户的击键行为时,提取每t秒时间的击键行为特征向量;从上一步骤中获取到的两个t秒的数据都为用户的鼠标行为时,提取每t秒时间的鼠标行为特征向量;从上一步骤中获取到的两个t秒的数据为用户的鼠标行为和击键行为时,分别提取特征向量,然后使用特征级融合将鼠标特征向量和击键特征向量连接为一个特征向量,最后得到三种特征向量。
采用特征级融合和决策级融合对提取的特征值进行判断,计算当前用户的信任度,具体包括:将连续获得的两个t秒节点作为一个单位S秒(2t秒),将得到的两个节点暂存,然后每S秒就进行如下三种判断,得到用户当前信任度T;
用1和0来表示当前用户是否是真实用户,即当前用户是否可以信任,若当前用户是真实用户,则为1,否则为0;当单位S中包含两个击键特征节点,匹配模块分别将两个击键的特征向量作为测试集与模板库中的模型进行匹配,得到结果R1和R2。如果R1=R2=1,那么当前用户的信任度T加1,将两个节点的特征向量存入模板库;如果R1=R2=0,那么当前用户的信任度T减1;如果R1≠R2,那么当前用户的信任度T加0.5;
当单位S中包含一个击键特征节点和一个鼠标特征节点时,匹配模块分别对两个节点作为测试集与模板库中的模型进行匹配,然后将匹配结果进行决策级融合得到最终判定结果R1;匹配模块再将两个特征节点进行特征级融合得到一个特征向量,然后与模板库中的模型进行匹配,得到最终判定结果R2;如果R1=R2=1,那么当前用户的信任度T加1(T不超过a),将两个节点的特征向量存入模板库;如果R1=R2=0,那么当前用户的信任度T减2;如果R1≠R2,那么当前用户的信任度T加1。
将当前用户的信任度与阈值比较,如果信任度小于阈值,那么当前用户为非法用户,将被锁定系统,需重新登录才能继续操作,如果可信度大于阈值,用户为合法用户,用户可进行下一操作,同时存储当前用户上下文信息和生物行为特征并更新所述用户模型。
实施例2
如图1,本发明使用的身份认证系统,包括用户的PC设备以及服务器。
用户在PC设备包含:注册模块、上下文信息采集模块、行为采集模块、特征提取模块、匹配模块、用户需求模块、认证模块和动态更新模块。
注册模块:判定当前用户是否为新用户;
上下文信息采集模块:采集用户登录的上下文信息,并计算不同上下文环境的阈值U;
行为采集模块:采集用户使用系统中的击键和鼠标行为特征;
特征提取模块:将用户的击键和鼠标行为特征转化为行为向量;
匹配模块:匹配用户行为特征向量是否是当前用户,根据结果计算当前用户可信度;
用户需求模块:调整用户在操作使用过程中的阈值U;
认证模块:根据用户当前可信度与阈值U的比较结果,判断用户身份的合法性;
动态更新模块:根据暂存数据动态更新数据库和认证模型;
服务器包括:数据库、认证模型生成模块。
数据库:存储用户的三种行为特征向量和用户的历史上下文信息:鼠标行为特征向量,击键行为特征向量,鼠标和击键特征级融合的特征向量;
认证模型生成模块:利用用户的三种行为特征向量生成用户认证模型并传输;
在注册模块中,用户成功登录系统以后,首先判断当前用户是否为新用户,如果当前用户为新用户,用户接下来的所有操作将被存储到数据库,训练模型;如果当前用户不为新用户,将当前用户的信任度T设置为满分a分,进入上下文信息采集模块和行为采集模块。
在上下文信息采集模块中,主要采集用户的用户信息、时间信息和位置信息三个方面,其中,用户信息包括用户ID、姓名、年龄、性别等,主要发出服务请求到服务器,确定当前用户;时间信息包括用户的登录时间、退出时间和星期;位置信息包括用户的登录地点、浏览器和操作平台信息。时间信息和位置信息计算预定阈值U,所述计算公式为:
其中,hj为上下文信息类别j的权值,sumj为类别j出现的总次数,sumij为类别j中元素i出现的总次数,
一共有n种上下文信息。例如,j为“登录地点”类别,sumj为用户总共登录地点次数,sumij为用户在地点i的总共登录次数。将用户当前的时间信息和位置信息暂存到动态进化模块。
行为采集模块在用户不断使用系统的过程中,获取每t秒时间内的鼠标行为和击键行为数据量,然后将连续获得的2*t秒(t秒+t秒)的用户生物行为数据传入到特征提取模块。在提取的鼠标行为和击键行为的数据获取格式如下表1。Seq.是序列,表示事件的发生顺序;Tool是类型,判别是鼠标事件还是击键事件;Action是行为,在击键事件中表示按下或释放的哪个按键值,在鼠标事件中表示鼠标所在屏幕的x和y坐标;Time表示当前行为的时间点,按照毫秒计算。
表1鼠标行为和击键行为的数据获取格式
特征提取模块,具体包括如下操作:
(1)若获得的2t秒的数据中,如果两个t秒的数据都为击键行为:
则将分别提取每t秒的击键行为特征向量,根据用户之间的不同击键风格以及击键行为中最重要的特征是有向图的击键速度,又考虑到用户所使用的设备都不相同,以及用户在使用过程中可能会改变日常使用设备。我们根据数据分析,最终找到一种新颖的特征提取方式,使每个用户之间提取的特征向量有比较明显的差异,能清晰辨别每个用户的特征。提取方法如图2中所示,一共有5个指标,分别为一个键从按下到松开的过程Down1-UP1、一个键松开到下一个键松开的过程UP1-UP2、一个键按下到下一个键按下的过程Down1-Down2、一个键松开到下一个键按下的过程UP1-Down2、一个键按下到下一个键松开的过程Down1-UP2;每个指标中分为不同的时间段,计算用户在周期时间段内所有指标,然后得出用户操作在每个指标的不同时间段内的数量比例。每个指标的不同时间段即为每个指标的维度,不同时间段内的数量比例即为每个指标的维度值,根据数据分析,其中:
Down1-UP1指标分为9个维度分别为:(0,5]、(5,7]、(7,9]、(9,11]、(11,13]、(13,15]、(15,17]、(17,19]、(19,∞);
UP1-UP2指标分为13分维度,分别为:(0,10]、(10,20]、(20,30]、(30,40]、(40,50]、(50,60]、(60,70]、(70,80]、(80,90]、(90,100]、(100,150]、(150,200]、(200,∞);
Down1-Down2指标分为16个维度,分别为(0,10]、(10,20]、(20,30]、(30,40]、(40,50]、(50,60]、(60,70]、(70,80]、(80,90]、(90,100]、(100,120]、(120,140]、(140,180]、(180,220]、(220,300]、(300,∞);
UP1-Down2指标分为13个维度,分别为(0,10]、(10,20]、(20,30]、(30,40]、(40,50]、(50,60]、(60,70]、(70,80]、(80,90]、(90,100]、(100,120]、(120,140]、(140,180]、(180,220]、(220,300]、(300,∞);
Down1-UP2指标分为16个维度,分别为;(0,20]、(20,30]、(30,35]、(35,40]、(40,45]、(45,50]、(50,55]、(55,60]、(60,65]、(65,70]、(70,80]、(80,90]、(90,100]、(100,150]、(150,200]、(200,∞);
上述各个指标纬度的单位均为毫秒,一共得到击键行为特征向量67个维度;如图2,得到两个击键行为特征向量FK1和FK2。
(2)若获得的2t秒的数据中,如果其中两个t秒的数据都为鼠标行为:则将分别提取每t秒的鼠标行为特征向量,因为考虑在不同上下文情况下,所以根据实验选出最符合本发明的鼠标行为特征提取方式。如表2中,编号1中将360°的运动方向平均分为8部分,用户在每次使用鼠标过程在每个部分的平均运动速度;编号2中将显示屏平均分为9个区域(3×3),用户在每个区域移动次数占总移动次数的百分比即为每个维度的值;编号3中为用户在9个区域中的平均移动速度;编号3中将用户使用鼠标左、中和右按键的按键时长和标准方法,一共得到鼠标行为特征向量32个维度。得到两个鼠标行为特征向量FM1和FM2。
表2鼠标行为特征提取方式
(3)若获得的2t秒的数据中,如果其中一个t秒的数据都为鼠标行为,另一个t秒的数据为击键行为,采用(1)和(2)中的特征提取方式,分别提取特征值,得到鼠标行为特征向量FM和击键行为特征向量FK。采用特征级融合方法将得到的鼠标行为和击键行为特征向量融合成一个单独的特征向量FMK;最后得到三种特征向量。
匹配模块,的操作具体如下:
(1)从特征提取模块获得的两个特征行为向量都是击键行为特征向量,采用支持向量机(SVM)分别判断当前用户击键行为是否与模型匹配,最终得到两个结果RK1和RK2。
(2)从特征提取模块获得的两个特征行为向量都是鼠标行为特征向量,采用朴素贝叶斯(Naive Bayes)分别判断当前用户鼠标行为是否与模型匹配,最终得到两个结果RM1和RM2。
(3)从特征提取模块获得的两个特征行为向量分别是击键行为特征向量、鼠标行为特征向量和特征级融合后的新特征向量,将击键行为特征向量和鼠标行为特征向量采用决策级融合,如图3得到最终结果RMK1;对特征级融合后的新特征向量采用集成分类算法与模型匹配,如图4得到最终结果RMK2。
如果RK1=RK2=1、RM1和RM2=1或RMK1=RMK2=1,那么当前用户的信任度T加1(T不超过a),将两个或三个特征向量存入模板库;如果RK1=RK2=0或RM1=RM2==0,那么当前用户的信任度T减1;如果RK1≠RK2或RM1≠RM2,那么当前用户的信任度T加0.5;如果RMK1≠RMK2,那么当前用户的信任度T加1。
用户需求模块,具体操作如下:
系统中的每个功能块根据其重要性都设置一个权值,根据用户在持续使用系统中对不同功能块的请求,调整阈值U。例如将系统中用户的不同功能模块和不同请求,建立一颗权值树,每条路径都有一个权值,在访问每一层节点时,都根据权值对阈值U增减,如图5,例如用户使用“上传图片”功能时,阈值U将增加一级功能模块“业务功能”的权值和二级功能模块“上传图片”的权值,即当前权值为初始权值+0.6+0.4;如果接下来用户使用“下载文件”功能时,当前阈值U将减去二级功能模块“上传图片”的权值,然后增加二级功能模块“下载文件”的权值,即当前用户的权值为初始权值+0.6+0.8。
认证模块,具体操作如下:
认证模块将用户可信度T与阈值U比较,如果可信度T小于阈值U(T<U),那么当前用户为非法用户,将被锁定系统,需重新登录才能继续操作;如果可信度T大于阈值U(T>U),用户为合法用户,继续执行下一步骤。
动态进化模块,具体操作如下:
将上下文信息采集模块和匹配模块暂存的数据动态更新到数据库,然后根据行为采集模块进行数据采集。
综上,本发明在用户登录以后仅提供了用户少量的有代表性的击键特征和鼠标特征,去除了大量冗余的特征序列,在保证认证准确率的同时,提高了持续认证的响应能力;用户在登录网络账户以后,实时监控用户的生物行为和用户需求,做到真正的自适应持续身份认证,为合法用户提供持续性的账户安全保障。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。