基于动态口令的身份认证方法、装置和动态令牌与流程

文档序号:20688984发布日期:2020-05-08 19:08阅读:414来源:国知局
基于动态口令的身份认证方法、装置和动态令牌与流程

本发明涉及身份认证技术领域,特别涉及一种基于动态口令的身份认证方法、装置和动态令牌。



背景技术:

动态口令技术是一种常见的身份认证技术。现有的一种动态口令技术是:动态令牌用加密算法计算动态令牌的同步信息(例如,当前时间或者事件发生次数)得到验证码,服务器获得验证码之后基于服务器的同步信息对验证码进行校验,根据校验结果进行身份认证。

现有的这种动态口令技术的问题在于,动态令牌的同步信息和服务器的同步信息需要保持一致才能够实现有效的身份认证。然而,在实际使用过程中动态令牌和服务器之间经常会出现失步(即同步信息不一致)情况,导致身份认证失败。



技术实现要素:

基于上述现有技术的缺点,本发明提供一种基于动态口令的身份认证方法、装置和动态令牌,以避免由动态令牌和服务器失步引起的身份认证失败。

本发明第一方面提供一种基于动态口令的身份认证方法,应用于动态令牌,所述身份认证方法包括:

基于事件同步机制生成动态因子;

利用加密算法计算所述动态因子和所述动态令牌的设备标识,得到动态验证码;

将所述动态因子、所述动态令牌的设备标识和所述动态验证码转换为动态二维码;

显示所述动态二维码;其中,所述动态二维码用于将所述动态因子,所述动态令牌的设备标识和所述动态验证码提供于服务器,由所述服务器利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码。

可选的,所述将所述动态因子、所述动态令牌的设备标识和所述动态验证码转换为动态二维码之前,还包括:

利用签名算法计算所述动态令牌的设备标识,得到所述动态令牌的设备签名;

其中,所述将所述动态因子、所述动态令牌的设备标识和所述动态验证码转换为动态二维码,包括:

将所述动态因子、所述动态令牌的设备标识、所述动态验证码以及所述动态令牌的设备签名转换为动态二维码。

可选的,所述将所述动态因子、所述动态令牌的设备标识和所述动态验证码转换为动态二维码,包括:

拼接所述动态因子、所述动态令牌的设备标识和所述动态验证码,得到认证消息;

用二维码转换算法将所述认证消息转换为动态二维码。

可选的,所述基于事件同步机制生成动态因子,包括:

将所述动态令牌的累计开机次数,以及所述动态令牌的二维码生成按钮的累计被点击次数确定为动态因子。

可选的,所述动态二维码的编码格式为:hex编码格式。

本发明第二方面提供一种基于动态口令的身份认证方法,应用于服务器,所述身份认证方法包括:

接收终端设备上传的动态二维码;其中,所述动态二维码由所述终端设备从动态令牌获取;

从所述动态二维码中解析出动态因子、所述动态令牌的设备标识和动态验证码;其中,所述动态因子由所述动态令牌基于事件同步机制生成,所述动态验证码由所述动态令牌用加密算法计算所述动态因子和所述动态令牌的设备标识得到;

利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码;

若所述动态验证码未通过校验,确定待认证用户未通过身份认证;

若所述动态验证码通过校验,且所述待认证用户的用户信息和所述动态令牌的设备标识匹配成功,确定所述待认证用户通过身份认证。

可选的,所述利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码之前,还包括:

从所述动态二维码中解析出所述动态令牌的设备签名;其中,所述动态令牌的设备签名由所述动态令牌用签名算法计算所述动态令牌的设备标识得到;

其中,所述利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码,包括:

利用所述动态令牌的设备标识校验所述动态令牌的设备签名;

若所述动态令牌的设备签名通过校验,利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码。

本发明第三方面提供一种基于动态口令的身份认证装置,应用于动态令牌,所述身份认证装置包括:

生成单元,用于基于事件同步机制生成动态因子;

加密单元,用于利用加密算法计算所述动态因子和所述动态令牌的设备标识,得到动态验证码;

转换单元,用于将所述动态因子、所述动态令牌的设备标识和所述动态验证码转换为动态二维码;

显示单元,用于显示所述动态二维码;其中,所述动态二维码用于将所述动态因子,所述动态令牌的设备标识和所述动态验证码提供于服务器,由所述服务器利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码。

可选的,所述加密单元还用于,利用签名算法计算所述动态令牌的设备标识,得到所述动态令牌的设备签名;

其中,所述转换单元将所述动态因子,所述动态令牌的设备标识和所述动态验证码转换为动态二维码时,具体用于:

