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

一种身份验证方法及装置

文献发布时间:2023-06-19 10:27:30


一种身份验证方法及装置

技术领域

本说明书涉及计算机技术领域,尤其涉及一种身份验证方法及装置。

背景技术

目前,随着计算机技术的发展,终端(如,手机、平板电脑等)的功能越发强大,用户在生活工作的各类场景中都有使用终端的需求,使得终端的安全性就尤为重要。

一般的,终端常用的身份验证方法包括:通过密码或者生物特征等,对使用终端的用户进行身份验证。但是,由于输入密码或者根据生物特征进行验证,需要用户执行额外的操作,导致用户使用意愿较低,因此需要一种用户无感知的身份验证方法。

发明内容

本说明书提供一种身份验证方法及装置,以部分的解决现有技术存在的上述问题。

本说明书采用下述技术方案:

本说明书提供了一种身份验证方法,包括:

监测用户在目标应用中执行的操作;

当所述用户发起指定业务时,根据监测到的所述用户的操作,确定所述用户的行为序列;

将所述行为序列作为输入,输入预先训练完成的检测模型的循环神经网络层,确定所述循环神经网络层的隐层特征,作为所述行为序列对应的行为特征;

将所述行为特征作为输入,输入所述检测模型的与所述目标应用当前登录账户对应的分类器,确定所述行为特征的分类结果;

若根据所述分类结果确定身份验证不通过,则不执行所述指定业务,并向服务器发送提示信息,所述提示信息用于提示该服务器重新对所述用户进行身份验证。

可选地,根据监测到的所述用户的操作,确定所述用户的行为序列,具体包括:

根据监测到的所述用户在目标应用中的操作和所述用户执行操作的时间,确定操作对应的行为向量;

根据操作对应的行为向量确定所述用户的行为序列。

可选地,将所述行为序列作为输入之前,所述方法还包括:

根据监测到的所述用户的操作以及预设的编码规则,对所述用户的行为序列进行编码,确定所述用户的行为矩阵;

将所述行为矩阵作为输入,输入预先训练完成的检测模型的循环神经网络层。

可选地,所述预设的编码规则包括动作字典编码规则和一位有效编码规则;

根据监测到的所述用户的操作以及预设的编码规则,对所述用户的行为序列进行编码,确定所述用户的行为矩阵,具体包括:

根据监测到的所述用户的操作以及预设的所述动作字典编码规则,对所述用户的行为序列进行编码,得到所述用户的行为编码;

根据所述行为编码和预设的所述一位有效编码规则,确定所述用户的行为矩阵。

可选地,所述用户的操作包括所述用户针对各控件的操作和所述用户对界面的各时长的浏览操作;

根据监测到的所述用户的各操作以及预设的所述动作字典编码规则,对所述用户的行为序列进行编码,具体包括:

根据监测到的所述用户针对各控件的操作和所述用户对界面的各时长的浏览操作,以及预设的所述动作字典编码规则,对所述用户的行为序列进行编码。

可选地,所述用户的行为序列携带有账户标识;

将所述行为特征作为输入,输入所述检测模型的与所述目标应用当前登录账户对应的分类器,具体包括:

根据所述用户的行为序列携带的账户标识,确定与所述目标应用当前登录账户对应的分类器;

将所述行为特征输入所述检测模型的与所述目标应用当前登录账户对应的分类器。

可选地,根据所述分类结果确定身份验证不通过,具体包括:

所述分类结果为所述用户不是持有所述目标应用当前登录账户的用户,确定身份验证不通过。

本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述身份验证方法。

本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述身份验证方法。

本说明书采用的上述至少一个技术方案能够达到以下有益效果:

在本说明书提供的身份验证方法中,通过监测用户在目标应用中执行的操作,当用户发起指定业务时,确定该用户的行为序列,将该行为序列输入检测模型的循环卷积神经网络(Recurrent Neural Network,RNN)层,确定该用户行为序列对应的行为特征,将该行为特征输入检测模型的与该目标应用当前登录账户对应的分类器,确定该行为特征的分类结果,根据该分类结果确定身份验证是否通过。

