一种加密密钥获取方法及系统与流程

文档序号:11147438阅读:692来源:国知局
一种加密密钥获取方法及系统与制造工艺

本发明涉及一种电子技术领域,尤其涉及一种加密密钥获取方法及系统。



背景技术:

2012年11月22日,中华人民共和国国家质量监督检验检疫总局颁布了《GM-T 0016-2012智能密码钥匙密码应用接口规范》,规定了基于PKI密码体制的智能密码钥匙密码应用接口,描述了密码应用接口的函数、数据类型、参数的定义和设备的安全要求,适用于智能密码钥匙产品的研制、使用和检测。

然而在上述现有规范《GM-T 0016-2012智能密码钥匙密码应用接口规范》中,目前存在以下风险:签名公钥由本地终端生成并上传至服务器,加密私钥由服务器生成并发送至本地终端,但在下载过程中,现有规范中的服务器利用签名公钥对加密私钥进行加密后发送至本地终端,由于签名公钥可被第三方获取,这就导致第三方能够模拟服务器使用签名公钥对数据进行加密,大量地向终端发送签名公钥加密的密文,通过能终端的解密结果进行监控,从而获得终端的签名私钥,导致终端中的签名私钥被泄漏。



技术实现要素:

本发明旨在解决上述问题之一。

为达到上述目的,本发明的技术方案具体是这样实现的:

本发明提供了一种加密密钥获取方法,包括以下步骤:终端基于第一安全算法生成并保存所述终端的签名公钥和签名私钥,基于第二安全算法生成并保存临时公钥和临时私钥,并将第一数据包发送至服务器,其中,所述第一数据包至少包括:所述签名公钥和所述临时公钥;所述服务器接收所述第一数据包,获取所述签名公钥和所述临时公钥,保存所述终端的所述签名公钥;所述服务器基于第三安全算法生成并保存所述终端的加密公钥和加密私钥,基于第四安全算法生成并保存终端的数据加密码和数据解密码;所述服务器利用所述数据加密码对所述加密私钥进行加密操作,生成第一加密信息;利用所述临时公钥对所述数据解密码进行加密操作,生成第二加密信息;并将第二数据包发送至所述终端,其中,所述第二数据包至少包括:所述第一加密信息和所述第二加密信息;所述终端接收所述第二数据包,获取所述第一加密信息,利用所述临时私钥对所述第二加密信息进行解密操作,获得所述数据解密码,利用所述数据解密码对所述第一加密信息进行解密操作,获得所述加密私钥;所述终端保存所述加密私钥。

可选地,所述终端生成所述签名公钥和所述临时公钥之后,将所述第一数据包发送至所述服务器之前,还包括:所述终端基于第一私钥对所述签名公钥和所述临时公钥进行签名操作,生成第一签名信息;所述第一数据包还包括所述第一签名信息;所述服务器接收到所述第一数据包之后,获取所述签名公钥和所述临时公钥之前,还包括:所述服务器基于所述第一私钥对应的第一公钥对所述第一签名息进行认证操作,且认证成功。

可选地,所述终端基于第一私钥对所述签名公钥和所述临时公钥进行签名操作,生成第一签名信息,包括:所述终端基于所述第一私钥对所述签名公钥进行签名操作,生成签名公钥签名信息;基于所述第一私钥对所述临时公钥进行签名操作,生成临时公钥签名信息,并基于所述签名公钥签名信息和所述临时公钥签名信息生成所述第一签名信息;所述服务器基于第一公钥对所述第一签名信息进行认证操作,包括:所述服务器提取所述第一签名信息中的所述签名公钥签名信息和所述临时公钥签名信息,基于所述第一公钥对所述签名公钥签名信息进行认证操作,基于所述第一公钥对所述临时公钥签名信息进行认证操作。

可选地,所述终端基于第一私钥对所述签名公钥和所述临时公钥进行签名操作,生成第一签名信息,包括以下步骤:所述终端基于所述第一私钥对所述签名公钥进行签名操作,生成签名公钥签名信息;基于所述签名私钥对所述临时公钥进行签名操作,生成临时公钥签名信息,并基于所述签名公钥签名信息和所述临时公钥签名信息生成所述第一签名信息;所述服务器基于第一公钥对所述第一签名信息进行认证操作,包括步骤:所述服务器提取所述第一签名信息中的所述签名公钥签名信息、所述临时公钥签名信息和所述签名公钥,基于所述第一公钥对所述签名公钥签名信息进行认证操作,基于所述签名公钥对所述临时公钥签名信息进行认证操作。