将所述动态因子、所述动态令牌的设备标识、所述动态验证码以及所述动态令牌的设备签名转换为动态二维码。

可选的,所述转换单元将所述动态因子、所述动态令牌的设备标识和所述动态验证码转换为动态二维码时,具体用于:

拼接所述动态因子、所述动态令牌的设备标识和所述动态验证码,得到认证消息;用二维码转换算法将所述认证消息转换为动态二维码。

可选的,所述生成单元基于事件同步机制生成动态因子时,具体用于:

将所述动态令牌的累计开机次数,以及所述动态令牌的二维码生成按钮的累计被点击次数确定为动态因子。

可选的,所述动态二维码的编码格式为:hex编码格式。

本发明第四方面提供一种基于动态口令的身份认证装置,应用于服务器,所述身份认证装置包括:

接收单元,用于接收终端设备上传的动态二维码;其中,所述动态二维码由所述终端设备从动态令牌获取;

解析单元,用于从所述动态二维码中解析出动态因子、所述动态令牌的设备标识和动态验证码;其中,所述动态因子由所述动态令牌基于事件同步机制生成,所述动态验证码由所述动态令牌用加密算法计算所述动态因子和所述动态令牌的设备标识得到;

校验单元,用于利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码;

确定单元,用于若所述动态验证码未通过校验,确定待认证用户未通过身份认证;

所述确定单元,用于若所述动态验证码通过校验,且所述待认证用户的用户信息和所述动态令牌的设备标识匹配成功,确定所述待认证用户通过身份认证。

可选的,所述解析单元还用于:

从所述动态二维码中解析出所述动态令牌的设备签名;其中,所述动态令牌的设备签名由所述动态令牌用签名算法计算所述动态令牌的设备标识得到;

其中,所述校验单元利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码时,具体用于:

利用所述动态令牌的设备标识校验所述动态令牌的设备签名;若所述动态令牌的设备签名通过校验,利用所述动态因子和所述动态令牌的设备标识校验所述动态验证码。

本发明第五方面提供一种动态令牌,包括:

主控芯片,与所述主控芯片连接的安全芯片,与所述主控芯片连接的显示屏,控制按键和电池;其中:

所述主控芯片,用于执行如本申请第一方面任意一项提供的基于动态口令的身份认证方法,并将得到的动态二维码提供于所述显示屏进行显示;

所述安全芯片,用于存储所述主控芯片生成的动态因子、所述主控芯片生成动态验证码时利用的加密算法、以及所述主控芯片得到所述动态令牌的设备签名时利用的私钥。

可选的,所述动态令牌还包括:通用串行总线的接口和蓝牙通讯模组。

本发明提供一种基于动态口令的身份认证方法、装置和动态令牌,动态令牌基于事件同步机制生成动态因子后,用加密算法计算动态因子和动态令牌的设备标识,得到动态验证码,再将动态因子、动态令牌的设备标识和动态验证码转换为动态二维码,最后显示动态二维码;其中,动态二维码用于将动态因子,动态令牌的设备标识和动态验证码提供于服务器,由服务器利用动态因子和动态令牌的设备标识校验动态验证码。本方案中,动态令牌将动态验证码、动态因子和设备标识通过动态二维码提供给服务器,服务器利用动态二维码中的信息就可以完成身份验证,而不需要保持和动态令牌一致的同步信息,从而解决了动态令牌和服务器失步导致的身份认证失败的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请一个实施例提供的一种基于动态口令的身份认证方法的流程图;

图2为本申请又一实施例提供的一种基于动态口令的身份认证方法的流程图;

图3为本申请实施例提供的一种身份认证的应用场景的示意图;

图4为本申请一个实施例提供的一种基于动态口令的身份认证装置的结构示意图;

图5为本申请又一实施例提供的一种基于动态口令的身份认证装置的结构示意图;

图6为本申请一个实施例提供的一种动态令牌的结构示意图。

具体实施方式

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

动态口令(dynamicpassword)是利用预设的加密算法对一个动态因子进行计算后得到的随机数字串,一定时间段内,每个动态口令只能使用一次,并且,每次生成动态口令时,动态因子都会发生变化,对应的生成的动态口令也与之前的动态口令不同。基于上述特性,动态口令被广泛运用在网银、网游、电信运营商、电子商务、企业需要对用户进行身份认证,并且对安全性要求较高的领域。

根据动态因子产生的方式,现有的基于动态口令的身份认证技术可以分为同步和异步两类。同步技术中,动态令牌(泛指用于生成动态口令的便携式电子设备,主要包括芯片和显示屏,芯片用于执行加密算法以生成动态口令)可以将动态令牌自身所记录的当前时间或者当前的累计动态口令生成次数作为第一动态因子,生成的动态口令上传至服务器后,服务器将服务器所记录的当前时间或者累计用户登录次数作为第二动态因子,基于第二动态因子校验动态口令,从而实现身份认证。

