CN104333555B - 一种动态令牌工作方法及*** - Google Patents
一种动态令牌工作方法及*** Download PDFInfo
- Publication number
- CN104333555B CN104333555B CN201410647744.2A CN201410647744A CN104333555B CN 104333555 B CN104333555 B CN 104333555B CN 201410647744 A CN201410647744 A CN 201410647744A CN 104333555 B CN104333555 B CN 104333555B
- Authority
- CN
- China
- Prior art keywords
- code
- key
- seed
- signature
- generation
- 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 claims abstract description 13
- 238000007781 pre-processing Methods 0.000 claims description 5
- 230000001960 triggered Effects 0.000 claims 1
- 230000000875 corresponding Effects 0.000 abstract description 20
- 230000003213 activating Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006011 modification reaction Methods 0.000 description 2
- 101700059437 ALG2 Proteins 0.000 description 1
- 108060000297 ALG3 Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive Effects 0.000 description 1
- 230000001360 synchronised Effects 0.000 description 1
Abstract
本发明公开的动态令牌工作方法和***,预先将用户的认证需求分为两种类别:登录认证需求及交易过程中(登录后)签名时的签名认证需求,且动态令牌预先在其激活成功后,分别为两种认证需求生成相应的登录秘钥及签名秘钥。后续在用户有业务交易需求,需进行登录或签名认证时,动态令牌可分别依据登录秘钥或签名秘钥并结合用户当时输入的挑战码为用户生成相应的登录应答码或签名应答码。可见,本发明针对用户不同的认证需求分别设置了不同的计算秘钥,使动态令牌的密钥不易被破解,且动态令牌的工作机制和流程更为安全,实现了用户交易时的双重认证,加大了不法分子反推导动态令牌工作原理的难度,保证了用户账户的安全性。
Description
技术领域
本发明属于银行***的安全认证技术领域,尤其涉及一种动态令牌工作方法及***。
背景技术
动态令牌是用来生成动态口令的终端,动态口令是一种安全便捷的账户防盗技术,可以有效保护交易时登录的认证安全。
动态令牌从技术角度可分为三种类型,时间同步型、事件同步型和挑战/应答型。目前,挑战/应答型动态令牌的工作方法均基于OATH(誓约)算法标准,结合用户输入的挑战码及令牌内置的种子秘钥,计算出相应的应答码,以实现交易时的登录认证。可见,现有挑战/应答型动态令牌的工作机制和流程较为简单,导致了不法分子反推导动态令牌工作原理的难度较低,进而导致了用户账户的安全性较低。
发明内容
有鉴于此,本发明的目的在于提供一种动态令牌工作方法及***,以解决现有挑战/应答型动态令牌工作机制和流程较为简单的问题,加大不法分子反推导动态令牌工作原理的难度,进而保证用户账户的安全性。
为此,本发明公开如下技术方案:
一种动态令牌工作方法,包括:
接收用户的登录应答码生成请求,所述登录应答码生成请求包括登录挑战码;
对所述登录挑战码、动态令牌内预先生成的登录秘钥以及当前的实时时间进行处理,得到登录应答码,所述登录秘钥为动态令牌被激活时,依据其内置的种子秘钥、登录用途代码及认证服务器提供的激活码所生成的秘钥;
接收用户的签名应答码生成请求,所述签名应答码生成请求包括签名挑战码;
对所述签名挑战码、动态令牌内预先生成的签名秘钥以及当前的实时时间进行处理,得到签名应答码,所述签名秘钥为动态令牌被激活时,依据其内置的种子秘钥、签名用途代码及认证服务器提供的激活码所生成的秘钥。
上述方法,优选的,在所述接收用户的登录应答码生成请求之前,还包括如下的预处理过程:
对认证服务器提供的激活码进行验证,若验证通过则执行如下操作:
利用国密SM3杂凑算法,并采用式Work_Seed=SM3(Seed|ActiveCode)生成工作秘钥Work_Seed,其中,SM3表示国密SM3杂凑算法,Seed表示工作秘钥,ActiveCode表示激活码;
利用国密SM3杂凑算法,并采用式Otp_Seed=SM3(Work_Seed|alg_type_1)生成登录秘钥Otp_Seed,其中,alg_type_1表示登录用途代码;
利用国密SM3杂凑算法,并采用式sign_Seed=SM3(Work_Seed|alg_type_2)生成签名秘钥sign_Seed,其中,alg_type_2表示签名用途代码。
上述方法,优选的,对所述登录挑战码、动态令牌内预先生成的登录秘钥以及当前的实时时间进行处理得到登录应答码,包括:
利用国密SM3杂凑算法及SM3截位算法,并采用式OTP=Truncate_SM3(SM3(Otp_Seed|UTC|ChallengeCode))生成登录应答码OTP;
其中,Truncate_SM3表示SM3截位算法,ChallengeCode表示登录挑战码,UTC表示当前的世界统一时间。
上述方法,优选的,对所述签名挑战码、动态令牌内预先生成的签名秘钥以及当前的实时时间进行处理得到签名应答码,包括:
利用国密SM3杂凑算法及SM3截位算法,并采用式Sign_OTP=Truncate_SM3(SM3(Sign_Seed|UTC|SignCode))生成签名应答码Sign_OTP;
其中,Truncate_SM3表示SM3截位算法,SignCode表示签名挑战码,UTC表示当前的世界统一时间。
上述方法,优选的,在激活码通过验证时,所述预处理过程还包括:
利用国密SM3杂凑算法,并采用式Puk_Seed=SM3(Work_Seed|alg_type_3)生成解锁秘钥Puk_Seed,其中,alg_type_3表示解锁用途代码。
上述方法,优选的,还包括:
令牌开机后,接收用户输入的个人识别密码PIN码,并对输入的PIN码进行正确性验证,若PIN码错误输入的次数达到设定数值,则锁定令牌,并显示令牌已锁提示及解锁请求码;
接收用户输入的解锁码并解锁,所述解锁码为认证服务器依据式PUK=Truncate_SM3(SM3(Puk_Seed|Puk_Request))生成,其中,Truncate_SM3表示SM3截位算法,PUK表示解锁码,Puk_Request表示解锁请求码。
一种动态令牌工作***,包括:
第一接收模块,用于接收用户的登录应答码生成请求,所述登录应答码生成请求包括登录挑战码;
第一处理模块,用于对所述登录挑战码、动态令牌内预先生成的登录秘钥以及当前的实时时间进行处理,得到登录应答码,所述登录秘钥为动态令牌被激活时,依据其内置的种子秘钥、登录用途代码及认证服务器提供的激活码所生成的秘钥;
第二接收模块,用于接收用户的签名应答码生成请求,所述签名应答码生成请求包括签名挑战码;
第二处理模块,用于对所述签名挑战码、动态令牌内预先生成的签名秘钥以及当前的实时时间进行处理,得到签名应答码,所述签名秘钥为动态令牌被激活时,依据其内置的种子秘钥、签名用途代码及认证服务器提供的激活码所生成的秘钥。
上述***,优选的,还包括预处理模块,所述预处理模块包括:
验证单元,用于对认证服务器提供的激活码进行验证,并在验证通过触发以下的工作秘钥生成单元;
工作秘钥生成单元,用于利用国密SM3杂凑算法,并采用式Work_Seed=SM3(Seed|ActiveCode)生成工作秘钥Work_Seed,其中,SM3表示国密SM3杂凑算法,Seed表示工作秘钥,ActiveCode表示激活码;
登录秘钥生成单元,用于利用国密SM3杂凑算法,并采用式Otp_Seed=SM3(Work_Seed|alg_type_1)生成登录秘钥Otp_Seed,其中,alg_type_1表示登录用途代码;
签名秘钥生成单元,用于利用国密SM3杂凑算法,并采用式sign_Seed=SM3(Work_Seed|alg_type_2)生成签名秘钥sign_Seed,其中,alg_type_2表示签名用途代码。
上述***,优选的,所述第一处理模块包括:
登录应答码生成单元,用于利用国密SM3杂凑算法及SM3截位算法,并采用式OTP=Truncate_SM3(SM3(Otp_Seed|UTC|ChallengeCode))生成登录应答码OTP;
其中,Truncate_SM3表示SM3截位算法,ChallengeCode表示登录挑战码,UTC表示当前的世界统一时间。
上述***,优选的,所述第二处理模块包括:
签名应答码生成单元,用于利用国密SM3杂凑算法及SM3截位算法,并采用式Sign_OTP=Truncate_SM3(SM3(Sign_Seed|UTC|SignCode))生成签名应答码Sign_OTP;
其中,Truncate_SM3表示SM3截位算法,SignCode表示签名挑战码,UTC表示当前的世界统一时间。
上述***,优选的,所述预处理模块还包括:
解锁秘钥生成单元,用于利用国密SM3杂凑算法,并采用式Puk_Seed=SM3(Work_Seed|alg_type_3)生成解锁秘钥Puk_Seed,其中,alg_type_3表示解锁用途代码。
上述***,优选的,还包括安全保护模块,所述安全保护模块包括:
锁定单元,用于在令牌开机后,接收用户输入的个人识别密码PIN码,并对输入的PIN码进行正确性验证,若PIN码错误输入的次数达到设定数值,则锁定令牌,并显示令牌已锁提示及解锁请求码;
解锁单元,用于接收用户输入的解锁码并解锁,所述解锁码为认证服务器依据式PUK=Truncate_SM3(SM3(Puk_Seed|Puk_Request))生成,其中,Truncate_SM3表示SM3截位算法,PUK表示解锁码,Puk_Request表示解锁请求码。
由以上方案可知,本发明预先将用户的认证需求分为两种类别,登录认证需求及交易过程中(登录后)签名时的签名认证需求,且动态令牌预先在其激活成功后,分别为两种认证需求生成相应的登录秘钥及签名秘钥。后续在用户有业务交易需求,需进行登录或签名认证时,动态令牌可分别依据登录秘钥或签名秘钥并结合用户当时输入的挑战码为用户生成相应的登录应答码或签名应答码。可见,本发明针对用户不同的认证需求分别设置了不同的计算秘钥,使动态令牌的密钥不易被破解,且动态令牌的工作机制和流程更为安全,通过分别为登录、签名认证需求提供相应的登录、签名应答码,实现了用户交易时的双重认证,加大了不法分子反推导动态令牌工作原理的难度,保证了用户账户的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一公开的动态令牌工作方法流程图;
图2是本发明实施例二公开的动态令牌锁定及解锁流程图;
图3是本发明实施例二公开的动态令牌解锁原理图;
图4是本发明实施例三公开的动态令牌工作***的一种结构示意图;
图5是本发明实施例三公开的动态令牌工作***的另一种结构示意图;
图6是本发明实施例三公开的动态令牌工作***的又一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例一公开一种动态令牌工作方法,参考图1,所述方法可以包括以下步骤:
S101:接收用户的登录应答码生成请求,所述登录应答码生成请求包括登录挑战码。
用户初次使用动态令牌前,需要对动态令牌进行激活,即本发明的各步骤需要建立在对动态令牌进行激活这一预处理的基础上。
对动态令牌进行激活时,由认证服务器产生激活码,然后用户将服务器产生的激活码手动输入动态令牌,其中,激活码的生成算法如下:
ActiveCode=ChallengeRand|Truncate_SM3(SM3(Seed|ChallengeRand))) (1)
式(1)中,ActiveCode表示12位的激活码;ChallengeRand表示6位的十进制随机数,带入算法公式时需要在其后边补0使其至128bit的长度;SM3表示国密SM3杂凑算法;Truncate_SM3表示SM3截位算法,其可输出6位的十进制数;Seed为32Byte的种子明文。
其中,本发明在国密SM3杂凑算法的基础上提出一种SM3截位算法,并对其进行定义,SM3截位算法就是将SM3杂凑结果或HMAC结果转化为6位动态密码的算法。具体地,本发明对其作出如下定义:
定义S1、S2、S3、S4、S5、S6、S7、S8,表示8个4Byte整数,且通过如下方法赋值:
S1=S[0]<<24|S[1]<<16|S[2]<<8|S[3]
S2=S[4]<<24|S[5]<<16|S[6]<<8|S[7]
S3=S[8]<<24|S[9]<<16|S[10]<<8|S[11]
S4=S[12]<<24|S[13]<<16|S[14]<<8|S[15]
S5=S[16]<<24|S[17]<<16|S[18]<<8|S[19]
S6=S[20]<<24|S[21]<<16|S[22]<<8|S[23]
S7=S[24]<<24|S[25]<<16|S[26]<<8|S[27]
S8=S[28]<<24|S[29]<<16|S[30]<<8|S[31]
OD=(S1+S2+S3+S4+S5+S6+S7+S8)MOD 232
密码(即SM3截位算法的输出结果)获取:otp=OD mod 1000000。
动态令牌接收到用户输入的激活码后,对激活码进行验证。具体的验证原理为:使用激活码中的ChallengeRand(即激活码的前6位)计算出一个OTP(One-time Password,动态口令),然后将这个OTP与激活码的后6位进行比对,若比对结果为两者相同,则验证通过、激活成功,否则激活失败。
本发明中,动态令牌对激活码进行验证并激活成功后,继续实施秘钥变换,具体地,采用国密SM3杂凑算法,对原始种子Seed(内置于动态令牌)及激活码进行处理,得到工作秘钥,并保存所产生的工作秘钥。
生成工作秘钥所采用的公式如下:
Work_Seed=SM3(Seed|ActiveCode) (2)
式(2)中,Seed表示种子密钥,32Byte;ActiveCode表示激活码,其以ASCII码的形式参与运算,譬如123456889012,其参与运算时所采用的格式为:0x31,0x32….0x32。
本发明将用户的认证需求分为两类:登录认证需求(登录交易时的身份认证需求)及签名认证需求(交易过程中签名时的身份认证需求),相应地,本发明分别为所述两种认证需求设定相应的计算秘钥:登录密钥和签名秘钥。
本实施例中,分别对登录秘钥和签名秘钥进行如下定义:
char alg_1[32];//登录密钥Otp_Seed;
char alg_2[32];//签名密钥Sign_Seed。
两种计算秘钥相对应的用途代码分别定义为:
int alg_type_1=1;//登录动态口令,int为4Byte整数;
int alg_type_2=2;//签名动态口令,int为4Byte整数。
动态令牌在激活成功并生成工作秘钥之后,继续采用国密SM3杂凑算法对生成的工作秘钥及以上定义的计算秘钥用途代码进行处理,得到相应的登录秘钥、签名秘钥,即具体地,由工作密钥(32Byte)+用途代码(4Byte)构成消息,采用国密SM3杂凑算法对所构成的消息进行杂凑值的生成,并将所生成的杂凑值作动态口令的计算密钥,以实现为后续用户认证应答码的生成提供支持。
由于产生计算密钥需要使用工作密钥,所以,动态令牌必须在同步工作密钥后进行计算秘钥的生成操作。
其中,具体采用以下的式(3)生成登录秘钥:
Otp_Seed=SM3(Work_Seed|alg_type_1) (3)
式(3)中,Work_Seed表示工作密钥,共32Byte;alg_type_1表示登录用途代码,共4Byte,且低位在前,以00000001的形式参与运算。
相应地,采用以下的式(4)生成签名秘钥:
sign_Seed=SM3(Work_Seed|alg_type_2) (4)
式(3)中,Work_Seed表示工作密钥,共32Byte;alg_type_2表示签名用途代码,共4Byte,且其低位在前,以00000002的形式参与运算。
以上部分为动态令牌在其被激活且验证通过后所进行的工作,该部分内容可作为本发明方法的预处理工作。
在此基础上,当用户需要进行应用交易时,为保证用户账户的安全性,首先需要对用户进行登录认证,此时,认证服务器会为用户生成一个登录挑战码,并在应用***网页上展示给用户;之后,用户将网页上的登录挑战码输入至动态令牌,并按下登录应答码生成按钮(也可以采用先按下按钮,后输入挑战码的方式)以实现向动态令牌发出相应的登录应答码生成请求。当动态令牌接收到用户触发的登录应答码生成请求后,即按照本发明的处理逻辑为用户生成相应的登录应答码。
S102:对所述登录挑战码、动态令牌内预先生成的登录秘钥以及当前的实时时间进行处理,得到登录应答码,所述登录秘钥为动态令牌被激活时,依据其内置的种子秘钥、登录用途代码及认证服务器提供的激活码所生成的秘钥。
具体地,在接收到用户触发的登录应答码生成请求后,动态令牌利用国密SM3杂凑算法及SM3截位算法,并采用如下的式(5)生成登录应答码:
OTP=Truncate_SM3(SM3(Otp_Seed|UTC|ChallengeCode)) (5)
式(5)中,OTP(6Byte)表示登录口令即登录应答码,为十进制;Truncate_SM3表示SM3截位算法;Otp_Seed表示登录密钥,为32Byte:UTC(Universal Time Coordinated,世界统一时间)表示当前UTC时间,8Byte,UTC为分钟计数,高位在前,低位在后;ChallengeCode为服务器产生的4-20位的登录挑战码,高Byte在前,后面参与运算的是其ASCII码,譬如:123456,转换成ASCII码则为0x31,0x32,0x33,0x34,0x35,0x36;
其中,UTC|ChallengeCode带入式(5)时,如果其总长度不够128bit,则在后面补0,使UTC|ChallengeCode的总长度达到128bit,如果总长度超过128bit,则直接带入式(5)进行运算。
之后,用户可读取动态令牌产生的登录应答码,并将其输入至应用***网页实现登录认证。
S103:接收用户的签名应答码生成请求,所述签名应答码生成请求包括签名挑战码。
在登录认证成功进行交易时,若用户需要进行交易签名,本发明为了进一步保证用户账户的安全性,需对用户进行签名认证,此时,认证服务器为用户生成一个签名挑战码。用户从应用***网页上读取服务器产生的签名挑战码并将其输入至动态令牌,且按下动态令牌上的签名应答码生成按钮实现向动态令牌发出签名应答码生成请求。
S104:对所述签名挑战码、动态令牌内预先生成的签名秘钥以及当前的实时时间进行处理,得到签名应答码,所述签名秘钥为动态令牌被激活时,依据其内置的种子秘钥、签名用途代码及认证服务器提供的激活码所生成的秘钥。
动态令牌接收到上述请求后,利用国密SM3杂凑算法及SM3截位算法,并采用如下的式(6)生成签名应答码:
Sign_OTP=Truncate_SM3(SM3(Sign_Seed|UTC|SignCode)) (6)
式(6)中,Sign_OTP(6Byte)表示签名口令即签名应答码,为十进制;Truncate_SM3表示SM3截位算法;Sign_Seed表示签名密钥,32Byte;UTC表示当前UTC时间,8Byte,UTC为分钟计数,高位在前,低位在后;SignCode表示服务器产生的4-20位的签名应答码,高Byte在前,后面参与运算的是其ASCII码。
其中,UTC|SignCode带入式(6)时,如果其总长度不够128bit,则在后面补0,使UTC|SignCode的总长度达到128bit;如果其总长度超过128bit,则直接将其带入式(6)进行运算。
之后,用户可读取动态令牌产生的签名应答码,并将其输入至应用***网页实现签名认证。
由以上方案可知,本发明预先将用户的认证需求分为两种类别:登录认证需求及交易过程中(登录后)签名时的身份认证需求,且动态令牌预先在其激活成功后,分别为两种认证需求生成相应的登录秘钥及签名秘钥。后续在用户有业务交易需求,需进行登录或签名认证时,动态令牌可分别依据登录秘钥或签名秘钥并结合用户当时输入的挑战码为用户生成相应的登录应答码或签名应答码。可见,本发明针对用户不同的认证需求分别设置了不同的计算秘钥,使动态令牌的密钥不易被破解,且动态令牌的工作机制和流程更为安全,通过分别为登录、签名认证需求提供相应的登录、签名应答码,实现了用户交易时的双重认证,加大了不法分子反推导动态令牌工作原理的难度,保证了用户账户的安全性。
实施例二
本实施例二中,参考图2,所述方法还可以包括以下步骤:
S105:令牌开机后,接收用户输入的个人识别密码PIN码,并对输入的PIN码进行正确性验证,若PIN码错误输入的次数达到设定数值,则锁定令牌,并显示令牌已锁提示及解锁请求码;
S106:接收用户输入的解锁码并解锁。所述解锁码为认证服务器依据式PUK=Truncate_SM3(SM3(Puk_Seed|Puk_Request))生成,其中,Truncate_SM3表示SM3截位算法,PUK表示解锁码,Puk_Request表示解锁请求码。
具体地,本实施例将计算秘钥拓展为3个:登录秘钥、签名秘钥及解锁秘钥。从而,在预先定义登录秘钥及签名秘钥的同时,还对解锁秘钥进行如下定义:
char alg_3[32];//解锁密钥Puk_Seed。
相应地,对解锁秘钥用途代码进行定义:
int alg_type_3=3;//解锁,int为4Byte整数。
在此基础上,本实施例中,所述预处理过程还包括:利用国密SM3杂凑算法,并采用以下的式(7)生成解锁秘钥:
Puk_Seed=SM3(Work_Seed|alg_type_3) (7)
式(7)中,Work_Seed表示工作密钥,32Byte;alg_type_3表示解锁用途代码,其低位在前,以00000003的形式参与运算。
为了进一步保证用户账户的安全,本实施例在动态令牌开机时,为动态令牌增添了PIN(Personal Identification Number,个人识别密码)码验证的环节,即用户每次对动态令牌开机后,都需要输入相应的PIN码,若PIN码输入正确,则通过验证,动态令牌开机成功,否则,开机失败。
若PIN码错误输入的次数达到设定数值,则动态令牌锁定,此种情况下,动态令牌向用户进行锁定提示并显示相应的解锁请求码。
之后,用户将所述解锁请求码输入至认证服务器,由认证服务器依据如下的式(8)产生相应的解锁码:
PUK=Truncate_SM3(SM3(Puk_Seed|Puk_Request)) (8)
式(8)中,PUK表示解锁码,共6Byte;Truncate_SM3表示SM3截位算法;Puk_Seed表示解锁密钥,共32Byte;Puk_Request表示6位的解锁请求码,其为令牌生成的十进制随机数,其参与运算时采用ASCII码形式,且高Byte在前。
其中,Puk_Request带入式(8)进行运算时,需要在其后面补0使其总长度达到128bit。
在此基础上,用户将服务器产生的解锁码输入动态令牌,即可实现解锁。动态令牌的解锁原理具体可参考图3所示。
实施例三
本实施例三公开一种动态令牌工作***,该***与实施例一及实施例二公开的动态令牌工作方法相对应。
首先,相应于实施例一,参考图4,所述***包括第一接收模块100、第一处理模块200、第二接收模块300及第二处理模块400。
第一接收模块100,用于接收用户的登录应答码生成请求,所述登录应答码生成请求包括登录挑战码。
第一处理模块200,用于对所述登录挑战码、动态令牌内预先生成的登录秘钥以及当前的实时时间进行处理,得到登录应答码,所述登录秘钥为动态令牌被激活时,依据其内置的种子秘钥、登录用途代码及认证服务器提供的激活码所生成的秘钥。
其中,第一处理模块200包括登录应答码生成单元。
登录应答码生成单元,用于利用国密SM3杂凑算法及SM3截位算法,并采用式OTP=Truncate_SM3(SM3(Otp_Seed|UTC|ChallengeCode))生成登录应答码OTP;
其中,Truncate_SM3表示SM3截位算法,ChallengeCode表示登录挑战码,UTC表示当前的世界统一时间。
第二接收模块300,用于接收用户的签名应答码生成请求,所述签名应答码生成请求包括签名挑战码。
第二处理模块400,用于对所述签名挑战码、动态令牌内预先生成的签名秘钥以及当前的实时时间进行处理,得到签名应答码,所述签名秘钥为动态令牌被激活时,依据其内置的种子秘钥、签名用途代码及认证服务器提供的激活码所生成的秘钥。
所述第二处理模块400包括签名应答码生成单元。
签名应答码生成单元,用于利用国密SM3杂凑算法及SM3截位算法,并采用式Sign_OTP=Truncate_SM3(SM3(Sign_Seed|UTC|SignCode))生成签名应答码Sign_OTP;
其中,Truncate_SM3表示SM3截位算法,SignCode表示签名挑战码,UTC表示当前的世界统一时间。
本发明***中各个模块的工作需要建立在生成登录秘钥、签名秘钥等计算秘钥的基础上,因此,参考图5,所述***还需要包括预处理模块500,该模块包括验证单元、工作秘钥生成单元、登录秘钥生成单元和签名秘钥生成单元。
验证单元用于对认证服务器提供的激活码进行验证,并在验证通过触发以下的工作秘钥生成单元;
工作秘钥生成单元用于利用国密SM3杂凑算法,并采用式Work_Seed=SM3(Seed|ActiveCode)生成工作秘钥Work_Seed,其中,SM3表示国密SM3杂凑算法,Seed表示工作秘钥,ActiveCode表示激活码;
登录秘钥生成单元用于利用国密SM3杂凑算法,并采用式Otp_Seed=SM3(Work_Seed|alg_type_1)生成登录秘钥Otp_Seed,其中,alg_type_1表示登录用途代码;
签名秘钥生成单元用于利用国密SM3杂凑算法,并采用式sign_Seed=SM3(Work_Seed|alg_type_2)生成签名秘钥sign_Seed,其中,alg_type_2表示签名用途代码。
相应于实施例二,参考图6,所述***还包括安全保护模块600,该模块包括锁定单元和解锁单元。
锁定单元,用于在令牌开机后,接收用户输入的个人识别密码PIN码,并对输入的PIN码进行正确性验证,若错误输入的次数达到设定数值,则锁定令牌,并显示令牌已锁提示及解锁请求码;
解锁单元,用于接收用户输入的解锁码并解锁,所述解锁码为认证服务器依据式PUK=Truncate_SM3(SM3(Puk_Seed|Puk_Request))生成,其中,Truncate_SM3表示SM3截位算法,PUK表示解锁码,Puk_Request表示解锁请求码。
对于本发明实施例三公开的动态令牌工作***而言,由于其与以上各实施例公开的动态令牌工作方法相对应,所以描述的比较简单,相关相似之处请参见以上各实施例中动态令牌工作方法部分的说明即可,此处不再详述。
综上所述,本发明在挑战/应答型动态令牌上使用更为安全的国产密码算法,并结合使用在国产密码算法的基础上自行创新的截位算法对应答码生成过程进行处理,可使动态令牌的工作机制和流程更为安全,同时满足了国家密码管理局对动态令牌设备支持国产密码算法的兼容性要求;且本发明依据用户的不同认证需求分别设置了相应不同的计算秘钥,可使动态令牌的密钥不易被破解,加大了不法分子反推导动态令牌工作原理的难度,从而保证了用户账户的安全性。
为了描述的方便,描述以上***时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种动态令牌工作方法,其特征在于,包括:
接收用户的登录应答码生成请求,所述登录应答码生成请求包括登录挑战码;
对所述登录挑战码、动态令牌内预先生成的登录秘钥以及当前的实时时间进行处理,得到登录应答码,所述登录秘钥为动态令牌被激活时,依据其内置的种子秘钥、登录用途代码及认证服务器提供的激活码所生成的秘钥;
接收用户的签名应答码生成请求,所述签名应答码生成请求包括签名挑战码;
对所述签名挑战码、动态令牌内预先生成的签名秘钥以及当前的实时时间进行处理,得到签名应答码,所述签名秘钥为动态令牌被激活时,依据其内置的种子秘钥、签名用途代码及认证服务器提供的激活码所生成的秘钥。
2.根据权利要求1所述的方法,其特征在于,在所述接收用户的登录应答码生成请求之前,还包括如下的预处理过程:
对认证服务器提供的激活码进行验证,若验证通过则执行如下操作:
利用国密SM3杂凑算法,并采用式Work_Seed=SM3(Seed|ActiveCode)生成工作秘钥Work_Seed,其中,SM3表示国密SM3杂凑算法,Seed表示工作秘钥,ActiveCode表示激活码;
利用国密SM3杂凑算法,并采用式Otp_Seed=SM3(Work_Seed|alg_type_1)生成登录秘钥Otp_Seed,其中,alg_type_1表示登录用途代码;
利用国密SM3杂凑算法,并采用式sign_Seed=SM3(Work_Seed|alg_type_2)生成签名秘钥sign_Seed,其中,alg_type_2表示签名用途代码。
3.根据权利要求2所述的方法,其特征在于,对所述登录挑战码、动态令牌内预先生成的登录秘钥以及当前的实时时间进行处理得到登录应答码,包括:
利用国密SM3杂凑算法及SM3截位算法,并采用式OTP=Truncate_SM3(SM3(Otp_Seed|UTC|ChallengeCode))生成登录应答码OTP;
其中,Truncate_SM3表示SM3截位算法,ChallengeCode表示登录挑战码,UTC表示当前的世界统一时间。
4.根据权利要求2所述的方法,其特征在于,对所述签名挑战码、动态令牌内预先生成的签名秘钥以及当前的实时时间进行处理得到签名应答码,包括:
利用国密SM3杂凑算法及SM3截位算法,并采用式Sign_OTP=Truncate_SM3(SM3(Sign_Seed|UTC|SignCode))生成签名应答码Sign_OTP;
其中,Truncate_SM3表示SM3截位算法,SignCode表示签名挑战码,UTC表示当前的世界统一时间。
5.根据权利要求2所述的方法,其特征在于,在激活码通过验证时,所述预处理过程还包括:
利用国密SM3杂凑算法,并采用式Puk_Seed=SM3(Work_Seed|alg_type_3)生成解锁秘钥Puk_Seed,其中,alg_type_3表示解锁用途代码。
6.根据权利要求5所述的方法,其特征在于,还包括:
令牌开机后,接收用户输入的个人识别密码PIN码,并对输入的PIN码进行正确性验证,若PIN码错误输入的次数达到设定数值,则锁定令牌,并显示令牌已锁提示及解锁请求码;
接收用户输入的解锁码并解锁,所述解锁码为认证服务器依据式PUK=Truncate_SM3(SM3(Puk_Seed|Puk_Request))生成,其中,Truncate_SM3表示SM3截位算法,PUK表示解锁码,Puk_Request表示解锁请求码。
7.一种动态令牌工作***,其特征在于,包括:
第一接收模块,用于接收用户的登录应答码生成请求,所述登录应答码生成请求包括登录挑战码;
第一处理模块,用于对所述登录挑战码、动态令牌内预先生成的登录秘钥以及当前的实时时间进行处理,得到登录应答码,所述登录秘钥为动态令牌被激活时,依据其内置的种子秘钥、登录用途代码及认证服务器提供的激活码所生成的秘钥;
第二接收模块,用于接收用户的签名应答码生成请求,所述签名应答码生成请求包括签名挑战码;
第二处理模块,用于对所述签名挑战码、动态令牌内预先生成的签名秘钥以及当前的实时时间进行处理,得到签名应答码,所述签名秘钥为动态令牌被激活时,依据其内置的种子秘钥、签名用途代码及认证服务器提供的激活码所生成的秘钥。
8.根据权利要求7所述的***,其特征在于,还包括预处理模块,所述预处理模块包括:
验证单元,用于对认证服务器提供的激活码进行验证,并在验证通过触发以下的工作秘钥生成单元;
工作秘钥生成单元,用于利用国密SM3杂凑算法,并采用式Work_Seed=SM3(Seed|ActiveCode)生成工作秘钥Work_Seed,其中,SM3表示国密SM3杂凑算法,Seed表示工作秘钥,ActiveCode表示激活码;
登录秘钥生成单元,用于利用国密SM3杂凑算法,并采用式Otp_Seed=SM3(Work_Seed|alg_type_1)生成登录秘钥Otp_Seed,其中,alg_type_1表示登录用途代码;
签名秘钥生成单元,用于利用国密SM3杂凑算法,并采用式sign_Seed=SM3(Work_Seed|alg_type_2)生成签名秘钥sign_Seed,其中,alg_type_2表示签名用途代码。
9.根据权利要求8所述的***,其特征在于,所述第一处理模块包括:
登录应答码生成单元,用于利用国密SM3杂凑算法及SM3截位算法,并采用式OTP=Truncate_SM3(SM3(Otp_Seed|UTC|ChallengeCode))生成登录应答码OTP;
其中,Truncate_SM3表示SM3截位算法,ChallengeCode表示登录挑战码,UTC表示当前的世界统一时间。
10.根据权利要求8所述的***,其特征在于,所述第二处理模块包括:
签名应答码生成单元,用于利用国密SM3杂凑算法及SM3截位算法,并采用式Sign_OTP=Truncate_SM3(SM3(Sign_Seed|UTC|SignCode))生成签名应答码Sign_OTP;
其中,Truncate_SM3表示SM3截位算法,SignCode表示签名挑战码,UTC表示当前的世界统一时间。
11.根据权利要求8所述的***,其特征在于,所述预处理模块还包括:
解锁秘钥生成单元,用于利用国密SM3杂凑算法,并采用式Puk_Seed=SM3(Work_Seed|alg_type_3)生成解锁秘钥Puk_Seed,其中,alg_type_3表示解锁用途代码。
12.根据权利要求11所述的***,其特征在于,还包括安全保护模块,所述安全保护模块包括:
锁定单元,用于在令牌开机后,接收用户输入的个人识别密码PIN码,并对输入的PIN码进行正确性验证,若PIN码错误输入的次数达到设定数值,则锁定令牌,并显示令牌已锁提示及解锁请求码;
解锁单元,用于接收用户输入的解锁码并解锁,所述解锁码为认证服务器依据式PUK=Truncate_SM3(SM3(Puk_Seed|Puk_Request))生成,其中,Truncate_SM3表示SM3截位算法,PUK表示解锁码,Puk_Request表示解锁请求码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410647744.2A CN104333555B (zh) | 2014-11-14 | 一种动态令牌工作方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410647744.2A CN104333555B (zh) | 2014-11-14 | 一种动态令牌工作方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104333555A CN104333555A (zh) | 2015-02-04 |
CN104333555B true CN104333555B (zh) | 2018-02-09 |
Family
ID=
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008004312A1 (fr) * | 2006-07-07 | 2008-01-10 | Jcb Co., Ltd. | Dispositif d'aide au règlement net |
CN101500011A (zh) * | 2009-03-13 | 2009-08-05 | 北京华大智宝电子***有限公司 | 实现动态口令安全保护的方法及*** |
CN101789864A (zh) * | 2010-02-05 | 2010-07-28 | 中国工商银行股份有限公司 | 一种网上银行后台身份认证方法、装置及*** |
CN101800645A (zh) * | 2010-02-05 | 2010-08-11 | 中国工商银行股份有限公司 | 一种身份认证方法、装置及*** |
CN102664736A (zh) * | 2012-04-13 | 2012-09-12 | 天地融科技股份有限公司 | 电子密码生成方法、装置和设备以及电子密码认证*** |
CN103457739A (zh) * | 2013-09-06 | 2013-12-18 | 北京握奇智能科技有限公司 | 一种动态令牌参数获取方法与设备 |
CN103731272A (zh) * | 2014-01-06 | 2014-04-16 | 飞天诚信科技股份有限公司 | 一种身份认证方法、***及设备 |
CN103888470A (zh) * | 2014-04-02 | 2014-06-25 | 飞天诚信科技股份有限公司 | 一种动态令牌的同步方法和*** |
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008004312A1 (fr) * | 2006-07-07 | 2008-01-10 | Jcb Co., Ltd. | Dispositif d'aide au règlement net |
CN101500011A (zh) * | 2009-03-13 | 2009-08-05 | 北京华大智宝电子***有限公司 | 实现动态口令安全保护的方法及*** |
CN101789864A (zh) * | 2010-02-05 | 2010-07-28 | 中国工商银行股份有限公司 | 一种网上银行后台身份认证方法、装置及*** |
CN101800645A (zh) * | 2010-02-05 | 2010-08-11 | 中国工商银行股份有限公司 | 一种身份认证方法、装置及*** |
CN102664736A (zh) * | 2012-04-13 | 2012-09-12 | 天地融科技股份有限公司 | 电子密码生成方法、装置和设备以及电子密码认证*** |
CN103457739A (zh) * | 2013-09-06 | 2013-12-18 | 北京握奇智能科技有限公司 | 一种动态令牌参数获取方法与设备 |
CN103731272A (zh) * | 2014-01-06 | 2014-04-16 | 飞天诚信科技股份有限公司 | 一种身份认证方法、***及设备 |
CN103888470A (zh) * | 2014-04-02 | 2014-06-25 | 飞天诚信科技股份有限公司 | 一种动态令牌的同步方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101197667B (zh) | 一种动态口令认证的方法 | |
CN102281138B (zh) | 一种提高验证码安全性的方法和*** | |
CN102148685B (zh) | 一种由用户自定义多密码种子动态密码认证*** | |
CN101651675B (zh) | 通过认证码对客户端进行验证的方法和*** | |
CN107274532A (zh) | 加密参数动态更新的临时密码门禁*** | |
CN103944724B (zh) | 一种用户身份识别卡 | |
CN108711209A (zh) | 动态密码生成以及验证方法和*** | |
CN101958913B (zh) | 基于动态口令和数字证书的双向身份认证方法 | |
CN103853950A (zh) | 一种基于移动终端的认证方法及移动终端 | |
CN105119721B (zh) | 一种基于智能卡的三因素远程身份认证方法 | |
CN110519300A (zh) | 基于口令双向认证的客户端密钥安全存储方法 | |
CN106357679B (zh) | 密码认证的方法、***及客户端、服务器和智能设备 | |
CN105553667A (zh) | 一种动态口令的生成方法 | |
KR101202245B1 (ko) | 이체정보로 생성되는 otp를 활용한 계좌이체시스템 및 방법 | |
CN109285256A (zh) | 基于区块链身份验证的机房进门权限给定方法 | |
CN114758433A (zh) | 一种基于云端的动态密码生成方法、***和智能锁 | |
CN112529573A (zh) | 一种组合式区块链门限签名方法及*** | |
CN106452845B (zh) | 一种在线解锁的实现方法及装置 | |
CN104135371B (zh) | 一种密码保存方法及装置 | |
CN104333555B (zh) | 一种动态令牌工作方法及*** | |
US10990978B2 (en) | Method of transaction without physical support of a security identifier and without token, secured by the structural decoupling of the personal and service identifiers | |
CN102164036B (zh) | 动态令牌、具有该动态令牌的双向认证方法及*** | |
Yang et al. | A Hybrid Blockchain-Based Authentication Scheme for Smart Home | |
CN110084031B (zh) | 一种认证逻辑可自定义的信息***账号安全认证的方法 | |
Prinslin et al. | Secure online transaction with user authentication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |