CN103166907A - 相对同步认证方法、认证系统及装置 - Google Patents

相对同步认证方法、认证系统及装置 Download PDF

Info

Publication number
CN103166907A
CN103166907A CN 201110114688 CN201110114688A CN103166907A CN 103166907 A CN103166907 A CN 103166907A CN 201110114688 CN201110114688 CN 201110114688 CN 201110114688 A CN201110114688 A CN 201110114688A CN 103166907 A CN103166907 A CN 103166907A
Authority
CN
China
Prior art keywords
server
time
client
rsl
terminal
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
Application number
CN 201110114688
Other languages
English (en)
Inventor
王正伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN 201110114688 priority Critical patent/CN103166907A/zh
Publication of CN103166907A publication Critical patent/CN103166907A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了相对同步认证方法,该方法通过针对对应客户端,基于服务器时钟系统SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系,使VCLK逼近该客户端时钟系统TClk,从而保证基于时间同步的认证流程得以正常进行。本发明可以降低时间令牌的生产成本,并延长时间令牌的寿命,减少事件令牌派发成本,符合了节能环保要求。本发明还提供了同步参数更新方法,通过该方法,对所述映射关系进行更新,使偏离了TClk的VClk再次逼近TClk。本发明还提供一种认证系统、一种保安器。

Description

