一种基于动态口令的密钥同步方法及系统.pdf

上传人:000****221 文档编号:4335636 上传时间:2018-09-14 格式:PDF 页数:14 大小:606.32KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110163594.4

申请日:

2011.06.17

公开号:

CN102833220A

公开日:

2012.12.19

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/06申请日:20110617|||公开

IPC分类号:

H04L29/06; H04L9/32; H04L7/00

主分类号:

H04L29/06

申请人:

同方股份有限公司

发明人:

邹勇

地址:

100083 北京市海淀区清华同方科技广场A座29层

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明提供了一种基于动态口令的密钥同步方法,包括如下步骤:客户端根据事件计数器当前值生成动态口令,并将所述动态口令发往业务服务器;客户端事件计数器的计数值加S;业务服务器接收携带所述动态口令的身份鉴别请求;业务服务器根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口令与登录请求中的动态口令进行比对,如果比对成功,将本地事件计数器的值调整为客户端生成动态口令的事件计数器的值加S,以便与客户端完成事件计数器的同步;根据本地事件计数器的值生成会话密钥;用所生成的会话密钥对业务数据进行加密,并向客户端发送加密后的业务数据;客户端接收到业务服务器发送的加密的业务数据,根据事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥解密所述加密的业务数据。本发明还提供了一种基于动态口令的密钥同步系统。

权利要求书

1.一种基于动态口令的密钥同步方法,其特征在于,包括如下步骤:A、客户端根据本地的事件计数器值生成动态口令,并将所述动态口令发往业务服务器;客户端事件计数器的计数值加步进值S,其中S为自然数;B、业务服务器接收携带所述动态口令的身份鉴别请求;C、业务服务器根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口令与身份鉴别请求中的动态口令进行比对,如果比对成功,则执行步骤D;如果对比失败,向带安全硬件单元的客户端101发送登录错误或不作处理;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所述的系统,其特征在于,该系统进一步包括接入服务器;接入服务器接收来自客户端的携带动态口令的登录请求,从所述登录请求中拆离出动态口令,向业务服务器发送携带动态口令的身份鉴别请求。

说明书

一种基于动态口令的密钥同步方法及系统

技术领域

 本发明涉及加密技术领域,尤其涉及一种基于动态口令的密钥同步方法及系统。

背景技术

动态口令(OTP,One-time Password)也称一次性口令。动态口令是变动的口令,其变动来源于产生口令的运算因子是变化的。它的主要特性在于每次产生的口令的是变化的,并且只能使用一次,因此有效的避免了被猜测、破解和重用等静态口令固有的安全弱点。动态口令技术作为主要的认证技术之一,目前广泛应用用于电子商务、远程访问、内部系统访问等的身份认证。

动态令牌是用于产生动态口令的电子终端设备,该设备内置处理芯片、显示屏,部分设备带有按键装置。动态令牌使用种子密钥根据当前时间或事件计数器的值生成动态口令。种子密钥用于对输入的事件计数器的值或者事件计数器值进行加密,通过变换运算(通常是模运算)后输出6-8位数字到显示屏,作为动态口令。

与时间同步的动态口令已得到广泛部署,但可能出现时钟偏差问题。即,如果业务服务器的身份验证服务和用户令牌的时间不同,则无法生成预期的动态口令值,并且用户身份验证将失败。使用与时间同步的动态口令时,用户通常必须在特定时间段内输入该密码,否则会将其视为过期且必须生成另一密码。

由于动态令牌与认证服务软件系统之间存在时间漂移及网络延时,所以不能直接以精确到秒的当前时间作为输入,通常以30秒或60秒或其他时间间隔作为设定的时间间隔。即动态口令经过一个设定的时间间隔变化一次;在一个设定的时间间隔内,动态口令不变。

为了满足以上要求,可以采用以下三种方式:

1、认证服务软件系统许可动态口令在设定的时间间隔内一直有效,或在设定的时间间隔内能重复使用设定的次数n,如60秒内重复使用3次。

2、缩短动态令牌的时间间隔,如将设定的时间间隔从60秒缩短到30秒,或者15秒。

3、使用事件同步动态令牌替代时间同步动态令牌。

第一种方式违背了动态口令的安全要求,即动态口令1次有效的要求,暴露了安全,攻击者可以在设定的时间间隔内重用动态口令。

第二种方式加大了用于实现时间同步窗口的值,即在当前时间,有更多的有效的动态口令,增加了动态口令被猜中的风险,同时认证服务软件要为每个动态口令增加了业务服务器的负载。

第一种和第二种方式均降低了动态口令的安全强度,第二种方式还增加了认证服务软件的负载,并且不能满足更高的实时性的要求。

第三种方式,事件同步令牌存在固有的容易产生失步的问题、动态口令可被记录并可后续使用的安全问题,使其逐渐有被时间同步动态令牌取代的趋势。

发明内容

本发明的目的是提供一种基于动态口令的密钥同步方法及系统,可以避免由于时钟偏差导致动态口令失效的问题。

本发明提供一种基于动态口令的密钥同步方法,包括如下步骤:

A、客户端根据本地的事件计数器值生成动态口令,并将所述动态口令发往业务服务器;客户端事件计数器的计数值加步进值S,其中S为自然数;

B、业务服务器接收携带所述动态口令的身份鉴别请求;

C、业务服务器根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口令与身份鉴别请求中的动态口令进行比对,如果比对成功,则执行步骤D;如果对比失败,向带安全硬件单元的客户端101发送登录错误或不作处理;

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),或数据传输过程丢失所引起的安全硬件单元(贴片卡)和业务服务器的事件计数器不同步的问题,本发明方案可以防止事件漂移导致登陆再也无法实现;并且,利用会话密钥的更新来表征事件计数器的递增,从而省去事件计数器同步的步骤。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

一种基于动态口令的密钥同步方法及系统.pdf_第1页
第1页 / 共14页
一种基于动态口令的密钥同步方法及系统.pdf_第2页
第2页 / 共14页
一种基于动态口令的密钥同步方法及系统.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种基于动态口令的密钥同步方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种基于动态口令的密钥同步方法及系统.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102833220 A (43)申请公布日 2012.12.19 C N 1 0 2 8 3 3 2 2 0 A *CN102833220A* (21)申请号 201110163594.4 (22)申请日 2011.06.17 H04L 29/06(2006.01) H04L 9/32(2006.01) H04L 7/00(2006.01) (71)申请人同方股份有限公司 地址 100083 北京市海淀区清华同方科技广 场A座29层 (72)发明人邹勇 (54) 发明名称 一种基于动态口令的密钥同步方法及系统 (57) 摘要 本发明提供了一种基于动态口令的密钥同步 方。

2、法,包括如下步骤:客户端根据事件计数器当 前值生成动态口令,并将所述动态口令发往业务 服务器;客户端事件计数器的计数值加S;业务服 务器接收携带所述动态口令的身份鉴别请求;业 务服务器根据本地事件计数器的值生成至少一个 动态口令,将本地生成的动态口令与登录请求中 的动态口令进行比对,如果比对成功,将本地事件 计数器的值调整为客户端生成动态口令的事件计 数器的值加S,以便与客户端完成事件计数器的 同步;根据本地事件计数器的值生成会话密钥; 用所生成的会话密钥对业务数据进行加密,并向 客户端发送加密后的业务数据;客户端接收到业 务服务器发送的加密的业务数据,根据事件计数 器的值,采用与业务服务器相。

3、同的方法计算出会 话密钥,使用该会话密钥解密所述加密的业务数 据。本发明还提供了一种基于动态口令的密钥同 步系统。 (51)Int.Cl. 权利要求书3页 说明书8页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 8 页 附图 2 页 1/3页 2 1.一种基于动态口令的密钥同步方法,其特征在于,包括如下步骤: A、客户端根据本地的事件计数器值生成动态口令,并将所述动态口令发往业务服务 器;客户端事件计数器的计数值加步进值S,其中S为自然数; B、业务服务器接收携带所述动态口令的身份鉴别请求; C、业务服务器根据本地事件计数器的值生成至少一个。

4、动态口令,将本地生成的动态口 令与身份鉴别请求中的动态口令进行比对,如果比对成功,则执行步骤D;如果对比失败, 向带安全硬件单元的客户端101发送登录错误或不作处理; D、业务服务器将本地事件计数器的值调整为客户端生成动态口令的事件计数器的值 加步进值S,以便与客户端完成事件计数器的同步; E、业务服务器根据本地事件计数器的值生成会话密钥; F业务服务器用所生成的会话密钥对业务数据进行加密,并向客户端发送加密后的业 务数据; G、客户端接收到业务服务器发送的加密的业务数据,根据事件计数器的值,采用与业 务服务器相同的方法计算出会话密钥,使用该会话密钥解密所述加密的业务数据。 2.根据权利要求1。

5、所述的方法,其特征在于,步骤A包括: 客户端根据事件计数器当前值生成动态口令,并向接入服务器发送携带所述动态口令 的登录请求;客户端事件计数器的计数值加步进值S; 接入服务器从登录请求中拆离出动态口令,向业务服务器发送携带动态口令的身份鉴 别请求。 3.根据权利要求1所述的方法,其特征在于,所述步骤G之后,进一步包括: H、客户端本地的事件计数器加步进值S,并使用新的本地事件计数器的值生成新的会 话密钥,用所述新的会话密钥加密业务数据,并将加密的业务数据发送至业务服务器; I、业务服务器接收到加密的业务数据后,将业务服务器的本地事件计数器的值加步进 值S,并根据新的本地事件计数器的值产生新的会。

