一种基于异常行为检测的身份识别方法转让专利

申请号 : CN202010737568.7

文献号 : CN111625792B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢林涛向成钢

申请人 : 杭州大乘智能科技有限公司

摘要 :

本发明公开了一种基于异常行为检测的身份识别方法,主要技术方案包括首先预埋点多种行为习惯机制,然后收集基于传感器的行为数据并采用标准化预处理方法生成特征,根据目标用户输入密码的历史行为特征采用OCSVM算法训练模型得到行为异常的概率,并结合多种预设的行为习惯机制的结果,最终通过线性组合的方式得到身份认证的结果。本发明在训练过程中只有目标用户样本且能准确稳定识别新样本是否为目标用户,从而能够提高判别准确率和稳定性。

权利要求 :

1.一种基于异常行为检测的身份识别方法,其特征在于,包括以下步骤:步骤1):收集用户在同一台智能手机上多次输入同一个密码的各个传感器数据;

步骤2):收集用户在输入用户密码前后对预设的行为习惯机制的反应结果;

步骤3):步骤1)得到各个传感器数据经过清洗、转换得到归一化后的特征值;

步骤4):将步骤2)得到的行为习惯机制的反应结果经过清洗、转换得到行为习惯机制的特征值;

步骤5):重复步骤1)、2)、3)得到多个归一化后的特征值,利用Python语言的sklearn包,采用OCSVM算法对训练集样本进行训练得到模型 ;

步骤6):重复步骤1)、2)、4)得到多个行为习惯机制的特征值,构建目标用户每个习惯的行为基线,综合所有行为基线构建模型 ,具体包括:a)得到每个行为习惯的权重: ,其中, 表示第j种行为习惯机制的权重, 为第j个行为习惯机制的第 次特征值,n为每个行为习惯机制的特征值的个数;

b)对上一步求得的所有行为习惯机制的权重归一化,得到归一化后的行为习惯的权重;

c)综合所有行为基线得到模型

,其中

, 为第 个行为习惯机制的第n+1次特征值;

步骤7):综合步骤5)和步骤6)中得到的模型,分配权重,得到融合模型:,其中a和b为分配权重;

步骤8):采用融合模型进行异常行为检测,从而识别使用者的身份是否是机主本人。

2.根据权利要求1所述的基于异常行为检测的身份识别方法,其特征在于,步骤1)中,各个传感器数据包括设备方向传感器、加速度传感器、磁场传感器和陀螺仪传感器轴数据。

3.根据权利要求1所述的基于异常行为检测的身份识别方法,其特征在于,步骤2)中,所述的预设的行为习惯机制的反应结果具体包括:输入的用户名中有数字时,根据用户使用数字键盘还是直接使用字母键盘中的数字,作为该用户的第一行为习惯机制的反应结果;

用户输完密码后较短时间内手机设备加速度传感器的数据,作为该用户的第二行为习惯机制的反应结果,所述的较短时间为5 6s。

~

4.根据权利要求1所述的基于异常行为检测的身份识别方法,其特征在于,步骤3)中,步骤1)得到各个传感器数据经过清洗、转换得到归一化后的特征值,具体包括:A)根据时间戳序列将步骤1)得到各个传感器数据中值为空的数据剔除,得到有效的传感器数据;

B)将步骤A)中的有效的传感器数据需要求出模长, ,其中,表示模长, 表示传感器x轴的值, 表示传感器y轴的值, 表示传感器z轴的值,得到时间戳序列对应下的模长;

C)根据时间戳序列以及步骤B)得到的时间戳序列对应下的模长计算出各个传感器在按下时模长的大小、释放时模长的大小、释放期间模长最大值、释放期间模长最小值、释放期间模长平均值五个维度的值;

D)采用6位数字密码,将时间戳序列处理成一个时间特征序列:,其中,  代表按下第1个数字时的粘滞

