动态口令生成和认证方法及装置与流程

文档序号:14364952阅读:426来源:国知局
动态口令生成和认证方法及装置与流程

本发明涉及信息安全领域,具体而言,涉及一种动态口令生成和认证方法及装置。



背景技术:

在目前基于时间型动态口令的身份认证技术中,动态口令的产生主要由以下两个因子经过密码运算产生:种子密钥+时间。其中种子密钥保存在前端的动态令牌和后端的动态口令认证系统中,在动态令牌激活后就不会发生改变;时间为前端动态令牌产生动态口令时动态口令的时间。

由于动态令牌产生动态口令后,需要用户手工输入到业务系统,然后业务系统调用动态口令认证系统进行认证,动态口令认证系统会将计算的动态口令与传递过来的动态口令进行比较。由于前端和后端计算动态口令有个时间差,并且动态令牌的时间随着使用时间的增加,可能会与动态口令认证系统的服务器时间出现不一致,因此动态口令认证系统计算动态口令就有了窗口的概念,如果使用当前时间计算动态口令与动态令牌计算的口令不一致,则会按照窗口大小分别计算窗口时间内的动态口令,然后与动态令牌计算的口令进行比较,如果窗口时间内计算的所有动态口令都比较不成功,则动态口令认证失败。

针对相关技术中动态口令的认证方法效率较低的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种动态口令生成和认证方法及装置,以至少解决相关技术中动态口令的认证方法效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种动态口令认证方法,该方法应用于认证系统,该方法包括:获取动态令牌的动态口令,其中,动态令牌用于按照预设口令生成算法根据口令生成时间生成初始口令,并将初始口令的预设位的数值替换为口令生成时间的参考位的数值以得到动态口令;根据动态口令确定口令生成时间的参考位的数值;根据口令生成时间的参考位的数值修正口令接收时间,得到基础认证时间;将基础认证时间作为初值认证动态口令。

进一步地,根据口令生成时间的参考位的数值修正口令接收时间,得到基础认证时间包括:根据获取到动态口令时的认证系统的时间确定口令接收时间;根据口令生成时间的参考位的数值、口令接收时间的参考位的数值、系统误差估值和实际时差估值修正口令接收时间,得到基础认证时间,其中,系统误差估值为动态令牌和认证系统的系统时间误差的估计值,实际时差估值为动态令牌生成动态口令至认证系统获取到动态口令实际经过的时间差的估计值。

进一步地,修正口令接收时间,得到基础认证时间采用如下步骤:步骤1,获取口令生成时间的参考位的数值B1、口令接收时间ST的参考位的数值B2、系统误差估值T1、实际时差估值T2、第一偏移窗口W1,其中,T1和T2的初始值为0;步骤2,计算第一偏移量OTPi_W1并判断第一偏移量OTPi_W1是否超出第一偏移窗口W1:如果T1为负,则OTPi_W1=(B2+T1-B1+10-T2)%10,如果T1为正,则OTPi_W1=(B1+10-B2+T1-T2)%10,如果T1为0,则OTPi_W1=MIN{(B1+10-B2-T2)%10,(B2-B1+10-T2)%10},其中,如果判断出OTPi_W1>W1,则认证失败;步骤3,如果判断出OTPi_W1≤W1,则更新T1:如果T1为负,则T1=(T1*N-OTPi_W1)/(N+1),其中,N为认证次数,如果T1不为负,则T1=(T1*N+OTPi_W1)/(N+1);步骤4,修正口令接收时间ST,得到基础认证时间T:T=ST+T1。

进一步地,将基础认证时间作为初值认证动态口令包括:根据基础认证时间按照预设口令生成算法生成认证口令;判断认证口令除预设位之外的其它位是否与动态口令相同;如果判断结果为是,则认证成功;如果判断结果为否,则在基础认证时间的基础上按照预设时间间隔增加或减少第二偏移量直至认证成功或第二偏移量超出预设的第二偏移窗口。

进一步地,在认证成功之后,该方法还包括更新实际时差估值T2,其中:确定认证成功时的第二偏移量OTPi_W2;通过如下公式更新T2:T2=(T2*N+OTPi_W2)/(N+1);将认证次数N加1。

根据本发明实施例的另一方面,还提供了一种动态口令生成方法,该方法应用于动态令牌,该方法包括:按照预设口令生成算法根据动态令牌的当前时间生成初始口令;将初始口令的预设位的数值替换为口令生成时间的参考位的数值,得到动态口令,其中,动态口令用于发送至认证系统以使认证系统根据动态口令进行认证。

