无CA的身份认证方法和系统与流程

文档序号:12691941阅读:529来源:国知局
无CA的身份认证方法和系统与流程

本发明涉及可信计算技术领域,特别是涉及一种无CA的身份认证方法和系统。



背景技术:

非对称密钥的认证通常采用证书的方式,通过CA(证书管理机构)提供第三方认证。在互联网场景下,通信双方难以通过会面等其他安全方式交换密钥,因此需要第三方CA保证密钥的安全性。但是在工控系统中如果通过CA提供第三方认证,不仅通信流量大,交互复杂度高,而且对于使用485、无线等通信方式的工控系统,其通信带宽、通信稳定性远不如互联网可靠,通过CA提供第三方认证,通信速率低,通信稳定性差,无法满足工控系统的认证需求。



技术实现要素:

基于上述情况,本发明提出了一种无CA的身份认证方法和系统,认证过程中无需在线CA的参与,减少了通信流量,消除了第三方CA的角色,降低了交互的复杂度。

为了实现上述目的,本发明技术方案的实施例为:

一种无CA的身份认证方法,包括以下步骤:

接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名后得到的签名;

利用所述安全芯片私钥对接收的所述主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;

当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;

利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密,并将所述第一随机数的加密结果发送至所述主站;

接收所述主站发送的第二随机数,所述第二随机数为所述主站利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密得到的随机数;

当所述第一随机数与所述第二随机数相同时,判定所述主站身份认证通过,并将所述主站的身份认证通过结果发送至所述主站。

一种无CA的身份认证方法,包括以下步骤:

接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名后得到的签名;

利用所述安全芯片私钥对接收的所述主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;

当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;

利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密,并将所述第一随机数的加密结果发送至所述主站;

接收所述主站发送的第二随机数的散列值,所述第二随机数的散列值为所述主站利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密得到第二随机数后,根据所述第二随机数确定的散列值;

当所述第一随机数的散列值与所述第二随机数的散列值相同时,判定所述主站身份认证通过,并将所述主站的身份认证通过结果发送至所述主站,所述第一随机数的散列值根据所述第一随机数确定。

一种无CA的身份认证方法,包括以下步骤:

在接收身份认证指令后,将生成的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名发送至安全芯片,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名得到的签名;

接收所述安全芯片发送的第一随机数的加密结果,所述第一随机数的加密结果为当所述主站公钥的第一签名和主站公钥的第二签名相同时,所述安全芯片生成第一随机数后,利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密得到的随机数的加密结果,所述主站公钥的第二签名为所述安全芯片利用所述安全芯片私钥对在身份认证指令后接收的主站公钥进行第二次签名得到的签名;

利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密,得到第二随机数,并将所述第二随机数发送至所述安全芯片;

接收所述安全芯片发送的身份认证通过结果,所述身份认证通过结果为当所述第一随机数与所述第二随机数相同时,所述安全芯片判定所述主站身份认证通过的结果。

一种无CA的身份认证方法,包括以下步骤:

在接收身份认证指令后,将生成的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名发送至安全芯片,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名得到的签名;

接收所述安全芯片发送的第一随机数的加密结果,所述第一随机数的加密结果为当所述主站公钥的第一签名和主站公钥的第二签名相同时,所述安全芯片生成第一随机数后,利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密得到的随机数的加密结果,所述主站公钥的第二签名为所述安全芯片利用所述安全芯片私钥对在身份认证指令后接收的主站公钥进行第二次签名得到的签名;

利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密,得到第二随机数,根据所述第二随机数确定所述随机数的散列值,并将所述第二随机数的散列值发送至所述安全芯片;

接收所述安全芯片发送的身份认证通过结果,所述身份认证通过结果为当所述第一随机数的散列值与所述第二随机数的散列值相同时,所述安全芯片判定所述主站身份认证通过的结果,所述第一随机数的散列值为所述安全芯片根据所述第一随机数确定的散列值。

一种无CA的身份认证系统,包括:

主站公钥及主站公钥签名接收模块,用于接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名后得到的签名;

主站公钥签名模块,用于利用所述安全芯片私钥对接收的所述主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;

随机数生成模块,用于当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;

随机数加密模块,用于利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密;

随机数加密结果发送模块,用于将所述第一随机数的加密结果发送至所述主站;

