一种动态口令的生成方法和系统与流程

文档序号:13763150阅读:931来源:国知局
一种动态口令的生成方法和系统与流程

本发明属于安全认证技术领域,更具体地,涉及一种动态口令的生成方法和系统。



背景技术:

随着电子政务、电子商务等应用系统的飞速发展,动态口令技术作为替换静态密码的有效方式,由于其使用简便,并能够增强应用系统的安全性,从而得到了广泛的应用。

动态口令是由种子密钥与其他数据,通过特定算法运算生成的一次性口令,每个口令只能使用一次,且会随着时间或使用次数的变化而不断变化,且种子密钥是动态口令系统的关键安全要素。目前一般是采用动态令牌这一专用硬件来保存和计算动态口令。

然而,在移动互联网时代,用户在手机、PAD等移动设备上进行网上购物、移动办公时,如果使用专用的动态令牌硬件设备,会造成携带和使用上的不方便。同时,如果直接在移动设备上使用动态口令算法生成动态口令,又面临着种子密钥泄露的巨大风险。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种动态口令的生成方法,其目的在于,解决现有动态口令使用过程中需要用户携带动态令牌硬件设备造成携带和使用不便、以及在移动设备上使用动态口令所面临的种子密钥容易泄漏、安全性差的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种动态口令的生成方法,是应用于与远程服务器通讯连接的移动端中,所述生成方法包括以下步骤:

(1)接收用户输入的验证信息,采集移动端自身的硬件唯一标识信息,并根据硬件唯一标识信息和验证信息,利用密钥派生方法生成密钥数据;

(2)利用密钥数据对其本地存储的种子密钥密文进行解密,以获得种子密钥明文;

(3)利用种子密钥明文生成动态口令;

(4)使用数据擦除方法对密钥数据和种子密钥明文进行数据销毁。

优选地,种子密钥密文是通过以下步骤生成:

(1’)移动端获取其自身的硬件唯一标识信息,接收用户输入的验证信息,并根据硬件唯一标识信息和验证信息,利用密钥派生方法生成密钥数据,将此密钥数据作为种子密钥保护私钥,利用密钥生成算法,计算获得对应的种子密钥保护公钥,并使用数据擦除方法对密钥数据进行数据销毁;

(2’)移动端将设备硬件唯一标识信息及种子密钥保护公钥发送到动态口令认证服务器;

(3’)动态口令认证服务器随机生成种子密钥明文,使用非对称密钥加密算法并利用种子密钥保护公钥对种子密钥明文进行加密,以获得种子密钥密文,并将该种子密钥密文发送给移动端;

(4’)移动端将来自动态口令认证服务器的种子密钥密文保存在本地。

优选地,密钥派生方法是任何安全的Hash函数或密钥派生函数。

优选地,验证信息包括用户PIN码、用户手势密码、用户语音信息、用户指纹信息、用户虹膜信息、用户人脸信息,硬件唯一标识信息包括IMEI号、CPUID、产品序列号。

优选地,生成动态口令的方法包括Hash算法和分组密码算法。

按照本发明的另一方面,提供了一种动态口令的生成系统,是应用于与远程服务器通讯连接的移动端中,所述生成系统包括:

第一模块,用于接收用户输入的验证信息,采集移动端自身的硬件唯一标识信息,并根据硬件唯一标识信息和验证信息,利用密钥派生方法生成密钥数据;

第二模块,用于移动端利用密钥数据对其本地存储的种子密钥密文进行解密,以获得种子密钥明文;

第三模块,用于利用种子密钥明文生成动态口令;

第四模块,用于使用数据擦除方法对密钥数据和种子密钥明文进行数据销毁。

优选地,种子密钥密文是通过以下子模块生成:

第一子模块,其设置于移动端中,用于获取移动端自身的硬件唯一标识信息,接收用户输入的验证信息,并根据硬件唯一标识信息和验证信息,利用密钥派生方法生成密钥数据,将此密钥数据作为种子密钥保护私钥,利用密钥生成算法,计算获得对应的种子密钥保护公钥,并使用数据擦除方法对密钥数据进行数据销毁;

第二子模块,其设置于移动端中,用于将设备硬件唯一标识信息及种子密钥保护公钥发送到动态口令认证服务器;

第三子模块,其设置于动态口令认证服务器中,用于随机生成种子密钥明文,使用非对称密钥加密算法并利用种子密钥保护公钥对种子密钥明文进行加密,以获得种子密钥密文,并将该种子密钥密文发送给移动端;

第四子模块,其设置于移动端中,用于将来自动态口令认证服务器的种子密钥密文保存在本地。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明的种子密钥在移动端并不保存,而是在使用时临时生成,使用后及时销毁,从而能够保证种子密钥在移动端的安全性,并克服了现有动态口令使用过程中在移动设备上使用动态口令所面临的种子密钥容易泄漏、安全性差的技术问题。

(2)本发明在种子密钥发送过程中是由动态口令认证服务器使用非对称加密算法进行加密,从而保证了种子密钥在传输过程中的安全性。

(3)本发明方法使得动态口令的使用可以在用户的移动端上直接操作,而不需要用户携带动态令牌硬件设备,从而克服了现有动态口令使用过程中由于用户需要携带动态令牌硬件设备导致的使用不便的技术问题。

附图说明

图1是本发明动态口令的生成方法的流程图。

图2是本发明方法中种子密钥密文的生成方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,本发明动态口令的生成方法包括以下步骤:

(1)移动端生成种子密钥的解密密钥;本步骤包括以下子步骤:

(1-1)移动端接收用户输入的验证信息;具体而言,该验证信息包括但不局限于用户PIN码、用户手势密码、用户语音信息、用户指纹信息、用户虹膜信息、用户人脸信息等;

