一种基于USB-key的认证方法与流程

文档序号:15466006发布日期:2018-09-18 19:20阅读:484来源:国知局

本发明涉及USB-key的认证技术领域,尤其涉及一种基于USB-key的认证方法。



背景技术:

随着互联网的发展,身份认证在电子商务、网上银行交易、个人数据保密等方面得到了应用。在多种身份认证方式中智能密码钥匙(USB-key)作为一种安全可靠的身份识别认证方式被广泛应用。USB-key作为一种身份鉴别设备,它能实现身份认证、数字签名、访问权限控制、数据加解密以及存储密钥和口令等关键信息,通常情况下用USB-key进行身份认证是以硬件本身、存储的密钥和用户设置的PIN码作为个人身份认证的依据。其中PIN码是作为用户端访问硬件的授权方式,当用户通过客户端输入对应USB-key的正确PIN码时即可对USB-key进行访问,如设置口令、密钥等操作。因PIN码是访问USB-key的方式,所以保护好PIN码及进行安全的身份认证是非常有必要的。

现有的PIN码保护采用非对称算法对PIN码进行安全传输保护,这种方法虽然对PIN码的安全传输起到保护作用,但此种保护方式安全性极其有限。无法避免黑客对PIN码实行窃听而造成的数据泄露,同时也无法抵御中间人和重放攻击。因此对于PIN码的认证过程是存在重大的安全风险。

基于现有技术存在的不足,本发明的目的在于提供一种USB-key的安全有效的PIN码身份认证方法用以解决,在客户端和USB-key端直接通过简单加密传输PIN码并解密后对比而存在的PIN码泄露风险。



技术实现要素:

为了解决上述问题,本发明提供一种基于USB-key的认证方法。

本发明采用的技术方案为一种基于USB-key的认证方法,包括步骤:基于PKI建立客户端与USB-key之间的基础验证体系并生成会话密钥;预设第一PIN码并计算其对应的杂凑值,存储所述杂凑值于所述USB-key;客户端获取第二PIN码并输出验证指令,基于所述会话密钥加密所述验证指令以获取第一加密码;USB-key解析所述第一加密码以获取所述验证指令,随机生成第一随机码,基于所述会话密钥加密所述第一随机码以获取第二加密码;客户端解析所述第二加密码以获取第一随机码,基于所述杂凑值加密所述第一随机码以获取第三加密码,基于会话密钥加密所述第三加密码以获取第四加密码;USB-key解析所述第四加密码以获取第三加密码,基于存储的杂凑值加密所述第一随机码以获取第五加密码,如所述第五加密码与第三加密码一致则验证通过。

优选地,所述基础验证体系包括:存在于客户端的C-key、CA根证书、签名证书和加密证书;存在于USB-key的CA根证书、签名证书和加密证书。

优选地,生成会话密钥的步骤包括:客户端随机生成第二随机码,基于所述基础验证体系加密所述第二随机码以获取第六加密码;USB-key接收并解析所述第六加密码以获取第二随机码,随机生成第三随机码,加密所述第二随机码、第三随机码以获取第七加密码;客户端接收并验证所述第七加密码是否存在第二随机码,是则随机生成第四随机码,加密所述第四随机码、第三随机码以获取第八加密码;USB-key接收并验证所述第八加密码是否存在第三随机码,是则加密所述第四随机码、第三随机码以获取第九加密码,标记第九加密码为会话密钥。

优选地,所述USB-key基于SM2算法加密所述第二随机码、第三随机码以获取第七加密码;

优选地,所述客户端基于SM2算法加密所述第四随机码、第三随机码以获取第八加密码。

优选地,所述USB-key基于SM3算法加密所述第四随机码、第三随机码的组合字符以获取所述组合字符的杂凑值,标记该杂凑值为第九加密码。

本发明采用的技术方案为一种基于USB-key的认证系统,适用于上述方法,包括客户端和USB-key,其中,所述客户端用于获取第二PIN码并输出验证指令,基于所述会话密钥加密所述验证指令以获取第一加密码;所述USB-key用于解析所述第一加密码以获取所述验证指令,随机生成第一随机码,基于所述会话密钥加密所述第一随机码以获取第二加密码;所述客户端还用于解析所述第二加密码以获取第一随机码,基于所述杂凑值加密所述第一随机码以获取第三加密码,基于会话密钥加密所述第三加密码以获取第四加密码;所述USB-key还用于解析所述第四加密码以获取第三加密码,基于存储的杂凑值加密所述第一随机码以获取第五加密码,如所述第五加密码与第三加密码一致则验证通过。

优选地,所述客户端包括C-key、CA根证书、签名证书和加密证书;所述USB-key包括CA根证书、签名证书和加密证书。

本发明的有益效果为用基于PKI/CA建立基础的验证体系以提高数据传输安全性,基于前期认证的会话密钥处理后期的认证过程,可以有效避开针对数据的窃听,防止PIN码泄露。