时间, 代表第1个数字释放期间的空白时间, 代表按下第2个数字时的粘滞时间,代表第2个数字释放期间的空白时间, 代表按下第3个数字时的粘滞时间, 代表第3个数字释放期间的空白时间, 代表按下第4个数字时的粘滞时间, 代表第4个数字释放期间的空白时间, 代表按下第5个数字时的粘滞时间, 代表第5个数字释放期间的空白时间, 代表按下第6个数字时的粘滞时间;

E)将步骤C)得到各个传感器的五个维度的值以及步骤D)得到的时间特征序列进行归一化处理,得到归一化后的特征值。

5.根据权利要求1所述的基于异常行为检测的身份识别方法,其特征在于,步骤4)中,将步骤2)得到的行为习惯机制的反应结果经过清洗、转换得到行为习惯机制的特征值,具体包括:对第一行为习惯机制的反应结果,根据用户切换到数字键盘还是直接使用字母键盘中的数字转换为-1和1的布尔值;

对第二行为习惯机制的反应结果,对于用户在输完密码后的加速度传感器数据,计算每一组向量和初始传感器向量的欧式距离:其中 , , 代表每一组加速度传感器三个轴的值, , , 代表加速度传感器三个轴的初始值,当欧式距离 大于预设阈值时,则为1,当欧式距离 不大于预设阈值时为-1。

说明书 :

一种基于异常行为检测的身份识别方法

技术领域

[0001] 本发明涉及身份识别技术领域,具体涉及一种基于异常行为检测的身份识别方法。

背景技术

[0002] 随着移动互联网的发展,智能手机已经普遍用于大众的生活。移动互联网带来了便利的同时也伴随着用户信息丢失的威胁。大多数智能手机上的APP应用,在登录、支付等场景时,需要输入密码来识别是否本人操作,但仅仅一道密码输入操作仍有很大风险,当密码被侵入者通过肩窥等方式盗取后,侵入者只需要输入正确的密码即可窃取用户该APP的所有信息,甚至将APP内的金钱转至其他账户。
[0003] 虽然目前部分APP已经使用指纹识别、面部识别等方法进行识别,但这些方法都有各自的局限性。指纹识别准确率较高,但受环境因素影响较大。当用户手指上有污浊物质,指纹识别系统便较难判断出来;另部分用户的指纹模糊,很难用于识别;甚至用户指纹是可以被窃取的。面部识别也会有较大限制,当周围环境较暗,或者脸部佩戴有其他饰品,便较难识别出来,甚至受限于当前技术方案,有人用照片代替人脸识别成功,这给用户隐私带来极大威胁。而行为识别不受周围环境因素影响,其具有唯一性,准确率较高,只需手机自带的传感器无需额外设备,而且他可以作为第二道认证方式秘密进行,和密码输入同时识别,双重保障了用户的隐私。
[0004] 随着机器学习的发展,机器学习算法在识别领域有很多应用,如监督分类算法中的SVM、RandomForest、XGBoost等。但在本发明的身份识别系统中,分类算法并不适用,因为在分类算法中,为保证样本平衡,训练过程一般需要不少异常样本,而对于绝大多数目标用户来说,在训练样本中加入相同密码的非目标用户的样本,是很难做到的。因此我们考虑用异常值检测算法来进行身份识别。
[0005] 对于训练数据没有异常样本,可以分成两种情况:
[0006] 一是根据已知的信息,我们知道在数据中既存在正常行为的数据,也存在异常行为的数据,这种情况属于无监督学习中的异常值检测问题。常见的算法有IsolationForest和LocalOutlierFactor等。
[0007] 二是我们知道只存在正常行为的数据,那么这种情况属于半监督学习的奇异值检测问题。常见的算法有OneClassSVM等。
[0008] 而本发明中的身份识别系统,所用的历史数据都是属于目标用户的,并没有非目标用户的数据,因此我们采用OneClassSVM算法(后文简称OCSVM)。
[0009] OCSVM算法(one-class support vector machine,即单类支持向量机算法)的基本思想是:线性条件下,在空间中找到这样的一个平面,原点到该平面的距离要尽可能地大,且该平面要尽可能地将正常的样本点与异常的样本点分割开来:在非线性条件下,将原始空间中的样本点映射到高维特征空间中。
[0010] Zheng等人在You Are How You Touch一文中提出了一种非侵入式用户验证机制。作者通过分析用户触摸手机的方式来研究身份识别,同时考虑到诸如加速度计、陀螺仪和其他触摸屏传感器之类的数据。最终他们使用了Z-score的方式来进行一分类,并得到较好的效果。
[0011] 现有技术使用了按压力度和按压面积的数据,而这两类数据所对应的传感器,在大多数Android手机中,获取不到,不适合生产环境。即使IOS系统手机中有相关传感器,但据我们研究发现,这两类数据也并不准确。因此在本文中,我们会剔除按压力度和按压面积数据。
[0012] 现有技术中没考虑设备方向传感器数据,据我们研究,设备方向传感器数据用来区分不同用户是一个很好地维度。
[0013] 现有技术使用的是Z-score作为一分类算法,虽然也取得了较好的效果,但该技术较OCSVM来说泛化能力较弱。因此我们引入了OCSVM算法。
[0014] 在研究中发现,我们通过加入预设行为习惯的机制,结合OCSVM模型,综合判断是否为目标用户会提高判别准确率和稳定性。