相对同步认证方法、认证系统及装置
技术领域
本发明涉及动态量同步,更确切地说涉及基于动态口令的鉴权,特别涉及基于时钟漂移的时间同步认证技术以及基于该技术的认证系统、保安器。
背景技术
动态口令技术以其卓越的防重放特点,已经提出,就很快被应用到身份认证领域。动态口令技术通过让用户密码按照挑战或时间或事件不断变化来防止消息重放攻击。基于动态口令的认证技术有:基于挑战/应答的异步认证技术,基于时间的同步认证技术,基于事件的同步认证技术。
基于动态口令技术的动态令牌,内置电源、存储动态口令根密钥的存储单元、动态口令生成单元、显示装置,以及一个密码生成驱动装置。所述驱动装置一般地是一个按钮,用户按压按钮时,动态口令生成单元根据获得的挑战(该挑战一般是服务器产生的一个随机数)或时间或事件次数,结合动态口令根密钥生成当前密码,通过显示装置显示出来。用于认证的服务器采用相应的算法,根据事先发送的挑战(该挑战一般是服务器产生的一个随机数)或获得的时间或事件次数,结合对应保存的动态口令根密钥可以判断出动态令牌产生的当前密码是否有效,因此,用户通过输入动态令牌显示的当前密码即可实现身份确认。由于所述当前密码根据所述挑战或时间或事件而动态变化,因此,可以保证用户每次使用的密码不同,从而实现防重放攻击。
基于异步认证技术的异步令牌还应包括挑战输入装置,基于时间同步认证技术的时间令牌还应包括时钟系统,基于事件同步认证技术的事件令牌还应包括存储事件次数的存储单元。
基于异步令牌的异步认证技术由于是双向的,耗时较长(例如通过短消息开启门禁系统),以及异步令牌需要输入挑战等,用户接受度较低,因此,目前使用较为广泛的动态令牌多为时间令牌或事件令牌。时间令牌和事件令牌都要求与服务器保持同步,否则,产生的动态密码将被服务器视为无效。但是,由于时钟脉冲的不确定性偏移的客观存在会导致时钟时间的漂移,导致时间令牌的时钟与服务器的时钟不再同步,从而使时间令牌无效;同样,由于用户无意思地按下令牌按钮而产生口令,使事件令牌的事件次数不再与服务器保存的事件次数同步,从而使事件令牌无效。
目前针对时间同步和事件同步的方法很多,大多是通过让服务器干粗活的方式,一个一个地尝试匹配可能的时间值或事件值,从而发现时间令牌的真实时间或事件令牌的真实事件次数,例如编号为US_4885778的专利揭示的一种时间同步和具体验证用户的方法。这种方式无疑大大节省了攻击者攻击服务器的成本。还有一种通过向服务器传送一个时间偏移量来完成具有有限时钟漂移的认证,例如编号为US_5887065的专利揭示的一种具有时间同步的用户认证系统,这种认证方法需要每次认证时向服务器传送时间偏移量,从而增加用户输入;另外,还由于其所支持的时钟漂移范围所限(因为所述范围设置的太大会因增加口令的有效期,即预期寿命,从而降低系统安全),在时间漂移出了设置的范围后,时间令牌也将被报废,例如用户隔了很久才登录一次服务器。
发明内容
有鉴于此,本发明提供了一种相对同步认证方法,通过该方法解决了时间令牌的时钟漂移所带来的客户端与服务器时间不一致问题,增强了基于时间的同步认证系统的健壮性。
一种相对同步认证方法,包括服务器和终端,其特征在于,在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;该方法包括以下步骤:
A、在终端保存第一密钥K1,在服务器中保存配对的第二密钥K2;
B、终端根据TClk获取第一时间T1,根据K1与T1进行计算,得到时间诱变编码TMC,将TMC发送给服务器;
C、服务器收到TMC后,根据VClk得到T1的估值Te;
D、服务器根据K2与Te判断接收的TMC是否合法,如果合法,则对该终端认证通过;否则,认为该终端非法。
所述方法进一步包括设置参考步长RSL;
所述根据K1与T1进行计算是指,先得到T1(RSL).RTRP,而后根据T1(RSL).RTRP与K1进行计算;所述服务器根据K2与Te判断接收的TMC是否合法是指,得到Te(RSL).RTRP,根据Te(RSL).RTRP与K2进行计算,判断计算结果与TMC是否一致,如果一致,则TMC合法,否则,TMC不合法;
或者,步骤B进一步得到T1(RSL).LOD,将TMC发送给服务器时,进一步发送T1(RSL).LOD,步骤C所述根据VClk得到T1的估值Te时,进一步根据T1(RSL).LOD进行。
一种同步参数更新方法,包括服务器和终端,其特征在于,在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;服务器还针对对应终端保存终端最后一次验证时间TLVT;所述方法包括以下步骤:
A、在终端保存第一同步密钥SynK1,在服务器中保存配对的第二同步密钥SynK2;
B、终端根据TClk获取第一时间T1,根据SynK1与T1进行计算,得到时间诱变编码TMC,将TMC和T1的相关信息发送给服务器;所述T1的相关信息是T1自身或T1基于某参考步长RSL的左偏距;
C、服务器收到TMC和T1的相关信息后,根据SvrClk得到第二时间T2;根据所述T1的相关信息得到T1的估值Te;
D、服务器根据TLVT判断出Te可接受时,根据SynK2与Te判断接收的TMC是否合法,如果合法,则根据Te、T2,对所述映射关系进行修改,并将TLVT更新为Te;否则,认为该终端非法,并结束流程。
所述映射关系为Y=f(X)=a×X+b,所述a与b为同步参数;
服务器进一步针对对应终端保存终端最后一次同步时间TLST与服务器最后一次同步时间SvrLST;
服务器判断接收的TMC合法时,根据Te、T2,以及TLST与SvrLST,对所述映射关系中相关同步参数a或b进行修改,并将TLVT和TLST更新为Te,将SvrLST更新为T2。
一种相对同步认证方法,包括服务器、客户端,以及保安器,其特征在于,所述保安器中设置有第一时钟系统TClk,并保存第一密钥K1;在所述服务器设置第二时钟系统SvrClk;所述服务器根据个人识别码即PIN码,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系,并针对该保安器保存配对的第二密钥K2,以及终端最后一次验证时间TLVT;所述方法包括:
A、在服务器根据PIN码,保存对应的用户密码UsrPswd;
B、客户端获取PIN码、用户密码UsrPswd1和第一动态密码DPswd1;
所述DPswd1由所述保安器产生,所述保安器根据TClk获取第一时间T1,根据K1与T1进行计算,得到第一时间诱变编码TMC1,将TMC1转换成10进制或16进制或32进制形式作为DPswd1显示出来,由客户输入客户端;
C、客户端根据UsrPswd1和DPswd1进行计算,产生消息认证编码MAC,将所述PIN码、MAC发送给服务器。
D、服务器收到所述PIN码、MAC后,根据该PIN码对应的VClk得到T1的估值Te;
E、服务器判断Te可接受时,根据所述PIN码获取相应的K2和UsrPswd,根据相应的UsrPswd、K2与Te判断接收的MAC是否合法,如果是,则对客户端认证成功,将Te保存为TLVT,并执行启动服务的操作;否则,认为客户端非法,结束流程。
一种同步参数更新方法,包括服务器、客户端,以及保安器,其特征在于,所述保安器中设置有第一时钟系统TClk,并保存第一密钥K1;在所述服务器设置第二时钟系统SvrClk;所述服务器根据个人识别码即PIN码,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系,并针对该保安器保存配对的第二密钥K2,以及终端最后一次验证时间TLVT;所述方法包括:
A、服务器根据PIN码保存对应的用户密码UsrPswd;
B、客户端获取PIN码、用户密码UsrPswd1、第一时间诱变编码TMC1、时间相关信息;
所述TMC1由所述保安器产生,所述保安器根据TClk获取第一时间T1,根据K1与T1进行计算,得到TMC1,所述时间相关信息是T1自身或T1基于某参考步长RSL的左偏距,所述保安器将TMC1与所述时间相关信息显示出来,由客户输入客户端;
C、客户端根据UsrPswd1和TMC1进行计算,得到消息认证编码MAC;将MAC和所述PIN码、以及所述时间相关信息发送给服务器;
D、服务器收到MAC、所述PIN码,以及所述时间相关信息后,根据SvrClk得到第二时间T2;根据所述相关信息得到T1的估值Te;
E、服务器根据TLVT判断Te可接受时,根据所述PIN码获取相应的K2和UsrPswd,根据Te、K2与UsrPswd判断接收的MAC是否合法,如果合法,则对客户端认证成功,针对PIN码,根据Te、T2对所述映射关系进行修改,并将TLVT更新为Te;否则,对客户端认证失败,结束流程。
所述映射关系为Y=f(X)=a×X+b,所述a与b为同步参数;
服务器进一步根据PIN码保存终端最后一次同步时间TLST与服务器最后一次同步时间SvrLST;
服务器判断接收的TMC合法时,针对所述PIM码,根据Te、T2,以及TLST与SvrLST,对所述映射关系中相关同步参数a或b进行修改,并将TLVT和TLST更新为Te,将SvrLST更新为T2。
一种认证系统,其特征在于,包括:服务器、客户端和保安器;所述保安器中设置有第一时钟系统TClk,并保存第一密钥K1;所述保安器用于产生携带时间诱变编码TMC的登录口令LogDPswd或携带相关时间信息的同步口令SynDPswd;所述TMC是根据取自TClk的时间T1和K1计算得到;所述保安器设置一个显示装置和一个按钮,通过所述按钮收到按压指令时,保安器交替产生LogDPswd或SynDPswd;
所述客户端用于接收客户登录请求或同步请求,并对相应请求进行加密处理后提交给所述服务器;
所述服务器设置有第二时钟系统SvrClk;所述服务器根据PIN码,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述服务器根据PIN码,保存配对的第二密钥K2以及用户密码UsrPswd、终端最后一次验证时间TLVT;
所述客户端接收客户登录请求时,获取客户输入的PIN码、用户密码UsrPswd1和LogDPswd;根据UsrPswd1和LogDPswd进行计算得到消息认证编码MAC,将所述PIN码、MAC发送给服务器;服务器根据PIN码对应VClk得到TClk的时间估值Te,并在根据TLVT判断出Te可接受时,根据Te、K2以及UsrPswd判断MAC是否合法,如果是,则启动服务,并将TLVT更新为Te;否则,认为客户端非法,结束流程;
所述客户端接收客户同步请求时,获取客户输入的PIN码、用户密码UsrPswd1以及LogDPswd和SynDPswd;根据UsrPswd1和LogDPswd进行计算得到消息认证编码MAC,将所述PIN码、MAC以及SynDPswd中携带的时间信息发送给服务器;服务器根据SynDPswd中携带的时间信息得到TClk的时间估值Te,并在根据TLVT判断出Te可接受时,根据Te、K2以及UsrPswd判断MAC是否合法,如果是,则针对所述PIN码,将TLVT更新为Te,并根据Te、取自SvrClk的时间对所述映射关系进行修改。
一种保安器,其特征在于,包括:电源模块、时钟系统、存储单元、动态口令生成单元、输入模块、输出模块;所述存储单元用于保存第一密钥K1;输入模块用于接收口令生成指令,将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据时钟系统获得当前时间T1,得到待输出口令类型,按照待输出口令类型决定根据K1与T1生成登录口令LogDPswd或者根据T1生成同步口令SynDPswd,相应地通过输出模块输出已生成的LogDPswd或SynDPswd。
所述存储单元进一步保存口令类型PswdType,以及上一次生成LogDPswd的时间,即LastT1;动态口令生成单元收到生成口令的指令后,根据时钟系统获取时间T1,判断T1与LastT1差是否大于某一特定值,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd和SynDPswd,通过输出模块输出LogDPswd;否则,更改PswdType值,并根据PswdType,通过输出模块,输出已经生成的LogDPswd或SynDPswd。
本发明通过构建虚拟时钟系统,来达到终端(即时间令牌)时钟系统和服务器时钟系统的相对同步,从而保持终端和服务器基于时间变化的一致性。这样,不论时间令牌和服务器的时间偏差如何变化,都不影响认证的准确性和安全性,从而彻底解决了长期困扰时间令牌的时钟漂移问题,并为时间令牌的成本降低和环境适应性提高提供技术保障。另外,令牌也不会因为生产时间久远而无法使用。
附图说明
图1所示,为客户端与服务器时间关系图。
图2所示,为本发明认证总体实施方式流程图。
图3所示,为本发明同步总体实施方式流程图。
图4所示,为本发明第一实施例流程图。
图5所示,为本发明第二实施例流程图。
图6所示,为本发明第三实施例流程图。
图7所示,为本发明第四实施例流程图。
图8所示,为本发明第五实施例流程图。
图9所示,为本发明第六实施例流程图。
图10所示,为本发明第七实施例流程图。
图11所示,为本发明认证系统组成图。
图12所示,为本发明保安器组成图。
具体实施方式
本发明通过基于时钟漂移,完成时间相对同步认证,从而增强认证系统的健壮性。本发明涉及的认证系统包括认证服务器和终端,其中,在终端中设置第一时钟系统(TClk,TerminalClock),在服务器设置第二时钟系统(SvrClk,Server Clock)。现有的基于时间的同步认证技术,由于随着时间的推移,TClk相对于SvrClk可能发生漂移,也即失步,并在漂移积累到一定程度,使得服务器无法再依赖于SvrClk提供的时间对终端进行有效认证,从而导致诸如现有银行提供给客户的用于认证的时间令牌(常见的保安器)失效的情况发生。对于这种情况,现有认证技术,始终没有给于有效的解决。
本发明通过基于SvrClk建立一个虚拟时钟系统(VClk,Virtual Clock),通过阶段性调整VClk的相关参数,使VClk尽量逼近TClk,从而保证TClk相对于VClk的漂移对所述认证不构成影响。
如图1所示,为客户端与服务器时间关系图。VClk的时间值Y是SvrClk的时间值X的函数,即,从VClk获得时间Y时,实际是先从SvrClk获得时间X,然后根据映射关系,得到时间Y,也即Y=f(X)。例如,TClk是根据人的脉搏来计时,即,TClk将脉搏跳动一次计为一秒。当人的脉搏实际为每分钟72次时,TClk在实际每分钟时间里,记录了72秒。这样,在构建VClk时,可以设置映射关系为Y=f(X)=a×X,其中,a=1.2。这样,在SvrClk时间是准确的情况下,VClk的时间就逼近了TClk的时间。其中,a是一个同步参数。还比如,TClk每个月比SvrClk慢5分钟,那么,在构建VClk时,可以设置映射关系为Y=f(X)=X+b。当一年后慢了一个小时(即5分钟*12)时,可将b设置为60分钟。其中,b是一个同步参数。如果服务器对终端认证时,可以忍受TClk与VClk的时差在1分钟内,那么,服务器就需要每6天(即30天/5)更新一次b的值,从而保证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。
这里,a、b为同步参数,a初始化值为l,b初始化值为0,也即,初始化时,Y=f(X)=X,此时,VClk与SvrClk等价,或VClk直接是SvrClk,这样,从VClk得到时间T是指,直接从SvrClk得到该时间T。
实际当中,服务器针对对应终端保存了同步参数a和b的值。
上述关于映射关系的说明,后面实施方式或实施例中,不再赘述。
首先在步骤11,在终端保存第一密钥K1,在服务器中保存该终端配对的第二密钥K2。
步骤12,终端根据TClk获取第一时间T1,根据K1与T1进行计算,得到时间诱变编码TMC,将TMC发送给服务器。
这里,根据K1与T1进行计算时,可以采用成熟的Hash算法,例如摘要算法。有关摘要算法可以参见《应用密码学》一书或相关的算法论文或报告,还可以采用3GPP协议中提到的终端鉴权协议中,由鉴权密钥与随机数产生加密密钥或完整性密钥的算法来进行。由于都是公知技术,后面类似的相关计算不再赘述。
步骤13,服务器收到TMC后,根据VClk得到T1的估值Te。
这里,所述根据VClk得到T1的估值Te是指:先根据SvrClk获取第二时间T2,而后根据设置的映射关系,得到第三时间T3,即,T3=f(T2)=a×T2+b,将T3作为Te。
步骤14,服务器根据K2与Te判断接收的TMC是否合法,如果合法,则对该终端认证通过;否则,认为该终端非法。
在认证总体实施方式中,服务器在对终端认证通过后,还可以进一步针对该终端保存最后一次验证时间(LVT,Last verification Time),作为历史验证时间信息,以用于对后续的验证时间进行有效性检查,这里。LVT包括终端侧(TLVT,Terminal LVT)和服务器侧(SvrLVT,Server LVT)两个。TLVT和SvrLVT的初始化值为0,在每次验证通过后,对TLVT或SvrLVT的值进行更新。例如,在步骤13中,判断T2是否大于SvrLVT,如果不是,则说明服务器时间回退,结束流程;否则,执行后续流程。还例如,在步骤13中,判断Te与TLVT的差是否大于某一特定值,如果是,则执行后续流程;否则,说明认证请求频繁,结束流程。
所述验证一般地是登录验证,而在后续提到的同步流程中,相应地是同步验证。
在下面的同步总体实施方式中,服务器在对终端验证通过后,针对该终端保存最后一次同步时间(LST,Last Synchronization Time),作为历史同步时间信息,以用于后续同步操作中,对a和b进行估算。这里,LST包括终端侧(TLST,Terminal LST)和服务器侧(SvrLST,Server LST)两个。TLST和SvrLST的初始化值为0,在每次执行同步流程时,对TLST或SvrLST的值进行更新。
如图3所示,为本发明同步总体实施方式流程图。在该实施方式中,在终端中设置TClk,在服务器设置SvrClk;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b。
首先在步骤21,在终端保存第一同步密钥SynK1,在服务器中保存该终端配对的第二同步密钥SynK2;服务器还针对对应终端保存TLVT、TLST、SvrLST。
步骤22,终端根据TClk获取第一时间T1,根据SynK1与T1进行计算,得到时间诱变编码TMC,将TMC和T1的相关信息发送给服务器。
步骤23,服务器收到TMC和T1的相关信息后,根据SvrClk得到第二时间T2;根据T1的相关信息得到T1的估值Te。
T1的相关信息可以是T1自身,也可以是T1的一部分信息,例如后面将要提到的T1基于某参考步长的左偏距。
步骤24,服务器判断Te是否可接受,如果可接受,则执行步骤25;否则,结束流程。
一般地,判断Te是否可接受是指,判断Te是否在TLVT之后,即Te是否大于TLVT,如果是,则可接受,否则,说明该消息可能是重放消息,因此,不予接受,并结束流程。
步骤25,服务器根据SynK2与Te判断接收的TMC是否合法,如果合法,则对所述映射关系进行修改,并将TLVT和TLST更新为Te,将SvrLST更新为T2;否则,认为该终端非法,并结束流程。
这里,对所述映射关系进行修改是指:对同步参数a与b的值进行更新。本发明提供一种更新方式如下:根据上次同步时间和本次同步时间,对a进行更新;而后根据本次同步时间,以及a的值对b进行更新。例如:
将a设置为(Te-TLST)÷(T2-SvrLST),而后将b设置为(Te-a×T2)。
这里,对于SvrClk的一个时间X,当X)T2时,
Y=f(X)=a×X+b=Te+a×(X-T2)
=Te+a×X-a×T2=a×X+Te-a×T2,
由此得到,b=Te-a×T2。
一般地,当TLST为初始值0时,保持a的值为初始值,例如1不变,而只更新b的值。
当a=1时,或者是不考虑同步参数a时,b=Te-T2。
上述两个实施方式中,所述第一同步密钥可以直接是所述第一密钥,相应的,所述配对的第二同步密钥可以直接是所述配对的第二密钥。
为了便于技术人员实施本发明,下面以具体实施例来对本发明作进一步阐述。
如图4所示,为本发明第一实施例流程图。在该实施例中,在终端中设置TClk,在服务器设置SvrClk;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b。
首先在步骤101,在终端保存第一密钥K1,在服务器中保存该终端配对的第二密钥K2。
步骤102,终端根据TClk获取第一时间T1,根据K1与T1进行计算得到时间诱变编码TMC,将TMC发送给服务器。
步骤103,服务器收到TMC后,根据VClk得到T1的估值Te。
这里,所述根据VClk得到T1的估值Te是指:先根据SvrClk获取第二时间T2,而后根据设置的映射关系,得到T3,即,T3=f(T2)=a×T2+b,将T3作为Te。
步骤104,服务器根据K2与Te或Te周围的时间点判断接收的TMC是否合法,如果合法,则对该终端认证通过;否则,认为该终端非法。
在该实施例中,服务器还可以进一步针对对应的终端保存TLVT,这样,在步骤103中,可以进一步判断Te是否可接受,例如,判断Te是否大于TLVT,如果是,则认为Te可接受,并执行后续步骤流程;否则,认为Te不可接受,结束流程。相应的,在步骤104中,在对终端验证通过后,进一步将TLVT更新为Te。
在该实施例中,当Te与T1相等时,在步骤104中,服务器根据K2与Te判断接收的TMC是否合法可以直接是,根据K2与Te进行相应的计算,判断计算结果与接收的TMC是否一致,例如是否相等,如果不是,则判断接收的TMC不合法,否则,判断接收的TMC合法。
实际当中,并不能完全保证Te与T1相等。对此,在步骤104中,所述服务器根据K2与Te或Te周围的时间点判断接收的TMC是否合法进一步是:服务器分别根据K2与Te以及Te周围的有限个时间,例如(Te-3)、(Te-2)、(Te-1)、(Te+1)、(Te+2)、(Te+3)等6个时间分别进行相应的计算以及判断计算结果是否与接收的TMC一致,如果出现了一个计算结果,例如根据K2与(Te-2)进行相应计算的计算结果与接收的TMC一致,则对终端验证通过,并结束所述计算与一致性判断的操作;如果不存在一个计算结果与接收的TMC一致,则认为该终端非法。当从Te周围选取的用于相应计算的时间点很少时,认证成功率可能会降低;当从Te周围选取的用于相应计算的时间点很多时,会增加服务器计算量,降低攻击成本,增加攻击成功率,从而,降低认证系统的安全性。
对此,本发明通过设置时间参考点(TRP,Time Reference Point),来减少上述计算量。设置时间参考点的方式有多种多样。为方便理解,这里提供两种设置方式供技术人员参考。
方式一,设置参考步长(RSL,Reference Step Length),当一个时间T是RSL的整数倍时,将该时间T作为基于RSL的时间参考点。例如,RSL为60秒时,0分、1分、2分……等等都是时间参考点。其中,0为初始时间参考点,即初始参考点(ORP,Original ReferencePoint)。
方式二,设置RSL,设置ORP;这里,ORP可以是0,也可以不是0,则当一个时间T(例如2011年11月11日11时11分11秒)与ORP的差,即(T-ORP),是RSL的整数倍时,将该时间T作为基于ORP和RSL的时间参考点。例如当ORP为2008年8月8日8时8分8秒,RSL为30秒时,2008年8月8日8时8分38秒、2008年8月8日8时9分08秒、2008年8月8日8时9分38秒,等等,都是时间参考点。当ORP的值为0时,方式二和方式一效果一样。
为简化说明,后面仅基于方式一进行阐述。
设置了TRP之后,任意一个时间,要么在一个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长整型来表示一个时间的值。本发明为方便叙述,也默认时间为一个32位的长整型数。后面不再赘述。
为方便描述,本发明将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进行整除运送得到T(RSL).LTRP。T(RSL).LTRP和T(RSL).RTRP的计算公式如下:
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)
为便于描述,对于时间T1和T2,当T1(RSL).ROD=T2(RSL).ROD时,称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
如图5所示,为本发明第二实施例流程图。在该实施例中,在终端中设置TClk,在服务器设置SvrClk;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;在该实施例中,设置RSL;服务器还针对对应终端保存TLVT。
首先在步骤201,在终端保存第一密钥K1,在服务器中保存该终端配对的第二密钥K2。
步骤202,终端根据TClk获取第一时间T1;得到T1(RSL).RTRP;根据K1与T1(RSL).RTRP进行计算,得到时间诱变编码TMC,将TMC发送给服务器。
步骤203,服务器收到TMC后,根据VClk得到T1的估值Te,得到Te(RSL).RTRP。
这里,所述根据VClk得到T1的估值Te是指:先根据SvrClk获取第二时间T2,而后根据设置的映射关系,得到T3,即,T3=f(T2)=a×T2+b,将T3作为Te。
步骤204,服务器针对Te(RSL).RTRP进行一致性验证,即,根据K2与Te(RSL).RTRP进行相应的计算,判断计算结果与接收的TMC是否一致,例如是否相等,如果是,则对该终端认证通过,将TLVT更新为Te;否则,认为该终端非法。
根据第二实施例:
当T1等于Te,即T1=Te时:在步骤204中,所述一致性验证能够通过。
当T1不等于Te,即T1<>Te时:在T1与Te之间,除min(T1,Te)后,没有TRP时,则合法终端产生的TMC能够通过服务器的验证;如果在T1与Te之间除min(T1,Te)后,还存在至少一个TRP时,则终端产生的TMC无法通过服务器的验证。
在步骤204中,服务器针对Te(RSL).RTRP进行的一致性验证通不过时,还可以进一步针对Te(RSL).LTRP进行所述一致性验证。当然,如果针对Te(RSL).LTRP进行的一致性验证还通不过时,还可以进一步针对Te(RSL).RTRP.NCP,也即(Te(RSL).RTRP)(RSL).NCP进行所述一致性验证。实际当中,根据应用需要来确定有针对性验证的TRP数。需要说明的是,增加RSL长度可以达到增加有针对性验证的TRP数量的效果。例如,将RSL长度扩大16倍,则相当于将需要有针对性验证的TRP数量扩大16倍。
从第二实施例可以看出,服务器在保证接收的TMC的时效性的同时,不会因为设置的RSL的变化而影响到计算量的变化,因而,增加RSL的值不会增加攻击服务器的成功率。
需要说明的是,在步骤202中,在计算TMC时,也可以根据K1与T1(RSL).LTRP进行计算,相应的,在步骤204中,服务器根据K2与Te(RSL).LTRP进行计算,来对接收的TMC进行一致性验证。
在计算TMC时,无论是采用T1(RSL).LTRP进行计算,还是采用T1(RSL).RTRP进行计算,都可以在T1(RSL).LTRP或T1(RSL).RTRP基础上增加或减少一个特定值后再进行所述计算。对应的,服务器在进行一致性验证时,也同样对相应的Te(RSL).LTRP或(RSL)Te.RTRP增加或减少一个特定值后再进行所述计算。例如,在步骤204中,所述根据K2与Te(RSL).RTRP进行的相应计算,可以是先将Te(RSL).RTRP加一个特定值,得到一个非参考点时间值,而后再根据得到的非参考点时间值来和K2进行计算。相应的,在步骤202中,所述根据K1与T1(RSL).RTRP进行计算,是先将T1(RSL).RTRP增加一个特点值,得到一个非参考点时间值,而后再根据得到的非参考点时间值来和K1进行计算得到TMC。
本发明将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),则,较佳地,设置的RSL满足RSL>(RLTCVD-LLTCVD)。相应地,在第二实施例的步骤203中,计算Te时,因变量进一步加上RLTCVD,即:
Te=T3=f(T2)+RLTCVD=a×T2+b+RLTCVD
实际当中,所述终端根据TClk获取T1的操作比所述服务器根据SvrClk获取T2的操作有一个时间提前量(TIA,Time In Advance)。如果考虑TIA因素,允许的TIA在提前量左限(LLTIA,Left Limit of TIA)与提前量右限(RLTIA,Right Limit of TIA)之间,也即,TIA∈(LLTIA,RLTIA),则,较佳地,设置的RSL满足RSL>a×(RLTIA-LLTIA)。相应地,在第二实施例的步骤203中,计算Te时,自变量进一步减去LLTIA,即:
Te=T3=f(T2-LLTIA)=a×(T2-LLTIA)+b
这里,将SvrClk的时间作为基准时间。
如果同时考虑TCVD因素与TIA因素,则,较佳地,设置的RSL满足RSL>(RLTCVD-LLTCVD+a×(RLTIA-LLTIA))。相应地,在第二实施例的步骤203中,计算Te时,进一步将因变量加上RLTCVD,将自变量减去LLTIA,即:
Te=T3=f(T2-LLTIA)+RLTCVD=a×(T2-LLTIA)+b+RLTCVD
根据第二实施例,终端产生TMC,只有在特定的时间内被服务器收到后,才能被认定为合法。为方便描述,这里称该特定时间为TMC的预期寿命。
根据第二实施例,如果T1与Te不相等,那么,只有当二者位于相邻的两个TRP之间,且max(T1,T2)不是TRP时,终端产生的TMC才能够通过服务器的验证。因此,终端产生的TMC的预期寿命会因为T1(RSL).LOD的增加而减少。例如,在RSL为10秒,TClk和SvrClk同步的情况下,T1=1秒时,对应的Te可以为1秒到9秒,终端产生的TMC的预期寿命为9秒;T1=2秒时,对应的Te可以为2秒到9秒,终端产生的TMC的预期寿命为8秒;T1=9秒时,对应的Te可以为9秒到9秒,终端产生的TMC的预期寿命为1秒;T1=10秒时,对应的Te可以为10秒到19秒,终端产生的TMC的预期寿命为10秒。
终端在不同时刻产生的TMC的预期寿命不同,会影响到用户体验。例如,所述终端是移动终端,移动终端在将产生的TMC通过短消息发送给服务器时,由于网络流量的波动,服务器可能会在移动终端发出该TMC后的5秒至8秒内收到。这种情况下,如果TMC的预期寿命在5秒以上,则,该TMC就可以通过服务器的验证;如果TMC的预期寿命在4秒以下,则,该TMC就被服务器视为无效。这样,给用户的感受就是系统不稳定。
针对这种情况,本发明先介绍一种时间传送方法,基于RSL,对于时间T,通过传送T(RSL).LOD,来达到传递T的目的。
如图6所示,为本发明第三实施例流程图。该实施例描述了模块A向模块B传送时间的方法。在该实施例中,预先设置RSL。
该实施例中,不考虑TIA因素,并且默认AClk和BClk完全同步。
首先在步骤301,在模块A设置时钟系统AClk,在模块B设置时钟系统BClk。
步骤302,模块A根据AClk得到时间Ta,将计算得到的Ta(RSL).LOD发送给模块B。
步骤303,模块B收到Ta(RSL).LOD后,根据BClk得到时间Tb。
步骤304,模块B由Tb和Ta(RSL).LOD确定Ta的估值Te。
这里,模块B采用同左偏距定位方式(或同余定位方式)来确定Te,即,在Tb的一侧,例如左侧,寻找一个基于RSL的左偏距与Ta(RSL).LOD相同的、距离Tb最近的时间。该时间即为Te。
在Tb左侧寻找Te,为左同余定位方式;在Tb右侧寻找Te,为右同余定位方式。
左同余定位方式:模块B从自Tb开始向前的RSL个时间中,选择一个时间作为Te,要求Te满足Te(RSL).LOD=Ta(RSL).LOD。这样,当(Tb-Ta)∈[0,RSL)时,Te等于Ta。这样就达到了模块A向模块B传送时间信息的目的。
右同余定位方式:模块B从自Tb开始向后的RSL个时间中,选择一个时间作为Te,要求Te满足Te(RSL).LOD=Ta(RSL).LOD。这样,当(Ta-Tb)∈[0,RSL)时,Te等于Ta。这样也达到了模块A向模块B传送时间信息的目的。
下面以左同余定位方式来阐述Te的推导过程。
(1)当Ta(RSL).LOD<=Tb(RSL).LOD时,
Te=Tb(RSL).LTRP+Ta(RSL).LOD
  =Tb-((Tb mod RSL)-Ta(RSL).LOD)
由((Tb mod RSL)-Ta(RSL).LOD)∈[0,RSL)得到:
Te=Tb-((Tb-Ta(RSL).LOD)mod RSL)
(2)当Ta(RSL).LOD>Tb(RSL).LOD时,
Te=(Tb(RSL).LTRP-RSL)+Ta(RSL).LOD
  =Tb-(RSL+(Tb mod RSL)-Ta(RSL).LOD)
由(RSL+(Tb mod RSL)-Ta(RSL).LOD)∈[0,RSL)得到:
Te=Tb-((Tb+RSL-Ta(RSL).LOD)mod RSL)
  =Tb-((Tb-Ta(RSL).LOD)mod RSL)
根据(1)和(2),得到:Te=Tb-((Tb-Ta(RSL).LOD)mod RSL)
当(Tb-Ta)∈[0,RSL)时,Te等于Ta;否则,Te与Ta不是同一个时间。这样,对于任意的Ta,在步骤304中,模块B获得的Tb只要满足(Tb-Ta)∈[0,RSL),模块B就可以正确得到模块A传送的真实时间,即Ta;反之,模块B就无法得到模块A传送的真实时间。对于任意的Ta,满足模块B正确得到Ta的Tb可以有Ta、(Ta+1)、(Ta+2)……(Ta+RSL-1)等共计RSL个。
上述RSL的值可以取任意自然数,较佳地,取8秒或16秒或32秒等等这样的2的整数次方幂,这样,在做模运算时,可以直接用二进制移位或直接取二进制数的末尾几位即可得到模运算结果。
根据所述时间传送方法,对第二实施例进行改造后,得到本发明第四实施例。
如图7所示,为本发明第四实施例流程图。在该实施例中,在终端中设置TClk,在服务器设置SvrClk;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;在该实施例中,设置RSL;该实施例中,还同时考虑TCVD因素与TIA因素,且,TCVD∈(LLTCVD,RLTCVD),TIA∈(LLTIA,RLTIA)。
首先在步骤401,在终端保存第一密钥K1,在服务器中保存该终端配对的第二密钥K2;服务器还针对对应终端保存TLVT。
步骤402,终端根据TClk获取第一时间T1;得到T1(RSL).LOD;根据K1与T1进行计算,得到时间诱变编码TMC,将TMC和T1(RSL).LOD发送给服务器。
步骤403,服务器收到TMC和T1(RSL).LOD后,结合VClk得到T1的估值Te。
这里,所述结合VClk得到T1的估值Te是指:先根据SvrClk获取第二时间T2,而后根据设置的映射关系,结合TCVD因素与TIA因素,得到第三时间T3,即,T3=f(T2-LLTIA)+RLTCVD=a×(T2-LLTIA)+b+RLTCVD;服务器采用左同余定位方式,由T3和T1.LOD确定T1的估值Te。
这里,Te=T3-((T3-T1(RSL).LOD)mod RSL)
        =a×(T2-LLTIA)+b+RLTCVD
          -((a×(T2-LLTIA)+b+RLTCVD-T1(RSL).LOD)mod RSL)