从上述方法中可以看出,不同于现有技术通过密码验证以及生物特征验证的方法,本方法根据用户在目标应用中的操作,确定该用户本次执行指定业务需要验证的操作数据,进一步确定出该用户的行为特征,通过判断该用户的行为特征是否为账户的正常行为特征,来确定用户是否为目标应用当前登录的账户的持有者。不需要用户执行额外的操作即可完成整个验证过程,本说明书中的身份验证方法无感知,提高了用户对身份验证方法的接受度,进一步提高了身份验证的效率。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为本说明书中提供的身份验证方法的流程示意图;

图2为本说明书提供的将编码后的该用户的行为序列进行编码的示意图;

图3为本说明书提供的身份验证装置的示意图;

图4为本说明书提供的对应于图1的电子设备示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

图1为本说明书中提供的身份验证方法的流程示意图,具体包括以下步骤:

S100:监测用户在目标应用中执行的操作。

通常情况下用户在使用终端时,可通过对终端中运行的应用执行操作,使应用执行相应的业务,或者使服务提供方执行相应的业务。在由服务提供方执行的业务场景中,该应用为该服务提供方提供的,该应用可根据用户操作,将请求或者指令发送至该服务器提供方的服务器,并由该服务器执行业务。

在本说明书中,终端可在用户使用安装在该终端中的目标应用的过程中,监测该用户在该目标应用中执行的操作,以便确定需要后续执行的业务。其中,目标应用是执行本说明书中的验证方法的应用,并且该目标应用安装在终端中运行,由服务提供方提供。该目标应用可为外卖类应用、支付类应用等,具体可根据需要设置,本说明书不做限制。

具体的,当用户在终端中打开该目标应用时,目标应用可向终端发送存储请求,终端可根据接收到的该存储请求,对该用户在目标应用中执行的操作进行实时监测并作为用户操作数据进行存储。

需要说明的是,本说明中的终端可以是手机、平板电脑等能够运行应用的电子设备。

S102:当所述用户发起指定业务时,根据监测到的所述用户的操作,确定所述用户的行为序列。

在本说明书提供的一个或多个实施例中,当终端监测到用户发起指定业务时,可根据监测到的该用户的操作,确定该用户的行为序列。其中,该指定业务可以是服务提供方提供的目标应用中的任一业务,通常该指定业务为需要身份验证的业务,例如,支付业务,密码更改业务等,具体的指定业务的内容可根据需要设置,本说明书对此不做限制。

在本说明书中,当监测到用户发起指定业务时,该终端可向服务提供方的服务器发送执行请求,该执行请求中携带有该目标应用当前登录账户的账户标识。服务提供方的服务器接收到该执行请求后,可根据该执行请求与该执行请求携带的账户标识,获取步骤S100中存储的该用户在目标应用中的各操作,作为该用户本次执行指定业务需要进行身份验证的用户操作数据,并对该获取到的用户操作数据进行身份验证,以确定是否执行该用户发起的指定业务。也可以在监测到用户发起指定业务时,由终端根据账户标识与预存的该用户在目标应用中的各操作,对该用户本次执行指定业务需要进行身份验证的用户操作数据进行验证,并将验证结果发送至服务提供方的服务器,以使该服务器确定是否执行该指定业务。为了方便描述,本说明书以终端执行该身份验证方法为例进行说明。

具体的,以该指定业务为支付业务为例,当该终端监测到用户发起支付业务时,可根据预先存储的该用户在目标应用中从打开目标应用到执行该支付业务前的操作,以及用户执行操作的时间,确定该用户执行操作的行为向量。其中,监测的用户操作可包括:针对控件的点击、长按等操作,用户滑动屏幕的轨迹,用户点按屏幕的位置等操作,并且还可将该用户对界面的浏览时长,也作为一种用户操作,当然上述用户操作可以选择一种或多种进行监测以及存储。则该终端可针对监测到的用户的每个操作,根据用户执行该操作的时间、该操作具体是哪种操作以及操作的具体内容,确定用户执行该操作的行为向量。并根据确定出的用户在目标应用中执行的各操作的行为向量,确定该用户的行为序列。

