CN102833220B - 一种基于动态口令的密钥同步方法及系统 - Google Patents
一种基于动态口令的密钥同步方法及系统 Download PDFInfo
- Publication number
- CN102833220B CN102833220B CN201110163594.4A CN201110163594A CN102833220B CN 102833220 B CN102833220 B CN 102833220B CN 201110163594 A CN201110163594 A CN 201110163594A CN 102833220 B CN102833220 B CN 102833220B
- Authority
- CN
- China
- Prior art keywords
- client
- value
- dynamic password
- server
- event counter
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 238000012512 characterization method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种基于动态口令的密钥同步方法,包括如下步骤:客户端根据事件计数器当前值生成动态口令,并将所述动态口令发往业务服务器;客户端事件计数器的计数值加S;业务服务器接收携带所述动态口令的身份鉴别请求;业务服务器根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口令与登录请求中的动态口令进行比对,如果比对成功,将本地事件计数器的值调整为客户端生成动态口令的事件计数器的值加S,以便与客户端完成事件计数器的同步;根据本地事件计数器的值生成会话密钥;用所生成的会话密钥对业务数据进行加密,并向客户端发送加密后的业务数据;客户端接收到业务服务器发送的加密的业务数据,根据事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密所述加密的业务数据。本发明还提供了一种基于动态口令的密钥同步系统。
Description
技术领域
本发明涉及加密技术领域,尤其涉及一种基于动态口令的密钥同步方法及系统。
背景技术
动态口令(OTP,One-time Password)也称一次性口令。动态口令是变动的口令,其变动来源于产生口令的运算因子是变化的。它的主要特性在于每次产生的口令的是变化的,并且只能使用一次,因此有效的避免了被猜测、破解和重用等静态口令固有的安全弱点。动态口令技术作为主要的认证技术之一,目前广泛应用用于电子商务、远程访问、内部系统访问等的身份认证。
动态令牌是用于产生动态口令的电子终端设备,该设备内置处理芯片、显示屏,部分设备带有按键装置。动态令牌使用种子密钥根据当前时间或事件计数器的值生成动态口令。种子密钥用于对输入的事件计数器的值或者事件计数器值进行加密,通过变换运算(通常是模运算)后输出6-8位数字到显示屏,作为动态口令。
与时间同步的动态口令已得到广泛部署,但可能出现时钟偏差问题。即,如果业务服务器的身份验证服务和用户令牌的时间不同,则无法生成预期的动态口令值,并且用户身份验证将失败。使用与时间同步的动态口令时,用户通常必须在特定时间段内输入该密码,否则会将其视为过期且必须生成另一密码。
由于动态令牌与认证服务软件系统之间存在时间漂移及网络延时,所以不能直接以精确到秒的当前时间作为输入,通常以30秒或60秒或其他时间间隔作为设定的时间间隔。即动态口令经过一个设定的时间间隔变化一次;在一个设定的时间间隔内,动态口令不变。
为了满足以上要求,可以采用以下三种方式:
1、认证服务软件系统许可动态口令在设定的时间间隔内一直有效,或在设定的时间间隔内能重复使用设定的次数n,如60秒内重复使用3次。
2、缩短动态令牌的时间间隔,如将设定的时间间隔从60秒缩短到30秒,或者15秒。
3、使用事件同步动态令牌替代时间同步动态令牌。
第一种方式违背了动态口令的安全要求,即动态口令1次有效的要求,暴露了安全,攻击者可以在设定的时间间隔内重用动态口令。
第二种方式加大了用于实现时间同步窗口的值,即在当前时间,有更多的有效的动态口令,增加了动态口令被猜中的风险,同时认证服务软件要为每个动态口令增加了业务服务器的负载。
第一种和第二种方式均降低了动态口令的安全强度,第二种方式还增加了认证服务软件的负载,并且不能满足更高的实时性的要求。
第三种方式,事件同步令牌存在固有的容易产生失步的问题、动态口令可被记录并可后续使用的安全问题,使其逐渐有被时间同步动态令牌取代的趋势。
发明内容
本发明的目的是提供一种基于动态口令的密钥同步方法及系统,可以避免由于时钟偏差导致动态口令失效的问题。
本发明提供一种基于动态口令的密钥同步方法,包括如下步骤:
A、客户端根据本地的事件计数器值生成动态口令,并将所述动态口令发往业务服务器;客户端事件计数器的计数值加步进值S,其中S为自然数;
B、业务服务器接收携带所述动态口令的身份鉴别请求;
C、业务服务器根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口令与身份鉴别请求中的动态口令进行比对,如果比对成功,则执行步骤D;如果对比失败,向带安全硬件单元的客户端发送登录错误或不作处理;
D、业务服务器将本地事件计数器的值调整为客户端生成动态口令的事件计数器的值加步进值S,以便与客户端完成事件计数器的同步;
E、业务服务器根据本地事件计数器的值生成会话密钥;
F业务服务器用所生成的会话密钥对业务数据进行加密,并向客户端发送加密后的业务数据;
G、客户端接收到业务服务器发送的加密的业务数据,根据事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密所述加密的业务数据。
较佳地,步骤A具体为:
客户端根据事件计数器当前值生成动态口令,并向接入服务器发送携带所述动态口令的登录请求;客户端事件计数器的计数值加步进值S;
接入服务器从登录请求中拆离出动态口令,向业务服务器发送携带动态口令的身份鉴别请求。
较佳地,所述步骤G之后,进一步包括:
H、客户端本地的事件计数器加步进值S,并使用新的本地事件计数器的值生成新的会话密钥,用所述新的会话密钥加密业务数据,并将加密的业务数据发送至业务服务器;
I、业务服务器接收到加密的业务数据后,将业务服务器的本地事件计数器的值加步进值S,并根据新的本地事件计数器的值产生新的会话密钥,用所述新的会话密钥解密所接收的加密的业务数据。
较佳地,步骤C中所述业务服务器根据本地事件计数器的值生成至少一个动态口令为:业务服务器生成本地事件计数器当前值及之后的n个值对应的动态口令;所述n为自然数;
步骤C所述将本地生成的动态口令与登录请求中的动态口令进行比对为:判断所述登录请求中的动态口令是否与生成的n+1个动态口令中的第i个相匹配,其中,1≤i≤n+1;若是, 则在所述步骤C中,业务服务器将本地事件计数器的值调整为与第i+1个动态口令对应的计数器的值。
较佳地,所述步骤F之后,该方法进一步包括:客户端在预定时间内没有收到业务数据,则返回步骤A。
较佳地,所述步骤H之后,该方法进一步包括:业务服务器在预定时间内没有收到业务数据,则向客户端发送业务流程没有正常结束的通知;客户端收到该通知后,返回步骤A。
本发明还提供一种基于动态口令的密钥同步系统,该系统包括业务服务器和客户端;
所述业务服务器用于接收携带动态口令的身份鉴别请求;根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口令与身份鉴别请求中的动态口令进行比对,如果比对成功,则将本地事件计数器的值调整为等于客户端发送动态口令所用的事件计数器的值加步进值S,以便与客户端完成事件计数器的同步;并用该本地事件计数器的值生成会话密钥,业务服务器用所述会话密钥对业务数据进行加密,并向客户端发送加密后的业务数据;
所述客户端根据本地的事件计数器值生成动态口令,将所述动态口令发往业务服务器,并将客户端事件计数器的计数值加步进值S以及接收业务服务器发送的加密的业务数据,根据事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密所述加密的业务数据。
较佳地,所述业务服务器包括:
服务器业务处理模块,用于接收携带由客户端根据客户端事件计数器的值生成的动态口令的身份鉴别请求以及客户端发送的业务数据;每次收到业务数据均向服务器事件计数器发送事件消息;将动态口令发送到服务器认证模块,接收服务器认证模块反馈的认证结果进行业务处理;将业务数据发送到服务器加解密模块,以及接收服务器加解密模块发送的加密的业务数据并发送至客户端;
服务器事件计数器,用于接收到服务器业务处理模块发送的事件消息后进行计数值的调整,以及根据服务器认证模块发送的使能命令,调整计数器的值;
服务器认证模块,用于根据所述服务器事件计数器的值生成至少一个动态口令;将所述动态口令与从所述服务器收发模块接收的动态口令进行比对,如果比对成功,则向服务器事件计数器发送将计数器值调整为等于客户端发送动态口令所用的事件计数器值加步进值S的使能命令;
服务器加解密模块,用于根据服务器事件计数器的值生成会话密钥,使用所述会话密钥加解密从服务器业务处理模块接收的业务数据并将加解密的业务数据返回至所述服务器收发模块。
较佳地,所述客户端包括:
客户端事件计数器,用于在每次收到来自客户端业务处理模块的事件消息后,对计数值进行调整;
客户端认证模块,用于根据所述客户端事件计数器的值生成动态口令;
客户端业务处理模块,用于向业务服务器发送携带所述客户端认证模块所生成的动态口令的登录请求;向业务服务器发送加密的业务数据以及接收业务服务器发送的加密的业务数据并转发至客户端加解密模块;每次发送业务数据到客户端加解密模块前均向客户端事件计数器发送事件消息;
客户端加解密模块,用于根据所述客户端事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密客户端业务处理模块发送的由业务服务器加密的业务数据,并返回解密后的业务数据到客户端业务处理模块;以及使用该会话密钥对从客户端业务处理模块收到的将要发送至业务服务器的业务数据进行加密,并返回加密后的业务数据到客户端业务处理模块。
较佳地,所述服务器认证模块在接收到服务器业务处理模块转发的动态口令之后,生成服务器事件计数器当前值及之后的按一定计数规律获得的n个值所对应的动态口令;所述n为自然数;
服务器认证模块判断所述登录请求中的动态口令是否与生成的n+1个动态口令中的第i个相匹配,其中,1≤i≤n+1,若是, 则向服务器事件计数器发送将计数器值调整为等于第i+1个动态口令对应的计数器值的使能命令;所述服务器事件计数器用于在收到所述使能命令后,将计数值调整为与第i+1个动态口令对应的计数值。
较佳地,所述业务服务器的服务器业务处理模块进一步包括:服务器超时判断单元,用于判断在预定时间内是否收到来自客户端的业务数据,若否,则服务器业务处理模块向客户端发送业务流程没有正常结束的通知。
较佳地,该系统进一步包括接入服务器;
接入服务器接收来自客户端的携带动态口令的登录请求,从所述登录请求中拆离出动态口令,向业务服务器发送携带动态口令的身份鉴别请求。
从以上技术方案可以看出,业务服务器将本地的动态口令与客户端的动态口令进行比对,当比对成功时,将业务服务器本地的事件计数器的值调整为等于客户端发送动态口令所用的事件计数器值加1的值,在后续步骤中,客户端和业务服务器分别根据本地的事件计数器的值,并采用相同的方式生成会话密钥,用会话密钥对业务数据进行加密或解密,这样就保证了业务服务器和客户端的事件计数器一致,避免了时钟偏差的影响。
附图说明
图1为本发明实施例提出的基于动态口令的密钥同步系统示意图;
图2为本发明实施例提出的基于动态口令的密钥同步方法流程图。
具体实施方式
动态口令算法最终目标是获得算法和种子数据后,可计算动态口令。算法是可以公开的,种子数据是要保密的。在只拿到算法,没有拿到种子数据的情况下,是无法计算动态口令的。
种子数据由算法标识、特征因子和可变因子构成。算法标识用来指明采用哪种动态口令算法。特征因子是固定不变的值,记录了拥有者的一些特征,保证了每份种子数据的不一样。可变因子,每次计算动态口令以后,发生有规律的变化,并保证每次计算结果不一样。此三项共同构成动态口令的种子数据。
本发明实施例中,特征因子采用带安全硬件单元(贴片卡)的标识,共10个字节。可变因子采用事件计数器的值,每次发生事件则计数值递增,溢出后变0。其初始值0。
图1为本发明实施实例提出的基于动态口令的密钥同步系统示意图。该密钥同步系统包括客户端和服务器两部分,其中客户端就是图1所示的客户端101,服务器则包括接入服务器102和业务服务器103,
其中,客户端101和业务服务器103分别具有本地的种子数据,动态口令算法及事件计数器。
客户端101用于按照事件方式迭代计算动态口令,即根据事件计数器的值计算出动态口令(当然计算过程中还要依据种子数据和动态口令算法),并向接入服务器102发出带动态口令的WAP/HTTP浏览器登录请求。同时本地计数器加1;客户端101接收到业务服务器加密后的第一业务数据,根据客户端101的本地事件计数器的值生成会话密钥,并根据该会话密钥解密所述第一业务数据;解密完成后,如果继续发送业务数据,客户端101本地的事件计数器加1,或者加一个与业务服务器约定的常数作为步进值,例如2、3等,并使用新的本地事件计数器的值生成新的会话密钥,用所述新的会话密钥加密第二业务数据,并将加密的第二业务数据发送至业务服务器侧。
接入服务器102用于从登录请求中拆离出动态口令,向业务服务器103发送携带动态口令的身份鉴别请求。
业务服务器103用于依照事件方式迭代计算动态口令,并与登录请求中携带的动态口令进行比对,如果比对成功,则将业务服务器103的本地事件计数器调整为客户端101的本地事件计数器的值加1,根据业务服务器的本地事件计数器的值生成会话密钥,业务服务器根据所述会话密钥对第一业务数据进行加密,并向客户端发送加密后的第一业务数据。发送通道可以是短信通道,也可以是WAP通道。业务服务器接收到加密的第二业务数据后,将业务服务器的本地事件计数器的值加1,并根据新的本地事件计数器的值产生新的会话密钥,用所述新的会话密钥解密经加密的第二业务数据。
为了保证本方案的有效性,客户端101登录前,客户端101和业务服务器103两边的事件计数器必须保持一致,要保证客户端101的事件计数器的加1的操作在业务服务器事件计事数器加1的操作之前完成,并且在客户端登录业务服务器时,将服务器端的事件计数器的值调整为与客户端的事件计数器的值一致。
较佳地,所述业务服务器包括:
服务器业务处理模块,用于接收携带由客户端根据客户端事件计数器的值生成的动态口令的身份鉴别请求以及客户端发送的业务数据;每次收到业务数据均向服务器事件计数器发送事件消息;将动态口令发送到服务器认证模块,接收服务器认证模块反馈的认证结果进行业务处理;将业务数据发送到服务器加解密模块,以及接收服务器加解密模块发送的加密的业务数据并发送至客户端;接收到服务器认证模块反馈的认证失败的消息后通过接入服务器102向带安全硬件单元的客户端101发送登录错误;
服务器事件计数器,用于接收到服务器业务处理模块发送的事件消息后进行计数值的调整,以及根据服务器认证模块发送的使能命令,调整计数器的值;
服务器认证模块,用于根据所述服务器事件计数器的值生成至少一个动态口令;将所述动态口令与从所述服务器收发模块接收的动态口令进行比对,如果比对成功,则向服务器事件计数器发送将计数器值调整为等于客户端事件计数器值的命令;如果对比失败,向服务器业务处理模块反馈认证失败的消息;
服务器加解密模块,用于根据服务器事件计数器的值生成会话密钥,使用所述会话密钥加解密从服务器业务处理模块接收的业务数据并将加解密的业务数据返回至所述服务器业务处理模块。
较佳地,所述客户端包括:
客户端事件计数器,用于在每次收到来自客户端业务处理模块的事件消息后,对计数值进行调整;
客户端认证模块,用于根据所述客户端事件计数器的值生成动态口令;
客户端业务处理模块,用于向业务服务器发送携带所述客户端认证模块所生成的动态口令的登录请求;向业务服务器发送加密的业务数据以及接收业务服务器发送的加密的业务数据并转发至客户端加解密模块;每次发送业务数据到客户端加解密模块前均向客户端事件计数器发送事件消息;
客户端加解密模块,用于根据所述客户端事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密客户端业务处理模块发送的由业务服务器加密的业务数据,并返回解密后的业务数据到客户端业务处理模块;以及使用该会话密钥对从客户端业务处理模块收到的将要发送至业务服务器的业务数据进行加密,并返回加密后的业务数据到客户端业务处理模块。
较佳地,所述服务器认证模块在接收到服务器业务处理模块转发的动态口令之后,生成服务器事件计数器当前值及之后的计数器的连续n个值(按一定计数规律获得,例如步进一个自然数)所对应的动态口令;所述n为自然数;
服务器认证模块判断所述登录请求中的动态口令是否与生成的n+1个动态口令中的第i个相匹配,其中,1≤i≤n+1,若是,则向服务器事件计数器发送将计数器值调整为等于第i+1个动态口令对应的计数器值的使能命令;所述服务器事件计数器用于在收到所述使能命令后,将计数值调整为与第i+1个动态口令对应的计数值。
较佳地,所述服务器认证模块作如下操作:
1)比较登录请求中的动态口令与服务器认证模块生成的第1个动态口令是否相同,如果相同则向服务器事件计数器发送调整为等于客户端事件计数器值的命令;如果不同,则计算客户端事件计数器当前值之后的第i个动态口令;第i个计数器的值为当前值加上i*s,其中i为初值为1的自然数 ,s为步进值;
2)比较所述第i个动态口令是否与登录请求中的动态口令相等,若是,则比对成功,则向服务器事件计数器发送调整为等于客户端事件计数器值加S的命令;否则i=i+1,判断i是否大于预先设置的阈值,若是则比对失败,向服务器业务处理模块反馈认证失败的消息;否则,返回2);
较佳地,所述业务服务器的服务器业务处理模块进一步包括:服务器超时判断单元,用于判断在预定时间内是否收到来自客户端的业务数据,若否,则服务器业务处理模块向客户端发送业务流程没有正常结束的通知。
本发明实施例提出的基于动态口令的密钥同步方法流程如图2所示,包括如下步骤:
步骤201:客户端101中的安全硬件单元(贴片卡)根据计数器的值按照事件方式迭代计算动态口令,并向接入服务器102发出带动态口令的WAP/HTTP浏览器登录请求,且本地计数器的值加1(或大于1的步进值);
步骤202:接入服务器102从登录请求中拆离出动态口令,向业务服务器103发送携带动态口令的身份鉴别请求。
步骤203:业务服务器103内部也存有相应动态口令种子,根据本地的计数器的值依照事件方式迭代计算至少一个动态口令,并与登录请求中携带的动态口令进行比对,如果比对成功,执行步骤204,如果比对失败,通过接入服务器102向带安全硬件单元的客户端101发送登录错误,结束服务会话。
以下给出动态口令比对的一个示例:
示例一:在业务服务器端建立一个事件计数器的滑动窗口,窗口的大小为n+1,即预先计算出事件计数器当前的值及后面n个值对应的动态口令,传送给业务服务器认证服务的动态口令与这n+1个动态口令中的第i(1≤i≤n+1)个相匹配时,则比对成功。
示例二:设业务服务器的当前动态口令为k1,客户端的当前动态口令为k2。
步骤a:比较k2与k1是否相等,如果相等则比对成功;如果不等,则执行步骤b;
步骤b:计算k1之后的第i个动态口令;i的初值为1;
步骤c:比较k1之后的第i个动态口令是否与k2相等,若是,则比对成功;否则i=i+1,并继续执行步骤d;
步骤d:判断i是否大于预先设置的阈值,若是则比对失败,否则,返回步骤b。本实施例中,业务服务器和客户端计数器更新的步进值为1,在具体实施中,步进可以任意选择,更增加安全性,只需要保证业务服务器和客户端计数器更新的步进值相同即可。
步骤204:将服务器端的事件计数器的值调整为客户端生成动态口令的事件计数器的值加1。比对成功后,还需要将服务器端的事件计数器的值调整为客户端生成动态口令的事件计数器的值加1,以下给出一个滑动窗口步进值不等于1的示例,其他情况可以依次类推:
如果服务器的事件计数器的当前值为m1,步进值s为1,则,第i个计数器的值为:m1+i*1;如果步进值s为2,则第i个计数器值的值为:m1+i*2;并修改服务器事件计数器为第i个事件计数器值m1+i*s,从而解决了事件计数器同步问题。
步骤205:业务服务器103根据当前计数器的值生成会话密钥,用所述会话密钥对业务数据进行加密,并向带安全硬件单元(贴片卡)的客户端101发送加密后的业务数据。
生成会话密钥的方式也可以是业务服务器103将当前事件计数器的值发送到加密服务器,由加密服务器依据事件计数器数值产生会话密钥,然后发送到业务服务器103。这里的加密服务器相当于是将服务器加解密模块设计为独立的设备。会话密钥可以根据如下规则生成:贴片卡和加密服务器内置的种子数据+事件计数器+扰乱因子(至少包括上述内容),通过固定的运算方法(HASH或加密迭代)得到会话密钥。加密信息可能是短信或一段加密的TCP/IP包。通过密钥种子和事件计数器的关联所产生的密钥可以保证通信会话级别的一次一密。
步骤206:带安全硬件单元(贴片卡)的客户端101接收到业务服务器发送的加密的业务数据,根据客户端事件计数器,采用与业务服务器相同的方法计算出会话密钥,并使用该会话密钥解密所述加密的业务数据。
由于在传送业务数据前,客户端101与业务服务器103进行了计数器值的一致调整,因此,双方采用的基于计数器值的密钥也就一致,保证了传送业务数据时能够正常的加解密。在业务流程中,如果客户端101或业务服务器103任一端发送的业务数据丢失,都不会影响下一次客户端101与业务服务器103的通信。
如果在每个完整流程中都设有监视机制,例如流程中的某一个步骤应该业务服务器发送业务数据到客户端,如果客户端在预定时间没有接收到,则说明中间有数据丢失,客户端重新进入步骤201。如果流程的某一个步骤应该是客户端发送业务数据到业务服务器,如果业务服务器在预定时间没有收到,可以通过非加密的方式通知客户端该业务流程没有正常结束,客户端重新进入步骤201。
如果步骤206之后还有后续的业务数据需要传输,可以包括如下步骤:
步骤207:客户端业务处理模块向客户端事件计数器发送事件消息并向客户端加解密模块发送业务数据,客户端事件计数器收到该事件消息后加1(或加一个与业务服务器设置相同的步进值),生成新的事件计数器;客户端加解密模块收到所述业务数据后,根据所诉客户端事件计数器的值生成新的会话密钥,使用该会话密钥对从客户端业务处理模块收到的将要发送至业务服务器的业务数据进行加密,并返回加密后的业务数据到客户端业务处理模块。客户端业务处理模块收到所述加密的业务数据后将其发送到业务服务器。
步骤208:业务服务器收到使用新的会话密钥加密的业务数据后,其事件计数器加1(或加一个与客户端设置相同的步进值),并根据当前计数器的值按照与客户端101相同的方法产生新的会话密钥,解密接收到的业务数据。如果还有后续的业务数据,则返回步骤205
以上实施例中,在业务服务器与客户端的事件计数器同步后,首次业务数据由业务服务器发送。实际应用中,也可以由客户端收到业务服务器发送的登录合法的指令后发送首次业务数据。本发明实施例具有如下有益技术效果:若因网络信号不好登陆多次失败(步骤201),或数据传输过程丢失所引起的安全硬件单元(贴片卡)和业务服务器的事件计数器不同步的问题,本发明方案可以防止事件漂移导致登陆再也无法实现;并且,利用会话密钥的更新来表征事件计数器的递增,从而省去事件计数器同步的步骤。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种基于动态口令的密钥同步方法,其特征在于,包括如下步骤:
A、客户端根据本地的事件计数器值生成动态口令,并将所述动态口令发往业务服务器;客户端事件计数器的计数值加步进值S,其中S为自然数;
B、业务服务器接收携带所述动态口令的身份鉴别请求;
C、业务服务器根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口令与身份鉴别请求中的动态口令进行比对,如果比对成功,则执行步骤D;如果对比失败,向带安全硬件单元的客户端发送登录错误或不作处理;
D、业务服务器将本地事件计数器的值调整为客户端生成动态口令的事件计数器的值加步进值S,以便与客户端完成事件计数器的同步;
E、业务服务器根据本地事件计数器的值生成会话密钥;
F业务服务器用所生成的会话密钥对业务数据进行加密,并向客户端发送加密后的业务数据;
G、客户端接收到业务服务器发送的加密的业务数据,根据事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密所述加密的业务数据。
2.根据权利要求1所述的方法,其特征在于,步骤A具体为:
客户端根据事件计数器当前值生成动态口令,并向接入服务器发送携带所述动态口令的登录请求;客户端事件计数器的计数值加步进值S;
接入服务器从登录请求中拆离出动态口令,向业务服务器发送携带动态口令的身份鉴别请求。
3.根据权利要求1所述的方法,其特征在于,所述步骤G之后,进一步包括:
H、客户端本地的事件计数器加步进值S,并使用新的本地事件计数器的值生成新的会话密钥,用所述新的会话密钥加密业务数据,并将加密的业务数据发送至业务服务器;
I、业务服务器接收到加密的业务数据后,将业务服务器的本地事件计数器的值加步进值S,并根据新的本地事件计数器的值产生新的会话密钥,用所述新的会话密钥解密所接收的加密的业务数据。
4.根据权利要求1所述的方法,其特征在于,步骤C中所述业务服务器根据本地事件计数器的值生成至少一个动态口令为:业务服务器生成本地事件计数器当前值及之后的n个值对应的动态口令;所述n为自然数;
步骤C所述将本地生成的动态口令与登录请求中的动态口令进行比对为:判断所述登录请求中的动态口令是否与生成的n+1个动态口令中的第i个相匹配,其中,1≤i≤n+1;若是, 则在所述步骤C中,业务服务器将本地事件计数器的值调整为与第i+1个动态口令对应的计数器的值。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述步骤F之后,该方法进一步包括:客户端在预定时间内没有收到业务数据,则返回步骤A。
6.根据权利要求3所述的方法,其特征在于,所述步骤H之后,该方法进一步包括:业务服务器在预定时间内没有收到业务数据,则向客户端发送业务流程没有正常结束的通知;客户端收到该通知后,返回步骤A。
7.一种基于动态口令的密钥同步系统,其特征在于,该系统包括业务服务器和客户端;
所述业务服务器用于接收携带动态口令的身份鉴别请求;根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口令与身份鉴别请求中的动态口令进行比对,如果比对成功,则将本地事件计数器的值调整为等于客户端发送动态口令所用的事件计数器的值加步进值S,以便与客户端完成事件计数器的同步;并用该本地事件计数器的值生成会话密钥,业务服务器用所述会话密钥对业务数据进行加密,并向客户端发送加密后的业务数据;
所述客户端根据本地的事件计数器值生成动态口令,将所述动态口令发往业务服务器,并将客户端事件计数器的计数值加步进值S以及接收业务服务器发送的加密的业务数据,根据事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密所述加密的业务数据。
8.根据权利要求7所述的密钥同步系统,其特征在于;
所述业务服务器包括:
服务器业务处理模块,用于接收携带由客户端根据客户端事件计数器的值生成的动态口令的身份鉴别请求以及客户端发送的业务数据;每次收到业务数据均向服务器事件计数器发送事件消息;将动态口令发送到服务器认证模块,接收服务器认证模块反馈的认证结果进行业务处理;将业务数据发送到服务器加解密模块,以及接收服务器加解密模块发送的加密的业务数据并发送至客户端;
服务器事件计数器,用于接收到服务器业务处理模块发送的事件消息后进行计数值的调整,以及根据服务器认证模块发送的使能命令,调整计数器的值;
服务器认证模块,用于根据所述服务器事件计数器的值生成至少一个动态口令;将所述动态口令与从所述服务器收发模块接收的动态口令进行比对,如果比对成功,则向服务器事件计数器发送将计数器值调整为等于客户端发送动态口令所用的事件计数器值加步进值S的使能命令;
服务器加解密模块,用于根据服务器事件计数器的值生成会话密钥,使用所述会话密钥加解密从服务器业务处理模块接收的业务数据并将加解密的业务数据返回至所述服务器收发模块。
9.根据权利要求7所述的密钥同步系统,其特征在于,所述客户端包括:
客户端事件计数器,用于在每次收到来自客户端业务处理模块的事件消息后,对计数值进行调整;
客户端认证模块,用于根据所述客户端事件计数器的值生成动态口令;
客户端业务处理模块,用于向业务服务器发送携带所述客户端认证模块所生成的动态口令的登录请求;向业务服务器发送加密的业务数据以及接收业务服务器发送的加密的业务数据并转发至客户端加解密模块;每次发送业务数据到客户端加解密模块前均向客户端事件计数器发送事件消息;
客户端加解密模块,用于根据所述客户端事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密客户端业务处理模块发送的由业务服务器加密的业务数据,并返回解密后的业务数据到客户端业务处理模块;以及使用该会话密钥对从客户端业务处理模块收到的将要发送至业务服务器的业务数据进行加密,并返回加密后的业务数据到客户端业务处理模块。
10.根据权利要求8所述的密钥同步系统,其特征在于,所述服务器认证模块在接收到服务器业务处理模块转发的动态口令之后,生成服务器事件计数器当前值及之后的按一定计数规律获得的n个值所对应的动态口令;所述n为自然数;
服务器认证模块判断所述登录请求中的动态口令是否与生成的n+1个动态口令中的第i个相匹配,其中,1≤i≤n+1,若是, 则向服务器事件计数器发送将计数器值调整为等于第i+1个动态口令对应的计数器值的使能命令;所述服务器事件计数器用于在收到所述使能命令后,将计数值调整为与第i+1个动态口令对应的计数值。
11.根据权利要求8所述的密钥同步系统,其特征在于,所述业务服务器的服务器业务处理模块进一步包括:服务器超时判断单元,用于判断在预定时间内是否收到来自客户端的业务数据,若否,则服务器业务处理模块向客户端发送业务流程没有正常结束的通知。
12.根据权利要求7所述的系统,其特征在于,该系统进一步包括接入服务器;
接入服务器接收来自客户端的携带动态口令的登录请求,从所述登录请求中拆离出动态口令,向业务服务器发送携带动态口令的身份鉴别请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110163594.4A CN102833220B (zh) | 2011-06-17 | 2011-06-17 | 一种基于动态口令的密钥同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110163594.4A CN102833220B (zh) | 2011-06-17 | 2011-06-17 | 一种基于动态口令的密钥同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102833220A CN102833220A (zh) | 2012-12-19 |
CN102833220B true CN102833220B (zh) | 2014-12-31 |
Family
ID=47336193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110163594.4A Active CN102833220B (zh) | 2011-06-17 | 2011-06-17 | 一种基于动态口令的密钥同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102833220B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103384248B (zh) * | 2013-07-08 | 2016-03-02 | 张忠义 | 一种可以防止黑客程序再次登陆的方法 |
CN104734843A (zh) * | 2013-12-19 | 2015-06-24 | 江苏吉美思物联网产业股份有限公司 | 一种同步3des保密通信方法 |
CN103957196B (zh) * | 2014-04-10 | 2017-03-22 | 飞天诚信科技股份有限公司 | 一种信息安全设备的同步方法和系统 |
CN109359472B (zh) * | 2018-09-19 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种数据加解密处理方法、装置以及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212303A (zh) * | 2007-12-24 | 2008-07-02 | 北京飞天诚信科技有限公司 | 动态口令输出方法、动态口令生成方法及其装置 |
CN101277182A (zh) * | 2008-03-14 | 2008-10-01 | 北京信联恒业通讯技术有限公司 | 基于公开密钥体系-用户身份识别卡获取动态口令的方法 |
CN101453458A (zh) * | 2007-12-06 | 2009-06-10 | 北京唐桓科技发展有限公司 | 基于多变量的动态密码口令双向认证的身份识别方法技术 |
CN101783731A (zh) * | 2009-12-28 | 2010-07-21 | 北京飞天诚信科技有限公司 | 动态口令的显示方法及动态令牌 |
-
2011
- 2011-06-17 CN CN201110163594.4A patent/CN102833220B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453458A (zh) * | 2007-12-06 | 2009-06-10 | 北京唐桓科技发展有限公司 | 基于多变量的动态密码口令双向认证的身份识别方法技术 |
CN101212303A (zh) * | 2007-12-24 | 2008-07-02 | 北京飞天诚信科技有限公司 | 动态口令输出方法、动态口令生成方法及其装置 |
CN101277182A (zh) * | 2008-03-14 | 2008-10-01 | 北京信联恒业通讯技术有限公司 | 基于公开密钥体系-用户身份识别卡获取动态口令的方法 |
CN101783731A (zh) * | 2009-12-28 | 2010-07-21 | 北京飞天诚信科技有限公司 | 动态口令的显示方法及动态令牌 |
Also Published As
Publication number | Publication date |
---|---|
CN102833220A (zh) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10243742B2 (en) | Method and system for accessing a device by a user | |
US5524052A (en) | Communication network access method and system | |
US7974415B2 (en) | System and method for updating keys used for public key cryptography | |
CN102647461B (zh) | 基于超文本传输协议的通信方法、服务器、终端 | |
EP1394982B1 (en) | Methods and apparatus for secure data communication links | |
CN100518411C (zh) | 一种基于移动通信终端的动态密码系统及方法 | |
US8171527B2 (en) | Method and apparatus for securing unlock password generation and distribution | |
EP2345235B1 (en) | Fast and transparent client reauthentication | |
CN101777983B (zh) | 交易签名方法、认证服务器及系统 | |
Harini et al. | 2CAuth: A new two factor authentication scheme using QR-code | |
US20070209081A1 (en) | Methods, systems, and computer program products for providing a client device with temporary access to a service during authentication of the client device | |
US10158487B2 (en) | Dynamic second factor authentication for cookie-based authentication | |
CN104901935A (zh) | 一种基于cpk的双向认证及数据交互安全保护方法 | |
CN105681470A (zh) | 基于超文本传输协议的通信方法、服务器、终端 | |
CN105528695A (zh) | 一种基于标记的移动支付方法及移动支付系统 | |
CN100579009C (zh) | 一种可信计算模块功能升级的方法 | |
Sediyono et al. | Secure login by using One-time Password authentication based on MD5 Hash encrypted SMS | |
CN102833220B (zh) | 一种基于动态口令的密钥同步方法及系统 | |
CN113411187A (zh) | 身份认证方法和系统、存储介质及处理器 | |
CN106992865B (zh) | 数据签名方法及系统、数据验签方法及装置 | |
Me et al. | A mobile based approach to strong authentication on Web | |
CN109522689B (zh) | 移动办公环境下的多因子强身份认证方法 | |
CN104868994A (zh) | 一种协同密钥管理的方法、装置及系统 | |
CN111698263B (zh) | 一种北斗卫星导航数据的传输方法和系统 | |
Shanmukesh et al. | Secure DLMS/COSEM communication for Next Generation Advanced Metering Infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240228 Address after: No. 118, Chunzhu East Road, Xishan Economic Development Zone (Dongting), Wuxi City, Jiangsu Province, 214000 Patentee after: TONGFANG COMPUTER Co.,Ltd. Country or region after: China Address before: 100083 Haidian District, Beijing, Tsinghua Tongfang square A block 29. Patentee before: Tongfang Co.,Ltd. Country or region before: China |