随机数接收模块,用于接收所述主站发送的第二随机数,所述第二随机数为所述主站利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密得到的随机数;

主站认证模块,用于当所述第一随机数与所述第二随机数相同时,判定所述主站身份认证通过;

主站认证结果发送模块,用于将所述主站的身份认证通过结果发送至所述主站。

一种无CA的身份认证系统,包括:

主站公钥及主站公钥签名接收模块,用于接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名后得到的签名;

主站公钥签名模块,用于利用所述安全芯片私钥对接收的所述主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;

随机数生成模块,用于当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;

随机数加密模块,用于利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密;

随机数加密结果发送模块,用于将所述第一随机数的加密结果发送至所述主站;

随机数散列值接收模块,用于接收所述主站发送的第二随机数的散列值,所述第二随机数的散列值为所述主站利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密得到第二随机数后,根据所述第二随机数确定的散列值;

主站认证模块,用于当所述第一随机数的散列值与所述第二随机数的散列值相同时,判定所述主站身份认证通过,所述第一随机数的散列值根据所述第一随机数确定;

主站认证结果发送模块,用于将所述主站的身份认证通过结果发送至所述主站。

一种无CA的身份认证系统,包括:

主站公钥及主站公钥签名发送模块,用于在接收身份认证指令后,将生成的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名发送至安全芯片,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名得到的签名;

随机数加密结果接收模块,用于接收所述安全芯片发送的第一随机数的加密结果,所述第一随机数的加密结果为当所述主站公钥的第一签名和主站公钥的第二签名相同时,所述安全芯片生成第一随机数后,利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密得到的随机数的加密结果,所述主站公钥的第二签名为所述安全芯片利用所述安全芯片私钥对在身份认证指令后接收的主站公钥进行第二次签名得到的签名;

随机数加密结果解密模块,用于利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密,得到第二随机数;

随机数发送模块,用于将所述第二随机数发送至所述安全芯片;

认证结果接收模块,用于接收所述安全芯片发送的身份认证通过结果,所述身份认证通过结果为当所述第一随机数与所述第二随机数相同时,所述安全芯片判定身份认证通过的结果。

一种无CA的身份认证系统,包括:

主站公钥及主站公钥签名发送模块,用于在接收身份认证指令后,将生成的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名发送至安全芯片,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名得到的签名;

随机数加密结果接收模块,用于接收所述安全芯片发送的第一随机数的加密结果,所述第一随机数的加密结果为当所述主站公钥的第一签名和主站公钥的第二签名相同时,所述安全芯片生成第一随机数后,利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密得到的随机数的加密结果,所述主站公钥的第二签名为所述安全芯片利用所述安全芯片私钥对在身份认证指令后接收的主站公钥进行第二次签名得到的签名;

随机数加密结果解密模块,用于利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密,得到第二随机数,根据所述第二随机数确定所述随机数的散列值;

随机数散列值发送模块,用于将所述第二随机数的散列值发送至所述安全芯片;

认证结果接收模块,用于接收所述安全芯片发送的身份认证通过结果,所述身份认证通过结果为当所述第一随机数的散列值与所述第二随机数的散列值相同时,所述安全芯片判定身份认证通过的结果,所述第一随机数的散列值为所述安全芯片根据所述第一随机数确定的散列值。

与现有技术相比,本发明的有益效果为:本发明无CA的身份认证方法和系统,首先接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名;然后利用安全芯片私钥对接收的主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;利用主站非对称密钥中主站公钥对所述第一随机数进行加密,并将所述第一随机数的加密结果发送至所述主站;接收所述主站发送的第二随机数;当所述第一随机数与所述第二随机数相同时,判定所述主站身份认证通过,并将所述主站的身份认证通过结果发送至所述主站。本发明对主站进行非对称密钥的认证,认证过程中无需在线CA的参与,减少了通信流量,消除了第三方CA的角色,降低了交互的复杂度,更加适用于工业控制等嵌入式应用场景。

附图说明

图1为一个实施例中无CA的身份认证方法流程图一;

图2为一个实施例中无CA的身份认证方法流程图二;

图3为一个实施例中无CA的身份认证方法流程图三;

图4为一个实施例中无CA的身份认证方法流程图四;

图5为基于图2、4所示方法一个具体示例中无CA的身份认证方法中主站公钥签名流程图;