其中,以时间作为动态因子的技术称为基于时间同步的动态口令技术,分别以累计动态口令生成次数和累计用户登录次数作为动态因子的技术称为基于事件同步的动态口令技术。

同步技术的问题在于,服务器和动态令牌之间需要保持同步才能正常的进行身份认证,这里的同步是指,服务器使用的第二动态因子和动态令牌使用的第一动态因子必须保持一致。然而,不论是基于时间同步还是基于事件同步,服务器和动态令牌之间均存在失步(也就是可能会出现服务器使用的动态因子和动态令牌使用的动态因子不一致)的风险,导致身份认证无法正常进行。

具体的,基于时间同步的动态口令技术中,随着时间的推移,动态令牌的计时器和服务器的计时器之间可能存在一定的偏差,具体的,可能当前时刻动态令牌的计时器的读数是10:01:30,而服务器的计时器的读数是10:02:00,这种情况下,服务器和动态令牌的动态因子就会不一致,导致身份认证无法正常进行。

基于事件同步的动态口令技术中,在需要登录系统的场合之外,用户也可能会执行多次无目的的动态口令生成操作,换言之,用户操作动态令牌生成动态口令的次数,很可能不等于用户登录的次数,对应的,动态令牌和服务器之间的动态因子就会不一致,导致身份认证失败。

异步的动态口令技术中,动态令牌需要先从服务器获取一个挑战码,然后将这个挑战码作为动态因子并基于该动态因子生成动态口令,最后将动态口令提供给服务器进行身份认证。这种技术中,由于动态令牌一般不接入网络,因此每次生成动态口令时用户都需要操作动态令牌与服务器进行交互(例如,向动态令牌输入挑战码,或者,用动态令牌扫描服务器提供的携带有挑战码的二维码等),身份认证过程较复杂,用户体验较差。

因此,本申请提供一种新型的基于动态口令的身份认证方法以及相关设备,以解决上述现有技术的问题。

请参考图1,本申请第一个实施例提供一种基于动态口令的身份认证方法,该方法包括以下步骤:

s101、动态令牌基于事件同步机制生成动态因子。

动态令牌是一种独立的便携式硬件设备,动态令牌配置有处理器,存储器以及其他相关部件(如显示屏,通信接口等),存储器存储有:设备标识,动态因子和加密算法,处理器则用于利用加密算法对动态因子进行计算,从而生成动态口令。

事件同步机制,是指,统计动态令牌中某些事件的累计发生次数,每次需要产生动态口令时,将当前这些事件的累计发生次数确定为动态因子,并利用这一动态因子执行后续步骤。

具体的,上述事件可以是,动态令牌的开机和点击动态令牌的二维码生成按钮两者中的任意一种,或者两者的组合。

二维码生成按钮是本申请提供的动态令牌上配置的一个按钮,每次用户点击该按钮,动态令牌就会执行本申请任一实施例所提供的方法中生成动态口令以及对应的二维码的步骤,从而生成并显示一个至少携带有动态令牌的设备标识,本次生成的动态口令,以及本次使用的动态因子等信息的动态二维码。

也就是说,执行步骤s101时,动态令牌可以直接将当前的累计开机次数确定为动态因子,也可以直接将当前二维码生成按钮的累计点击次数确定为动态因子,还可以将当前的累计开机次数和当前二维码生成按钮的累计点击次数合并为一个数字串,将这个数字串确定为动态因子。

具体的,动态令牌的存储器中可以配置有用于记录开机次数的第一变量以及和用于记录按钮点击次数的第二变量,动态令牌出厂是上述变量被初始化为0,出厂后,每次开机时第一变量的变量值自动加1,并且,每次二维码生成按钮被用户点击时,第二变量的变量值自动加1,执行步骤s101时,动态令牌的处理器直接从存储器读取第一变量和/或第二变量的变量值,将变量值确定为动态因子即可。

根据上述生成动态因子的方法,可以理解的,本申请提供的方法中的动态因子是单向递增的动态因子,也就是说,在动态令牌的整个生命周期内,动态令牌每次执行本申请任一实施例时所生成的动态因子,均大于动态令牌前一次生成的动态因子。

s102、动态令牌利用加密算法计算动态因子和动态令牌的设备标识,得到动态验证码。

步骤s102中的动态验证码,就是前文所述的用于进行身份认证的动态口令。

有多种现有的加密算法可以用于实现步骤s102,例如:md5(messagedigestalgorithm5)算法,sha(securehashalgorithm)算法,mac(messageauthenticationcode)算法等,这些算法均可以对任意长的输入字符串(在本申请中,输入字符串就是动态因子和动态令牌的设备标识)进行处理,得到固定长度的输出字符串(在本申请中,输出字符串就是上述动态验证码)。只要预先在动态令牌中配置现有的任意一种加密算法,动态令牌就可以利用该加密算法对动态因子和动态令牌进行计算,得到对应的动态验证码。

以输出长度为256位的安全散列(securehashalgorithm)算法sha-256为例,动态令牌的存储器中预先存储有用于实现sha-256算法的加密程序,执行步骤s102时,处理器将动态因子和动态令牌的设备标识拼接为一个输入字符串,从存储器加载加密程序,将输入字符串作为加密程序的输入参数,然后运行加密程序,加密程序运行结束输出的字符串,就是步骤s102所述的动态验证码。

步骤s102所述的设备标识,可以是动态令牌的存储器中保存的动态令牌的设备序列号,和动态令牌的设备私钥两者中的任意一种,也可以是两者的组合,当然,也可以将其他的能够唯一的标识一个动态令牌的信息作为设备标识。

s103、动态令牌将动态因子、动态令牌的设备标识和动态验证码转换为动态二维码。

步骤s103的具体执行过程是:

将动态因子、动态令牌的设备标识和动态验证码拼接得到认证消息,可以理解的,这个认证消息是一个由前述信息组合成的字符串。

用二维码转换算法将认证消息转换为动态二维码。

可选的,转换得到的动态二维码的编码格式可以是hex编码格式。

相比于现在常见的ascⅱ编码格式,hex编码格式占用的字符数据更少。例如,对于同样的信息量,转换成ascⅱ编码格式的二维码需要占用160byte的数据,而转换成hex编码格式的二维码只需要占用96byte的数据量,进一步的,由于占用的数据量较少,在动态二维码显示的环节,hex编码格式的二维码需要显示的二维码像素点会少于ascⅱ编码格式的二维码需要显示的二维码像素点,从而解决动态令牌的显示屏较小时,二维码像素点过密导致的二维码扫描失败的问题。

另一方面,目前常用的二维码扫描工具一般只能解析ascⅱ编码格式的二维码,而不能解析hex编码格式的二维码,因此,采用hex编码格式的二维码能够确保动态令牌显示的二维码只能被特定的终端设备或服务器解析,从而提高安全性,避免动态二维码中携带的信息泄露。

s104、动态令牌显示动态二维码。

动态令牌配置有显示屏,处理器生成动态二维码之后就可以控制显示屏显示上述动态二维码。

s105、服务器从动态令牌获取动态二维码。

需要说明的是,为了确保安全性,动态令牌一般不具有网络连接功能,因此,步骤s105的具体实现过程是:

本地的第一终端设备从动态令牌获取动态二维码,将动态二维码通过网络上传至服务器。

上述第一终端设备可以是接入互联网的个人电脑、平板电脑或智能手机等设备。

可选的,本地的第一终端设备可以通过下述任意一种方式从动态令牌获取上述动态二维码:

第一,若第一终端设备具有二维码扫描功能,用户可以直接用第一终端设备扫描动态令牌的显示屏,然后第一终端设备就可以读取动态令牌在显示屏上显示的动态二维码。

第二,本申请提供的动态令牌可以配置有蓝牙通讯模组,动态令牌可以通过蓝牙通讯模组和同样具有蓝牙通信功能的第一终端设备进行通信,然后在生成动态二维码后将动态二维码通过蓝牙发送给第一终端设备,然后第一终端设备将动态二维码上传至服务器。

第三,本申请提供的动态令牌还可以配置通用串行总线(universalserialbus,usb)接口,用户可以用数据线连接动态令牌和第一终端设备,然后第一终端设备通过动态令牌的usb接口接收动态令牌的动态二维码,并将动态二维码发送给服务器。

s106、服务器解析动态二维码。

如前文所述,动态二维码是动态令牌对动态因子、动态令牌的设备标识和动态验证码进行转换后得到的二维码,因此,服务器通过解析动态令牌提供的动态二维码,就可以提取出其中的动态因子、动态令牌的设备标识和动态验证码。

s107、服务器校验动态验证码。

若动态验证码通过校验,则执行步骤s108,若动态验证码未通过校验,则执行步骤s109。

服务器对动态验证码的校验过程是:

利用服务器中预先配置的加密算法对动态因子和动态令牌的设备标识进行计算,得到校验码,若校验码和动态令牌提供的动态验证码一致,则认为动态令牌提供的动态验证码,反之,若校验码和动态令牌提供的动态验证码不一致,则认为动态验证码未通过校验。

