相对同步认证方法、同步参数更新方法、认证系统及装置的利记博彩app

文档序号:7923389阅读:256来源:国知局
专利名称:相对同步认证方法、同步参数更新方法、认证系统及装置的利记博彩app
技术领域
本发明涉及动态量同步,更确切地说涉及基于时钟漂移的时间同步认证技术以及基于该技术的认证系统、装置。
背景技术
动态口令技术以其卓越的防重放特点,已经提出,就很快被应用到身份认证领域。动态口令技术通过让用户密码按照挑战或时间或事件不断变化来防止消息重放攻击。基于动态口令的认证技术有:基于挑战/应答的异步认证技术,基于时间的同步认证技术,基于事件的同步认证技术。基于动态口令技术的动态令牌,内置电源、存储动态口令根密钥的存储单元、动态口令生成单元、显示装置,以及一个密码生成驱动装置。所述驱动装置一般地是一个按钮,用户按压按钮时,动态口令生成单元根据获得的挑战(该挑战一般是服务器产生的一个随机数)或时间或事件次数,结合动态口令根密钥生成当前密码,通过显示装置显示出来。用于认证的服务器采用相应的算法,根据事先发送的挑战或获得的时间或事件次数,结合对应保存的动态口令根密钥可以判断出动态令牌产生的当前密码是否有效,因此,用户通过输入动态令牌显示的当前密码即可实现身份确认。由于所述当前密码根据所述挑战或时间或事件而动态变化,因此,可以保证用户每次使用的密码不同,从而实现防重放攻击。基于异步认证技术的异步令牌还应包括挑战输入装置,基于时间同步认证技术的时间令牌还应包括时钟系统,基于事件同步认证技术的事件令牌还应包括存储事件次数的存储单兀。基于异步令牌的异步认证技术由于是双向的,耗时较长(例如通过短消息开启门禁系统),以及异步令牌需要输入挑战等,用户接受度较低,因此,目前使用较为广泛的动态令牌多为时间令牌或事件令牌。时间令牌和事件令牌都要求与服务器保持同步,否则,产生的动态密码将被服务器视为无效。但是,由于时钟脉冲的不确定性偏移的客观存在会导致时钟时间的漂移,导致时间令牌的时钟与服务器的时钟不再同步,从而使时间令牌无效;同样,由于用户无意思地按下令牌按钮而产生口令,使事件令牌的事件次数不再与服务器保存的事件次数同步,从而使事件令牌无效。目前针对时间同步和事件同步的方法很多,大多是通过让服务器干粗活的方式,一个一个地尝试匹配可能的时间值或事件值,从而发现时间令牌的真实时间或事件令牌的真实事件次数,例如编号为US_4885778的专利揭示的一种时间同步和具体验证用户的方法。这种方式无疑大大节省了攻击者攻击服务器的成本。还有一种通过向服务器传送一个时间偏移量来完成具有有限时钟漂移的认证,例如编号为US_5887065的专利揭示的一种具有时间同步的用户认证系统,这种认证方法需要每次认证时向服务器传送时间偏移量,从而增加用户输入;另外,还由于其所支持的时钟漂移范围所限(因为所述范围设置的太大会因增加口令的有效期,即预期寿命,从而降低系统安全),在时间漂移出了设置的范围后,时间令牌也将被报废,例如用户隔了很久才登录一次服务器。

发明内容
有鉴于此,本发明提供了一种相对同步认证方法,通过该方法解决了时间令牌的时钟漂移所带来的时间令牌与服务器时间不一致问题,增强了基于时间的同步认证系统的健壮性。一种相对同步认证方法,其特征在于,在终端保存第一密钥K1,在服务器中保存配对的第二密钥K2 ;在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk ;月艮务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法包括以下步骤:A、终端根据TClk获取第一时间Tl,根据Kl与Tl进行计算,得到登录编码LogTMC,将LogTMC发送给服务器;B、服务器收到LogTMC后,根据对应的VClk得到Tl的估值Tle ;C、服务器根据K2与Tle对接收的LogTMC进行一致性验证,如果一致,则对该终端验证通过;否则,认为该终端非法。LogTMC是基于登录参考步长LogRSL计算得到的;在步骤A中,所述根据Kl与Tl进行计算是指,先得到Tl (LogRSL).RTRP,而后根据Tl (LogRSL).RTRP与Kl进行计算;在步骤C中,所述服务器根据K2与Tle对接收的LogTMC进行一致性验证是指,得到Tie (LogRSL).RTRP,根据Tie (LogRSL).RTRP与K2进行计算,判断计算结果与LogTMC是否一致;或者,在步骤A中,进一步得到Tl(LogRSL).LODdf LogTMC发送给服务器时,进一步发送Tl (LogRSL).L0D,在步骤B中,根据对应的VClk得到Tl的估值Tle时,进一步根据Tl(LogRSL).LOD 进行。在终端进一步保存第一同步密钥SynKl,在服务器中进一步保存配对的第二同步密钥SynK2 ;所述方法基于同步参考步长SynRSL ;所述方法进一步包括以下步骤:D、终端根据TClk获取同步时间Ts ;得到Ts (SynRSL).LOD ;根据SynKl生成同步编码 SynTMC,将 SynTMC 和 Ts (SynRSL).LOD 发送给服务器;E、服务器收到SynTMC和Ts (SynRSL).LOD后,根据SvrClk得到第二时间T2 ;根据Ts (SynRSL).LOD 得到 Ts 的估值 Tse ;F、服务器根据SynK2与Tse对SynTMC进行一致性验证,如果一致,则执行步骤G ;否则,结束流程;G、根据Tse、T2,对所述映射关系进行修改。本发明还提出同步参数更新方法,通过所述同步参数更新方法,使得服务器中针对某终端设置的VClk在偏离该终端的TClk时,能够对该VClk进行更新,使该VClk重新与该TClk保持同步。一种同步参数更新方法,其特征在于,在终端保存第一同步密钥SynKl,在服务器中保存配对的第二同步密钥SynK2 ;在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk ;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法基于同步参考步长SynRSL ;所述方法包括以下步骤:
A、终端根据TClk获取同步时间Ts ;得到Ts (SynRSL).LOD ;根据SynKl生成同步编码 SynTMC,将 SynTMC 和 Ts (SynRSL).LOD 发送给服务器;B、服务器收到SynTMC和Ts (SynRSL).LOD后,根据SvrClk得到第二时间T2 ;根据Ts (SynRSL).LOD 得到 Ts 的估值 Tse ;C、服务器根据SynK2与Tse对SynTMC进行一致性验证,如果一致,则执行步骤D ;否则,结束流程;D、根据Tse、T2,对所述映射关系进行修改。所述映射关系为Y = f (X) = aXX+b,所述a与b为同步参数;服务器进一步针对对应终端保存最后一次终端侧同步时间TLST与最后一次服务器侧同步时间SvrLST ;在步骤D中,所述根据Tse、T2,对所述映射关系进行修改是指:根据Tse、T2,以及TLST与SvrLST,对所述映射关系中相关同步参数a或b进行修改;步骤D还将TLST更新为Tse、将 SvrLST 更新为 T2。服务器进一步产生密码相关信息,并根据该密码相关信息进行同步验证,具体是指:步骤A进一步将终端相关信息发送给服务器;在步骤D之前,服务器产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧,并等待含有密码的回复;服务器判断在指定的时间内,是否收到正确的密码回复,如果收到,则执行D,否则,结束流程;或者,在步骤A之前,进一步将终端相关信息发送给服务器,服务器产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧;所述将SynTMC和Ts(SynRSL).LOD发送给服务器进一步是:使用用户侧根据接收的密码相关信息得到的密码加密Ts (SynRSL).LOD得到密文,将该密文和SynTMC发送给服务器,相应地,步骤B进一步是:服务器收到发来的密文和SynTMC后,解密该密文,恢复出Ts (SynRSL).LOD ;根据SvrClk获取第二时间T2,并根据Ts (SynRSL).LOD得到Ts的估值Tse ;或者,在步骤A之前,进一步将终端相关信息发送给服务器,服务器产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧;所述将SynTMC和Ts(SynRSL).LOD发送给服务器进一步是:将用户侧根据接收的密码相关信息得到的密码、SynTMC和Ts (SynRSL).LOD发送给服务器,相应地,在步骤B中,服务器进一步接收用户侧得到的密码,并判断接收的密码是否正确,如果正确,则执行后续相关操作,否则,结束流程。一种同步参数更新方法,其特征在于,在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk ;设置或约定同步参考步长SynRSL ;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法包括以下步骤:A、将终端相关信息发送给服务器;B、服务器收到所述终端相关信息后,产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧;C、终端根据TClk获取同步时间Ts ;得到Ts (SynRSL).LOD ;使用用户侧根据接收的密码相关信息得到的密码与Ts(SynRSL).LOD计算,产生密文,将所述密文与Ts (SynRSL).LOD发送给服务器;D、服务器收到所述密文和Ts(SynRSL).LOD后,根据所述产生的密码相关信息所对应的密码与Ts (SynRSL).LOD对接收的密文进行一致性验证,如果一致,则根据SvrClk获取第二时间T2,并根据Ts (SynRSL).LOD得到Ts的估值Tse,根据Tse、T2,对所述映射关系进行修改;否则,结束流程。本发明还提出一种基于动态令牌的认证系统,在该系统中,服务器通过分别响应登录请求和同步请求,在满足正常登录操作的同时,还能保证在动态令牌时钟发生漂移时,通过同步流程使得该动态令牌的时钟与服务器时钟保持相对一致。一种基于动态令牌的认证系统,其特征在于,包括:服务器、客户端;所述客户端用于接收用户登录请求或同步请求,并将相应请求提交给所述服务器;对于登录请求,所述客户端获取PIN码和动态令牌产生的登录口令(LogDPswd);将所述PIN码和LogDPswd发送给服务器;对于同步请求,所述客户端获取PIN码和动态令牌产生的同步口令(SynDPswd);将所述PIN码和SynDPswd发送给服务器;所述动态令牌用于产生LogDPswd和SynDPswd ;所述动态令牌中设置有TClk,所述动态令牌保存第一密钥Kl和第一同步密钥SynKl ;所述服务器设置有SvrClk ;所述服务器根据PIN码,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述服务器根据PIN码,保存配对的第二密钥K2和第二同步密钥SynK2,以及TLVT ;所述服务器和动态令牌还设置或约定登录参考步长LogRSL和同步参考步长SynRSL ;所述产生LogDPswd是指:动态令牌根据TClk获取第一时间Tl,基于LogRSL,根据Kl与Tl进行计算,得到LogDPswd ;所述产生SynDPswd是指:动态令牌根据TClk获取同步时间Ts,得到Ts (SynRSL).L0D,根据SynKl生成第一同步编码SynTMCl,将SynTMCl和Ts (SynRSL).LOD作为SynDPswd ;收到含有PIN码和LogDPswd的登录请求后,服务器针对所述PIN码,根据VCl k得到时间估值Tie,根据Tle和K2对LogDPswd进行一致性验证,如果一致,则将TLVT更新为 Tle ;收到含有PIN码和SynDPswd的同步请求后,服务器针对所述PIN码,根据SynDPswd中携带的Ts (SynRSL).LOD得到时间估值Tse,并在根据TLVT判断出Tse可接受时,根据Tse和SynK2对SynDPswd中的SynTMCl进行一致性验证,如果一致,则将TLVT更新为Tse,并根据Tse和SvrClk的时间T2对所述映射关系进行修改。本发明还提出一种动态令牌,该动态令牌不但能够产生登录口令,还能产生用于时间同步的同步口令。基于该动态令牌构建的认证系统,通过提供同步流程,将会变得更加健壮。一种动态令牌,其特征在于,包括:电源模块、时钟系统TClk、存储单元、动态口令生成单元,输入模块、输出模块;所述存储单元保存第一密钥Kl ;
在所述存储单元设置登录参考步长LogRSL和同步参考步长SynRSL,或约定LogRSL和 SynRSL ;动态口令生成单元用于生成LogDPswd和同步时间相关信息;所述生成LogDPswd是指:动态口令生成单元根据TClk获取第一时间Tl,基于LogRSL,根据Kl与Tl进行计算,得到LogDPswd ;所述生成同步时间相关信息是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts (SynRSL).LOD,将Ts (SynRSL).LOD作为同步时间相关信息;所述输入模块用于接收索取口令的指令,并将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据得到的待输出口令类型,生成LogDPswd或Ts(SynRSL).LOD,相应地通过输出模块输出生成的LogDPswd或Ts (SynRSL).L0D。所述动态口令生成单元生成同步时间相关信息进一步是生成同步口令SynDPswd ;所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据Kl与Ts进行计算,得到第一同步编码SynTMCl,将SynTMCl和Ts (SynRSL).LOD 作为 SynDPswd ;或者,所述存储单元还保存第一同步密钥SynKl,所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts (SynRSL).L0D,根据SynKl与Ts进行计算,得到第一同步编码 SynTMClJf SynTMCl 和 Ts (SynRSL).LOD 作为 SynDPswd ;所述生成Ts(SynRSL).L0D,以及相应地通过输出模块输出生成的Ts (SynRSL).L0D,进一步是生成SynDPswd,相应地通过输出模块输出生成的SynDPswd。本发明通过构建虚拟时钟系统,来达到终端(即时间令牌)时钟系统和服务器时钟系统的相对同步,从而保持终端和服务器基于时间变化的一致性。这样,不论时间令牌和服务器的时间偏差如何变化,都不影响认证的准确性和安全性,从而彻底解决了长期困扰时间令牌的时钟漂移问题,并为时间令牌的成本降低和环境适应性提高提供技术保障。另夕卜,令牌也不会因为生产时间久远而无法使用。一般地,登录口令的有效时间越短,登录过程中发生节外生枝(例如登录口令被劫持,而被转到攻击者的另外一台电脑终端中)的风险就会越低。由于本发明提供了有效的同步机制,使得对登录口令的有效时间可以根据应用的敏感性和安全性进行更加灵活的控制。