步骤404,服务器判断Te是否可接受,如果可接受,则执行步骤405;否则,结束流程。
一般地,判断Te是否可接受是指,判断Te是否大于TLVT,如果是,则可接受,否则,说明该消息可能是重放消息,因此,不予接受。
这里,判断Te是否可接受还可以是:判断(Te-TLVT)是否大于RSL,如果是,则可接受,否则,认为终端认证请求过于频繁,不予接受。
步骤405,服务器针对Te进行一致性验证,即,根据K2与Te进行相应的计算,判断计算结果与接收的TMC是否一致,例如是否相等,如果是,则对该终端认证通过,将TLVT更新为Te;否则,认为该终端非法。
在步骤405中,也可以将Te.RTRP保存为TLVT,对应地,在步骤404中,判断Te是否可接受可以是:判断Te.RTRP是否大于TLVT。
根据第四实施例,设RSL对应的服务器侧的实际秒数为SvrL,根据:
f(SvrL)-f(0)=(a×SvrL+b)-(0×SvrL+b)=a×SvrL=RSL
得到:SvrL=RSL÷a。
终端产生一个TMC后,该TMC将在(RSL÷a)秒之后失效。这样,在不需要传送完整的时间信息的情况下,既保证消息的时效性,又保证了终端在任何时刻产生的TMC都具有稳定的预期寿命。
需要说明的是,在步骤402中,计算TMC时,也可以是根据K1与T1(RSL).LTRP进行计算得到;相应的,在步骤405中,服务器根据K2与Te(RSL).LTRP进行相应的计算,来对接收的TMC进行所述一致性验证。
需要说明的是,在步骤405中,可以通过增加验证范围来达到增加RSL长度的效果。例如,在对Te进行的一致性验证通不过时,再针对Te(RSL)周围的n(n是大于2的正整数)个同余点进行验证,这样,就等于将T1的可能值扩大到n个原有的RSL的范围内,相当于将RSL扩大了n倍。例如,原来的RSL为64时,现在将RSL设置为32,同时,在对Te进行的一致性验证通不过时,增加对(Te-RSL)进行一致性验证的步骤。这样,更改前后,产生的TMC的预期寿命没有变化。
需要说明的是,适当降低安全要求,步骤404可以裁减。
实际当中,如果不考虑TCVD因素与TIA因素,则可根据第四实施例裁减相关因素。
由于本发明可已延长终端的使用寿命,为了避免一个密钥使用太久而降低安全性,可以通过如下两种方式来提高密钥使用的安全性:
方式一、相关密钥可以设置多个,并使每个密钥都具有时效性。例如,在第四实施例中,针对所述第一密钥K1,可以设置三个密钥:K11、K12、K13,即所述在终端保存第一密钥K1是指,在终端保存了三个密钥K11、K12、K13,在生产后的第1至3年,所述K1为K11的值;第4至6年,所述K1取K12的值;第7到9年,所述K1为K13的值。相应地,服务器针对所述第二密钥K2也对应地保存三个密钥:K21、K22、K23,即,所述在服务器中保存该终端配对的第二密钥K2是指,在服务器保存了三个密钥K21、K22、K23。所述根据K2与Te进行相应的计算是指,服务器根据Te从K21、K22、K23等三个密钥中确定一个密钥例如K22作为K2,而后,根据确定的密钥与Te进行相应的计算。这里,终端和服务器还分别保存终端的生产日期。
方式二、设置一个密钥更新参考步长KeyURSP,例如,KeyURSP为一个月,并在计算所述时间诱变编码TMC时,先根据K1和T1(KeyURSP).RTRP产生一个中间密钥Km1,而后再根据Km1和T1得到TMC。对应地,服务器根据K2与Te进行相应的计算是指,先根据K2与Te(KeyURSP).RTRP产生一个中间密钥Km2,而后根据Km2与Te进行相应的计算。
本领域技术人员知道,方式一和方式二所提供的方法,可以应用于本发明的所有实施方式或实施例。后面不再赘述。
实际当中,随着时间的推移,TClk可能会偏离VClk越来越远,并最终使TCVD超出了允许的域(LLTCVD,RLTCVD)的范围时,可能会导致如第三实施例中的时间传送的无效,以及导致如第二实施例或第四实施例中的,服务器对接收的TMC进行的合法性验证通不过。这种情况下,就需要对VClk的相关同步参数进行更新。对此,本发明根据所述时间传送方法,基于同步总体实施方式,提出了同步参数更新方法,通过该方法,终端只需向服务器传送时间的部分信息,就能使VClk的相关同步参数值得到更新,使VClk再次逼近于TClk,从而使TCVD恢复到域(LLTCVD,RLTCVD)的范围以内,以保证认证流程的正常运行。
如图8所示,为本发明第5实施例流程图。该实施例描述了终端通过向服务器传送时间相关信息来使服务器更新对应于该终端的VClk的相关同步参数。在该实施例中,在终端中设置TClk,在服务器设置SvrClk;服务器针对对应终端,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;在该实施例中,设置RSL为32,设置同步参考步长SynRSL为3600×24秒,即24小时,SynRSL描述了服务器搜索终端传送的时间所在的范围。该实施例中,由于TIA与TCVD相对于SynRSL会很小,因此,在估算客户端时间Te时,不考虑TCVD因素与TIA因素,即将TCVD与TIA忽略不计。
首先在步骤501,在终端保存第一同步密钥SynKl,在服务器中保存该终端配对的第二同步密钥SynK2;服务器还针对对应终端保存TLVT、TLST、SvrLST。
步骤502,终端根据TClk获取第一时间T1;得到T1(SynRSL).LOD;根据SynKl与T1进行计算,得到时间诱变编码TMC,将TMC和T1(SynRSL).LOD发送给服务器。
步骤503,服务器收到TMC和T1(SynRSL).LOD后,结合VClk得到T1的估值Te。
这里,所述结合VClk得到T1的估值Te是指:先根据SvrClk获取第二时间T2,而后根据设置的映射关系得到T3,即,T3=f(T2)=a×T2+b。确定Te的搜索右边界(RBorder,Right Border),使T3处于搜索范围的中间,即RBorder=T3+SynRSL(2).LTRP。服务器采用左同余定位方式,由RBorder和T1(SynRSL).LOD确定T1的估值Te。
这里,Te=RBorder-((RBorder-T1(SynRSL).LOD)mod SynRSL)
=T3+SynRSL(2).LTRP
  -((T3+SynRSL(2).LTRP-T1(SynRSL).LOD)mod SynRSL)
=a×T2+b+SynRSL(2).LTRP
  -((a×T2+b+SynRSL(2).LTRP-T1(SynRSL).LOD)mod SynRSL)
当SynRSL是2的整数次数幂时,T1(SynRSL).LOD实际上就是T1的末尾几位的值。由于T3处于搜索范围的中间,无论T1在T3之前,还是在T3之后,只要T1与T3的距离没有达到SynRSL(2).LTRP,则,得到的T1的估值Te就和T1相等。
当然,如果预期T1比T3小的话,可以直接将RBorder设置为T3。
还可以根据T1与T3的快慢比较的历史数据来灵活确定RBorder,从而使得搜索更有效。例如,统计发现大多数情况下T1小于T3,则可以设置RBorder=T3+SynRSL(4).LTRP。
步骤504,服务器判断Te是否可接受,如果可接受,则执行步骤505;否则,结束流程。
一般地,判断Te是否可接受是指,判断Te是否在TLVT之后,即Te是否大于TLVT,如果是,则可接受,否则,说明该消息可能是重放消息,因此,不予接受。
实际当中,判断Te是否可接受还可以是判断是否(Te>TLVT且(Te-TLST)>SynRSL),如果是,则可接受,否则,认为终端同步请求过于频繁,不予接受。
判断Te是否可接受还可以是判断是否(Te-TLVT)>n×RSL,其中n>=1。
步骤505,服务器针对Te进行一致性验证,即,根据SynK2与Te进行相应的计算,判断计算结果与接收的TMC是否一致,例如是否相等,如果是,则对该终端认证通过,对所述映射关系进行修改,并将TLVT和TLST更新为Te,将SvrLST更新为T2;否则,认为该终端非法,并结束流程。
这里,对所述映射关系进行修改是指:对同步参数a与b的值进行更新。本发明提供一种更新方式如下:根据上次同步时间和本次同步时间,对a进行更新;而后根据本次同步时间,以及a的值对b进行更新。例如:
将a更新为(Te-TLST)÷(T2-SvrLST),而后再将b更新为(Te-a×T2)。
这里,当TLST为初始值0时,保持a的值为初始值,例如1不变,而只更新b的值。
当a=1时,或者是不考虑同步参数a时,b=Te-T2。
通过更新a和/或b来对VClk进行校正,将失去同步的TClk与VClk重新校正到同步状态,保证后续认证流程的正常进行。
实际当中,服务器可以根据以前某次执行同步流程时的同步时间(包括终端侧同步时间TST和服务器侧同步时间SvrST)与本次同步时的同步时间Te与T2,来估算a的值,其中TST和SvrST不限于上一次同步时间TLST和SvrLST)。例如,将a设置为:(Te-TST)÷(T2-SvrST)。一般来说,(T2-SvrST)的值越大,计算的a的值越精确。实际上,针对终端,服务器可以保存每次同步时的同步时间,根据保存的同步时间历史数据进行分析比较来得到TClk的变化规律。
由于SynRSL可以设置得足够大,因此,在步骤503中,服务器收到TMC和T1(SynRSL).LOD后,也可以直接根据SvrClk得到第二时间T2,并根据T2直接得到搜索右边界(RBorder,RightBorder),例如,RBorder=T2+SynRSL(3).LTRP。后面第七实施例不再赘述。
例如,T3并不是根据所述映射关系得到。也即,直接根据SvrClk获取第三时间T3。这样,也是可以实现所述同步参数a与b更新。相比TClk与VClk之间的偏差是上次同步到本次同步期间产生的阶段性偏差,由于累积效应,TClk与SvrClk偏差可能很大,因此,直接根据SvrClk获取T3时,对应SynRSL应该设置得更长以达到通过所述映射关系得到T3时的效果。后面第七实施例不再赘述。
特别地,在步骤503中,所述RBorder可以直接是T3。这样,当步骤505中所述一致性验证通不过时,可以将Rborder设置为T3(SynRSL).NCP,重新获得Te,并转到步骤505重新执行,并在步骤505中所述一致性验证再次通不过时,结束流程。这样,事实上等于扩大了T1的估值范围。后面第七实施例不再赘述。
上述各个实施例中,将所述时钟系统更改为事件计数系统,可以达到同样预期效果。之所以没有将时钟系统更改为事件计数系统,是为了便于技术人员理解。
由第四和第五实施例可以看出,如果用步子作为计时器,即使TClk采用了兔子奔跑的速度,SvrClk采用了乌龟爬行的速度,通过合理设置同步参数a和b而建立的VClk总能逼近对应的TClk,从而实现TClk与SvrClk的相对同步,使得同步认证流程得以有效进行。
将产生的TMC发送给服务器时,还可以进一步包括一个TMC类型。例如,该TMC是用于普通登录的,还是用于普通同步的,或者是用于超级同步的(超级同步的步长比普通同步的步长更长,或直接是终端将T1的值直接和TMC一起传送给服务器)。该类型可以包含在TMC中的若干bit位中,也可以单独加入一个TMC类型参数,在将TMC传送给服务器时,将该TMC的类型参数一起传送给服务器。例如,将所述类型加入到TMC中的若干bit位中,对应地,服务器通过TMC相应的若干bit位来判断TMC的类型,从而确定进入普通登录流程,或普通同步流程,或超级同步流程。
实际当中,用于普通登录的TMC和用于同步的TMC的长度可以不同,这时,也可以根据TMC的长度来区分不同的TMC类型。也可以根据对应的RSL或SynRSL的长度来区分不同的类型。例如,用于普通登录的TMC,对应的RSL可以是32,长度为5bits;用于普通同步的TMC,对应的SynRSL可以是65536,长度为16bits。还例如,用于超级同步的TMC,对应的SynRSL可以是65536×256,长度为24bits。经验丰富的技术人员一般不会采用这种方式。
终端在将所述TMC消息发送给服务器时,也可以同时发送对应的RSL,或RSL的指不值,例如,终端和服务器约定:1表示32、2表示64、3表示128,等等。当然,服务器也可以根据信息传送方式来选择相适应的RSL。
所述配对密钥K1与K2也可以直接是一个用户密码,对应的,上述终端中不保存作为用户密码的所述密钥。例如,用户每次使用终端登录服务器时,终端提示用户输入密码,而后终端根据该用户输入的密码来产生所述TMC。这样,即使用户的终端丢失,他人也无法利用该终端登录相应的服务器。
上述终端保存的密钥可以直接是一个内置密钥。例如,对于终端是一个汽车防盗钥匙来说,用户每次使用防盗钥匙来开启作为服务器的锁控装置时,终端直接使用该内置密钥来产生所述TMC。这样,就不需要用户在每次使用防盗钥匙开启锁控装置时都输入密码。但防盗钥匙丢失后,他人可利用该防盗钥匙开启锁控装置。
在第四实施例基础上,在服务器进一步设置用户密码UsrPswd(UsrPswd,User PASSWORD);终端侧进一步获得第一用户密码UsrPswd1,例如,通过提供用户界面来接收用户输入的UsrPswd1,并在计算所述TMC时,进一步根据该UsrPswd1进行。相应的,服务器对所述TMC进行一致性验证时,进一步根据设置的UsrPswd来进行。下面第六实施例以该方法应用于金融账户的认证为例来进行说明。该方法应用于金融账户的认证时,所述终端实际上是一个动态口令模块,例如银行向其客户提供的用于网上交易的保安器或动态令牌。
如图9所示,为本发明第六实施例流程图。在该实施例中,服务器侧根据保安器编号将保安器和个人识别码(PIN,Personal Identified Number)绑定;所述保安器中设置有TClk,在服务器侧设置SvrClk;服务器侧针对所述保安器,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;在该实施例中,设置RSL;该实施例中,同时考虑TCVD因素与TIA因素,且,TCVD∈(LLTCVD,RLTCVD),TIA∈(LLTIA,RLTIA)。
首先在步骤601,在保安器保存第一密钥K1,在服务器侧根据PIN码保存该保安器配对的第二密钥K2;在服务器还根据PIN码,保存对应的UsrPswd与TLVT。
实际当中,服务器侧预先维护了保安器字典,例如,保存一个保安器表,该表至少包括保安器编号和对应的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
步骤602,客户端获取PIN码、UsrPswd1和保安器产生的第一动态密码DPswd1(DPswd,Dynamic PASSWORD)。
一般地,这些信息由客户在客户端,例如在一个由服务器推送的网页上,来输入。
一般地,所述保安器设置一个显示装置和一个按钮,原型可以参见现有的一些银行给客户提供的保安器。用户按保安器按钮时,保安器根据TClk获取第一时间T1,得到T1(RSL).LOD;根据K1与T1进行计算,得到第一时间诱变编码TMC1,将TMC1与T1(RSL).LOD拼接在一起形成DPswd1,将DPswd1转换成10进制或16进制或32(10至31可分别用A至U表示)进制形式显示出来,由客户输入客户端。
步骤603,客户端根据UsrPswd1和DPswd1进行计算,产生消息认证编码(MAC,MessageAuthentication Code),将所述PIN码、MAC,以及DPswd1中的T1(RSL).LOD发送给服务器。
步骤604,服务器收到所述PIN码、MAC,以及T1(RSL).LOD后,结合该PIN码对应的VClk得到T1的估值Te。
这里,所述结合该PIN码对应的VClk得到T1的估值Te是指:先根据SvrClk获取第二时间T2,而后根据针对该PIN码设置的映射关系,结合TCVD因素与TIA因素,得到第三时间T3,即:
T3=f(T2-LLTIA)+RLTCVD=a×(T2-LLTIA)+b+RLTCVD。
服务器采用左同余定位方式,由T3和T1(RSL).LOD确定T1的估值Te。
这里,Te=T3-((T3-T1(RSL).LOD)mod RSL)
        =a×(T2-LLTIA)+b+RLTCVD
          -((a×(T2-LLTIA)+b+RLTCVD-T1(RSL).LOD)mod RSL)
