一种动态密码的安全传输方法和系统与流程

文档序号:12624152阅读:398来源:国知局
一种动态密码的安全传输方法和系统与流程

本发明属于信息安全技术领域,更具体地,涉及一种动态密码的安全传输方法和系统。



背景技术:

随着动态口令技术的发展,目前,不论是在电子商务中进行交易,还是在其他需要进行身份验证或者权限的验证和授予的系统中,都在大量的使用动态口令技术,伴随着移动互联网的井喷之势,动态口令与移动互联终端结合形成的动态口令短信验证码(以下简称短信验证码)正在被广泛并且越来越多的使用,但是,众所周知,短信验证码中的动态密码的发送、传输、接收都是在明文的状态下进行的,短信验证码的发送方、传输中介、以及接收方都无法保证动态密码不会被第三方拦截、获取、接收或者窃听,从而导致了一些不法分子可以通过一些特殊手段获取到动态密码,造成个人信息泄露、财产损失等不良后果。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种动态密码的安全传输方法和系统,其目的在于,解决现有动态密码加密传输过程中由于动态密码的发送、传输、接收都是在明文的状态下进行所导致的动态密码容易被第三方拦截、获取、接收或者窃听,并进一步导致一些不法分子可通过获取动态密码,造成个人信息泄露、财产损失等不良后果的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种动态密码的安 全传输方法,包括如下步骤:

(1)移动端从第三方应用获取用户信息,并根据该用户信息使用非对称密钥算法生成密钥对,并将生成的密钥对存储在移动端内;

(2)移动端获取自身的唯一标识信息,并将用户信息、步骤(1)中生成的密钥对中的公钥、以及移动端的唯一标识信息一起发送到服务器端;

(3)服务器端建立通过合法性检查的用户信息、密钥对中的公钥、以及移动端的唯一标识信息三者之间的映射关系表,并将映射关系建立成功的通知发送到移动端;

(4)移动端在接收到来自于服务器端发送的映射关系建立成功的通知后持续监听所有短信;

(5)服务器端接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的公钥,使用查询到的该公钥对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文通过短信发送到移动端;

(6)移动端判断接收到的短信对应的号码是否是该服务器端发送短信的号码,如果是则进入步骤(7),否则放弃该短信,并持续监听下一条短信;

(7)移动端使用步骤(1)生成的密钥对中的私钥对来自服务器端的短信中的密文进行解密,以生成原文,并将原文显示给用户。

优选地,步骤(1)中生成密钥对的方式还可以为,在获取用户信息后,随机生成一随机因子,并根据用户信息和该随机因子使用非对称密钥算法生成密钥。

优选地,所述方法进一步包括在步骤(2)之后、步骤(3)之前的如下步骤:

(2’)服务器端对来自移动端的用户信息、密钥对中的公钥、以及移动端的唯一标识信息进行合法性检查。

优选地,所述方法进一步包括在步骤(2)或(2’)之后、步骤(3)之前的如下步骤:

(2”)服务器端通过第三方应用所在的第三方平台对来自移动端的用户信息的合法性进行检查。

优选地,步骤(5)中对加密请求关联的动态密码进行加密、并将生成的密文以短信的形式发送到移动端的过程包括以下子步骤:

(5-1)使用查询到的该公钥对动态密码进行加密,以得到动态密码密文;

(5-2)使用服务器端和移动端预先约定的加密标记符和动态密码密文进行组合,以得到组合密文;

(5-3)将该组合密文与服务器端和移动端预先约定的短信提示内容进行组合,以得到完整的短信,该短信中包括密文,并将该短信发送到移动端。

优选地,步骤(5)中生成密文的方式还可以为,在服务器端接收来自于第三方平台的加密请求后,根据该加密请求中的用户信息在映射关系表中查询对应的公钥,随机产生一个随机因子,使用该随机因子和查询到的该公钥对加密请求关联的动态密码进行加密,以生成密文。

优选地,步骤(7)中展示给用户的也可以是动态密码,其是通过移动端使用步骤(5)产生的随机因子和步骤(1)生成的密钥对中的私钥对来自服务器端的密文进行解密生成的。

优选地,对来自服务器端的密文进行解密,以生成动态密码的过程包括以下子步骤:

(7-1)将短信中服务器端和移动端预先约定的短信提示内容删除,以得到密文组包;

