密钥存储及设备身份认证方法、装置与流程

文档序号:12865835阅读:362来源:国知局
密钥存储及设备身份认证方法、装置与流程

本发明涉及信息安全技术领域,具体涉及一种密钥存储及设备身份认证方法、装置。



背景技术:

为了提高设备之间信息传输的安全性,通常采用密钥对信息加密后传输。用于信息加密的密钥包括签名密钥对、加密密钥对和会话密钥对,其中加密密钥对用于保护会话密钥,签名密钥对用于数字签名和验证,会话密钥对用于数据加解密和mac运算。为了保护密钥的安全性、进一步提高信息传输的安全性,通常将密钥对存储于安全芯片的不可读写区域,密钥通常不可以导出。

图1所示为安全芯片的应用逻辑结构图,其由国家密码管理局所制定的标准(国密标准)提供。其中,应用为包括容器、设备认证密钥和文件的一种结构,具备独立的权限管理;容器特指密钥容器,是一个用于存放非对称密钥对和会话密钥的逻辑对象。签名密钥对由安全芯片内部产生,加密密钥对由外部产生并安全导入,会话密钥可由安全芯片内部产生或者由外部产生并安全导入。

数字签名作为一种常用的数据安全传输方式,可以防止发送方所发送的信息被篡改。具体地,发送方采用签名私钥对信息加密(即签名),接收方采用签名公钥对加密信息解密。安全芯片中可生成签名密钥对,然而只能够导出签名公钥,而不能导出签名私钥。因此,当有信息需要签名时,只能将待签名信息导入安全芯片,由安全芯片内部签名处理后导出已签名信息。

然而,在待签名信息较多时(例如服务器需要与多个客户端进行通信),安全芯片的处理能力便成为服务器进行通信的瓶颈。现有方式解决这一瓶颈问题时,往往通过提高安全芯片性能、增加安全芯片的数量等手段。这往往会增加系统成本。



技术实现要素:

有鉴于此,本发明实施例提供了一种密钥存储方法及装置,和一种设备身份认证方法及装置,以减少安全芯片的计算量。

本发明第一方面提供了一种密钥存储方法,所述方法包括:向安全芯片内部导入第一加密密钥;导出所述第一加密密钥的公钥;利用所述第一加密密钥的公钥在所述安全芯片外部生成第一会话密钥密文和第一会话密钥句柄;在所述安全芯片外部生成存储密钥;采用所述第一会话密钥句柄对所述存储密钥加密,得到存储密文;将所述第一会话密钥密文和所述存储密文存储至安全芯片内部的可读写存储区;所述第一会话密钥密文导入所述安全芯片可以获取所述第一会话密钥句柄。

可选地,所述向安全芯片内导入第一加密密钥的步骤包括:控制安全芯片内部生成并导出第一签名密钥;采用所述第一签名密钥在所述安全芯片内部生成第二会话密钥,并导出第二会话密钥密文和第二会话密钥句柄;在所述安全芯片外部生成第二加密密钥;采用所述第二会话密钥句柄对所述第二加密密钥进行加密,得到第二加密密钥密文;根据所述第二会话密钥密文和所述第二加密密钥密文生成第一加密密钥;将所述第一加密密钥导入所述安全芯片内部。

本发明第二方面提供了一种设备身份认证方法,用于服务器,所述服务器采用第一方面或者第一方面任意一种可选实施方式所述的密钥存储方法存储签名私钥;所述方法包括:接收所述客户端所发送的客户端证书以及第一加密数据;所述第一加密数据采用服务器的签名公钥加密;当所述客户端证书验证合法时,从所述安全芯片的可读写存储区获取签名私钥;采用所述签名私钥对所述第一加密数据进行解密;当解密成功时,接收所述客户端所发送的签名值;采用所述客户端证书中的公钥对所述签名值验签;当验签通过时,确定所述客户端身份认证通过。

可选地,所述从所述安全芯片的可读写存储区获取签名私钥的步骤,包括:从所述安全芯片的可读写存储区获取所述第一会话密钥密文和所述存储密文;将所述第一会话密钥密文导入所述安全芯片,得到所述第一会话密钥句柄;采用所述第一会话密钥句柄对所述存储密文解密,得到所述存储密钥作为所述服务器的签名私钥。

可选地,所述接收所述客户端所发送的客户端证书以及第一加密数据的步骤之前,还包括:将签名公钥和服务器信息生成证书请求文件;通过所述证书请求文件向证书认证机构请求获取数字证书;接收所述证书认证机构所发送的数字证书;存储所述数字证书。