进一步地,因为确定出的用户的行为序列是包含时间戳,即用户执行该操作的时间点的行为描述,而对于电子设备而言,即使是相邻的时间点的时间戳,也是完全不同的两组数据,直接对用户的行为序列进行处理会因为复杂度过高而导致后续进行处理时较难处理。因此,为了方便后续进行处理,可将该行为序列中包含的时间戳转化为复杂度低、较易处理的时间段。则可预设有编码规则,对该用户的行为序列进行编码。

具体的,针对用户在目标应用中的每个操作,可有预设的编码规则中的编码与之对应。以预设有动作字典编码规则为例,则该终端可根据获取到的用户在目标应用中的各操作和预设的动作字典编码规则,将确定出的该用户的行为序列进行编码,以确定出该用户的行为矩阵。并在后续步骤S104中需要对该用户的行为序列进行处理时,将该确定出的用户的行为矩阵作为输入进行处理。其中,预设的动作字典编码规则可如表1所示。

表1

假设用户在目标应用中所有可能的操作的数量为N,则可根据该用户在目标应用中的N个操作,根据预设的动作字典编码规则,将该N个操作与N个序号值分别对应。

需要说明的是,表1中的各行为动作只是举例说明,还可以是别的操作,例如,浏览页面<5s,5s<浏览页面<10s等浏览操作分别对应不同的序号值,具体的该预设的动作字典编码规则,可根据需要进行设置,本说明书对此不做限制。

更进一步的,经过编码后的该用户的行为序列中,各编码的序号间存在有大小关系,而用户在目标应用中的各操作属于平级关系,编码的序号间存在的大小关系会对模型训练时造成困难,因此还可预设有另外的编码规则对编码后的该用户的行为序列再进行编码,例如,预设一位有效编码规则(One-hot Encoding),则可根据一位有效编码规则对编码后的该用户的行为序列进行处理。如图2所示。

图2为本说明书提供的将编码后的该用户的行为序列进行编码的示意图。经表1的行为字典编码后,用户的行为序列被处理成了一串不定长的编码串,则可根据表1中的N个操作,将该不定长的编码串再进行编码,图2中,实线包围的部分为编码后的用户的行为序列,虚线部分为对应于表1的N个特征,则灰色区域为对该编码后的行为序列进行一位有效编码后得到的用户的行为矩阵。在后续需要对用户的行为序列进行处理时,可将该确定出的行为矩阵作为输入进行处理。

S104:将所述行为序列作为输入,输入预先训练完成的检测模型的循环神经网络层,确定所述循环神经网络层的隐层特征,作为所述行为序列对应的行为特征。

在本说明书提供的一个或多个实施例中,在确定了该用户的行为序列后,该终端还可将确定出的该用户的行为序列作为输入,输入到预先训练完成的检测模型的RNN层,以确定该循环卷积神经网络层的隐层特征,作为该行为序列对应的行为特征。

具体的,在本说明书中,可将确定出的该用户的行为序列,依次输入到该检测模型的RNN层中,即,将根据从用户在终端中打开目标应用到发起指定业务之间的所有操作以及执行各操作的时间确定出的行为向量,依次输入到该检测模型的RNN层中,以得到该RNN层的隐层特征。该RNN层的循环次数根据确定出的用户的行为序列确定,例如,确定出的用户的行为序列包括有k个行为向量,则该RNN层需循环k次。对于如何训练该检测模型的RNN层,本说明书后续再进行详细描述。

S106:将所述行为特征作为输入,输入所述检测模型的与所述目标应用当前登录账户对应的分类器,确定所述行为特征的分类结果。

在本说明书提供的一个或多个实施例中,在确定了用户的行为序列对应的行为特征后,还可将该确定出的行为特征作为输入,输入到预先训练完成的检测模型的与该目标应用当前登录账户对应的分类器,确定该行为特征的分类结果。