(7-2)将密文组包中服务器端和移动端预先约定的加密标记符删除,以得到加密请求关联的动态密码密文;

(7-3)使用步骤(1)中生成的密钥对中的私钥对得到的动态密码密文进行解密,以得到动态密码原文。

按照本发明的另一方面,提供了一种动态密码的安全传输系统,包括:

第一模块,其设置于移动端,用于从第三方应用获取用户信息,并根据该用户信息使用非对称密钥算法生成密钥对,并将生成的密钥对存储在移动端内;

第二模块,其设置于移动端,用于获取自身的唯一标识信息,并将用户信息、第一模块中生成的密钥对中的公钥、以及移动端的唯一标识信息一起发送到服务器端;

第三模块,其设置于服务器端,用于建立通过合法性检查的用户信息、密钥对中的公钥、以及移动端的唯一标识信息三者之间的映射关系表,并将映射关系建立成功的通知发送到移动端;

第四模块,其设置于移动端,用于在接收到来自于服务器端发送的映射关系建立成功的通知后持续监听所有短信;

第五模块,其设置于服务器端,用于接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的公钥,使用查询到的该公钥对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文通过短信发送到移动端;

第六模块,其设置于移动端,用于判断接收到的短信对应的号码是否是该服务器端发送短信的号码,如果是则进入第七模块,否则放弃该短信,并持续监听下一条短信;

第七模块,其设置于移动端,用于使用第一模块生成的密钥对中的私钥对来自服务器端的短信中的密文进行解密,以生成原文,并将原文显示给用户。

按照本发明的另一方面,提供了一种动态密码的安全传输方法,包括如下步骤:

(1)移动端从第三方应用获取用户信息;

(2)移动端获取自身的唯一标识信息,并将用户信息及移动端的唯一标识信息一起发送到服务器端;

(3)服务器端随机生成随机数作为分散因子,建立通过合法性检查的用户信息、分散因子、以及移动端的唯一标识信息三者之间的映射关系表,并将映射关系建立成功的通知发送到移动端;

(4)移动端接收来自于服务器端发送的映射关系建立成功的通知及步骤(3)中生成的分散因子,存储分散因子并持续监听所有短信;

(5)服务器端接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的分散因子,使用查询到的该分散因子对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文通过短信发送到移动端;

(6)移动端判断接收到的短信对应的号码是否是该服务器端发送短信的号码,如果是则进入步骤(7),否则放弃该短信,并持续监听下一条短信;

(7)移动端使用步骤(4)存储的分散因子生成密钥,并使用该密钥对来自服务器端的短信中的密文进行解密,以生成原文,并将原文显示给用户。

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

1、由于本发明使用了非对称加密算法或对称加密算法加密动态密码,使得加密后的动态密码很难被不法分子获取或破解,因此能够解决现有动态密码加密传输过程中由于动态密码的发送、传输、接收都是在明文的状态下进行所导致的动态密码容易被第三方拦截、获取、接收或者窃听,并进一步导致一些不法分子可通过获取动态密码,造成个人信息泄露、财产损失等不良后果的技术问题;

2、本发明可以应用到各种移动端和服务器端,适用范围广;

3、本发明的动态密码从发送、传输、接收时都是以密文方式进行,只有显示到移动端用户的时候才会以明文方式,从而实现了从动态密码的产生到验证整个环节的保护,并为动态密码的安全传输提供了坚强的保障。

附图说明

图1是根据本发明第一实施方式的动态密码的安全传输方法的流程图。

图2是根据本发明第二实施方式的动态密码的安全传输方法的流程图。

具体实施方式

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

如图1所示,根据本发明第一实施方式的动态密码的安全传输方法包括如下步骤:

(1)移动端从第三方应用获取用户信息,并根据该用户信息使用非对称密钥算法生成密钥对,并将生成的密钥对存储在移动端内;

在本实施方式中,移动端可以是任何可进行网络通信的移动设备或主机设备,诸如个人电脑(Personal Computer,简称PC)、手机、平板电脑、私人数字助手(Personal Digital Assistant,简称PDA)等。

具体而言,第三方应用可以是各种交易系统,包括但不局限于银行交易系统,证券交易系统、政府机关公文系统等,其能够提供用户信息,该用户信息包括但不局限于用户的账号、名称、电话号码等;

