一种用户鼠标行为的合成与模拟方法及系统转让专利

申请号 : CN201711148377.1

文献号 : CN107908300B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡书杰柏军王佰玲黄俊恒王巍辛国栋

申请人 : 哈尔滨工业大学(威海)

摘要 :

本发明涉及一种用户鼠标行为的合成与模拟方法及系统,包括:(1)数据采集与处理:实时采集用户的原始鼠标数据,分割、清洗后,存入历史操作数据库;(2)模型训练:对于无需移动的操作,训练截尾正态分布模型,生成时间间隔参数;对于需要移动的操作,提取聚类特征和匹配特征,构建训练集;(3)操作合成与模拟:对于无需移动的操作,使用截尾正态分布模型构造模拟操作的消息序列;对于需要移动的操作,使用聚类模型和分类模型,匹配出一个样本作为模板;合成出符合待模拟操作的要求参数的合成操作序列。

权利要求 :

1.一种用户鼠标行为的合成与模拟方法,其特征在于,包括:

(1)数据采集与处理

实时地采集用户的原始鼠标数据,原始鼠标数据是指(x,y,t,action)四元组即鼠标动作点或鼠标消息点构成的原始鼠标操作序列,(x、y)为鼠标在屏幕上的坐标,单位是像素点;t为鼠标动作产生的时间戳,单位为毫秒或微秒;action为鼠标动作的类型,包括鼠标移动、滚轮向上或向下滚动、左键按下或弹起、右键按下或弹起、中键按下或弹起、以及其他功能键按下或弹起;

将原始鼠标数据操作分割后转化为具体的操作,具体的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、移动后左键单击、移动后左键双击、移动后右键单击、滚轮连续滚动、左键拖拽、右键拖拽,再经由数据清洗过滤掉异常数据后,存入历史操作数据库;

(2)模型训练

对于无需移动的操作,无需移动的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、滚轮连续滚动,训练截尾正态分布模型,按其概率分布生成时间间隔参数,时间间隔参数即为各个鼠标消息之间的时间间隔;

对于需要移动的操作,需要移动的操作包括移动后左键单击、移动后左键双击、移动后右键单击、左键拖拽、右键拖拽,对历史操作数据库中的数据提取聚类特征和匹配特征,构建训练集;聚类特征用于训练聚类模型,对各个一级类别进行聚类,将聚类结果作为历史操作样本的二级类别标签;匹配特征结合聚类模型对样本标记的二级类别标签,用于对各个含有移动操作的一级类别操作训练一个分类模型,对于一个该一级类别下尚不知所属二级类别的操作样本,该分类模型根据该样本的匹配特征向量将其分类为该一级类别下的一个具体二级类别,以便匹配出相似度更高的模板样本;一级类别即是经系统预处理来分类出的左键单击、左键双击、移动后左键单击、左键拖拽,二级类别是由聚类算法在各具体一级类别下根据数据样本自行聚类生成的类别;

(3)操作合成与模拟

对于无需移动的操作,使用给定训练好的截尾正态分布模型生成模拟操作所需的时间间隔、构造模拟操作的消息序列;

对于需要移动的操作,输入移动起始点坐标和终点坐标,对其计算出匹配特征向量,将该匹配特征向量输入到所述分类模型中,将其细分到一个二级类别,再根据该匹配特征向量从历史操作数据库中属于该二级类别的操作样本中匹配出一个在加权余弦相似度或加权欧氏距离的度量下相似度最高的样本作为模板样本;对该模板样本进行数据变换合成出符合模拟操作的起止点需求的合成操作序列,基于鼠标操作模拟技术模拟执行该合成操作序列。

2.根据权利要求1所述的一种用户鼠标行为的合成与模拟方法,其特征在于,步骤(1),所述操作分割,假设某段原始鼠标操作序列由N个鼠标动作点构成,包括:A、操作分割项根据元操作的定义将原始鼠标操作序列切分为M1个元操作;所述元操作包括单击操作、滚轮滚动操作、移动操作、拖拽操作;所述单击操作包括左键单击操作、右键单击操作、中键单击操作、其它功能键的单击操作;左键单击操作是指左键按下坐标位置与左键弹起坐标位置的偏移量小于n个像素点距离的操作行为;右键单击操作是指右键按下坐标位置与右键弹起坐标位置的偏移量小于n个像素点距离的操作行为;滚轮滚动操作是指一次滚轮滚动的操作;移动操作是指从静止开始、起始有明显加速过程、到静止结束、结束前有明显减速过程的操作;拖拽操作是指某鼠标键按下后移动了较长距离后弹起的操作;

B、根据组合操作的定义将M1个元操作组合成M2个组合操作;所述组合操作包括双击操作、滚轮连续滚动操作、移动并单击操作、移动并双击操作、其它未构成双击操作、移动并单击操作、移动并双击操作的元操作;M2个组合操作均为一级类别;该类别目录下的若干用户历史操作数据称为该用户在该类别下的操作样本;

C、数据清洗,滤去异常数据,异常数据包括:存在相邻消息的时间间隔取值异常的操作样本、存在相邻消息的坐标位置发生突变的样本。

3.根据权利要求1所述的一种用户鼠标行为的合成与模拟方法,其特征在于,步骤(2),所述聚类特征包括:

1)对于单击操作,包括键按下和弹起的时间间隔、键按下的坐标,即(x,y,dt);(x,y)是指键按下的坐标;dt是指键按下和弹起的时间间隔;

2)对于双击操作,包括两次单击操作的聚类特征、第一次单击操作结束到第二次单击操作开始的时间差;

3)对于滚轮连续滚动操作,包括相邻滚动鼠标动作点的时间间隔、相邻向上滚动鼠标动作点的时间间隔、相邻向下滚动鼠标动作点的时间间隔、向上滚动切换到向下滚动时的时间间隔、向下滚动切换到向上滚动时的时间间隔基本特征的统计特征组,所述基本特征的统计特征组指的是各个基本特征在连续滚轮滚动操作中多次取得的值的序列的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度;

4)对于移动操作,包括构成该移动操作的动作点数量,总耗时,始点到终点构成的向量的方向角、线段长度,近似曲线总长度,平均移动速度,移动效率,每相邻两点间距离的统计特征组,每相邻两点间时间间隔的统计特征组,移动速度序列的统计特征组,加速度序列的统计特征组,加加速度的统计特征组,偏移角的统计特征组,曲率的统计特征组,角速度的统计特征组,局部移动效率序列的统计特征组,局部偏移量序列的统计特征组,总偏移量序列的统计特征组,总偏移比序列的统计特征组,以及最大速度点、最大加速度点、最小加速度点、最大角速度点、最大曲率点、最大偏移量点、最小局部移动效率点在操作轨迹中的空间百分比位置和时间百分比位置;

5)对于移动并单击操作、移动并双击操作,包括单击操作、双击操作、移动操作对应的聚类特征,还包括相邻组合操作之间的停顿时间差,即移动操作、单击操作之间的停顿时间差及移动操作、双击操作之间的停顿时间差;

6)对于拖拽操作:包括移动操作对应的聚类特征,还包括键按下到开始移动的时间间隔、结束移动到键弹起的时间间隔。

4.根据权利要求1所述的一种用户鼠标行为的合成与模拟方法,其特征在于,步骤(2),提取匹配特征,包括:a、输入欲模拟操作的参数,欲模拟操作的参数是指:对于移动并单击操作,是指移动并单击的目标位置;对于拖拽操作,是指拖拽的起点和终点;

b、自行获取鼠标当前的坐标位置,得到欲模拟的移动并单击操作的起点;

c、计算欲模拟操作的匹配特征,将匹配特征输入到训练好的分类模型,找到与欲模拟操作最相似的二级类别;所述匹配特征包括:起止点距离、起止点向量方向角、起点坐标、止点坐标;