可选地,所述服务器生成所述第一加密信息之后,将所述第二数据包发送至所述终端之前,还包括步骤:所述服务器利用第二私钥对所述第一加密信息进行签名操作,生成第二签名信息;所述第二数据包还包括所述第二签名信息;所述终端接收到所述第二数据包之后,获取所述第一加密信息之前,还包括:所述终端基于与所述第二私钥对应的第二公钥对所述第二签名信息进行认证操作,认证成功后,获取所述第一加密信息。

可选地,在所述服务器将第二数据包发送至所述终端之后,所述方法还包括:所述服务器清除所述临时公钥;在所述终端获得所述加密私钥之后,所述方法还包括:所述终端清除所述临时私钥。

根据本发明另一个方面,提供了一种加密密钥获取系统,包括终端和服务器,其中,所述终端,用于基于第一安全算法生成并保存签名公钥和签名私钥,基于第二安全算法生成并保存临时公钥和临时私钥,并将第一数据包发送至所述服务器,其中,所述第一数据包至少包括:所述签名公钥和所述临时公钥;所述服务器,用于接收所述第一数据包,获取所述签名公钥和所述临时公钥,并保存所述签名公钥;基于第三安全算法生成并保存所述终端的加密公钥和加密私钥,基于第四安全算法生成并保存数据加密码和数据解密码;利用所述数据加密码对所述加密私钥进行加密操作,生成第一加密信息;利用所述临时公钥对所述数据解密码进行加密操作,生成第二加密信息;将第二数据包发送至所述终端,其中,所述第二数据包至少包括:所述第一加密信息和所述第二加密信息;所述终端,还用于接收所述第二数据包,获取所述第一加密信息,利用所述临时私钥对所述第二加密信息进行解密操作,获得所述数据解密码,利用所述数据解密码对所述第一加密信息进行解密操作,获得所述加密私钥;保存所述加密私钥。

可选地,所述终端,还用于在生成所述签名公钥和所述临时公钥之后,将所述第一数据包发送至所述服务器之前,基于第一私钥对所述签名公钥和所述临时公钥进行签名操作,生成第一签名信息;所述第一数据包还包括所述第一签名信息;所述服务器,还用于在接收到所述第一数据包之后,获取所述签名公钥和所述临时公钥之前,基于所述第一公钥对所述第一签名信息进行认证操作,认证成功后,获取所述签名公钥和所述临时公钥。

可选地,所述终端具体用于通过以下方式生成所述第一签名信息:基于所述第一私钥对所述签名公钥进行签名操作,生成签名公钥签名信息;基于所述第一私钥对所述临时公钥进行签名操作,生成临时公钥签名信息,并基于所述签名公钥签名信息和所述临时公钥签名信息生成所述第一签名信息;所述服务器具体用于通过以下方式对所述第一签名信息进行认证信操作:提取所述第一签名信息中的所述签名公钥签名信息和所述临时公钥签名信息,基于所述第一公钥对所述签名公钥签名信息进行认证操作,基于所述第一公钥对所述临时公钥签名信息进行认证操作。

可选地,所述服务器具体用于通过以下方式生成所述第一签名信息:基于所述第一私钥对所述签名公钥进行签名操作,生成签名公钥签名信息;基于所述签名私钥对所述临时公钥进行签名操作,生成临时公钥签名信息,并基于所述签名公钥签名信息和所述临时公钥签名信息生成所述第一签名信息;所述服务器具体用于通过以下方式对所述第一签名信息进行认证操作:提取所述第一签名信息中的所述签名公钥签名信息、所述临时公钥签名信息和所述签名公钥,基于所述第一公钥对所述签名公钥签名信息进行认证操作,基于所述签名公钥对所述临时公钥签名信息进行认证操作。

可选地,所述服务器,还用于在生成所述第一加密信息之后,将所述第二数据包发送至所述终端之前,利用第二私钥对所述第一加密信息进行签名操作,生成第二签名信息;所述第二数据包还包括所述第二签名信息;所述终端,还用于在接收到所述第二数据包之后,获取所述第一加密信息之前,基于第二公钥对所述第二签名信息进行认证操作,认证成功后,获取所述第一加密信息。