在本实施方式中,非对称密钥算法包括但不局限于RSA算法(Rivest-Shamir-Adleman算法)、椭圆曲线密码学算法(Elliptic curve cryptography,简称ECC)、SM2算法等;

可替换地,本步骤还可以为,移动端从第三方应用获取用户信息,随机生成一随机因子,并根据用户信息和该随机因子使用非对称密钥算法生成密钥对,从而进一步增强生成的密钥对的安全性;

(2)移动端获取自身的唯一标识信息,并将用户信息、步骤(1)中生成的密钥对中的公钥、以及移动端的唯一标识信息一起发送到服务器端;该唯一标识信息对于手机而言是其IMEI号或IMSI号,对于PDA和电脑而言是其出厂序列号,该唯一标识信息也可以是移动端中某个部件(诸如CPU、网卡等)的硬件号码;

作为进一步优选的,本方法还可包括在步骤(2)之后的以下步骤:

(2’)服务器端对来自移动端的用户信息、密钥对中的公钥、以及移动端的唯一标识信息进行合法性检查;

具体而言,对用户信息进行合法性检查是检查用户信息的长度是否处于一个阈值范围内,如果处于该阈值范围内,则证明该用户信息是合法的,否则表示用户信息不合法;该阈值的下限值是0,上限值为第三方应用中用户信息长度最大的信息长度。

对密钥对中的公钥进行合法性检查是检查该公钥长度是否等于步骤(1)中使用的非对称密钥算法所对应的规范要求的公钥长度,如果等于表示该公钥是合法的,否则表示该公钥是非法的。

对移动端的唯一标识信息进行合法性检查具体是检查手机的IMEI号或IMSI号、PDA或电脑的出厂序列号、以及移动端中某个部件(诸如CPU、网卡等)的硬件号码是否符合规定长度(例如IMEI号码是15位,电脑序列号是11位等),如果符合,则标识该唯一标识信息是合法的,否则表示是非法的。

作为更进一步优选地,本发明的方法还可包括在上述步骤(2)或步骤(2’)之后的如下步骤:

(2”)服务器端通过第三方应用所在的第三方平台对来自移动端的用 户信息的合法性进行检查;

(3)服务器端建立通过合法性检查的用户信息、密钥对中的公钥、以及移动端的唯一标识信息三者之间的映射关系表(即实现了三者之间的绑定),并将映射关系建立成功的通知发送到移动端;

(4)移动端在接收到来自于服务器端发送的映射关系建立成功的通知后持续监听所有短信;

(5)服务器端接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的公钥,使用查询到的该公钥对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文通过短信发送到移动端;

具体而言,动态密码可以是加密请求中携带的信息,也可以是加密请求指定的待随机生成的信息,动态密码具体可以是数字、汉字、中英文字符等。

本步骤中使用的加密算法与上述步骤(1)中使用的加密算法相同。

可替换地,本步骤也可以为,服务器端接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的公钥,随机产生一个随机因子,使用该随机因子和查询到的该公钥对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文以短信的形式发送到移动端;

详细地,对加密请求关联的动态密码进行加密、并将生成的密文以短信的形式发送到移动端的过程包括以下子步骤:

(5-1)使用查询到的该公钥对动态密码进行加密,以得到动态密码密文Cifer;

(5-2)使用服务器端和移动端预先约定的加密标记符(其可以是字母、数字、字符或其任意组合)和动态密码密文Cifer进行组合,以得到组合密文;例如,预先约定的加密标记符是FF或00,动态密码密文是Cifer,则 组合密文是FF||Cifer或00||Cifer。

(5-3)将该组合密文与服务器端和移动端预先约定的短信提示内容(例如,该短信提示内容是“本次交易的验证码是:”)进行组合,以得到完整的短信,该短信中包括密文,并将该短信发送到移动端。

(6)移动端判断接收到的短信对应的号码是否是该服务器端发送短信的号码,如果是则进入步骤(7),否则放弃该短信,并持续监听下一条短信;例如,如果某一时刻移动端收到一条短信,其对应的号码为106922222,并且移动端判断该号码并不是服务器端发送短信的号码106900000,则移动端放弃该短信,继续监听下一条短信;

(7)移动端使用步骤(1)生成的密钥对中的私钥对来自服务器端的短信中的密文进行解密,以生成原文,并将原文显示给用户。