d、通过加权余弦相似性度量或加权欧式距离度量相似性度量方法,找到最相似的模板样本。

5.根据权利要求1-4任一所述的一种用户鼠标行为的合成与模拟方法,其特征在于,步骤(3),操作合成与模拟,包括:对于无需移动的操作,给定训练好的截尾正态分布模型,生成欲模拟操作所需的时间间隔,按照生成的时间间隔参数构造出模拟操作的鼠标动作点序列;

对于需要移动的操作,基于训练好的分类模型、相似性匹配策略和历史操作数据,得到一个最相似的历史操作样本作为移动轨迹的模板样本,对该模板样本进行一系列变换操作:包括:①对移动轨迹模板进行坐标平移,使其起点与欲模拟操作的轨迹起点一致;

②对移动轨迹模板绕起点进行坐标旋转,使其起止点确定的向量方向与欲模拟操作的方向一致;

③对移动轨迹模板进行起点不变的轨迹缩放,使其起止点确定的线段长度等于欲模拟操作的起止点距离;

④对移动轨迹模板的坐标位置、时间戳添加扰动,此时该移动轨迹模板用于描述一段完整的鼠标操作消息序列,以该鼠标操作消息序列的初始点作为参考时间零点,对该轨迹进行格式化处理,即用于欲模拟的鼠标操作的执行;

⑤模拟所述鼠标操作消息序列,方法如下:

(Ⅰ)输入一段欲模拟操作的消息序列(x1,y1,0,a1),(x2,y2,t2,a2),…,(xN,yN,tN,aN);

(xi,yi)为鼠标动作发生的屏幕位置坐标,ti为鼠标动作发生时间相对于起始点的时间间隔,ai为鼠标动作类型,1≤i≤N;

(Ⅱ)记录起始时间T0;

(Ⅲ)模拟第一个消息(x1,y1,a1),记录执行时间T1,计算第二个消息的模拟等待时间DT=t2+T0–T1;

(Ⅳ)等待DT时间后,模拟第二个消息,记录执行时间T2,计算第三个消息的DT=t3+T0–T2;

(Ⅴ)以此类推,第i个消息的模拟时间是参照起始时间T0为零点、ti为相对时延、参考当前系统时间计算的当前还需等待的时间;

(Ⅵ)第N个消息模拟完成时,该鼠标操作消息序列模拟即完成。

6.一种用户鼠标行为的合成与模拟系统,包括依次连接的数据采集与处理模块、模型训练模块、操作合成与模拟模块;

所述数据采集与处理模块用于:实时地采集用户的原始鼠标数据,原始鼠标数据是指(x,y,t,action)四元组即鼠标动作点或鼠标消息点构成的原始鼠标操作序列,(x、y)为鼠标在屏幕上的坐标,单位是像素点;t为鼠标动作产生的时间戳,单位为毫秒或微秒;action为鼠标动作的类型,包括鼠标移动、滚轮向上或向下滚动、左键按下或弹起、右键按下或弹起、中键按下或弹起、以及其他功能键按下或弹起;将原始鼠标数据操作分割后转化为具体的操作,具体的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、移动后左键单击、移动后左键双击、移动后右键单击、滚轮连续滚动、左键拖拽、右键拖拽,再经由数据清洗过滤掉异常数据后,存入历史操作数据库;

所述模型训练模块用于:对于无需移动的操作,无需移动的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、滚轮连续滚动,训练截尾正态分布模型,按其概率分布生成时间间隔参数,时间间隔参数即为各个鼠标消息之间的时间间隔;对于需要移动的操作,需要移动的操作包括移动后左键单击、移动后左键双击、移动后右键单击、左键拖拽、右键拖拽,对历史操作数据库中的数据提取聚类特征和匹配特征,构建训练集;聚类特征用于训练聚类模型,对各个一级类别进行聚类,将聚类结果作为历史操作样本的二级类别标签;匹配特征结合聚类模型对样本标记的二级类别标签,用于对各个含有移动操作的一级类别操作训练一个分类模型,对于一个该一级类别下尚不知所属二级类别的操作样本,该分类模型根据该样本的匹配特征向量将其分类为该一级类别下的一个具体二级类别,以便匹配出相似度更高的模板样本;一级类别即是经系统预处理来分类出的左键单击、左键双击、移动后左键单击、左键拖拽,二级类别是由聚类算法在各具体一级类别下根据数据样本自行聚类生成的类别;

所述操作合成与模拟模块用于:对于无需移动的操作,使用给定训练好的截尾正态分布模型生成模拟操作所需的时间间隔、构造模拟操作的消息序列;对于需要移动的操作,输入移动起始点坐标和终点坐标,对其计算出匹配特征向量,将该匹配特征向量输入到所述分类模型中,将其细分到一个二级类别,再根据该匹配特征向量从历史操作数据库中属于该二级类别的操作样本中匹配出一个在余弦相似度或欧氏距离的度量下相似度最高的样本作为模板样本;对该模板样本进行数据变换合成出符合模拟操作的起止点需求的合成操作序列,基于鼠标操作模拟技术模拟执行该合成操作序列。

说明书 :

一种用户鼠标行为的合成与模拟方法及系统

技术领域

[0001] 本发明涉及一种用户鼠标行为的合成与模拟方法及系统,属于用户行为模拟技术领域。

背景技术

[0002] 鼠标行为模拟技术的作用是在各种场景下模拟生成鼠标轨迹序列,并在相应的软硬件平台中模拟产生鼠标操作行为。现有鼠标模拟技术仅停留于产生不具备人类行为特征的鼠标操作、或通过简单的数据回放产生重复的鼠标操作、或将用户的触屏操作转化为模拟的鼠标操作等方面,不能自由生成具有真实用户的鼠标行为特征的合成数据和模拟操作。在基于鼠标行为特征的各种识别技术逐渐热门的今天,这些模拟方法不能够可扩展地生成具备真实用户特征的数据,也不能通过现有的基于鼠标轨迹的行为验证码的检测。
[0003] 近年来,用户的鼠标行为数据越来越多地被用于基于行为或生物特征的身份认证与识别、以及基于鼠标轨迹的行为验证码等技术领域。这些技术基于采集到的鼠标操作数据提取特征,运用机器学习等方法训练分类模型,以达到区分合法用户与非法用户、或者真实用户与机器人用户的目的。一方面,这些技术在某些场景下已经能够对真实的用户鼠标操作达到较高的识别精度,比如基于鼠标拖拽的拼图验证码,除了根据拼图完成结果验证用户真实性之外,还可以根据鼠标操作轨迹的动力特征进行判断,故传统的直接模拟鼠标操作方法,如匀速或匀加速的鼠标移动模拟方法在这些识别技术下已经无所遁形,无法通过检测。另一方面,这些识别技术的实际应用对数据量有很大要求,完全依赖真实数据会降低技术的可用性;而且,目前尚没有一套方法能够生成有效的鼠标行为模拟数据,来对这些技术抵御模拟攻击的安全性与可靠性进行验证和测试。

发明内容