进一步地,参考位为分钟位。

进一步地,按照预设口令生成算法根据动态令牌的当前时间生成初始口令包括:按照预设口令生成算法根据动态令牌的当前时间和存储在动态令牌中的密钥生成初始口令。

根据本发明实施例的另一方面,还提供了一种动态口令认证装置,该装置包含于认证系统中,该装置包括:获取单元,用于获取动态令牌的动态口令,其中,动态令牌用于按照预设口令生成算法根据口令生成时间生成初始口令,并将初始口令的预设位的数值替换为口令生成时间的参考位的数值以得到动态口令;确定单元,用于根据动态口令确定口令生成时间的参考位的数值;修正单元,用于根据口令生成时间的参考位的数值修正口令接收时间,得到基础认证时间;认证单元,用于将基础认证时间作为初值认证动态口令。

根据本发明实施例的另一方面,还提供了一种动态口令生成装置,该装置包含于动态令牌中,该装置包括:生成单元,用于按照预设口令生成算法根据动态令牌的当前时间生成初始口令;替换单元,用于将初始口令的预设位的数值替换为口令生成时间的参考位的数值,得到动态口令,其中,动态口令用于发送至认证系统以使认证系统根据动态口令进行认证。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质用于存储程序,其中,程序在被处理器执行时控制存储介质所在设备执行本发明的动态口令生成方法。

在本发明实施例中,通过解析包含动态令牌生成动态口令的时间的参考位的口令,以根据口令生成时间的参考位修正口令接收时间得到基础认证时间,解决了相关技术中动态口令的认证方法效率较低的技术问题,进而达到更有效率地认证动态口令的技术效果。

附图说明

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

图1是根据本发明实施例的一种可选的动态口令认证方法的流程图;

图2是根据本发明实施例的一种可选的动态口令认证装置的示意图;

图3是根据本发明实施例的一种可选的动态口令生成方法的流程图;

图4是根据本发明实施例的一种可选的动态口令生成装置的示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请提供了一种动态口令认证方法的实施例。需要说明的是,该方法应用于认证系统。

图1是根据本发明实施例的一种可选的动态口令认证方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,获取动态令牌的动态口令,其中,动态令牌用于按照预设口令生成算法根据口令生成时间生成初始口令,并将初始口令的预设位的数值替换为口令生成时间的参考位的数值以得到动态口令;

步骤S102,根据动态口令确定口令生成时间的参考位的数值;

步骤S103,根据口令生成时间的参考位的数值修正口令接收时间,得到基础认证时间;

步骤S104,将基础认证时间作为初值认证动态口令。

动态令牌(OTPi)是基于时间生成动态口令的前端设备。动态令牌生成动态口令时,首先获取自身的硬件时间作为口令生成时间,根据口令生成时间和动态令牌中预存的种子密钥按照预设口令生成算法生成动态口令。

在该实施例中,动态令牌在按照预设口令生成算法根据口令生成时间生成初始口令之后,确定初始口令中的预设位和口令生成时间中的参考位,将初始口令中的预设位的数值替换为口令生成时间的参考位的数值。

例如,动态令牌按照现有的预设口令生成算法根据动态令牌的当前时间(如9点21分)和种子密钥生成初始的动态口令P1,确定初始口令的预设位为最后一位,确定口令生成时间中的参考位为分钟位,则将P1的最后1位变为动态令牌的当前时间的最后1位,从而得到P2,如果P1为12345678,则P2为12345671。

在认证系统获取到动态令牌生成的动态口令之后,可以根据动态口令确定口令生成时间的参考位的数值。确定口令生成时间的参考位的数值之后,可以修正口令接收时间,其中,口令接收时间是获取到动态令牌的动态口令的时间,修正口令接收时间之后得到基础认证时间,其中,基础认证时间是认证系统认证动态口令时的初始时间值,确定基础认证时间之后,将基础认证时间作为初值认证动态口令,在认证系统认证动态口令时,先采用基础认证时间和预存在认证系统中的与动态令牌相同的种子密钥生成认证口令,判断认证口令中除预设位之外的其它位是否与获取到的动态口令相同,如果相同,则认证成功,如果不同,则认证不成功。如果未认证成功,则在基础认证时间的基础上按照预设时间间隔增加或减少一个偏移的时间量来生成认证口令。