可替换地,当步骤(5)中生成了随机因子时,本步骤为:移动端使用步骤(5)产生的随机因子和步骤(1)生成的密钥对中的私钥对来自服务器端的密文进行解密,以生成动态密码,并将动态密码显示给用户。

具体而言,解密所使用的算法与上述步骤(1)中使用的加密算法是完全对应的。

上述对来自服务器端的密文进行解密,以生成动态密码的过程包括以下子步骤:

(7-1)将短信中服务器端和移动端预先约定的短信提示内容删除,以得到密文组包;

(7-2)将密文组包中服务器端和移动端预先约定的加密标记符删除,以得到加密请求关联的动态密码密文;

(7-3)使用步骤(1)中生成的密钥对中的私钥对得到的动态密码密文进行解密,以得到动态密码原文。

根据本发明第二实施方式的动态密码的安全传输方法包括如下步骤:

(1)移动端从第三方应用获取用户信息;

具体而言,第三方应用可以是各种交易系统,包括但不局限于银行交易系统,证券交易系统、政府机关公文系统等,其能够提供用户信息,该用户信息包括但不局限于用户的账号、名称、电话号码等;

(2)移动端获取自身的唯一标识信息,并将用户信息及移动端的唯一标识信息一起发送到服务器端;该唯一标识信息对于手机而言是其IMEI号或IMSI号,对于PDA和电脑而言是其出厂序列号,该唯一标识信息也可以是移动端中某个部件(诸如CPU、网卡等)的硬件号码;

作为进一步优选的,本方法还可包括在步骤(2)之后的以下步骤:

(2’)服务器端对来自移动端的用户信息、以及移动端的唯一标识信息进行合法性检查;

具体而言,对用户信息进行合法性检查是检查用户信息的长度是否处于一个阈值范围内,如果处于该阈值范围内,则证明该用户信息是合法的,否则表示用户信息不合法;该阈值的下限值是0,上限值为第三方应用中用户信息长度最大的信息长度。

对移动端的唯一标识信息进行合法性检查具体是检查手机的IMEI号或IMSI号、PDA或电脑的出厂序列号、以及移动端中某个部件(诸如CPU、网卡等)的硬件号码是否符合规定长度(例如IMEI号码是15位,电脑序列号是11位等),如果符合,则标识该唯一标识信息是合法的,否则表示是非法的。

作为更进一步优选地,本发明的方法还可包括在上述步骤(2)或步骤(2’)之后的如下步骤:

(2”)服务器端通过第三方应用所在的第三方平台对来自移动端的用户信息的合法性进行检查;

(3)服务器端随机生成随机数作为分散因子,建立通过合法性检查的用户信息、分散因子、以及移动端的唯一标识信息三者之间的映射关系表(即实现了三者之间的绑定),并将映射关系建立成功的通知发送到移动 端;

(4)移动端接收来自于服务器端发送的映射关系建立成功的通知及步骤(3)中生成的分散因子,存储分散因子并持续监听所有短信;

(5)服务器端接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的分散因子,使用查询到的该分散因子对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文通过短信发送到移动端;

具体而言,动态密码可以是加密请求中携带的信息,也可以是加密请求指定的待随机生成的信息,动态密码具体可以是数字、汉字、中英文字符等。

可替换地,本步骤也可以为,服务器端接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的分散因子,随机产生一个随机因子,使用该随机因子和查询到的该分散因子对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文以短信的形式发送到移动端;

详细地,对加密请求关联的动态密码进行加密、并将生成的密文以短信的形式发送到移动端的过程包括以下子步骤:

(5-1)使用哈希算法对分散因子进行哈希运算,以得到哈希值,并利用截位算法对该哈希值进行截位,以得到加密密钥,使用该加密密钥对动态密码进行加密,以生成动态密码密文;

具体而言,首先对哈希值进行截位运算,以获得和动态密码原文长度相同的加密密钥,然后使用该加密密钥对动态密码原文进行按位异或,从而生成动态密码密文;

(5-2)使用服务器端和移动端预先约定的加密标记符(其可以是字母、数字、字符或其任意组合)和动态密码密文进行组合,以得到组合密文;例如,预先约定的加密标记符是FF或00,动态密码密文是Cifer,则组合 密文是FF||动态密码密文或00||动态密码密文。

(5-3)将该组合密文与服务器端和移动端预先约定的短信提示内容(例如,该短信提示内容是“本次交易的验证码是:”)进行组合,以得到完整的短信,该短信中包括密文,并将该短信发送到移动端。