[0004] 针对现有技术的不足,本发明提供了一种用户鼠标行为的合成与模拟方法;
[0005] 本发明还提供了一种用户鼠标行为的合成与模拟系统;
[0006] 本发明能够在给定少量某用户真实鼠标操作数据的情况下,实现对任意常见鼠标操作行为的合成与模拟,合成与模拟出的鼠标操作行为将具备一定的原用户鼠标行为特征。
[0007] 本发明能够用于鼠标行为相关验证码的自动化破解、基于鼠标行为的各种统计学习模型的强化、基于用户鼠标行为的各种模型与系统的性能测试等方面。
[0008] 本发明的技术方案为:
[0009] 一种用户鼠标行为的合成与模拟方法,包括:
[0010] (1)数据采集与处理
[0011] 实时地采集用户的原始鼠标数据,原始鼠标数据是指(x,y,t,action)四元组即鼠标动作点或鼠标消息点构成的原始鼠标操作序列,(x、y)为鼠标在屏幕上的坐标,单位是像素点;t为鼠标动作产生的时间戳,单位为毫秒或微秒;action为鼠标动作的类型,包括鼠标移动、滚轮向上或向下滚动、左键按下或弹起、右键按下或弹起、中键按下或弹起、以及其他功能键按下或弹起;
[0012] 将原始鼠标数据操作分割后转化为具体的操作,具体的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、移动后左键单击、移动后左键双击、移动后右键单击、滚轮连续滚动、左键拖拽、右键拖拽,再经由数据清洗过滤掉由系统调度或用户误碰等原因导致的异常数据后,存入历史操作数据库;
[0013] (2)模型训练
[0014] 对于无需移动的操作,无需移动的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、滚轮连续滚动,训练截尾正态分布模型,按其概率分布生成时间间隔参数,时间间隔参数即为各个鼠标消息之间的时间间隔,如,单击操作:键位按下消息、键位弹起消息之间的时间间隔;
[0015] 对于需要移动的操作,需要移动的操作包括移动后左键单击、移动后左键双击、移动后右键单击、左键拖拽、右键拖拽,对历史操作数据库中的数据提取聚类特征和匹配特征,构建训练集;聚类特征用于训练聚类模型,对各个一级类别进行聚类,将聚类结果作为历史操作样本的二级类别标签;匹配特征结合聚类模型对样本标记的二级类别标签,用于对各个含有移动操作的一级类别操作训练一个分类模型,对于一个该一级类别下尚不知所属二级类别的操作样本,该分类模型根据该样本的匹配特征向量将其分类为该一级类别下的一个具体二级类别,以便匹配出相似度更高的模板样本(下统称为模板样本);一级类别即是上述经系统预处理来分类出的左键单击、左键双击、移动后左键单击、左键拖拽,二级类别是由聚类算法在各具体一级类别下根据数据样本自行聚类生成的类别;例如:对移动后左键单击的一级类别样本进行聚类,产生若干个样本簇,每个簇即为移动后左键单击一级类别下的一个二级类别(如:第一类移动后单击操作,第二类移动后单击操作,等等),这些簇由聚类模型算法根据聚类特征自动生成,不需要人工设计分簇规律。
[0016] 对一类操作(下称一级类别)进行聚类、细分为二级类别的模型,用该模型对该类操作下的样本进行类内类别(下称二级类别)标记;所述匹配特征是聚类特征中由模拟需求推出的特征子集,用于在欲模拟操作的要求下匹配一个二级类别,再将该二级类别样本子集用于匹配具体的历史数据目标(即模板样本);
[0017] (3)操作合成与模拟
[0018] 一个基于鼠标操作的行为可以分解为若干一级类别鼠标操作的组合,依次模拟每个一级类别鼠标操作即可实现鼠标行为的模拟。
[0019] 对于无需移动的操作,使用给定训练好的截尾正态分布模型生成模拟操作所需的时间间隔、构造模拟操作的消息序列;
[0020] 对于需要移动的操作,输入移动起始点坐标和终点坐标(其中起始点可以默认使用鼠标当前位置),对其计算出匹配特征向量,将该匹配特征向量输入到所述分类模型中,将其细分到一个二级类别,再根据该匹配特征向量从历史操作数据库中属于该二级类别的操作样本中匹配出一个在加权余弦相似度或加权欧氏距离的度量下相似度最高的样本作为模板样本;对该模板样本进行数据变换合成出符合模拟操作的起止点需求的合成操作序列,基于鼠标操作模拟技术精确模拟执行该合成操作序列。
[0021] 根据本发明优选的,所述步骤(1),所述操作分割,假设某段原始鼠标操作序列由N个鼠标动作点构成,N是不确定的整数,一段序列可能是100个点,也可能是150个点,或者1234个点,完全是由实际采集的数据决定的;包括:
[0022] A、操作分割项根据元操作的定义将原始鼠标操作序列切分为M1个元操作;所述元操作包括单击操作、滚轮滚动操作、移动操作、拖拽操作;所述单击操作包括左键单击操作、右键单击操作、中键单击操作、其它功能键的单击操作;左键单击操作是指左键按下坐标位置与左键弹起坐标位置的偏移量小于n个像素点距离的操作行为;右键单击操作是指右键按下坐标位置与右键弹起坐标位置的偏移量小于n个像素点距离的操作行为;中键等其他功能键指某些鼠标设备额外设置的辅助功能键,这些功能键与鼠标左键、右键同样具有单击操作,但可能具有其他功能。其它功能键的单击操作类比于左键单击操作、右键单击操作,不同功能键可以区分对待。如:功能键A和功能键B的单击操作视为两类元操作;滚轮滚动操作是指一次滚轮滚动的操作;移动操作是指从静止开始、起始有明显加速过程、到静止结束、结束前有明显减速过程的操作;两段移动元操作之间一般有明显的鼠标静止时间,另外,可设置加速度阈值,要求一段独立的移动元操作的初始加速度大于阈值、结尾负加速度小于阈值(阈值合理的具体取值与屏幕分辨率、鼠标设置等因素有关),据此可将一段很长的移动消息序列以较高精度切割为由用户实际的多次鼠标移动产生的多段独立移动操作。拖拽操作是指某鼠标键按下后移动了较长距离后弹起的操作;不满足偏移量要求的击键操作,即不满足偏移量要求的击键操作。
[0023] B、根据组合操作的定义将M1个元操作组合成M2个组合操作;M1、M2是和实际数据情况有关的不确定整数。则该段鼠标操作会话的操作过程由这个含M2个组合操作的序列描述;所述组合操作包括双击操作、移动并单击操作、移动并双击操作、其它未构成双击操作、滚轮连续滚动操作(一串或多个滚动操作的组合)、移动并单击操作、移动并双击操作的元操作;即无法组合为双击、移动并单击的单击元操作。M2个组合操作均为一级类别;该类别目录下的若干用户历史操作数据称为该用户在该类别下的操作样本;
[0024] C、数据清洗,滤去由于采样误差或者用户误碰等原因导致的异常数据,异常数据包括:存在相邻消息的时间间隔取值异常的操作样本、存在相邻消息的坐标位置发生突变的样本。
[0025] 存在相邻鼠标动作点的时间间隔取值异常的操作样本例如:一个左键单击操作中,左键按下的时间戳为1500毫秒,左键弹起的时间戳为3000毫秒,而正常情况下人的单击操作时间间隔在几十毫秒到几百毫秒之间,这可能是系统卡顿所致,或者是用户极少情况下会产生的结果。时间戳突变阈值的合理取值与鼠标消息频率、设备性能等因素有关;存在相邻消息的坐标位置发生突变的样本例如:一段移动中,第k个点的坐标为(150,200),第k+1个点的坐标突变为(200,300),这通常是系统卡顿、用户误碰等原因导致的。突变阈值的合理取值与屏幕分辨率、鼠标设置等因素有关。
[0026] 根据本发明优选的,所述步骤(2),提取聚类特征目的是针对不同用户,将一级类别的操作样本分别按照其实际具有的特征进一步细分为若干二级类别,划分二级类别是为了后续的模板匹配过程尽量匹配到相同操作条件下聚类特征尽可能相似的模板,该类别模型是与用户相关的。原因是不同用户的操作行为特征在特征空间中具有不同的分布,而操作合成模块的输入参数仅描述了欲模拟操作的基本要求,仅能计算出少量的操作行为特征,对已有完整操作使用更全面的操作行为特征进一步聚类可以使后续匹配过程的匹配目标限定在一个簇中,以在鼠标轨迹识别模型的背景下减小匹配误差、确保行为特征相似性和模拟操作通过各种行为检测的成功率。
[0027] 所述聚类特征包括:
[0028] 1)对于单击操作,包括键按下和弹起的时间间隔、键按下的坐标,即(x,y,dt);(x,y)是指键按下的坐标;dt是指键按下和弹起的时间间隔;
[0029] 2)对于双击操作,包括两次单击操作的聚类特征、第一次单击操作结束到第二次单击操作开始的时间差;共计2个屏幕坐标和3个时间间隔,即:(x1,y1,dt1,dt2,x2,y2,dt3);
[0030] 3)对于滚轮连续滚动操作,包括相邻滚动鼠标动作点的时间间隔、相邻向上滚动鼠标动作点的时间间隔、相邻向下滚动鼠标动作点的时间间隔、向上滚动切换到向下滚动时的时间间隔、向下滚动切换到向上滚动时的时间间隔基本特征的统计特征组,所述滚轮消息时间间隔的统计特征组指的是各个基本特征在连续滚轮滚动操作中多次取得的值的序列的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度;例如:M次滚轮滚动组成的滚轮连续滚动操作至少可以计算出M-1次相邻两次滚动的时间间隔,对这M-1个时间间隔计算出的最大值、最小值、均值等统计特征,即为“相邻滚动时间间隔”这一基本特征的统计特征组。M为大于1的正整数。
[0031] 4)对于移动操作,包括构成该移动操作的动作点数量,总耗时,始点到终点构成的向量(目标向量)的方向角、线段长度,近似曲线(折线段)总长度,平均移动速度,移动效率(等于线段长度除以近似曲线总长度),每相邻两点间距离的统计特征组,每相邻两点间时间间隔的统计特征组,移动速度序列的统计特征组,加速度序列的统计特征组,加加速度的统计特征组,偏移角的统计特征组,曲率的统计特征组,角速度的统计特征组,局部移动效率序列(等于每相邻三点A、B、C中,AC长除以AB长与BC长的和)的统计特征组,局部偏移量序列(等于每相邻三点A、B、C中,点B到直线AC的投影距离)的统计特征组,总偏移量序列(对除始末点外的每个点,其总偏移量等于其到目标向量所确定的直线的投影距离)的统计特征组,总偏移比序列(等于总偏移量除以曲线总长度)的统计特征组,以及最大速度点、最大加速度点、最小加速度点、最大角速度点、最大曲率点、最大偏移量点、最小局部移动效率点在操作轨迹中的空间百分比位置和时间百分比位置;
[0032] 5)对于移动并单击操作、移动并双击操作,包括单击操作、双击操作、移动操作对应的聚类特征,还包括相邻组合操作之间的停顿时间差,即移动操作、单击操作之间的停顿时间差及移动操作、双击操作之间的停顿时间差;
[0033] 6)对于拖拽操作:包括移动操作对应的聚类特征,还包括键按下到开始移动的时间间隔、结束移动到键弹起的时间间隔。
[0034] 对于无需移动操作,省略聚类与分类的步骤,直接训练截尾正态分布模型,按其概率分布生成时间间隔参数即可;
[0035] 本发明所设计的框架对聚类特征的选取是可扩展的,既可以添加新的特征以强化模型,也可以选取特征子集来适应不同应用场合的需求。
[0036] 根据本发明优选的,所述步骤(2),提取匹配特征,包括:
[0037] a、输入欲模拟操作的参数,欲模拟操作的参数是指:对于移动并单击操作,是指移动并单击的目标位置(终点);对于拖拽操作,是指拖拽的起点和终点;其中起点可省略输入,在步骤b中自行获取;下以移动并单击操作的模拟为例,拖拽操作类同;
[0038] b、自行获取鼠标当前的坐标位置,得到欲模拟的移动并单击操作的起点。
[0039] c、计算欲模拟操作的匹配特征,将匹配特征输入到训练好的分类模型,找到与欲模拟操作最相似的二级类别;所述匹配特征包括:起止点距离、起止点向量方向角、起点坐标、止点坐标;
[0040] d、通过加权余弦相似性度量或加权欧式距离度量等相似性度量方法,找到最相似的模板样本。
[0041] 根据本发明优选的,所述步骤(3),操作合成与模拟,包括:
[0042] 对于无需移动的操作,给定训练好的截尾正态分布模型,生成欲模拟操作所需的时间间隔,按照生成的时间间隔参数构造出模拟操作的鼠标动作点序列;例如,生成左键单击操作的左键按下、弹起之间的时间间隔T之后,可以构造模拟左键单击操作的动作点序列[(X,Y,0,左键按下),(X,Y,T,左键弹起)];使用截尾正态分布是为了避免正态分布小概率生成反常特征的可能。
[0043] 对于需要移动的操作,基于训练好的分类模型、相似性匹配策略和历史操作数据,得到一个最相似的历史操作样本作为移动轨迹的模板样本,对该模板样本进行一系列变换操作:包括:
[0044] ①对移动轨迹模板进行坐标平移,使其起点与欲模拟操作的轨迹起点一致;
[0045] ②对移动轨迹模板绕起点进行坐标旋转,使其起止点确定的向量方向与欲模拟操作的方向一致;
[0046] ③对移动轨迹模板进行起点不变的轨迹缩放,使其起止点确定的线段长度等于欲模拟操作的起止点距离;此时该轨迹与欲模拟操作的轨迹的起止点已经完全重合;
[0047] ④对移动轨迹模板的坐标位置、时间戳添加扰动,使其具有一定的随机性;此时该移动轨迹模板用于描述一段完整的鼠标操作消息序列,以该鼠标操作消息序列的初始点作为参考时间零点,对该轨迹进行格式化处理,即用于欲模拟的鼠标操作的执行。典型如Windows系统下“消息插入”的软件模拟方式,或其他硬件模拟方式。模拟消息时,相对时间戳不作为参数显式输入,而作为消息模拟的参考时间点,隐式体现,即:在某消息指定的时间点模拟该消息。
[0048] ⑤模拟所述鼠标操作消息序列,方法如下:
[0049] (I)输入一段欲模拟操作的消息序列(x1,y1,0,a1),(x2,y2,t2,a2),...,(xN,yN,tN,aN);(xi,yi)为鼠标动作发生的屏幕位置坐标,ti为鼠标动作发生时间相对于起始点的时间间隔,ai为鼠标动作类型(如:左键按下,左键弹起,鼠标移动等等)。1≤I≤N;
[0050] (II)记录起始时间T0;
[0051] (III)模拟第一个消息(x1,y1,a1),记录执行时间T1,计算第二个消息的模拟等待时间DT=t2+T0-T1;
[0052] (IV)等待DT时间后,模拟第二个消息,记录执行时间T2,计算第三个消息的DT=t3+T0-T2;
[0053] (V)以此类推,第i个消息的模拟时间是参照起始时间T0为零点、ti为相对时延、参考当前系统时间计算的当前还需等待的时间;
[0054] (VI)第N个消息模拟完成时,该鼠标操作消息序列模拟即完成。
[0055] 一种用户鼠标行为的合成与模拟系统,包括依次连接的数据采集与处理模块、模型训练模块、操作合成与模拟模块;
[0056] 所述数据采集与处理模块用于:实时地采集用户的原始鼠标数据,原始鼠标数据是指(x,y,t,action)四元组即鼠标动作点或鼠标消息点构成的原始鼠标操作序列,(x、y)为鼠标在屏幕上的坐标,单位是像素点;t为鼠标动作产生的时间戳,单位为毫秒或微秒;action为鼠标动作的类型,包括鼠标移动、滚轮向上或向下滚动、左键按下或弹起、右键按下或弹起、中键按下或弹起、以及其他功能键按下或弹起;将原始鼠标数据操作分割后转化为具体的操作,具体的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、移动后左键单击、移动后左键双击、移动后右键单击、滚轮连续滚动、左键拖拽、右键拖拽,再经由数据清洗过滤掉由系统调度或用户误碰等原因导致的异常数据后,存入历史操作数据库;
[0057] 所述模型训练模块用于:对于无需移动的操作,无需移动的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、滚轮连续滚动,训练截尾正态分布模型,按其概率分布生成时间间隔参数,时间间隔参数即为各个鼠标消息之间的时间间隔;对于需要移动的操作,需要移动的操作包括移动后左键单击、移动后左键双击、移动后右键单击、左键拖拽、右键拖拽,对历史操作数据库中的数据提取聚类特征和匹配特征,构建训练集;聚类特征用于训练聚类模型,对各个一级类别进行聚类,将聚类结果作为历史操作样本的二级类别标签;匹配特征结合聚类模型对样本标记的二级类别标签,用于对各个含有移动操作的一级类别操作训练一个分类模型,对于一个该一级类别下尚不知所属二级类别的操作样本,该分类模型根据该样本的匹配特征向量将其分类为该一级类别下的一个具体二级类别,以便匹配出相似度更高的模板样本(下统称为模板样本);一级类别即是上述经系统预处理来分类出的左键单击、左键双击、移动后左键单击、左键拖拽,二级类别是由聚类算法在各具体一级类别下根据数据样本自行聚类生成的类别;
[0058] 所述操作合成与模拟模块用于:对于无需移动的操作,使用给定训练好的截尾正态分布模型生成模拟操作所需的时间间隔、构造模拟操作的消息序列;对于需要移动的操作,输入移动起始点坐标和终点坐标(其中起始点可以默认使用鼠标当前位置),对其计算出匹配特征向量,将该匹配特征向量输入到所述分类模型中,将其细分到一个二级类别,再根据该匹配特征向量从历史操作数据库中属于该二级类别的操作样本中匹配出一个在余弦相似度或欧氏距离的度量下相似度最高的样本作为模板样本;对该模板样本进行数据变换合成出符合模拟操作的起止点需求的合成操作序列,基于鼠标操作模拟技术精确模拟执行该合成操作序列。
[0059] 本发明的有益效果为:
[0060] 1、本发明一种用于模拟真实用户鼠标操作行为的方法能够从少量的用户鼠标操作轨迹中提取出常见的鼠标操作,并合成和模拟新的鼠标操作行为,这些新的鼠标操作行为是在一定程度上具有该用户鼠标行为特征的。本发明是第一个基于数据和用户特征设计的鼠标行为模拟发明。
[0061] 2、本发明产生的合成数据与模拟操作可用于基于用户鼠标行为的各种模型与系统的性能测试与强化、基于人类鼠标行为相关验证码的自动化破解等方面。对移动并左键单击操作的初步模拟实验显示,成功率随使用的历史操作数据量有增加趋势。