可选地,所述服务器还用于在将第二数据包发送至所述终端之后,清除所述临时公钥;所述终端还用于在获得所述加密私钥之后,清除所述临时公钥和所述临时私钥。

由上述本发明提供的技术方案可以看出,在本实施例提供的方案中,终端在生成签名公钥和签名私钥对时,同时生成一对临时公钥和临时私钥,将签名公钥和临时公钥发送服务器,服务器在接收签名公钥和临时公钥之后,在生成终端的加密公钥和加密私钥时,生成数据加密码和数据解密码,使用数据加密码对加密私钥进行加密,再使用临时公钥对数据解密码进行加密,因此,即使加密的加密私钥在传输过程中被第三方截取,但由于第三方没有临时私钥无法对加密的数据解密码进行解密,从而无法对加密的加密私钥进行解密,从而保证了加密私钥的安全。另外,由于服务器采用临时公钥对数据解密码进行加密并外发,因此,即使第三方向终端大量发送加密密文,终端也只会使用临时私钥对密文进行解密,第三方通过监控只能获得到终端的临时私钥,从而保护了终端的签名私钥。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例1提供的一种加密密钥获取方法的流程图;以及

图2为本发明实施例1提供的一种加密密钥获取系统的架构示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或数量或位置。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面将结合附图对本发明实施例作进一步地详细描述。

实施例1

本实施例提供一种加密密钥获取方法。

图1为本实施例提供的一种加密密钥获取方法的流程图,如图1所示,本实施例的加密密钥获取方法主要包括以下步骤S101至步骤S108。

S101,终端基于第一安全算法生成并保存终端的签名公钥和签名私钥,基于第二安全算法生成临时公钥和临时私钥。

其中,在本实施例中,终端为能够进行非对称加解密的终端设备,例如,可以为USBKEY、智能卡、手机、可穿戴设备等终端设备,第一安全算法与第二安全算法均为终端内存储的预设非对称算法,用于产生公私钥对,根据第一安全算法生成的签名公钥和签名私钥为终端用于交易签名的私钥及相应公钥,且签名公钥和签名私钥为终端用于交易签名及验签的唯一公私钥对。在本实施例中,签名公钥和签名私钥只在交易中使用,并且,在某些终端中,例如,USBKEY,由于交易过程需要用户确认终端才能使用签名私钥进行签名,因此,第三方也无法使用签名公钥进行加密向终端发送大量密文,而通过监测终端对使用签名私钥对大量密文进行解密而获取终端的签名私钥。

在本实施例中,临时公钥和临时私钥为终端根据第二安全算法临时生成的公私钥对,该临时公私钥对只作为临时使用,在本实施例中,临时公私钥对只在本次密钥获取过程中使用,在密钥获取结束之后失效。因此,即使在密钥获取过程中临时私钥被外部窃取,由于后续终端不会再使用该临时公私钥对,因此,所以不法人员也无法将本次生成的临时私钥用于下次交互过程,不会对用户的安全造成影响。

S102,终端将第一数据包发送至服务器,其中,第一数据包至少包括:签名公钥和临时公钥。

在具体应用中,终端可以通过数据通信通道将签名公钥和临时公钥发送至服务器,终端可以通过有线数据通信通道或无线数据通信通道进行数据传输,包括但不限于蓝牙通道、红外通道、RFID通道、ZigBee通道、超宽频(Ultra WideBand)通道、短距通信(NFC)通道、WiMedia通道、GPS通道、以及DECT通道等。

S103,服务器接收第一数据包,获取签名公钥和临时公钥,并保存终端的签名公钥。

在本实施例中,服务器通过上述通信通道进行第一数据包接收,并在接收到第一数据包之后,提取第一数据包中的签名公钥和临时公钥,将签名公钥保存为上述终端的签名公钥,从而可以在后续交易过程中,使用该签名公钥对终端发送的签名数据进行验签。

S104,服务器基于第三安全算法生成并保存终端的加密公钥和加密私钥,基于第四安全算法生成并保存终端的数据加密码和数据解密码。

在本实施例中,第三安全算法为服务器中预设的非对称算法,用于产生公私钥对,第四安全算法为服务器中预设的安全算法,可以为非对称算法,也可以为对称算法。

在本实施例中,服务器根据第三安全算法生成终端的加密公钥和加密私钥,加密公私钥可以在终端登录服务器时使用,例如,可以在终端登录时使用加密私钥对用户输入的登录密码进行加密,提交到服务器之后,服务器根据用户设置的登录密码,使用该终端的加密公钥,对用户提交的登录密码进行验证。