具体的,在监测到用户发起指定业务时,该终端可根据该目标应用当前登录账户的账户标识,向服务提供方的服务器发送分类请求,以确定该目标应用当前登录账户对应的分类器。服务提供方的服务器接收到该分类请求后,可根据该分类请求携带的账户标识,从该检测模型的各分类器中确定与该目标应用当前登录账户对应的分类器,并将该确定出的分类器返回至终端。该终端接收到服务提供方的服务器发送的分类器后,可将该用户的行为序列对应的行为特征作为输入,输入该分类器中,以确定该行为特征的分类结果。其中,分类器可为一类支持向量机(One-class Support Vetor Machine,OCSVM),也可为向量机(Support Vetor Machine,SVM),具体的分类器的内容按照需要设置即可,本说明书对此不作限制。

需要说明的是,该分类器与目标应用当前登录账户相对应,即,针对使用目标应用的每个账户,有根据若干次该账户持有者在目标应用中执行的各操作预先训练好的与该账户对应的分类器。该分类器的分类结果包括:用户不是持有该目标应用当前登录账户的用户,即,当前使用该账户的用户不是该账户持有者本人;以及用户为持有该目标应用当前登录账户的用户,即,当前使用该账户的用户是该账户持有者本人两种。该分类器可通过输入的用户的行为特征是否为账户的正常行为特征,确定用户是否为目标应用当前登录的账户的持有者。

进一步地,同一终端上的目标应用中登录的账户通常是固定的,因此,该终端在获取了该账户对应的分类器后,还可将该分类器进行存储。在后续使用中,当监测到用户发起指定业务时,该终端可将该目标应用当前登录的账户与该分类器的账户标识相匹配,若匹配成功则可直接将该用户的行为特征输入该分类器中,若匹配失败,则可根据该目标应用当前登录账户的账户标识重新确定分类器。

对于如何训练该检测模型的分类器,本说明书后续再进行详细描述。

S108:若根据所述分类结果确定身份验证不通过,则不执行所述指定业务,并向服务器发送提示信息,所述提示信息用于提示该服务器重新对所述用户进行身份验证。

在本说明书提供的一个或多个实施例中,在确定了该行为特征的分类结果后,还可根据该分类结果确定身份验证是否通过,若根据该分类结果确定身份验证不通过,则终端可确定不执行该用户发起的指定业务,并向服务器发送提示信息,该提示信息用于提示该服务器重新对该用户进行身份验证。

具体的,在本说明书中,步骤S106确定出的该行为特征的分类结果包括:用户不是持有该目标应用当前登录账户的用户,即,当前使用该账户的用户不是该账户持有者本人;以及用户为持有该目标应用当前登录账户的用户,即,当前使用该账户的用户是该账户持有者本人两种。当该分类结果为该用户是持有目标应用当前登录账户的用户时,可确定身份验证通过,则该终端可确定执行该用户发起的指定业务。当该分类结果为该用户不是持有目标应用当前登录账户的用户时,确定身份验证不通过,则该终端可向服务提供方的服务器发送提示信息,以提示该服务器对该用户重新进行验证。

需要说明的是,重新对用户进行验证时,可使用密码验证方法,生物特征验证方法,以及本说明书中的身份验证方法等,具体的重新对该用户进行验证使用的方法,可根据需要进行设置,本说明书对此不作限制。

基于图1的身份验证方法,通过监测用户在目标应用中执行的操作,当用户发起指定业务时,确定该用户的行为序列,将该行为序列输入检测模型的RNN层,确定该用户行为序列对应的行为特征,将该行为特征输入检测模型的与该目标应用当前登录账户对应的分类器,确定该行为特征的分类结果,根据该分类结果确定身份验证是否通过,不同于现有技术通过密码验证以及生物特征验证的方法,本方法根据用户在目标应用中的各操作,确定该用户本次执行指定业务需要验证的操作数据,进一步确定出该用户的行为特征,通过判断该用户的行为特征是否为账户的正常行为特征,来确定用户是否为目标应用当前登录的账户的持有者。不需要用户执行额外的操作即可完成整个验证过程,本说明书中的身份验证方法无感知提高了用户对身份验证的接受度,进一步提高了身份验证的效率。

另外,现有技术还提供一种无感知的身份验证方法,通过采集当前用户使用手机时的行为特征,例如,点击屏幕的压力、点击屏幕的时间、滑动屏幕的区域、滑动屏幕的速度等,与历史上采集的使用该终端的用户的行为特征进行比对。若相似度到达预设阈值,即可认为当前用户为本人,若相似度小于预设阈值,则认为当前用户不是本人,需要采用其他方式继续对该用户进行身份验证等。

但是,现有技术在采集用户使用手机时的行为特征时,往往要依赖于该手机使用的传感器,而不同品牌、不同型号的手机使用的传感器并不完全一致,而不同的传感器对应同样的用户行为输出的信号也是不完全相同的,这就导致采集到的用户使用手机时的行为特征不够规范,导致基于行为特征进行身份验证的方法准确度较低。且即使采用的传感器相同,但若终端的尺寸重量不同,仍有可能造成采集的行为特征不一致,导致身份验证的准确度较低。

本说明书使用的方法,不同于现有技术中根据采集到的用户使用手机时的行为特征,例如,点击屏幕的压力、点击屏幕的时间、滑动屏幕的区域、滑动屏幕的速度等容易受到传感器与终端类型影响的数据,而是存储用户在页面中针对于各控件的操作与对页面的不同时长的浏览操作,确定该用户的行为序列,避免了因为传感器不同导致采集到的用户的行为特征无法进行处理的问题,提高了身份验证的效率。

另外,用户在使用终端时,可通过对某一应用进行授权,允许打开目标应用来执行指定业务,例如,用户可通过对外卖类应用进行授权,允许该外卖类应用打开支付类应用来执行支付业务。若该支付类应用为目标应用,该支付业务为指定业务,则用户在目标应用中执行的用于进行身份验证的用户操作的数据量显然不足,因此在步骤S102还可设置有第一阈值,当该用户本次执行指定业务需要进行身份验证的用户操作数据小于第一阈值时,该终端可确定采用密码验证,生物特征验证等方法针对本次业务进行辅助验证。

进一步地,在目标应用的使用过程中,存在当用户发起指定业务时,预存的该用户本次执行指定业务需要进行身份验证的用户操作数据太过庞大而导致不能及时对该用户操作数据进行处理,降低身份验证效率的情况。因此,在步骤S102中还可预设有第二阈值,当用户发起指定业务时,可先判断该用户的用户操作数据是否大于第二阈值,若该用户的用户操作数据不大于第二阈值,则继续执行身份验证方法的后续步骤。若该用户的用户操作数据大于第二阈值,则可根据该第二阈值将用户操作数据进行剪切处理。例如,选择用户发起指定业务的前100个操作的用户操作数据,作为该用户本次执行指定业务需要进行身份验证的用户操作数据。将该剪切后的用户操作数据作为输入,输入该预先训练完成的检测模型中执行身份验证方法的后续步骤。

另外,步骤S100中的存储请求中还可携带有存储规则,则终端可根据该存储请求中携带的存储规则,将监测的用户的各操作,作为用户操作数据存储在服务器或用户终端内。其中,存储规则可以是将监测到的用户的各操作实时进行存储,也可以是当用户的操作到达一定数量,或每隔一段时间将其进行存储,具体的存储规则可以根据需要设置,本说明书对此不做限制。

更进一步地,用户在目标应用中的各操作还可能会受用户状态(如,坐,躺,走)的影响,因此,在步骤S102中,预设有动作字典编码规则对用户的行为序列进行编码时,还可在动作字典编码规则中加入对于该用户的状态信息的编码规则,如表2所示。则终端可根据当前定位数据,水平仪等确定该用户当前状态,并在对用户的行为序列进行编码时,确定出带有当前时刻用户状态的行为矩阵。

表2

需要说明的是,和表1类似,表2中的各行为动作与用户状态只是举例说明,还可以是别的操作,具体的该预设的动作字典编码规则,可根据需要进行设置,本说明书对此不做限制。

另外,在本说明书一个或多个实施例中,可以采用下述方式,训练检测模型的RNN层。