需要说明的是,服务器使用的加密算法和动态令牌中配置的加密算法是同一加密算法,例如,若动态令牌使用sha-256算法对动态因子和设备标识码进行计算从而生成动态验证码,那么,上述服务器生成的校验码时也是用sha-256对动态因子和设备标识码进行计算得到。对应的,服务器用加密算法对动态因子和动态令牌的设备标识进行计算得到校验码的过程和前述动态令牌计算得到动态验证码的过程一致,此处不再赘述。

也就是说,本申请提供了配置有相同的加密算法的动态令牌和服务器,当服务器从动态二维码中解析得到动态因子、动态令牌的设备标识和动态验证码,并且动态验证码通过校验之后,就可以认为当前请求进行身份认证的用户(记为待认证用户)持有本申请提供的可信的动态令牌,因而可以进行后续的身份认证的步骤,反之,若动态验证码未通过校验,那么就认为待认证用户未持有本申请提供的可信的动态令牌,这种情况下就可以直接确定待认证用户为非法用户,即执行步骤s109。

s108、服务器将设备标识和用户信息进行匹配。

上述用户信息,是待认证用户的用户信息,具体的,待认证用户的用户信息,可以是该用户的账号,用户名或者可以唯一标识该用户的信息。

若动态令牌的设备标识和待认证用户的用户信息匹配失败,则执行步骤s109,若若动态令牌的设备标识和待认证用户的用户信息匹配失成功,则执行步骤s110。

具体的,为用户发放动态令牌时,可以在服务器的数据库中记录动态令牌的设备标识,以及持有该动态令牌的用户的用户信息之间的对应关系。执行步骤s108时,服务器直接从数据库中查找出动态令牌携带的设备标识所对应的用户信息,若查找得到的用户信息和第二终端设备提供待认证用户的用户信息一致,就认为动态令牌的设备标识和待认证用户的用户信息匹配成功,若查找得到的用户信息和第二终端设备提供待认证用户的用户信息不一致,就认为动态令牌的设备标识和待认证用户的用户信息匹配失败。

s109、服务器确定待认证用户未通过身份认证。

s110、服务器确定待认证用户通过身份认证。

可选的,若服务器确定待认证用户未通过身份认证,可以向第二终端设备发送认证失败信息,若服务器确定待认证用户通过身份认证,可以向第二终端设备发送认证成功信息,并授权执行后续操作。

第二终端设备可以是接入互联网的个人电脑、平板电脑或智能手机等设备。

需要说明的是,第二终端设备和前述第一终端设备可以是同一终端设备,也可以是不同终端设备。

第一方面,用户可以在移动终端(如智能手机)上请求执行需要授权的操作,移动终端提示用户提供动态二维码后,用户触发动态令牌生成动态二维码,然后用户用同一移动终端扫描动态二维码,该移动终端将动态二维码上传服务器,服务器校验后,确定用户是否通过身份认证,若用户通过身份认证,则向该移动终端发送认证成功信息,并提供授权该移动终端执行后续操作,若用户未通过身份认证,则向该移动终端发送认证失败信息。

第二方面,用户可以在个人电脑上请求执行需要授权的操作,然后在触发动态令牌生成动态二维码后,用手机扫描动态二维码并提供于服务器,服务器校验后,若用户通过身份认证,则向该电脑发送认证成功信息,并授权该电脑执行后续操作,若用户未通过身份认证,则向该电脑发送认证失败信息。

本申请实施例提供一种基于动态口令的身份认证方法,动态令牌基于事件同步机制生成动态因子后,将动态因子,设备标识以及根据动态因子生成的动态验证码以动态二维码的形式提供于服务器,服务器从动态二维码中解析出动态因子,设备标识和动态验证码,然后基于这些解析得到的信息对用户进行身份认证。

本发明第一方面能够解决现有的异步的动态口令技术中认证流程复杂的问题。用户需要进行身份认证时,只需要点击动态令牌上对应的按钮,然后用终端设备获取动态令牌的动态二维码,就可以实现身份认证的过程,生成动态二维码之前不需要用户操作动态令牌与服务器进行交互,有效的简化身份认证流程,改善用户体验。

本发明第二方面能够解决现有的同步的动态口令技术中动态令牌和服务器之间由于失步而引起的身份认证失败的问题。现有的同步的动态口令技术中,动态令牌用自身的时钟或事件发生次数作为动态因子生成动态口令,服务器又利用服务器自身的时钟或事件发生次数作为动态因子校验动态口令,一旦服务器和动态令牌两者的时钟或者事件发生次数不一致,服务器和动态令牌就会失步。本方案中,动态令牌以自身的事件发生次数作为动态因子生成动态验证码后,通过终端设备实现和服务器的交互,直接将动态因子和动态验证码一并提供于服务器,使得服务器能够以动态令牌的事件发生次数作为动态因子进行校验,因此,每次进行身份认证时动态令牌和服务器的动态因子均能够保持一致,不会由于两者之间的时钟偏差或者统计的事件发生次数不一致而引起失步,确保身份认证的成功率。