本发明第三方面提供了一种密钥存储装置,所述装置包括:导入单元,用于向安全芯片内部导入第一加密密钥;导出单元,用于导出所述第一加密密钥的公钥;第一生成单元,用于利用所述第一加密密钥的公钥在所述安全芯片外部生成第一会话密钥密文和第一会话密钥句柄;第二生成单元,用于在所述安全芯片外部生成存储密钥;加密单元,用于采用所述第一会话密钥句柄对所述存储密钥加密,得到存储密文;第一存储单元,用于将所述第一会话密钥密文和所述存储密文存储至安全芯片内部的可读写存储区;所述第一会话密钥密文导入所述安全芯片可以获取所述第一会话密钥句柄。

可选地,所述导入单元包括:第一控制子单元,用于控制安全芯片内部生成并导出第一签名密钥;第一生成子单元,用于采用所述第一签名密钥在所述安全芯片内部生成第二会话密钥,并导出第二会话密钥密文和第二会话密钥句柄;第二生成子单元,用于在所述安全芯片外部生成第二加密密钥;加密子单元,用于采用所述第二会话密钥句柄对所述第二加密密钥进行加密,得到第二加密密钥密文;第三生成子单元,用于根据所述第二会话密钥密文和所述第二加密密钥密文生成第一加密密钥;第一导入子单元,用于将所述第一加密密钥导入所述安全芯片内部。

本发明第四方面提供了一种设备身份认证装置,用于服务器,所述服务器采用第三方面或者第三方面任意一种可选实施方式所述的密钥存储装置存储签名私钥;所述装置包括:第一接收单元,用于接收所述客户端所发送的客户端证书以及第一加密数据;所述第一加密数据采用服务器的签名公钥加密;获取单元,用于当所述客户端证书验证合法时,从所述安全芯片的可读写存储区获取签名私钥;解密单元,用于采用所述签名私钥对所述第一加密数据进行解密;第二接收单元,用于当解密成功时,接收所述客户端所发送的签名值;验签单元,用于采用所述客户端证书中的公钥对所述签名值验签;确定单元,用于当验签通过时,确定所述客户端身份认证通过。

可选地,所述获取单元包括:获取子单元,用于从所述安全芯片的可读写存储区获取所述第一会话密钥密文和所述存储密文;第二导入子单元,用于将所述第一会话密钥密文导入所述安全芯片,得到所述第一会话密钥句柄;解密子单元,用于采用所述第一会话密钥句柄对所述存储密文解密,得到所述存储密钥作为所述服务器的签名私钥。

可选地,所述装置还包括:第三生成单元,用于将签名公钥和服务器信息生成证书请求文件;请求单元,用于通过所述证书请求文件向证书认证机构请求获取数字证书;第三接收单元,用于接收所述证书认证机构所发送的数字证书;第二存储单元,用于存储所述数字证书。

本发明实施例所提供的密钥存储方法及装置,在安全芯片外部生成存储密钥,利用第一会话密钥句柄对存储密钥加密得到存储密文,将存储密文和第一会话密钥密文一起存放至安全芯片的可读写存储区,从而当有信息需要用存储密钥进行签名或解密时,可以从安全芯片的可读写存储区获取存储密文和第一会话密钥密文,将第一会话密钥密文导入安全芯片可以获取第一会话密钥句柄,采用第一会话密钥句柄对存储密文解密可以获取存储密钥,进而可以在安全芯片外部利用该存储密钥对待处理信息进行签名或解密,而无需将待签名信息导入到安全芯片中由安全芯片进行处理,由此减少了安全芯片的计算量。

本发明实施例所提供的设备身份认证方法及装置,服务器接收客户端所发送的客户端证书以及第一加密数据之后,当客户端证书验证合法时,从安全芯片的可读写存储区获取签名私钥,采用该签名私钥对第一加密数据进行解密,由于该签名私钥是采用第一方面或者第一方面任意一种可选实施方式所述的密钥存储方法存储的,因此该设备身份验证算法可以减少安全芯片的计算量。

附图说明

通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:

图1示出了安全芯片的应用逻辑结构图;

图2示出了根据本发明实施例的一种密钥存储方法的流程图;

图3示出了根据本发明实施例的另一种密钥存储方法的流程图;

图4示出了密钥存储方法的示意图;

图5示出了根据本发明实施例的一种设备身份认证方法的流程图;

图6示出了根据本发明实施例的另一种设备身份认证方法的流程图;

图7示出了根据本发明实施例的一种密钥存储装置的原理框图;