具体的,由于RNN层得到的隐层特征是表征用户特征的,以便于后续该检测模型的分类器,确定用户身份,而根据用户行为确定出哪些特征,有利于后续分类器准确输出分类结果,对于不同用户可能是不一样的。因此,可针对每个用户训练该用户对应的检测模型。

于是,训练模型的服务器,可针对每个用户,确定该用户对应的训练样本以及样本标签。

具体的,训练样本包含的用户数据,可为采用步骤S102中的方法确定得到的用户的行为序列,或者是采用步骤S102中的方法进行编码得到的用户的行为矩阵。针对每个用户,该用户的行为序列可通过历史上的若干次使用该目标应用时,监测到的该用户的操作,确定对应每次使用该目标应用时该用户的行为序列。

其次,针对每个训练样本,以该训练样本对应的用户的一系列操作的下一个操作,作为样本标签。则使用该训练样本及其对应的标签,可以训练该RNN层进行用户操作的预测。

最后,在训练该RNN层时,该训练模型的服务器将确定出的训练样本输入待训练的检测模型的RNN层,得到预测的操作结果,根据该操作结果与该样本标签之间的差值确定损失,以最小化损失为优化目标,对该RNN层进行训练。其中,具体采用何种损失函数确定不同用户操作之间损失,可以根据需要设置。

另外,在本说明书中,训练模型的服务器与可执行身份验证方法的服务提供方的服务器可以为同一个服务器,也可以不同,具体的在哪个服务器训练模型可按照需要设置,本说明书对此不做限制。

在训练检测模型的分类器时,该分类器针对不同用户的参数是不同的,也就是说每个用户都有对应的分类器,该分类器用于区分是否是该用户,则在确定该分类器的参数时,该服务器可获取检测模型的RNN层输出的包含该用户与其他用户的若干行为特征,作为输入样本,并将该行为特征所属用户是否为账户持有者作为样本标签,将确定出的各样本输入该检测模型的分类器,以得到将该用户的行为特征与其他用户的行为特征区分开的超平面为优化目标,调整该分类器的参数,直至得到一个超平面可以将样本中该用户与其他用户的行为特征区分开为止,确定得到该用户对应的分类器。

进一步地,若该服务提供方,为每个用户分别训练一个RNN层,可能导致服务器的训练量太过巨大。而若训练一个通用的RNN层,则由于每个用户的行为特征都是不一样的,导致RNN层的训练难度较大,且训练出的RNN层的准确性可能较低。因此,在本说明书中,该训练模型的服务器还可以对用户进行预先分组,之后针对每组用户,根据该组中各用户使用目标应用时的操作,确定用户行为序列,以确定各训练样本以及各样本标签。并根据训练样本训练该组对应的RNN层。则在训练得到各组对应的RNN层之后,该服务器还可根据用户的分组,在用户的账户信息中存储该用户对应的分组标识,以便后续在步骤S104中,根据账户标识,确定对应的分组标识,将确定出的行为序列输入该分组标识对应的RNN层中,得到隐层特征作为行为特征。

其中,该服务器可选择根据各用户的用户画像,对各用户进行聚类,根据聚类结果确定各用户的分组。或者,根据用户画像中的年龄、地址等信息,对用户进行分组,例如,按照10-20岁、20-30岁、30-40岁……等等,对用户进行分组。当然,也可根据不止一个维度的用户画像对用户进行分组,例如,10-20岁男性、10-20岁女性、20-30岁男性……等等。

另外,本说明书在确定用于训练的用户数据时,可针对各用户,获取该用户使用该目标应用时执行的一系列操作,作为训练样本。针对每个训练样本,该训练样本对应的是一次用户使用目标应用时执行的一系列操作,并且该服务器可根据不同用户的用户数据,确定各训练样本。

并且,为了避免训练样本的单调性,导致出现训练得到的RNN层不够准确的情况,如,大多数用户使用该目标应用时执行的一系列操作的最后操作为点击退出控件的操作,导致在模型使用时,确定出的隐层特征中偏向于点击退出控件的操作的比重较大,进而导致RNN层不够准确。因此,为了保证训练得到的RNN层的准确性,各训练样本还可具有多样性,如,从一次用户使用目标应用时执行的一系列操作中随机选择若干连续操作,当然,该随机选择的若干连续操作对应的用户操作数据需要不小于预设的第一阈值、不大于预设的第二阈值、且该若干连续操作后需仍有操作,则可将该若干连续操作后的操作作为样本标签。