附图说明

图1所示为基于本发明实施例的客户端和USB-key的框架图;

图2所示为基于本发明实施例的PIN码设置流程图;

图3所示为基于本发明实施例的形成加密通道的流程图;

图4所示为基于本发明实施例的基于USB-key的认证过程的示意图。

具体实施方式

以下结合实施例对本发明进行说明。

基于发明的实施例,一种基于USB-key的认证方法,包括步骤:基于PKI建立客户端与USB-key之间的基础验证体系并生成会话密钥;预设第一PIN码并计算其对应的杂凑值,存储所述杂凑值于所述USB-key;客户端获取第二PIN码并输出验证指令,基于所述会话密钥加密所述验证指令以获取第一加密码;USB-key解析所述第一加密码以获取所述验证指令,随机生成第一随机码,基于所述会话密钥加密所述第一随机码以获取第二加密码;客户端解析所述第二加密码以获取第一随机码,基于所述杂凑值加密所述第一随机码以获取第三加密码,基于会话密钥加密所述第三加密码以获取第四加密码;USB-key解析所述第四加密码以获取第三加密码,基于存储的杂凑值加密所述第一随机码以获取第五加密码,如所述第五加密码与第三加密码一致则验证通过。

所述基础验证体系包括:存在于客户端的C-key、CA根证书、签名证书和加密证书;存在于USB-key的CA根证书、签名证书和加密证书。

如图1所述的客户端(即所述客户端应用)和USB-key的框架图,包括PC上安装的客户端应用和USB-key,通过客户端应用与USB-key进行PIN码认证,实现用户个人身份认证。在建立加密通道和身份认证之前根据PKI-CA证书体系,在安全环境下预置有国密(即国产密码算法)非对称SM2算法证书,当然亦可使用其他非对称算法如RSA。USB-key通过USB接口与PC进行连接,PC客户端通过以在线网络方式通过HTTPS协议向CA申请签名证书和加密证书,而CA根证书在客户端软件编译时写入客户端应用中,此外客户端还预置密钥C-key,保存在客户端中,密钥C-key的组成可通过客户端应用产生随机数和客户端用户账号信息通过哈希运算获取,每个客户端预置的C-key均不相同。密钥C-key是用于客户端对本端的签名私钥和加密私钥加密保护,即每次需要签名私钥和加密私钥参与加解密运算时,均需要先用C-key解密后才能使用。USB-key端通过离线下载CA根证书、签名证书和加密证书并保存于USB-key中,其中USB-key端的签名私钥和加密私钥均存储在USB-key的安全存储器中,外界无法在非授权的情况下进行访问。

生成会话密钥的步骤包括:客户端随机生成第二随机码,基于所述基础验证体系加密所述第二随机码以获取第六加密码;USB-key接收并解析所述第六加密码以获取第二随机码,随机生成第三随机码,加密所述第二随机码、第三随机码以获取第七加密码;客户端接收并验证所述第七加密码是否存在第二随机码,是则随机生成第四随机码,加密所述第四随机码、第三随机码以获取第八加密码;USB-key接收并验证所述第八加密码是否存在第三随机码,是则加密所述第四随机码、第三随机码以获取第九加密码,标记第九加密码为会话密钥。

图2所示为PIN码(即所述第一PIN码)设置流程图,当用户第一次输入账号密码登录客户端应用时,对USB-key初始化时,需设置PIN码。用户在PC机的客户端应用软件上输入客户端的账号、密码以登录该应用,选择对USB-key设置密码(即PIN码),用户通过输入6位或8位的PIN码后,客户端将PIN码传输至USB-key,在USB-key中将PIN码进行(SM3)杂凑运算生成杂凑值,并将PIN码杂凑值保存于USB-key端的安全存储器中。

图3为形成加密(即后续生成会话密钥)的流程示意图:

1)加密通道/安全通道在初始化前客户端和USB-key端会互相交换对方的签名证书和加密证(即基于PKI/CA的CA根证书、签名证书和加密证书),同时客户端发起产生一个随机数H_Rand(即所述第二随机码),并将该随机数和客户端的签名证书、加密证书(即第六加密码)发送给USB-key,USB-key接收数据后,使用预置的CA根密钥验证客户端的签名证书和加密证书的有效性;

2)当验证证书均有效时,USB-key端生成随机数M_Rand(即所述第三随机码),使用客户端的加密公钥通过SM2算法加密随机数H_Rand(即所述第二随机码)和M_Rand(即所述第三随机码)的组合字符,加密后生成密文(即所述第七加密码);

3)使用USB-key的签名私钥对密文进行SM2算法签名,生成签名值,并将生成的签名值、步骤2)的加密密文、USB-key的签名证书和加密证书(在上述的第七加密码的基础上增加基于PKI的验证步骤,仍标记其为第七加密码)一同传送给客户端;