图8示出了根据本发明实施例的另一种密钥存储装置的原理框图;

图9示出了根据本发明实施例的一种设备身份认证装置的原理框图;

图10示出了根据本发明实施例的另一种设备身份认证装置的原理框图。

具体实施方式

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

实施例一

图2示出了根据本发明实施例的一种密钥存储方法的流程图,该方法用于服务器。根据图2所示,该方法包括如下步骤:

s101:向安全芯片内部导入第一加密密钥。该方法中需要用到加密密钥,而根据安全芯片国密标准,加密密钥须由外部产生并安全导入。除非特指加密密钥的公钥或私钥,否则本申请中的加密密钥是指加密密钥对,即包括公钥和私钥。

s102:导出第一加密密钥的公钥。根据安全芯片国密标准,只有加密密钥的公钥才可以导出,私钥不可以导出。

s103:利用第一加密密钥的公钥在安全芯片外部生成第一会话密钥密文和第一会话密钥句柄。

s104:在安全芯片外部生成存储密钥。该存储密钥即为本方法所要存储的密钥。需要注意的是,该存储密码是外部生成的,并非安全内部生成的。

s105:采用第一会话密钥句柄对存储密钥加密,得到存储密文。

s106:将第一会话密钥密文和存储密文存储至安全芯片内部的可读写存储区。其中,第一会话密钥密文导入安全芯片可以获取第一会话密钥句柄。

需要补充说明的是,上述步骤s104可以在步骤s105之前的任意一个步骤之前或之后,本申请在此不对步骤s104的位置做限定。

上述密钥存储方法,在安全芯片外部生成存储密钥,利用第一会话密钥句柄对存储密钥加密得到存储密文,将存储密文和第一会话密钥密文一起存放至安全芯片的可读写存储区,从而当有信息需要用存储密钥进行签名或解密时,可以从安全芯片的可读写存储区获取存储密文和第一会话密钥密文,将第一会话密钥密文导入安全芯片可以获取第一会话密钥句柄,采用第一会话密钥句柄对存储密文解密可以获取存储密钥,进而可以在安全芯片外部利用该存储密钥对待处理信息进行签名或解密,而无需将待签名信息导入到安全芯片中由安全芯片进行处理,由此减少了安全芯片的计算量。

实施例二

图3示出了根据本发明实施例的另一种密钥存储方法的流程图,该方法用于服务器。图4示出了该密钥存储方法的示意图。

根据图3所示,该方法包括如下步骤:

s201:控制安全芯片内部生成并导出第一签名密钥。

如图4所示,控制在安全芯片内部生成第一签名密钥p1(pu1,pr1),pu1、pr1分别为该第一签名密钥p1(pu1,pr1)的公钥和私钥。

s202:采用第一签名密钥在安全芯片内部生成第二会话密钥,并导出第二会话密钥密文和第二会话密钥句柄。

上述在安全芯片内部生成第一签名密钥p1(pu1,pr1)之后,可以直接控制安全芯片内部利用第一签名密钥p1(pu1,pr1)生成第二会话密钥sek2(c2,kh2);或者先导出第一签名密钥p1(pu1,pr1)的公钥pu1,再将公钥pu1导入到安全芯片中,控制安全芯片内部利用公钥pu1生成第二会话密钥sek2(c2,kh2)。其中c2为第二会话密钥的密文,kh2为第二会话密钥的句柄。

s203:在安全芯片外部生成第二加密密钥。

如图4所示,在安全芯片外部生成第二加密密钥key2。

s204:采用第二会话密钥句柄对第二加密密钥进行加密,得到第二加密密钥密文。

如图4所示,利用第二会话密钥句柄kh2对第二加密密钥key2进行加密,得到第二加密密钥密文c2。

s205:根据第二会话密钥密文和第二加密密钥密文生成第一加密密钥。

如图4所示,根据第二会话密钥密文c2和第二加密密文c2生成第一加密密钥c1(pu1,pr1),其中pu1、pr1分别为该第一加密密钥c1(pu1,pr1)的公钥和私钥。

s206:将第一加密密钥导入安全芯片内部。

如图4所示,即将第一加密密钥c1(pu1,pr1)导入到安全芯片内部。

上述步骤s201至s206具体实现了实施例一中的步骤s101。

s207:导出第一加密密钥的公钥。

如图4所示,导出第一加密密钥c1(pu1,pr1)的公钥pu1。

s208:利用第一加密密钥的公钥在安全芯片外部生成第一会话密钥密文和第一会话密钥句柄。