需要说明的是,该检测模型的RNN层和与各账户对应的分类器可以单独训练,也可以一起联合训练,当该循环神经网络层与分类器进行联合训练时,训练样本为终端存储的若干次该用户与其他用户在目标应用中的各操作,以使用目标应用的用户是否为该用户作为样本标签,调整参数,直至得到将两种标签的训练样本分开,并且两种标签的训练样本与超平面的距离均大于预设的第三阈值的超平面,确定得到该用户对应的检测模型。其中,超平面与用户的行为特征之间的距离越大,表示通过该检测模型可以将该用户与其他用户的行为特征区分得越明显,换言之,该检测模型的准确性越高。

另外,对RNN层和分类器一起联合训练得到的检测模型是针对于每个用户的。且预设的第三阈值具体的数值可以根据需要进行设置,本说明书对此不做限制。

需要说明的是,在本说明书中所提到的用户,为在该服务提供方中注册账户的用户。

以上为本说明书的一个或多个实施例提供的身份验证方法,基于同样的思路,本说明书还提供了相应的身份验证装置,如图3所示。

图3为本说明书提供的身份验证装置示意图,具体包括:

监测模块200,用于监测用户在目标应用中执行的操作。

编码模块202,用于当所述用户发起指定业务时,根据监测到的所述用户的操作,确定所述用户的行为序列。

第一确定模块204,用于将所述行为序列作为输入,输入预先训练完成的检测模型的循环神经网络层,确定所述循环神经网络层的隐层特征,作为所述行为序列对应的行为特征。

第二确定模块206,用于将所述行为特征作为输入,输入所述检测模型的与所述目标应用当前登录账户对应的分类器,确定所述行为特征的分类结果。

提示模块208,用于若根据所述分类结果确定身份验证不通过,则不执行所述指定业务,并向服务器发送提示信息,所述提示信息用于提示该服务器重新对所述用户进行身份验证。

可选地,所述编码模块202,用于根据监测到的所述用户在目标应用中的操作和所述用户执行操作的时间,确定操作对应的行为向量,根据操作对应的行为向量确定所述用户的行为序列。

可选地,所述编码模块202,还用于根据监测到的所述用户的操作以及预设的编码规则,对所述用户的行为序列进行编码,确定所述用户的行为矩阵,将所述行为矩阵作为输入,输入预先训练完成的检测模型的循环神经网络层。

可选地,所述预设的编码规则包括动作字典编码规则和一位有效编码规则,所述编码模块202,具体用于根据监测到的所述用户的操作以及预设的所述动作字典编码规则,对所述用户的行为序列进行编码,得到所述用户的行为编码,根据所述行为编码和预设的所述一位有效编码规则,确定所述用户的行为矩阵。

可选地,所述用户的操作包括所述用户针对各控件的操作和所述用户对界面的各时长的浏览操作,所述编码模块202,具体用于根据监测到的所述用户针对各控件的操作和所述用户对界面的各时长的浏览操作,以及预设的所述动作字典编码规则,对所述用户的行为序列进行编码。

可选地,所述用户的行为序列携带有账户标识,第二确定模块206,具体用于根据所述用户的行为序列携带的账户标识,确定与所述目标应用当前登录账户对应的分类器,将所述行为特征输入所述检测模型的与所述目标应用当前登录账户对应的分类器。

可选地,提示模块208,具体用于所述分类结果为所述用户不是持有所述目标应用当前登录账户的用户,确定身份验证不通过。

本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的身份验证方法。

本说明书还提供了图4所示的电子设备的示意结构图。如图4所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的身份验证方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

相关技术
  • 手持式身份验证装置、身份验证方法与身份验证系统
  • 一种指纹识别方法、身份验证方法及装置和身份核验机
技术分类

06120112553624