本申请第二个实施例还提供一种基于动态口令的身份认证方法,请参考图2,该方法包括:

s201、动态令牌基于事件同步机制生成动态因子。

s202、动态令牌利用加密算法计算动态因子和动态令牌的设备标识,得到动态验证码。

s203、动态令牌利用签名算法计算动态令牌的设备标识,得到动态令牌的设备签名。

步骤s203的具体计算过程与前述实施例中s102利用加密算法计算得到动态验证码的过程一致,也是处理器从存储器中调取用于实现签名算法的程序,然后将设备标识提供给该程序,程序运行后就可以输出动态令牌的设备签名。

具体的,上述签名算法可以是椭圆曲线数字签名算法(ellipticcurvedigitalsignaturealgorithm,ecdsa),ecdsa指代现有的一类基于椭圆曲线数学理论实现的非对称加密算法,ecdsa算法可以根据一个预设的私钥对输入的待加密信息(在本申请中,就是上述设备标识)进行加密,得到待加密信息的签名(在本申请中,就是上述设备签名)。其中,根据使用的椭圆曲线的不同,可以有不同的椭圆曲线数字签名算法,可选的,本实施例中就可以使用基于椭圆曲线secp256k1实现的椭圆曲线数字签名算法对上述设备标识进行计算,得到设备签名。

上述椭圆曲线的方程,以及ecdsa的具体实现过程为本领域技术人员的公知常识,此处不再赘述。

s204、动态令牌将动态因子、设备标识、设备签名和动态验证码转换为动态二维码。

s205、动态令牌显示动态二维码。

s206、服务器从动态令牌获取动态二维码。

s207、服务器解析动态二维码。

与前一实施例类似,服务器解析动态二维码后,就可以得到动态二维码携带的动态因子、设备标识、设备签名和动态验证码。

s208、服务器依次校验设备签名,动态验证码和用户信息。

上述用户信息,就是待认证用户提供的用于进行身份认证的信息,例如,可以是用户账号,用户名称或者其他的标识。

若每一项校验均通过,就说明待认证用户通过身份认证,执行步骤s209,若上述任一项校验未通过,就说明待认证用户未通过身份认证,执行步骤s210。

步骤s208的执行过程是:

首先利用动态令牌的设备标识对设备签名进行校验,若设备签名未通过校验,则直接确定身份认证失败,若设备签名通过,则利用动态因子和设备标识对动态验证码进行校验,若动态验证码未通过校验,直接确定身份认证失败,若动态验证码通过校验,则对用户信息进行校验,也就是判断用户信息和设备标识是否匹配,若用户信息未通过校验,则确定身份认证失败,若用户信息通过校验,则确定身份认证成功。

其中,上述校验动态验证码的过程与前述实施例中的步骤s107一致,校验用户信息的过程与前述实施例中的步骤s108一致,此处不再赘述。

对设备签名进行校验的过程是:

首先需要说明的是,服务器端预先配置有和动态令牌使用的私钥相匹配的公钥,服务器的公钥和动态令牌的私钥构成一个公私钥对。服务器利用和动态令牌相同的签名算法以及与动态令牌的私钥匹配的公钥,对解析得到的设备标识进行计算,生成一个设备签名,然后验证计算得到的设备签名和服务器从动态二维码中解析得到的设备签名是否匹配,若计算得到的设备签名和服务器从动态二维码中解析得到的设备签名相匹配,就说明设备签名通过校验,反之,若计算得到的设备签名和解析得到的设备签名不匹配,就说明设备签名未通过校验。

本实施例在图1对应的实施例的基础上增加了设备签名的生成和校验环节,进一步提高本申请提供的身份认证方案的安全性。

s209、服务器确定待认证用户的身份认证成功。

s210、服务器确定待认证用户的身份认证失败。

为了更好的理解本申请提供的身份认证方法,下面结合图3介绍本申请在移动支付场景下的具体实现过程。

如图3所示,假设用户a需要使用手机200的移动支付软件通过网银系统购买商品,当前已进入付款环节,用户a用账号和密码登录了移动支付软件,输入金额并点击确认付款后,为了确保用户的财产安全,此时一般还需要验证当前操作手机200的用户就是用户a,于是,移动支付软件输出图3左侧的手机200所示的二维码扫描界面,提示用户操作动态令牌100生成动态二维码并用手机扫描。