如图4所示,利用上述第一加密密钥c1(pu1,pr1)的公钥pu1在安全芯片外部生成第一会话密钥sek1(c1,kh1),其中c1为第一会话密钥的密文,kh1为第一会话密钥的句柄。

s209:在安全芯片外部生成存储密钥。

如图4所示,在安全芯片外部生成存储密钥key1。

s210:采用第一会话密钥句柄对存储密钥加密,得到存储密文。

如图4所示,利用第一会话密钥句柄kh1对存储密钥key1加密,得到存储密文c3。

s211:将第一会话密钥密文和存储密文存储至安全芯片内部的可读写存储区。第一会话密钥密文导入安全芯片可以获取第一会话密钥句柄。

如图4所示,将第一会话密钥密文c1和存储密文c3存储至安全芯片内部的可读写存储区,可读写存储区内的数据均可以被外部获取。

上述步骤s207至s211请参阅实施例一中的步骤s102至s106,在此不再赘述。

实施例三

图5示出了根据本发明实施例的一种设备身份认证方法的流程图,该方法用于服务器,并且服务器采用实施例一或实施例二所述的密钥存储方法存储签名私钥。根据图5所示,该方法包括如下步骤:

s301:接收客户端所发送的客户端证书以及第一加密数据。第一加密数据采用服务器的签名公钥加密。

s302:当客户端证书验证合法时,从安全芯片的可读写存储区获取签名私钥。

s303:采用签名私钥对第一加密数据进行解密。

由于该第一加密数据是采用服务器的签名公钥进行加密的,因此若采用服务器的签名私钥解密成功,则可以说明该客户端持有服务器证书(一般签名公钥包含于服务证书中)。

s304:当解密成功时,接收客户端所发送的签名值。

s305:采用客户端证书中的公钥对签名值验签。

由于客户端所发送的签名值是采用客户端证书中的私钥进行加密的,因此若通过客户端证书中的公钥对签名值验签通过,则可以说明该签名值确实为该客户端所发而未经更改过,其签名内容可信。

s306:当验签通过时,确定客户端身份认证通过。

上述设备身份认证方法,服务器接收客户端所发送的客户端证书以及第一加密数据之后,当客户端证书验证合法时,从安全芯片的可读写存储区获取签名私钥,采用该签名私钥对第一加密数据进行解密,由于该签名私钥是采用实施例一或实施例二所述的密钥存储方法存储的,因此该设备身份验证算法可以减少安全芯片的计算量,具体请见实施例一。

实施例四

图6示出了根据本发明实施例的另一种设备身份认证方法的流程图,该方法用于服务器,并且服务器采用实施例一或实施例二所述的密钥存储方法存储签名私钥。根据图6所示,该方法包括如下步骤:

s401:将签名公钥和服务器信息生成证书请求文件。

s402:通过证书请求文件向证书认证机构请求获取数字证书。

s403:接收证书认证机构所发送的数字证书。

s404:存储数字证书。该数字证书可以存储于安全芯片中,也可以存储于安全芯片外部。

上述步骤s401至s404用于服务器向证书认证机构获取数字证书。

s405:响应客户端所发送的认证请求时,向客户端发送服务器证书。该服务器证书即上述数字证书,用于客户端验证服务器的身份,实现客户端与服务器的双向认证。

s406:接收客户端所发送的客户端证书以及第一加密数据。第一加密数据采用服务器的签名公钥加密。

s407:验证客户端证书是否合法。当客户端证书验证合法时,执行步骤s408。

s408:从安全芯片的可读写存储区获取第一会话密钥密文和存储密文。

s409:将第一会话密钥密文导入安全芯片,得到第一会话密钥句柄。

s410:采用第一会话密钥句柄对存储密文解密,得到存储密钥作为服务器的签名私钥。

上述步骤s408至s410具体实现了实施例三中的“从安全芯片的可读写存储区获取签名私钥”。当有信息需要用服务器的签名私钥进行签名或解密时,通过上述步骤s408至s410可以使外部获取到签名私钥,从而使得对待处理信息的签名或解密操作可以由安全芯片外部的处理器来执行,减少安全芯片的计算量。

s411:采用签名私钥对第一加密数据进行解密。

s412:当解密成功时,接收客户端所发送的签名值。

s413:采用客户端证书中的公钥对签名值验签。

s414:当验签通过时,确定客户端身份认证通过。

上述步骤s411至s414请参阅实施例三中的步骤s303至s306,在此不再赘述。

实施例五