6、话密钥,用所述新的会话密钥解密所接收 的加密的业务数据。 4.根据权利要求1所述的方法,其特征在于,步骤C中所述业务服务器根据本地事件计 数器的值生成至少一个动态口令为:业务服务器生成本地事件计数器当前值及之后的n个 值对应的动态口令;所述n为自然数; 步骤C所述将本地生成的动态口令与登录请求中的动态口令进行比对为:判断所述登 录请求中的动态口令是否与生成的n+1个动态口令中的第i个相匹配,其中,1in+1; 若是, 则在所述步骤C中,业务服务器将本地事件计数器的值调整为与第i+1个动态口令 对应的计数器的值。 5.根据权利要求1至4任一项所述的方法,其特征在于,所述步骤F之后,该方法进一 步。

7、包括:客户端在预定时间内没有收到业务数据,则返回步骤A。 6.根据权利要求3所述的方法,其特征在于,所述步骤H之后,该方法进一步包括:业 务服务器在预定时间内没有收到业务数据,则向客户端发送业务流程没有正常结束的通 知;客户端收到该通知后,返回步骤A。 7.一种基于动态口令的密钥同步系统,其特征在于,该系统包括业务服务器和客户 端; 权 利 要 求 书CN 102833220 A 2/3页 3 所述业务服务器用于接收携带动态口令的身份鉴别请求;根据本地事件计数器的值生 成至少一个动态口令,将本地生成的动态口令与身份鉴别请求中的动态口令进行比对,如 果比对成功,则将本地事件计数器的值调整为等于客。

8、户端发送动态口令所用的事件计数器 的值加步进值S,以便与客户端完成事件计数器的同步;并用该本地事件计数器的值生成 会话密钥,业务服务器用所述会话密钥对业务数据进行加密,并向客户端发送加密后的业 务数据; 所述客户端根据本地的事件计数器值生成动态口令,将所述动态口令发往业务服务 器,并将客户端事件计数器的计数值加步进值S以及接收业务服务器发送的加密的业务数 据,根据事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥 解密所述加密的业务数据。 8.根据权利要求7所述的密钥同步系统,其特征在于; 所述业务服务器包括: 服务器业务处理模块,用于接收携带由客户端根据客户端事件计数器。

9、的值生成的动态 口令的身份鉴别请求以及客户端发送的业务数据;每次收到业务数据均向服务器事件计数 器发送事件消息;将动态口令发送到服务器认证模块,接收服务器认证模块反馈的认证结 果进行业务处理;将业务数据发送到服务器加解密模块,以及接收服务器加解密模块发送 的加密的业务数据并发送至客户端; 服务器事件计数器,用于接收到服务器业务处理模块发送的事件消息后进行计数值的 调整,以及根据服务器认证模块发送的使能命令,调整计数器的值; 服务器认证模块,用于根据所述服务器事件计数器的值生成至少一个动态口令;将所 述动态口令与从所述服务器收发模块接收的动态口令进行比对,如果比对成功,则向服务 器事件计数器发送。

10、调整为等于客户端发送动态口令所用的事件计数器值加步进值S的使 能命令; 服务器加解密模块,用于根据服务器事件计数器的值生成会话密钥,使用所述会话密 钥加解密从服务器业务处理模块接收的业务数据并将加解密的业务数据返回至所述服务 器收发模块。 9.根据权利要求7所述的密钥同步系统,其特征在于,所述客户端包括: 客户端事件计数器,用于在每次收到来自客户端业务处理模块的事件消息后,对计数 值进行调整; 客户端认证模块,用于根据所述客户端事件计数器的值生成动态口令; 客户端业务处理模块,用于向业务服务器发送携带所述客户端认证模块所生成的动态 口令的登录请求;向业务服务器发送加密的业务数据以及接收业务服务。

11、器发送的加密的业 务数据并转发至客户端加解密模块;每次发送业务数据到客户端加解密模块前均向客户端 事件计数器发送事件消息; 客户端加解密模块,用于根据所述客户端事件计数器的值,采用与业务服务器相同的 方法计算出会话密钥,使用该会话密钥解密客户端业务处理模块发送的由业务服务器加密 的业务数据,并返回解密后的业务数据到客户端业务处理模块;以及使用该会话密钥对从 客户端业务处理模块收到的将要发送至业务服务器的业务数据进行加密,并返回加密后的 业务数据到客户端业务处理模块。 权 利 要 求 书CN 102833220 A 3/3页 4 10.根据权利要求8所述的密钥同步系统,其特征在于,所述服务器认证。

12、模块在接收到 服务器业务处理模块转发的动态口令之后,生成服务器事件计数器当前值及之后的按一定 计数规律获得的n个值所对应的动态口令;所述n为自然数; 服务器认证模块判断所述登录请求中的动态口令是否与生成的n+1个动态口令中的 第i个相匹配,其中,1in+1,若是, 则向服务器事件计数器发送调整为等于第i+1 个动态口令对应的计数器值的使能命令;所述服务器事件计数器用于在收到所述使能命令 后,将计数值调整为与第i+1个动态口令对应的计数值。 11.根据权利要求8所述的密钥同步系统,其特征在于,所述业务服务器的服务器业务 处理模块进一步包括:服务器超时判断单元,用于判断在预定时间内是否收到来自客户。