步骤605,服务器判断Te是否可接受,如果可接受,则执行步骤606;否则,结束流程。
一般地,判断Te是否可接受是指,判断Te是否在TLVT之后,即Te是否大于TLVT,如果是,则可接受,否则,说明该消息可能是重放消息,因此,不予接受。
这里,判断Te是否可接受还可以是:判断是否(Te-TLVT)>RSL,如果是,则可接受,否则,认为终端认证请求过于频繁,不予接受。
步骤606,服务器根据所述PIN码,获取相应的K2和UsrPswd;根据K2、UsrPswd与Te判断接收的MAC是否合法,如果不是,对客户端认证失败,结束流程;否则,对客户端认证成功,将TLVT更新为Te,并执行启动服务的操作。
这里,服务器根据相应的K2与Te进行计算,得到第二时间诱变编码TMC2,将MAC2与接收的T1(RSL).LOD拼接在一起形成第二动态密码DPswd2;根据UsrPswd与DPswd2进行相应的计算,判断计算结果与接收的MAC是否一致,例如是否相等,如果是,则认为MAC合法,否则,认为MAC不合法。
实际当中,还可以通过如下三种方式之一来进一步提高认证流程的整体安全性。
方式一、客户登录服务器时,可以先将PIN码发送给服务器,服务器产生一个随机数Rand发送给客户端。客户端在计算MAC时,进一步根据Rand进行;相应地,服务器对MAC进行合法性判断时,进一步根据接收的Rand来进行。通过这种方式既可以扩大MAC的值域,还可以防止消息被拦截后,延期使用,从而提高认证流程的整体安全性。
方式二、客户登录服务器时,可以先将PIN码发送给服务器,服务器根据所述PIN码发送一个预先保存的公钥给客户端。客户端根据所述公钥将产生的MAC、以及所述T1(RSL).LOD加密后再和所述PIN码一起发送给服务器;服务器根据所述PIN码对应的私钥解密得到该客户端发送的MAC,以及T1(RSL).LOD。这样也可以提高认证流程的整体安全性。
方式三、在客户端可以保存私钥,并在服务器侧根据所述PIN码保存对应的公钥;客户端根据所述私钥将产生的MAC、以及所述T1(RSL).LOD加密后再和所述PIN码一起发送给服务器;服务器根据所述PIN码对应的公钥解密得到该客户端发送的MAC,以及T1(RSL).LOD。这样既可以提高认证流程的整体安全性,也可以达到防抵赖的效果。
在步骤603中,所述根据UsrPswd1和DPswd1进行计算,可以是根据UsrPswd1和DPswd1中TMC1进行计算;相应的,在步骤606中,服务器计算得到TMC2后,不再执行将MAC2与接收的T1(RSL).LOD拼接在一起形成DPswd2的操作,直接根据UsrPswd与TMC2进行相应的计算,来对接收的MAC进行合法性验证。
需要说明的是,在步骤603中,客户端也可以不将所述T1(RSL).LOD发送给服务器;对应地,所述保安器产生的DPswd1只包括TMC1,并且所述TMC1是根据K1与T1.RTRP进行计算得到。相应的,在步骤604中,所述Te直接是(T3-RSL(2).LTRP);在步骤606中,所述TMC2是根据相应的K2与Te(RSL).RTRP进行计算得到。这样,也可以实现本发明目的。这里,只要T1处于T3以前的一个RSL长的区域内,并且除了min(T1,Te)外,T1与Te之间不再有其它TRP时,T1(RSL).RTRP和Te(RSL).RTRP就会相等,这样,就可以保证合法用户产生的TMC1与服务器产生的TMC2一致。这里,Te是将T3向前移动RSL(2).LTRP后得到,这样可以减少T1值的波动影响。
对于一个PIN码,当对应的TCVD超出域(LLTCVD,RLTCVD)的范围时,服务器就可能无法通过对客户端的认证,这时,需要对相应的VClk的相关同步参数进行更新,使得VClk重新逼近TClk,从而使该TCVD恢复到域(LLTCVD,RLTCVD)的范围以内。下面将通过实施例说明用于金融账户的漂移相对同步方法。
如图10所示,为本发明第7实施例流程图。在该实施例中,服务器侧根据保安器编号将保安器和PIN码绑定;所述保安器中设置有TClk,在服务器侧设置SvrClk;服务器侧针对所述保安器,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;在该实施例中,预先设置RSL,例如,RSL为32;设置同步参考步长SynRSL,例如,SynRSL为3600×24秒,即24小时,SynRSL描述了服务器搜索保安器传送的时间的范围。实际当中,由于TIA与TCVD相对于SynRSL会很小,因此,这里不考虑TCVD因素与TIA因素。
首先在步骤701,在保安器保存第一密钥K1,在服务器侧根据PIN码保存该保安器配对的第二密钥K2;服务器还根据PIN码保存对应的UsrPswd,以及TLVT、TLST、SvrLST。
实际当中,服务器侧预先维护了保安器字典,例如,保存一个保安器表,该表至少包括保安器编号和对应的K2等等字段,该表中还可以包括该保安器的生产日期、使用日期等等字段。当根据保安器编号将一个保安器和一个PIN码绑定时,就直接或间接地建立了该PIN码和对应于该保安器的K2等等的对应关系。VClk一般是在保安器和一个PIN码绑定时才会有实际意义,因此,VClk可以是直接针对所述PIN码构建。
步骤702,客户端获取PIN码、UsrPswd1、第一时间诱变编码TMC1、时间相关信息。
一般地,所述保安器设置一个显示装置和一个按钮,原型可以参见现有的一些银行给客户提供的保安器。所述TMC1和时间相关信息由保安器产生。
客户通过交替按压保安器按钮,可以分别得到用于登录的动态口令,即登录口令LogDPswd和用于同步的动态口令,即同步口令SynDPswd。一般情况下,当不需要进行同步时,客户只需获得LogDPswd。当需要进行同步时,客户需要得到SynDPswd。所述TMC1和时间相关信息由LogDPswd或SynDPswd携带。例如:
方式一、所述TMC1和时间相关信息由一个SynDPswd携带。在步骤701中,进一步在保安器中保存第一同步密钥SynK1;服务器进一步根据PIN码,保存与该保安器配对的第二同步密钥SynK2。客户端提供PIN码、UsrPswd1以及用于同步的第一动态口令SynDPswd1输入界面,由客户输入相应的信息。其中,SynDPswd1中包括了TMC1和时间相关信息。用户第一次按保安器按钮时,保安器根据TClk获取第一时间T1,根据T1与K1进行计算,最终得到LogDPswd,并显示,以用于客户登录服务器;用户紧接着第二次(例如在第一次按压按钮的1秒或5秒之内)按下保安器按钮时,也即,用户获取用于同步的动态口令时,保安器得到T1(SynRSL).LOD作为所述时间相关信息,并根据SynK1与T1进行计算,得到TMC1,将TMC1与T1(SynRSL).LOD拼接在一起形成SynDPswd1,将SynDPswd1转换成10进制或16进制或32进制形式显示出来,由客户输入客户端。这种情况下同步时,在客户端不需要输入第一次按下按钮时获取的LogDPswd,而仅需要输入第二次按下按钮时获取的SynDPswd1。
方式二、所述TMC1由LogDPswd携带,所述时间相关信息由SynDPswd携带。客户端提供PIN码、UsrPswd1以及LogDPswd和用于同步的第一动态口令SynDPswd1输入界面,由客户端输入相应的信息。用户第一次按保安器按钮时,保安器根据TClk获取第一时间T1,得到T1(RSL).RTRP;根据K1与T1(RSL).RTRP进行计算,得到第一时间诱变编码TMC1,将TMC1转换成10进制或16进制或32进制形式显示出来,作为LogDPswd由客户输入客户端;用户紧接着第二次(例如在第一次按压按钮的1秒或5秒之内)按下保安器按钮时,保安器得到T1(SynRSL).LOD作为所述时间相关信息,将T1(SynRSL).LOD转换成10进制或16进制或32进制形式显示出来,作为SynDPswd1由客户输入客户端。这种情况下同步时,在客户端既需要输入第一次按下按钮时获取的LogDPswd,又需要输入第二次按下按钮时获取的SynDPswd1。
方式三、所述TMC1由LogDPswd携带,所述时间相关信息由SynDPswd携带。客户端提供PIN码、UsrPswd1以及LogDPswd和用于同步的第一动态口令SynDPswd1输入界面,由客户端输入相应的信息。用户第一次按保安器按钮时,保安器根据TClk获取第一时间T1,得到T1(RSL).LOD;根据K1与T1进行计算,得到TMC1,将TMC1与T1(RSL).LOD拼接在一起形成LogDPswd,将LogDPswd转换成10进制或16进制或32进制形式显示出来,由客户输入客户端;用户紧接着第二次(例如在第一次按压按钮的1秒或5秒之内)按下保安器按钮时,保安器得到T1(SynRSL).LOD作为所述时间相关信息,将T1(SynRSL).LOD转换成10进制或16进制或32进制形式显示出来,作为SynDPswd1由客户输入客户端。这种情况下同步时,在客户端既需要输入第一次按下按钮时获取的LogDPswd,又需要输入第二次按下按钮时获取的SynDPswd1。
方式四、所述TMC1和所述时间相关信息分别由两个SynDPswd携带。在步骤701中,进一步在保安器中保存第一同步密钥SynK1;服务器进一步根据PIN码,保存与该保安器配对的第二同步密钥SynK2。客户端提供PIN码、UsrPswd1以及用于同步的第一动态口令SynDPswd1和用于同步的第二动态口令SynDPswd2输入界面,由客户端输入相应的信息。用户第一次按保安器按钮时,保安器根据TClk获取第一时间T1,根据T1与K1进行计算,最终得到LogDPswd,并显示,以用于客户登录服务器;用户紧接着第二次(例如在第一次按压按钮的1秒或5秒之内)按下保安器按钮时,根据SynK1与T1进行计算,得到第一同步时间诱变编码SynTMC1,将SynTMC1转换成10进制或16进制或32进制形式显示出来,作为SynDPswd1由客户输入客户端;用户紧接着第三次(例如在第二次按压按钮的1秒或5秒之内)按下保安器按钮时,保安器得到T1(SynRSL).LOD作为所述时间相关信息,并转换成10进制或16进制或32进制形式显示出来,作为SynDPswd2由客户输入客户端。这种情况下同步时,在客户端不需要输入第一次按下按钮时获取的LogDPswd,而需要输入第二次按下按钮时获取的SynDPswd1和第三次按下按钮时获取的SynDPswd2。
当使用方式二和方式三时,产生TMC1根据K1进行,保安器不需要保存SynK1,相应的服务器不需要根据PIN码保存所述SynK2。当使用方式一和方式四时,产生TMC1根据SynK1进行,保安器要保存SynK1,相应的服务器要根据PIN码保存对应的SynK2。实际当中,K1与SynK1可以使用同一个密钥,对应地,K2与SynK2也使用同一个密钥。
实际当中,还可以考虑其它合适的方式。
为简化说明书篇幅,节省阅读时间,本实施例仅针对方式二进行阐述。
步骤703,客户端根据UsrPswd1和LogDPswd进行计算,得到消息认证编码MAC;将MAC和所述PIN码、以及SynDPswd1中的T1(SynRSL).LOD一起发送给服务器。
步骤704,服务器收到MAC、所述PIN码,以及T1(SynRSL).LOD后,结合该PIN码对应的VClk得到T1的估值Te。
这里,所述结合该PIN码对应的VClk得到T1的估值Te是指:先根据SvrClk获取第二时间T2,而后根据该PIN码对应的映射关系得到第三时间T3,即:T3=f(T2)=a×T2+b。确定Te的搜索右边界(RBorder,Right Border),使T3处于搜索范围的中间,即RBorder=T3+SynRSL(2).LTRP。
服务器采用左同余定位方式,由RBorder和T1(SynRSL).LOD确定T1的估值Te。
这里,Te=RBorder-((RBorder-T1(SynRSL).LOD)mod SynRSL)
        =T3+SynRSL(2).LTRP
          -((T3+SynRSL(2).LTRP-T1(SynRSL).LOD)mod SynRSL)
        =a×T2+b+SynRSL(2).LTRP
          -((a×T2+b+SynRSL(2).LTRP-T1(SynRSL).LOD)mod SynRSL)