图6为基于图2、4所示方法一个具体示例中无CA的身份认证方法中公钥验证流程图;

图7为基于图2、4所示方法一个具体示例中无CA的身份认证方法中挑战/应答流程图;

图8为一个实施例中无CA的身份认证系统结构示意图一;

图9为一个实施例中无CA的身份认证系统结构示意图二;

图10为一个实施例中无CA的身份认证系统结构示意图三;

图11为一个实施例中无CA的身份认证系统结构示意图四。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。

图1中示出一个实施例中本发明无CA(证书管理机构)的身份认证方法流程图一,在该实施例中,是以安全芯片(TPM,Trusted Platform Module)的处理过程为例进行说明,这里安全芯片就是可信任平台模块,是一个可独立进行密钥生成、加解密的装置,安全芯片安装在终端设备中。

如图1所示,在该实施例中,安全芯片的处理过程可以包括以下步骤:

步骤S101:接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名后得到的签名;

这里,身份认证指令为需要认证后才能进行相应操作的指令,例如电表拉闸指令。主站为后台服务器或机房等。

具体地,预设安全环境指值密钥注入、产品检测等环节,这些环节由主站自身管理,通常在特殊的场所开展工作,如在机房、装有监控安全等级较高的车间等,这些场所通常不联网、工作人员可靠。在安全环境下,可以认为一些安全风险无法产生威胁。

主站非对称密钥、安全芯片非对称密钥通常使用随机数发生器随机生成。

非对称密钥包括公钥和私钥,非对称密钥的公钥和私钥配对使用,公钥可以公开,私钥由密钥持有人保管,公钥加密的数据只有私钥能够解密,私钥加密的数据(称为签名)只有公钥可以解密。

步骤S102:利用所述安全芯片私钥对接收的所述主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;

这里,签名指用私钥对数据进行加密,实际应用中,通常使用私钥对数据的哈希值进行加密,签名的作用是:可以验证数据的授权(私钥签名)和完整性(哈希函数)。

步骤S103:当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;

具体地,主站公钥的第一签名和所述主站公钥的第二签名相同说明数据与签名是一致的,数据是经过授权的,是正确的,是未被篡改的。若不一致,说明数据是伪造的,或经过了篡改。

这里,使用基于硬件的随机数发生器产生随机数。

步骤S104:利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密,并将所述第一随机数的加密结果发送至所述主站;

步骤S105:接收所述主站发送的第二随机数,所述第二随机数为所述主站利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密得到的随机数;

步骤S106:当所述第一随机数与所述第二随机数相同时,判定所述主站身份认证通过,并将所述主站的身份认证通过结果发送至所述主站。

这里,若一致,则认证通过,否则返回失败,私钥代表了持有人,私钥的操作就是持有人意思的表达;而公钥则可以公开,每个人都可以拿到。上述即为如果证明A是私钥的持有人,方法如下:B生成一个随机数,用公钥加密,如果A能够正确解密,告诉B随机数的值,则说明A是私钥的持有人。

从以上描述可知,本发明无CA的身份认证方法,对主站进行非对称密钥的认证,认证过程中无需在线CA的参与,减少了通信流量,消除了第三方CA的角色,降低了交互的复杂度,更加适用于工业控制等嵌入式应用场景。

此外,在一个具体示例中,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,获得在预设安全环境中接收的主站公钥的散列值,利用所述安全芯片私钥对所述主站公钥的散列值进行加密得到的签名。

这里,签名指用私钥对数据进行加密,实际应用中,通常使用私钥对数据的哈希值进行加密,签名的作用是:可以验证数据的授权(私钥签名)和完整性(哈希函数)。

图2中示出一个实施例中本发明无CA的身份认证方法流程图二,在该实施例中,是以安全芯片的处理过程为例进行说明。

如图2所示,在该实施例中,安全芯片的处理过程可以包括以下步骤:

步骤S201:接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名后得到的签名;

具体地,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,获得在预设安全环境中接收的主站公钥的散列值,利用所述安全芯片私钥对所述主站公钥的散列值进行加密得到的签名。

步骤S202:利用所述安全芯片私钥对接收的所述主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;

步骤S203:当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;

步骤S204:利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密,并将所述第一随机数的加密结果发送至所述主站;

步骤S205:接收所述主站发送的第二随机数的散列值,所述第二随机数的散列值为所述主站利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密得到第二随机数后,根据所述第二随机数确定的散列值;

步骤S206:当所述第一随机数的散列值与所述第二随机数的散列值相同时,判定所述主站身份认证通过,并将所述主站的身份认证通过结果发送至所述主站,所述第一随机数的散列值根据所述第一随机数确定。

这里,散列值又称哈希值,哈希函数用于计算数据的“指纹”,数据有微小的改变,其哈希值会有明显不同。因此,这里的一致说明数据与签名是一致的,数据是经过授权的,是正确的,是未被篡改的。若不一致,说明数据是伪造的,或经过了篡改。

从以上描述可知,本发明无CA的身份认证方法,对主站进行非对称密钥的认证,认证过程中无需在线CA的参与,减少了通信流量,消除了第三方CA的角色,降低了交互的复杂度,更加适用于工业控制等嵌入式应用场景。

图3中示出一个实施例中本发明无CA的身份认证方法流程图三,在该实施例中,是以主站的处理过程为例进行说明。

如图3所示,在该实施例中,主站的处理过程可以包括以下步骤:

步骤S301:在接收身份认证指令后,将生成的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名发送至安全芯片,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名得到的签名;

步骤S302:接收所述安全芯片发送的第一随机数的加密结果,所述第一随机数的加密结果为当所述主站公钥的第一签名和主站公钥的第二签名相同时,所述安全芯片生成第一随机数后,利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密得到的随机数的加密结果,所述主站公钥的第二签名为所述安全芯片利用所述安全芯片私钥对在身份认证指令后接收的主站公钥进行第二次签名得到的签名;

步骤S303:利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密,得到第二随机数,并将所述第二随机数发送至所述安全芯片;

步骤S304:接收所述安全芯片发送的身份认证通过结果,所述身份认证通过结果为当所述第一随机数与所述第二随机数相同时,所述安全芯片判定所述主站身份认证通过的结果。

从以上描述可知,本发明无CA的身份认证方法,对主站进行非对称密钥的认证,认证过程中无需在线CA的参与,减少了通信流量,消除了第三方CA的角色,降低了交互的复杂度,更加适用于工业控制等嵌入式应用场景。

此外,在一个具体实施例中,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,获得在预设安全环境中接收的主站公钥的散列值,利用所述安全芯片私钥对所述主站公钥的散列值进行加密得到的签名。

图4中示出一个实施例中本发明无CA的身份认证方法流程图四,在该实施例中,是以主站的处理过程为例进行说明。

如图4所示,在该实施例中,主站的处理过程可以包括以下步骤:

步骤S401:在接收身份认证指令后,将生成的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名发送至安全芯片,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名得到的签名;

这里,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,获得在预设安全环境中接收的主站公钥的散列值,利用所述安全芯片私钥对所述主站公钥的散列值进行加密得到的签名。

步骤S402:接收所述安全芯片发送的第一随机数的加密结果,所述第一随机数的加密结果为当所述主站公钥的第一签名和主站公钥的第二签名相同时,所述安全芯片生成第一随机数后,利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密得到的随机数的加密结果,所述主站公钥的第二签名为所述安全芯片利用所述安全芯片私钥对在身份认证指令后接收的主站公钥进行第二次签名得到的签名;

步骤S403:利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密,得到第二随机数,根据所述第二随机数确定所述随机数的散列值,并将所述第二随机数的散列值发送至所述安全芯片;

步骤S404:接收所述安全芯片发送的身份认证通过结果,所述身份认证通过结果为当所述第一随机数的散列值与所述第二随机数的散列值相同时,所述安全芯片判定所述主站身份认证通过的结果,所述第一随机数的散列值为所述安全芯片根据所述第一随机数确定的散列值。

从以上描述可知,本发明无CA的身份认证方法,对主站进行非对称密钥的认证,认证过程中无需在线CA的参与,减少了通信流量,消除了第三方CA的角色,降低了交互的复杂度,更加适用于工业控制等嵌入式应用场景。

为了更好地理解上述方法,以下详细阐述一个本发明无CA的身份认证方法的应用实例。

结合上述图2、图4中的方案,在本实施例中,是以安全芯片和主站之间的双向交互过程为例进行说明,这种说明并不用以对本发明方案构成限定。

本实施例主要有三个步骤,分别是主站公钥签名、公钥验证和挑战/应答。

主站公钥签名流程如图5所示,TPM(Trusted Platform Module,安全芯片)生成安全芯片非对称密钥,主站生成主站非对称密钥,安全芯片非对称密钥包括安全芯片公钥Ktpmpub和安全芯片私钥Ktpmpri,主站非对称密钥包括主站公钥Kuserpub和主站私钥Kuserpri;

在安全环境中,主站将主站公钥Kuserpub发送至TPM;

这里,安全环境指嵌入式设备生成等环节中涉及到的安全芯片密钥注入等环节,此时可以认为主站的密钥没有被篡改、伪造。

TPM使用安全芯片私钥Ktpmpri对主站公钥Kuserpub进行签名,得到主站公钥Kuserpub的第一签名Ktpmpri(Hash(Kuserpub)),并将该签名发送给主站,主站保存该签名;

公钥验证流程如图6所示,TPM在安装在设备中开始工作后,应用程序会需要进行认证,此时,应用程序即为主站,主站将保存的主站公钥Kuserpub的第一签名Ktpmpri(Hash(Kuserpub))和主站公钥Kuserpub一起发送个TPM;

TPM使用安全芯片私钥Ktpmpri对上一步骤接收的主站公钥Kuserpub进行签名,得到主站公钥Kuserpub的第二签名Ktpmpri’(Hash(Kuserpub));

挑战/应答流程如图7所示,TPM将主站公钥Kuserpub的第一签名Ktpmpri(Hash(Kuserpub))与主站公钥Kuserpub的第二签名Ktpmpri’(Hash(Kuserpub))进行比较,当上述两个签名相同时,生成随机数nonce,否则返回失败;

TPM使用主站公钥Kuserpub对随机数nonce进行加密,得到加密结果Kuserpub(nonce),将该加密结果发送至主站;

主站使用主站私钥Kuserpri对上述加密结果进行解密,得到随机数nonce’,计算nonce’的散列值Hash(nonce’),并将Hash(nonce’)发送给TPM;

TPM计算随机数nonce的散列值Hash(nonce),并与接收到的随机数nonce’的散列值Hash(nonce’)进行比较,若一致,则身份认证通过,否则返回失败。

从以上描述可知,本实施例包括主站公钥签名、公钥验证和挑战/应答三个步骤,主站公钥签名流程是:在安全的环境下,主站将主站公钥发送给TPM,TPM对主站公钥进行第一次签名,并将签名数据发送给主站进行保存;公钥验证流程是:安全芯片在安装在设备中开始工作后,主站将主站公钥和上述第一签名一起发送个TPM,TPM对接收的主站公钥进行第二次签名;挑战/应答流程是:当两次签名相同时,TPM生成随机数nonce,使用主站公钥进行加密,将加密结果发送给主站,主站用主站私钥进行解密,得到随机数nonce’,计算该随机数的散列值,将该散列值发送给TPM,TPM计算nonce的散列值,并与接收到的散列值进行比较,若一致,则身份认证通过。本实施例对主站进行非对称密钥的认证,认证过程中无需在线CA的参与,减少了通信流量,消除了第三方CA的角色,降低了交互的复杂度,更加适用于工业控制等嵌入式应用场景。

图8中示出一个实施例中本发明无CA的身份认证系统结构示意图一,在该实施例中,是以安全芯片这端为例进行说明。

如图8所示,在该实施例中,无CA的身份认证系统可以包括:

主站公钥及主站公钥签名接收模块801,用于接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名后得到的签名;

主站公钥签名模块802,用于利用所述安全芯片私钥对接收的所述主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;

随机数生成模块803,用于当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;

随机数加密模块804,用于利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密;

随机数加密结果发送模块805,用于将所述第一随机数的加密结果发送至所述主站;

随机数接收模块806,用于接收所述主站发送的第二随机数,所述第二随机数为所述主站利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密得到的随机数;

主站认证模块807,用于当所述第一随机数与所述第二随机数相同时,判定所述主站身份认证通过;

主站认证结果发送模块808,用于将所述主站的身份认证通过结果发送至所述主站。

图9中示出一个实施例中本发明无CA的身份认证系统结构示意图二,在该实施例中,是以安全芯片这端为例进行说明。

如图9所示,在该实施例中,无CA的身份认证系统可以包括:

主站公钥及主站公钥签名接收模块901,用于接收主站在接收身份认证指令后发送的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名,所述主站公钥的第一签名为在预设安全环境中接收所述主站发送的所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名后得到的签名;

主站公钥签名模块902,用于利用所述安全芯片私钥对接收的所述主站在接收身份认证指令后发送的主站公钥进行第二次签名,得到主站公钥的第二签名;

随机数生成模块903,用于当所述主站公钥的第一签名和所述主站公钥的第二签名相同时,生成第一随机数;

随机数加密模块904,用于利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密;

随机数加密结果发送模块905,用于将所述第一随机数的加密结果发送至所述主站;

随机数散列值接收模块906,用于接收所述主站发送的第二随机数的散列值,所述第二随机数的散列值为所述主站利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密得到第二随机数后,根据所述第二随机数确定的散列值;

主站认证模块907,用于当所述第一随机数的散列值与所述第二随机数的散列值相同时,判定所述主站身份认证通过,所述第一随机数的散列值根据所述第一随机数确定;

主站认证结果发送模块908,用于将所述主站的身份认证通过结果发送至所述主站。

图10中示出一个实施例中本发明无CA的身份认证系统结构示意图三,在该实施例中,是以主站这端为例进行说明。

如图10所示,在该实施例中,无CA的身份认证系统可以包括:

主站公钥及主站公钥签名发送模块1001,用于在接收身份认证指令后,将生成的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名发送至安全芯片,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名得到的签名;

随机数加密结果接收模块1002,用于接收所述安全芯片发送的第一随机数的加密结果,所述第一随机数的加密结果为当所述主站公钥的第一签名和主站公钥的第二签名相同时,所述安全芯片生成第一随机数后,利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密得到的随机数的加密结果,所述主站公钥的第二签名为所述安全芯片利用所述安全芯片私钥对在身份认证指令后接收的主站公钥进行第二次签名得到的签名;

随机数加密结果解密模块1003,用于利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密,得到第二随机数;

随机数发送模块1004,用于将所述第二随机数发送至所述安全芯片;

认证结果接收模块1005,用于接收所述安全芯片发送的身份认证通过结果,所述身份认证通过结果为当所述第一随机数与所述第二随机数相同时,所述安全芯片判定身份认证通过的结果。

图11中示出一个实施例中本发明无CA的身份认证系统结构示意图四,在该实施例中,是以主站这端为例进行说明。

如图11所示,在该实施例中,无CA的身份认证系统可以包括:

主站公钥及主站公钥签名发送模块1101,用于在接收身份认证指令后,将生成的主站非对称密钥中的主站公钥和预存的主站公钥的第一签名发送至安全芯片,所述主站公钥的第一签名为所述安全芯片在预设安全环境中接收所述主站非对称密钥中主站公钥后,利用生成的安全芯片非对称密钥中的安全芯片私钥对在预设安全环境中接收的主站公钥进行第一次签名得到的签名;

随机数加密结果接收模块1102,用于接收所述安全芯片发送的第一随机数的加密结果,所述第一随机数的加密结果为当所述主站公钥的第一签名和主站公钥的第二签名相同时,所述安全芯片生成第一随机数后,利用所述主站非对称密钥中主站公钥对所述第一随机数进行加密得到的随机数的加密结果,所述主站公钥的第二签名为所述安全芯片利用所述安全芯片私钥对在身份认证指令后接收的主站公钥进行第二次签名得到的签名;

随机数加密结果解密模块1103,用于利用所述主站非对称密钥中的主站私钥对所述第一随机数的加密结果进行解密,得到第二随机数,根据所述第二随机数确定所述随机数的散列值;

随机数散列值发送模块1104,用于将所述第二随机数的散列值发送至所述安全芯片;

认证结果接收模块1105,用于接收所述安全芯片发送的身份认证通过结果,所述身份认证通过结果为当所述第一随机数的散列值与所述第二随机数的散列值相同时,所述安全芯片判定身份认证通过的结果,所述第一随机数的散列值为所述安全芯片根据所述第一随机数确定的散列值。

从以上描述可知,本发明无CA的身份认证系统,对主站进行非对称密钥的认证,认证过程中无需在线CA的参与,减少了通信流量,消除了第三方CA的角色,降低了交互的复杂度,更加适用于工业控制等嵌入式应用场景。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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