(1-2)移动端采集自身的硬件唯一标识信息;具体而言,该硬件唯一标识信息包括但不局限于国际移动设备识别号(International Mobile Equipment Identity,简称IMEI)、CPUID、产品序列号(Serial number,简称SN)等;

(1-3)移动端根据硬件唯一标识信息和验证信息,并利用密钥派生方法生成密钥数据sk;具体而言,该密钥派生方法可以是任何安全的Hash函数(如MD5、SHA-1、SHA-256、SHA-384、SM3等)或任何安全的密钥派生函数(Key Derivation Function,简称KDF),在本发明中,生成的密钥数据sk是32字节长度,应该理解sk也可以是其它的长度,其取决于下述步骤(1-3’)中所采用的密钥生成算法。

(2)移动端利用密钥数据sk对本地存储的种子密钥密文EncSeed进行解密,以获得种子密钥明文Seed;

在本实施方式中,解密过程所使用的算法是SM2解密算法,应该理解,也可以使用其它本领域常见的加解密算法,其均应落入本发明的保护范围中;

(3)移动端利用种子密钥明文Seed生成动态口令;

具体而言,所述生成动态口令的方法包括但不局限于Hash算法和分组密码算法。

(4)移动端使用数据擦除方法对密钥数据sk和种子密钥明文Seed进行数据销毁,

在本实施方式中,数据擦除方法包括但不局限于,对密钥数据sk和种子密钥明文seed内存地址指向的数据进行重新赋值,赋值数据可以为诸如全“0”比特序列、全“1”比特序列、或“0”和“1”组合的随机比特序列。

如图2所示,上述种子密钥密文的生成方法包括以下步骤:

(1’)移动端生成种子密钥保护公钥,本步骤包括以下子步骤:

(1-1’)移动端获取其自身的硬件唯一标识信息;具体而言,该硬件唯一标识信息包括但不局限于国际移动设备识别号(International Mobile Equipment Identity,简称IMEI)、CPUID、产品序列号(Serial number,简称SN)等;

(1-2’)移动端接收用户输入的验证信息;具体而言,该验证信息包括但不局限于用户PIN码、用户手势密码、用户语音信息、用户指纹信息、用户虹膜信息、用户人脸信息等;

(1-3’)移动端根据硬件唯一标识信息和验证信息,并利用密钥派生方法生成密钥数据sk,将此密钥数据sk作为种子密钥保护私钥,并利用SM2椭圆曲线密钥生成算法,计算获得对应的种子密钥保护公钥pk;

具体而言,该密钥派生方法可以是任何安全的Hash函数(如MD5、SHA-1、SHA-256、SHA-384、SM3等)或任何安全的密钥派生函数(Key Derivation Function,简称KDF);此外,本发明采用的密钥生成算法是SM2椭圆曲线密钥算法,应该理解本领域公知的其它密钥生成方法,也落入本发明的保护范围内。

在本发明中,生成的密钥数据sk是32字节长度,应该理解sk也可以是其它的长度,其取决于所采用的密钥生成算法。

(1-4’)移动端使用数据擦除方法对密钥数据sk进行数据销毁;

在本实施方式中,数据擦除方法包括但不局限于,对密钥数据sk内存地址指向的数据进行重新赋值,赋值数据可以为诸如全“0”比特序列、全“1”比特序列、或“0”和“1”组合的随机比特序列。

(2’)移动端将设备硬件唯一标识信息及种子密钥保护公钥pk发送到动态口令认证服务器;

(3’)动态口令认证服务器随机生成种子密钥明文Seed,使用非对称密钥加密算法并利用种子密钥保护公钥pk对种子密钥明文Seed进行加密,以获得种子密钥密文EncSeed,并将该种子密钥密文EncSeed发送给移动端;

具体而言,本发明中使用的非对称密钥加密算法是SM2算法,应该理解,其它本领域公知的非对称密钥加密算法(比如RSA等)也应落入本发明保护范围中;

(4’)移动端将来自动态口令认证服务器的种子密钥密文EncSeed保存在本地。

按照本发明的另一方面,提供了一种动态口令的生成系统,是应用于与远程服务器通讯连接的移动端中,所述生成系统包括:

第一模块,用于接收用户输入的验证信息,采集移动端自身的硬件唯一标识信息,并根据硬件唯一标识信息和验证信息,利用密钥派生方法生成密钥数据;

第二模块,用于移动端利用密钥数据对其本地存储的种子密钥密文进行解密,以获得种子密钥明文;

第三模块,用于利用种子密钥明文生成动态口令;

第四模块,用于使用数据擦除方法对密钥数据和种子密钥明文进行数据销毁。

具体而言,种子密钥密文是通过以下子模块生成:

第一子模块,其设置于移动端中,用于获取移动端自身的硬件唯一标识信息,接收用户输入的验证信息,并根据硬件唯一标识信息和验证信息,利用密钥派生方法生成密钥数据,将此密钥数据作为种子密钥保护私钥,利用密钥生成算法,计算获得对应的种子密钥保护公钥,并使用数据擦除方法对密钥数据进行数据销毁;

第二子模块,其设置于移动端中,用于将设备硬件唯一标识信息及种子密钥保护公钥发送到动态口令认证服务器;

第三子模块,其设置于动态口令认证服务器中,用于随机生成种子密钥明文,使用非对称密钥加密算法并利用种子密钥保护公钥对种子密钥明文进行加密,以获得种子密钥密文,并将该种子密钥密文发送给移动端;

第四子模块,其设置于移动端中,用于将来自动态口令认证服务器的种子密钥密文保存在本地。

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

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