由于T3处于搜索范围的中间,无论T1在T3之前,还是在T3之后,只要T1与T3的距离没有达到SynRSL(2).LTRP,则,得到的T1的估值Te就和T1相等。
当然,如果预期T1比T3小的话,可以直接将RBorder设置为T3。
还可以根据T1与T3的快慢比较的历史数据来灵活确定RBorder,从而使得搜索更有效。例如,统计发现大多数情况下T1小于T3,则可以设置RBorder=T3+SynRSL(4).LTRP。
步骤705,服务器判断Te是否可接受,如果可接受,则执行步骤706;否则,结束流程。
一般地,判断Te是否可接受是指,判断Te是否在TLVT之后,即Te是否大于TLVT,如果是,则可接受,否则,说明该消息可能是重放消息,因此,不予接受。
判断Te是否可接受还可以是判断是否(Te>TLVT且(Te-TLST)>SynRSL),如果是,则可接受,否则,认为保安器同步请求过于频繁,不予接受。
判断Te是否可接受还可以是判断是否(Te-TLVT)>n×RSL,其中n>=1。
步骤706,服务器根据所述PIN码,获取相应的K2和UsrPswd;根据K2、UsrPswd与Te判断接收的MAC是否合法,如果不是,则对客户端认证失败,结束流程;否则,对客户端认证成功,对所述映射关系进行修改,并将TLVT和TLST更新为Te,将SvrLST更新为T2。
这里,服务器得到Te(RSL).RTRP,根据相应的K2与Te(RSL).RTRP进行计算,得到第二时间诱变编码TMC2,根据UsrPswd与TMC2进行相应的计算,判断计算结果与接收的MAC是否一致,例如是否相等,如果不是,判断MAC不合法;否则,判断MAC合法。
所述针对PIN码,对所述映射关系进行修改是指:针对该PIN码,对同步参数a与b的值进行更新。本发明提供一种更新方式如下:根据该PIN码上次同步时间和本次同步时间,对a进行更新;而后根据本次同步时间,以及a的值对b进行更新。例如:
将a更新为(Te-TLST)÷(T2-SvrLST),而后再将b更新为(Te-a×T2)。
这里,当TLST为初始值0时,保持a的值为初始值,例如1不变,更新b的值。
当a=1时,或者是不考虑同步参数a时,b=Te-T2。
特别地,在步骤704中,所述RBorder可以直接是T3。这样,当步骤706中判断MAC不合法时,可以将Rborder设置为T3(SynRSL).NCP,重新获得Te,并转到步骤706重新执行,并在步骤706中判断MAC不合法时,结束流程。这样,事实上等于扩大了T1的估值范围。
同样,还可以通过如下三种方式之一来进一步提高认证流程的整体安全性。
方式一、客户登录服务器时,可以先将PIN码发送给服务器,服务器产生一个随机数Rand发送给客户端。客户端在计算MAC时,进一步根据Rand进行;相应地,服务器对MAC进行合法性判断时,进一步根据接收的Rand来进行。通过这种方式既可以扩大MAC的值域,还可以防止消息被拦截后,延期使用,从而提高认证流程的整体安全性。
方式二、客户登录服务器时,可以先将PIN码发送给服务器,服务器根据所述PIN码发送一个预先保存的公钥给客户端。客户端根据所述公钥将产生的MAC、以及所述T1(SynRSL).LOD加密后再和所述PIN码一起发送给服务器;服务器根据所述PIN码对应的私钥解密得到该客户端发送的MAC,以及T1(SynRSL).LOD。这样也可以提高认证流程的整体安全性。
方式三、在客户端可以保存私钥,并在服务器侧根据所述PIN码保存对应的公钥;客户端根据所述私钥将产生的MAC、以及所述T1(SynRSL).LOD加密后再和所述PIN码一起发送给服务器;服务器根据所述PIN码对应的公钥解密得到该客户端发送的MAC,以及T1(SynRSL).LOD。这样既可以提高认证流程的整体安全性,也可以达到防抵赖的效果。
对于金融账户的认证,一般可以将保安器产生的DPswd1分为三类:普通登录类型、普通同步类型、超级同步类型。对于普通登录类型,对应的RSL为64,大约64秒;对于普通同步类型,对应的同步参考步长SynRSL1为65536,大约18小时;对于超级同步类型,对应的同步参考步长SynRSL2为65536×256,大约半年。这样,当保安器的TClk与服务器中对应的VClk相差在9个小时以内时,通过普通同步可以使该VClk逼近对应的TClk;当保安器的TClk与服务器中对应的VClk相差在3个月以内时,通过超级同步可以使该VClk逼近对应的TClk。
实际当中,也可以只将保安器产生的DPswd1分为二类,即登录类型和同步类型,并合理设置同步参考步长,例如设置SynRSL为65536×16,大约12天。这样,当保安器的TClk与服务器中对应的VClk相差在6天以内时,通过同步可以使该VClk逼近对应的TClk。可以在现有的单按钮保安器上增加一个同步按钮,通过按压该同步按钮,保安器产生同步动态口令,即同步口令SynDPswd。例如:用户按保安器同步按钮时,保安器根据TClk获取第一时间T1,得到T1(SynRSL).LOD;根据保存的第一密钥K1与T1进行计算,得到第一时间诱变编码(TMC1),将TMC1与T1(SynRSL).LOD拼接在一起形成SynDPswd1,将SynDPswd1转换成10进制或16进制或32进制形式显示出来,以便于客户输入客户端。
实际当中,较佳地,并不增加同步按钮,而是根据现有保安器按钮按下的次数和时间间隔来决定在某次按下按钮时,是否需要产生LogDPswd或SynDPswd,以及显示产生的LogDPswd还是SynDPswd。例如:在所述保安器中保存上一次显示口令的口令类型PswdType和上一次产生LogDPswd的时间LastT1;每接收一次按压指令,保安器根据TClk获取第一时间T1,判断T1与LastT1的差是否大于设置的RSL,如果是,则产生LogDPswd和SynDPswd,并将PswdType设置为0;否则,变换PswdType的值(即,如果PswdType为0,则将PswdType设置为1,如果PswdType为1,则将PswdType设置为0),而后,根据PswdType的值来决定是显示产生的LogDPswd还是显示产生的SynDPswd。这样可以保证客户在一段时间以后,例如RSL对应的时间之后,再次按下保安器按钮时,保安器第一时间总是显示产生的LogDPswd,并且只在一个RSL对应的时间窗内连续接收到按压指令时,才会交替显示产生的SynDPswd。
这里,PswdType为0时,对应LogDPswd;PswdType为1时,对应SynDPswd。这样,客户通过按压按钮可以交替获取保安器显示的LogDPswd和SynDPswd等不同类型的动态口令。
由于同步口令的预期寿命相对来说很长,因此,较佳地,服务器限制客户通过同步流程来执行一些业务。
满足以下三个条件之一,一个同步口令的寿命将终结:
1、在该同步口令产生后的一个SynRSL对应的时间即(SynRSL÷a)之后必然终结;
2、在该同步口令被服务器认证通过后终结;
3、在一个登录口令被服务器认证通过后终结。
上述各同步实施方式或同步实施例中,对应的同步密钥实际上可以是登录密钥,即同步密钥和登录密钥是一个密钥。
客户端登录界面可以提供登录和同步两种按钮,由用户选择哪种方式来访问服务器。
当然,客户端登录界面也可以只有一个登录按钮,用户登录消息或同步消息都通过该按钮来向服务器提交。相应的,服务器根据DPswd1中携带的TMC类型参数来区分认证方式。特别地,服务器并不区分客户端采用了何种认证方式,只是首先按照登录流程进行处理,并在对客户端认证通不过时,再进入同步流程。这样,客户感受性就会更好。或者客户端提供了同步口令输入界面,客户端判断客户输入的同步口令为空时,按照登录流程来处理,当客户端判断客户输入的同步口令不为空时,按照同步流程来处理;相应地,服务器按照这种方式来进行登录流程或同步流程的选择。
当保安器只提供一个按钮时,为避免客户混淆登录口令和同步口令,本发明还提供了一种口令显示方法,通过该方法显示的口令,有助于客户对口令类型进行区分。
保安器在显示登录口令或同步口令时,根据口令类型进行有区别的显示,以便于客户识别,本发明提供如下几种显示方式:
方式一、通过字体风格来区别显示登录口令和同步口令。例如用正体字显示登录口令,用斜体字显示同步口令。
方式二、通过显示字符集来区别显示登录口令和同步口令。例如用数字(例如0到9的十进制)显示登录口令,用字母(例如从A到P替代从0到15的16进制)显示同步口令。
客户端可以通过这种显示方式获得口令的类型,并在将所述MAC发送给服务器时,可以进一步发送该口令类型。
客户端将按照口令显示的规则,将客户输入的对应口令转换成二进制形式的数据,以方便进行后续的计算。
方式三、通过类型标记来区别显示登录口令和同步口令。这里的类型标记可以是一个前导字符,例如,前导字符“*”或“0”表示登录口令,前导字符“#”或“1”表示同步口令。
方式四、通过口令的若干bit位来区别显示登录口令和同步口令。可以通过口令末尾的一个bit位来区分口令类型。例如,口令尾部的一个bit位为0,表示登录口令,显示的十进制数为偶数;该bit位为1,表示同步口令,显示的十进制数为奇数。客户、客户端或服务器都可以通过该bit位的值来区分不同的口令类型,从而启动不同的认证流程。
方式五、通过口令长度区别显示LogDPswd和SynDPswd。例如,LogDPswd长6位,SynDPswd长10位。
一种认证系统,包括服务器、客户端和保安器;如图11所示,为本发明认证系统组成图。
所述保安器中设置有TClk,所述保安器保存第一密钥K1。
所述服务器设置有SvrClk;所述服务器根据PIN码,基于SvrClk构建VClk,使VClk的时间值Y与SvrClk的时间值X满足映射关系:Y=f(X)=a×X+b;所述服务器根据PIN码,保存配对的第二密钥K2以及UsrPswd、TLVT、TLST、SvrLST。
所述保安器用于产生携带第一时间诱变编码TMC1的LogDPswd或携带相关时间信息的SynDPswd;所述TMC1是根据TClk提供的时间T1和K1计算得到;所述保安器设置一个显示装置和一个按钮,通过所述按钮收到按压指令时,保安器交替产生LogDPswd或SynDPswd。
所述客户端用于接收客户登录请求或同步请求,并将相应请求加密后提交给所述服务器。
对于登录请求,所述客户端获取客户输入的PIN码、UsrPswd1和LogDPswd;根据UsrPswd1和LogDPswd进行计算得到MAC,将所述PIN码、MAC发送给服务器;服务器根据PIN码对应VClk得到TClk的时间估值Te,并在根据TLVT判断出Te可接受时,根据Te、K2以及UsrPswd对MAC进行一致性验证,如果一致性验证通过,则启动服务,并将TLVT更新为Te。
对于同步请求,所述客户端获取客户输入的PIN码、UsrPswd1以及LogDPswd和SynDPswd;根据UsrPswd1和LogDPswd进行计算得到MAC,将所述PIN码、MAC以及SynDPswd中携带的时间信息发送给服务器;服务器根据SynDPswd中携带的时间信息得到TClk的时间估值Te,并在根据TLVT判断出Te可接受时,根据Te、K2以及UsrPswd对MAC进行一致性验证,如果一致性验证通过,则针对所述PIN码,将TLVT和TLST更新为Te,将SvrLST更新为T2,并根据Te、SvrClk提供的时间以及保存的TLST和SvrLST对所述映射关系进行修改。
无论是接收到客户登录请求,还是接收到客户同步请求,当根据TLVT判断出Te不可接受时,或者对MAC进行的一致性验证通不过时,都结束流程。
所述保安器产生LogDPswd时,是根据TClk获取第一时间T1,根据K1与T1进行计算,得到第一时间诱变编码TMC1,将TMC1转换成10进制或16进制或32(10至31可分别用A至U表示)进制形式作为LogDPswd,显示出来;保安器产生SynDPswd时,先得到T1(SynRSL).LOD,将T1(SynRSL).LOD转换成10进制或16进制或32进制形式,作为SynDPswd显示出来。
在所述保安器中保存上一次显示口令的口令类型PswdType和上一次产生LogDPswd的时间LastT1;每接收一次按压指令,保安器根据TClk获取第一时间T1,判断T1与LastT1的差是否大于RSL,如果是,则产生LogDPswd和SynDPswd,并将PswdType设置为0;否则,变换PswdType的值(即,如果PswdType为0,则将PswdType设置为1,如果PswdType为1,则将PswdType设置为0),而后,根据PswdType的值来决定是显示产生的LogDPswd还是显示产生的SynDPswd。这样可以保证客户在一段时间以后,例如RSL对应的时间之后再次按下保安器按钮时,保安器第一时间总是显示产生的LogDPswd,并且只在一个RSL对应的时间窗内连续接收到按压指令时,才会交替显示产生的SynDPswd。
这里,PswdType为0时,对应LogDPswd;PswdType为1时,对应SynDPswd。这样,客户通过按压按钮可以交替获取保安器显示的不同类型的动态口令。
所述保安器在显示LogDPswd或SynDPswd时,根据口令类型进行有区别的显示,以便于客户识别。所述有区别的显示可以是以下几种显示方式:
方式一、通过字体风格来区别显示LogDPswd和SynDPswd。例如用正体字显示LogDPswd,用斜体字显示SynDPswd。
方式二、通过显示字符集来区别显示LogDPswd和SynDPswd。例如用数字(例如0到9的十进制)显示LogDPswd,用字母(例如从A到P替代从0到15的16进制)显示SynDPswd。
方式三、通过类型标记来区别显示LogDPswd和SynDPswd。这里的类型标记可以是一个前导字符,例如,前导字符“*”或“0”表示LogDPswd,前导字符“#”或“1”表示SynDPswd。
方式四、通过口令的若干bit位来区别显示LogDPswd和SynDPswd。可以通过口令末尾的一个bit位来区分口令类型。例如,口令尾部的一个bit位为0,表示LogDPswd,显示的十进制数为偶数;该bit位为1,表示SynDPswd,显示的十进制数为奇数。客户、客户端或服务器都可以通过该bit位的值来区分不同的口令类型,从而启动不同的认证流程。
方式五、通过口令长度区别显示LogDPswd和SynDPswd。例如,LogDPswd长6位,SynDPswd长10位。
一种保安器,包括:电源模块、时钟系统、存储单元、动态口令生成单元,输入模块、输出模块。如图12所示,为本发明保安器组成图。
所述存储单元用于保存第一密钥K1;输入模块用于接收口令生成指令,将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据时钟系统获得当前时间T1,得到待输出口令类型,按照待输出口令类型决定根据K1与T1生成登录口令LogDPswd或者根据T1生成同步口令SynDPswd,相应地通过输出模块输出已生成的LogDPswd或SynDPswd。
所述输入模块为按钮装置。
所述按钮装置包括两个按钮,分别用于获取LogDPswd生成指令和SynDPswd生成指令;动态口令生成单元根据指令类型得到待输出口令类型。这里,动态口令生成单元可以先得到待输出口令类型,而后根据时钟系统获得当前时间T1。
所述按钮装置包括一个按钮,所述存储单元进一步保存口令类型(PswdType);动态口令生成单元接收到口令生成指令后,更改PswdType值,动态口令生成单元根据PswdType得到待输出口令类型。
本发明,PswdType为0时,对应LogDPswd;PswdType为1时,对应SynDPswd。所述更改PswdType值是指,PswdType为0时,将PswdType更改为1;PswdType为1时,将PswdType更改为0。
所述存储单元既保存PswdType,还保存上一次生成LogDPswd的时间(LastT1);动态口令生成单元收到生成口令的指令后,根据时钟系统获取时间T1,判断T1与LastT1差是否大于某一特定值,例如参考步长RSL,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd和SynDPswd,通过输出模块输出LogDPswd;否则,更改PswdType值,并根据PswdType,通过输出模块,输出已经生成的LogDPswd或SynDPswd。
所述保安器生成LogDPswd时,是根据获取的时间T1,与K1进行计算,得到第一时间诱变编码(TMC1),将TMC1作为LogDPswd;保安器生成SynDPswd时,得到T1的相关信息,例如T1(SynRSL).LOD,将T1的相关信息作为SynDPswd。这里,SynRSL为同步参考步长。
需要说明的是,作为一种简单的变换,口令生成单元在判断T1与LastT1差大于RSL时,也可以不立即生成SynDPswd,而是在口令生成单元再一次接收到口令生成指令,并且口令生成单元最终判断出待生成口令类型对应于SynDPswd时才重新生成SynDPswd。生成SynDPswd之前进一步判断T1与LastT1差是否大于RSL,如果是,则生成新SynDPswd,否则,不生成新SynDPswd。
本发明所述输出模块是显示装置。所述输出口令为显示该口令。
实际当中,可以通过设置不同的口令长度来区别显示LogDPswd和SynDPswd,以便于客户区分。例如,设置LogDPswd长6位,设置SynDPswd长10位。
也可采用如下几种方式来区别显示LogDPswd和SynDPswd:
方式一、通过字体风格来区别显示LogDPswd和SynDPswd。例如用正体字显示LogDPswd,用斜体字显示SynDPswd。
方式二、通过显示字符集来区别显示LogDPswd和SynDPswd。例如用数字(例如0到9的十进制)显示LogDPswd,用字母(例如从A到P替代从0到15的16进制)显示SynDPswd。
方式三、通过类型标记来区别显示LogDPswd和SynDPswd。这里的类型标记可以是一个前导字符,例如,前导字符“*”或“0”表示LogDPswd,前导字符“#”或“1”表示SynDPswd。
方式四、通过口令的若干bit位来区别显示LogDPswd和SynDPswd。可以通过口令末尾的一个bit位来区分口令类型。例如,口令尾部的一个bit位为0,表示LogDPswd,显示的十进制数为偶数;该bit位为1,表示SynDPswd,显示的十进制数为奇数。客户、客户端或服务器都可以通过该bit位的值来区分不同的口令类型,从而启动不同的认证流程。
特别说明,作为对本发明的一种简化应用,上述方法的各个实施方式或实施例中,以及所述认证系统中,如果不考虑同步参数a,即将a的值固定不变,例如保持a=1不变,也即设置映射关系只包含同步参数b,即,Y=f(X)=X+b,则不需要进行保存或更新TLST与SvrLST的操作。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之类,所作的任何修改、改进、等同替换等均应包含在本发明的保护范围之内。