4)客户端接收到USB-key端传送的数据后,调用预置的CA根证书验证接收的USB-key签名证书和加密证书的是否有效,同时使用USB-key的签名公钥验证接收的签名值的有效性;

5)通过CA根证书和USB-key签名公钥验证均有效后,将调用签名设备的加密私钥解密接收的密文得到随机数H_Rand和M_Rand;

6)客户端将解密后的H_Rand和本地生成的H_Rand进行对比(即验证是否存在第二随机码),若完全一致则客户端认证USB-key成功,否则,认证失败;

7)当客户端认证USB-key成功后,客户端生成新的随机数H_Rand′(即所述第四随机码)并通过USB-key的加密公钥对H_Rand′(即所述第四随机码)和M_Rand(即所述第三随机码)组合的字符进行SM2运算加密生成密文(即所述第八加密码),同时使用客户端的签名私钥对密文签名得到签名值,将得到的密文和签名值发送给USB-key;

8)USB-key接收数据后使用客户端的签名公钥验证签名值的有效性,若签名值有效,将调用USB-key的加密私钥解密接收到的密文并得到H_Rand′和M_Rand;

9)比对解密后的M_Rand和本地生成的M_Rand(即验证是否存在第三随机码)是否一致,若一致则认证成功,将H_Rand′和M_Rand组成字符进行SM3杂凑运算得到杂凑值,将杂凑值作为会话密钥(S-key),会话密钥协商成功,加密通道成功建立。

所述USB-key基于SM2算法加密所述第二随机码、第三随机码以获取第七加密码;

将第二随机码、第三随机码组成一组字符组,针对该字符组进行SM2加密。

所述客户端基于SM2算法加密所述第四随机码、第三随机码以获取第八加密码。

所述USB-key基于SM3算法加密所述第四随机码、第三随机码的组合字符以获取所述组合字符的杂凑值,标记该杂凑值为第九加密码。

基于本发明的实施例,一种基于USB-key的认证系统,适用于上述方法,包括客户端和USB-key,其中,所述客户端用于获取第二PIN码并输出验证指令,基于所述会话密钥加密所述验证指令以获取第一加密码;所述USB-key用于解析所述第一加密码以获取所述验证指令,随机生成第一随机码,基于所述会话密钥加密所述第一随机码以获取第二加密码;所述客户端还用于解析所述第二加密码以获取第一随机码,基于所述杂凑值加密所述第一随机码以获取第三加密码,基于会话密钥加密所述第三加密码以获取第四加密码;所述USB-key还用于解析所述第四加密码以获取第三加密码,基于存储的杂凑值加密所述第一随机码以获取第五加密码,如所述第五加密码与第三加密码一致则验证通过。

图4为基于USB-key的认证过程:

(1)根据图2设置的PIN码(即第一PIN码,用于约定正确的识别码),当用户通过客户端(即PC,用于支持客户端应用)输入6位或8位正确的PIN码(即第二PIN码,用于后续的认证)时,发起/输出获取随机数、保护公私钥的指令(即验证指令),使用会话密钥S-key对以上指令数据进行SM4加密(即所述第一加密码),同时使用USK-key的加密公钥对加密的数据再次加密;

(2)安全芯片接收到数据后通过USB-key的加密私钥解密,同时用会话密钥S-key通过SM4算法解密得到随机数的指令,USB-key端生成16byte随机数Rand(即第一随机码),将保护公钥随机数Rand用会话密钥S-key和SM4算法加密(即第二加密码)后,再使用客户端的加密公钥对加密后的数据加密(仍标记为第二加密码)并发送至客户端;

(3)客户端接收到加密数据后分别使用客户端加密私钥和S-key解密获取到随机数Rand(即第一随机码),将PIN码进行SM3杂凑运算,得到杂凑值,以杂凑值作为密钥对随机数Rand进行SM4运算加密得到密文(即第三加密码),将密文先用会话密钥S-key加密后(即第四加密码),再用USB-key加密公钥加密组成APDU指令(仍标记为第四加密码);

(4)USB-key端接收APDU加密指令数据,用USBkey的加密公钥和会话密钥S-key分别解密加密后的指令数据,获得随机数密文数据(即验证指令);

(5)USB-key端使用保存的PIN杂凑值作为密钥,加密随机数Rand,生成随机数密文,对比解密后的随机数密文数据和USB-key端运算的随机数密文数据是否一致,若一致,则间接判断PIN码正确,否则,PIN码不正确;

(6)当判断PIN码正确时,则身份认证成功(否则即认证失败),使用会话密钥S-key进行SM4算法运算加密认证成功指令,并将加密后的指令发送给客户端;(即反馈认证信息,通知客户端认证通过)

(7)客户端接收并解密认证成功指令,获取返回的身份认证成功信息。

所述客户端包括C-key、CA根证书、签名证书和加密证书;所述USB-key包括CA根证书、签名证书和加密证书。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1