手机输出上述界面后,用户a就可以操作动态令牌生成动态二维码,具体的,动态令牌平时可以保持关机状态,用户需要使用时点击电源键,动态令牌开机并在开机后自动执行前述实施例中的对应步骤,生成并在二维码显示区域显示动态二维码,用户还可以点击电源键右侧的刷新按钮,触发动态令牌生成并显示新的动态二维码。可选的,动态令牌也可以在开机后不自动生成动态二维码,只有在用户点击刷新按钮时才生成并显示动态二维码。

动态令牌显示二维码后,用户a用手机扫描二维码显示区域,使得手机获取到动态令牌生成的二维码,然后手机上的移动支付软件将动态二维码待认证用户的用户信息,也就是用户a的账号一并上传给服务器300。

服务器收到上述信息后,执行前述实施例中服务器对应的步骤,对二维码进行解析并校验其中的设备签名和动态验证码,在设备签名和动态验证码均通过校验后,服务器判断动态二维码中携带的设备标识和用户a的账号是否匹配,换言之,也就是判断当前提供动态二维码的动态令牌是否为用户a的动态令牌,若设备标识和用户a的账号匹配,就说明当前提供动态二维码的动态令牌是用户a的动态令牌,进而就认为当前请求支付的用户确实是用户a。

确认当前请求支付的用户是用户a之后,在移动支付场景中服务器就可以直接从预先关联的用户a的银行账户中扣款,用户不需要在手机侧进行后续操作,因此,服务器只需要向手机下发用于表示身份认证通过的认证结果即可,手机收到该认证结果后,就认为当前请求的支付完成,输出图3右侧的界面。

当然,以上仅仅是本申请提供的身份认证方法的一种应用场景。本申请提供的方法还可以应用于其他的场景中,并且,在其他场景中,根据实际情况的不同,用户还可以在身份认证通过后在移动终端执行后续的操作。

例如,本申请提供的方法还可以应用在用户登录某个平台的时候对用户进行身份认证,若身份认证通过,则服务器下发认证成功的结果,然后终端设备就输出该平台的相关界面,使得用户能够进入该平台并执行相关操作。

结合本申请实施例提供的方法,本申请实施例还提供了用于执行上述方法的装置。

请参考图4,本申请实施例提供一种基于动态口令的身份认证装置,该装置可以认为是前述实施例中提及的动态令牌内的一个处理器,该装置包括以下单元:

生成单元401,用于基于事件同步机制生成动态因子。

加密单元402,用于利用加密算法计算动态因子和动态令牌的设备标识,得到动态验证码。

转换单元403,用于将动态因子、动态令牌的设备标识和动态验证码转换为动态二维码。

显示单元404,用于显示动态二维码。

其中,动态二维码用于将动态因子,动态令牌的设备标识和动态验证码提供于服务器,由服务器利用动态因子和动态令牌的设备标识校验动态验证码。

可选的,加密单元402还用于,利用签名算法计算动态令牌的设备标识,得到动态令牌的设备签名。

其中,转换单元403将动态因子,动态令牌的设备标识和动态验证码转换为动态二维码时,具体用于:

将动态因子、动态令牌的设备标识、动态验证码以及动态令牌的设备签名转换为动态二维码。

转换单元403将动态因子、动态令牌的设备标识和动态验证码转换为动态二维码时,具体用于:

拼接动态因子、动态令牌的设备标识和动态验证码,得到认证消息;用二维码转换算法将认证消息转换为动态二维码。

生成单元401基于事件同步机制生成动态因子时,具体用于:

将动态令牌的累计开机次数,以及动态令牌的二维码生成按钮的累计被点击次数确定为动态因子。

可选的,转换单元转换得到的动态二维码,可以是hex编码格式的二维码。

本实施例提供的装置,其具体的工作原理可以参考本申请任一实施例提供的身份认证方法中,由动态令牌所执行的步骤,此处不再赘述。

请参考图5,本申请实施例还提供一种装置,该装置可以认为前述实施例中提及的服务器,该装置包括:

接收单元501,用于接收终端设备上传的动态二维码;其中,动态二维码由终端设备从动态令牌获取。

解析单元502,用于从动态二维码中解析出动态因子、动态令牌的设备标识和动态验证码。

其中,动态因子由动态令牌基于事件同步机制生成,动态验证码由动态令牌用加密算法计算动态因子和动态令牌的设备标识得到。

校验单元503,用于利用动态因子和动态令牌的设备标识校验动态验证码。

确定单元504,用于若动态验证码未通过校验,确定待认证用户未通过身份认证。