发明内容

[0015] 为了解决基于智能手机传感器数据的身份识别问题,本发明提供了一种基于异常行为检测的身份识别方法,在训练过程中只有目标用户样本且能准确稳定判别新样本是否为目标用户,从而能够提高判别准确率和稳定性。
[0016] 一种基于异常行为检测的身份识别方法,包括以下步骤:
[0017] 步骤1):收集用户在同一台智能手机上多次输入同一个密码的各个传感器数据;
[0018] 步骤2):收集用户在输入用户密码前后对预设的行为习惯机制的反应结果;
[0019] 步骤3):步骤1)得到各个传感器数据经过清洗、转换得到归一化后的特征值:
[0020] 步骤4):将步骤2)得到的行为习惯机制的反应结果经过清洗、转换得到行为习惯机制的特征值;
[0021] 步骤5):重复步骤1)、2)、3)得到多个归一化后的特征值,利用Python语言的sklearn包,采用OCSVM算法对训练集样本进行训练得到模型 ;
[0022] 步骤6):重复步骤1)、2)、4)得到多个行为习惯机制的特征值,构建目标用户每个习惯的行为基线,综合所有行为基线构建模型 ;
[0023] 步骤7):综合步骤5)和步骤6)中得到的模型,分配权重,得到融合模型:
[0024] ,其中a和b为分配权重;
[0025] 步骤8):采用融合模型进行异常行为检测,从而识别使用者的身份是否是机主本人。
[0026] 本发明主要技术方案包括首先预埋点多种行为习惯机制,然后收集基于传感器的行为数据并采用标准化预处理方法生成特征,根据目标用户输入密码的历史行为特征采用OCSVM算法训练模型得到本次行为异常的概率,并结合多种预设的行为习惯机制的结果,最终通过线性组合的方式得到本次行为是否属于目标用户的结果。
[0027] 步骤1)中,各个传感器包括设备方向传感器、加速度传感器、磁场传感器、陀螺仪传感器;
[0028] 各个传感器数据包括设备方向传感器、加速度传感器、磁场传感器、陀螺仪传感器轴数据;
[0029] 步骤2)中,所述的预设的行为习惯机制的反应结果具体包括:
[0030] 输入的用户名中有数字时,根据用户使用数字键盘还是直接使用字母键盘中的数字,作为该用户的第一行为习惯机制的反应结果;
[0031] 用户输完密码后较短时间内手机设备加速度传感器的数据,作为该用户的第二行为习惯机制的反应结果。所述的较短时间为5 6s,具体为5.5s。~
[0032] 步骤3):步骤1)得到各个传感器数据经过清洗、转换得到归一化后的特征值,具体包括:
[0033] A)根据时间戳序列将步骤1)得到各个传感器数据中值为空的数据剔除,得到有效的传感器数据;
[0034] B)将步骤A)中的有效的传感器数据需要求出模长, ,其中, 表示模长, 表示传感器x轴的值, 表示传感器y轴的值, 表示传感器z轴的值,得到时间戳序列对应下的模长;
[0035] C)根据时间戳序列以及步骤B)得到的时间戳序列对应下的模长计算出各个传感器在按下时模长的大小、释放时模长的大小、释放期间模长最大值、释放期间模长最小值、释放期间模长平均值五个维度的值;
[0036] D)采用6位数字密码,将时间戳序列处理成一个时间特征序列:,其中, 代表按下数字时的粘滞
时间, 代表数字释放期间的空白时间, 代表按下第1个数字时的粘滞时间, 代表第1个数字释放期间的空白时间, 代表按下第2个数字时的粘滞时间, 代表第2个数字释放期间的空白时间, 代表按下第3个数字时的粘滞时间, 代表第3个数字释放期间的空白时间, 代表按下第4个数字时的粘滞时间, 代表第4个数字释放期间的空白时间, 代表按下第5个数字时的粘滞时间, 代表第5个数字释放期间的空白时间, 代表按下第6个数字时的粘滞时间, 代表第6个数字释放期间的空白时间;
[0037] E)将步骤C)得到各个传感器的五个维度的值以及步骤D)得到的时间特征序列进行归一化处理,得到归一化后的特征值;
[0038] 步骤4):将步骤2)得到的行为习惯机制的反应结果经过清洗、转换得到习惯机制的特征值;
[0039] 将步骤2)得到的行为习惯机制的反应结果经过清洗、转换得到行为习惯机制的特征值,具体包括:
[0040] 对第一行为习惯机制的反应结果,根据用户切换到数字键盘还是直接使用字母键盘中的数字转换为-1和1的布尔值;
[0041] 对第二行为习惯机制的反应结果,对于用户在输完密码后的加速度传感器数据,计算每一组向量和初始传感器向量的欧式距离:
[0042]
[0043] 其中 , , 代表每一组加速度传感器三个轴的值, , , 代表加速度传感器初始值,当欧式距离 大于预设阈值时,则为1,否则为-1。
[0044] 步骤6)具体包括:
[0045] a)得到每个行为习惯的权重: ,其中, 表示第j种行为习惯机制的权重, 为第j个行为习惯机制的第i次特征值,n为每个行为习惯机制的特征值的个数;
[0046] b)对上一步求得的所有行为习惯机制的权重归一化,得到归一化后的行为习惯的权重 ;
[0047] c)综合所有行为基线得到模型,其中
, 为第 个行为习惯机制的第n+1次特征值。
[0048] 与现有技术相比,本发明具有如下有益效果:
[0049] 1)隐式识别:用户能接触到的仍是传统的密码输入验证,但隐式地嵌入了行为识别,用户无感知,对用户友好。
[0050] 2)精确度高:本发明利用OCSVM算法加行为习惯机制在身份识别上,准确度达到了96%。
[0051] 3)快速响应:本发明能够在有限的数据集下快速的识别出使用者是否合法;
[0052] 4)低开销:本发明利用智能手机自带的传感器数据,并无其他开销;
[0053] 5)难伪造:即使用户的行为被攻击者观测到并加以模仿,攻击者也很难欺骗;
[0054] 6)环境独立:识别结果不受设备所处环境的限制,如应用程序、用户姿势等;
[0055] 7)可扩展性:行为习惯机制可以根据实际情况预设。