图1所示,为终端与服务器时间关系图。图2所示,为本发明认证实施方式流程图。图3至图5所示,分别为本发明认证实施方式的第二至第四实施例流程图。图6至图10所示,分别为本发明同步参数更新方法第一至第五实施例流程图。图11所示,为本发明基于动态令牌的认证系统组成图。图12所示,为本发明动态令牌模块组成图。图13所示,为单按钮和双按钮动态令牌的一种原型图。
具体实施例方式本发明通过基于时钟漂移,完成时间相对同步认证,从而增强认证系统的健壮性。本发明涉及的认证系统至少包括认证服务器和终端,其中,在终端中设置第一时钟系统(TClk, Terminal Clock),在服务器设置第二时钟系统(SvrClk, Server Clock)。现有的基于时间的同步认证技术,由于随着时间的推移,TClk相对于SvrClk可能发生漂移,也即失步,并在漂移积累到一定程度,使得服务器无法再依赖于SvrClk提供的时间对终端进行有效认证,从而导致诸如现有银行提供给客户的用于认证的时间令牌(常见的动态令牌或保安器)失效的情况发生。对于这种情况,现有认证技术,始终没有给于有效的解决。本发明通过基于SvrClk建立一个虚拟时钟系统(VClk, Virtual Clock),通过阶段性调整VClk的相关参数,使VClk尽量逼近TClk,从而保证TClk相对于VClk的漂移对所述认证不构成影响。如图1所示,为终端与服务器时间关系图。VClk的时间值Y是SvrClk的时间值X的函数,即Y = f (X)。这样,从VClk获得时间Y时,先从SvrClk获得时间X,然后根据映射关系,得到时间Y。例如,TClk是根据甲的脉搏来计时,S卩,TClk将脉搏跳动一次计为一秒。当甲的脉搏为每分钟72次时,TClk在实际每分钟时间里,记录了 72秒。这样,在构建VClk时,可以设置映射关系为Y = f(X) = aXX,其中,a = 1.2,这里a是同步参数。这样,在SvrClk时间是准确的情况下,VClk的时间就逼近了 TClk的时间。还例如,TClk是根据乙的脉搏来计时,乙的脉搏为每分钟60次,乙每年要爬几次山,每次爬一小时,爬山时,脉搏为每分钟80次,这样,TClk在乙每次爬山后比SvrClk快20分钟,那么,在构建VClk时,可以设置映射关系为Y = f(X) =X+b。这里,b也是同步参数,每次乙爬山后,将b的值增加20分钟从而保证VClk的时间逼近TClk的时间。通过本发明,虽然TClk与SvrClk的时差,例如三小时,可能已经远远超出了服务器可以忍受的时差范围,例如一分钟,但通过构建VClk,使VClk与TClk的时差在一分钟以内,从而可以保证服务器的认证操作得以有效进行。通过VClk为桥梁,实现了 TClk与SvrClk的一致性,即相对同步,从而,满足了服务器对时差的要求。如图2所示,为本发明认证实施方式流程图。在该实施方式中,在终端中设置TClk,在服务器设置SvrClk ;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y = f (X) = aXX+b ;在终端保存第一密钥K1,在服务器中针对对应终端保存配对的第二密钥K2。这里,a初始化值为l,b初始化值为0,也即,初始化时,Y = f(X) = X,此时,VClk直接是SvrClk,这样,从VClk得到时间T是指,直接从SvrClk得到该时间T。实际当中,服务器针对对应终端保存了同步参数a和b的值。上述关于映射关系的说明,后面实施方式或实施例中,不再赘述。所述在服务器中针对对应终端保存配对的第二密钥K2,可以是按照该终端相关信息保存配对的第二密钥K2。所述终端相关信息可以是终端的编号,也可以是与该终端建立关联关系的用户的个人识别码(PIN, Personal Identified Number)。后面不再赘述。首先在步骤11,终端根据TClk获取第一时间Tl,根据Kl与Tl进行计算,得到时间诱变的登录编码LogTMC,简称登录编码,将LogTMC通过登录消息发送给服务器。在将LogTMC发送给服务器时,可以进一步发送该终端相关信息,或者所述将LogTMC发送给服务器是通过服务器提供的一个会话页面来完成,该会话页面直接或间接的与该终端建立有对应关系,例如,该会话页面含有该终端相关信息,或服务器侧建立了该会话页面的标识与该终端相关信息的对应关系。后面不再就这种情况赘述。这里,根据Kl与Tl进行计算时,可以采用成熟的Hash算法,例如摘要算法。有关摘要算法可以参见《应用密码学》一书或相关的算法论文或报告。由于是公知技术,后面类似的相关计算不再赘述。步骤12,服务器收到LogTMC后,根据对应的VClk得到Tl的估值Tie。这里,服务器先根据SvrClk获取第二时间T2,而后根据设置的映射关系,得到第三时间 T3,即,T3 = f (T2) = aXT2+b,将 T3 作为 Tie。步骤13,服务器根据K2与Tle对接收的LogTMC进行一致性验证。在步骤13中,所述一致性验证是:服务器根据K2与Tle进行相应的计算,判断计算结果与LogTMC是否一致,例如是否相等。如果一致,则对该终端验证通过;否则,认为该终端非法。在认证实施方式中,服务器还可以进一步针对对应终端保存最后一次验证时间(TLVT, Terminal Last verification Time),用于在步骤 12 中根据对应的 TLVT 判断 Tie是否可接受,例如,判断Tle与对应的TLVT的差是否大于某一特定值,例如60秒,如果是,则执行后续流程;否则,说明认证请求频繁,结束流程。所述TLVT也可以用于后续的同步流程中,根据对应的TLVT判断对同步时间的估值Tse是否可接受,以防止重放消息。在步骤13中对所述终端验证通过后,将对应的TLVT的值更新为Tie。由于Tie与Tl并不一定相等,因此,作为认证实施方式的第一实施例,对于步骤13中,所述服务器根据K2与Tle对接收的LogTMC进行一致性验证是指:服务器判断Tle以及Tle 周围的有限个时间,例如(Tle-3)、(Tle_2)、(Tle-1), (Tle+1)、(Tle+2)、(Tle+3)等 6个时间中,是否存在一个时间Tx,使得服务器在根据Κ2与Tx进行相应的计算时,得到的结果与接收的LogTMC—致或相等。如果存在,则所述一致性验证通过,否则,不通过。例如根据Κ2与(Tle-2)进行相应计算的计算结果与接收的LogTMC相等。当从Tle周围选取的用于一致性验证的时间点很少时,所述一致性验证的成功率可能会降低;当从Tle周围选取的用于一致性验证的时间点很多时,会增加服务器计算量,从而降低认证系统的安全性。对此,本发明通过设置时间参考点(TRP,Time ReferencePoint),来减少上述计算量。设置TRP的方式有多种多样。为方便理解,这里提供的设置TRP的方式是:设置参考步长(RSL,Reference Step Length),当一个时间T是RSL的整数倍时,将该时间T作为基于RSL的TRP,记作T = TRP (RSL)。例如,3分钟=TRP (60秒)。设置了 TRP或设置了 RSL之后,任意一个时间,要么在一个TRP上,要么在两个相邻的TRP之间。为了方便描述,我们称在一个时间T的左边、与T相邻的TRP为T的左参考点(LTRP,Left TRP),称在T的右边,与T相邻的TRP为T的右参考点(RTRP,Right TRP)。当一个时间在一个TRP上时,该时间的LTRP为其自身。一个时间T的RTRP比T的LTRP晚一个RSL。例如,当2011年I月I日I时O分30秒和2011年I月I日I时I分O秒是两个相邻的TRP时,对于时间2011年I月I日I时O分33秒,该时间的LTRP为2011年I月I日I时O分30秒,该时间的RTRP为2011年I月I日I时I分O秒。
为便于理解,本发明中,以秒作为时间的基本单位,并用一个32bit长整型来表示一个时间的秒数值。后面不再赘述。所述RSL的值可以取任意值。为便于描述,本发明涉及的RSL取自然数。为方便描述,本发明将a和b中最小的一个写作min(a, b),将a和b中最大的一个写作 max (a, b);将 a < x < b 写作 x e (a, b),将 a < = x < = b 写作 x e [a, b];将 a< X < = b 写作 X e (a, b];将 a < = X < b 写作 x e [a, b)。为方便描述和后续的公式推导,本发明将对象A的属性B写作A.B。例如,基于RSL,时间T的LTRP写作T.LTRP,时间T的RTRP写作T.RTRP。对于一个时间T,基于不同的RSL,对应的T.LTRP或对应的T.RTRP等等可能不同,为了便于描述,本发明将基于RSL的时间T写作T(RSL)。例如,对于时间T,将基于RSL的T.LTRP 写作 T (RSL).LTRP,基于 RSL 的 T.RTRP 写作 T (RSL).RTRP,等等。计算T (RSL).LTRP时,可以用T与RSL进行模运算得到一个余数Remainder,则T与 Remainder 的差为 T (RSL).LTRP。即:T(RSL).LTRP = T- (T mod RSL)。对应地,T(RSL).RTRP = T(RSL).LTRP+RSL = RSL+T-(T mod RSL)T 与 T(RSL).LTRP 的距离为 T(RSL)的左偏距(L0D,Left Offset Distance) ;T 与T (RSL).RTRP 的距离为 T(RSL)的右偏距(ROD,right offset distance)。T (RSL).LOD 和T (RSL).ROD的计算公式如下:T (RSL).LOD = T-T (RSL).LTRP = (T mod RSL)T(RSL).ROD = T(RSL).RTRP-T = RSL-(T mod RSL) = RSL-T(RSL).LOD为便于描述,对于时间Tl和T2,当Tl(RSL).LOD = T2 (RSL).LOD时,称Tl为T2 (RSL)的一个同余点,称T2为Tl (RSL)的一个同余点。T(RSL)的上一个同余点(LCP,Last Congruence Point)比 T 少一个 RSL ;T (RSL)的下一个同余点(NCP, Next Congruence Point)比 T 多一个 RSL,即:T (RSL).LCP = T-RSL,T (RSL).NCP = T+RSL为方便后续描述,将RSL = O表示为RSL是一个很大的数,例如,10的p次方,p为10的100次方,或RSL表示任意大,并且,对于一个时间T,本发明约定T(0).LOD = T。如图3所示,为本发明认证实施方式的第二实施例流程图。在该实施例中,在终端中设置TClk,在服务器设置SvrClk ;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y = f (X) = aXX+b ;在终端保存K1,在服务器中针对对应终端保存配对的K2 ;在该实施例中,设置登录参考步长LogRSL。首先在步骤1201,终端根据TClk获取第一时间Tl ;得到Tl (LogRSL).RTRP ;根据Kl与Tl (LogRSL).RTRP进行计算,得到登录编码LogTMC,将LogTMC发送给服务器。步骤1202,服务器收到LogTMC后,根据VClk得到Tl的估值Tie,得到Tle(LogRSL).RTRP。这里,服务器先根据SvrClk获取第二时间T2,而后根据设置的映射关系,得到T3,即,T3 = f (T2) = aXT2+b,将 T3 作为 Tie。步骤1203,服务器根据K2与Tie (LogRSL).RTRP对接收的LogTMC进行一致性验证。在步骤1203中,所述一致性验证是:服务器根据K2与Tie (LogRSL).RTRP进行相应的计算,判断计算结果与接收的LogTMC是否一致,例如是否相等。如果一致,则对该终端验证通过;否则,认为该终端非法。当Tl等于Tle时:对于合法终端,在步骤1203中,所述一致性验证能够通过。当Tl不等于Tle时:在Tl与Tle之间,除min (Tl,Tie)后,没有TRP时,则合法终端产生的LogTMC能够通过服务器的验证;如果在Tl与Tle之间除min (Tl, Tie)后,还存在至少一个TRP时,则终端产生的LogTMC无法通过服务器的验证。按照第二实施例,服务器在保证接收的LogTMC的时效性的同时,不会因为设置的LogRSL的变化而影响到计算量的变化,因而,增加LogRSL的值不会增加攻击服务器的成功率。在该实施例中,服务器还可以进一步针对对应终端保存TLVT ;在步骤1203中对所述终端验证通过后,相应地将对应的TLVT的值更新为Tie。本发明将TClk相对于VClk的时差称为终端虚拟偏差(TCVD,Terminal ClockVirtual Deviation)。当 TCVD 大于 O 时,表不 TClk 比 VClk 快;当 TCVD 等于 O 时,表不 TClk与VClk同步;当TCVD小于O时,表示TClk比VClk慢。如果考虑TCVD因素,允许的TCVD在虚拟偏差左限(LLTCVD,Left Limit of TCVD)和虚拟偏差右限(RLTCVD,Right Limit of TCVD)之间,S卩,TCVD e (LLTCVD,RLTCVD),则,较佳地,设置的LogRSL满足LogRSL > (RLTCVD-LLTCVD)。相应地,在第二实施例的步骤1202中,计算Tle时,因变量进一步加上RLTCVD,即:Tie = T3 = f (T2) +RLTCVD = a X T2+b+RLTCVD实际当中,所述终端根据TClk获取Tl的操作比所述服务器根据SvrClk获取T2的操作有一个时间提前量(TIA,Time InAdvance)。如果考虑TIA因素,允许的TIA在提前量左限(LLTIA,Left Limit of TIA)与提前量右限(RLTIA,Right Limit of TIA)之间,也即,TIA e (LLTIA, RLTIA),则,较佳地,设置的 LogRSL 满足 LogRSL > aX (RLTIA-LLTIA)。相应地,在第二实施例的步骤1202中,计算Tle时,自变量进一步减去LLTIA,即:Tie = T3 = f (T2-LLTIA) = aX (T2-LLTIA) +b这里,将SvrClk的时间作为基准时间。如果同时考虑TCVD因素与TIA因素,则,较佳地,设置的LogRSL满足LogRSL >(RLTCVD-LLTCVD+aX (RLTIA-LLTIA))。相应地,在第二实施例的步骤1202中,计算Tle时,进一步将因变量加上RLTCVD,将自变量减去LLTIA,即:Tie = T3 = f (T2-LLTIA) +RLTCVD = aX (T2-LLTIA) +b+RLTCVD根据第二实施例,终端产生LogTMC,只有在特定的时间内被服务器收到后,才能被认定为合法。为方便描述,这里称该特定时间为LogTMC的预期寿命。根据第二实施例,如果Tl与Tle不相等,那么,只有当二者位于相邻的两个TRP之间,且max(Tl,T2)不是TRP时,终端产生的LogTMC才能够通过服务器的验证。因此,终端产生的LogTMC的预期寿命会因为Tl (LogRSL).LOD的增加而减少。终端在不同时刻产生的LogTMC的预期寿命不同,会影响到用户体验。针对这种情况,本发明先介绍一种时间传送方法:基于设置的参考步长RSL,对于时间T,通过传送T(RSL).L0D,来达到传递T的目的。具体请参见申请号为201110114688.2的《相对同步认证方法、认证系统及装置》的发明专利,这里仅简单摘述,以便于技术人员阅读本发明。
例如,模块A向模块B传送时间的方法之一:预先设置参考步长RSL。这里,不考虑TIA因素,并且默认AClk和BClk完全同步。首先,在模块A设置时钟系统AClk,在模块B设置时钟系统BClk ;模块A根据AClk得到时间Ta,将计算得到的Ta(RSL).LOD发送给模块B ;模块B收到Ta(RSL).LOD后,根据BClk得到时间Tb ;模块B由Tb和Ta(RSL).LOD确定Ta的估值Tae0这里,模块B采用左同余定位方式来确定Tae,即,在Tb的左侧,寻找一个距离Tb最近的Ta(RSL)的同余点。该同余点即为Tae。根据左同余定位方式得到:Tae= Tb-((Tb-Ta (RSL).LOD)mod RSL)对于左同余定位方式,当(Tb-Ta) e [O, RSL)时,Tae等于Ta,这样就达到了模块A向模块B传送时间信息的目的;否则,Tae与Ta不是同一个时间。这样,对于任意的Ta,模块B获得的Tb只要满足(Tb-Ta) e
由于同步编码的预期寿命等于SynRSL,一般很长,例如SynRSL为300小时,因此,上述时间同步流程,也即,参数更新流程的安全风险就随之增加。例如,攻击者截获客户同步消息,干扰该操作,使同步操作不成功,待客户第二次输入同步消息,截获第二次的同步消息后,将第一次同步消息发送给服务器;并向客户返回执行成功消息,等客户输入登录消息,截获该登录消息,并干扰使客户无法执行;同时将截获的第二次的同步消息和截获的登录消息发送给远端电脑,攻击者通过远端电脑就可以很从容地将第二次同步口令发送给服务器,待同步流程执行成功后,通过截获的登录口令就可以成功登入服务器,将合法客户的钱转走。上述攻击过程虽然有一定的技术难度,并且需要客户配合,但毕竟是一种安全风险。为此,本发明还提出进一步根据第二认证途径对上述同步参数更新方法第一实施例流程的安全性进行加强。如图7所示,为本发明同步参数更新方法第二实施例流程图。在该实施例中,服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y = f (X) = aXX+b ;服务器还可以针对对应终端保存TLST和SvrLST ;在终端保存SynKl,在服务器中针对对应终端保存配对的SynK2。首先在步骤2201,终端根据TClk获取同步时间Ts ;得到Ts (SynRSL).LOD ;根据SynKl与Ts进行计算,得到同步编码SynTMC,将终端相关信息、SynTMC和Ts (SynRSL).LOD发送给服务器。所述终端相关信息可以是终端的编号,也可以是与该终端建立关联关系的PIN码,或与该终端建立关联关系的会话标识。步骤2202,服务器收到所述终端相关信息、SynTMC和Ts (SynRSL).LOD后,根据SvrClk获取第二时间T2,并根据Ts (SynRSL).LOD得到Ts的估值Tse。关于如何得到Ts的估值Tse,参见步骤2102,这里不再赘述。步骤2203,服务器根据SynK2与Tse对SynTMC进行一致性验证,如果一致,则执行步骤2204;否则,结束流程。所述一致性验证是:服务器根据SynK2与Tse进行相应的计算,判断计算结果与接收的SynTMC是否一致,例如是否相等。如果一致,则对该终端验证通过,否则,认为该终端非法。步骤2204,服务器产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧,以便用户侧得到相应的密码,并等待含有密码的回复。例如,将用户侧得到的密码发送给服务器,作为对服务器的回复。所述密码相关信息直接是密码。这种情况下,服务器还针对对应终端保存通信地址信息;所述根据所述终端相关信息将该密码相关信息发送给用户侧是指,根据所述终端相关信息得到对应的通信地址信息,根据所述通信地址信息发送该密码。用户侧直接得到该密码。所述密码相关信息是口令卡上的密码坐标,根据密码坐标,从口令卡可以得到对应的密码。这种情况下,服务器还针对对应终端保存口令卡信息;所述根据所述终端相关信息将该密码相关信息发送给用户侧可以是通过所述终端相关信息相应的会话页面将该密码坐标发送给用户侧的电脑终端;也可以是,服务器针对对应终端保存通信地址信息,根据所述终端相关信息得到对应的通信地址信息,根据所述通信地址信息发送该密码坐标。用户侧根据密码坐标,从口令卡得到对应的密码。所述通信地址信息可以是电话号码,所述根据通信地址信息发送密码是将该电话号码作为目的电话号码来发送短消息,该短消息中携带所述密码;所述通信地址信息可以是email地址,所述根据通信地址信息发送密码是将该email地址作为目的email地址来发送邮件,该邮件中携带所述密码;所述通信地址信息可以是QQ号码,所述根据通信地址信息发送密码是将该QQ号码作为目的QQ号码来发送即时通讯消息,该即时通讯消息中携带所述密码。步骤2205,服务器判断在指定的时间内,是否收到正确的密码回复,如果是,则同步验证通过,则执行更新操作;否则,同步验证失败,结束流程。所述更新操作包括:对所述映射关系进行修改,并将TLST更新为TseJf SvrLST更新为T2。所述正确的密码是指所述产生的密码相关信息所对应的密码,例如,密码相关信息是密码本身,则所述对应的密码为该密码;密码相关信息是口令卡上的密码坐标,则所述对应的密码为该密码坐标标示的密码。关于如何对所述映射关系进行修改,参见步骤2103,这里不再赘述。服务器收到含有密码的回复后,如果判断回复的密码与所产生的密码不一致,不认为同步验证通过。服务器在指定的时间,例如60秒内没有收到正确的密码回复时,结束流程,这样,可以防止同步消息被截获、干扰,并挪用,从而,使得同步参数更新流程更加安全。服务器可以针对对应终端保存通信终端的通信地址信息,所述等待含有密码的回复,可以是等待源自所述通信地址信息的回复。例如,该通信地址为一电话号码,服务器在将所述密码按照该电话号码通过短消息发送给对应通信终端后,由该通信终端返回服务器一个短消息,短消息中包含了该密码。服务器接收短消息时,根据主叫号码可以得到该密码所对应的终端。所述等待含有密码的回复,可以是等等一个含有密码和密码标识的回复,所述将该密码相关信息发送给用户侧还包括发送对应的密码标识。例如,该通信地址为一电话号码,服务器将所述密码和对应的密码标识按照该电话号码通过短消息发送给对应通信终端,用户通过该通信终端接收到所述密码和对应的密码标识后,可以以任意一种方式,例如通过email方式,将所述密码和对应的密码标识发送给服务器,服务器收到所述密码和对应的密码标识后,根据该密码标识可以得到该密码所对应的终端。这里,服务器可以临时产生的一个序列号作为所述密码标识,服务器进一步建立该序列号与对应终端的对应关系;服务器也可以将对应终端的相关信息作为所述密码标识。所述等待含有密码的回复,可以是通过一个会话等待回复,所述会话针对对应终端建立,例如建立会话ID与该终端的对应关系,或者在会话属性中包括该终端的相关信息。例如,服务器收到用户发起的时间同步请求后,提供一个时间同步网页,用户通过该网页输入在步骤2201中由终端产生的SynTMC和Ts (SynRSL).LOD ;服务器在执行步骤2204时,还提供一个用于密码回复的网页,用户通过该网页输入用户侧得到的密码。服务器收到该密码后,可以得到该密码所对应的终端。所述时间同步请求可以包括对应终端的相关信息,参见步骤2201。
关于通信地址信息的描述,参见步骤2204,这里不再赘述。在步骤2204中,服务器在根据所述终端相关信息将该密码相关信息发送给用户侧时,还可以进一步发送在步骤2202中接收的SynTMC或Ts (SynRSL).L0D,以便用户收到这些信息后进行确认。在该施例中,服务器还可以进一步针对对应终端保存TLVT,并在步骤2203之前,可以进一步根据对应的TLVT判断Tse是否可接受,例如,判断Tse是否大于TLVT,如果是,则执行步骤2203 ;否则,结束流程;在步骤2203中对所述终端验证通过后,或者是在步骤2205中同步验证通过后,将对应的TLVT的值更新为Tse。服务器将产生的密码相关信息发送给用户侧的操作也可以在步骤2201之前执行。如图8所示,为本发明同步参数更新方法第三实施例流程图。在该实施例中,服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y = f (X) = aXX+b ;服务器还可以针对对应终端保存TLST和SvrLST ;在终端保存SynKl,在服务器中针对对应终端保存配对的SynK2。首先在步骤2301,将终端相关信息发送给服务器。所述终端相关信息可以是终端的编号,也可以是与该终端建立关联关系的PIN码,或与该终端建立关联关系的会话标识。步骤2302,服务器收到所述终端相关信息后,产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧,以便用户侧得到相应的密码。关于服务器如何根据所述终端相关信息将产生的密码相关信息发送给用户侧,以及用户侧如何得到相应的密码的描述,参见步骤2204,这里不再赘述。步骤2303,相应的终端根据TClk获取同步时间Ts ;得到Ts (SynRSL).LOD ;根据SynKl与Ts进行计算,得到同步编码SynTMC。步骤2304,根据用户侧得到的密码加密Ts (SynRSL).L0D,得到密文,将该密文和SynTMC发送给服务器。这里,在将该密文和SynTMC发送给服务器时,还将所述终端相关信息发送给服务器。步骤2305,服务器收到发来的密文和SynTMC后,用所述产生的密码相关信息所对应的密码解密该密文,恢复出Ts (SynRSL).LOD ;根据SvrClk获取第二时间T2,并根据Ts (SynRSL).LOD 得到 Ts 的估值 Tse。关于如何得到Ts的估值Tse,参见步骤2102,这里不再赘述。步骤2306,服务器根据SynK2与Tse对SynTMC进行一致性验证,并在验证通过时,执行更新操作。所述更新操作包括:对所述映射关系进行修改、将TLST更新为Tse、将SvrLST更新为T2。在步骤2306中,所述一致性验证是:服务器根据SynK2与Tse进行相应的计算,判断计算结果与接收的SynTMC是否一致,例如是否相等。如果一致,则对该终端验证通过,并且,同步验证通过;否则,认为同步验证失败。所述一致性验证失败时,结束流程。关于如何对所述映射关系进行修改,参见步骤2103,这里不再赘述。所述步骤2304也可以是将用户侧得到的密码、Ts (SynRSL).LOD和SynTMC发送给服务器;相应地,所述步骤2305是服务器判断接收的密码是否正确,即是否和所述产生的密码相关信息所对应的密码一致,如果是,则根据Ts (SynRSL).LOD得到Ts的估值Tse,并执行步骤2306,如果不是,则结束流程。在该施例中,服务器还可以进一步针对对应终端保存TLVT,并在步骤2306之前,进一步根据对应的TLVT判断Tse是否可接受,例如,判断Tse是否大于TLVT,如果是,则执行步骤2306 ;否则,结束流程。在步骤2306中对所述终端验证通过后,将对应的TLVT的值更新为Tse。同步参数更新方法第一至第三实施例通过向服务器发送基于同步密钥SynKl和终端时间的同步编码SynTMC,以及终端时间的相关信息,使服务器能够完成对接收信息的确认,从而实现对所述同步参数的更新。实际当中,也可以只向服务器传送终端时间的相关信息,服务器通过第二认证途径完成对接收的终端时间的相关信息的确认。如图9所示,为本发明同步参数更新方法第四实施例流程图。在该实施例中,服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y = f(X) = aXX+b ;服务器还针对对应终端保存TLST和SvrLST。首先在步骤2401,将终端相关信息发送给服务器。参见步骤2301。步骤2402,服务器收到所述终端相关信息后,产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧,以便用户侧得到相应的密码。参见步骤2302。步骤2403,相应的终端根据TClk获取同步时间Ts ;得到Ts (SynRSL).L0D。步骤2404,根据用户侧得到的密码与Ts (SynRSL).L0D,产生密文;将所述密文与Ts (SynRSL).LOD发送给服务器。一般地,该密文是一摘要信息,用于对Ts (SynRSL).LOD进行完整性验证。