确定单元504,用于若动态验证码通过校验,且待认证用户的用户信息和动态令牌的设备标识匹配成功,确定待认证用户通过身份认证。

可选的,解析单元502还用于:

从动态二维码中解析出动态令牌的设备签名。

其中,动态令牌的设备签名由动态令牌用签名算法计算动态令牌的设备标识得到。

其中,校验单元503利用动态因子和动态令牌的设备标识校验动态验证码时,具体用于:

利用动态令牌的设备标识校验动态令牌的设备签名;若动态令牌的设备签名通过校验,利用动态因子和动态令牌的设备标识校验动态验证码。

本实施例提供的装置,其具体的工作原理可以参考本申请任一实施例提供的身份认证方法中,由服务器所执行的步骤,此处不再赘述。

本申请实施例提供一种基于动态口令的身份认证装置,动态令牌的生成单元401基于事件同步机制生成动态因子后,加密单元402利用加密算法计算动态因子和动态令牌的设备标识,得到动态验证码,然后转换单元403将动态因子,设备标识以及动态验证码转换为动态二维码,最后显示单元404显示动态二维码,终端设备从动态令牌获取动态二维码后,服务器的接收单元501接收终端设备上传的动态二维码,解析单元502从动态二维码中解析出动态因子,设备标识和动态验证码,然后校验单元503基于这些解析得到的信息对用户进行身份认证。

本申请提供的装置中,动态令牌通过转换单元403和显示单元404,将动态因子,设备标识和动态验证码一并以二维码的形式提供于服务器,使得服务器可以直接用动态令牌的动态因子对动态验证码进行校验,从而有效的避免了服务器和动态令牌之间出现失步的情况下身份认证失败的情况,提高用户体验。

最后,本申请实施例还提供一种动态令牌,请参考图6,该动态令牌包括以下结构:

主控芯片,与主控芯片连接的安全芯片,与主控芯片连接的显示屏,控制按键和电池。

主控芯片,用于执行本申请任一实施例提供的基于动态口令的身份认证方法中生成动态二维码的步骤,并将得到的动态二维码提供于显示屏进行显示。

安全芯片,用于存储主控芯片生成的动态因子、主控芯片生成动态验证码时利用的加密算法、以及主控芯片得到动态令牌的设备签名时利用的私钥。

如图6所示,主控芯片,安全芯片和电池封装于动态令牌的外壳内,动态令牌的外壳可以是锌合金外壳,也可以是其他材料制作的外壳。

控制按键包括图6中的电源键和刷新键,刷新键相当于前述实施例提供的方法中的二维码生成按钮。

电池可以是可充电的锂电池。

进一步的,本实施例提供的动态令牌还包括蓝牙通讯模组和usb接口。usb接口一方面可以通过数据线和终端设备连接,使得动态令牌的主控芯片可以通过有线连接的方式将动态二维码提供于终端设备,另一方面可以外接充电装置,从而为动态令牌的电池充电。

蓝牙通讯模组也封装与外壳内,蓝牙通讯模组可以用于和终端设备建立蓝牙连接,建立蓝牙连接后主控芯片可以通过蓝牙的方式将动态二维码提供于终端设备。

本实施例提供的动态令牌的一种可选的工作原理如下:

动态令牌预先设置有自动关机时长(例如,可以是5分钟),若5分钟内动态令牌没有操作则自动关机。关机状态下用户可以长按电源键开机,开机后,用户可以长按电源键,然后动态令牌的显示屏点亮,主控芯片首先在显示屏上显示当前的电量以及预设的文字信息,然后主控芯片执行本申请前述实施例中提供的身份认证方法中用于生成动态二维码的相关步骤,产生动态二维码,跳转至二维码显示界面显示动态二维码。

在显示屏显示有二维码的情况下,用户可以点击刷新键,用户每次点击刷新键,主控芯片都会执行前述实施例中生成动态二维码的步骤,生成一个新的动态二维码,并控制显示屏展示该二维码。显示屏输出二维码后用户就可以用终端设备扫描显示屏展示的二维码,从而将该二维码上传至服务器。

具体的,在需要连续进行多次身份认证的场合(例如,需要连续进行多笔交易时),用户可以每进行一次身份认证就点击一次刷新键,生成新的用于进行下一次身份认证的二维码。

动态令牌的显示屏亮起后,若2分钟内(当然,该时长可以根据具体情况调节)用户未执行任何操作,则显示屏熄灭,动态显示屏熄灭且动态令牌处于开机状态时,用户可以点击电源键或刷新键再次点亮显示屏。若连续5分钟用户未操作动态令牌,则动态令牌自动关机。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1