附图说明

[0056] 图1为输入密码时的传感器数据处理流程图;
[0057] 图2为预设的行为习惯数据处理流程图;
[0058] 图3为线下判别模型训练流程图;
[0059] 图4为线上身份认证流程图;

具体实施方式

[0060] 如图3所示,一种基于异常行为检测的身份识别方法,包括以下步骤:
[0061] 步骤1):收集用户在同一台智能手机上多次输入同一个密码的各个传感器数据;
[0062] 各个传感器包括设备方向传感器、加速度传感器、磁场传感器、陀螺仪传感器;
[0063] 各个传感器数据包括设备方向传感器、加速度传感器、磁场传感器、陀螺仪传感器轴数据;
[0064] 步骤2):收集用户在输入用户密码前后对预设的行为习惯机制的反应结果;
[0065] 所述的预设的行为习惯机制的反应结果具体包括:
[0066] 输入的用户名中有数字时,根据用户使用数字键盘还是直接使用字母键盘中的数字,作为该用户的第一行为习惯机制的反应结果;
[0067] 用户输完密码后较短时间内手机设备加速度传感器的数据,作为该用户的第二行为习惯机制的反应结果。所述的较短时间为5 6s,具体为5.5s。~
[0068] 步骤3):步骤1)得到各个传感器数据经过清洗、转换得到归一化后的特征值,具体包括:
[0069] A)根据时间戳序列将步骤1)得到各个传感器数据中值为空的数据剔除,得到有效的传感器数据;
[0070] B)将步骤A)中的有效的传感器数据需要求出模长, ,其中, 表示模长, 表示传感器x轴的值的平方, 表示传感器y轴的值的平方, 表示传感器z轴的值的平方,得到时间戳序列对应下的模长;
[0071] C)根据时间戳序列以及步骤B)得到的时间戳序列对应下的模长计算出各个传感器在按下时模长的大小、释放时模长的大小、释放期间模长最大值、释放期间模长最小值、释放期间模长平均值五个维度的值;
[0072] D)采用6位数字密码,将时间戳序列处理成一个时间特征序列:,其中, 代表按下数字时的粘滞时间,
代表数字释放期间的空白时间。
[0073] E)将步骤C)得到各个传感器的五个维度的值以及步骤D)得到的时间特征序列进行归一化处理,得到归一化后的特征值;
[0074] 步骤4):将步骤2)得到的行为习惯机制的反应结果经过清洗、转换得到特征值;
[0075] 将步骤2)得到的行为习惯机制的反应结果经过清洗、转换得到行为习惯机制的特征值,具体包括:
[0076] 对第一行为习惯机制的反应结果,根据用户切换到数字键盘还是直接使用字母键盘中的数字转换为-1和1的布尔值;
[0077] 对第二行为习惯机制的反应结果,对于用户在输完密码后的加速度传感器数据,计算每一组向量和初始传感器向量的欧式距离:
[0078]
[0079] 其中, 代表每一组加速度传感器三个轴的值,  代表加速度传感器初始值。当欧式距离 大于预设阈值时,则为1,否则为-1。
[0080] 步骤5):如图1所示,重复步骤1)、2)、3)得到多个归一化后的特征值,利用Python语言的sklearn包,采用OCSVM算法对训练集样本进行训练得到模型 ;
[0081] 步骤6):如图2所示,重复步骤1)、2)、4)得到多个行为习惯机制的特征值,构建目标用户每个习惯的行为基线,综合所有行为基线构建模型 ,具体包括:
[0082] a)得到每个行为习惯的权重: ,其中, 表示第j种行为习惯机制的权重, 为第j个行为习惯机制的第 次特征值;
[0083] b)对上一步求得的所有行为习惯机制的权重归一化,得到归一化后的行为习惯的权重 ;
[0084] c)综合所有行为基线得到模型,其中
, 为第 个行为习惯机制的第n+1次特征值。
[0085] 步骤7):综合步骤5)和步骤6)中得到的模型,分配权重,得到融合模型:
[0086] ,其中a和b为分配权重;
[0087] 步骤8):如图4所示,输入新样本数据,并经数据预处理,采用融合模型进行异常行为检测,进行身份识别,识别后结束。
[0088] 具体的,本发明基于异常行为检测的身份识别方法具体包括:
[0089] 一、收集数据
[0090] 步骤一:收集用户在同一台智能手机上多次输入同一个密码的各个传感器数据。
[0091] 1)在需要输入密码的APP中嵌入我们的SDK服务。
[0092] 2)利用该SDK在用户输入密码的同时,按照一定频率收集各传感器数据,以及输入密码期间,按下某个数字和释放该数字时的各个传感器数据。
[0093] 步骤二:收集用户在输入用户密码前后对一些预设的行为习惯机制的反应结果,例如:
[0094] 1)行为习惯机制1:输入的用户名中有数字时,用户切换到数字键盘还是直接使用字母键盘中的数字。
[0095] 2)行为习惯机制2:输完密码后较短时间内手机设备加速度传感器的数据。
[0096] 二、数据预处理
[0097] 对收集到的传感器数据经过清洗、转换等步骤:
[0098] 步骤一:数据清洗,筛选符合条件的数据:
[0099] 1)筛选符合同一个密码的数据;
[0100] 2)筛选算法模型中需要用到的时序数据和传感器数据,例如设备方向传感器、加速度传感器、磁场传感器、陀螺仪传感器等,且这些传感器数据不能为空,否则剔除;
[0101] 步骤二:数据转换,将原始数据经过处理转换成能够进入模型的格式。
[0102] 1)加速度、设备方向、磁场、陀螺仪等传感器采集到的都是各个轴的数据,需要求出模长, 。
[0103] 2)然后计算出这些传感器数据在按下时值的大小、释放时值的大小、释放期间最大值、释放期间最小值、释放期间平均值五个维度的值。
[0104] 3)对于时序数据的处理,以6为数字密码为例,我们将时序数据处理成这样一个时间特征序列: ( 分别代表按下数字时的粘滞时间和数字释放期间的空白时间)。
[0105] 4)为了保证数据处理的方便以及后面模型训练过程中加快收敛,我们对所有特征值归一化处理,同时经过实验证明,归一化处理能提高模型准确率。归一化方法如下:
[0106]
[0107] 其中, 和 分别为归一化前后的数据, 和 分别为样本数据最小值和最大值。
[0108] 步骤三:处理行为习惯相关数据:
[0109] 1)行为习惯机制1:用户切换到数字键盘还是直接使用字母键盘中的数字转换为-1和1的布尔值。
[0110] 2)行为习惯机制2:对于用户在输完密码后的加速度传感器数据,计算每一组向量和初始传感器向量的欧式距离:
[0111]
[0112] 其中 代表每一组加速度传感器三个轴的值, 代表加速度传感器初始值。当 大于预设阈值时,则为1,否则为-1。
[0113] 三、模型建立
[0114] 步骤一:如图1所示,基于目标用户的历史传感器数据,利用Python语言的sklearn包,采用OCSVM算法对训练集样本进行训练得到模型。
[0115] 1)确定评估指标,我们使用误识率(FAR)、误拒率(FRR)、等误率(EER)三个指标来评估模型的好坏。
[0116] 2)确定核函数,经过多次实验研究,最终选用高斯核(RBF)。
[0117] 3)设定训练误差(nu)。
[0118] 4)基于训练集训练得到相应目标用户的OCSVM模型 。
[0119] 步骤二:如图2所示,基于目标用户的历史行为习惯数据,构建目标用户每个习惯的行为基线,综合所有行为基线构建模型:
[0120] 1)得到每个行为习惯的权重: ,其中 为第i次的值,是对所有值求和, 对所有值求个数, 求绝对值。
[0121] 2)对上一步求得的所有权重归一化,得到每个行为习惯的权重 。
[0122] 3)综合所有行为基线得到模型为第 个行为习惯机制的
第n+1次特征值。
[0123] 步骤三:综合步骤一和步骤二中得到的模型,分配权重,得到融合模型:
[0124] 。
[0125] 四、检测识别
[0126] 如图4所示,当一条或多条新的待测样本进入该系统后,会调用预先训练好的融合模型。新样本数据会再次经过数据清洗、数据预处理步骤,转换成能进入融合模型的数据格式,最终得到融合模型结果。
[0127] 当融合模型输出的结果大于等于阈值时则认为该样本属于目标用户,而模型结果小于阈值时,则认为该样本不属于目标用户。