该实施例通过解析包含动态令牌生成动态口令的时间的参考位的口令,以根据口令生成时间的参考位修正口令接收时间得到基础认证时间,解决了相关技术中动态口令的认证方法效率较低的技术问题,进而达到更有效率地认证动态口令的技术效果。

作为上述实施例的一种可选实施例,根据口令生成时间的参考位的数值修正口令接收时间,得到基础认证时间的步骤可以包括:根据获取到动态口令时的认证系统的时间确定口令接收时间;根据口令生成时间的参考位的数值、口令接收时间的参考位的数值、系统误差估值和实际时差估值修正口令接收时间,得到基础认证时间,其中,系统误差估值为动态令牌和认证系统的系统时间误差的估计值,实际时差估值为动态令牌生成动态口令至认证系统获取到动态口令实际经过的时间差的估计值。

现有的动态口令认证方法中,由于动态令牌和认证系统计算动态口令所采用的时间不一致,会导致认证系统在进行动态口令认证时,需要进行多次的动态口令计算过程,严重影响系统的认证效率问题。

导致动态令牌和认证系统计算动态口令所采用的时间不一致的原因主要有两个,一个是动态令牌计算完动态口令后需要用户将计算完的动态口令输入到认证系统的认证页面,并且需要将动态口令传输到认证系统进行认证,这些是由于操作和传输产生的实际时间差;另一个是动态令牌的系统时间随着使用时间的增加会与动态口令认证系统的服务器时间出现不一致,也即系统时间误差。

现有技术中通常采用一个时间窗口,在认证系统接收到动态口令的时间的窗口范围内进行认证。如果将上述导致动态令牌和认证系统计算时间不一致的两个原因采用一个时间窗口来进行认证,可能会导致时间窗口范围变大,并且变化的幅度比较大,从而导致认证次数增多,降低认证效率。此外,动态令牌随着时间的增加,与认证系统的服务器时间的误差有可能会超出时间窗口,从而导致认证失败。该可选实施例提供的认证方法将导致时间不一致的两种原因分别进行处理,从而解决动态口令的认证效率问题。

具体而言,修正口令接收时间,得到基础认证时间可以采用如下的步骤和公式:

步骤1,获取口令生成时间的参考位的数值B1、口令接收时间ST的参考位的数值B2、系统误差估值T1、实际时差估值T2、第一偏移窗口W1:认证系统获得动态令牌的动态口令P2进行认证时,会获得P2的预设位的数值作为口令生成时间的参考位的数值B1,并获取服务器(认证系统)的当前时间(也即口令接收时间ST)的参考位的数值B2。其中,T1和T2的初始值为0。并且,T1为正时表示动态令牌(OTPi)的时间比认证系统的服务器时间大T1分钟,且这种大的趋势会加大,T1为负时表示表示动态令牌(OTPi)的时间比认证系统的服务器时间小T1分钟,且这种小的趋势会加大,T2只能为正,表示输入动态口令的操作时间加上网络传输的时间延迟为T2分钟。

步骤2,计算第一偏移量OTPi_W1并判断第一偏移量OTPi_W1是否超出第一偏移窗口W1:如果T1为负,则OTPi_W1=(B2+T1-B1+10-T2)%10,如果T1为正,则OTPi_W1=(B1+10-B2+T1-T2)%10,如果T1为0,则OTPi_W1=MIN{(B1+10-B2-T2)%10,(B2-B1+10-T2)%10},其中,如果判断出OTPi_W1>W1,则认证失败。其中,第一偏移量OTPi_W1是硬件时间偏移量,W1是硬件偏移时间窗口。其中,“%”为求余数的操作,MIN{A,B}表示取A和B的最小值。

步骤3,如果判断出OTPi_W1≤W1,则更新T1:

如果T1为负,则T1=(T1*N-OTPi_W1)/(N+1),其中,N为认证次数,N的初始值为0,如果T1不为负,则T1=(T1*N+OTPi_W1)/(N+1)。

步骤4,修正口令接收时间ST,得到基础认证时间T:T=ST+T1。

在按照上述步骤得到基础认证时间之后,可以根据基础认证时间按照预设口令生成算法生成认证口令。判断认证口令除预设位之外的其它位是否与动态口令相同;如果判断结果为是,则认证成功;如果判断结果为否,则在基础认证时间的基础上按照预设时间间隔增加或减少第二偏移量直至认证成功或第二偏移量超出预设的第二偏移窗口。