图7示出了根据本发明实施例的一种密钥存储装置的原理框图,该装置用于服务器,执行实施例一或实施例二所述的密钥存储方法。根据图7所示,该方法包括导入单元10、导出单元20、第一生成单元30、第二生成单元40、加密单元50和第一存储单元60。

导入单元10用于向安全芯片内部导入第一加密密钥。

导出单元20用于导出第一加密密钥的公钥。

第一生成单元30用于利用第一加密密钥的公钥在安全芯片外部生成第一会话密钥密文和第一会话密钥句柄。

第二生成单元40用于在安全芯片外部生成存储密钥。

加密单元50用于采用第一会话密钥句柄对存储密钥加密,得到存储密文。

第一存储单元60用于将第一会话密钥密文和存储密文存储至安全芯片内部的可读写存储区。第一会话密钥密文导入安全芯片可以获取第一会话密钥句柄。

上述密钥存储装置,在安全芯片外部生成存储密钥,利用第一会话密钥句柄对存储密钥加密得到存储密文,将存储密文和第一会话密钥密文一起存放至安全芯片的可读写存储区,从而当有信息需要用存储密钥进行签名或解密时,可以从安全芯片的可读写存储区获取存储密文和第一会话密钥密文,将第一会话密钥密文导入安全芯片可以获取第一会话密钥句柄,采用第一会话密钥句柄对存储密文解密可以获取存储密钥,进而可以在安全芯片外部利用该存储密钥对待处理信息进行签名或解密,而无需将待签名信息导入到安全芯片中由安全芯片进行处理,由此减少了安全芯片的计算量。

作为本实施例的一种可选实施方式,如图8所示,导入单元10包括第一控制子单元11、第一生成子单元12、第二生成子单元13、加密子单元14、第三生成子单元15和第一导入子单元16。

第一控制子单元11,用于控制安全芯片内部生成并导出第一签名密钥。

第一生成子单元12,用于采用第一签名密钥在安全芯片内部生成第二会话密钥,并导出第二会话密钥密文和第二会话密钥句柄。

第二生成子单元13,用于在安全芯片外部生成第二加密密钥。

加密子单元14,用于采用第二会话密钥句柄对第二加密密钥进行加密,得到第二加密密钥密文。

第三生成子单元15,用于根据第二会话密钥密文和第二加密密钥密文生成第一加密密钥。

第一导入子单元16,用于将第一加密密钥导入安全芯片内部。

实施例六

图9示出了根据本发明实施例的一种设备身份认证装置的原理框图,该装置用于服务器,执行实施例三或实施例四所述的设备身份认证方法,并且服务器采用实施例五或者其任意一种可选实施方式所述的密钥存储装置存储签名私钥。根据图9所示,该装置包括第一接收单元70、获取单元80、解密单元90、第二接收单元100、验签单元110和确定单元120。

第一接收单元70用于接收客户端所发送的客户端证书以及第一加密数据。第一加密数据采用服务器的签名公钥加密。

获取单元80用于当客户端证书验证合法时,从安全芯片的可读写存储区获取签名私钥。

解密单元90用于采用签名私钥对第一加密数据进行解密。

第二接收单元100用于当解密成功时,接收客户端所发送的签名值。

验签单元110用于采用客户端证书中的公钥对签名值验签。

确定单元120用于当验签通过时,确定客户端身份认证通过。

上述设备身份认证装置,服务器接收客户端所发送的客户端证书以及第一加密数据之后,当客户端证书验证合法时,从安全芯片的可读写存储区获取签名私钥,采用该签名私钥对第一加密数据进行解密,由于该签名私钥是采用实施例一或实施例二所述的密钥存储方法存储的,因此该设备身份验证算法可以减少安全芯片的计算量,具体请见实施例一。

作为本实施例的一种可选实施方式,如图10所示,获取单元80包括获取子单元81、第二导入子单元82和解密子单元83。

获取子单元81用于从安全芯片的可读写存储区获取第一会话密钥密文和存储密文。

第二导入子单元82用于将第一会话密钥密文导入安全芯片,得到第一会话密钥句柄。

解密子单元83用于采用第一会话密钥句柄对存储密文解密,得到存储密钥作为服务器的签名私钥。

作为本实施例的一种可选实施方式,如图10所示,该装置还包括第三生成单元130、请求单元140、第三接收单元150和第二存储单元160。

第三生成单元130用于将签名公钥和服务器信息生成证书请求文件。

请求单元140用于通过证书请求文件向证书认证机构请求获取数字证书。

第三接收单元150用于接收证书认证机构所发送的数字证书。

第二存储单元160用于存储数字证书。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

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