可信设备的识别方法和装置
技术领域
本说明书涉及网络通信技术领域,尤其涉及一种可信设备的识别方法和装置。
背景技术
在涉及网络安全的各种场景中,可信设备的应用十分普遍。可信设备通常对应于用户,当互联网服务提供商的服务端认为一个用户当前使用的设备是可信设备时,会认为该用户的操作较为安全,继而通过在业务流程中减少安全验证步骤来提高用户的便利程度。
可信设备可以由用户向服务端注册,也可以由服务端将用户在进行正常业务行为时经常使用的设备自动登记为可信设备。可信设备通常以设备属性信息中的标识来识别,如手机的iMEI(International Mobile Equipment Identity,国际移动设备识别码)、网卡的MAC(Media Access Control,媒介接入控制)地址等。随着各种改机软件的出现,这些属性信息中的标识能够被轻易修改,使得黑产团伙可以通过冒用用户的可信设备来实施刷单、刷量、刷评论、超量获取营销资源等恶意行为,对互联网服务的安全性造成威胁。
发明内容
有鉴于此,本说明书提供一种可信设备的识别方法,包括:
获取用户当前设备至少一种传感器的感应输出信息;
将所述感应输出信息输入对应种类传感器的传感器识别模型,将所述传感器识别模型的机器学习子模型输出的特征向量作为当前设备上所述传感器的标识;所述传感器识别模型是以对应种类传感器的感应输出信息为输入、以对应种类传感器的传感器型号为输出的机器学习模型,包括用于实现机器学习算法的机器学习子模型和根据机器学习子模型输出的特征向量进行分类的分类子模型;
根据当前设备上所述传感器的标识、和预知的所述用户可信设备上所述传感器的标识,确定当前设备是否为可信设备。
本说明书还提供了一种可信设备的识别装置,包括:
感应输出获取单元,用于获取用户当前设备至少一种传感器的感应输出信息;
当前传感器标识单元,用于将所述感应输出信息输入对应种类传感器的传感器识别模型,将所述传感器识别模型的机器学习子模型输出的特征向量作为当前设备上所述传感器的标识;所述传感器识别模型是以对应种类传感器的感应输出信息为输入、以对应种类传感器的传感器型号为输出的机器学习模型,包括用于实现机器学习算法的机器学习子模型和根据机器学习子模型输出的特征向量进行分类的分类子模型;
可信设备判断单元,用于根据当前设备上所述传感器的标识、和预知的所述用户可信设备上所述传感器的标识,确定当前设备是否为可信设备。
本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述可信设备的识别方法所述的步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述可信设备的识别方法所述的步骤。
由以上技术方案可见,本说明书的实施例中,以用户当前设备上传感器的感应输出信息作为传感器识别模型的输入,以传感器识别模型中机器学习子模型输出的特征向量作为当前设备的传感器标识,并通过传感器标识来确定当前设备是否是可信设备,由于传感器标识对应于当前设备上传感器硬件具有个体差异的特性,本说明书的实施例使得在不更换用户设备传感器硬件的情况下,很难以非可信设备冒充可信设备,从而提高了互联网服务的安全性。
附图说明
图1是本说明书实施例中一种传感器识别模型的逻辑结构图;
图2是本说明书实施例中一种可信设备的识别方法的流程图;
图3是本说明书应用示例中服务端在收到当前设备上传图片后的处理流程图;
图4是运行本说明书实施例的设备的一种硬件结构图;
图5是本说明书实施例中一种可信设备的识别装置的逻辑结构图。
具体实施方式
随着用户端设备(如智能手机、平板电脑、穿戴式设备等)的功能日渐丰富,设备上采用传感器种类也越来越多。由于传感器在制造过程中总会受到各种随机量的影响,每个传感器都会带有独特的个体差异,对一些种类的传感器,这样的个体差异将体现在该传感器的输出量中。例如,不同型号的摄像头拍摄出来的图片在传感器模式噪声(SensorPattern Noise)上是有差异的,即使是相同型号的摄像头,制造过程的缺陷也会导致并不存在一模一样的摄像头,任意两个相同型号摄像头的模式噪声也不会完全相同。
本说明书的实施例提出一种新的可信设备的识别方法,利用传感器识别模型中的机器学习子模型来提取出每个设备上某个种类的传感器所具有的个体差异特性,将机器学习子模型输出的特征向量作为该传感器的标识,并利用设备上的传感器标识来进行可信设备的识别。通过以传感器硬件本身的特性来标记所在的设备,避免了以软件修改设备属性信息造成的可信设备冒用,使得可信设备的识别更加可靠,提高了互联网服务的安全性。
本说明书的实施例可以运行在任何具有计算和存储能力的设备上,如手机、平板电脑、PC(Personal Computer,个人电脑)、笔记本、服务器等设备;还可以由运行在两个或两个以上设备的逻辑节点来实现本说明书实施例中的各项功能。
本说明书的实施例中,采用传感器的感应输出信息来建立机器学习模型,本说明书中称之为传感器识别模型,其逻辑结构如图1所示。传感器识别模型包括两个串联的子模型:机器学习子模型和分类子模型。其中,机器学习子模型的输入为传感器的感应输出信息,输出为对应于感应输出信息中传感器个体特性的特征向量;分类子模型的输入为机器学习子模型输出的特征向量,输出为传感器型号。机器学习子模型用来实现机器学习算法,从感应输出信息中提取出能够体现传感器硬件特点的特征向量;分类子模型用来实现分类算法,根据体现传感器硬件特点的特征向量来识别出传感器的型号。
对传感器识别模型进行训练时,每个训练样本包括该种类传感器的一个感应输出信息和对应于该感应输出信息的传感器型号。换言之,对机器学习子模型和分类子模型进行联合训练。本说明书实施例对传感器识别模型的训练方法不做限定,对于传感器型号分类的类别数目较多、但每个类别样本数量有限的传感器识别模型,可以采用triplet loss(三元组损失)、或siamese进行模型训练,训练出的模型能够达到更好的识别效果。
现有技术中,输出为分类结果的机器学习模型都可以拆分为机器学习子模型和分类子模型,以下以CNN(Convolutional Neural Network,卷积神经网络)模型为例来进行说明。CNN模型通常包括输入层、若干个卷积层和/或卷积层与池化层的组合、和用于实现分类的输出层;在最后一个卷积层或池化层与输出层之间,还可以包括全连接层;可以认为输入层到最后一个卷积层、池化层或全连接层之间的部分是机器学习子模型,而输出层为分类子模型;最后一个卷积层、池化层或全连接层输出的特征向量,即为机器学习子模型的输出和分类子模型的输入。
每个种类的传感器具有各自的传感器识别模型。针对各个种类传感器的信号特点和工作方式,可以选择相适应的机器学习算法、以及匹配于所选机器学习算法的感应输出信息,本说明书的实施例不做限定。例如,对输出为图片的传感器种类,可以选择CNN作为机器学习算法;再如,对输出为声纹的传感器种类,可以选择DNN(Deep Neural Networks,深度神经网络)作为机器学习算法。
另外,感应输出信息可以是对应种类传感器的工作输出本身,可以是对工作输出进行裁剪、缩放等处理后的信息,可以是从输出中提取各项特征数据,也可以是对输出进行编码和/或映射后得到的数据等等,同样不做限定。
本申请的实施例中,互联网服务提供商预先构建并训练若干种类传感器的传感器识别模型。任何一种工作输出具有可识别的个体差异的传感器种类都可以用来构建传感器识别模型,包括但不限于摄像头、麦克风、指纹传感器等等。在模型训练完毕后,将来源于某个用户的某个可信设备上某种传感器的感应输出信息输入到该种类传感器的传感器识别模型中,将机器学习子模型输出的特征向量作为该用户的该可信设备上该种传感器的标识。
在互联网服务提供商的服务端维护有用户可信设备上一种到多种传感器的标识。可以由服务端利用在业务过程(如用户注册可信设备的业务过程、用户在已认证可信设备上的身份验证业务过程等)中得到的用户可信设备上某种传感器的感应输出信息,来生成并保存该用户该可信设备上该种传感器的标识;也可以由服务端将训练完毕的传感器识别模型下发给用户的可信设备,用户的可信设备利用传感器识别模型生成一种到多种传感器的标识后发送给服务端保存。
本说明书的实施例中,可信设备的识别方法的流程如图2所示,该方法可以应用在互联网服务提供商的服务端,也可以应用在用户端设备上。
步骤110,获取用户当前设备至少一种传感器的感应输出信息。
当用户使用互联网服务提供商的服务时,如果所使用服务的业务过程中需要识别用户当前使用的设备(即当前设备)是否是可信设备,可以采集用户当前设备传感器的感应输出信息,利用传感器识别模型来进行可信设备的识别。
如前所述,感应输出信息可以是某种传感器的工作输出,也可以采用某种传感器的工作输出生成的信息。对应的,基于传感器的工作输出得到感应输出信息,可以是将获取的当前设备某种传感器的工作输出直接作为该种传感器的感应输出信息;也可以是在获取当前设备某种传感器的工作输出后,采用工作输出生成的该种传感器的感应输出信息。
例如,假设摄像头的传感器识别模型是CNN模型,其输入为预定标准尺寸的图片,可以在获得当前设备摄像头输出的图片后,将图片放大或裁剪为预定的标准尺寸,以标准尺寸的图片作为当前设备摄像头的感应输出信息。一种具体的裁剪方式可以是,如果摄像头输出图片的尺寸大于标准尺寸,则对输出图片进行中心裁剪(即裁剪后标准尺寸图片的中心与输出图片的中心一致);否则先将较小边扩大到标准尺寸的长度后,再裁剪为标准尺寸。
对本实施例中的方法运行在用户端设备上的场景,可以由用户的当前设备指令一种到多种传感器工作,并根据传感器的工作输出得到对应种类传感器的感应输出信息。
对本实施例中的方法运行在服务端的场景,可以由用户的当前设备将一种到多种传感器的工作输出上传给服务端,服务端在收到至少一种传感器的工作输出后,基于工作输出得到对应种类传感器的感应输出信息;也可以由用户的当前设备基于传感器的工作输出得到对应种类传感器的感应输出信息后,上传给服务端。
步骤120,将感应输出信息输入对应种类传感器的传感器识别模型,将该传感器识别模型的机器学习子模型输出的特征向量作为当前设备上该种传感器的标识。
对本实施例中的方法运行在用户端设备上的场景,服务端要先将训练完毕的、用户当前设备可能用到的若干种类的传感器识别模型下发给用户的当前设备,这样当前设备可以用来得到其中一种到多种当前设备上传感器的标识。
步骤130,根据当前设备上传感器的标识、和预知的该用户可信设备上传感器的标识,确定当前设备是否为可信设备。
采用当前设备上一种到多种传感器的标识,和服务端维护的可信设备上对应种类的传感器标识进行比对,按照比对结果可以判断当前设备是否是可信设备。
具体的判断条件可以根据对实际应用场景中对安全性的要求程度、传感器的种类、传感器识别模型的精确度等因素的综合考虑来设置,本说明书的实施例不做限定。例如,在采用一种确定的传感器种类、并且传感器识别模型精确度很高的场景中,可以将当前设备上该种传感器的标识与可信设备上该种传感器的标识相同,来作为当前设备为可信设备的判断条件。再如,在采用多个种类的传感器、并且传感器模型精确度有限的场景中,可以将每个种类的传感器在当前设备上的标识与在可信设备上的标识均在各自种类的较大既定偏差范围内,来作为当前设备为可信设备的判断条件;也可以将超过半数种类的传感器在当前设备上的标识与在可信设备上的标识在各自种类的较小既定偏差范围内,来作为当前设备为可信设备的判断条件。
对本实施例中的方法运行在用户端设备上的场景,服务端要先将该用户的可信设备上对应种类传感器标识下发给用户的当前设备,当前设备在收到这些可信设备上的若干个传感器标识后,进行当前设备是否是可信设备的判断。
通常用户端设备的一种确定的型号上,所使用的传感器型号是一致的。在一些应用场景中,可以通过识别传感器型号,来判断该用户端设备是否被更改过,作为风险识别的依据之一。在这些应用场景中,在将某种传感器的感应输出信息输入对应种类传感器的传感器识别模型后,可以按照传感器识别模型的输出确定该种传感器的型号;也可以构建并训练独立于传感器识别模型的另一个分类模型—型号识别模型,型号识别模型以对应种类的传感器识别模型的机器学习子模型输出的特征向量(即对应种类传感器的标识)为输入,以对应种类传感器的传感器型号为输出,将步骤120中得到的当前设备上的传感器标识输入训练完毕的型号识别模型,即可得到当前设备上该传感器的传感器型号。
可见,本说明书的实施例中,利用传感器识别模型中的机器学习子模型来提取出每个设备上某个种类的传感器所具有的个体差异特性,以用户当前设备上传感器的感应输出信息作为传感器识别模型的输入,以传感器识别模型中机器学习子模型输出的特征向量作为当前设备的传感器标识,利用设备上的传感器标识、与可信设备上的传感器标识来进行可信设备的识别,使得在不更换用户设备传感器硬件的情况下,很难以非可信设备冒充可信设备,避免了以软件修改设备属性信息造成的可信设备冒用,提高了互联网服务的安全性。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的一个应用示例中,第三方支付平台在服务端构建以标准尺寸的图片为输入的摄像头识别模型(一种传感器识别模型),摄像头识别模型为CNN模型,以CNN模型中用于分类的输出层(如softmax输出预测层)为分类子模型,以输出层之前的部分(包括输入层、若干个卷积层和/或卷积层与池化层的组合,还可能包括全连接层)为机器学习子模型。第三方支付平台收集用户端设备上可能使用的若干个摄像头型号拍摄的若干张图片作为样本数据,采用triplet loss对摄像头识别模型进行训练。
第三方支付平台提供人脸登录和人脸支付的服务。在用户开通人脸登录或人脸支付服务时,要求用户在已认证的可信设备上用摄像头生成符合要求的人脸图片并上传给服务端。服务端将可信设备上传的人脸图片缩放为标准尺寸后输入训练完成的摄像头识别模型,将机器学习子模型输出的特征向量作为该可信设备上摄像头的标识,并保存用户、可信设备的标识(即设备属性信息中的标识)、摄像头标识的对应关系。
当第三方支付平台的某个业务过程需要验证当前设备是否是可信设备时,服务端可以利用在该业务过程中当前设备的摄像头生成的视频或图片(摄像头的工作输出),例如在扫描支付过程中的扫码图片等;在一些特定的业务过程中(如身份认证等)也可以要求用户提供用当前设备的摄像头生成的视频或图片。在收到当前设备上传的图片(视频为多张具有时序关系的图片)后,服务端的处理流程如图3所示。
步骤305,接收用户当前设备上传的图片。
步骤310,将上传的图片缩放为标准尺寸。具体而言,如果上传图片尺寸大于标准尺寸,则直接进行中心裁剪,否则以较小边扩大到标准图片长度后再进行裁剪。
步骤315,将缩放为标准尺寸的图片输入摄像头识别模型,以机器学习子模型输出的特征向量作为该用户当前设备上摄像头的标识。
步骤320,以该用户、当前设备的标识查询保存的对应关系,得到该用户可信设备上摄像头的标识。
步骤325,比对当前设备上摄像头的标识和可信设备上摄像头的标识,如果相同,则当前设备为可信设备;否则当前设备为不可信设备。
与上述流程实现对应,本说明书的实施例还提供了一种可信设备的识别装置。该装置均可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图4所示的CPU、内存以及存储器之外,可信设备的识别装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
图5所示为本说明书实施例提供的一种可信设备的识别装置,包括感应输出获取单元、当前传感器标识单元和可信设备判断单元,其中:感应输出获取单元用于获取用户当前设备至少一种传感器的感应输出信息;当前传感器标识单元用于将所述感应输出信息输入对应种类传感器的传感器识别模型,将所述传感器识别模型的机器学习子模型输出的特征向量作为当前设备上所述传感器的标识;所述传感器识别模型是以对应种类传感器的感应输出信息为输入、以对应种类传感器的传感器型号为输出的机器学习模型,包括用于实现机器学习算法的机器学习子模型和根据机器学习子模型输出的特征向量进行分类的分类子模型;可信设备判断单元用于根据当前设备上所述传感器的标识、和预知的所述用户可信设备上所述传感器的标识,确定当前设备是否为可信设备。
可选的,所述装置还包括:传感器型号识别单元,用于按照所述传感器识别模型的输出确定所述传感器的传感器型号、或者将所述传感器标识输入对应种类传感器的型号识别模型,按照所述型号识别模型的输出确定所述传感器的传感器型号;所述型号识别模型是以对应种类的传感器识别模型的机器学习子模型输出的特征向量为输入、以对应种类传感器的传感器型号为输出的分类模型。
可选的,所述感应输出获取单元具体用于:获取当前用户设备至少一种传感器的工作输出,采用所述工作输出生成所述传感器的感应输出信息。
可选的,所述传感器包括:摄像头;所述对应种类传感器的传感器识别模型包括:用于摄像头识别的卷积神经网络CNN模型;所述感应输出获取单元具体用于:获取当前设备的摄像头输出的图片,将图片放大或裁剪为预定的标准尺寸,以标准尺寸的图片作为所述摄像头的感应输出信息。
可选的,所述传感器识别模型基于三元组损失triplet loss、或siamese进行模型训练。
可选的,所述装置运行在用户当前设备上;所述装置还包括:可信标识接收单元,用于接收服务端下发的所述用户可信设备上所述传感器的标识。
可选的,所述装置运行在服务端;所述感应输出获取单元具体用于:接收用户当前设备上传的至少一种传感器的感应输出信息;或者,接收用户当前设备上传的至少一种传感器的工作输出,基于所述工作输出生成所述传感器的感应输出信息。
可选的,所述传感器包括以下的一种到多种:摄像头、麦克风、指纹传感器。
本说明书的实施例提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中可信设备的识别方法的各个步骤。对可信设备的识别方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中可信设备的识别方法的各个步骤。对可信设备的识别方法的各个步骤的详细描述请参见之前的内容,不再重复。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。