另外,在本实施例中,数据加密码和数据解密码可以用于服务器与终端之间的传输数据的加解密,在本实施例中,数据加密码和数据解密码用于对终端的加密私钥的加解密操作,可选地,数据加密码和数据解密码可以为服务器随机生成的一组随机数,具体形式本实施例不作限定。

S105,服务器利用数据加密码对加密私钥进行加密操作,生成第一加密信息;利用临时公钥对数据解密码进行加密操作,生成第二加密信息。

在本实施例中,服务器利用数据加密码将生成的加密私钥进行加密操作,获得第一加密信息,并利用从终端获取的临时公钥对数据解密码进行加密操作,获得第二加密信息,通过对数据解密码和加密私钥分别进行加密后进行传输,保证数据传输的安全性。

S106,服务器将第二数据包发送至终端,其中,第二数据包至少包括:第一加密信息、第二加密信息。

在本实施例中,服务器可以通过与所述终端的数据通信通道将第二数据包发送至终端,例如,服务器可以通过有线数据通信通道或无线数据通信通道进行数据传输,包括但不限于蓝牙通道、红外通道、RFID通道、ZigBee通道、超宽频(Ultra WideBand)通道、短距通信(NFC)通道、WiMedia通道、GPS通道、DECT通道等。

S107,终端接收第二数据包,获取第一加密信息,利用临时私钥对第二加密信息进行解密操作,获得数据解密码,利用数据解密码对第一加密信息进行解密操作,获得加密私钥。

在本实施例中,终端接收到第二数据包后,为获取服务器生成的加密私钥,需要进行两步解密操作,第一,利用终端自身生成的临时私钥对第二加密信息进行解密操作,获得数据解密码;第二,利用数据解密码对第一加密信息进行解密操作,获得加密私钥,通过两步解密操作,大大增强了加密私钥在传输过程中的安全性。

在本发明实施例的一个可选实施方案中,为了保证临时公私钥对只能被使用一次,在步骤S106之后,服务器可以清除该终端的临时公钥。而在步骤S107中,终端在获取加密私钥之后,可以清除所述临时私钥。通过该可选实施方式中,即使第三方获取到终端的临时公钥和签名公钥,模拟服务器向终端发送加密私钥进而对终端进行密文攻击,攻破终端的临时私钥,但由于终端在获取到加密私钥之后,不会再使用该临时公私钥对,因此,不会对用户造成安全困扰,给用户带来安全隐患。

在本发明实施例的一个可选实施方案中,终端利用临时私钥对第二加密信息进行解密操作得到数据解密码之后,可以保存该数据解密码,在后续与服务器的交互过程中,使用该数据解密码对服务器发送的数据进行解密。

S108,终端保存加密私钥。

在具体应用中,在执行步骤S108时,终端可以将获得的加密私钥写入安全存储器,安全存储器能够保证加密私钥不可被外部获取,也就是说,终端一旦将加密私钥写入终端内部的安全存储器,不法分子无法从终端读取加密私钥,从而保证了加密私钥的安全性。

在本发明实施例的一个可选实施方案中,在终端向服务器发送第一数据包(即步骤S102)之前,为了保证服务器可以确定第一数据包是终端发送的,该方法还可以包括步骤:终端基于第一私钥对签名公钥和临时公钥进行签名操作,生成第一签名信息;而步骤S102发送的第一数据包中还可以包括第一签名信息。相应地,在步骤S103中,在服务器接收到第一数据包之后,在服务器获取签名公钥和临时公钥之前,还包括步骤:服务器基于第一公钥对第一签名信息进行认证操作,认证成功后,获取签名公钥和临时公钥。通过该可选实施方式,终端对发送的签名公钥和临时公钥进行签名,以保证发送签名公钥和临时公钥的身份,而服务器对签名公钥和临时公钥的签名信息进行验签,在验证通过之后,再获取终端发送的签名公钥和临时公钥,从而可以保证签名公钥和临时公钥来源的可靠性,避免第三方伪装终端向服务器发送签名公钥和临时公钥,进而获取到服务器为终端生成的加密私钥,从而导致终端的加密私钥被泄漏。

在上述可选实施方式中,第一私钥可以为预存在终端中的私钥,例如出生证私钥,相应地,服务器中预存有与第一私钥相对应的第一公钥,可对第一私钥签名后的数据进行验签操作。

在本实施例中,终端对签名公钥和临时公钥进行签名操作包括但不限于以下三种方案:

方案一:终端利用第一私钥对签名公钥进行签名操作,生成签名公钥签名信息,并利用第一私钥对临时公钥进行签名操作,生成临时公钥签名信息,并基于签名公钥签名信息和临时公钥签名信息生成第一签名信息,例如,第一签名信息可以由签名公钥签名信息和临时公钥签名信息组成;

方案二:终端利用第一私钥对签名公钥进行签名操作,生成签名公钥签名信息,并利用签名私钥对临时公钥进行签名操作,生成临时公钥签名信息,并基于签名公钥签名信息和临时公钥签名信息生成第一签名信息,例如,第一签名信息可以由签名公钥签名信息和临时公钥签名信息组成;

方案三:终端利用第一私钥对临时公钥进行签名操作,生成签名公钥签名信息,并利用临时私钥对签名公钥进行签名操作,生成临时公钥签名信息,并基于签名公钥签名信息和临时公钥签名信息生成第一签名信息,例如,第一签名信息可以由签名公钥签名信息和临时公钥签名信息组成;

相应地,服务器在对第一签名信息进行认证操作时,可以采用与终端对应的签名方案进行相应的认证操作。

例如,与上述方案一相对应,服务器基于第一公钥对第一签名信息进行认证操作的方案为:服务器基于第一公钥对签名公钥签名信息进行认证操作,认证成功后获取签名公钥,并基于第一公钥对临时公钥签名信息进行认证操作,认证成功后获取临时公钥;

与上述方案二相对应,服务器基于第一公钥对第一签名信息进行认证操作的方案为:服务器基于第一公钥对签名公钥签名信息进行认证操作,认证成功后获取签名公钥,基于签名公钥对临时公钥签名信息进行认证操作,认证成功后获取临时公钥;

与上述方案三相对应,服务器基于第一公钥对第一签名信息进行认证操作的方案为:服务器基于第一公钥对临时公钥签名信息进行认证操作,认证成功后获取临时公钥,基于临时公钥对签名公钥签名信息进行认证操作,认证成功后获取签名公钥。

在本发明实施例的一个可选实施方案中,为了保证服务器的身份,在步骤S105之后,步骤S106之前,该方法还可以包括步骤:服务器利用第二私钥对第一加密信息进行签名操作,生成第二签名信息;第二数据包还包括第二签名信息;相应地,在步骤S107中,终端接收到第二数据包之后,获取第一加密信息之前,该方法还可以包括步骤:终端基于第二公钥对第二签名信息进行认证操作,认证成功后,获取第一加密信息。其中,在该可选实施方式中,第二私钥为服务器的CA私钥,预存于服务器中,与第二私钥相对于的第二公钥可以是预存于终端中,也可以是终端与服务器交互过程中由服务器发送至终端。在该可选实施方式中,服务器通过利用第二私钥对第一加密信息进行签名操作,终端对第一加密信息进行认证,在认证成功之后,获取第一加密信息,从而保证第一加密信息来源的可靠性,避免第三方模拟服务器向终端发送加密私钥,从而给用户带来安全隐患。

通过本实施例提供的加密密钥获取方法,服务器接收终端发送的签名公钥之前,对终端进行认证操作,保证签名公钥的真实性,终端接收服务器发送的加密私钥之前,对服务器进行认证,保证加密私钥的真实性,从而避免终端或服务器将虚假服务器或终端发送的信息判断为有效信息。此外,在本实施例提供的方案中,服务器采用临时公钥而非签名公钥进行加密传输,即使在传输过程中被第三方截取并破译,外界也仅能够得知临时私钥,无法获知签名私钥,从而避免了选择性攻击带来的安全隐患,保证终端中签名私钥的安全性。

实施例2

本实施例提供一种加密密钥获取系统,该系统可以用于实现实施例1所述的加密密钥获取方法。

图2为本实施例提供的一种加密密钥获取系统的架构示意图,如图2所示,该系统主要包括终端201和服务器202。