13、端 的业务数据,若否,则服务器业务处理模块向客户端发送业务流程没有正常结束的通知。 12.根据权利要求7所述的系统,其特征在于,该系统进一步包括接入服务器; 接入服务器接收来自客户端的携带动态口令的登录请求,从所述登录请求中拆离出动 态口令,向业务服务器发送携带动态口令的身份鉴别请求。 权 利 要 求 书CN 102833220 A 1/8页 5 一种基于动态口令的密钥同步方法及系统 技术领域 0001 本发明涉及加密技术领域,尤其涉及一种基于动态口令的密钥同步方法及系统。 背景技术 0002 动态口令(OTP,One-time Password)也称一次性口令。动态口令是变动的口令, 其变动。

14、来源于产生口令的运算因子是变化的。它的主要特性在于每次产生的口令的是变 化的,并且只能使用一次,因此有效的避免了被猜测、破解和重用等静态口令固有的安全弱 点。动态口令技术作为主要的认证技术之一,目前广泛应用用于电子商务、远程访问、内部 系统访问等的身份认证。 0003 动态令牌是用于产生动态口令的电子终端设备,该设备内置处理芯片、显示屏,部 分设备带有按键装置。动态令牌使用种子密钥根据当前时间或事件计数器的值生成动态口 令。种子密钥用于对输入的事件计数器的值或者事件计数器值进行加密,通过变换运算(通 常是模运算)后输出6-8位数字到显示屏,作为动态口令。 0004 与时间同步的动态口令已得到广。

15、泛部署,但可能出现时钟偏差问题。即,如果业务 服务器的身份验证服务和用户令牌的时间不同,则无法生成预期的动态口令值,并且用户 身份验证将失败。使用与时间同步的动态口令时,用户通常必须在特定时间段内输入该密 码,否则会将其视为过期且必须生成另一密码。 0005 由于动态令牌与认证服务软件系统之间存在时间漂移及网络延时,所以不能直接 以精确到秒的当前时间作为输入,通常以30秒或60秒或其他时间间隔作为设定的时间间 隔。即动态口令经过一个设定的时间间隔变化一次;在一个设定的时间间隔内,动态口令不 变。 0006 为了满足以上要求,可以采用以下三种方式: 1、认证服务软件系统许可动态口令在设定的时间间。

16、隔内一直有效,或在设定的时间间 隔内能重复使用设定的次数n,如60秒内重复使用3次。 0007 2、缩短动态令牌的时间间隔,如将设定的时间间隔从60秒缩短到30秒,或者15 秒。 0008 3、使用事件同步动态令牌替代时间同步动态令牌。 0009 第一种方式违背了动态口令的安全要求,即动态口令1次有效的要求,暴露了安 全,攻击者可以在设定的时间间隔内重用动态口令。 0010 第二种方式加大了用于实现时间同步窗口的值,即在当前时间,有更多的有效的 动态口令,增加了动态口令被猜中的风险,同时认证服务软件要为每个动态口令增加了业 务服务器的负载。 0011 第一种和第二种方式均降低了动态口令的安全强。

17、度,第二种方式还增加了认证服 务软件的负载,并且不能满足更高的实时性的要求。 0012 第三种方式,事件同步令牌存在固有的容易产生失步的问题、动态口令可被记录 并可后续使用的安全问题,使其逐渐有被时间同步动态令牌取代的趋势。 说 明 书CN 102833220 A 2/8页 6 发明内容 0013 本发明的目的是提供一种基于动态口令的密钥同步方法及系统,可以避免由于时 钟偏差导致动态口令失效的问题。 0014 本发明提供一种基于动态口令的密钥同步方法,包括如下步骤: A、客户端根据本地的事件计数器值生成动态口令,并将所述动态口令发往业务服务 器;客户端事件计数器的计数值加步进值S,其中S为自然。

18、数; B、业务服务器接收携带所述动态口令的身份鉴别请求; C、业务服务器根据本地事件计数器的值生成至少一个动态口令,将本地生成的动态口 令与身份鉴别请求中的动态口令进行比对,如果比对成功,则执行步骤D;如果对比失败, 向带安全硬件单元的客户端101发送登录错误或不作处理; D、业务服务器将本地事件计数器的值调整为客户端生成动态口令的事件计数器的值 加步进值S,以便与客户端完成事件计数器的同步; E、业务服务器根据本地事件计数器的值生成会话密钥; F业务服务器用所生成的会话密钥对业务数据进行加密,并向客户端发送加密后的业 务数据; G、客户端接收到业务服务器发送的加密的业务数据,根据事件计数器的。

19、值,采用与业 务服务器相同的方法计算出会话密钥,使用该会话密钥解密所述加密的业务数据。 0015 较佳地,步骤A包括: 客户端根据事件计数器当前值生成动态口令,并向接入服务器发送携带所述动态口令 的登录请求;客户端事件计数器的计数值加步进值S; 接入服务器从登录请求中拆离出动态口令,向业务服务器发送携带动态口令的身份鉴 别请求。 0016 较佳地,所述步骤G之后,进一步包括: H、客户端本地的事件计数器加步进值S,并使用新的本地事件计数器的值生成新的会 话密钥,用所述新的会话密钥加密业务数据,并将加密的业务数据发送至业务服务器; I、业务服务器接收到加密的业务数据后,将业务服务器的本地事件计数。