(6)移动端判断接收到的短信对应的号码是否是该服务器端发送短信的号码,如果是则进入步骤(7),否则放弃该短信,并持续监听下一条短信;例如,如果某一时刻移动端收到一条短信,其对应的号码为106922222,并且移动端判断该号码并不是服务器端发送短信的号码106900000,则移动端放弃该短信,继续监听下一条短信;

(7)移动端使用步骤(4)存储的分散因子生成密钥,并使用该密钥对来自服务器端的短信中的密文进行解密,以生成原文,并将原文显示给用户。

可替换地,当步骤(5)中生成了随机因子时,本步骤为:移动端使用步骤(5)产生的分散因子和随机因子生成密钥对来自服务器端的密文进行解密,以生成动态密码,并将动态密码显示给用户。

具体而言,解密所使用的算法与上述步骤(5)中使用的加密算法是完全对应的。

上述对来自服务器端的密文进行解密,以生成动态密码的过程包括以下子步骤:

(7-1)将短信中服务器端和移动端预先约定的短信提示内容删除,以得到密文组包;

(7-2)将密文组包中服务器端和移动端预先约定的加密标记符删除,以得到加密请求关联的动态密码密文;

(7-3)使用哈希算法对分散因子进行哈希运算,以得到哈希值,并利用截位算法对哈希值进行截位,以得到解密密钥,并使用该解密密钥对动态密码进行解密,以生成动态密码明文;

具体而言,首先对哈希值进行截位运算,以获得和动态密码密文长度相同的解密密钥,然后使用该解密密钥对动态密码密文进行按位异或,生成动态密码明文。

本发明还提供了一种动态密码的安全传输系统,包括:

第一模块,其设置于移动端,用于从第三方应用获取用户信息,并根据该用户信息使用非对称密钥算法生成密钥对,并将生成的密钥对存储在移动端内;

第二模块,其设置于移动端,用于获取自身的唯一标识信息,并将用户信息、第一模块中生成的密钥对中的公钥、以及移动端的唯一标识信息一起发送到服务器端;

第三模块,其设置于服务器端,用于建立通过合法性检查的用户信息、密钥对中的公钥、以及移动端的唯一标识信息三者之间的映射关系表,并将映射关系建立成功的通知发送到移动端;

第四模块,其设置于移动端,用于在接收到来自于服务器端发送的映射关系建立成功的通知后持续监听所有短信;

第五模块,其设置于服务器端,用于接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的公钥,使用查询到的该公钥对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文通过短信发送到移动端;

第六模块,其设置于移动端,用于判断接收到的短信对应的号码是否是该服务器端发送短信的号码,如果是则进入第七模块,否则放弃该短信,并持续监听下一条短信;

第七模块,其设置于移动端,用于使用第一模块生成的密钥对中的私钥对来自服务器端的短信中的密文进行解密,以生成原文,并将原文显示给用户。

本发明还进一步提供了一种动态密码的安全传输系统,包括:

第一模块,其设置于移动端,用于从第三方应用获取用户信息;

第二模块,其设置于移动端,用于获取自身的唯一标识信息,并将用户信息及移动端的唯一标识信息一起发送到服务器端;

第三模块,其设置于服务器端,用于随机生成随机数作为分散因子,建立通过合法性检查的用户信息、分散因子、以及移动端的唯一标识信息三者之间的映射关系表,并将映射关系建立成功的通知发送到移动端;

第四模块,其设置于移动端,用于接收来自于服务器端发送的映射关系建立成功的通知及步骤(3)中生成的分散因子,存储分散因子并持续监听所有短信;

第五模块,其设置于服务器端,用于接收来自于第三方平台的加密请求,根据该加密请求中的用户信息在映射关系表中查询对应的分散因子,使用查询到的该分散因子对加密请求关联的动态密码进行加密,以生成密文,并将生成的密文通过短信发送到移动端;

第六模块,其设置于移动端,用于判断接收到的短信对应的号码是否是该服务器端发送短信的号码,如果是则进入第七模块,否则放弃该短信,并持续监听下一条短信;

第七模块,其设置于移动端,用于使用第四模块存储的分散因子生成密钥,并使用该密钥对来自服务器端的短信中的密文进行解密,以生成原文,并将原文显示给用户。

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

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