在认证系统进行认证之前,先设置第二偏移窗口W2,W2为操作偏移时间窗口。在认证成功之后,还可以通过下面的步骤更新实际时差估值T2:确定认证成功时的第二偏移量OTPi_W2,其中,第二偏移量OTPi_W2为本次操作偏移时间,然后通过如下公式更新T2:T2=(T2*N+OTPi_W2)/(N+1);将认证次数N加1。

例如,使用确定的基础认证时间T和认证系统中保存的种子密钥计算出认证口令P3,将P3的预设位的数值替换为P2的预设位的数值,得到口令P4,如果P4=P2,则表示认证成功,否则,从操作时间窗口W2中以此选取一个偏移量W2i,然后使用T+W2i作为认证时间按照上面的方法计算动态口令进行认证,比如W2=5,则偏移量W2i可以依次取值1,-1,2,-2,3,-3,4,-4,5,-5,如果认证成功,则将认证成功时的偏移量W2i作为本次操作偏移时间OTPi_W2,OTPi_W2=T2+W2i,通过下面的公式更新认证系统中存储的T2:T2=(T2*N+OTPi_W2)/(N+1),同时认证次数N加1。如果偏移量W2i取所有值都不相同则认证失败。

该实施例通过将导致时间不一致的两种原因分别进行处理,能够减少动态口令计算次数,从而提高认证效率。

本申请还提供了一种存储介质的实施例,该实施例的存储介质用于存储程序,其中,程序在被处理器执行时控制存储介质所在设备执行本发明实施例的动态口令生成方法。

本申请还提供了一种动态口令认证装置的实施例。需要说明的是,该装置包含于认证系统中。

图2是根据本发明实施例的一种可选的动态口令认证装置的示意图,如图2所示,该装置包括获取单元10,确定单元20,修正单元30和认证单元40。

获取单元用于获取动态令牌的动态口令,其中,动态令牌用于按照预设口令生成算法根据口令生成时间生成初始口令,并将初始口令的预设位的数值替换为口令生成时间的参考位的数值以得到动态口令;确定单元用于根据动态口令确定口令生成时间的参考位的数值;修正单元用于根据口令生成时间的参考位的数值修正口令接收时间,得到基础认证时间;认证单元用于将基础认证时间作为初值认证动态口令

该实施例通过解析包含动态令牌生成动态口令的时间的参考位的口令,以根据口令生成时间的参考位修正口令接收时间得到基础认证时间,解决了相关技术中动态口令的认证方法效率较低的技术问题,进而达到更有效率地认证动态口令的技术效果。

本申请还提供了一种动态口令生成方法的实施例。需要说明的是,该方法应用于动态令牌。

图3是根据本发明实施例的一种可选的动态口令生成方法的流程图,如图3所示,该方法包括如下步骤:

步骤S301,按照预设口令生成算法根据动态令牌的当前时间生成初始口令;

步骤S302,将初始口令的预设位的数值替换为口令生成时间的参考位的数值,得到动态口令,其中,动态口令用于发送至认证系统以使认证系统根据动态口令进行认证,可选地,参考位为分钟位。

该实施例通过在生成动态口令时,根据口令生成时间的参考位的数值修改按照预设口令生成算法生成的初始口令,使得认证系统在认证时多了参考的数值,可以根据口令生成时间的参考位的数值修正基础认证时间,解决了相关技术中动态口令的认证方法效率较低的技术问题,进而达到更有效率地认证动态口令的技术效果。

可选地,按照预设口令生成算法根据动态令牌的当前时间生成初始口令包括:按照预设口令生成算法根据动态令牌的当前时间和存储在动态令牌中的密钥生成初始口令。

本申请还提供了一种动态口令生成装置的实施例。需要说明的是,该装置包含于动态令牌中。

图4是根据本发明实施例的一种可选的动态口令生成装置的示意图,如图4所示,该装置包括生成单元50和替换单元60。

生成单元用于按照预设口令生成算法根据动态令牌的当前时间生成初始口令;替换单元用于将初始口令的预设位的数值替换为口令生成时间的参考位的数值,得到动态口令,其中,动态口令用于发送至认证系统以使认证系统根据动态口令进行认证

上述本申请实施例的顺序不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。

需要说明的是,在附图的流程图虽然示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

上述的装置可以包括处理器和存储器,上述单元均可以作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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