Claims (10)

1.一种相对同步认证方法,包括服务器和终端,其特征在于,在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述方法包括以下步骤:
A、在终端保存第一密钥K1,在服务器中保存配对的第二密钥K2;
B、终端根据TClk获取第一时间T1,根据K1与T1进行计算,得到时间诱变编码TMC,将TMC发送给服务器;
C、服务器收到TMC后,根据VClk得到T1的估值Te;
D、服务器根据K2与Te判断接收的TMC是否合法,如果合法,则对该终端认证通过;否则,认为该终端非法。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括设置参考步长RSL;
所述根据K1与T1进行计算是指,先得到T1(RSL).RTRP,而后根据T1(RSL).RTRP与K1进行计算;所述服务器根据K2与Te判断接收的TMC是否合法是指,得到Te(RSL).RTRP,根据Te(RSL).RTRP与K2进行计算,判断计算结果与TMC是否一致,如果一致,则TMC合法,否则,TMC不合法;
或者,步骤B进一步得到T1(RSL).LOD,将TMC发送给服务器时,进一步发送T1(RSL).LOD,步骤C所述根据VClk得到T1的估值Te时,进一步根据T1(RSL).LOD进行。
3.一种同步参数更新方法,包括服务器和终端,其特征在于,在终端设置第一时钟系统TClk,在服务器设置第二时钟系统SvrClk;服务器针对对应终端,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;服务器还针对对应终端保存终端最后一次验证时间TLVT;所述方法包括以下步骤:
A、在终端保存第一同步密钥SynK1,在服务器中保存配对的第二同步密钥SynK2;
B、终端根据TClk获取第一时间T1,根据SynK1与T1进行计算,得到时间诱变编码TMC,将TMC和T1的相关信息发送给服务器;所述T1的相关信息是T1自身或T1基于某参考步长RSL的左偏距;
C、服务器收到TMC和T1的相关信息后,根据SvrClk得到第二时间T2;根据所述T1的相关信息得到T1的估值Te;
D、服务器根据TLVT判断出Te可接受时,根据SynK2与Te判断接收的TMC是否合法,如果合法,则根据Te、T2,对所述映射关系进行修改,并将TLVT更新为Te;否则,认为该终端非法,并结束流程。
4.根据权利要求3所述的方法,其特征在于,所述映射关系为Y=f(X)=a×X+b,所述a与b为同步参数;
服务器进一步针对对应终端保存终端最后一次同步时间TLST与服务器最后一次同步时间SvrLST;
服务器判断接收的TMC合法时,根据Te、T2,以及TLST与SvrLST,对所述映射关系中相关同步参数a或b进行修改,并将TLVT和TLST更新为Te,将SvrLST更新为T2。
5.一种相对同步认证方法,包括服务器、客户端,以及保安器,其特征在于,所述保安器中设置有第一时钟系统TClk,并保存第一密钥K1;在所述服务器设置第二时钟系统SvrClk;所述服务器根据个人识别码即PIN码,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系,并针对该保安器保存配对的第二密钥K2,以及终端最后一次验证时间TLVT;所述方法包括:
A、在服务器根据PIN码,保存对应的用户密码UsrPswd;
B、客户端获取PIN码、用户密码UsrPswd1和第一动态密码DPswd1;
所述DPswd1由所述保安器产生,所述保安器根据TClk获取第一时间T1,根据K1与T1进行计算,得到第一时间诱变编码TMC1,将TMC1转换成10进制或16进制或32进制形式作为DPswd1显示出来,由客户输入客户端;
C、客户端根据UsrPswd1和DPswd1进行计算,产生消息认证编码MAC,将所述PIN码、MAC发送给服务器。
D、服务器收到所述PIN码、MAC后,根据该PIN码对应的VClk得到T1的估值Te;
E、服务器判断Te可接受时,根据所述PIN码获取相应的K2和UsrPswd,根据相应的UsrPswd、K2与Te判断接收的MAC是否合法,如果是,则对客户端认证成功,将Te保存为TLVT,并执行启动服务的操作;否则,认为客户端非法,结束流程。
6.一种同步参数更新方法,包括服务器、客户端,以及保安器,其特征在于,所述保安器中设置有第一时钟系统TClk,并保存第一密钥K1;在所述服务器设置第二时钟系统SvrClk;所述服务器根据个人识别码即PIN码,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系,并针对该保安器保存配对的第二密钥K2,以及终端最后一次验证时间TLVT;所述方法包括:
A、服务器根据PIN码保存对应的用户密码UsrPswd;
B、客户端获取PIN码、用户密码UsrPswd1、第一时间诱变编码TMC1、时间相关信息;
所述TMC1由所述保安器产生,所述保安器根据TClk获取第一时间T1,根据K1与T1进行计算,得到TMC1,所述时间相关信息是T1自身或T1基于某参考步长RSL的左偏距,所述保安器将TMC1与所述时间相关信息显示出来,由客户输入客户端;
C、客户端根据UsrPswd1和TMC1进行计算,得到消息认证编码MAC;将MAC和所述PIN码、以及所述时间相关信息发送给服务器;
D、服务器收到MAC、所述PIN码,以及所述时间相关信息后,根据SvrClk得到第二时间T2;根据所述相关信息得到T1的估值Te;
E、服务器根据TLVT判断Te可接受时,根据所述PIN码获取相应的K2和UsrPswd,根据Te、K2与UsrPswd判断接收的MAC是否合法,如果合法,则对客户端认证成功,针对PIN码,根据Te、T2对所述映射关系进行修改,并将TLVT更新为Te;否则,对客户端认证失败,结束流程。
7.根据权利要求6所述的方法,其特征在于,所述映射关系为Y=f(X)=a×X+b,所述a与b为同步参数;
服务器进一步根据PIN码保存终端最后一次同步时间TLST与服务器最后一次同步时间SvrLST;
服务器判断接收的TMC合法时,针对所述PIM码,根据Te、T2,以及TLST与SvrLST,对所述映射关系中相关同步参数a或b进行修改,并将TLVT和TLST更新为Te,将SvrLST更新为T2。
8.一种认证系统,其特征在于,包括:服务器、客户端和保安器;所述保安器中设置有第一时钟系统TClk,并保存第一密钥K1;所述保安器用于产生携带时间诱变编码TMC的登录口令LogDPswd或携带相关时间信息的同步口令SynDPswd;所述TMC是根据取自TClk的时间T1和K1计算得到;所述保安器设置一个显示装置和一个按钮,通过所述按钮收到按压指令时,保安器交替产生LogDPswd或SynDPswd;
所述客户端用于接收客户登录请求或同步请求,并对相应请求进行加密处理后提交给所述服务器;
所述服务器设置有第二时钟系统SvrClk;所述服务器根据PIN码,基于SvrClk构建虚拟时钟系统VClk,使VClk的时间值Y与SvrClk的时间值X满足某一映射关系;所述服务器根据PIN码,保存配对的第二密钥K2以及用户密码UsrPswd、终端最后一次验证时间TLVT;
所述客户端接收客户登录请求时,获取客户输入的PIN码、用户密码UsrPswd1和LogDPswd;根据UsrPswd1和LogDPswd进行计算得到消息认证编码MAC,将所述PIN码、MAC发送给服务器;服务器根据PIN码对应VClk得到TClk的时间估值Te,并在根据TLVT判断出Te可接受时,根据Te、K2以及UsrPswd判断MAC是否合法,如果是,则启动服务,并将TLVT更新为Te;否则,认为客户端非法,结束流程;
所述客户端接收客户同步请求时,获取客户输入的PIN码、用户密码UsrPswd1以及LogDPswd和SynDPswd;根据UsrPswd1和LogDPswd进行计算得到消息认证编码MAC,将所述PIN码、MAC以及SynDPswd中携带的时间信息发送给服务器;服务器根据SynDPswd中携带的时间信息得到TClk的时间估值Te,并在根据TLVT判断出Te可接受时,根据Te、K2以及UsrPswd判断MAC是否合法,如果是,则针对所述PIN码,将TLVT更新为Te,并根据Te、取自SvrClk的时间对所述映射关系进行修改。
9.一种保安器,其特征在于,包括:电源模块、时钟系统、存储单元、动态口令生成单元、输入模块、输出模块;所述存储单元用于保存第一密钥K1;输入模块用于接收口令生成指令,将接收的指令信息发送给动态口令生成单元,动态口令生成单元根据时钟系统获得当前时间T1,得到待输出口令类型,按照待输出口令类型决定根据K1与T1生成登录口令LogDPswd或者根据T1生成同步口令SynDPswd,相应地通过输出模块输出已生成的LogDPswd或SynDPswd。
10.根据权利要求9所述的方法,其特征在于,所述存储单元进一步保存口令类型PswdType,以及上一次生成LogDPswd的时间,即LastT1;动态口令生成单元收到生成口令的指令后,根据时钟系统获取时间T1,判断T1与LastT1差是否大于某一特定值,如果是,则将PswdType设置为0,即对应于LogDPswd,重新生成LogDPswd和SynDPswd,通过输出模块输出LogDPswd;否则,更改PswdType值,并根据PswdType,通过输出模块,输出已经生成的LogDPswd或SynDPswd。
CN 201110114688 2011-05-05 2011-05-05 相对同步认证方法、认证系统及装置 Pending CN103166907A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110114688 CN103166907A (zh) 2011-05-05 2011-05-05 相对同步认证方法、认证系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110114688 CN103166907A (zh) 2011-05-05 2011-05-05 相对同步认证方法、认证系统及装置

Publications (1)

Publication Number Publication Date
CN103166907A true CN103166907A (zh) 2013-06-19

Family

ID=48589654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110114688 Pending CN103166907A (zh) 2011-05-05 2011-05-05 相对同步认证方法、认证系统及装置

Country Status (1)

Country Link
CN (1) CN103166907A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104427504A (zh) * 2013-09-08 2015-03-18 王正伟 控制信息验证方法
CN111130781A (zh) * 2020-03-17 2020-05-08 中科天御(苏州)科技有限公司 一种车联网通信控制主动安全防御方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104427504A (zh) * 2013-09-08 2015-03-18 王正伟 控制信息验证方法
CN104427504B (zh) * 2013-09-08 2019-04-19 王正伟 控制信息验证方法
CN111130781A (zh) * 2020-03-17 2020-05-08 中科天御(苏州)科技有限公司 一种车联网通信控制主动安全防御方法及装置

Similar Documents

Publication Publication Date Title
US20190371105A1 (en) Methods and systems for offline verification code generation based on smart door lock system
An Security analysis and enhancements of an effective biometric‐based remote user authentication scheme using smart cards
CN102148685B (zh) 一种由用户自定义多密码种子动态密码认证系统
US20150207790A1 (en) Method and system for generating and authorizing dynamic password
US8572684B1 (en) Authentication using one-time passwords and associated indicia for plural sequences
CN110098923A (zh) 一种生成和验证临时密码的方法及设备
CN102377569B (zh) 一种动态令牌解锁方法及系统
US20090271462A1 (en) Keyed Pseudo-Random Number Generator
CN102187619A (zh) 认证系统
CN103441856A (zh) 一种动态口令认证方法与设备
CN102316120A (zh) 基于网络隐私保护的动态密码锁
CN101278538A (zh) 用于用户认证的方法和设备
CN105279401A (zh) 用于密码认证的装置和方法
CN101699820A (zh) 动态口令的认证方法和装置
US9454654B1 (en) Multi-server one-time passcode verification on respective high order and low order passcode portions
CN102158488A (zh) 动态口令生成方法及装置、认证方法及系统
KR101202245B1 (ko) 이체정보로 생성되는 otp를 활용한 계좌이체시스템 및 방법
CN107566360A (zh) 一种数据认证码的生成方法
US8756666B1 (en) Generating authentication codes
JP4973292B2 (ja) 認証装置、認証プログラム、認証システム、パスワード生成装置、携帯型セキュリティデバイス、およびパスワード生成プログラム
CN103166907A (zh) 相对同步认证方法、认证系统及装置
Long et al. Energy-efficient and intrusion-resilient authentication for ubiquitous access to factory floor information
US20190280876A1 (en) Token-based authentication with signed message
CN103178949A (zh) 相对同步认证方法、同步参数更新方法、认证系统及装置
JPWO2020072413A5 (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: 20130619