附图说明

[0062] 图1为本发明用户鼠标行为的合成与模拟方法流程框图;
[0063] 图2为本发明模型训练阶段的流程示意图;
[0064] 图3为本发明操作合成与模拟阶段的流程示意图;

具体实施方式

[0065] 下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
[0066] 实施例1
[0067] 一种用户鼠标行为的合成与模拟方法,如图1所示,包括:
[0068] (1)数据采集与处理
[0069] 在用户使用个人电脑或通过浏览器访问Web站点时,基于Hook实现的PC端数据采集程序或基于JavaScript的Web端数据采集程序能够实时地采集用户的原始鼠标数据,原始鼠标数据是指(x,y,t,action)四元组即鼠标动作点或鼠标消息点构成的原始鼠标操作序列,(x、y)为鼠标在屏幕上的坐标,单位是像素点;t为鼠标动作产生的时间戳,单位为毫秒或微秒;action为鼠标动作的类型,包括鼠标移动、滚轮向上或向下滚动、左键按下或弹起、右键按下或弹起、中键按下或弹起、以及其他功能键按下或弹起;
[0070] 将原始鼠标数据操作分割后转化为具体的操作,具体的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、移动后左键单击、移动后左键双击、移动后右键单击、滚轮连续滚动、左键拖拽、右键拖拽,再经由数据清洗过滤掉由系统调度或用户误碰等原因导致的异常数据后,存入历史操作数据库;
[0071] (2)模型训练
[0072] 如图2所示,对于无需移动的操作,无需移动的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、滚轮连续滚动,训练截尾正态分布模型,按其概率分布生成时间间隔参数,时间间隔参数即为各个鼠标消息之间的时间间隔,如,单击操作:键位按下消息、键位弹起消息之间的时间间隔;
[0073] 对于需要移动的操作,需要移动的操作包括移动后左键单击、移动后左键双击、移动后右键单击、左键拖拽、右键拖拽,对历史操作数据库中的数据提取聚类特征和匹配特征,构建训练集;聚类特征用于训练聚类模型,对各个一级类别进行聚类,将聚类结果作为历史操作样本的二级类别标签;匹配特征结合聚类模型对样本标记的二级类别标签,用于对各个含有移动操作的一级类别操作训练一个分类模型,对于一个该一级类别下尚不知所属二级类别的操作样本,该分类模型根据该样本的匹配特征向量将其分类为该一级类别下的一个具体二级类别,以便匹配出相似度更高的模板样本(下统称为模板样本);一级类别即是上述经系统预处理来分类出的左键单击、左键双击、移动后左键单击、左键拖拽,二级类别是由聚类算法在各具体一级类别下根据数据样本自行聚类生成的类别;例如:对移动后左键单击的一级类别样本进行聚类,产生若干个样本簇,每个簇即为移动后左键单击一级类别下的一个二级类别(如:第一类移动后单击操作,第二类移动后单击操作,等等),这些簇由聚类模型算法根据聚类特征自动生成,不需要人工设计分簇规律。
[0074] 对一类操作(下称一级类别)进行聚类、细分为二级类别的模型,用该模型对该类操作下的样本进行类内类别(下称二级类别)标记;匹配特征是聚类特征中由模拟需求推出的特征子集,用于在欲模拟操作的要求下匹配一个二级类别,再将该二级类别样本子集用于匹配具体的历史数据目标(即模板样本);
[0075] (3)操作合成与模拟
[0076] 如图3所示,一个基于鼠标操作的行为可以分解为若干一级类别鼠标操作的组合,依次模拟每个一级类别鼠标操作即可实现鼠标行为的模拟。
[0077] 对于无需移动的操作,使用给定训练好的截尾正态分布模型生成模拟操作所需的时间间隔、构造模拟操作的消息序列;
[0078] 对于需要移动的操作,输入移动起始点坐标和终点坐标(其中起始点可以默认使用鼠标当前位置),对其计算出匹配特征向量,将该匹配特征向量输入到分类模型中,将其细分到一个二级类别,再根据该匹配特征向量从历史操作数据库中属于该二级类别的操作样本中匹配出一个在加权余弦相似度或加权欧氏距离的度量下相似度最高的样本作为模板样本;对该模板样本进行数据变换合成出符合模拟操作的起止点需求的合成操作序列,基于鼠标操作模拟技术精确模拟执行该合成操作序列。
[0079] 实施例2
[0080] 根据实施例1所述的一种用户鼠标行为的合成与模拟方法,其区别在于:
[0081] 步骤(1),操作分割,假设某段原始鼠标操作序列由N个鼠标动作点构成,包括:
[0082] A、操作分割项根据元操作的定义将原始鼠标操作序列切分为M1个元操作;元操作包括单击操作、滚轮滚动操作、移动操作、拖拽操作;单击操作包括左键单击操作、右键单击操作、中键单击操作、其它功能键的单击操作;左键单击操作是指左键按下坐标位置与左键弹起坐标位置的偏移量小于n个像素点距离的操作行为;右键单击操作是指右键按下坐标位置与右键弹起坐标位置的偏移量小于n个像素点距离的操作行为;中键等其他功能键指某些鼠标设备额外设置的辅助功能键,这些功能键与鼠标左键、右键同样具有单击操作,但可能具有其他功能。其它功能键的单击操作类比于左键单击操作、右键单击操作,不同功能键可以区分对待。如:功能键A和功能键B的单击操作视为两类元操作;滚轮滚动操作是指一次滚轮滚动的操作;移动操作是指从静止开始、起始有明显加速过程、到静止结束、结束前有明显减速过程的操作;两段移动元操作之间一般有明显的鼠标静止时间,另外,可设置加速度阈值,要求一段独立的移动元操作的初始加速度大于阈值、结尾负加速度小于阈值(阈值合理的具体取值与屏幕分辨率、鼠标设置等因素有关),据此可将一段很长的移动消息序列以较高精度切割为由用户实际的多次鼠标移动产生的多段独立移动操作。拖拽操作是指某鼠标键按下后移动了较长距离后弹起的操作;不满足偏移量要求的击键操作,即不满足偏移量要求的击键操作。
[0083] B、根据组合操作的定义将M1个元操作组合成M2个组合操作;则该段鼠标操作会话的操作过程由这个含M2个组合操作的序列描述;组合操作包括双击操作、滚轮连续滚动操作、移动并单击操作、移动并双击操作、其它未构成双击操作、移动并单击操作、移动并双击操作的元操作;即无法组合为双击、移动并单击的单击元操作。M2个组合操作均为一级类别;该类别目录下的若干用户历史操作数据称为该用户在该类别下的操作样本;
[0084] C、数据清洗,滤去由于采样误差或者用户误碰等原因导致的异常数据,异常数据包括:存在相邻消息的时间间隔取值异常的操作样本、存在相邻消息的坐标位置发生突变的样本。
[0085] 存在相邻鼠标动作点的时间间隔取值异常的操作样本例如:一个左键单击操作中,左键按下的时间戳为1500毫秒,左键弹起的时间戳为3000毫秒,而正常情况下人的单击操作时间间隔在几十毫秒到几百毫秒之间,这可能是系统卡顿所致,或者是用户极少情况下会产生的结果。时间戳突变阈值的合理取值与鼠标消息频率、设备性能等因素有关;存在相邻消息的坐标位置发生突变的样本例如:一段移动中,第k个点的坐标为(150,200),第k+1个点的坐标突变为(200,300),这通常是系统卡顿、用户误碰等原因导致的。突变阈值的合理取值与屏幕分辨率、鼠标设置等因素有关)
[0086] 实施例3
[0087] 根据实施例1所述的一种用户鼠标行为的合成与模拟方法,其区别在于:
[0088] 步骤(2),提取聚类特征目的是针对不同用户,将一级类别的操作样本分别按照其实际具有的特征进一步细分为若干二级类别,划分二级类别是为了后续的模板匹配过程尽量匹配到相同操作条件下聚类特征尽可能相似的模板,该类别模型是与用户相关的。原因是不同用户的操作行为特征在特征空间中具有不同的分布,而操作合成模块的输入参数仅描述了欲模拟操作的基本要求,仅能计算出少量的操作行为特征,对已有完整操作使用更全面的操作行为特征进一步聚类可以使后续匹配过程的匹配目标限定在一个簇中,以在鼠标轨迹识别模型的背景下减小匹配误差、确保行为特征相似性和模拟操作通过各种行为检测的成功率。
[0089] 聚类特征包括:
[0090] 1)对于单击操作,包括键按下和弹起的时间间隔、键按下的坐标,即(x,y,dt);(x,y)是指键按下的坐标;dt是指键按下和弹起的时间间隔;
[0091] 2)对于双击操作,包括两次单击操作的聚类特征、第一次单击操作结束到第二次单击操作开始的时间差;共计2个屏幕坐标和3个时间间隔,即:(x1,y1,dt1,dt2,x2,y2,dt3);
[0092] 3)对于滚轮连续滚动操作,包括相邻滚动鼠标动作点的时间间隔、相邻向上滚动鼠标动作点的时间间隔、相邻向下滚动鼠标动作点的时间间隔、向上滚动切换到向下滚动时的时间间隔、向下滚动切换到向上滚动时的时间间隔基本特征的统计特征组,滚轮消息时间间隔的统计特征组指的是各个基本特征在连续滚轮滚动操作中多次取得的值的序列的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度;例如:M次滚轮滚动组成的滚轮连续滚动操作至少可以计算出M-1次相邻两次滚动的时间间隔,对这M-1个时间间隔计算出的最大值、最小值、均值等统计特征,即为“相邻滚动时间间隔”这一基本特征的统计特征组。M为大于1的正整数。
[0093] 4)对于移动操作,包括构成该移动操作的动作点数量,总耗时,始点到终点构成的向量(目标向量)的方向角、线段长度,近似曲线(折线段)总长度,平均移动速度,移动效率(等于线段长度除以近似曲线总长度),每相邻两点间距离的统计特征组,每相邻两点间时间间隔的统计特征组,移动速度序列的统计特征组,加速度序列的统计特征组,加加速度的统计特征组,偏移角的统计特征组,曲率的统计特征组,角速度的统计特征组,局部移动效率序列(等于每相邻三点A、B、C中,AC长除以AB长与BC长的和)的统计特征组,局部偏移量序列(等于每相邻三点A、B、C中,点B到直线AC的投影距离)的统计特征组,总偏移量序列(对除始末点外的每个点,其总偏移量等于其到目标向量所确定的直线的投影距离)的统计特征组,总偏移比序列(等于总偏移量除以曲线总长度)的统计特征组,以及最大速度点、最大加速度点、最小加速度点、最大角速度点、最大曲率点、最大偏移量点、最小局部移动效率点在操作轨迹中的空间百分比位置和时间百分比位置;
[0094] 例如,设一段移动由五个移动动作点构成,这五个点的描述为:点P1(100,100,0,鼠标移动),点P2(110,105,10,鼠标移动),点P3(130,110,20,鼠标移动),点P4(160,115,30,鼠标移动),点P5(200,120,40,鼠标移动)。设第i个点Pi的描述为(xi,yi,ti,ai),则:
[0095] 构成该移动操作的动作点数量即为N=5,该段移动总耗时为T=40毫秒。
[0096] 目标向量的方向角即为向量 的弧度数θ,本例中 弧度,当δx=0时,若δy>0则θ为 弧
度,若δy>0则θ为 弧度。
[0097] 目标向量的线段长度即为
[0098] 近似曲线总长度即为:其中
为第i个点到第i+1个点的距离。
[0099] 平均移动速度即为:
[0100] 移动效率即为:
[0101] 每相邻两点间的距离即为δsi,本例中δs1=11.18,δs2=20.62,δs3=30.41,δs4=40.31。其统计特征组即为序列(11.18,20.62,30.41,40.31)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。例如,最大值δsmax=max(11.18,20.62,30.41,40.31)=40.31,均值 标准差 偏

[0102] 每相邻两点间的时间间隔序列即为δti=ti+1-ti,i=1,...,N-1,δti为第i个点到第i+1个点的时间间隔,本例中δt1=δt2=δt3=δt4=10。其统计特征组即为序列(10,10,10,10)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0103] 移动速度序列即为: 本例中 v2=2.062,v3=3.041,v4=4.031;其统计特征组即为序列(1.118,2.062,3.041,4.031)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0104] 移动加速度序列即为: 其中δvi=vi+1-vi为第i个速度到第i+1个速度的变化值。本例中
(注:本例因δsi仅保留到小数点后2位,最终舍入误差造成了匀加
速运动的数据计算出非匀加速的特征,在实际计算机运算时可以更加精确,该误差将能够忽略不计);其统计特征组即为序列(0.0944,0.0979,0.099)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0105] 偏移角序列即为:δαi=αi-θ,i=1,...,N-1,其中θ是该移动轨迹的目标向量方向角, 是向量 的方向角。本例中其统计特征组即为序列(0.2663,0.0476,-0.0322,-
0.0730)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0106] 曲率序列即为: 其中δθi=αi+1-αi为移动轨迹中相邻三点确定的两个相邻移动向量的角度变化。本例中
其统计特征组即为序列(-0.01956,-0.00387,-0.00134)的最大值、最
小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0107] 角速度序列即为: 本例中其统计特征组即为序列(-0.02187,-0.00798,-
0.00408)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0108] 局部移动效率序列即为: 其中为第i点到第i+2点的距离(即:相邻三点确
定的弧的弦长)。本例中
其统计特征组即为序列(0.9946,0.9992,0.9998)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0109] 局部偏移量是指每相邻三个点中第二个点到第一、三个点确定的直线的垂线段的长度,其序列即为: 其中Ai-1,i+1、Bi-1,i+1、Ci-1,i+1为第i-1个点与第i+1个点确定的直线方程Ax+By+C=0的参数,可将坐标带入方程解得。本例中
其统计特征组即为序列(1.581,0.981,0.707)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0110] 总偏移量是指除起点和终点外的每个点到起点和终点确定的直线的垂线段的长度,其序列即为: 其中A0、B0、C0为起点和终点确定的直线方程Ax+By+C=0的参数,可将坐标带入方程解得。本例中
其统计特征
组即为序列(2.942,3.922,2.942)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0111] 总偏移比等于各点总偏移量与曲线总长度的比值,其序列即为:本例中 其统计特征组即为序列(0.0287,
0.0383,0.0287)的最大值、最小值、均值、标准差、点数量、方差、中位数、偏度、峰度。
[0112] 最大速度点、最大加速度点、最小加速度点、最大角速度点、最大偏移量点、最小局部移动效率点在操作轨迹中的空间百分比位置Ls和时间百分比位置Lt,以最大速度点为例,其他类同:本例中 v2=2.062,v3=3.041,v4=4.031,其中最大速度vmax=v4可定义其取值在点P4、点P5的中点,即:其 时 间 百 分比 位 置 即 为 其 相 对 于 起 点的 时 间 戳 与 总 耗时 之比 ,即将点P4.5投影到线段P1FN确定的直线L上,可根据平面几何
计算出投影点(垂足) 其空间百分比位置即为线
段 之长与目标向量之长D的比值,即
[0113] 5)对于移动并单击操作、移动并双击操作,包括单击操作、双击操作、移动操作对应的聚类特征,还包括相邻组合操作之间的停顿时间差,即移动操作、单击操作之间的停顿时间差及移动操作、双击操作之间的停顿时间差;
[0114] 6)对于拖拽操作:包括移动操作对应的聚类特征,还包括键按下到开始移动的时间间隔、结束移动到键弹起的时间间隔。
[0115] 对于无需移动操作,省略聚类与分类的步骤,直接训练截尾正态分布模型,按其概率分布生成时间间隔参数即可;
[0116] 本发明所设计的框架对聚类特征的选取是可扩展的,既可以添加新的特征以强化模型,也可以选取特征子集来适应不同应用场合的需求。
[0117] 步骤(2),提取匹配特征,包括:
[0118] a、输入欲模拟操作的参数,欲模拟操作的参数是指:对于移动并单击操作,是指移动并单击的目标位置(终点);对于拖拽操作,是指拖拽的起点和终点;其中起点可省略输入,在步骤b中自行获取;下以移动并单击操作的模拟为例,拖拽操作类同;
[0119] b、自行获取鼠标当前的坐标位置,得到欲模拟的移动并单击操作的起点。
[0120] c、计算欲模拟操作的匹配特征,将匹配特征输入到训练好的分类模型,找到与欲模拟操作最相似的二级类别;匹配特征包括:起止点距离、起止点向量方向角、起点坐标、止点坐标;
[0121] d、通过加权余弦相似性度量或加权欧式距离度量等相似性度量方法,找到最相似的模板样本。
[0122] 实施例4
[0123] 根据实施例1所述的一种用户鼠标行为的合成与模拟方法,其区别在于:
[0124] 步骤(3),操作合成与模拟,包括:
[0125] 对于无需移动的操作,给定训练好的截尾正态分布模型,生成欲模拟操作所需的时间间隔,按照生成的时间间隔参数构造出模拟操作的鼠标动作点序列;例如,生成左键单击操作的左键按下、弹起之间的时间间隔T之后,可以构造模拟左键单击操作的动作点序列[(X,Y,0,左键按下),(X,Y,T,左键弹起)];使用截尾正态分布是为了避免正态分布小概率生成反常特征的可能。
[0126] 对于需要移动的操作,基于训练好的分类模型、相似性匹配策略和历史操作数据,得到一个最相似的历史操作样本作为移动轨迹的模板样本,对该模板样本进行一系列变换操作:包括:
[0127] ①对移动轨迹模板进行坐标平移,使其起点与欲模拟操作的轨迹起点一致;
[0128] ②对移动轨迹模板绕起点进行坐标旋转,使其起止点确定的向量方向与欲模拟操作的方向一致;
[0129] ③对移动轨迹模板进行起点不变的轨迹缩放,使其起止点确定的线段长度等于欲模拟操作的起止点距离;此时该轨迹与欲模拟操作的轨迹的起止点已经完全重合;
[0130] ④对移动轨迹模板的坐标位置、时间戳添加扰动,使其具有一定的随机性;此时该移动轨迹模板用于描述一段完整的鼠标操作消息序列,以该鼠标操作消息序列的初始点作为参考时间零点,对该轨迹进行格式化处理,即用于欲模拟的鼠标操作的执行。典型如Windows系统下“消息插入”的软件模拟方式,或其他硬件模拟方式。模拟消息时,相对时间戳不作为参数显式输入,而作为消息模拟的参考时间点,隐式体现,即:在某消息指定的时间点模拟该消息。
[0131] ⑤模拟鼠标操作消息序列,方法如下:
[0132] (I)输入一段欲模拟操作的消息序列(x1,y1,0,a1),(x2,y2,t2,a2),...,(xN,yN,tN,aN);(xi,yi)为鼠标动作发生的屏幕位置坐标,ti为鼠标动作发生时间相对于起始点的时间间隔,ai为鼠标动作类型(如:左键按下,左键弹起,鼠标移动等等)。1≤I≤N;
[0133] (II)记录起始时间T0;
[0134] (III)模拟第一个消息(x1,y1,a1),记录执行时间T1,计算第二个消息的模拟等待时间DT=t2+T0-T1;
[0135] (IV)等待DT时间后,模拟第二个消息,记录执行时间T2,计算第三个消息的DT=t3+T0-T2;
[0136] (V)以此类推,第i个消息的模拟时间是参照起始时间T0为零点、ti为相对时延、参考当前系统时间计算的当前还需等待的时间;
[0137] (VI)第N个消息模拟完成时,该鼠标操作消息序列模拟即完成。
[0138] 实施例5
[0139] 一种用户鼠标行为的合成与模拟方法,包括:
[0140] (1)采集用户X的原始鼠标轨迹数据,从中提取出有效的单击、双击、移动、移动并单击、移动并双击、拖拽、滚轮操作若干,此为一级操作类别,设其中左键双击操作样本有100条,左键拖拽操作样本有50条;
[0141] (2)分别对各一级操作类别提取特征;
[0142] (3)模型建立。对于不含移动的操作,如:左键双击操作,直接对这100条左键双击操作样本的构造特征进行正态分布拟合,并将各个正态分布模型转化为截尾正态分布模型。具体特征包括:第一次左键按下与左键弹起之间的时间间隔Dt1、第一次左键弹起与第二次左键按下的时间间隔Dt2、第二次左键按下与第二次左键弹起的时间间隔Dt3。对于含有移动的操作,如:左键拖拽操作,基于其聚类特征,使用DBSCAN算法将这50条左键拖拽操作样本聚成若干类(设聚成了K类),作为这50样本的二级类别标签,然后基于这50条样本的匹配特征及其对应的标签,使用GBDT算法训练一个分类模型,该分类模型能够将输入的一个匹配特征向量分类到K个二级类别的其中之一;
[0143] (4)对于案例要求的“左键拖拽某目标到指定位置、然后左键双击该目标”行为,假设鼠标当前位置与目标当前位置有一定距离,则可将该行为分解为:移动到目标位置、拖拽目标到指定位置、原地双击,即移动、拖拽、双击三个一级操作,在某范围内随机设置操作间的时间延迟,例如1000毫秒、500毫秒。操作涉及的目标位置坐标通常是外界给定的输入、也可通过句柄识别或HTML元素定位或图像识别方法获取目标坐标。对分解出的移动、左键拖拽、左键双击操作,依次分别执行(5)到(7),应当注意到,移动操作模拟完成后,鼠标当前坐标位置会更新;
[0144] (5)对含移动操作的移动和拖拽操作执行以下操作:以左键拖拽操作为例,由输入的目标点坐标参数和鼠标当前位置参数,计算出该操作的匹配特征,作为特征向量输入左键拖拽操作对应的GBDT分类模型,得到该欲模拟的拖拽操作所属的二级类别(其中,GBDT的输出可以是在分类概率最高的若干类中作有权随机选择,也可直接选择概率最高的类),设该二级类别下有5个样本,则再通过加权余弦相似度、加权欧氏距离可从这5个二级类别样本中匹配一个操作模板(其中,匹配一个操作模板的方式可以是相似度最高的,也可以是随机选择的),进入(6)。
[0145] (6)对于不含移动的左键双击操作,根据(3)中的Dt1、Dt2、Dt3三个特征所对应的三个截尾正态分布可分别随机生成一组(Dt1,Dt2,Dt3),此即合成的左键双击操作参数,合成的左键单击操作序列可描述为:[(x,y,0,left-down),(x,y,Dt1,left-up),(x,y,Dt1+Dt2,left-down),(x,y,Dt1+Dt2+Dt3,left-up)];对于含移动的操作,例如(5)左键拖拽操作,对(5)所得模板序列进行坐标平移、坐标旋转、坐标缩放、扰动添加,可得到一个起点在鼠标当前位置、终点在单击目标位置的轨迹序列,该序列可描述为:[(x1,y1,0,left-down),(x2,y2,t2,move),……,(xn,yn,tn,mouse-move),(xn-1,yn-1,tn-1,move),(xn,yn,tn,left-up)];
[0146] (7)对(6)所得操作序列作时间单位的规范化,并模拟执行。
[0147] 当(4)中分解出的移动、左键拖拽、左键双击这三个操作均模拟执行完成后,案例的鼠标行为即模拟完成。
[0148] 在指定用户模拟逼真度实验中,本发明采集了24名用户的鼠标操作数据,应用本发明的鼠标行为合成与模拟系统,进行了模拟实验。采用鼠标行为身份认证领域中经典的基于多次移动并单击行为的认证框架(区分样本是否属于某个用户),作为基准模型来验证模拟效果,在以20次移动并单击行为作为一个识别样本的情况下,该基准模型对真实鼠标行为的平均误识率低于2%,而对本发明基于24名用户的真实数据模拟出的鼠标行为的平均误识率在60%以上、误识率中位数在85%以上。即对多数用户,本发明模拟的鼠标行为能够较逼真地模拟用户行为特征,以85%以上的成通过率通过基准身份认证模型的检测。可以预计,本发明对现有机器人行为检测模型(区分样本是属于真实用户还是脚本机器人)也将有较高的通过率。
[0149] 现有的鼠标事件模拟方法模拟出的鼠标行为不具有用户行为特征,对身份认证模型的通过率低于2%,机器人行为检测模型也很容易将其识别出来。
[0150] 实施例6
[0151] 一种用户鼠标行为的合成与模拟系统,包括依次连接的数据采集与处理模块、模型训练模块、操作合成与模拟模块;
[0152] 数据采集与处理模块用于:实时地采集用户的原始鼠标数据,原始鼠标数据是指(x,y,t,action)四元组即鼠标动作点或鼠标消息点构成的原始鼠标操作序列,(x、y)为鼠标在屏幕上的坐标,单位是像素点;t为鼠标动作产生的时间戳,单位为毫秒或微秒;action为鼠标动作的类型,包括鼠标移动、滚轮向上或向下滚动、左键按下或弹起、右键按下或弹起、中键按下或弹起、以及其他功能键按下或弹起;将原始鼠标数据操作分割后转化为具体的操作,具体的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、移动后左键单击、移动后左键双击、移动后右键单击、滚轮连续滚动、左键拖拽、右键拖拽,再经由数据清洗过滤掉由系统调度或用户误碰等原因导致的异常数据后,存入历史操作数据库;
[0153] 模型训练模块用于:对于无需移动的操作,无需移动的操作包括左键单击、右键单击、左键双击、中键单击、其他功能键单击、滚轮连续滚动,训练截尾正态分布模型,按其概率分布生成时间间隔参数,时间间隔参数即为各个鼠标消息之间的时间间隔;对于需要移动的操作,需要移动的操作包括移动后左键单击、移动后左键双击、移动后右键单击、左键拖拽、右键拖拽,对历史操作数据库中的数据提取聚类特征和匹配特征,构建训练集;聚类特征用于训练聚类模型,对各个一级类别进行聚类,将聚类结果作为历史操作样本的二级类别标签;匹配特征结合聚类模型对样本标记的二级类别标签,用于对各个含有移动操作的一级类别操作训练一个分类模型,对于一个该一级类别下尚不知所属二级类别的操作样本,该分类模型根据该样本的匹配特征向量将其分类为该一级类别下的一个具体二级类别,以便匹配出相似度更高的模板样本(下统称为模板样本);一级类别即是上述经系统预处理来分类出的左键单击、左键双击、移动后左键单击、左键拖拽,二级类别是由聚类算法在各具体一级类别下根据数据样本自行聚类生成的类别;
[0154] 操作合成与模拟模块用于:对于无需移动的操作,使用给定训练好的截尾正态分布模型生成模拟操作所需的时间间隔、构造模拟操作的消息序列;对于需要移动的操作,输入移动起始点坐标和终点坐标(其中起始点可以默认使用鼠标当前位置),对其计算出匹配特征向量,将该匹配特征向量输入到分类模型中,将其细分到一个二级类别,再根据该匹配特征向量从历史操作数据库中属于该二级类别的操作样本中匹配出一个在余弦相似度或欧氏距离的度量下相似度最高的样本作为模板样本;对该模板样本进行数据变换合成出符合模拟操作的起止点需求的合成操作序列,基于鼠标操作模拟技术精确模拟执行该合成操作序列。