在本实施例中,终端201,用于基于第一安全算法生成并保存签名公钥和签名私钥,基于第二安全算法生成并保存临时公钥和临时私钥,并将第一数据包发送至服务器202,其中,第一数据包至少包括:签名公钥和临时公钥;服务器202,用于接收第一数据包,获取签名公钥和临时公钥,并保存签名公钥;基于第三安全算法生成并保存所述终端的加密公钥和加密私钥,基于第四安全算法生成并保存数据加密码和数据解密码;利用数据加密码对加密私钥进行加密操作,生成第一加密信息;利用临时公钥对数据解密码进行加密操作,生成第二加密信息;并将第二数据包发送至终端201,其中,第二数据包至少包括:第一加密信息、第二加密信息;终端201,还用于接收第二数据包,获取第一加密信息,利用临时私钥对第二加密信息进行解密操作,获得数据解密码,利用数据解密码对第一加密信息进行解密操作,获得加密私钥;保存加密私钥。

在本实施例中,终端201基于第一安全算法生成并保存签名公钥和签名私钥,基于第二安全算法生成并保存临时公钥和临时私钥。其中,终端201为能够进行非对称加解密的终端201设备,可以为USBKEY、智能卡、手机、可穿戴设备等终端201设备,第一安全算法与第二安全算法均为终端201内存储的预设非对称算法,用于产生公私钥对,根据第一安全算法生成的签名公钥和签名私钥可以为终端201用于交易签名的私钥及相应公钥,且签名公钥和签名私钥为终端201用于交易签名及验签的唯一公私钥对。即在本实施例中,签名公钥和签名私钥只在交易中使用,并且,在某些终端中,例如,USBKEY,由于交易过程需要用户确认终端才能使用签名私钥进行签名,因此,第三方也无法使用签名公钥进行加密向终端发送大量密文,而通过监测终端对使用签名私钥对大量密文进行解密而获取终端的签名私钥。

在本实施例中,临时公钥和临时私钥为终端201根据第二安全算法临时生成的公私钥对,该临时公私钥对只作为临时使用,在本实施例中,临时公私钥对只在本次密钥获取过程中使用,在密钥获取结束之后失效。因此,即使在密钥获取过程中临时私钥被外部窃取,由于后续终端不会再使用该临时公私钥对,因此,所以不法人员也无法将本次生成的临时私钥用于下次交互过程,不会对用户的安全造成影响。

在本实施例中,终端201可以通过数据通信通道将签名公钥和临时公钥发送至服务器202,具体地,终端201可以通过有线数据通信通道或无线数据通信通道进行数据传输,包括但不限于蓝牙通道、红外通道、RFID通道、ZigBee通道、超宽频(Ultra WideBand)通道、短距通信(NFC)通道、WiMedia通道、GPS通道、DECT通道等;服务器202通过上述通信通道进行第一数据包接收。

在本实施例中,第三安全算法为服务器202中预设的非对称算法,用于产生公私钥对,第四安全算法为服务器202中预设的安全算法,可以为非对称算法,也可以为对称算法;服务器202根据第三安全算法生成加密公钥和加密私钥,加密公私钥可以在终端登录服务器时使用,例如,可以在终端登录时使用加密私钥对用户输入的登录密码进行加密,提交到服务器之后,服务器根据用户设置的登录密码,使用该终端的加密公钥,对用户提交的登录密码进行验证。

另外,在本实施例中,数据加密码和数据解密码可以用于服务器202与终端201之间的传输数据的加解密,在本实施例中,数据加密码和数据解密码用于对终端201的加密私钥的加解密操作,可选地,数据加密码和数据解密码可以为服务器202随机生成的一组随机数,具体形式本实施例不作限定。

在本发明实施例的一个可选实施方案中,为了保证临时公私钥对只能被使用一次,服务器202在向终端201发送第一加密信息之后,可以清除终端201的临时公钥。终端201在获取加密私钥之后,可以清除所述临时私钥。通过该可选实施方式中,即使第三方获取到终端201的临时公钥和签名公钥,模拟服务器202向终端201发送加密私钥进而对终端201进行密文攻击,攻破终端201的临时私钥,但由于终端201在获取到加密私钥之后,不会再使用该临时公私钥对,因此,不会对用户造成安全困扰,给用户带来安全隐患。

在本发明实施例的一个可选实施方案中,终端201利用临时私钥对第二加密信息进行解密操作得到数据解密码之后,可以保存该数据解密码,在后续与服务器202的交互过程中,使用该数据解密码对服务器202发送的数据进行解密。

