掌桥专利:专业的专利平台
掌桥专利
首页

一种基于击键声音的非侵入式用户识别方法

文献发布时间:2024-04-18 19:58:21


一种基于击键声音的非侵入式用户识别方法

技术领域

本发明属于用户信息安全领域,特别涉及一种非侵入式的用户识别技术。

背景技术

身份认证是网络信息安全中的第一道防线,对信息系统的安全有着十分重要的意义。传统的身份认证方法要求用户输入用户名和密码,一旦用户名和密码被黑客窃取,黑客就可以轻松登录账户,对个人信息安全造成巨大的威胁。

在击键动力学研究中发现,不同的击键者有不同的击键习惯,因此可以通过识别用户的击键习惯来判断用户的身份。这一发现为用户在键入密码的同时进行身份认证提供了可能。Akila等人[Akila M,Suresh Kumar V,Anusheela N,et al.Anovel featuresubset selection algorithm using artificial bee colony in keystroke dynamics[C]//Proceedings of the International Conference on Soft Computing forProblem Solving(SocProS2011)December 20-22,2011:Volume 2.Springer India,2012:813-820.]将击键分析程序嵌入在用户操作的电脑内部,通过分析用户按键的停留时间和飞行时间来获取用户的击键习惯特征从而识别用户身份。Pukar等人[Maharjan P,Shrestha K,Bhatta T,et al.Keystroke dynamics based hybrid nanogenerators forbiometric authentication and identification using artificial intelligence[J].Advanced Science,2021,8(15):2100711.]将压力传感器嵌入到键盘中,通过分析键盘按键的受力情况来获取用户的击键习惯特征从而识别用户身份。上述用户识别方法都是侵入式的识别,都需要在用户使用的设备中加入某些软件或硬件来实现对用户的识别。一方面,这需要用户在其使用的设备上给加入的软件和硬件提供一定的权限,降低用户设备的安全性;另一方面,这会增加用户使用的设备的内存压力,对设备的运行流畅度造成影响,从而影响用户的使用体验。

发明内容

为解决上述技术问题,本发明提出一种基于击键声音的非侵入式用户识别方法,通过外置麦克风收集用户的击键声音,对击键声音进行处理,分析用户的击键习惯,从而实现对用户身份的非侵入式识别。

本发明采用的技术方案为:一种基于击键声音的非侵入式用户识别方法,包括:

S1、采用外置麦克风收集若干用户的击键声音作为训练样本;

S2、对训练样本进行预处理,将其转化为梅尔频谱;

S3、将步骤S2得到的梅尔频谱以Ancher、Positive、Negative的形式组成三元组;

S4、将步骤S3得到的三元组作为Triplet-Net的输入,对Triplet-Net进行训练,Triplet-Net输出低维特征向量;

S5、使用训练好的Triplet-Net对步骤S2得到的梅尔频谱进行特征提取,得到对应的低维特征向量;

S6、将步骤S5得到的低维特征向量作为欧氏距离分类器的输入,对欧氏距离分类器进行训练,欧氏距离分类器输出为各类样本的中心特征向量和判断半径;

S7、采用外置麦克风收集目标用户的击键声音作为测试样本;

S8、对测试样本进行预处理,将其转化为梅尔频谱;

S9、使用训练好的Triplet-Net对测试样本的梅尔频谱进行降维处理,提取低维特征向量;

S10、使用训练好的欧式距离分类器对步骤S9提取的低维特征向量进行处理,预测出测试样本标签类别,从而识别用户身份。

本发明的有益效果:本发明充分利用用户击键产生的声音来进行用户识别。在用户识别的整个过程中,一方面,无须对用户的设备进行任何改动,仅通过外置麦克风收集用户的击键声音并进行分析,从一定程度上避免了设备信息泄露,保障了安全性;另一方面,采用Triplet-Net提取音频的特征信息,并使用欧式距离分类器进行分类,从一定程度上提高了识别准确度。

附图说明

图1为本发明方案流程图;

图2为Triplet-Net结构示意图;

图3为CNN结构示意图。

具体实施方式

为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。

本发明中,考虑基于外置麦克风收集用户的击键声音,结合Triplet-Net和欧氏距离分类器,预测出击键用户身份。本发明首先通过大量的数据来训练Triplet-Net,使其具备出色的降维能力,能够将不同类别的高维数据降维到二维空间中不同的簇上;然后训练欧式距离分类器,使其学习到各个类别的中心向量和判定距离,能够根据测试点的位置来判定其所属的类别;最后即可使用训练完毕的网络模型和分类器来预测新数据的类别,从而完成用户识别。

本发明的方法包括以下步骤:

1、使用外置麦克风收集大量用户的击键声音,并进行预处理构成数据集。

首先,使用外置麦克风收集不同用户在不同噪声环境下的多段击键声音,依据用户名称为每一段击键声音打标签。在录制声音的过程中,有以下规定:①每位用户的每段击键声音的长度是固定且统一的(比如10秒),这能够保障后续网络模型训练的正常进行;②在收集每一段击键声音的时候,用户敲击的内容也是固定且统一的,这能够保障数据集的质量,从而获得更好的预测性能。然后,对数据集进行预处理,将所有击键声音文件转换为梅尔频谱,为后续的网络模型训练做准备。

2、构建Triplet-Net网络模型,按照Ancher、Positive、Negative的形式将梅尔频谱组成三元组用于训练Triplet-Net。

遍历数据集中的所有数据,将每一个数据作为Ancher样本,在与Ancher样本处于同一类别的不同样本不中选择一个作为Positive样本,在与Ancher样本处于不同类别的样本中选择一个作为Negative样本,以此实现三元组的配置。

在pytorch框架中构建Triplet-Net网络模型,Triplet-Net是一个三输入三输出网络,内部含有三个完全一致的CNN,分别用于处理Ancher样本、Positive样本、和Negative样本。每一个CNN的输入数据尺寸与梅尔频谱的尺寸相同,输出数据是二维向量。

按照三元组的形式构建Dataset对象实例,优化器选择Adam,scheduler选择lr_scheduler.ConstantLR,初始学习率为0.0001,学习率衰减因子为0.5,total_iter为10,批处理大小为128,训练周期数为100,损失函数采用triplet-loss:

L=max(d(a,p)-d(a,n)+margin,0)

式中,L为损失值,d(a,p)是Ancher样本与Positive样本之间的距离,d(a,n)是Ancher样本与Negative样本之间的距离,a表示Ancher样本,p表示Positive样本,n表示Negative样本,margin是一个常数,合适的margin能够迫使d(a,n)>d(a,p)从而获得更好的特征提取效果,本发明中margin设置为0.6。

按照上述配置用三元组训练Triplet-Net,训练完毕后的Triplet-Net就具备了将高维梅尔频谱数据降维到二维特征向量空间的能力,并且标签不同的数据应当会降维到不同的簇中。

3、用训练好的Triplet-Net计算数据集中所有数据的低维特征向量,用以训练分类器。

遍历数据集中的所有数据,将每一个数据输入到Triplet-Net中的任意一个CNN网络中,输出低维特征向量。将所有数据的特征向量输入到分类器中进行训练。

在分类器中,首先按照标签类型对所有特征向量进行分类,对本类数据中所有特征向量的x坐标和y坐标分别进行排序,选择各自的中位数进行组合,形成本类数据的中心特征向量。然后选择各个类别的判定半径,使得本类数据中,与中心特征向量之间的距离小于判定半径的特征向量数目小于本类数据总特征向量数目的99%。将各类数据的中心特征向量和判定半径确定以后,分类器就训练完毕。

4、使用训练完毕的Triplet-Net和分类器对测试数据的标签种类进行预测,从而识别击键用户的身份。

用外置麦克风收集测试用户的击键声音,将击键声音转换为梅尔频谱后输入到Triplet-Net的一个CNN中,CNN的输出是数据的低维特征向量。然后将特征向量输入到训练完毕的分类器中,分类器的分类方法如下:①计算测试样本的特征向量与各类训练样本的中心特征向量之间的距离,如果该距离小于该类的判定距离,则将该类别标记为“可能所属类别”;②如果可能所属类别只有一个,那么分类器将该可能所属类别作为输出;③如果可能所属类别有多个,那么对所有可能所属类别的中心特征向量与测试样本的特征向量之间的距离进行排序,分类器将最小距离对应的可能所属类别作为输出;④如果没有类别被标记为可能所属类别,那么分类器将“未知类别”作为输出。分类器的输出就是系统对预测用户击键声音的预测结果。

实施例1

关于上述基于击键声音的非侵入式用户识别方法的使用进行举例。采用索爱公司生产的MK5型号的桌面麦克风进行数据集的录制,编写一个python脚本来实现对麦克风录音时间的精准控制,录音时间固定为10秒,采样率为8000Hz,当录音开始时,用户按照自己的击键习惯在键盘上敲击直到录音结束,然后用击键用户的姓名为录制的音频打标签。每一位用户都重复上述过程,以此构建训练用的数据集。

采用pytorch框架实现对Triplet-Net的搭建。首先构建CNN,CNN由两个卷积层、两个池化层、三个全连接层和一个归一化层组成,其中,每个卷积层和前两个全连接层后面都增加PReLU激活函数,最后一个全连接层的输出神经元数目设置为2。然后,将CNN进行并联和封装形成Triplet-Net。

遍历数据集中的所有数据,将其转化为梅尔频谱,然后按照步骤2中的方法构建三元组,配置相关参数,进行训练。运算过程在GeForce RTX 2080Ti上实现。

遍历所有梅尔频谱,将其输入到训练好的Triplet-Net中的CNN中进行特征提取,之后将所有特征向量输入到分类器中,按照步骤3中的方法训练分类器。

用外置麦克风收集测试用户的击键声音,将击键声音转换为梅尔频谱后输入到Triplet-Net的CNN中,然后将CNN输出的特征向量输入到训练完毕的分类器中,按照步骤4所示的方法对输出标签进行预测,从而实现对击键用户的身份的识别,如表1所示,本发明的方法相比于现有技术在保持良好精确度的同时保持了较低的FAR和FRR。

表1本发明方法与侵入式识别方法的性能对比

其中,FRR表示误拒绝率,其对应的全拼为False Rejection Rate,FAR表示误接受率,其全拼为False Acceptance Rate。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

相关技术
  • 一种基于稳态电流的非侵入式电力负载识别方法
  • 一种基于Fréchet distance的非侵入式电器识别方法
  • 采用非侵入式负荷识别装置的基于傅里叶变换的非侵入式负荷识别方法
  • 基于视觉特征的非侵入式用户界面输入项识别方法
技术分类

06120116481458