20、器的值加步进 值S,并根据新的本地事件计数器的值产生新的会话密钥,用所述新的会话密钥解密所接收 的加密的业务数据。 0017 较佳地,步骤C中所述业务服务器根据本地事件计数器的值生成至少一个动态口 令为:业务服务器生成本地事件计数器当前值及之后的n个值对应的动态口令;所述n为 自然数; 步骤C所述将本地生成的动态口令与登录请求中的动态口令进行比对为:判断所述登 录请求中的动态口令是否与生成的n+1个动态口令中的第i个相匹配,其中,1in+1; 若是, 则在所述步骤C中,业务服务器将本地事件计数器的值调整为与第i+1个动态口令 对应的计数器的值。 0018 较佳地,所述步骤F之后,该方法进一步包。

21、括:客户端在预定时间内没有收到业务 数据,则返回步骤A。 0019 较佳地,所述步骤H之后,该方法进一步包括:业务服务器在预定时间内没有收到 说 明 书CN 102833220 A 3/8页 7 业务数据,则向客户端发送业务流程没有正常结束的通知;客户端收到该通知后,返回步骤 A。 0020 本发明还提供一种基于动态口令的密钥同步系统,该系统包括业务服务器和客户 端; 所述业务服务器用于接收携带动态口令的身份鉴别请求;根据本地事件计数器的值生 成至少一个动态口令,将本地生成的动态口令与身份鉴别请求中的动态口令进行比对,如 果比对成功,则将本地事件计数器的值调整为等于客户端发送动态口令所用的事件。

22、计数器 的值加步进值S,以便与客户端完成事件计数器的同步;并用该本地事件计数器的值生成 会话密钥,业务服务器用所述会话密钥对业务数据进行加密,并向客户端发送加密后的业 务数据; 所述客户端根据本地的事件计数器值生成动态口令,将所述动态口令发往业务服务 器,并将客户端事件计数器的计数值加步进值S以及接收业务服务器发送的加密的业务数 据,根据事件计数器的值,采用与业务服务器相同的方法计算出会话密钥,使用该会话密钥 解密所述加密的业务数据。 0021 较佳地,所述业务服务器包括: 服务器业务处理模块,用于接收携带由客户端根据客户端事件计数器的值生成的动态 口令的身份鉴别请求以及客户端发送的业务数据;。

23、每次收到业务数据均向服务器事件计数 器发送事件消息;将动态口令发送到服务器认证模块,接收服务器认证模块反馈的认证结 果进行业务处理;将业务数据发送到服务器加解密模块,以及接收服务器加解密模块发送 的加密的业务数据并发送至客户端; 服务器事件计数器,用于接收到服务器业务处理模块发送的事件消息后进行计数值的 调整,以及根据服务器认证模块发送的使能命令,调整计数器的值; 服务器认证模块,用于根据所述服务器事件计数器的值生成至少一个动态口令;将所 述动态口令与从所述服务器收发模块接收的动态口令进行比对,如果比对成功,则向服务 器事件计数器发送调整为等于客户端发送动态口令所用的事件计数器值加步进值S的使。

24、 能命令; 服务器加解密模块,用于根据服务器事件计数器的值生成会话密钥,使用所述会话密 钥加解密从服务器业务处理模块接收的业务数据并将加解密的业务数据返回至所述服务 器收发模块。 0022 较佳地,所述客户端包括: 客户端事件计数器,用于在每次收到来自客户端业务处理模块的事件消息后,对计数 值进行调整; 客户端认证模块,用于根据所述客户端事件计数器的值生成动态口令; 客户端业务处理模块,用于向业务服务器发送携带所述客户端认证模块所生成的动态 口令的登录请求;向业务服务器发送加密的业务数据以及接收业务服务器发送的加密的业 务数据并转发至客户端加解密模块;每次发送业务数据到客户端加解密模块前均向客。

25、户端 事件计数器发送事件消息; 客户端加解密模块,用于根据所述客户端事件计数器的值,采用与业务服务器相同的 方法计算出会话密钥,使用该会话密钥解密客户端业务处理模块发送的由业务服务器加密 说 明 书CN 102833220 A 4/8页 8 的业务数据,并返回解密后的业务数据到客户端业务处理模块;以及使用该会话密钥对从 客户端业务处理模块收到的将要发送至业务服务器的业务数据进行加密,并返回加密后的 业务数据到客户端业务处理模块。 0023 较佳地,所述服务器认证模块在接收到服务器业务处理模块转发的动态口令之 后,生成服务器事件计数器当前值及之后的按一定计数规律获得的n个值所对应的动态口 令;所。