终端201在保存加密私钥时,可以将获得的加密私钥写入安全存储器,安全存储器能够保证加密私钥不可被外部获取,也就是说,终端201一旦将加密私钥写入终端201内部的安全存储器,不法份子无法从终端201读取加密私钥,从而保证了加密私钥的安全性。

在本发明实施例的一个可选实施方案中,为了保证服务器202可以确定第一数据包是终端201发送的,终端201还用于在向服务器202发送第一数据包之前,基于第一私钥对签名公钥和临时公钥进行签名操作,生成第一签名信息;第一数据包还包括第一签名信息;服务器202还用于在获取签名公钥和临时公钥之前,基于第一公钥对第一签名信息进行认证操作,认证成功后,才获取签名公钥和临时公钥。

在上述可选实施方式中,第一私钥为预存在终端201中的私钥,例如出生证私钥,相应地,服务器202中预存有与第一私钥相对应的第一公钥,可对第一私钥签名后的数据进行验签操作。

在本发明实施例的一个可选实施方案中,终端201具体用于通过但不限于以下三种签名方案对所述签名公钥和临时公钥进行签名得到第一签名信息:

方案一:终端201利用第一私钥对签名公钥进行签名操作,生成签名公钥签名信息,并利用第一私钥对临时公钥进行签名操作,生成临时公钥签名信息,并基于签名公钥签名信息和临时公钥签名信息生成第一签名信息;

方案二:终端201利用第一私钥对签名公钥进行签名操作,生成签名公钥签名信息,并利用签名私钥对临时公钥进行签名操作,生成临时公钥签名信息,并基于签名公钥签名信息和临时公钥签名信息生成第一签名信息;

方案三:终端201利用第一私钥对临时公钥进行签名操作,生成签名公钥签名信息,并利用临时私钥对签名公钥进行签名操作,生成临时公钥签名信息,并基于签名公钥签名信息和临时公钥签名信息生成第一签名信息。

对应于终端201基于第一私钥对签名公钥和临时公钥进行签名操作的三种方案,服务器202具体用于通过但不限于以下三种认证方案对第一签名信息进行认证:

方案一:服务器202基于第一公钥对签名公钥签名信息进行认证操作,认证成功后获取签名公钥,基于第一公钥对临时公钥签名信息进行认证操作,认证成功后获取临时公钥;

方案二:服务器202基于第一公钥对签名公钥签名信息进行认证操作,认证成功后获取签名公钥,基于签名公钥对临时公钥签名信息进行认证操作,认证成功后获取临时公钥;

方案三:服务器202基于第一公钥对临时公钥签名信息进行认证操作,认证成功后获取临时公钥,基于临时公钥对签名公钥签名信息进行认证操作,认证成功后获取签名公钥。

在本发明实施例的一个可选实施方案中,为了保证服务器的身份,服务器202,还用于在向终端201发送第一加密信息之前,利用第二私钥对第一加密信息进行签名操作,生成第二签名信息;第二数据包还包括第二签名信息;终端201,还用于在获取第一加密信息之前,基于第二公钥对第二签名信息进行认证操作,认证成功后,获取第一加密信息。相应地,终端201还用于在接收到第二数据包之后,获取第一加密信息之前,基于第二公钥对第二签名信息进行认证操作,认证成功后,获取第一加密信息。

在上述可选实施方式中,第二私钥可以为CA私钥,预存于服务器202中,与第二私钥相对于的第二公钥可以是预存于终端201中,也可以是终端201与服务器202交互过程中由服务器202发送至终端201。在该可选实施方式中,服务器202通过利用第二私钥对第一加密信息进行签名操作,终端201对第一加密信息进行认证,在认证成功之后,获取第一加密信息,从而保证第一加密信息来源的可靠性,避免第三方模拟服务器202向终端201发送加密私钥,从而给用户带来安全隐患。

通过本实施例提供的密钥生成系统,服务器202接收终端201发送的签名公钥之前,对终端201进行认证操作,保证签名公钥的真实性,终端201接收服务器202发送的加密私钥之前,对服务器202进行认证,保证加密私钥的真实性,从而避免终端201或服务器202将虚假服务器202或终端201发送的信息判断为有效信息,此外,在本实施例提供的方案中,服务器202采用临时公钥而非签名公钥进行加密传输,即使在传输过程中被第三方截取并破译,外界也仅能够得知临时私钥,无法获知签名私钥,从而避免了选择性攻击带来的安全隐患,保证终端201中签名私钥的安全性。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。

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