例如,客户端接收用户输入的用户侧得到的密码和从终端得到的Ts (SynRSL).LOD计算,产生所述密文,将所述密文与Ts (SynRSL).LOD发送给服务器。还例如,在步骤2402中,服务器接收到作为所述终端相关信息的PIN码,并验证该PIN码有效后,服务器还进一步给相应用户的客户端发送一个会话页面,以便用户通过该会话页面输入得到的密文和Ts (SynRSL).LOD。这里,在将所述密文与Ts (SynRSL).LOD发送给服务器时,还将所述终端相关信息发送给服务器,例如以会话的方式。步骤2405,服务器收到所述密文和Ts (SynRSL).LOD后,根据所述产生的密码相关信息所对应的密码与Ts (SynRSL).LOD对收到的密文进行一致性验证,如果一致,则执行步骤2406 ;否则,结束流程。这里,所述一致性验证是:服务器根据所述产生的密码相关信息所对应的密码与Ts (SynRSL).LOD进行相应的计算,判断计算结果与接收的密文是否一致,例如是否相等。如果一致,则同步验证通过;否则,同步验证失败。步骤2406,服务器根据SvrClk获取第二时间T2,并根据Ts (SynRSL).LOD得到Ts的估值Tse,执行更新操作。所述更新操作包括:对所述映射关系进行修改,并将TLST更新为 Tse^f SvrLST 更新为 T2。关于如何得到Ts的估值Tse,参见步骤2102,关于如何对所述映射关系进行修改,参见步骤2103,这里不再赘述。
在该施例中,服务器还可以进一步针对对应终端保存TLVT,并在步骤2406中,进一步根据对应的TLVT判断Tse是否可接受,例如,判断Tse是否大于TLVT,如果是,则执行所述更新操作;否则,结束流程。所述更新操作还包括将对应的TLVT的值更新为Tse。在该实施例中,在终端没有保存SynKl,在服务器中也没有针对该终端保存配对的SynK2。对源自终端的同步请求的认证依赖于服务器产生的密码相关信息所对应的密码。在同步参数更新方法第四实施例中,服务器在根据所述终端相关信息将该密码相关信息发送给用户侧后,如果在指定时间内,例如60秒内收不到所述密文和Ts(SynRSL).LOD时,可以结束该次同步参数更新流程。这样,就保证了所产生的密码相关信息所对应的密码的时效性,防止攻击者在后期挪用截获的所述密文和Ts (SynRSL).L0D。下面以本发明同步参数更新方法应用于金融账户的终端时钟漂移的再同步为例进行说明,在金融领域,所述终端一般是动态令牌。如图10所示,为本发明同步参数更新方法第五实施例流程图。在该实施例中,服务器侧根据动态令牌编号将动态令牌和PIN码绑定;服务器侧针对对应动态令牌,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y = f (X)=aXX+b ;服务器还可以针对对应动态令牌保存TLVT、TLST和SvrLST ;在动态令牌保存SynKl,在服务器侧针对对应动态令牌保存配对的SynK2 ;在服务器侧针对对应动态令牌保存通信地址信息。关于通信地址信息的相关描述,参见步骤2204,这里不再赘述。首先在步骤2501,客户端获取PIN码,以及动态令牌根据保存的SynKl与TClk当前时间Ts进行计算产生的第一同步编码SynTMCl和Ts的相关信息Ts (SynRSL).LOD。例如,所述动态令牌设置有同步按钮。通过按压该同步按钮,指示动态令牌产生所述SynTMCl和时间相关信息。动态令牌得到所述指示后,根据TClk获取同步时间Ts ;得到Ts (SynRSL).LOD ;根据SynKl与Ts进行计算,得到同步编码SynTMCl。将所述SynTMCl和Ts (SynRSL).LOD 一次显示出来,或分两次分别显示出来。步骤2502,客户端将获取的PIN码、SynTMCl和Ts (SynRSL).LOD发送给服务器。步骤2503,服务器收到所述 PIN 码、SynTMCl 和 Ts (SynRSL).LOD 后,根据 SvrClk获取第二时间T2,并根据Ts (SynRSL).LOD得到Ts的估值Tse。这里,在计算Tse时,还可以结合所述PIN码对应的VClk来进行。例如,服务器根据该PIN码对应的映射关系得到第三时间T3,即:T3 = f(T2) = aXT2+b。而后根据T3和Ts(SynRSL).LOD 得到 Tse。具体参见步骤2102以及针对步骤2102的相关说明,这里不再赘述。步骤2504,服务器根据该PIN码对应的TLVT判断Tse是否可接受,如果可接受,则执行步骤2505 ;否则,结束流程。一般地,判断Tse是否可接受是指,判断Tse是否大于TLVT,如果是,则可接受,否贝U,不予接受。判断Tse是否可接受还可以是判断是否(Tse>TLVT且(Tse-TLST) > SynRSL (3).LTRP),如果是,则可接受,否则,认为同步请求过于频繁,不予接受。步骤2505,服务器根据所述PIN码,获取相应的SynK2 ;根据SynK2与Tse对接收的SynTMCl进行一致性验证,如果一致,则执行步骤2506 ;否则,结束流程。
这里,所述一致性验证是:根据SynK2与Tse进行相应的计算,判断计算结果与接收的SynTMCl是否一致,例如是否相等。如果一致,则对所述客户端验证通过;否则,认为该客户端非法。 步骤2506,服务器根据所述PIN码得到对应的通信地址信息,产生密码,根据所述通信地址信息将该密码发送给用户侧,以便用户侧得到该密码,并等待含有密码的回复。例如,用户侧得到该密码后,输入客户端,由客户端将该密码发送给服务器,作为对服务器的回复。步骤2507,服务器判断在指定的时间内,是否收到正确的密码回复,如果收到,则同步验证通过,根据所述PIN码,执行更新操作;否则,结束流程。所述根据所述PIN码,执行更新操作是指:根据所述PIN码,对所述映射关系进行修改、以及将TLVT和TLST更新为Tse、将 SvrLST 更新为 T2。这里,根据所述PIN码,对所述映射关系进行修改是指:针对该PIN码,对同步参数a与b的值进行更新。具体参见步骤2103,这里不再赘述。上述相关实施例中,对应地设置登录参考步长LogRSL或同步参考步长SynRSL,也即终端和服务器约定了 LogRSL或SynRSL的值。实际当中,双方也可以不约定LogRSL或SynRSL,而是在将包括所述LogTMC或SynTMC消息发送给服务器时,同时发送对应的LogRSL或SynRSL的值,或该值的指示值,例如,终端和服务器约定:I表示32、2表示64、3表示128,等等,该指示值也可以是直接包含在LogTMC或SynTMC的末尾几个位中,服务器根据该指示值确定对应的值。当然,服务器也可以根据信息传送方式来选择相适应的登录参考步长LogRSL,例如,通过IP网传送,LogRSL取32,通过电信网短消息传送,LogRSL取64。从上述各实施方式或实施例可以看出,如果用步子作为计时器,即使TClk采用了兔子奔跑的速度,SvrClk采用了乌龟爬行的速度,通过合理设置或更新同步参数a和b而建立的VClk总能逼近对应的TClk,从而实现TClk与SvrClk的相对同步,使得认证流程得以有效进行。一种基于动态令牌的认证系统,包括服务器、客户端。所述客户端用于接收用户登录请求或同步请求,并将相应请求提交给所述服务器。对于登录请求,所述客户端获取PIN码和动态令牌产生的登录口令(LogDPswd);将所述PIN码和LogDPswd发送给服务器。对于同步请求,所述客户端获取PIN码和动态令牌产生的同步口令(SynDPswd);将所述PIN码和SynDPswd发送给服务器。一般地,用户通过动态令牌获取LogDPswd或SynDPswd,并将获取的LogDPswd或SynDPswd与对应的PIN码输入客户端,从而向服务器发起登录请求或同步请求。所述动态令牌用于产生LogDPswd和SynDPswd。所述动态令牌中设置有TClk,所述动态令牌保存第一密钥Kl和第一同步密钥SynKl。所述服务器设置有SvrClk ;所述服务器根据PIN码,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y = f(X) = aXX+b ;所述服务器根据PIN码,保存配对的第二密钥K2和第二同步密钥SynK2,以及TLVT、TLST、SvrLST。所述服务器和动态令牌还设置或约定登录参考步长LogRSL和同步参考步长SynRSL。例如,服务器和动态令牌可以事先约定LogRSL和SynRSL的值,例如,约定LogRSL为 60,约定 SynRSL 为 999999。如图11所示,为本发明基于动态令牌的认证系统组成图。所述动态令牌设置有输入装置和输出装置,通过所述输入装置接收索取LogDPswd或SynDPswd的指令;动态令牌根据接收的指令信息,产生LogDPswd或SynDPswd,并通过输出装置输出产生的LogDPswd或SynDPswd。所述输入装置一般是按钮装置。所述输出装置一般是显示装置,所述输出产生的LogDPswd或SynDPswd是显示LogDPswd 或 SynDPswd。所述产生LogDPswd是指:动态令牌根据TClk获取第一时间Tl,基于LogRSL,根据Kl与Tl进行计算,得到LogDPswd。动态令牌还将产生的LogDPswd输出出来。所述基于LogRSL,根据Kl与Tl进行计算,得到LogDPswd是按如下两种方式之一进行:方式一、动态令牌得到Tl (LogRSL).RTRP,根据Kl与Tl (LogRSL).RTRP进行计算得到第一登录编码 LogTMClJf LogTMCl 作为 LogDPswd ;方式二、动态令牌得到Tl (LogRSL).LOD ;根据Kl与Tl进行计算,得到LogTMCl,将LogTMCl 和 Tl (LogRSL).LOD 拼接在一起作为 LogDPswd。所述产生SynDPswd是指:动态令牌根据TClk获取同步时间Ts,得到Ts (SynRSL).LOD,根据SynKl与Ts进行计算,得到第一同步编码SynTMCl,将SynTMCl和Ts (SynRSL).LOD作为SynDPswd ;动态令牌还将产生的SynDPswd输出出来。动态令牌在输出SynDPswd时,可以将SynTMCl和Ts (SynRSL).LOD分别作为SynDPswd的第一部分和第二部分,一次输出出来,或分两次分别输出出来,例如,将SynTMCl和Ts (SynRSL).LOD拼接在一起输出,或者,输出SynTMCl后过5秒钟再输出Ts (SynRSL).LOD,或者,根据接收的索取SynDPswd的指令的次序,例如奇数次或偶数次,来分别输出SynTMCl和Ts (SynRSL).LOD,或者,分别设置用于索取SynTMCl和Ts (SynRSL).LOD按钮,通过不同按钮接收不同的指令信息来分别输出SynTMCl或Ts (SynRSL).LOD。动态令牌输出相关口令时,可以将相应的口令转换成10进制或16进制或32 (10至31可分别用A至U表示)进制形式输出出来。接收到客户端发送的包含PIN码和LogDPswd的登录请求后,服务器针对该PIN码,对LogDPswd进行一致性验证,如果一致,则将TLVT更新为所述Tl的估值Tie,并可以进一步执行启动服务的相关操作。当动态令牌按照方式一计算LogDPswd时,服务器针对所述PIN码,对LogDPswd进行一致性验证是指:根据该PIN码对应的VClk,按照步骤1202的方式,得到时间估值Tie,根据Tle和该PIN码对应的K2进行计算,判断计算结果与LogDPswd,也即LogDPswd中的LogTMCl是否一致,例如是否相等。具体参见步骤1203,这里不再赘述。当动态令牌按照方式二计算LogDPswd时,服务器针对所述PIN码,对LogDPswd进行一致性验证是指:根据该PIN码对应的VClk,按照步骤1302的方式,得到时间估值Tie,根据Tle和该PIN码对应的K2进行计算,判断计算结果与LogDPswd,也即LogDPswd中的LogTMCl是否一致,例如是否相等。具体参见步骤1303,这里不再赘述。接收到客户端发送的包含PIN码和SynDPswd的同步请求后,服务器针对所述PIN码,根据SynDPswd中携带的Ts (SynRSL).LOD得到时间估值Tse,并在根据TLVT判断出Tse可接受时,根据Tse和SynK2对SynDPswd中的SynTMCl进行一致性验证,如果一致,贝U针对所述PIN码执行更新操作。所述更新操作是:将TLVT和TLST更新为Tse,将SvrLST更新为SvrClk的时间T2,并根据Tse、T2以及保存的TLST和SvrLST对所述映射关系进行修改。关于如何得到Ts的估值Tse,参见步骤2102 ;关于如何对所述映射关系进行修改,参见步骤2103,这里不再赘述。关于如何根据Tse和SynK2对SynDPswd中的SynTMCl进行一致性验证,参见步骤2101至步骤2103,以及针对该实施例的关于所述SynKl可以是第一密钥Kl的相关描述,这里不再赘述。当针对所述PIN码,根据TLVT判断出Tse不可接受时,结束流程。无论是接收到客户登录请求,还是接收到客户同步请求,当相关一致性验证通不过时,都结束流程。一般地,LogDPswd、SynDPswd 中的 SynTMCl 为 6 至 8 位 10 进制数。当SynDPswd中的Ts (SynRSL).LOD为6位10进制数表示的秒数时,就可以保证TClk与SvrClk真实偏差在277小时(999999/3600)以内的情况下,对相应VClk进行有效的更新。参见步骤2102,这里不再赘述。可以看出,所述服务器通过分别响应登录请求和同步请求,既保证登录请求所述入的LogDPswd不会太长,又保证了在VClk与TClk偏差足够大时,也能够通过所述参数更新流程,使VClk与TClk重新同步,从而保证正常登录流程的有效进行。所述SynKl和所述Kl可以是同一密钥,相应的,所述SynK2和所述K2也是同一密钥。这种情况下,动态令牌产生SynTMCl和产生LogTMCl时,可以根据不同的算法来进行计算,或者,直接将LogDPswd作为SynTMCl。不难理解,所述服务器还可以进一步根据PIN码保存UsrPswd。对于登录请求,所述客户端在获取PIN码和LogDPswd时进一步获取UsrPswdl ;客户端在将所述LogDPswd发送给服务器时,先用UsrPswdl与LogDPswd进行运算,将得到的运算结果发送给服务器。例如,当动态令牌按照方式一计算LogDPswd时,所述将所述PIN码和LogDPswd发送给服务器是指:客户端根据UsrPswdl和LogDPswd进行计算得到MAC,将所述PIN码、MAC发送给服务器;服务器针对该PIN码,根据VClk得到时间估值Tie,根据Tie、K2以及UsrPswd对MAC进行一致性验证,如果一致,则启动服务,并将TLVT更新为Tle ;当动态令牌按照方式二计算LogDPswd时,所述将所述PIN码和LogDPswd发送给服务器是指:客户端根据UsrPswdl和LogDPswd进行计算,产生MAC,将所述PIN码、MAC,以及LogDPswd中的所述Tl (LogRSL).LOD发送给服务器;相应地,服务器针对该PIN码,进一步根据Tl (LogRSL).LOD计算Tie,根据K2、UsrPswd与Tle对接收的MAC进行一致性验证,如果一致,则启动服务,并将TLVT更新为Tie。具体参见步骤1202、1302,以及步骤1401至1404的相关描述,这里不再赘述。不难理解,对于所述登录请求或同步请求,将其中的所述PIN码置换为动态令牌的标识,例如动态令牌编号,可以达到同样效果。一种动态令牌,包括:电源模块、时钟系统TClk、存储单元、动态口令生成单元,输入模块、输出模块。所述存储单元保存第一密钥Ki。在所述存储单元设置登录参考步长LogRSL和同步参考步长SynRSL,或约定LogRSL 和 SynRSL0 例如,约定 LogRSL 为 60,SynRSL 为 999999。
如图12所示,为本发明动态令牌模块组成图。动态口令生成单元用于生成登录口令LogDPswd和同步时间相关信息。所述生成LogDPswd是指:动态口令生成单元根据TClk获取第一时间Tl,基于LogRSL,根据Kl与Tl进行计算,得到LogDPswd。所述基于LogRSL,根据Kl与Tl进行计算,得到LogDPswd是按如下两种方式之一进行:方式一、动态口令生成单元得到Tl (LogRSL).RTRP,根据Kl与Tl (LogRSL).RTRP进行计算得到第一登录编码LogTMClJf LogTMCl作为LogDPswd ;方式二、动态口令生成单元得到Tl(LogRSL).LOD ;根据Kl与Tl进行计算,得到LogTMClJf LogTMCl 和 Tl (LogRSL).LOD 拼接在一起作为 LogDPswd。所述生成同步时间相关信息是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts (SynRSL).LOD,将Ts (SynRSL).LOD作为同步时间相关信息。这里,LogDPswd与 Ts(SynRSL).LOD 组成一个同步口令 SynDPswd,即,将 LogDPswd作为SynDPswd中的第一同步编码SynTMCl。所述输入模块用于接收索取口令的指令,并将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据得到的待输出口令类型,生成LogDPswd或Ts(SynRSL).L0D,相应地,通过输出模块输出生成的LogDPswd或Ts(SynRSL).LOD。所述输出模块可以是显示装置。为避免用户混淆LogDPswd和Ts (SynRSL).L0D,这里还提供了一种显示方法,通过该方法,动态令牌在显示LogDPswd或Ts(SynRSL).LOD时,可以进行区别显示,以便于客户识别,本发明提供如下几种显示方式:方式一、通过字体风格来区别显示LogDP swd和Ts (SynRSL).LOD。例如用正体字显示 LogDPswd,用斜体字显示 Ts (SynRSL).LOD。方式二、通过显示字符集来区别显示LogDPswd和Ts (SynRSL).LOD。例如用数字(例如O到9的十进制)显示LogDPswd,用字母(例如从A到P替代从O到15的16进制)显示 Ts(SynRSL).LOD。方式三、通过类型标记来区别显示LogDPswd和Ts(SynRSL).L0D。这里的类型标记可以是一个前导字符,例如,前导字符或“O”表示LogDPswd,前导字符“#”或“I”表示Ts(SynRSL).LOD。方式四、通过口令的若干bit位来区别显示LogDPswd和Ts(SynRSL).L0D。可以通过口令末尾的一个bit位来区分口令类型。例如,口令尾部的一个bit位为0,表示LogDPswd,显示的十进制数为偶数;该13;[1:位为I,表示Ts (SynRSL).LOD,显示的十进制数为奇数。用户、客户端或服务器还可以通过该bit位的值来区分不同的口令类型。方式五、通过口令长度区别显示LogDPswd和Ts(SynRSL).L0D。例如,LogDPswd长
6位,Ts (SynRSL).LOD 长 8 位。所述存储单元还可以保存上一次生成LogDPswd的时间(LastTl),动态口令生成单元在生成LogDPswd之前,可以判断获取自TClk的时间Tl与LastTl差是否大于某一特定值,例如LogRSL,如果是,则生成LogDPswd的新值,并保存新LogDPswd、将LastTl更新为Tl ;否则,不执行生成LogDPswd的新值和更新LastTl的操作。所述输入装置可以为按钮装置。
所述按钮装置包括登录按钮和同步按钮。通过所述登录按钮接收索取LogDPswd的指令,通过所述同步按钮接收索取Ts(SynRSL).LOD的指令。这种情况下,动态口令生成单元直接得到待输出口令类型。参见图13右图,为双按钮动态令牌的一种原型图。较佳地,所述登录按钮和同步按钮为同一个按钮,通过该按钮接收索取口令的指令。动态口令生成单元接收到索取口令的指令后,产生LogDPswd和Ts (SynRSL).L0D,并同时显示产生的LogDPswd和Ts(SynRSL).LOD。例如第一行显示LogDPswd,第二行显示Ts(SynRSL).LOD。或者,为节省显示装置的成本,动态口令生成单元根据接收的索取口令的指令的次序,决定生成LogDPswd或Ts (SynRSL).L0D。例如,通过两次或多次按压该按钮,可以向动态令牌交替发送索取LogDPswd或Ts (SynRSL).LOD的指令。参见图13左图,为单按钮动态令牌的一种原型图。例如,所述存储单元可以保存口令类型(PswdType);动态口令生成单元接收到索取口令的指令后,更改PswdType值,动态口令生成单元根据PswdType确定待输出口令类型。这样,客户通过按压按钮可以交替索取LogDPswd或Ts (SynRSL).L0D。这里,PswdType为 O 时,对应 LogDPswd ;PswdType 为 I 时,对应 Ts (SynRSL).LOD。所述更改 PswdType 值是指,PswdType 为 O 时,将 PswdType 更改为 I ;PswdType 为 I 时,将 PswdType 更改为 O。较佳地,所述存储单元可以保存上一次生成LogDPswd的时间(LastTl)。动态口令生成单元收到索取口令的指令后,根据TClk获取时间Tl,判断Tl与LastTl差是否大于某一特定值,例如LogRSL,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd,将LastTl更新为Tl,通过输出模块输出LogDPswd ;否则,更改PswdType值,并根据PswdType,来决定通过输出模块输出生成的LogDPswd,还是输出生成的Ts (SynRSL).L0D。这样可以保证用户在一段时间以后,例如LogRSL对应的时间之后再次按下动态令牌按钮时,动态令牌第一时间总是显示产生的LogDPswd,并且只在一个LogRSL对应的时间窗内连续接收到索取口令的指令时,才会交替显示产生的Ts (SynRSL).LOD或LogDPswd。由于用户索取LogDPswd的频率更高,因此,这样做,更加符合U⑶设计理念。需要说明的是,动态口令生成单元在根据Kl与Tl生成LogDPswd时,总能同时生成 Ts (SynRSL).LOD。这里,Ts 与 Tl 相同。如图12所示,所述动态口令生成单元生成同步时间相关信息进一步是生成同步口令 SynDPswd。所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据Kl与Ts进行计算,得到第一同步编码SynTMCl,将SynTMCl和Ts (SynRSL).LOD 作为 SynDPswd。这里,计算SynTMCl算法可以与计算LogTMCl或LogDPswd的算法不同,以保证得到的SynTMCl不同于相应的LogTMCl或LogDPswd。从而增强SynDPswd的安全性。特别地,考虑到实现算法的成本开销可能较大,较佳地,所述存储单元进一步保存第一同步密钥SynKl。这种情况下,所述SynTMCl是根据SynKl与所述Ts进行计算得到。所述输入模块用于接收索取口令的指令,并将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据得到的待输出口令类型,生成LogDPswd或SynDPswd,相应地通过输出模块输出生成的LogDPswd或SynDPswd。
所述输出模块可以是显示装置。在显示LogDPswd和SynDPswd时,可以按照上述区别显示LogDPswd和Ts (SynRSL).LOD的五种方式中任意一种方式来进行。这里不再赘述。所述存储单元还可以保存上一次生成LogDPswd的时间(LastTl),动态口令生成单元在生成LogDPswd之前,可以判断获取自TClk的时间Tl与LastTl差是否大于某一特定值,例如LogRSL,如果是,则生成LogDPswd的新值,并保存新LogDPswd、将LastTl更新为Tl ;否则,不执行生成LogDPswd的新值和更新LastTl的操作。所述输入装置可以为按钮装置。所述按钮装置包括登录按钮和同步按钮。通过所述登录按钮接收索取LogDPswd的指令,通过所述同步按钮接收索取SynDPswd的指令。这种情况下,动态口令生成单元直接得到待输出口令类型。参见图13右图,为双按钮动态令牌的一种原型图。所述登录按钮和同步按钮为同一个按钮,通过该按钮接收索取口令的指令。动态口令生成单元接收到索取口令的指令后,产生LogDPswd和SynDPswd,并同时显示产生的LogDPswd 和 SynDPswcL 例如第一行显不 LogDPswd,第二行显不 SynDPswcL或者,为节省显示装置的成本,动态口令生成单元根据接收的索取口令的指令的次序,决定生成LogDPswd或SynDPswd。例如,通过两次或多次按压该按钮,可以向动态令牌交替发送索取LogDPswd或SynDPswd的指令。参见图13左图,为单按钮动态令牌的一种原型图。所述存储单元可以保存口令类型(PswdType);动态口令生成单元接收到索取口令的指令后,更改PswdType值,动态口令生成单元根据PswdType确定待输出口令类型。这样,客户通过按压按钮可以交替索取LogDPswd或SynDPswd。这里,PswdType为O时,对应LogDPswd ;PswdType 为 I 时,对应 SynDPswd。所述更改 PswdType 值是指,PswdType 为 O 时,将PswdType更改为I ;PswdType为I时,将PswdType更改为O。较佳地,所述存储单元可以保存上一次生成LogDPswd的时间(LastTl);动态口令生成单元收到索取口令的指令后,根据TClk获取时间Tl,判断Tl与LastTl差是否大于某一特定值,例如LogRSL,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd,将LastTl更新为Tl,通过输出模块输出LogDPswd ;否则,更改PswdType值,并根据PswdType,来决定通过输出模块,输出生成的LogDPswd,还是输出生成的SynDPswd。考虑到SynDPswd比LogDPswd要长得多,因此,在显示SynDPswd时,可以先显示SynDPswd的前一半,后显示SynDPswd的后一半,或反之,这样,可以分两次显示一个完整SynDPswd。较佳地,先显示SynTMCl,后显示Ts (SynRSL).LOD,或反之。实际当中,所述按钮装置可以包括登录按钮、同步按钮和时间按钮等三个按钮。通过所述登录按钮接收索取LogDPswd的指令;通过所述同步按钮接收索取所述SynDPswd中的SynTMCl的指令,并将产生的SynDPswd中的SynTMCl显示出来;通过所述时间按钮接收索取SynDPswd中的Ts(SynRSL).LOD的指令。这种情况下,动态口令生成单元直接得到待输出口令类型。较佳地,所述按钮装置可以包括登录按钮、同步按钮二个按钮。通过所述登录按钮接收索取LogDPswd的指令;通过所述同步按钮接收索取所述SynDPswd的指令,并根据同步按钮按下的次序决定显示产生的SynDPswd中的SynTMCl或Ts (SynRSL).LOD。例如,所述存储单元可以保存口令类型(PswdType);动态口令生成单元接收到索取所述SynDPswd的指令后,更改PswdType值,动态口令生成单元根据PswdType确定待输出口令类型。这样,客户通过按压按钮可以交替索取所述SynTMCl或Ts(SynRSL).LOD。这里,PswdType 为 O 时,对应 SynTMCl ;PswdType 为 I 时,对应 Ts (SynRSL).LOD。所述更改PswdType 值是指,PswdType 为 O 时,将 PswdType 更改为 I ;PswdType 为 I 时,将 PswdType更改为O。所述存储单元可以保存上一次生成SynDPswd的时间(LastTs);动态口令生成单元收到索取所述SynDPswd的指令后,根据TClk获取时间Ts,判断Ts与LastTs差是否大于某一特定值,例如,LogRSL (16).LTRP,如果是,则将PswdType设置为0,即对应于SynTMCl,重新生成SynDPswd,将LastTs更新为Ts,通过输出模块输出SynDPswd中的SynTMCl ;否则,更改PswdType值,并根据PswdType,来决定通过输出模块,输出已经生成的SynDPswd中的SynTMCl,还是 SynDPswd 中的 Ts (SynRSL).LOD。当然,所述登录按钮、同步按钮和时间按钮可以是同一个按钮。通过该按钮接收索取口令的指令。动态口令生成单元根据接收的索取口令的指令的次序,决定生成LogDPswd或SynDPswd,以及显不生成的LogDPswd或SynDPswd中的SynTMCl或SynDPswd中的Ts(SynRSL).LOD。例如,所述存储单元可以保存口令类型(PswdType);动态口令生成单元接收到索取口令的指令后,更改PswdType值,动态口令生成单元根据PswdType确定待输出口令类型。这里,PswdType 为 O 时,对应 SynTMCl ;PswdType 为 I 时,对应 SynDPswd 中的 SynTMCl ;PswdType 为 2 时,对应 SynDPswd 中的 Ts (SynRSL).L0D。所述更改 PswdType 值是指,PswdType 为 O 时,将 PswdType 更改为 I ;PswdType 为 I 时,将 PswdType 更改为 2 ;PswdType为2时,将PswdType更改为O。所述存储单元可以保存上一次生成LogDPswd的时间(LastTl);动态口令生成单元收到索取口令的指令后,根据TClk获取时间Tl,判断Tl与LastTl差是否大于某一特定值,例如LogRSL,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd,将LastTl更新为Tl,通过输出模块输出LogDPswd ;否则,更改PswdType值,并根据PswdType,来决定通过输出模块,输出生成的LogDPswd,还是输出生成的SynDPswd中的SynTMCl,还是输出生成的 SynDPswd 中的 Ts (SynRSL).LOD。一般地,上述 LastTl、LastTs、TLVT、TLST、SvrLST 或 PswdType 的初始值为 O。特别说明,作为对本发明的简化应用,上述方法的各个实施方式或实施例中,以及所述认证系统中,如果不考虑同步参数a,即将a的值固定为I不变,所述映射关系只包含同步参数b,即,Y = f (X) = X+b,则不需要进行保存或更新TLST与SvrLST的操作。上述各个实施方式或实施例中,或认证系统中,如果不考虑消息重放,则服务器可以不考虑TLVT因素,即,不需要进行保存或更新TLVT,以及根据TLVT判断Tse获Tle是否可接受的操作。经验丰富的技术人员应该理解,由于考虑TLVT因素并没有增加太多服务器的开销,因此,在实施本发明时,尤其是在金融领域应用本发明,都最好考虑TLVT因素。上述方法的各个实施方式或实施例中,以及所述认证系统或所述动态令牌中,将所述时钟系统更改为事件计数系统,可以达到同样预期效果。以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之类,所作的任何修改、改进、等同替换等均应包含在本发明的保护范围之内。
权利要求
1.一种相对同步认证方法,其特征在于,在终端保存第一密钥K1,在服务器中保存配对的第二密钥K2 ;在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk ;月艮务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法包括以下步骤: A、终端根据TClk获取第一时间Tl,根据Kl与Tl进行计算,得到登录编码LogTMC,将LogTMC发送给服务器; B、服务器收到LogTMC后,根据对应的VClk得到Tl的估值Tle; C、服务器根据K2与Tle对接收的LogTMC进行一致性验证,如果一致,则对该终端验证通过;否则,认为该终端非法。
2.根据权利要求1所述的方法,其特征在于,LogTMC是基于登录参考步长LogRSL计算得到的; 在步骤A中,所述根据Kl与Tl进行计算是指,先得至IJ Tl (LogRSL).RTRP,而后根据Tl (LogRSL).RTRP与Kl进行计算;在步骤C中,所述服务器根据K2与Tle对接收的LogTMC进行一致性验证是指,得到Tie (LogRSL).RTRP,根据Tie (LogRSL).RTRP与K2进行计算,判断计算结果与LogTMC是否一致; 或者,在步骤A中,进 一步得到Tl (LogRSL).LOD,将LogTMC发送给服务器时,进一步发送Tl (LogRSL).L0D,在步骤B中,根据对应的VClk得到Tl的估值Tle时,进一步根据Tl(LogRSL).LOD 进行。
3.根据权利要求1所述的方法,其特征在于,在终端进一步保存第一同步密钥SynKl,在服务器中进一步保存配对的第二同步密钥SynK2 ;所述方法基于同步参考步长SynRSL ;所述方法进一步包括以下步骤: D、终端根据TClk获取同步时间Ts;得到Ts (SynRSL).LOD ;根据SynKl生成同步编码SynTMC,将 SynTMC 和 Ts (SynRSL).LOD 发送给服务器; E、服务器收到SynTMC和Ts(SynRSL).LOD后,根据SvrClk得到第二时间T2 ;根据Ts (SynRSL).LOD 得到 Ts 的估值 Tse ; F、服务器根据SynK2与Tse对SynTMC进行一致性验证,如果一致,则执行步骡G;否则,结束流程; G、根据Tse、T2,对所述映射关系进行修改。
4.一种同步参数更新方法,其特征在于,在终端保存第一同步密钥SynKl,在服务器中保存配对的第二同步密钥SynK2 ;在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk ;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法基于同步参考步长SynRSL ;所述方法包括以下步骤: A、终端根据TClk获取同步时间Ts;得到Ts (SynRSL).LOD ;根据SynKl生成同步编码SynTMC,将 SynTMC 和 Ts (SynRSL).LOD 发送给服务器; B、服务器收到SynTMC和Ts(SynRSL).LOD后,根据SvrClk得到第二时间T2 ;根据Ts (SynRSL).LOD 得到 Ts 的估值 Tse ; C、服务器根据SynK2与Tse对SynTMC进行一致性验证,如果一致,则执行步骤D;否则,结束流程;D、根据Tse、T2,对所述映射关系进行修改。
5.根据权利要求3所述的方法,其特征在于,所述映射关系为Y= f(X) = aXX+b,所述a与b为同步参数; 服务器进一步针对对应终端保存最后一次终端侧同步时间TLST与最后一次服务器侧同步时间SvrLST ; 在步骤D中,所述根据Tse、T2,对所述映射关系进行修改是指:根据Tse、T2,以及TLST与SvrLST,对所述映射关系中相关同步参数a或b进行修改;步骤D还将TLST更新为Tse、将SvrLST更新为T2。
6.根据权利要求3所述的方法,其特征在于,服务器进一步产生密码相关信息,并根据该密码相关信息进行同步验证,具体是指: 步骤A进一步将终端相关信息发送给服务器;在步骤D之前,服务器产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧,并等待含有密码的回复;服务器判断在指定的时间内,是否收到正确的密码回复,如果收到,则执行D,否则,结束流程; 或者,在步骤A之前,进一步将终端相关信息发送给服务器,服务器产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧;所述将SynTMC和Ts(SynRSL).L OD发送给服务器进一步是:使用用户侧根据接收的密码相关信息得到的密码加密Ts (SynRSL).LOD得到密文,将该密文和SynTMC发送给服务器,相应地,步骤B进一步是:服务器收到发来的密文和SynTMC后,解密该密文,恢复出Ts (SynRSL).LOD ;根据SvrClk获取第二时间T2,并根据Ts (SynRSL).LOD得到Ts的估值Tse ; 或者,在步骤A之前,进一步将终端相关信息发送给服务器,服务器产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧;所述将SynTMC和Ts(SynRSL).LOD发送给服务器进一步是:将用户侧根据接收的密码相关信息得到的密码、SynTMC和Ts (SynRSL).LOD发送给服务器,相应地,在步骤B中,服务器进一步接收用户侧得到的密码,并判断接收的密码是否正确,如果正确,则执行后续相关操作,否则,结束流程。
7.一种同步参数更新方法,其特征在于,在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk ;设置或约定同步参考步长SynRSL ;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法包括以下步骤: A、将终端相关信息发送给服务器; B、服务器收到所述终端相关信息后,产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧; C、终端根据TClk获取同步时间Ts;得到Ts (SynRSL).LOD ;使用用户侧根据接收的密码相关信息得到的密码与Ts (SynRSL).LOD计算,产生密文,将所述密文与Ts (SynRSL).LOD发送给服务器; D、服务器收到所述密文和Ts(SynRSL).LOD后,根据所述产生的密码相关信息所对应的密码与Ts (SynRSL).LOD对接收的密文进行一致性验证,如果一致,则根据SvrClk获取第二时间T2,并根据Ts (SynRSL).LOD得到Ts的估值Tse,根据Tse、T2,对所述映射关系进行修改;否则,结束流程。
8.一种基于动态令牌的认证系统,其特征在于,包括:服务器、客户端;所述客户端用于接收用户登录请求或同步请求,并将相应请求提交给所述服务器;对于登录请求,所述客户端获取PIN码和动态令牌产生的登录口令(LogDPswd);将所述PIN码和LogDPswd发送给服务器;对于同步请求,所述客户端获取PIN码和动态令牌产生的同步口令(SynDPswd);将所述PIN码和SynDPswd发送给服务器; 所述动态令牌用于产生LogDPswd和SynDPswd ; 所述动态令牌中设置有TClk,所述动态令牌保存第一密钥Kl和第一同步密钥SynKl ;所述服务器设置有SvrClk ;所述服务器根据PIN码,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述服务器根据PIN码,保存配对的第二密钥K2和第二同步密钥SynK2,以及TLVT ; 所述服务器和动态令牌还设置或约定登录参考步长LogRSL和同步参考步长SynRSL ;所述产生LogDPswd是指:动态令牌根据TClk获取第一时间Tl,基于LogRSL,根据Kl与Tl进行计算,得到LogDPswd ; 所述产生SynDPswd是指:动态令牌根据TClk获取同步时间Ts,得到Ts (SynRSL).LOD,根据 SynKl 生成第一同步编码 SynTMClJf SynTMCl 和 Ts (SynRSL).LOD 作为 SynDPswd ; 收到含有PIN码和LogDPswd的登录请求后,服务器针对所述PIN码,根据VClk得到时间估值Tie,根据Tle和K2对LogDPswd进行一致性验证,如果一致,则将TLVT更新为Tle ;收到含有PIN码和SynDPswd的同步请求后,服务器针对所述PIN码,根据SynDPswd中携带的Ts (SynRSL).LOD得到时间估值Tse,并在根据TLVT判断出Tse可接受时,根据Tse和SynK2对SynDPswd中的SynTMCl进行一致性验证,如果一致,则将TLVT更新为Tse,并根据Tse和SvrClk的时间T2对所述映射关系进行修改。
9.一种动态令牌,其特征在于,包括:电源模块、时钟系统TClk、存储单元、动态口令生成单元,输入模块、输出 模块;所述存储单元保存第一密钥Kl ; 在所述存储单元设置登录参考步长LogRSL和同步参考步长SynRSL,或约定LogRSL和SynRSL ; 动态口令生成单元用于生成LogDPswd和同步时间相关信息; 所述生成LogDPswd是指:动态口令生成单元根据TClk获取第一时间Tl,基于LogRSL,根据Kl与Tl进行计算,得到LogDPswd ; 所述生成同步时间相关信息是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LODdf Ts (SynRSL).LOD 作为同步时间相关信息; 所述输入模块用于接收索取口令的指令,并将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据得到的待输出口令类型,生成LogDPswd或Ts (SynRSL).LOD,相应地通过输出模块输出生成的LogDPswd或Ts (SynRSL).LOD。
10.根据权利要求9所述的动态令牌,其特征在于,所述动态口令生成单元生成同步时间相关信息进一步是生成同步口令SynDPswd ; 所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts (SynRSL).LOD,根据Kl与Ts进行计算,得到第一同步编码SynTMCl,将SynTMCl和Ts (SynRSL).LOD 作为 SynDPswd ; 或者,所述存储单元还保存第一同步密钥SynKl,所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts (SynRSL).LOD,根据SynKl与Ts进行计算,得到第一同步编码 SynTMCldf SynTMCl 和 Ts (SynRSL).LOD 作为 SynDPswd ; 所述生成Ts (SynRSL).L0D,以及相应地通过输出模块输出生成的Ts (SynRSL).L0D,进一步是生成SynDPswd,相 应地通过输出模块输出生成的SynDPswd。
全文摘要
本发明公开了相对同步认证方法,该方法通过针对对应客户端,基于服务器时钟系统SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系,使VCLK逼近该客户端时钟系统TClk,从而保证基于时间同步的认证流程得以正常进行。本发明可以降低时间令牌的生产成本,并延长时间令牌的寿命,减少时间令牌派发成本,符合了节能环保要求。本发明还提供了同步参数更新方法,通过所述方法,对所述映射关系进行更新,使偏离了TClk的VClk再次逼近TClk。本发明还提供一种认证系统、一种时间令牌。
文档编号H04L29/06GK103178949SQ20111029148
公开日2013年6月26日 申请日期2011年9月20日 优先权日2011年9月20日
发明者王正伟 申请人:王正伟
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1