CN103178949A - 相对同步认证方法、同步参数更新方法、认证系统及装置 - Google Patents
相对同步认证方法、同步参数更新方法、认证系统及装置 Download PDFInfo
- Publication number
- CN103178949A CN103178949A CN 201110291485 CN201110291485A CN103178949A CN 103178949 A CN103178949 A CN 103178949A CN 201110291485 CN201110291485 CN 201110291485 CN 201110291485 A CN201110291485 A CN 201110291485A CN 103178949 A CN103178949 A CN 103178949A
- Authority
- CN
- China
- Prior art keywords
- server
- synrsl
- lod
- password
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了相对同步认证方法,该方法通过针对对应客户端,基于服务器时钟系统SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系,使VCLK逼近该客户端时钟系统TClk,从而保证基于时间同步的认证流程得以正常进行。本发明可以降低时间令牌的生产成本,并延长时间令牌的寿命,减少时间令牌派发成本,符合了节能环保要求。本发明还提供了同步参数更新方法,通过所述方法,对所述映射关系进行更新,使偏离了TClk的VClk再次逼近TClk。本发明还提供一种认证系统、一种时间令牌。
Description
技术领域
本发明涉及动态量同步,更确切地说涉及基于时钟漂移的时间同步认证技术以及基于该技术的认证系统、装置。
背景技术
动态口令技术以其卓越的防重放特点,已经提出,就很快被应用到身份认证领域。动态口令技术通过让用户密码按照挑战或时间或事件不断变化来防止消息重放攻击。基于动态口令的认证技术有:基于挑战/应答的异步认证技术,基于时间的同步认证技术,基于事件的同步认证技术。
基于动态口令技术的动态令牌,内置电源、存储动态口令根密钥的存储单元、动态口令生成单元、显示装置,以及一个密码生成驱动装置。所述驱动装置一般地是一个按钮,用户按压按钮时,动态口令生成单元根据获得的挑战(该挑战一般是服务器产生的一个随机数)或时间或事件次数,结合动态口令根密钥生成当前密码,通过显示装置显示出来。用于认证的服务器采用相应的算法,根据事先发送的挑战或获得的时间或事件次数,结合对应保存的动态口令根密钥可以判断出动态令牌产生的当前密码是否有效,因此,用户通过输入动态令牌显示的当前密码即可实现身份确认。由于所述当前密码根据所述挑战或时间或事件而动态变化,因此,可以保证用户每次使用的密码不同,从而实现防重放攻击。
基于异步认证技术的异步令牌还应包括挑战输入装置,基于时间同步认证技术的时间令牌还应包括时钟系统,基于事件同步认证技术的事件令牌还应包括存储事件次数的存储单元。
基于异步令牌的异步认证技术由于是双向的,耗时较长(例如通过短消息开启门禁系统),以及异步令牌需要输入挑战等,用户接受度较低,因此,目前使用较为广泛的动态令牌多为时间令牌或事件令牌。时间令牌和事件令牌都要求与服务器保持同步,否则,产生的动态密码将被服务器视为无效。但是,由于时钟脉冲的不确定性偏移的客观存在会导致时钟时间的漂移,导致时间令牌的时钟与服务器的时钟不再同步,从而使时间令牌无效;同样,由于用户无意思地按下令牌按钮而产生口令,使事件令牌的事件次数不再与服务器保存的事件次数同步,从而使事件令牌无效。
目前针对时间同步和事件同步的方法很多,大多是通过让服务器干粗活的方式,一个一个地尝试匹配可能的时间值或事件值,从而发现时间令牌的真实时间或事件令牌的真实事件次数,例如编号为US_4885778的专利揭示的一种时间同步和具体验证用户的方法。这种方式无疑大大节省了攻击者攻击服务器的成本。还有一种通过向服务器传送一个时间偏移量来完成具有有限时钟漂移的认证,例如编号为US_5887065的专利揭示的一种具有时间同步的用户认证系统,这种认证方法需要每次认证时向服务器传送时间偏移量,从而增加用户输入;另外,还由于其所支持的时钟漂移范围所限(因为所述范围设置的太大会因增加口令的有效期,即预期寿命,从而降低系统安全),在时间漂移出了设置的范围后,时间令牌也将被报废,例如用户隔了很久才登录一次服务器。
发明内容
有鉴于此,本发明提供了一种相对同步认证方法,通过该方法解决了时间令牌的时钟漂移所带来的时间令牌与服务器时间不一致问题,增强了基于时间的同步认证系统的健壮性。
一种相对同步认证方法,其特征在于,在终端保存第一密钥K1,在服务器中保存配对的第二密钥K2;在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法包括以下步骤:
A、终端根据TClk获取第一时间T1,根据K1与T1进行计算,得到登录编码LogTMC,将LogTMC发送给服务器;
B、服务器收到LogTMC后,根据对应的VClk得到T1的估值T1e;
C、服务器根据K2与T1e对接收的LogTMC进行一致性验证,如果一致,则对该终端验证通过;否则,认为该终端非法。
LogTMC是基于登录参考步长LogRSL计算得到的;
在步骤A中,所述根据K1与T1进行计算是指,先得到T1(LogRSL).RTRP,而后根据T1(LogRSL).RTRP与K1进行计算;在步骤C中,所述服务器根据K2与T1e对接收的LogTMC进行一致性验证是指,得到T1e(LogRSL).RTRP,根据T1e(LogRSL).RTRP与K2进行计算,判断计算结果与LogTMC是否一致;
或者,在步骤A中,进一步得到T1(LogRSL).LOD,将LogTMC发送给服务器时,进一步发送T1(LogRSL).LOD,在步骤B中,根据对应的VClk得到T1的估值T1e时,进一步根据T1(LogRSL).LOD进行。
在终端进一步保存第一同步密钥SynK1,在服务器中进一步保存配对的第二同步密钥SynK2;所述方法基于同步参考步长SynRSL;所述方法进一步包括以下步骤:
D、终端根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD;根据SynK1生成同步编码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保持同步。
一种同步参数更新方法,其特征在于,在终端保存第一同步密钥SynK1,在服务器中保存配对的第二同步密钥SynK2;在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法基于同步参考步长SynRSL;所述方法包括以下步骤:
A、终端根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD;根据SynK1生成同步编码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)=a×X+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,所述动态令牌保存第一密钥K1和第一同步密钥SynK1;
所述服务器设置有SvrClk;所述服务器根据PIN码,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述服务器根据PIN码,保存配对的第二密钥K2和第二同步密钥SynK2,以及TLVT;
所述服务器和动态令牌还设置或约定登录参考步长LogRSL和同步参考步长SynRSL;
所述产生LogDPswd是指:动态令牌根据TClk获取第一时间T1,基于LogRSL,根据K1与T1进行计算,得到LogDPswd;
所述产生SynDPswd是指:动态令牌根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据SynK1生成第一同步编码SynTMC1,将SynTMC1和Ts(SynRSL).LOD作为SynDPswd;
收到含有PIN码和LogDPswd的登录请求后,服务器针对所述PIN码,根据VCl k得到时间估值T1e,根据T1e和K2对LogDPswd进行一致性验证,如果一致,则将TLVT更新为T1e;
收到含有PIN码和SynDPswd的同步请求后,服务器针对所述PIN码,根据SynDPswd中携带的Ts(SynRSL).LOD得到时间估值Tse,并在根据TLVT判断出Tse可接受时,根据Tse和SynK2对SynDPswd中的SynTMC1进行一致性验证,如果一致,则将TLVT更新为Tse,并根据Tse和SvrClk的时间T2对所述映射关系进行修改。
本发明还提出一种动态令牌,该动态令牌不但能够产生登录口令,还能产生用于时间同步的同步口令。基于该动态令牌构建的认证系统,通过提供同步流程,将会变得更加健壮。
一种动态令牌,其特征在于,包括:电源模块、时钟系统TClk、存储单元、动态口令生成单元,输入模块、输出模块;所述存储单元保存第一密钥K1;
在所述存储单元设置登录参考步长LogRSL和同步参考步长SynRSL,或约定LogRSL和SynRSL;
动态口令生成单元用于生成LogDPswd和同步时间相关信息;
所述生成LogDPswd是指:动态口令生成单元根据TClk获取第一时间T1,基于LogRSL,根据K1与T1进行计算,得到LogDPswd;
所述生成同步时间相关信息是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,将Ts(SynRSL).LOD作为同步时间相关信息;
所述输入模块用于接收索取口令的指令,并将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据得到的待输出口令类型,生成LogDPswd或Ts(SynRSL).LOD,相应地通过输出模块输出生成的LogDPswd或Ts(SynRSL).LOD。
所述动态口令生成单元生成同步时间相关信息进一步是生成同步口令SynDPswd;
所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据K1与Ts进行计算,得到第一同步编码SynTMC1,将SynTMCl和Ts(SynRSL).LOD作为SynDPswd;
或者,所述存储单元还保存第一同步密钥SynK1,所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据SynK1与Ts进行计算,得到第一同步编码SynTMC1,将SynTMC1和Ts(SynRSL).LOD作为SynDPswd;
所述生成Ts(SynRSL).LOD,以及相应地通过输出模块输出生成的Ts(SynRSL).LOD,进一步是生成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是根据甲的脉搏来计时,即,TClk将脉搏跳动一次计为一秒。当甲的脉搏为每分钟72次时,TClk在实际每分钟时间里,记录了72秒。这样,在构建VClk时,可以设置映射关系为Y=f(X)=a×X,其中,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)=a×X+b;在终端保存第一密钥K1,在服务器中针对对应终端保存配对的第二密钥K2。
这里,a初始化值为1,b初始化值为0,也即,初始化时,Y=f(X)=X,此时,VClk直接是SvrClk,这样,从VClk得到时间T是指,直接从SvrClk得到该时间T。
实际当中,服务器针对对应终端保存了同步参数a和b的值。
上述关于映射关系的说明,后面实施方式或实施例中,不再赘述。
所述在服务器中针对对应终端保存配对的第二密钥K2,可以是按照该终端相关信息保存配对的第二密钥K2。所述终端相关信息可以是终端的编号,也可以是与该终端建立关联关系的用户的个人识别码(PIN,Personal Identified Number)。后面不再赘述。
首先在步骤11,终端根据TClk获取第一时间T1,根据K1与T1进行计算,得到时间诱变的登录编码LogTMC,简称登录编码,将LogTMC通过登录消息发送给服务器。
在将LogTMC发送给服务器时,可以进一步发送该终端相关信息,或者所述将LogTMC发送给服务器是通过服务器提供的一个会话页面来完成,该会话页面直接或间接的与该终端建立有对应关系,例如,该会话页面含有该终端相关信息,或服务器侧建立了该会话页面的标识与该终端相关信息的对应关系。后面不再就这种情况赘述。
这里,根据K1与T1进行计算时,可以采用成熟的Hash算法,例如摘要算法。有关摘要算法可以参见《应用密码学》一书或相关的算法论文或报告。由于是公知技术,后面类似的相关计算不再赘述。
步骤12,服务器收到LogTMC后,根据对应的VClk得到T1的估值T1e。
这里,服务器先根据SvrClk获取第二时间T2,而后根据设置的映射关系,得到第三时间T3,即,T3=f(T2)=a×T2+b,将T3作为T1e。
步骤13,服务器根据K2与T1e对接收的LogTMC进行一致性验证。
在步骤13中,所述一致性验证是:服务器根据K2与T1e进行相应的计算,判断计算结果与LogTMC是否一致,例如是否相等。如果一致,则对该终端验证通过;否则,认为该终端非法。
在认证实施方式中,服务器还可以进一步针对对应终端保存最后一次验证时间(TLVT,Terminal Last verification Time),用于在步骤12中根据对应的TLVT判断T1e是否可接受,例如,判断T1e与对应的TLVT的差是否大于某一特定值,例如60秒,如果是,则执行后续流程;否则,说明认证请求频繁,结束流程。所述TLVT也可以用于后续的同步流程中,根据对应的TLVT判断对同步时间的估值Tse是否可接受,以防止重放消息。在步骤13中对所述终端验证通过后,将对应的TLVT的值更新为T1e。
由于T1e与T1并不一定相等,因此,作为认证实施方式的第一实施例,对于步骤13中,所述服务器根据K2与T1e对接收的LogTMC进行一致性验证是指:服务器判断T1e以及T1e周围的有限个时间,例如(T1e-3)、(T1e-2)、(T1e-1)、(T1e+1)、(T1e+2)、(T1e+3)等6个时间中,是否存在一个时间Tx,使得服务器在根据K2与Tx进行相应的计算时,得到的结果与接收的LogTMC一致或相等。如果存在,则所述一致性验证通过,否则,不通过。例如根据K2与(T1e-2)进行相应计算的计算结果与接收的LogTMC相等。
当从T1e周围选取的用于一致性验证的时间点很少时,所述一致性验证的成功率可能会降低;当从T1e周围选取的用于一致性验证的时间点很多时,会增加服务器计算量,从而降低认证系统的安全性。对此,本发明通过设置时间参考点(TRP,Time Reference Point),来减少上述计算量。
设置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年1月1日1时0分30秒和2011年1月1日1时1分0秒是两个相邻的TRP时,对于时间2011年1月1日1时0分33秒,该时间的LTRP为2011年1月1日1时0分30秒,该时间的RTRP为2011年1月1日1时1分0秒。
为便于理解,本发明中,以秒作为时间的基本单位,并用一个32bit长整型来表示一个时间的秒数值。后面不再赘述。
所述RSL的值可以取任意值。为便于描述,本发明涉及的RSL取自然数。
为方便描述,本发明将a和b中最小的一个写作min(a,b),将a和b中最大的一个写作max(a,b);将a<x<b写作x∈(a,b),将a<=x<=b写作x∈[a,b];将a<x<=b写作x∈(a,b];将a<=x<b写作x∈[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)的左偏距(LOD,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
为便于描述,对于时间T1和T2,当T1(RSL).LOD=T2(RSL).LOD时,称T1为T2(RSL)的一个同余点,称T2为T1(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=0表示为RSL是一个很大的数,例如,10的p次方,p为10的100次方,或RSL表示任意大,并且,对于一个时间T,本发明约定T(0).LOD=T。
如图3所示,为本发明认证实施方式的第二实施例流程图。在该实施例中,在终端中设置TClk,在服务器设置SvrClk;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;在终端保存K1,在服务器中针对对应终端保存配对的K2;在该实施例中,设置登录参考步长LogRSL。
首先在步骤1201,终端根据TClk获取第一时间T1;得到T1(LogRSL).RTRP;根据K1与T1(LogRSL).RTRP进行计算,得到登录编码LogTMC,将LogTMC发送给服务器。
步骤1202,服务器收到LogTMC后,根据VClk得到T1的估值T1e,得到T1e(LogRSL).RTRP。
这里,服务器先根据SvrClk获取第二时间T2,而后根据设置的映射关系,得到T3,即,T3=f(T2)=a×T2+b,将T3作为T1e。
步骤1203,服务器根据K2与T1e(LogRSL).RTRP对接收的LogTMC进行一致性验证。
在步骤1203中,所述一致性验证是:服务器根据K2与T1e(LogRSL).RTRP进行相应的计算,判断计算结果与接收的LogTMC是否一致,例如是否相等。如果一致,则对该终端验证通过;否则,认为该终端非法。
当T1等于T1e时:对于合法终端,在步骤1203中,所述一致性验证能够通过。
当T1不等于T1e时:在T1与T1e之间,除min(T1,T1e)后,没有TRP时,则合法终端产生的LogTMC能够通过服务器的验证;如果在T1与T1e之间除min(T1,T1e)后,还存在至少一个TRP时,则终端产生的LogTMC无法通过服务器的验证。
按照第二实施例,服务器在保证接收的LogTMC的时效性的同时,不会因为设置的LogRSL的变化而影响到计算量的变化,因而,增加LogRSL的值不会增加攻击服务器的成功率。
在该实施例中,服务器还可以进一步针对对应终端保存TLVT;在步骤1203中对所述终端验证通过后,相应地将对应的TLVT的值更新为T1e。
本发明将TClk相对于VClk的时差称为终端虚拟偏差(TCVD,Terminal Clock VirtualDeviation)。当TCVD大于0时,表示TClk比VClk快;当TCVD等于0时,表示TClk与VClk同步;当TCVD小于0时,表示TClk比VClk慢。
如果考虑TCVD因素,允许的TCVD在虚拟偏差左限(LLTCVD,Left Limit of TCVD)和虚拟偏差右限(RLTCVD,Right Limit of TCVD)之间,即,TCVD∈(LLTCVD,RLTCVD),则,较佳地,设置的LogRSL满足LogRSL>(RLTCVD-LLTCVD)。相应地,在第二实施例的步骤1202中,计算T1e时,因变量进一步加上RLTCVD,即:
T1e=T3=f(T2)+RLTCVD=a×T2+b+RLTCVD
实际当中,所述终端根据TClk获取T1的操作比所述服务器根据SvrClk获取T2的操作有一个时间提前量(TIA,Time InAdvance)。如果考虑TIA因素,允许的TIA在提前量左限(LLTIA,Left Limit of TIA)与提前量右限(RLTIA,Right Limit of TIA)之间,也即,TIA∈(LLTIA,RLTIA),则,较佳地,设置的LogRSL满足LogRSL>a×(RLTIA-LLTIA)。相应地,在第二实施例的步骤1202中,计算T1e时,自变量进一步减去LLTIA,即:
T1e=T3=f(T2-LLTIA)=a×(T2-LLTIA)+b
这里,将SvrClk的时间作为基准时间。
如果同时考虑TCVD因素与TIA因素,则,较佳地,设置的LogRSL满足LogRSL>(RLTCVD-LLTCVD+a×(RLTIA-LLTIA))。相应地,在第二实施例的步骤1202中,计算T1e时,进一步将因变量加上RLTCVD,将自变量减去LLTIA,即:
T1e=T3=f(T2-LLTIA)+RLTCVD=a×(T2-LLTIA)+b+RLTCVD
根据第二实施例,终端产生LogTMC,只有在特定的时间内被服务器收到后,才能被认定为合法。为方便描述,这里称该特定时间为LogTMC的预期寿命。
根据第二实施例,如果T1与T1e不相等,那么,只有当二者位于相邻的两个TRP之间,且max(T1,T2)不是TRP时,终端产生的LogTMC才能够通过服务器的验证。因此,终端产生的LogTMC的预期寿命会因为T1(LogRSL).LOD的增加而减少。
终端在不同时刻产生的LogTMC的预期寿命不同,会影响到用户体验。针对这种情况,本发明先介绍一种时间传送方法:基于设置的参考步长RSL,对于时间T,通过传送T(RSL).LOD,来达到传递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的估值Tae。
这里,模块B采用左同余定位方式来确定Tae,即,在Tb的左侧,寻找一个距离Tb最近的Ta(RSL)的同余点。该同余点即为Tae。
根据左同余定位方式得到:Tae=Tb-((Tb-Ta(RSL).LOD)mod RSL)
对于左同余定位方式,当(Tb-Ta)∈[O,RSL)时,Tae等于Ta,这样就达到了模块A向模块B传送时间信息的目的;否则,Tae与Ta不是同一个时间。这样,对于任意的Ta,模块B获得的Tb只要满足(Tb-Ta)∈[0,RSL),模块B就可以正确得到模块A传送的真实时间,即Ta;反之,模块B就无法得到模块A传送的真实时间。对于任意的Ta,满足模块B正确得到Ta的Tb可以有Ta、(Ta+1)、(Ta+2)……(Ta+RSL-1)等共计RSL个值。
根据所述时间传送方法,对第二实施例进行改造后,得到本发明第三实施例。
如图4所示,为本发明认证实施方式的第三实施例流程图。在该实施例中,在终端中设置TClk,在服务器设置SvrClk;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;在终端保存K1,在服务器中针对对应终端保存配对的K2;在该实施例中,设置登录参考步长LogRSL;该实施例中,还同时考虑TCVD因素与TIA因素,且,TCVD∈(LLTCVD,RLTCVD),TIA∈(LLTIA,RLTIA)。
首先在步骤1301,终端根据TClk获取第一时间T1;得到T1(LogRSL).LOD;根据K1与T1进行计算,得到登录编码LogTMC,将LogTMC和T1(LogRSL).LOD发送给服务器。
步骤1302,服务器收到LogTMC和T1(LogRSL).LOD后,结合VClk得到T1的估值T1e。
这里,服务器先根据SvrClk获取第二时间T2,而后根据设置的映射关系,结合TCVD因素与TIA因素,得到第三时间T3,即,T3=f(T2-LLTIA)+RLTCVD=a×(T2-LLTIA)+b+RLTCVD;服务器采用左同余定位方式,由T3和T1.LOD确定T1的估值T1e。
这里,T1e=T3-((T3-T1(LogRSL).LOD)mod LogRSL)
=a×(T2-LLTIA)+b+RLTCVD
-((a×(T2-LLTIA)+b+RLTCVD-T1(LogRSL).LOD)mod LogRSL)
步骤1303,服务器根据K2与T1e对接收的LogTMC进行一致性验证。
在步骤1303中,所述一致性验证是:服务器根据K2与T1e进行相应的计算,判断计算结果与接收的LogTMC是否一致,例如是否相等。如果一致,则对该终端验证通过;否则,认为该终端非法。
根据第三实施例,设LogRSL对应的服务器侧的实际秒数为SvrL,根据:
f(SvrL)-f(0)=(a×SvrL+b)-(0×SvrL+b)=a×SvrL=LogRSL
得到:SvrL=LogRSL÷a。
终端产生一个LogTMC后,该LogTMC将在(LogRSL÷a)秒之后失效。这样,在不需要传送完整的时间信息的情况下,既保证消息的时效性,又保证了终端在任何时刻产生的LogTMC都具有稳定的预期寿命。
在该实施例中,服务器还可以进一步针对对应终端保存TLVT;在步骤1303中对所述终端验证通过后,相应地将对应的TLVT的值更新为T1e。
实际当中,如果不考虑TCVD因素或TIA因素,则可根据第三实施例裁减相关因素。
所述配对密钥K1与K2也可以直接是一个用户密码,对应的,上述终端中不保存作为用户密码的所述密钥。例如,用户每次使用终端登录服务器时,终端提示用户输入密码,而后终端根据该用户输入的密码来产生所述LogTMC。这样,即使用户的终端丢失,他人也无法利用该终端登录相应的服务器。
上述终端保存的密钥K1可以直接是一个内置密钥。例如,对于终端是一个汽车防盗钥匙来说,用户每次使用防盗钥匙来开启作为服务器的锁控装置时,终端直接使用该内置密钥K1来产生所述LogTMC。这样,就不需要用户在每次使用防盗钥匙开启锁控装置时都输入密码。但防盗钥匙丢失后,他人可利用该防盗钥匙开启锁控装置。
下面以本发明认证实施方式应用于金融账户的认证为例来进行说明。在应用于金融账户的认证时,所述终端实际上是一个动态口令模块,例如券商向其客户提供的用于登录交易的保安器或动态令牌。
如图5所示,为本发明认证实施方式的第四实施例流程图。在该实施例中,服务器侧根据动态令牌编号将动态令牌和PIN码绑定;所述动态令牌中设置有TClk,在服务器侧设置SvrClk;服务器侧针对所述动态令牌,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;在动态令牌保存K1,在服务器侧针对对应动态令牌保存配对的K2,以及TLVT和用户密码UsrPswd,例如,根据PIN码保存K2、TLVT和UsrPswd。在该实施例中,设置登录参考步长LogRSL;该实施例中,同时考虑TCVD因素与TIA因素,且,TCVD∈(LLTCVD,RLTCVD),TIA∈(LLTIA,RLTIA)。
实际当中,服务器侧可以预先维护动态令牌字典,例如,保存一个动态令牌表,该表至少包括动态令牌编号和对应的K2等等字段,该表中还可以包括该动态令牌的生产日期、使用日期等等字段。当根据动态令牌编号将一个动态令牌和一个PIN码绑定时,就直接或间接地建立了该PIN码和对应于该动态令牌的K2等等的对应关系。VClk一般是在动态令牌和一个PIN码绑定时才会有实际意义,因此,VClk可以是直接针对所述PIN码构建。如下表所示,根据PIN码保存对应的K2、VClk的相关同步参数a与b、TLVT等。
PIN码 | K2 | a | b | TLVT |
Wesley | A23567BFD09834309523459586735678 | 1 | 36000 | 63326288123 |
Zhugeliang | 6789AD3458657CF12097655877D2789B | 1.1 | 1800 | 63386288780 |
首先在步骤1401,客户端获取PIN码、UsrPswd1和动态令牌根据保存的K1与TClk当前时间T1进行计算产生的第一动态密码DPswd1(DPswd,Dynamic PASSWORD)。
例如,该PIN码是证券帐户标识,例如招商证券的牛卡号。一般地,这些信息由客户在客户端,例如证券交易商提供的证券交易客户端上,来输入。
一般地,所述动态令牌设置一个显示装置和一个按钮。用户按动态令牌按钮时,动态令牌根据TClk获取第一时间T1,得到T1(LogRSL).LOD;根据K1与T1进行计算,得到第一登录编码LogTMC1,将LogTMC1与T1(LogRSL).LOD拼接在一起形成DPswd1,将DPswd1显示出来,由用户输入客户端。
步骤1402,客户端根据UsrPswd1和DPswd1进行计算,产生消息认证编码(MAC,MessageAuthentication Code),将所述PIN码、MAC,以及DPswd1中的T1(LogRSL).LOD发送给服务器。
步骤1403,服务器收到所述PIN码、MAC,以及T1(LogRSL).LOD后,结合该PIN码对应的VClk得到T1的估值T1e。
这里,所述得到T1的估值T1e是指:先根据SvrClk获取第二时间T2,而后根据该PIN码对应的VClk,结合TCVD因素与TIA因素,得到第三时间T3,即:
T3=f(T2-LLTIA)+RLTCVD=a×(T2-LLTIA)+b+RLTCVD。
服务器采用左同余定位方式,由T3和T1(LogRSL).LOD确定T1的估值T1e。
这里,T1e=T3-((T3-T1(LogRSL).LOD)mod LogRSL)
=a×(T2-LLTIA)+b+RLTCVD
-((a×(T2-LLTIA)+b+RLTCVD-T1(LogRSL).LOD)mod LogRSL)
步骤1404,服务器根据所述PIN码,获取相应的K2和UsrPswd;根据K2、UsrPswd与T1e对接收的MAC进行一致性验证,并在验证通过时,执行将所述PIN码对应的TLVT更新为T1e并启动相应的服务等相关操作。
在步骤1404中,所述一致性验证是:服务器根据相应的K2与T1e进行计算,得到第二登录编码LogTMC2,将LogTMC2与接收的T1(LogRSL).LOD拼接在一起形成第二动态密码DPswd2;根据UsrPswd与DPswd2进行相应的计算,判断计算结果与接收的MAC是否一致,例如是否相等。如果一致,则对该客户端验证通过;否则,认为该客户端非法。
在步骤1404中,所述一致性验证失败时,结束流程。
在步骤1404之前,服务器可以进一步判断T1e是否可接受,如果可接受,则执行步骤1404;否则,结束流程。例如,判断T1e是否可接受可以是:判断是否(T1e-TLVT)>LogRSL,如果是,则可接受,否则,认为认证请求过于频繁,不予接受。
在步骤1402中,所述根据UsrPswd1和DPswd1进行计算,可以是根据UsrPswd1和DPswd1中LogTMC1进行计算;相应的,在步骤1404中,服务器计算得到LogTMC2后,不再执行将LogTMC2与接收的T1(LogRSL).LOD拼接在一起形成DPswd2的操作,直接根据UsrPswd与LogTMC2进行相应的计算,来对接收的MAC进行一致性性验证。
需要说明的是,在步骤1402中,客户端也可以不将所述T1(LogRSL).LOD发送给服务器。所述动态令牌根据K1与T1(LogRSL).RTRP进行计算得到LogTMC1,直接将LogTMC1作为DPswd1。相应的,在步骤1403中,所述T1e直接是(T3-LogRSL(2).LTRP);在步骤1404中,所述LogTMC2是根据相应的K2与T1e(LogRSL).RTRP进行计算得到。这里,只要T1处于T3以前的一个LogRSL长的区域内,并且除了min(T1,T1e)外,T1与T1e之间不再有其它TRP时,T1(LogRSL).RTRP和T1e(LogRSL).RTRP就会相等,这样,就可以保证合法动态令牌产生的LogTMC1与服务器对应产生的LogTMC2一致。这里,T1e是将T3向前移动LogRSL(2).LTRP后得到,这样可以减少T1值的波动影响。
实际当中,随着时间的推移,TClk可能会偏离VClk越来越远,并最终使TCVD超出了允许的域(LLTCVD,RLTCVD)的范围时,可能会导致服务器对终端进行的合法性验证通不过。这时,就需要对VClk的相关同步参数进行更新。对此,本发明提出了同步参数更新方法,通过该方法,向服务器传送终端时间的相关信息,例如终端时间的全部或部分信息,服务器对收到的终端时间的相关信息验证通过后,更新对应于该终端的VClk的相关同步参数,使VClk再次逼近于该终端的TClk,从而使对应的TCVD恢复到域(LLTCVD,RLTCVD)的范围以内。
在同步参数更新方法中,在终端中设置TClk,在服务器设置SvrClk;对应的服务器和终端都设置或约定了同步参考步长SynRSL。例如,SynRSL为3600×24秒,即24小时,SynRSL描述了服务器搜索终端传送的时间的相对范围。由于TIA与TCVD一般相对于SynRSL可以忽略,因此,在同步参数更新方法中,一般不考虑TCVD因素与TIA因素。后面的相关同步参数更新实施例中不再赘述。
如图6所示,为本发明同步参数更新方法第一实施例流程图。在该实施例中,服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;服务器还可以针对对应终端保存最后一次终端侧同步时间(TLST,Terminal Last Synchronization Time)和最后一次服务器侧同步时间(SvrLST,Server LastSynchronization Time),作为历史同步时间信息;在终端保存第一同步密钥SynK1,在服务器中针对对应终端保存配对的第二同步密钥SynK2。
首先在步骤2101,终端根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD;根据SynKl生成时间诱变的同步编码SynTMC,简称同步编码,将SynTMC和Ts(SynRSL).LOD通过同步消息发送给服务器。这里,所述SynTMC是根据SynKl与Ts计算得到。
步骤2102,服务器收到SynTMC和Ts(SynRSL).LOD后,根据SvrClk获取第二时间T2,并根据Ts(SynRSL).LOD得到Ts的估值Tse。
这里:
当SynRSL=0时,Ts(SynRSL).LOD=Ts,得到Tse=Ts。
当SynRSL>0时,服务器根据对应设置的映射关系得到T3,即,T3=f(T2)=a×T2+b。根据T3确定Tse的搜索右边界(RBorder,Right Border),使T3处于搜索范围的中间,即RBorder=T3+SynRSL(2).LTRP。服务器采用左同余定位方式,由RBorder和Ts(SynRSL).LOD确定Ts的估值Tse。
这里,Tse=RBorder-((RBorder-Ts(SynRSL).LOD)mod SynRSL)
=T3+SynRSL(2).LTRP
-((T3+SynRSL(2).LTRP-Ts(SynRSL).LOD)mod SynRSL)
=a×T2+b+SynRSL(2).LTRP
-((a×T2+b+SynRSL(2).LTRP-Ts(SynRSL).LOD)mod SynRSL)
由于T3处于搜索范围的中间,无论Ts在T3之前,还是在T3之后,只要Ts与T3的距离没有达到SynRSL(2).LTRP,则,得到的Ts的估值Tse就和Ts相等。
当然,如果预期Ts比T3小的话,可以直接将RBorder设置为T3。
如果统计发现大多数情况下Ts小于T3,还可以设置RBorder=T3+SynRSL(8).LTRP。
步骤2103,服务器根据SynK2与Tse对SynTMC进行一致性验证,并在验证通过时,执行更新操作。所述更新操作包括:对所述映射关系进行修改、将TLST更新为Tse、将SvrLST更新为T2。
在步骤2103中,所述一致性验证是:服务器根据SynK2与Tse进行相应的计算,判断计算结果与接收的SynTMC是否一致,例如是否相等。如果一致,则对该终端验证通过;否则,认为该终端非法。所述一致性验证失败时,结束流程。
这里,对所述映射关系进行修改是指:对同步参数a与b的值进行更新。本发明提供一种更新方式如下:根据上次同步时间和本次同步时间,对a进行更新;而后根据本次同步时间、以及a的值对b进行更新。例如:
将a设置为(Tse-TLST)÷(T2-SvrLST),而后将b设置为(Tse-a×T2)。
这里,对于SvrClk的一个时间X,当X)T2时,
Y=f(X)=a×X+b=Tse+a×(X-T2)
=Tse+a×X-a×T2=a×X+Tse-a×T2,
由此得到,b=Tse-a×T2。
一般地,当TLST为初始值0时,保持a的值为初始值,例如1不变,而只更新b的值。
当a=1时,或者是不考虑同步参数a时,b=Tse-T2。
由于SynRSL可以设置得足够大,因此,在步骤2102中,服务器在确定估值Tse时,也可以直接根据T2确定RBorder,例如,RBorder=T2+SynRSL(3).LTRP。相比TClk与VClk之间的偏差是上次同步到本次同步期间产生的阶段性偏差,由于累积效应,TClk与SvrClk偏差可能很大,因此,直接根据T2确定RBorder时,对应SynRSL应该设置得更长,以达到根据T3确定RBorder时的效果。后面不再赘述。
通过更新a和/或b来对VClk进行校正,将失去同步的TClk与VClk重新校正到同步状态,保证后续认证流程的正常进行。
在该施例中,服务器还可以进一步针对对应终端保存TLVT,并在步骤2103之前,进一步根据对应的TLVT判断Tse是否可接受,例如,判断Tse是否大于TLVT,如果是,则执行步骤2103;否则,结束流程;在步骤2103中对所述终端验证通过后,将对应的TLVT的值更新为Tse。
所述SynK1可以是第一密钥K1,相应的,所述SynK2是第二密钥K2。在步骤2101中,还可以进一步根据TClk获取第一时间T1。所述SynTMC是根据K1与T1进行计算得到。计算SynTMC时,可以按如下两种方式之一进行:
方式一、先得到T1(LogRSL).RTRP,根据K1与T1(LogRSL).RTRP进行计算,得到登录编码LogTMC,将LogTMC作为SynTMC。相应地,在步骤2103中,所述服务器根据SynK2与Tse进行相应的计算是:先得到Tse(LogRSL).RTRP,再根据K2与Tse(LogRSL).RTRP进行相应的计算。所述LogRSL是登录参考步长。
方式二、先得到T1(LogRSL).LOD,根据K1与T1进行计算,得到登录编码LogTMC,将LogTMC和T1(LogRSL).LOD拼接在一起作为SynTMC。相应地,在步骤2103中,所述服务器根据SynK2与Tse进行相应的计算是:先根据Tse得到T1e,再根据K2与T1e进行相应的计算。这里T1e=Tse+L-((Tse+L-T1(LogRSL).LOD)mod LogRSL),L为允许的T1与Ts的最大间隔距离。所述LogRSL是登录参考步长。
由于同步编码的预期寿命等于SynRSL,一般很长,例如SynRSL为300小时,因此,上述时间同步流程,也即,参数更新流程的安全风险就随之增加。例如,攻击者截获客户同步消息,干扰该操作,使同步操作不成功,待客户第二次输入同步消息,截获第二次的同步消息后,将第一次同步消息发送给服务器;并向客户返回执行成功消息,等客户输入登录消息,截获该登录消息,并干扰使客户无法执行;同时将截获的第二次的同步消息和截获的登录消息发送给远端电脑,攻击者通过远端电脑就可以很从容地将第二次同步口令发送给服务器,待同步流程执行成功后,通过截获的登录口令就可以成功登入服务器,将合法客户的钱转走。
上述攻击过程虽然有一定的技术难度,并且需要客户配合,但毕竟是一种安全风险。为此,本发明还提出进一步根据第二认证途径对上述同步参数更新方法第一实施例流程的安全性进行加强。
如图7所示,为本发明同步参数更新方法第二实施例流程图。在该实施例中,服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;服务器还可以针对对应终端保存TLST和SvrLST;在终端保存SynK1,在服务器中针对对应终端保存配对的SynK2。
首先在步骤2201,终端根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD;根据SynK1与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更新为Tse,将SvrLST更新为T2。所述正确的密码是指所述产生的密码相关信息所对应的密码,例如,密码相关信息是密码本身,则所述对应的密码为该密码;密码相关信息是口令卡上的密码坐标,则所述对应的密码为该密码坐标标示的密码。
关于如何对所述映射关系进行修改,参见步骤2103,这里不再赘述。
服务器收到含有密码的回复后,如果判断回复的密码与所产生的密码不一致,不认为同步验证通过。服务器在指定的时间,例如60秒内没有收到正确的密码回复时,结束流程,这样,可以防止同步消息被截获、干扰,并挪用,从而,使得同步参数更新流程更加安全。
服务器可以针对对应终端保存通信终端的通信地址信息,所述等待含有密码的回复,可以是等待源自所述通信地址信息的回复。例如,该通信地址为一电话号码,服务器在将所述密码按照该电话号码通过短消息发送给对应通信终端后,由该通信终端返回服务器一个短消息,短消息中包含了该密码。服务器接收短消息时,根据主叫号码可以得到该密码所对应的终端。
所述等待含有密码的回复,可以是等等一个含有密码和密码标识的回复,所述将该密码相关信息发送给用户侧还包括发送对应的密码标识。例如,该通信地址为一电话号码,服务器将所述密码和对应的密码标识按照该电话号码通过短消息发送给对应通信终端,用户通过该通信终端接收到所述密码和对应的密码标识后,可以以任意一种方式,例如通过email方式,将所述密码和对应的密码标识发送给服务器,服务器收到所述密码和对应的密码标识后,根据该密码标识可以得到该密码所对应的终端。这里,服务器可以临时产生的一个序列号作为所述密码标识,服务器进一步建立该序列号与对应终端的对应关系;服务器也可以将对应终端的相关信息作为所述密码标识。
所述等待含有密码的回复,可以是通过一个会话等待回复,所述会话针对对应终端建立,例如建立会话ID与该终端的对应关系,或者在会话属性中包括该终端的相关信息。例如,服务器收到用户发起的时间同步请求后,提供一个时间同步网页,用户通过该网页输入在步骤2201中由终端产生的SynTMC和Ts(SynRSL).LOD;服务器在执行步骤2204时,还提供一个用于密码回复的网页,用户通过该网页输入用户侧得到的密码。服务器收到该密码后,可以得到该密码所对应的终端。所述时间同步请求可以包括对应终端的相关信息,参见步骤2201。
关于通信地址信息的描述,参见步骤2204,这里不再赘述。
在步骤2204中,服务器在根据所述终端相关信息将该密码相关信息发送给用户侧时,还可以进一步发送在步骤2202中接收的SynTMC或Ts(SynRSL).LOD,以便用户收到这些信息后进行确认。
在该施例中,服务器还可以进一步针对对应终端保存TLVT,并在步骤2203之前,可以进一步根据对应的TLVT判断Tse是否可接受,例如,判断Tse是否大于TLVT,如果是,则执行步骤2203;否则,结束流程;在步骤2203中对所述终端验证通过后,或者是在步骤2205中同步验证通过后,将对应的TLVT的值更新为Tse。
服务器将产生的密码相关信息发送给用户侧的操作也可以在步骤2201之前执行。
如图8所示,为本发明同步参数更新方法第三实施例流程图。在该实施例中,服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;服务器还可以针对对应终端保存TLST和SvrLST;在终端保存SynK1,在服务器中针对对应终端保存配对的SynK2。
首先在步骤2301,将终端相关信息发送给服务器。
所述终端相关信息可以是终端的编号,也可以是与该终端建立关联关系的PIN码,或与该终端建立关联关系的会话标识。
步骤2302,服务器收到所述终端相关信息后,产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧,以便用户侧得到相应的密码。
关于服务器如何根据所述终端相关信息将产生的密码相关信息发送给用户侧,以及用户侧如何得到相应的密码的描述,参见步骤2204,这里不再赘述。
步骤2303,相应的终端根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD;根据SynK1与Ts进行计算,得到同步编码SynTMC。
步骤2304,根据用户侧得到的密码加密Ts(SynRSL).LOD,得到密文,将该密文和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。
同步参数更新方法第一至第三实施例通过向服务器发送基于同步密钥SynK1和终端时间的同步编码SynTMC,以及终端时间的相关信息,使服务器能够完成对接收信息的确认,从而实现对所述同步参数的更新。实际当中,也可以只向服务器传送终端时间的相关信息,服务器通过第二认证途径完成对接收的终端时间的相关信息的确认。
如图9所示,为本发明同步参数更新方法第四实施例流程图。在该实施例中,服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;服务器还针对对应终端保存TLST和SvrLST。
首先在步骤2401,将终端相关信息发送给服务器。参见步骤2301。
步骤2402,服务器收到所述终端相关信息后,产生密码相关信息,根据所述终端相关信息将该密码相关信息发送给用户侧,以便用户侧得到相应的密码。参见步骤2302。
步骤2403,相应的终端根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD。
步骤2404,根据用户侧得到的密码与Ts(SynRSL).LOD,产生密文;将所述密文与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,将SvrLST更新为T2。
关于如何得到Ts的估值Tse,参见步骤2102,关于如何对所述映射关系进行修改,参见步骤2103,这里不再赘述。
在该施例中,服务器还可以进一步针对对应终端保存TLVT,并在步骤2406中,进一步根据对应的TLVT判断Tse是否可接受,例如,判断Tse是否大于TLVT,如果是,则执行所述更新操作;否则,结束流程。所述更新操作还包括将对应的TLVT的值更新为Tse。
在该实施例中,在终端没有保存SynK1,在服务器中也没有针对该终端保存配对的SynK2。对源自终端的同步请求的认证依赖于服务器产生的密码相关信息所对应的密码。
在同步参数更新方法第四实施例中,服务器在根据所述终端相关信息将该密码相关信息发送给用户侧后,如果在指定时间内,例如60秒内收不到所述密文和Ts(SynRSL).LOD时,可以结束该次同步参数更新流程。这样,就保证了所产生的密码相关信息所对应的密码的时效性,防止攻击者在后期挪用截获的所述密文和Ts(SynRSL).LOD。
下面以本发明同步参数更新方法应用于金融账户的终端时钟漂移的再同步为例进行说明,在金融领域,所述终端一般是动态令牌。
如图10所示,为本发明同步参数更新方法第五实施例流程图。在该实施例中,服务器侧根据动态令牌编号将动态令牌和PIN码绑定;服务器侧针对对应动态令牌,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;服务器还可以针对对应动态令牌保存TLVT、TLST和SvrLST;在动态令牌保存SynK1,在服务器侧针对对应动态令牌保存配对的SynK2;在服务器侧针对对应动态令牌保存通信地址信息。
关于通信地址信息的相关描述,参见步骤2204,这里不再赘述。
首先在步骤2501,客户端获取PIN码,以及动态令牌根据保存的SynK1与TClk当前时间Ts进行计算产生的第一同步编码SynTMC1和Ts的相关信息Ts(SynRSL).LOD。
例如,所述动态令牌设置有同步按钮。通过按压该同步按钮,指示动态令牌产生所述SynTMC1和时间相关信息。动态令牌得到所述指示后,根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD;根据SynK1与Ts进行计算,得到同步编码SynTMC1。将所述SynTMC1和Ts(SynRSL).LOD一次显示出来,或分两次分别显示出来。
步骤2502,客户端将获取的PIN码、SynTMC1和Ts(SynRSL).LOD发送给服务器。
步骤2503,服务器收到所述PIN码、SynTMC1和Ts(SynRSL).LOD后,根据SvrClk获取第二时间T2,并根据Ts(SynRSL).LOD得到Ts的估值Tse。
这里,在计算Tse时,还可以结合所述PIN码对应的VClk来进行。例如,服务器根据该PIN码对应的映射关系得到第三时间T3,即:T3=f(T2)=a×T2+b。而后根据T3和Ts(SynRSL).LOD得到Tse。
具体参见步骤2102以及针对步骤2102的相关说明,这里不再赘述。
步骤2504,服务器根据该PIN码对应的TLVT判断Tse是否可接受,如果可接受,则执行步骤2505;否则,结束流程。
一般地,判断Tse是否可接受是指,判断Tse是否大于TLVT,如果是,则可接受,否则,不予接受。
判断Tse是否可接受还可以是判断是否(Tse>TLVT且(Tse-TLST)>SynRSL(3).LTRP),如果是,则可接受,否则,认为同步请求过于频繁,不予接受。
步骤2505,服务器根据所述PIN码,获取相应的SynK2;根据SynK2与Tse对接收的SynTMC1进行一致性验证,如果一致,则执行步骤2506;否则,结束流程。
这里,所述一致性验证是:根据SynK2与Tse进行相应的计算,判断计算结果与接收的SynTMC1是否一致,例如是否相等。如果一致,则对所述客户端验证通过;否则,认为该客户端非法。
步骤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的值,或该值的指示值,例如,终端和服务器约定:1表示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,所述动态令牌保存第一密钥K1和第一同步密钥SynK1。
所述服务器设置有SvrClk;所述服务器根据PIN码,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+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获取第一时间T1,基于LogRSL,根据K1与T1进行计算,得到LogDPswd。动态令牌还将产生的LogDPswd输出出来。
所述基于LogRSL,根据K1与T1进行计算,得到LogDPswd是按如下两种方式之一进行:
方式一、动态令牌得到T1(LogRSL).RTRP,根据K1与T1(LogRSL).RTRP进行计算得到第一登录编码LogTMC1,将LogTMC1作为LogDPswd;
方式二、动态令牌得到T1(LogRSL).LOD;根据K1与T1进行计算,得到LogTMC1,将LogTMC1和T1(LogRSL).LOD拼接在一起作为LogDPswd。
所述产生SynDPswd是指:动态令牌根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据SynK1与Ts进行计算,得到第一同步编码SynTMC1,将SynTMC1和Ts(SynRSL).LOD作为SynDPswd;动态令牌还将产生的SynDPswd输出出来。
动态令牌在输出SynDPswd时,可以将SynTMC1和Ts(SynRSL).LOD分别作为SynDPswd的第一部分和第二部分,一次输出出来,或分两次分别输出出来,例如,将SynTMC1和Ts(SynRSL).LOD拼接在一起输出,或者,输出SynTMC1后过5秒钟再输出Ts(SynRSL).LOD,或者,根据接收的索取SynDPswd的指令的次序,例如奇数次或偶数次,来分别输出SynTMC1和Ts(SynRSL).LOD,或者,分别设置用于索取SynTMC1和Ts(SynRSL).LOD按钮,通过不同按钮接收不同的指令信息来分别输出SynTMC1或Ts(SynRSL).LOD。
动态令牌输出相关口令时,可以将相应的口令转换成10进制或16进制或32(10至31可分别用A至U表示)进制形式输出出来。
接收到客户端发送的包含PIN码和LogDPswd的登录请求后,服务器针对该PIN码,对LogDPswd进行一致性验证,如果一致,则将TLVT更新为所述T1的估值T1e,并可以进一步执行启动服务的相关操作。
当动态令牌按照方式一计算LogDPswd时,服务器针对所述PIN码,对LogDPswd进行一致性验证是指:根据该PIN码对应的VClk,按照步骤1202的方式,得到时间估值T1e,根据T1e和该PIN码对应的K2进行计算,判断计算结果与LogDPswd,也即LogDPswd中的LogTMC1是否一致,例如是否相等。具体参见步骤1203,这里不再赘述。
当动态令牌按照方式二计算LogDPswd时,服务器针对所述PIN码,对LogDPswd进行一致性验证是指:根据该PIN码对应的VClk,按照步骤1302的方式,得到时间估值T1e,根据T1e和该PIN码对应的K2进行计算,判断计算结果与LogDPswd,也即LogDPswd中的LogTMC1是否一致,例如是否相等。具体参见步骤1303,这里不再赘述。
接收到客户端发送的包含PIN码和SynDPswd的同步请求后,服务器针对所述PIN码,根据SynDPswd中携带的Ts(SynRSL).LOD得到时间估值Tse,并在根据TLVT判断出Tse可接受时,根据Tse和SynK2对SynDPswd中的SynTMC1进行一致性验证,如果一致,则针对所述PIN码执行更新操作。所述更新操作是:将TLVT和TLST更新为Tse,将SvrLST更新为SvrClk的时间T2,并根据Tse、T2以及保存的TLST和SvrLST对所述映射关系进行修改。关于如何得到Ts的估值Tse,参见步骤2102;关于如何对所述映射关系进行修改,参见步骤2103,这里不再赘述。关于如何根据Tse和SynK2对SynDPswd中的SynTMC1进行一致性验证,参见步骤2101至步骤2103,以及针对该实施例的关于所述SynK1可以是第一密钥K1的相关描述,这里不再赘述。
当针对所述PIN码,根据TLVT判断出Tse不可接受时,结束流程。
无论是接收到客户登录请求,还是接收到客户同步请求,当相关一致性验证通不过时,都结束流程。
一般地,LogDPswd、SynDPswd中的SynTMC1为6至8位10进制数。
当SynDPswd中的Ts(SynRSL).LOD为6位10进制数表示的秒数时,就可以保证TClk与SvrClk真实偏差在277小时(999999/3600)以内的情况下,对相应VClk进行有效的更新。参见步骤2102,这里不再赘述。
可以看出,所述服务器通过分别响应登录请求和同步请求,既保证登录请求所述入的LogDPswd不会太长,又保证了在VClk与TClk偏差足够大时,也能够通过所述参数更新流程,使VClk与TClk重新同步,从而保证正常登录流程的有效进行。
所述SynK1和所述K1可以是同一密钥,相应的,所述SynK2和所述K2也是同一密钥。这种情况下,动态令牌产生SynTMC1和产生LogTMC1时,可以根据不同的算法来进行计算,或者,直接将LogDPswd作为SynTMC1。
不难理解,所述服务器还可以进一步根据PIN码保存UsrPswd。对于登录请求,所述客户端在获取PIN码和LogDPswd时进一步获取UsrPswd1;客户端在将所述LogDPswd发送给服务器时,先用UsrPswd1与LogDPswd进行运算,将得到的运算结果发送给服务器。例如,当动态令牌按照方式一计算LogDPswd时,所述将所述PIN码和LogDPswd发送给服务器是指:客户端根据UsrPswd1和LogDPswd进行计算得到MAC,将所述PIN码、MAC发送给服务器;服务器针对该PIN码,根据VClk得到时间估值T1e,根据T1e、K2以及UsrPswd对MAC进行一致性验证,如果一致,则启动服务,并将TLVT更新为T1e;当动态令牌按照方式二计算LogDPswd时,所述将所述PIN码和LogDPswd发送给服务器是指:客户端根据UsrPswd1和LogDPswd进行计算,产生MAC,将所述PIN码、MAC,以及LogDPswd中的所述T1(LogRSL).LOD发送给服务器;相应地,服务器针对该PIN码,进一步根据T1(LogRSL).LOD计算T1e,根据K2、UsrPswd与T1e对接收的MAC进行一致性验证,如果一致,则启动服务,并将TLVT更新为T1e。具体参见步骤1202、1302,以及步骤1401至1404的相关描述,这里不再赘述。
不难理解,对于所述登录请求或同步请求,将其中的所述PIN码置换为动态令牌的标识,例如动态令牌编号,可以达到同样效果。
一种动态令牌,包括:电源模块、时钟系统TClk、存储单元、动态口令生成单元,输入模块、输出模块。所述存储单元保存第一密钥K1。
在所述存储单元设置登录参考步长LogRSL和同步参考步长SynRSL,或约定LogRSL和SynRSL。例如,约定LogRSL为60,SynRSL为999999。
如图12所示,为本发明动态令牌模块组成图。
动态口令生成单元用于生成登录口令LogDPswd和同步时间相关信息。
所述生成LogDPswd是指:动态口令生成单元根据TClk获取第一时间T1,基于LogRSL,根据K1与T1进行计算,得到LogDPswd。
所述基于LogRSL,根据K1与T1进行计算,得到LogDPswd是按如下两种方式之一进行:
方式一、动态口令生成单元得到T1(LogRSL).RTRP,根据K1与T1(LogRSL).RTRP进行计算得到第一登录编码LogTMC1,将LogTMC1作为LogDPswd;
方式二、动态口令生成单元得到T1(LogRSL).LOD;根据K1与T1进行计算,得到LogTMC1,将LogTMC1和T1(LogRSL).LOD拼接在一起作为LogDPswd。
所述生成同步时间相关信息是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,将Ts(SynRSL).LOD作为同步时间相关信息。
这里,LogDPswd与Ts(SynRSL).LOD组成一个同步口令SynDPswd,即,将LogDPswd作为SynDPswd中的第一同步编码SynTMC1。
所述输入模块用于接收索取口令的指令,并将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据得到的待输出口令类型,生成LogDPswd或Ts(SynRSL).LOD,相应地,通过输出模块输出生成的LogDPswd或Ts(SynRSL).LOD。
所述输出模块可以是显示装置。为避免用户混淆LogDPswd和Ts(SynRSL).LOD,这里还提供了一种显示方法,通过该方法,动态令牌在显示LogDPswd或Ts(SynRSL).LOD时,可以进行区别显示,以便于客户识别,本发明提供如下几种显示方式:
方式一、通过字体风格来区别显示LogDPswd和Ts(SynRSL).LOD。例如用正体字显示LogDPswd,用斜体字显示Ts(SynRSL).LOD。
方式二、通过显示字符集来区别显示LogDPswd和Ts(SynRSL).LOD。例如用数字(例如0到9的十进制)显示LogDPswd,用字母(例如从A到P替代从0到15的16进制)显示Ts(SynRSL).LOD。
方式三、通过类型标记来区别显示LogDPswd和Ts(SynRSL).LOD。这里的类型标记可以是一个前导字符,例如,前导字符“*”或“0”表示LogDPswd,前导字符“#”或“1”表示Ts(SynRSL).LOD。
方式四、通过口令的若干bit位来区别显示LogDPswd和Ts(SynRSL).LOD。可以通过口令末尾的一个bit位来区分口令类型。例如,口令尾部的一个bit位为0,表示LogDPswd,显示的十进制数为偶数;该bit位为1,表示Ts(SynRSL).LOD,显示的十进制数为奇数。用户、客户端或服务器还可以通过该bit位的值来区分不同的口令类型。
方式五、通过口令长度区别显示LogDPswd和Ts(SynRSL).LOD。例如,LogDPswd长6位,Ts(SynRSL).LOD长8位。
所述存储单元还可以保存上一次生成LogDPswd的时间(LastT1),动态口令生成单元在生成LogDPswd之前,可以判断获取自TClk的时间T1与LastT1差是否大于某一特定值,例如LogRSL,如果是,则生成LogDPswd的新值,并保存新LogDPswd、将LastT1更新为T1;否则,不执行生成LogDPswd的新值和更新LastT1的操作。
所述输入装置可以为按钮装置。
所述按钮装置包括登录按钮和同步按钮。通过所述登录按钮接收索取LogDPswd的指令,通过所述同步按钮接收索取Ts(SynRSL).LOD的指令。这种情况下,动态口令生成单元直接得到待输出口令类型。参见图13右图,为双按钮动态令牌的一种原型图。
较佳地,所述登录按钮和同步按钮为同一个按钮,通过该按钮接收索取口令的指令。动态口令生成单元接收到索取口令的指令后,产生LogDPswd和Ts(SynRSL).LOD,并同时显示产生的LogDPswd和Ts(SynRSL).LOD。例如第一行显示LogDPswd,第二行显示Ts(SynRSL).LOD。
或者,为节省显示装置的成本,动态口令生成单元根据接收的索取口令的指令的次序,决定生成LogDPswd或Ts(SynRSL).LOD。例如,通过两次或多次按压该按钮,可以向动态令牌交替发送索取LogDPswd或Ts(SynRSL).LOD的指令。参见图13左图,为单按钮动态令牌的一种原型图。
例如,所述存储单元可以保存口令类型(PswdType);动态口令生成单元接收到索取口令的指令后,更改PswdType值,动态口令生成单元根据PswdType确定待输出口令类型。这样,客户通过按压按钮可以交替索取LogDPswd或Ts(SynRSL).LOD。这里,PswdType为0时,对应LogDPswd;PswdType为1时,对应Ts(SynRSL).LOD。所述更改PswdType值是指,PswdType为0时,将PswdType更改为1;PswdType为1时,将PswdType更改为0。
较佳地,所述存储单元可以保存上一次生成LogDPswd的时间(LastT1)。动态口令生成单元收到索取口令的指令后,根据TClk获取时间T1,判断T1与LastT1差是否大于某一特定值,例如LogRSL,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd,将LastT1更新为T1,通过输出模块输出LogDPswd;否则,更改PswdType值,并根据PswdType,来决定通过输出模块输出生成的LogDPswd,还是输出生成的Ts(SynRSL).LOD。这样可以保证用户在一段时间以后,例如LogRSL对应的时间之后再次按下动态令牌按钮时,动态令牌第一时间总是显示产生的LogDPswd,并且只在一个LogRSL对应的时间窗内连续接收到索取口令的指令时,才会交替显示产生的Ts(SynRSL).LOD或LogDPswd。由于用户索取LogDPswd的频率更高,因此,这样做,更加符合UCD设计理念。
需要说明的是,动态口令生成单元在根据K1与T1生成LogDPswd时,总能同时生成Ts(SynRSL).LOD。这里,Ts与T1相同。
如图12所示,所述动态口令生成单元生成同步时间相关信息进一步是生成同步口令SynDPswd。
所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据K1与Ts进行计算,得到第一同步编码SynTMC1,将SynTMC1和Ts(SynRSL).LOD作为SynDPswd。
这里,计算SynTMC1算法可以与计算LogTMC1或LogDPswd的算法不同,以保证得到的SynTMC1不同于相应的LogTMC1或LogDPswd。从而增强SynDPswd的安全性。特别地,考虑到实现算法的成本开销可能较大,较佳地,所述存储单元进一步保存第一同步密钥SynK1。这种情况下,所述SynTMC1是根据SynK1与所述Ts进行计算得到。
所述输入模块用于接收索取口令的指令,并将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据得到的待输出口令类型,生成LogDPswd或SynDPswd,相应地通过输出模块输出生成的LogDPswd或SynDPswd。
所述输出模块可以是显示装置。在显示LogDPswd和SynDPswd时,可以按照上述区别显示LogDPswd和Ts(SynRSL).LOD的五种方式中任意一种方式来进行。这里不再赘述。
所述存储单元还可以保存上一次生成LogDPswd的时间(LastT1),动态口令生成单元在生成LogDPswd之前,可以判断获取自TClk的时间T1与LastT1差是否大于某一特定值,例如LogRSL,如果是,则生成LogDPswd的新值,并保存新LogDPswd、将LastT1更新为T1;否则,不执行生成LogDPswd的新值和更新LastT1的操作。
所述输入装置可以为按钮装置。
所述按钮装置包括登录按钮和同步按钮。通过所述登录按钮接收索取LogDPswd的指令,通过所述同步按钮接收索取SynDPswd的指令。这种情况下,动态口令生成单元直接得到待输出口令类型。参见图13右图,为双按钮动态令牌的一种原型图。
所述登录按钮和同步按钮为同一个按钮,通过该按钮接收索取口令的指令。动态口令生成单元接收到索取口令的指令后,产生LogDPswd和SynDPswd,并同时显示产生的LogDPswd和SynDPswd。例如第一行显示LogDPswd,第二行显示SynDPswd。
或者,为节省显示装置的成本,动态口令生成单元根据接收的索取口令的指令的次序,决定生成LogDPswd或SynDPswd。例如,通过两次或多次按压该按钮,可以向动态令牌交替发送索取LogDPswd或SynDPswd的指令。参见图13左图,为单按钮动态令牌的一种原型图。
所述存储单元可以保存口令类型(PswdType);动态口令生成单元接收到索取口令的指令后,更改PswdType值,动态口令生成单元根据PswdType确定待输出口令类型。这样,客户通过按压按钮可以交替索取LogDPswd或SynDPswd。这里,PswdType为0时,对应LogDPswd;PswdType为1时,对应SynDPswd。所述更改PswdType值是指,PswdType为0时,将PswdType更改为1;PswdType为1时,将PswdType更改为0。
较佳地,所述存储单元可以保存上一次生成LogDPswd的时间(LastT1);动态口令生成单元收到索取口令的指令后,根据TClk获取时间T1,判断T1与LastT1差是否大于某一特定值,例如LogRSL,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd,将LastT1更新为T1,通过输出模块输出LogDPswd;否则,更改PswdType值,并根据PswdType,来决定通过输出模块,输出生成的LogDPswd,还是输出生成的SynDPswd。
考虑到SynDPswd比LogDPswd要长得多,因此,在显示SynDPswd时,可以先显示SynDPswd的前一半,后显示SynDPswd的后一半,或反之,这样,可以分两次显示一个完整SynDPswd。较佳地,先显示SynTMC1,后显示Ts(SynRSL).LOD,或反之。
实际当中,所述按钮装置可以包括登录按钮、同步按钮和时间按钮等三个按钮。通过所述登录按钮接收索取LogDPswd的指令;通过所述同步按钮接收索取所述SynDPswd中的SynTMC1的指令,并将产生的SynDPswd中的SynTMC1显示出来;通过所述时间按钮接收索取SynDPswd中的Ts(SynRSL).LOD的指令。这种情况下,动态口令生成单元直接得到待输出口令类型。
较佳地,所述按钮装置可以包括登录按钮、同步按钮二个按钮。通过所述登录按钮接收索取LogDPswd的指令;通过所述同步按钮接收索取所述SynDPswd的指令,并根据同步按钮按下的次序决定显示产生的SynDPswd中的SynTMC1或Ts(SynRSL).LOD。
例如,所述存储单元可以保存口令类型(PswdType);动态口令生成单元接收到索取所述SynDPswd的指令后,更改PswdType值,动态口令生成单元根据PswdType确定待输出口令类型。这样,客户通过按压按钮可以交替索取所述SynTMC1或Ts(SynRSL).LOD。这里,PswdType为0时,对应SynTMC1;PswdType为1时,对应Ts(SynRSL).LOD。所述更改PswdType值是指,PswdType为0时,将PswdType更改为1;PswdType为1时,将PswdType更改为0。
所述存储单元可以保存上一次生成SynDPswd的时间(LastTs);动态口令生成单元收到索取所述SynDPswd的指令后,根据TClk获取时间Ts,判断Ts与LastTs差是否大于某一特定值,例如,LogRSL(16).LTRP,如果是,则将PswdType设置为0,即对应于SynTMC1,重新生成SynDPswd,将LastTs更新为Ts,通过输出模块输出SynDPswd中的SynTMC1;否则,更改PswdType值,并根据PswdType,来决定通过输出模块,输出已经生成的SynDPswd中的SynTMC1,还是SynDPswd中的Ts(SynRSL).LOD。
当然,所述登录按钮、同步按钮和时间按钮可以是同一个按钮。通过该按钮接收索取口令的指令。动态口令生成单元根据接收的索取口令的指令的次序,决定生成LogDPswd或SynDPswd,以及显示生成的LogDPswd或SynDPswd中的SynTMC1或SynDPswd中的Ts(SynRSL).LOD。
例如,所述存储单元可以保存口令类型(PswdType);动态口令生成单元接收到索取口令的指令后,更改PswdType值,动态口令生成单元根据PswdType确定待输出口令类型。这里,PswdType为0时,对应SynTMC1;PswdType为1时,对应SynDPswd中的SynTMC1;PswdType为2时,对应SynDPswd中的Ts(SynRSL).LOD。所述更改PswdType值是指,PswdType为0时,将PswdType更改为1;PswdType为1时,将PswdType更改为2;PswdType为2时,将PswdType更改为0。
所述存储单元可以保存上一次生成LogDPswd的时间(LastT1);动态口令生成单元收到索取口令的指令后,根据TClk获取时间T1,判断T1与LastT1差是否大于某一特定值,例如LogRSL,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd,将LastT1更新为T1,通过输出模块输出LogDPswd;否则,更改PswdType值,并根据PswdType,来决定通过输出模块,输出生成的LogDPswd,还是输出生成的SynDPswd中的SynTMC1,还是输出生成的SynDPswd中的Ts(SynRSL).LOD。
一般地,上述LastT1、LastTs、TLVT、TLST、SvrLST或PswdType的初始值为0。
特别说明,作为对本发明的简化应用,上述方法的各个实施方式或实施例中,以及所述认证系统中,如果不考虑同步参数a,即将a的值固定为1不变,所述映射关系只包含同步参数b,即,Y=f(X)=X+b,则不需要进行保存或更新TLST与SvrLST的操作。
上述各个实施方式或实施例中,或认证系统中,如果不考虑消息重放,则服务器可以不考虑TLVT因素,即,不需要进行保存或更新TLVT,以及根据TLVT判断Tse获T1e是否可接受的操作。经验丰富的技术人员应该理解,由于考虑TLVT因素并没有增加太多服务器的开销,因此,在实施本发明时,尤其是在金融领域应用本发明,都最好考虑TLVT因素。
上述方法的各个实施方式或实施例中,以及所述认证系统或所述动态令牌中,将所述时钟系统更改为事件计数系统,可以达到同样预期效果。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之类,所作的任何修改、改进、等同替换等均应包含在本发明的保护范围之内。
Claims (10)
1.一种相对同步认证方法,其特征在于,在终端保存第一密钥K1,在服务器中保存配对的第二密钥K2;在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法包括以下步骤:
A、终端根据TClk获取第一时间T1,根据K1与T1进行计算,得到登录编码LogTMC,将LogTMC发送给服务器;
B、服务器收到LogTMC后,根据对应的VClk得到T1的估值T1e;
C、服务器根据K2与T1e对接收的LogTMC进行一致性验证,如果一致,则对该终端验证通过;否则,认为该终端非法。
2.根据权利要求1所述的方法,其特征在于,LogTMC是基于登录参考步长LogRSL计算得到的;
在步骤A中,所述根据K1与T1进行计算是指,先得到T1(LogRSL).RTRP,而后根据T1(LogRSL).RTRP与K1进行计算;在步骤C中,所述服务器根据K2与T1e对接收的LogTMC进行一致性验证是指,得到T1e(LogRSL).RTRP,根据T1e(LogRSL).RTRP与K2进行计算,判断计算结果与LogTMC是否一致;
或者,在步骤A中,进一步得到T1(LogRSL).LOD,将LogTMC发送给服务器时,进一步发送T1(LogRSL).LOD,在步骤B中,根据对应的VClk得到T1的估值T1e时,进一步根据T1(LogRSL).LOD进行。
3.根据权利要求1所述的方法,其特征在于,在终端进一步保存第一同步密钥SynK1,在服务器中进一步保存配对的第二同步密钥SynK2;所述方法基于同步参考步长SynRSL;所述方法进一步包括以下步骤:
D、终端根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD;根据SynK1生成同步编码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.一种同步参数更新方法,其特征在于,在终端保存第一同步密钥SynK1,在服务器中保存配对的第二同步密钥SynK2;在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法基于同步参考步长SynRSL;所述方法包括以下步骤:
A、终端根据TClk获取同步时间Ts;得到Ts(SynRSL).LOD;根据SynK1生成同步编码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)=a×X+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).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中,服务器进一步接收用户侧得到的密码,并判断接收的密码是否正确,如果正确,则执行后续相关操作,否则,结束流程。
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,所述动态令牌保存第一密钥K1和第一同步密钥SynK1;
所述服务器设置有SvrClk;所述服务器根据PIN码,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述服务器根据PIN码,保存配对的第二密钥K2和第二同步密钥SynK2,以及TLVT;
所述服务器和动态令牌还设置或约定登录参考步长LogRSL和同步参考步长SynRSL;
所述产生LogDPswd是指:动态令牌根据TClk获取第一时间T1,基于LogRSL,根据K1与T1进行计算,得到LogDPswd;
所述产生SynDPswd是指:动态令牌根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据SynK1生成第一同步编码SynTMC1,将SynTMC1和Ts(SynRSL).LOD作为SynDPswd;
收到含有PIN码和LogDPswd的登录请求后,服务器针对所述PIN码,根据VClk得到时间估值T1e,根据T1e和K2对LogDPswd进行一致性验证,如果一致,则将TLVT更新为T1e;
收到含有PIN码和SynDPswd的同步请求后,服务器针对所述PIN码,根据SynDPswd中携带的Ts(SynRSL).LOD得到时间估值Tse,并在根据TLVT判断出Tse可接受时,根据Tse和SynK2对SynDPswd中的SynTMC1进行一致性验证,如果一致,则将TLVT更新为Tse,并根据Tse和SvrClk的时间T2对所述映射关系进行修改。
9.一种动态令牌,其特征在于,包括:电源模块、时钟系统TClk、存储单元、动态口令生成单元,输入模块、输出模块;所述存储单元保存第一密钥K1;
在所述存储单元设置登录参考步长LogRSL和同步参考步长SynRSL,或约定LogRSL和SynRSL;
动态口令生成单元用于生成LogDPswd和同步时间相关信息;
所述生成LogDPswd是指:动态口令生成单元根据TClk获取第一时间T1,基于LogRSL,根据K1与T1进行计算,得到LogDPswd;
所述生成同步时间相关信息是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,将Ts(SynRSL).LOD作为同步时间相关信息;
所述输入模块用于接收索取口令的指令,并将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据得到的待输出口令类型,生成LogDPswd或Ts(SynRSL).LOD,相应地通过输出模块输出生成的LogDPswd或Ts(SynRSL).LOD。
10.根据权利要求9所述的动态令牌,其特征在于,所述动态口令生成单元生成同步时间相关信息进一步是生成同步口令SynDPswd;
所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据K1与Ts进行计算,得到第一同步编码SynTMC1,将SynTMC1和Ts(SynRSL).LOD作为SynDPswd;
或者,所述存储单元还保存第一同步密钥SynK1,所述生成SynDPswd是指:动态口令生成单元根据TClk获取同步时间Ts,得到Ts(SynRSL).LOD,根据SynK1与Ts进行计算,得到第一同步编码SynTMC1,将SynTMC1和Ts(SynRSL).LOD作为SynDPswd;
所述生成Ts(SynRSL).LOD,以及相应地通过输出模块输出生成的Ts(SynRSL).LOD,进一步是生成SynDPswd,相应地通过输出模块输出生成的SynDPswd。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110291485 CN103178949A (zh) | 2011-09-20 | 2011-09-20 | 相对同步认证方法、同步参数更新方法、认证系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110291485 CN103178949A (zh) | 2011-09-20 | 2011-09-20 | 相对同步认证方法、同步参数更新方法、认证系统及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103178949A true CN103178949A (zh) | 2013-06-26 |
Family
ID=48638585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110291485 Pending CN103178949A (zh) | 2011-09-20 | 2011-09-20 | 相对同步认证方法、同步参数更新方法、认证系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103178949A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023730A (zh) * | 2016-10-31 | 2018-05-11 | 丰田自动车株式会社 | 通信系统及通信方法 |
CN108418679A (zh) * | 2017-02-10 | 2018-08-17 | 阿里巴巴集团控股有限公司 | 一种多数据中心下处理密钥的方法、装置及电子设备 |
-
2011
- 2011-09-20 CN CN 201110291485 patent/CN103178949A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023730A (zh) * | 2016-10-31 | 2018-05-11 | 丰田自动车株式会社 | 通信系统及通信方法 |
CN108023730B (zh) * | 2016-10-31 | 2021-02-02 | 丰田自动车株式会社 | 通信系统及通信方法 |
CN108418679A (zh) * | 2017-02-10 | 2018-08-17 | 阿里巴巴集团控股有限公司 | 一种多数据中心下处理密钥的方法、装置及电子设备 |
CN108418679B (zh) * | 2017-02-10 | 2021-06-29 | 阿里巴巴集团控股有限公司 | 一种多数据中心下处理密钥的方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112805967B (zh) | 非接触式卡的密码认证的系统和方法 | |
US11297046B2 (en) | Systems and methods for cryptographic authentication of contactless cards | |
CN102377569B (zh) | 一种动态令牌解锁方法及系统 | |
CN103778374A (zh) | 可信终端、双信道卡、抗克隆芯片、芯片指纹和抗信道攻击的方法 | |
CN101789864B (zh) | 一种网上银行后台身份认证方法、装置及系统 | |
CN101197667A (zh) | 一种动态口令认证的方法 | |
CN103036681B (zh) | 一种密码安全键盘装置及系统 | |
CN101800645B (zh) | 一种身份认证方法、装置及系统 | |
CN113656775B (zh) | 一种带有效期的离线密码验证方法、系统及智能锁 | |
US11165586B1 (en) | Call center web-based authentication using a contactless card | |
US10880327B2 (en) | Systems and methods for signaling an attack on contactless cards | |
US20190306153A1 (en) | Adaptive risk-based password syncronization | |
CN102148837A (zh) | 一种动态令牌双向认证方法及系统 | |
KR101051420B1 (ko) | 안전 otp 생성 장치 및 방법 | |
KR101202245B1 (ko) | 이체정보로 생성되는 otp를 활용한 계좌이체시스템 및 방법 | |
CN201717873U (zh) | 一种身份认证装置及系统 | |
CN101488256B (zh) | 柜员身份认证系统及方法 | |
US9792607B2 (en) | System and method for mobile pin synchronization | |
CN104579659A (zh) | 用于安全性信息交互的装置 | |
US8756666B1 (en) | Generating authentication codes | |
CN103178949A (zh) | 相对同步认证方法、同步参数更新方法、认证系统及装置 | |
CN101777984A (zh) | 一种安全交易的方法和系统 | |
CN102142963A (zh) | 一种基于多重交易因子的挑战口令认证系统及方法 | |
US20230421368A1 (en) | Smart chip enabled one-time password resource distribution card | |
CN101272248A (zh) | 动态密码认证系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130626 |