26、述n为自然数; 服务器认证模块判断所述登录请求中的动态口令是否与生成的n+1个动态口令中的 第i个相匹配,其中,1in+1,若是, 则向服务器事件计数器发送调整为等于第i+1 个动态口令对应的计数器值的使能命令;所述服务器事件计数器用于在收到所述使能命令 后,将计数值调整为与第i+1个动态口令对应的计数值。 0024 较佳地,所述业务服务器的服务器业务处理模块进一步包括:服务器超时判断单 元,用于判断在预定时间内是否收到来自客户端的业务数据,若否,则服务器业务处理模块 向客户端发送业务流程没有正常结束的通知。 0025 较佳地,该系统进一步包括接入服务器; 接入服务器接收来自客户端的携带动态口。

27、令的登录请求,从所述登录请求中拆离出动 态口令,向业务服务器发送携带动态口令的身份鉴别请求。 0026 从以上技术方案可以看出,业务服务器将本地的动态口令与客户端的动态口令进 行比对,当比对成功时,将业务服务器本地的事件计数器的值调整为等于客户端发送动态 口令所用的事件计数器值加1的值,在后续步骤中,客户端和业务服务器分别根据本地的 事件计数器的值,并采用相同的方式生成会话密钥,用会话密钥对业务数据进行加密或解 密,这样就保证了业务服务器和客户端的事件计数器一致,避免了时钟偏差的影响。 附图说明 0027 图1为本发明实施例提出的基于动态口令的密钥同步系统示意图; 图2为本发明实施例提出的基于。

28、动态口令的密钥同步方法流程图。 具体实施方式 0028 动态口令算法最终目标是获得算法和种子数据后,可计算动态口令。算法是可以 公开的,种子数据是要保密的。在只拿到算法,没有拿到种子数据的情况下,是无法计算动 态口令的。 0029 种子数据由算法标识、特征因子和可变因子构成。算法标识用来指明采用哪种动 态口令算法。特征因子是固定不变的值,记录了拥有者的一些特征,保证了每份种子数据的 不一样。可变因子,每次计算动态口令以后,发生有规律的变化,并保证每次计算结果不一 样。此三项共同构成动态口令的种子数据。 0030 本发明实施例中,特征因子采用带安全硬件单元(贴片卡)的标识,共10个字节。 可变因。

29、子采用事件计数器的值,每次发生事件则计数值递增,溢出后变0。其初始值0。 0031 图1为本发明实施实例提出的基于动态口令的密钥同步系统示意图。该密钥同步 系统包括客户端和服务器两部分,其中客户端就是图1所示的客户端101,服务器则包括接 入服务器102和业务服务器103, 说 明 书CN 102833220 A 5/8页 9 其中,客户端101和业务服务器103分别具有本地的种子数据,动态口令算法及事件计 数器。 0032 客户端101用于按照事件方式迭代计算动态口令,即根据事件计数器的值计算出 动态口令(当然计算过程中还要依据种子数据和动态口令算法),并向接入服务器102发出 带动态口令的。

30、WAP/HTTP浏览器登录请求。同时本地计数器加1;客户端101接收到业务服 务器加密后的第一业务数据,根据客户端101的本地事件计数器的值生成会话密钥,并根 据该会话密钥解密所述第一业务数据;解密完成后,如果继续发送业务数据,客户端101本 地的事件计数器加1,或者加一个与业务服务器约定的常数作为步进值,例如2、3等,并使 用新的本地事件计数器的值生成新的会话密钥,用所述新的会话密钥加密第二业务数据, 并将加密的第二业务数据发送至业务服务器侧。 0033 接入服务器102用于从登录请求中拆离出动态口令,向业务服务器103发送携带 动态口令的身份鉴别请求。 0034 业务服务器103用于依照事。

31、件方式迭代计算动态口令,并与登录请求中携带的动 态口令进行比对,如果比对成功,则将业务服务器103的本地事件计数器调整为客户端101 的本地事件计数器的值加1,根据业务服务器的本地事件计数器的值生成会话密钥,业务 服务器根据所述会话密钥对第一业务数据进行加密,并向客户端发送加密后的第一业务数 据。发送通道可以是短信通道,也可以是WAP通道。业务服务器接收到加密的第二业务数 据后,将业务服务器的本地事件计数器的值加1,并根据新的本地事件计数器的值产生新的 会话密钥,用所述新的会话密钥解密经加密的第二业务数据。 0035 为了保证本方案的有效性,客户端101登录前,客户端101和业务服务器103两。

32、边 的事件计数器必须保持一致,要保证客户端101的事件计数器的加1的操作在业务服务器 事件计事数器加1的操作之前完成,并且在客户端登录业务服务器时,将服务器端的事件 计数器的值调整为与客户端的事件计数器的值一致。 0036 较佳地,所述业务服务器包括: 服务器业务处理模块,用于接收携带由客户端根据客户端事件计数器的值生成的动态 口令的身份鉴别请求以及客户端发送的业务数据;每次收到业务数据均向服务器事件计数 器发送事件消息;将动态口令发送到服务器认证模块,接收服务器认证模块反馈的认证结 果进行业务处理;将业务数据发送到服务器加解密模块,以及接收服务器加解密模块发送 的加密的业务数据并发送至客户端。

