发明内容
基于此,有必要针对上述技术问题,提供一种身份认证方法、装置、计算机设备和存储介质。
一种身份认证方法,所述方法包括:
响应客户端发送的登录请求,获取所述客户端对应的静态口令;
根据预设的动态口令生成策略生成动态口令;
建立所述动态口令与所述静态口令间的对应关系,并生成包含所述对应关系的动态口令表,所述动态口令表用于所述客户端基于所述动态口令表输入与所述静态口令对应的身份验证口令;
接收所述身份验证口令,根据所述身份验证口令进行身份认证。
在其中一个实施例中,所述响应客户端发送的登录请求之前,所述方法还包括:
接收客户端发送的注册请求,所述注册请求中携带静态口令和账户标识;
将所述静态口令和所述账户标识对应存储。
在其中一个实施例中,所述根据预设的动态口令生成策略生成动态口令,包括:
根据一次性口令原则和预设的动态口令格式规则,生成一次性的动态口令;或,
根据预设的所述动态口令格式规则和随机数生成器,生成一次性的动态口令。或,
根据预设的密码标准生成规则,生成一次性的动态口令。
在其中一个实施例中,所述动态口令包含动态组成单元集合中的至少一个动态组成单元;所述静态口令包含静态组成单元集合中预设数目的目标静态组成单元;
所述建立所述动态口令与所述静态口令间的对应关系,并生成包含所述对应关系的动态口令表,包括:
建立所述目标静态组成单元与所述动态组成单元间的对应关系,针对建立的每个所述对应关系,将一个所述对应关系所包含的目标静态组成单元和动态组成单元构成一个目标显示单元;
建立非目标静态组成单元与所述动态组成单元集合中的所述动态组成单元间的第二对应关系,针对建立的每个所述第二对应关系,将一个所述第二对应关系所包含的非目标静态组成单元和动态组成单元构成一个非目标显示单元;
根据所述目标显示单元与所述非目标显示单元以及预设的位置分布规则,生成动态口令表。
在其中一个实施例中,所述根据所述目标显示单元与所述非目标显示单元以及预设的位置分布规则,生成动态口令表,包括:
根据显示界面大小确定显示单元的尺寸属性值,并根据预设的位置分布规则,确定所述目标显示单元与所述非目标显示单元的分布位置值;
读取所述目标显示单元与所述非目标显示单元,根据所述尺寸属性值和所述分布位置值对所述目标显示单元与所述非目标显示单元进行输出显示,得到动态口令表。
在其中一个实施例中,所述动态口令表包括目标显示单元全展开模式,所述读取所述目标显示单元与所述非目标显示单元,根据所述尺寸属性值和所述分布位置值对所述目标显示单元与所述非目标显示单元进行输出显示,得到动态口令表,包括:
读取全部的所述目标显示单元以及第三数目的所述非目标显示单元;所述第三数目小于或者等于所述动态口令表中全部显示单元数目减去所述目标显示单元数目;
根据所述尺寸属性值和所述分布位置值对全部的所述目标显示单元和第三数目的所述非目标显示单元进行输出显示,得到动态口令表。
在其中一个实施例中,所述动态口令表包括目标显示单元逐个展开模式,所述读取所述目标显示单元与所述非目标显示单元,根据所述尺寸属性值和所述分布位置值对所述目标显示单元与所述非目标显示单元进行输出显示,得到动态口令表,包括:
在全部的所述目标显示单元中读取未显示的目标显示单元,以及读取第四数目的所述非目标显示单元;所述第四数目小于或者等于所述动态口令表中全部显示单元数目减一;
根据所述尺寸属性值和所述分布位置值对所述第一目标显示单元和所述第四数目的所述非目标显示单元进行输出显示,得到动态口令表,并将所述动态口令表包含的目标显示单元标记为已显示的目标显示单元;
当接收到所述客户端发送的输入指令时,确定是否存在未显示的目标显示单元,若存在,则执行所述在全部的所述目标显示单元中读取未显示的目标显示单元,以及读取第四数目的所述非目标显示单元的步骤,直到对所述全部的所述目标显示单元进行输出显示。
在其中一个实施例中,所述动态口令包含动态组成单元集合中至少一个动态组成单元;所述静态口令包含静态组成单元集合中预设数目的目标静态组成单元;所述建立所述动态口令与所述静态口令间的对应关系,并生成包含所述对应关系的动态口令表,包括:
建立所述静态口令中所述目标静态组成单元与所述动态口令中所述动态组成单元间的目标单元对应关系;
建立非目标静态组成单元与所述动态组成单元集合中的所述动态组成单元集合中的动态组成单元间的非目标单元对应关系;所述非目标静态组成单元为所述静态组成单元集合中除所述目标静态组成单元之外的其他静态组成单元;
将所述目标单元对应关系与所述非目标单元对应关系发送至所述客户端,指示所述客户端根据所述目标单元对应关系和所述非目标单元对应关系,生成动态口令表。
在其中一个实施例中,所述根据所述身份验证口令进行身份认证,包括:
根据预设的时间阈值和输入次数阈值,确定所述身份验证口令的有效性;
将接收到的所述身份验证口令与生成的所述动态口令进行比对,确定所述身份验证口令的合法性;
根据所述身份验证口令的合法性和有效性,生成所述身份验证口令的验证结果,并将所述验证结果反馈至所述客户端。
一种身份认证装置,所述装置包括:
获取模块,用于响应客户端发送的登录请求,获取所述客户端对应的静态口令;
第一生成模块,用于根据预设的动态口令生成策略生成动态口令;
第二生成模块,用于建立所述动态口令与所述静态口令间的对应关系,并生成包含所述对应关系的动态口令表,所述动态口令表用于输入动态口令;
认证模块,用于接收所述客户端基于所述动态口令表输入的身份验证口令,根据所述身份验证口令进行身份认证。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应客户端发送的登录请求,获取所述客户端对应的静态口令;
根据预设的动态口令生成策略生成动态口令;
建立所述动态口令与所述静态口令间的对应关系,并生成包含所述对应关系的动态口令表,所述动态口令表用于所述客户端基于所述动态口令表输入与所述静态口令对应的身份验证口令;
接收所述身份验证口令,根据所述身份验证口令进行身份认证。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
响应客户端发送的登录请求,获取所述客户端对应的静态口令;
根据预设的动态口令生成策略生成动态口令;
建立所述动态口令与所述静态口令间的对应关系,并生成包含所述对应关系的动态口令表,所述动态口令表用于所述客户端基于所述动态口令表输入与所述静态口令对应的身份验证口令;
接收所述身份验证口令,根据所述身份验证口令进行身份认证。
上述身份认证方法、装置、计算机设备和存储介质,响应客户端发送的登录请求,获取所述客户端对应的静态口令;根据预设的动态口令生成策略生成动态口令;建立所述动态口令与所述静态口令间的对应关系,并生成包含所述对应关系的动态口令表,所述动态口令表用于输入动态口令;接收所述客户端基于所述动态口令表输入的身份验证口令,根据所述身份验证口令进行身份认证。采用本方法,客户端通过动态口令表包含的静态口令与动态口令间的对应关系,输入动态口令即可实现身份的认证,无需输入静态口令,避免了静态口令的泄露,提高了身份认证安全性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先,在具体介绍本申请实施例的技术方案之前,先对本申请实施例基于的技术背景或者技术演进脉络进行介绍。通常情况下,在网络安全技术领域,当前的技术背景是:当用户进行网络登录时,用于唯一认证当前用户身份的身份验证口令被以任何形式获取到,导致用户身份的假冒,进而导致网络安全问题。基于该背景,申请人通过长期的研发以及实验数据的搜集、演示和验证,发现用户注册的固定形式的静态口令容易泄露,一旦静态口令在遭受网络攻击时泄露,则会出现用户身份冒用,进而出现网络安全问题。如何避免静态口令在用户的客户端受到网络攻击时泄露,成为目前亟待解决的难题。另外,需要说明的是,下述实施例介绍的技术方案,申请人均付出了大量的创造性劳动。
下面结合本申请实施例所应用的场景,对本申请实施例涉及的技术方案进行介绍。
本申请提供的身份认证方法,可以应用于如图1所示的应用环境中。其中,终端102(终端102上安装有对应的浏览器或客户端)通过网络与认证服务器104进行通信。认证服务器104响应终端102上安装的客户端发送的登录请求,获取终端102对应的静态口令。然后,认证服务器104根据预设的动态口令生成策略生成动态口令,建立动态口令与静态口令间的对应关系,并生成包含对应关系的动态口令表。其中,动态口令表用于终端102基于动态口令表输入与静态口令对应的身份验证口令。最后,认证服务器104接收该身份验证口令,根据该身份验证口令进行身份认证。其中,终端102可以但不限于是各种手机、电脑、电视、平板电脑、ATM柜面终端、金融机具、车载智能设备、智能穿戴设备、智能家电等智能终端设备,认证服务器104可以用独立的认证服务器或者是多个认证服务器组成的认证服务器集群来实现。
可选地,包含终端102和认证服务器104的身份认证系统还可以架构于任一分布式系统中,以提供任一应用认证服务器的身份认证功能,即当终端102经过防火墙和交换机与认证服务器104之间完成身份认证之后,通过交换机,客户端即可与应用认证服务器建立连接,实现后续应用操作。
在一个实施例中,如图2所示,提供了一种身份认证方法,以该方法应用于图1中的认证服务器104为例进行说明,包括以下步骤:
步骤201,响应客户端发送的登录请求,获取客户端对应的静态口令。
在实施中,用户在首次登陆客户端系统(下文均简称为客户端)时需要进行用户身份信息的注册,即用户可以在客户端中输入注册账户标识,该用户的用户名可以但不限于为用户ID(身份标识,Identity),以及根据口令设置规则设置的静态口令等,客户端则可以将用户名和静态口令发送给认证服务器,认证服务器将接收到的用户名和静态口令存储到认证数据库中,以便后续用户登录时进行身份认证。其中,用户注册的过程后续会进行详细说明,此处不再赘述。
具体地,如图3所示,提供了口令设置界面,该界面对应包含了多种口令设置子规则,具体为静态口令设置子规则和动态口令设置子规则,针对静态口令设置子规则可以包括:口令长度设定、口令输入有效策略、静态口令模式、静态口令形态、静态口令颜色、位置分割方式、键盘选择等,技术人员可以在该界面进行多种静态口令设置子规则的勾选,实现多种静态口令设置子规则的组合,进而,实现静态口令设置规则的预先定义,因此,对应于(静态)口令设置规则(该规则可以用于提示用户也可以用于后续认证)中包含的口令设置子规则,本申请实施例不做限定。其中,对于静态口令形态可以包含:数字、字母、特殊符号的任意组合。本申请实施例不做限定。
当用户进行登录操作时,客户端会向认证服务器发送登录请求,该登录请求中携带账户标识,认证服务器可以在认证服务器本地的认证数据库中根据账户标识查询并获取该账户标识对应的静态口令。其中,静态口令可以称为静态身份验证口令或静态身份验证密码,用于唯一认证当前登录用户的身份信息。
步骤202,根据预设的动态口令生成策略生成动态口令。
其中,认证服务器配置有不同的动态口令生成策略,不同的动态口令生成策略可以根据不同的身份认证场景进行选择。
在实施中,认证服务器根据预设的动态口令生成策略,生成当前的动态口令性质的身份验证口令(也可以称为身份验证密码)。该动态口令只能在当次身份认证的有效期内使用,且该动态口令在该身份认证的有效期内具有使用次数有限性。
步骤203,建立动态口令与静态口令间的对应关系,并生成包含对应关系的动态口令表,动态口令表用于客户端基于动态口令表输入与静态口令对应的身份验证口令。
在实施中,认证服务器根据在本地身份认证数据库中查询到的静态口令与当前触发生成的动态口令,建立该动态口令与静态口令的对应关系,生成包含对应关系的动态口令表,其中,动态口令表用于提供给用户动态口令与静态口令间的对应关系,以使用户通过客户端显示的动态口令表输入与静态口令对应的动态口令性质的身份验证口令。
其中,动态口令与静态口令间的对应关系可以是静态口令中包含的静态组成单元与动态口令中包含的动态组成单元间的一对一的对应关系,也可以是一对多的对应关系,或者是多对多的对应关系,因此本申请实施例不做限定。
步骤204,接收身份验证口令,根据身份验证口令进行身份认证。
在实施中,客户端接收并显示认证服务器反馈的动态口令表,用户基于脑海中记忆的静态口令,参考动态口令表中包含的静态口令和动态口令间的对应关系,输入静态口令对应的动态口令,该动态口令即为身份验证口令,并将该身份验证口令发送至认证服务器。
认证服务器将该身份验证口令与本次身份验证过程中由用户登录请求触发生成的动态口令进行对比,若两者一致,则判定当前登录用户身份正确,通过身份认证。反之,则判定当前登录用户身份错误,不能通过身份认证。
上述身份认证方法中,认证服务器响应客户端发送的登录请求,获取客户端对应的静态口令,根据预设的动态口令生成策略生成动态口令;建立动态口令与静态口令间的对应关系,并生成包含对应关系的动态口令表。然后,认证服务器接收客户端基于动态口令表输入的身份验证口令,根据身份验证口令进行身份认证。采用本方法,客户端通过动态口令表包含的静态口令与动态口令间的对应关系,输入动态口令即可实现身份的认证,无需输入静态口令,避免了静态口令的泄露,提高了身份认证安全性。
在一个可选的实施例中,如图4所示,在用户登录之前需要预先进行身份注册,因此在步骤201之前,该方法还包括:
步骤401,接收客户端发送的注册请求。
其中,注册请求中携带静态口令和账户标识。
在实施中,用户可以根据客户端的显示界面给出的规则提示进行静态口令设置,例如,在口令输入栏下方提示“烦请输入6位静态口令”,则用户根据提示输入6位(长度)静态口令。然后,客户端可以将用户输入的6位静态口令以及对应的账户标识发送至认证服务器。其中,静态口令的组成形态可以有多种,例如,包含:数字、字母、特殊符号的任意组合。本申请实施例不做限定。
认证服务器接收由客户端发送的注册请求,该注册请求中携带用户设置的静态口令和账户标识。其中,账户标识也即是可以用于唯一表征用户身份的用户身份标识,例如,用户ID(Identity,身份标识号码)。
步骤402,将静态口令和账户标识对应存储。
在实施中,认证服务器将接收到的静态口令与对应的账户标识一并存储在认证服务器本地的身份认证数据库中。
在一个可选的实施例中,步骤202的具体处理过程是多种多样的,本申请实施例提供了三种可行的实现方式。
方式一,根据一次性口令原则和预设的动态口令格式规则,生成一次性的动态口令。其中,一次性口令原则包含时间同步原则、事件同步原则和挑战与应答原则。
在实施中,认证服务器根据一次性口令原则(OTP,One-time Password)和预设的动态口令格式规则,生成一次性的动态口令;该一次性口令原则(OTP原则)可以包含基于时间同步的原则、基于事件同步的原则(或称为次数同步原则)和基于挑战与应答的原则。
本实施例中,基于时间同步原则,认证服务器可以根据接收到登录请求的当前时刻时间数据,通过特定密码方法计算当前时刻时间数据生成动态口令。后续,认证服务器还将生成的动态口令与静态口令生成动态口令表,显示给用户,用户无需单独配置动态口令生成设备,可以直接由认证服务器反馈的动态口令表进行确定,提高了身份认证的便捷性。同样的,基于事件同步原则和基于挑战应答原则的生成动态口令的方式与基于时间同步原则的方式类似,本申请实施例不再赘述。
方式二,根据预设的动态口令格式规则和随机数生成器,生成一次性的动态口令。
在实施中,认证服务器根据预设的动态口令格式规则和随机数生成器,生成一次性的动态口令。例如,预设的动态口令格式规则为:动态口令由数字组成的随机数串,且动态口令的随机数串长度为6位,则随机数生成器计算得到一个6位的随机数动态口令。同样的,动态口令也可以由特殊符号组成,例如,由随机数生成器生成任意的符号串%&#+*@。
可选地,动态口令格式规则可以根据需求进行设置,如图3所示,提供的口令设置规则界面,其中包含了多种动态口令设置子规则,例如,口令长度设定、口令输入有效策略、动态口令形态、动态口令颜色、位置分割方式、键盘选择等。因此,对于动态口令设置规则,本申请实施例不做限定。其中,动态口令形式,即动态口令可以由特殊符号(例如,@,#)、数字(阿拉伯数字(1、2、3),英文数字(one、two、three),汉字数字(一、二、三)、罗马数字)、字母(例如,拼音字母、英文字母)、几何图形中任意一种或者多种组成。其中,将动态口令设置为数字口令形式,为本方案一个优先的实施方式。
方式三,根据预设的密码标准生成规则,生成一次性的动态口令。
其中,预设的密码标准生成规则是密码行业统一发布的密码标准生成规则,可以根据此规则,生成一次性的动态口令。
对于动态口令的生成方式,可以由上述的基于OTP原则生成,也可以由认证服务器随机生成,还可以由认证服务器根据特定的生成流程,对应特定的约束条件逐步生成,因此,本申请实施例对于动态口令的生成方式不做限定。
本实施例中,认证服务器经过客户端登录请求的触发,通过动态口令生成策略生成动态口令,该动态口令具有使用次数限制,且具有随机性,无法进行仿冒,提高了身份认证的安全性。
在一个可选的实施例中,一条动态口令包含动态组成单元集合中的至少一个动态组成单元;动态组成单元即为动态口令的组成元素。若动态口令为特殊符号串时,则动态组成单元为特殊符号,若动态口令为数字串时,则动态组成单元为数字。一条动态口令里可以包含不同类型的动态组成单元。具体的,动态组成单元集合可以包含特殊符号(例如,@,#)、数字(阿拉伯数字(1、2、3),英文数字(one、two、three),汉字数字(一、二、三)、罗马数字)、字母(例如,拼音字母、英文字母)、几何图形等一种或多种类型的动态组成单元。因此,对于一条动态口令所包含的动态组成单元的类型和数目,不做限定。静态口令包含静态组成单元集合中预设数目的目标静态组成单元;其中,目标静态组成单元为静态口令包含的静态组成元素,预设数目由认证服务器系统预先设定,以提示用户输入预设数目的静态口令;同样的,静态组成单元集合可以包含字符、数字、文字、几何图形、隐形数字等一种或多种类型的静态组成单元集合。
基于上述动态口令和静态口令的构成,如图5所示,步骤203的具体处理过程如下所示:
步骤501,建立目标静态组成单元与动态组成单元间的对应关系,针对建立的每个对应关系,将一个对应关系所包含的目标静态组成单元和动态组成单元构成一个目标显示单元。
在实施中,认证服务器建立目标静态组成单元与动态组成单元间的对应关系,例如,静态口令为@cu2A6,动态口令为919812,则其中的静态组成单元与动态组成单元可以是一对一的对应关系,具体为@对应9,c对应1,u对应9,2对应8,A对应1,6对应2。然后,认证服务器针对建立的每个对应关系,将该对应关系所包含的目标静态组成单元与动态组成单元构成一个目标显示单元。如图6所示,一个目标显示单元对应动态口令表中的一个显示框。图6中动态口令表中第1行第2列显示框(被重点框出的动态口令表的单元格)为一个目标显示单元,在该目标显示单元中,目标静态组成单元与动态组成单元的位置关系不限。图6中的目标静态组成单元“@”位于目标显示单元的中下方,其对应的动态组成单元“9”位于静态组成单元的右上角。值得注意的是,虽然在一个显示单元中静态组成单元和动态组成单元的位置关系不做限定,但是动态口令表中全部的显示单元中静态组成单元与动态组成单元的位置关系要保持统一。另外,图6中的安全键盘为提供给用户进行输入的键盘,在用户输入栏下方有对应的口令规则提示:“请输入真实口令右上角所对应的动态口令”,其中,真实密码为静态口令,对应的右上角为动态口令(下文中全部的动态口令表的显示图中均附带有安全键盘,其功能与此相同,不再赘述),本申请中用户输入动态口令时,口令输入栏会对输入的每一动态组合单元进行隐藏处理。
可选地,目标静态组成单元与动态组成单元间的对应关系可以是一对一的对应关系,也可以是一对多的对应关系,还可以是多对多的对应关系,本申请实施例中不做限定。具体地,例如,如图7所示,目标静态组成单元与动态组成单元为“一对多”的对应关系,(整体静态口令为@cu2A6),第1行第1列中1个目标静态组成单元“@”对应2个动态组成单元“91”,第2行第1列中1个目标静态组成单元“c”对应2个动态组成单元“98”……另外,如图8所示,目标静态组成单元与动态组成单元为“多对多”的对应关系,(整体静态口令为@cu2A6),图8中第1行第1列,三个目标静态组成单元“@cu”对应三个动态组成单元“919”。图7和图8中为了体现静态口令与动态口令间的对应关系,用户输入的动态口令为可视化显示状态,实际为隐藏状态。下文中出现输入动态口令时为可视化显示状态的与图7和图8情况相同,不再进行解释。
步骤502,建立非目标静态组成单元与动态组成单元间的第二对应关系,针对建立的每个第二对应关系,将一个第二对应关系所包含的非目标静态组成单元和动态组成单元构成一个非目标显示单元。
其中,非目标静态组成单元为在静态组成单元集合中除目标静态组成单元之外的其他静态组成单元。例如,静态组成单元集合为仅包含数字形式的集合,用户注册的静态口令为123456,则非目标显示单元为:0、7、8、9,即除了目标静态组成单元(123456)之外,集合中包含的其他静态组成单元。
在实施中,认证服务器建立非目标静态组成单元与动态组成单元间的第二对应关系,例如,除了目标静态组成单元之外,认证服务器在静态组成单元集合中随机选取至少一个非目标静态组成单元,为该非目标静态组成单元随机配置任一动态组成单元,将其之间建立一对一的对应关系,作为一个第二对应关系。然后,认证服务器针对建立的每个第二对应关系,将该第二对应关系包含的非目标静态组成单元和动态组成单元构成一个非目标显示单元。例如,图6中动态口令表第7行(由上至下)第1列显示框中非目标静态组成单元为“J”对应配置的动态组成单元为“9”。
可选地,一个第二对应关系可以是非目标静态组成单元与动态组成单元间的一对一的对应关系,也可以是一对多或者多对多对应关系,本申请实施例不做限定,但是动态口令表中每个显示单元中,静态组成单元的数量与动态组成单元数量的比例都是一致的,例如,图6中,目标显示单元中包含的目标对应为一对一的对应关系,则非目标显示单元中也必须是一对一的对应关系。
步骤503,根据目标显示单元与非目标显示单元以及预设的位置分布规则,生成动态口令表。
在实施中,认证服务器根据目标显示单元与非目标显示单元以及预设的位置分布规则,生成动态口令表。具体地,根据认证服务器中预先设定的表格模板,对应分配目标显示单元与非目标显示单元的位置,使得目标显示单元与非目标显示单元显示在分配的位置上,即生成动态口令表。如图6中,目标显示单元为图中被框出的单元格,非目标显示单元为未框出的单元格。
本实施例中,认证服务器建立目标静态组成单元与动态组成单元间的第一对应关系,将该第一对应关系构成目标显示单元;同时,认证服务器建立非目标静态组成单元与动态组成单元间的第二对应关系,将该第二对应关系构成非目标显示单元;根据目标显示单元与非目标显示单元以及预设的位置分布规则,生成动态口令表。这样,通过建立动态口令表,客户端无需单独的动态口令生成设备,即可使用户参照动态口令表,实现身份验证口令的输入,提高了身份认证的便捷性。
在一个可选的实施例中,如图9所示,步骤503的具体处理过程如下所示:
步骤901,根据显示界面大小确定显示单元的尺寸属性值,并根据预设的位置分布规则,确定目标显示单元与非目标显示单元的分布位置值。
步骤902,读取目标显示单元与非目标显示单元,根据尺寸属性值和分布位置值对目标显示单元与非目标显示单元进行输出显示,得到动态口令表。
在实施中,认证服务器读取目标显示单元与非目标显示单元,提取每一显示单元中包含的对应关系,并根据尺寸属性值和分布位置属性值对目标显示单元与非目标显示单元进行输出显示,得到动态口令表。如图6中,目标显示单元为图中被框出的单元格,非目标显示单元为未框出的单元格。
在一个可选的实施例中,如图7所示,动态口令表包括目标显示单元全展开模式。如图10所示,则步骤902的具体处理过程可以包括如下步骤:
步骤1001,读取全部的目标显示单元以及第三数目的非目标显示单元;第三数目小于或者等于动态口令表中全部显示单元数目减去目标显示单元数目。
在实施中,认证服务器读取全部的目标显示单元以及第三数目的非目标显示单元;第三数目小于或者等于动态口令表中全部显示单元数目减去目标显示单元数目。例如,如图6所示,若动态口令表中全部显示单元数目为95个,其中,目标显示单元数目为6个,则第三数目小于或者等于89个,具体为:当动态口令表中存在其他功能性显示单元(例如,字符输入功能显示单元、字母输入功能显示单元)时,则第三数目小于89个,当动态口令表中除了目标显示单元外均是非目标显示单元,则第三数目等于89个。
本实施例中,通过在认证服务器端根据显示界面大小确定显示单元的尺寸属性值,并根据预设的位置分布规则,确定目标显示单元与非目标显示单元的分布位置值,进而读取目标显示单元与非目标显示单元,根据尺寸属性值和分布位置值对目标显示单元与非目标显示单元进行输出显示,得到动态口令表,从而在认证时只输入动态口令,不需输入静态口令,提高了身份认证的安全性。
步骤1002,根据尺寸属性值和分布位置值对全部的目标显示单元和第三数目的非目标显示单元进行输出显示,得到动态口令表。
在实施中,认证服务器根据尺寸属性值和分布位置值对全部的目标显示单元和第三数目的非目标显示单元进行输出显示,得到动态口令表。具体读取显示过程与上述步骤902相同,本实施例不再赘述。
可选的,目标显示单元全展开模式中,也可以每输入一个动态口令组成单元就进行动态口令表的刷新,即当用户通过安全键盘输入一个目标显示单元中的动态口令组成单元时,动态口令表中随机生成的非目标显示单元中的对应关系进行更新,另外,动态口令表中全部的显示单元的排布位置也可以进行更新,本申请实施例不做限定。
在一个可选的实施例中,如图11所示,动态口令表包括目标显示单元逐个展开模式,则如图12所示,步骤1002的具体处理过程如下所示:
步骤1201,在全部的目标显示单元中读取未显示的目标显示单元,以及读取第四数目的非目标显示单元;第四数目小于或者等于动态口令表中全部显示单元数目减一。
在实施中,认证服务器在全部的目标显示单元中读取任一未显示的目标显示单元,例如,图11中所示,第3行第1列的第一目标显示单元,其包含的对应关系为“a对应1”,根据预设的动态口令表中全部的显示单元数目,确定并读取第四数目的非目标显示单元。其中,第四数目小于或者等于动态口令表中全部显示单元数目减一。例如,若不存在其他功能性显示单元,则非目标显示单元数目等于全部显示单元数目减一。若在除第一目标显示单元之外,还有存在功能性显示单元,如图11所示,即“符”和“ABC”两个显示单元,则全部的显示单元数目为38,非目标显示单元数目(第四数目)为35个。
步骤1202,根据尺寸属性值和分布位置值对第一目标显示单元和第四数目的非目标显示单元进行输出显示,得到动态口令表。
在实施中,认证服务器根据尺寸属性值和分布位置值对第一目标显示单元和第四数目的非目标显示单元进行输出显示,得到动态口令表。具体读取显示过程与上述步骤1002相同,本实施例不再赘述。
步骤1203,当接收到客户端发送的输入指令时,确定是否存在未显示的目标显示单元,若存在,则执行在全部的目标显示单元中读取未显示的目标显示单元,以及读取第四数目的非目标显示单元的步骤,直到对全部的目标显示单元进行输出显示。
在实施中,当接收到客户端发送的输入指令时,确定是否存在未显示的目标显示单元,若存在,则执行上述步骤1201-1202,直到对全部的目标显示单元进行输出显示。如图13所示,在图11中第一动态口令表显示了第一目标显示单元之后,根据用户通过客户端的输入指令的触发,更新动态口令表,输出第二目标显示单元(即图13中第2行第7列),以及匹配的第四数目的非目标显示单元,得到第二动态口令表,用户再次进行口令的输入,进一步更新动态口令表,直至全部的目标显示单元在多次动态口令表刷新过程中全部显示。
可选的,逐个展示目标显示单元模式中,每次展示目标显示单元的数目不限于为1个,也可以是2个目标显示单元生成一次动态口令表,还可以是3个目标显示单元生成一次动态口令表,具体可以根据口令长度等实际应用情况进行设定,本实施例不做限定。
在一个可选的实施例中,如图14所示,动态口令包含动态组成单元集合中预设数目的动态组成单元;静态口令包含静态组成单元集合中第二数目的目标静态组成单元;则步骤203中建立动态口令与静态口令间的对应关系,并生成包含对应关系的动态口令表的具体处理过程可以如下所示:
步骤1401,建立静态口令中目标静态组成单元与动态口令中动态组成单元间的目标单元对应关系。
在实施中,认证服务器建立静态口令中目标静态组成单元与动态口令中动态组成单元间的目标单元对应关系(可以为一对一、一对多、多对多的对应关系)。其具体的处理过程与上述步骤501的处理过程相同,本实施例不再赘述。
步骤1402,建立非目标静态组成单元与动态组成单元集合中的动态组成单元间的非目标单元对应关系;非目标静态组成单元为静态组成单元集合中除目标静态组成单元之外的其他静态组成单元。
其中,非目标静态组成单元为静态组成单元集合中除目标静态组成单元之外的其他静态组成单元。
在实施中,认证服务器建立非目标单元静态组成单元与动态组成单元集合中的动态组成单元间的非目标单元对应关系(可以为一对一、一对多、多对多的对应关系);其具体的处理过程与上述步骤502的处理过程相同,本实施例不再赘述。
步骤1404,将目标单元对应关系与非目标单元对应关系发送至客户端,指示客户端根据目标单元对应关系和非目标单元对应关系,生成动态口令表。
在实施中,认证服务器将目标单元对应关系与非目标单元对应关系发送至客户端,指示客户端根据目标单元对应关系与非目标单元对应关系,生成动态口令。其中,客户端对于接收到的目标单元对应关系会对应构建目标显示单元,对于非目标单元对应关系构建非目标显示单元,进而根据得到的目标显示单元与非目标显示单元,生成动态口令表,其具体处理过程,参见上述步骤501至503中得到对应关系之后的处理过程,本实施例不再赘述。
本实施例中,通过认证服务器端建立静态口令中目标静态组成单元与动态口令中动态组成单元间的目标单元对应关系;建立非目标静态组成单元与动态组成单元集合中的动态组成单元间的非目标单元对应关系;进而,将目标单元对应关系与非目标单元对应关系发送至客户端,指示客户端根据目标单元对应关系和非目标单元对应关系,生成动态口令表,通过生成动态口令表,使得客户端无需单独的动态口令生成设备,参照动态口令表,即可实现身份验证口令的输入,提高了身份认证的便捷性。
在一个可选的实施例中,如图15所示,步骤204中根据身份验证口令进行身份认证的具体处理过程可以如下所示:
步骤1501,根据预设的时间阈值和输入次数阈值,确定身份验证口令的有效性。
在实施中,认证服务器记录身份验证口令连续输入错误的次数,并根据预设的输入次数阈值,判断当前身份验证口令的连续输入次数是否小于预设输入次数阈值,若是,则确定身份验证口令满足输入次数要求,并且,认证服务器根据时间阈值判断身份验证口令是否处于有效期之内,认证服务器记录当前时间信息与身份验证口令自身携带的时间戳信息间的时间间隔,若时间间隔在预设的时间范围阈值之内,则确定身份验证口令满足时间要求。身份验证口令满足输入次数要求且满足时间要求,则身份验证口令具备有效性。例如在预设的1分钟实现内接收到用户通过客户端输入的身份验证口令,且输入口令的连续错误次数小于预设的5次,则确定当前身份验证口令有效。
若当前身份验证口令不满足输入次数要求,不满足时间要求中的任意一条,则当前身份验证口令均为无效。
步骤1502,将接收到的身份验证口令与生成的动态口令进行比对,确定身份验证口令的合法性。
在实施中,认证服务器将接收到的身份验证口令与生成的动态口令进行比对,确定身份验证口令的合法性。具体地,用户根据记住的初次注册时设置的静态口令,对照动态口令表输入对应的动态口令,该动态口令即为身份验证口令,认证服务器比对该身份验证口令与生成的动态口令是否一致,判断当前用户身份,若输入的身份验证口令与生成的动态口令一致,则确定该身份验证口令具有合法性。若输入的身份验证口令与生成的动态口令不一致,则确定该身份验证口令不合法。同时,针对此次不合法的身份验证口令,记录一次口令输入错误次数。
步骤1503,根据身份验证口令的合法性和有效性,生成身份验证口令的验证结果,并将验证结果反馈至客户端。
在实施中,认证服务器根据身份验证口令的有效性和合法性,生成身份验证口令的验证结果,具体为:若身份验证口令有效且合法,则生成验证通过结果。否则,则生成验证未通过结果,然后,认证服务器将验证结果反馈至客户端,以提示用户进行后续操作。
在一个可选的实施例中,针对不同的显示模式(全展开模式或逐个展示模式),本申请分别提供多种动态口令表的显示形式,具体地,全展开模式下,第一种显示形式:方式一,如图16中,每一显示单元中静态组成单元与动态组成单元的位置关系为:动态组成单元与静态组成单元上下分布(具体为静态组成单元位于每一显示单元的中下方,动态组成单元位于每一静态组成单元的右上角),上方为动态组成单元,下方为静态组成单元。其中,动态组成单元为数字,静态组成单元为任意字符,静态组成单元在动态口令表中顺序显示。方式二,如图17中,动态组成单元和静态组成单元的位置关系和组成单元的类型与方式一种相同,但是显示时的排序:静态组成单元为随机顺序显示。逐个展开模式下,第二种显示形式,静态组成单元与动态组成单元的位置关系依旧是上下位置关系,方式(1),如图18中,动态组成单元为数字,静态组成单元为任意字符,静态组成单元在动态口令表中顺序显示。方式(2),如图19中,静态组成单元为随机顺序显示。全展开模式/逐个展开模式下,第三种显示形式,静态组成单元与动态组成单元的位置关系依旧是上下并列关系,方式(a),动态组成单元为图形,静态组成单元为任意字符,静态组成单元在动态口令表中顺序(某一特定排序顺序)显示。方式(b),静态组成单元为随机顺序显示。
综上,本申请上述各实施例中,静态组成单元可以为任意字符,动态组成单元也可以为任意字符,本申请实施例不做限定,基于不限定的组成单元类型,静态组成单元与动态组成单元的对应关系就包含多种搭配方式,例如,静态组成单元为数字,动态组成单元也为数字;静态组成单元为任意字符,动态组成单元为英文字母等等。优选的,静态组成单元为任意字符,动态组成单元为数字,以便于区分静态口令和动态口令,同时,静态组成单元为任意字符,动态组成单元为数字的搭配方式,基于其试错概率可知也最具安全性;
其中每一显示单元的排列顺序也可以分为按照静态组成单元排列顺序显示,或者随机顺序显示。本实施例不再赘述。
应该理解的是,虽然图2,图4至图5,图9,图10,图12,图14,图15的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2,图4至图5,图9,图10,图12,图14,图15中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图20所示,提供了一种身份认证装置2000,包括:获取模块2010、第一生成模块2020、第二生成模块2030和认证模块2040,其中:
获取模块2010,用于响应客户端发送的登录请求,获取客户端对应的静态口令;
第一生成模块2020,用于根据预设的动态口令生成策略生成动态口令;
第二生成模块2030,用于建立动态口令与静态口令间的对应关系,并生成包含对应关系的动态口令表,动态口令表用于输入动态口令;
认证模块2040,用于接收客户端基于动态口令表输入的身份验证口令,根据身份验证口令进行身份认证。
在一个可选的实施例中,该装置2000还包括:
接收模块,用于接收客户端发送的注册请求,注册请求中携带静态口令和账户标识;
存储模块,用于将静态口令和账户标识对应存储。
在一个可选的实施例中,第一生成模块2020具体用于根据一次性口令原则和预设的动态口令格式规则,生成一次性的动态口令;或,
根据预设的动态口令格式规则和随机数生成器,生成一次性的动态口令;
或,根据预设的密码标准生成规则,生成一次性的动态口令。
在一个可选的实施例中,动态口令包含动态组成单元集合中的至少一个动态组成单元;静态口令包含静态组成单元集合中预设数目的目标静态组成单元;第二生成模块2030具体用于建立目标静态组成单元与动态组成单元间的对应关系,针对建立的每个对应关系,将一个对应关系所包含的目标静态组成单元和动态组成单元构成一个目标显示单元;
建立非目标静态组成单元与所述动态组成单元集合中的动态组成单元间的第二对应关系,针对建立的每个第二对应关系,将一个第二对应关系所包含的非目标静态组成单元和动态组成单元构成一个非目标显示单元;
根据目标显示单元与非目标显示单元以及预设的位置分布规则,生成动态口令表。
在一个可选的实施例中,第二生成模块2030具体用于根据显示界面大小确定显示单元的尺寸属性值,并根据预设的位置分布规则,确定目标显示单元与非目标显示单元的分布位置值;
读取目标显示单元与非目标显示单元,根据尺寸属性值和分布位置值对目标显示单元与非目标显示单元进行输出显示,得到动态口令表。
在一个可选的实施例中,动态口令表包括目标显示单元全展开模式,第二生成模块2030具体用于读取全部的目标显示单元以及第三数目的非目标显示单元;第三数目小于或者等于动态口令表中全部显示单元数目减去目标显示单元数目;
根据尺寸属性值和分布位置值对全部的目标显示单元和第三数目的非目标显示单元进行输出显示,得到动态口令表。
在一个可选的实施例中,动态口令表包括目标显示单元逐个展开模式,第二生成模块2030具体用于在全部的目标显示单元中读取未显示的目标显示单元,以及读取第四数目的非目标显示单元;第四数目小于或者等于动态口令表中全部显示单元数目减一;
根据尺寸属性值和分布位置值对第一目标显示单元和第四数目的非目标显示单元进行输出显示,得到动态口令表,并将所述动态口令表包含的目标显示单元标记为已显示的目标显示单元;
当接收到客户端发送的输入指令时,确定是否存在未显示的目标显示单元,若存在,则执行在全部的目标显示单元中读取未显示的目标显示单元,以及读取第四数目的非目标显示单元的步骤,直到对全部的目标显示单元进行输出显示。
在一个可选的实施例中,动态口令包含动态组成单元集合中至少一个动态组成单元;静态口令包含静态组成单元集合中预设数目的目标静态组成单元;第二生成模块2030具体用于建立静态口令中目标静态组成单元与动态口令中动态组成单元间的目标单元对应关系;
建立非目标静态组成单元与动态组成单元集合中的动态组成单元间的非目标单元对应关系;非目标静态组成单元为静态组成单元集合中除目标静态组成单元之外的其他静态组成单元;
将目标单元对应关系与非目标单元对应关系发送至客户端,指示客户端根据目标单元对应关系和非目标单元对应关系,生成动态口令表。
在一个可选的实施例中,认证模块2040,用于根据预设的时间阈值和输入次数阈值,确定身份验证口令的有效性;
将接收到的身份验证口令与生成的动态口令进行比对,确定身份验证口令的合法性;
根据身份验证口令的合法性和有效性,生成身份验证口令的验证结果,并将验证结果反馈至客户端。
上述身份认证装置,获取模块,用于响应客户端发送的登录请求,获取客户端对应的静态口令;第一生成模块,用于根据预设的动态口令生成策略生成动态口令;第二生成模块,用于建立动态口令与静态口令间的对应关系,并生成包含对应关系的动态口令表,动态口令表用于输入动态口令;认证模块,用于接收客户端基于动态口令表输入的身份验证口令,根据身份验证口令进行身份认证。采用本装置,客户端通过动态口令表包含的静态口令与动态口令间的对应关系,输入动态口令即可实现身份的认证,无需输入静态口令,避免了静态口令的泄露,提高了身份认证安全性。
关于身份认证装置的具体限定可以参见上文中对于身份认证方法的限定,在此不再赘述。上述身份认证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图21所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储用户名、账户标识、静态口令等身份认证相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种身份认证方法。
本领域技术人员可以理解,图21中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。