33、;接收到服务器认证模块反馈的认证失败的消息后通过 接入服务器102向带安全硬件单元的客户端101发送登录错误; 服务器事件计数器,用于接收到服务器业务处理模块发送的事件消息后进行计数值的 调整,以及根据服务器认证模块发送的使能命令,调整计数器的值; 服务器认证模块,用于根据所述服务器事件计数器的值生成至少一个动态口令;将所 述动态口令与从所述服务器收发模块接收的动态口令进行比对,如果比对成功,则向服务 器事件计数器发送调整为等于客户端事件计数器值的命令;如果对比失败,向服务器业务 处理模块反馈认证失败的消息; 服务器加解密模块,用于根据服务器事件计数器的值生成会话密钥,使用所述会话密 钥加解密。

34、从服务器业务处理模块接收的业务数据并将加解密的业务数据返回至所述服务 器业务处理模块。 说 明 书CN 102833220 A 6/8页 10 0037 较佳地,所述客户端包括: 客户端事件计数器,用于在每次收到来自客户端业务处理模块的事件消息后,对计数 值进行调整; 客户端认证模块,用于根据所述客户端事件计数器的值生成动态口令; 客户端业务处理模块,用于向业务服务器发送携带所述客户端认证模块所生成的动态 口令的登录请求;向业务服务器发送加密的业务数据以及接收业务服务器发送的加密的业 务数据并转发至客户端加解密模块;每次发送业务数据到客户端加解密模块前均向客户端 事件计数器发送事件消息; 客户。

35、端加解密模块,用于根据所述客户端事件计数器的值,采用与业务服务器相同的 方法计算出会话密钥,使用该会话密钥解密客户端业务处理模块发送的由业务服务器加密 的业务数据,并返回解密后的业务数据到客户端业务处理模块;以及使用该会话密钥对从 客户端业务处理模块收到的将要发送至业务服务器的业务数据进行加密,并返回加密后的 业务数据到客户端业务处理模块。 0038 较佳地,所述服务器认证模块在接收到服务器业务处理模块转发的动态口令之 后,生成服务器事件计数器当前值及之后的计数器的连续n个值(按一定计数规律获得,例 如步进一个自然数)所对应的动态口令;所述n为自然数; 服务器认证模块判断所述登录请求中的动态口。

36、令是否与生成的n+1个动态口令中的 第i个相匹配,其中,1in+1,若是,则向服务器事件计数器发送调整为等于第i+1个动 态口令对应的计数器值的使能命令;所述服务器事件计数器用于在收到所述使能命令后, 将计数值调整为与第i+1个动态口令对应的计数值。 0039 较佳地,所述服务器认证模块作如下操作: 1)比较登录请求中的动态口令与服务器认证模块生成的第1个动态口令是否相同, 如果相同则向服务器事件计数器发送调整为等于客户端事件计数器值的命令;如果不同, 则计算客户端事件计数器当前值之后的第i个动态口令;第i个计数器的值为当前值加上 i*s,其中i为初值为1的自然数 ,s为步进值; 2)比较所述。

37、第i个动态口令是否与登录请求中的动态口令相等,若是,则比对成功,则 向服务器事件计数器发送调整为等于客户端事件计数器值加S的命令;否则ii1,判 断i是否大于预先设置的阈值,若是则比对失败,向服务器业务处理模块反馈认证失败的 消息;否则,返回2); 较佳地,所述业务服务器的服务器业务处理模块进一步包括:服务器超时判断单元,用 于判断在预定时间内是否收到来自客户端的业务数据,若否,则服务器业务处理模块向客 户端发送业务流程没有正常结束的通知。 0040 本发明实施例提出的基于动态口令的密钥同步方法流程如图2所示,包括如下步 骤: 步骤201:客户端101中的安全硬件单元(贴片卡)根据计数器的值按。

38、照事件方式迭代 计算动态口令,并向接入服务器102发出带动态口令的WAP/HTTP浏览器登录请求,且本地 计数器的值加1(或大于1的步进值); 步骤202:接入服务器102从登录请求中拆离出动态口令,向业务服务器103发送携带 动态口令的身份鉴别请求。 说 明 书CN 102833220 A 10 7/8页 11 0041 步骤203:业务服务器103内部也存有相应动态口令种子,根据本地的计数器的值 依照事件方式迭代计算至少一个动态口令,并与登录请求中携带的动态口令进行比对,如 果比对成功,执行步骤204,如果比对失败,通过接入服务器102向带安全硬件单元的客户 端101发送登录错误,结束服务。

39、会话。 0042 以下给出动态口令比对的一个示例: 示例一:在业务服务器端建立一个事件计数器的滑动窗口,窗口的大小为n+1,即预先 计算出事件计数器当前的值及后面n个值对应的动态口令,传送给业务服务器认证服务的 动态口令与这n+1个动态口令中的第i(1in+1)个相匹配时,则比对成功。 0043 示例二:设业务服务器的当前动态口令为k1,客户端的当前动态口令为k2。 0044 步骤a:比较k2与k1是否相等,如果相等则比对成功;如果不等,则执行步骤b; 步骤b:计算k1之后的第i个动态口令;i的初值为1; 步骤c:比较k1之后的第i个动态口令是否与k2相等,若是,则比对成功;否则i i1,并继。

40、续执行步骤d; 步骤d:判断i是否大于预先设置的阈值,若是则比对失败,否则,返回步骤b。本实施 例中,业务服务器和客户端计数器更新的步进值为1,在具体实施中,步进可以任意选择,更 增加安全性,只需要保证业务服务器和客户端计数器更新的步进值相同即可。 0045 步骤204:将服务器端的事件计数器的值调整为客户端生成动态口令的事件计数 器的值加1。比对成功后,还需要将服务器端的事件计数器的值调整为客户端生成动态口令 的事件计数器的值加1,以下给出一个滑动窗口步进值不等于1的示例,其他情况可以依次 类推: 如果服务器的事件计数器的当前值为m1,步进值s为1,则,第i个计数器的值为: m1+i*1;如。

41、果步进值s为2,则第i个计数器值的值为:m1+i*2;并修改服务器事件计数器为 第i个事件计数器值m1+i*s,从而解决了事件计数器同步问题。 0046 步骤205:业务服务器103根据当前计数器的值生成会话密钥,用所述会话密钥对 业务数据进行加密,并向带安全硬件单元(贴片卡)的客户端101发送加密后的业务数据。 0047 生成会话密钥的方式也可以是业务服务器103将当前事件计数器的值发送到加 密服务器,由加密服务器依据事件计数器数值产生会话密钥,然后发送到业务服务器103。 这里的加密服务器相当于是将服务器加解密模块设计为独立的设备。会话密钥可以根据如 下规则生成:贴片卡和加密服务器内置的种。

42、子数据+事件计数器+扰乱因子(至少包括上述 内容),通过固定的运算方法(HASH或加密迭代)得到会话密钥。加密信息可能是短信或一 段加密的TCP/IP包。通过密钥种子和事件计数器的关联所产生的密钥可以保证通信会话 级别的一次一密。 0048 步骤206:带安全硬件单元(贴片卡)的客户端101接收到业务服务器发送的加密 的业务数据,根据客户端事件计数器,采用与业务服务器相同的方法计算出会话密钥,并使 用该会话密钥解密所述加密的业务数据。 0049 由于在传送业务数据前,客户端101与业务服务器103进行了计数器值的一致调 整,因此,双方采用的基于计数器值的密钥也就一致,保证了传送业务数据时能够正。

43、常的加 解密。在业务流程中,如果客户端101或业务服务器103任一端发送的业务数据丢失,都不 会影响下一次客户端101与业务服务器103的通信。 说 明 书CN 102833220 A 11 8/8页 12 0050 如果在每个完整流程中都设有监视机制,例如流程中的某一个步骤应该业务服务 器发送业务数据到客户端,如果客户端在预定时间没有接收到,则说明中间有数据丢失,客 户端重新进入步骤201。如果流程的某一个步骤应该是客户端发送业务数据到业务服务器, 如果业务服务器在预定时间没有收到,可以通过非加密的方式通知客户端该业务流程没有 正常结束,客户端重新进入步骤201。 0051 如果步骤206之。

44、后还有后续的业务数据需要传输,可以包括如下步骤: 步骤207:客户端业务处理模块向客户端事件计数器发送事件消息并向客户端加解密 模块发送业务数据,客户端事件计数器收到该事件消息后加1(或加一个与业务服务器设置 相同的步进值),生成新的事件计数器;客户端加解密模块收到所述业务数据后,根据所诉 客户端事件计数器的值生成新的会话密钥,使用该会话密钥对从客户端业务处理模块收到 的将要发送至业务服务器的业务数据进行加密,并返回加密后的业务数据到客户端业务处 理模块。客户端业务处理模块收到所述加密的业务数据后将其发送到业务服务器。 0052 步骤208:业务服务器收到使用新的会话密钥加密的业务数据后,其事。

45、件计数器 加1(或加一个与客户端设置相同的步进值),并根据当前计数器的值按照与客户端101相 同的方法产生新的会话密钥,解密接收到的业务数据。如果还有后续的业务数据,则返回步 骤205 以上实施例中,在业务服务器与客户端的事件计数器同步后,首次业务数据由业务服 务器发送。实际应用中,也可以由客户端收到业务服务器发送的登录合法的指令后发送首 次业务数据。本发明实施例具有如下有益技术效果:若因网络信号不好登陆多次失败(步骤 201),或数据传输过程丢失所引起的安全硬件单元(贴片卡)和业务服务器的事件计数器不 同步的问题,本发明方案可以防止事件漂移导致登陆再也无法实现;并且,利用会话密钥的 更新来表征事件计数器的递增,从而省去事件计数器同步的步骤。 0053 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。 说 明 书CN 102833220 A 12 1/2页 13 图1 说 明 书 附 图CN 102833220 A 13 2/2页 14 图2 说 明 书 附 图CN 102833220 A 14 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1