一种基于软件密码模块的安全通信方法及系统与流程

文档序号:22084448发布日期:2020-09-01 19:52阅读:171来源:国知局
一种基于软件密码模块的安全通信方法及系统与流程

本发明涉及密码技术领域,具体涉及一种基于软件密码模块的安全通信方法及系统。



背景技术:

随着无线网络技术的飞速发展及智能终端的普及,国内信息化建设快速推进,通过智能终端能够实现安全支付、移动办公、移动执法等业务,然而也造成行业数据和信息的安全隐患,例如政企行业用户在享受移动信息化服务带来便捷、高效工作体验的同时,也需要承担办公信息被窃取、篡改、抵赖、冒充等安全威胁带来的安全风险。

目前,对于安全性有高需求的应用场景通常采用硬件加密的方式来保证信息的安全,例如对于信息安全程度较高的政企行业,通常在办公时会在公司电脑终端上集成有硬件密码模块,来保证信息传输的安全性、机密性等;然而有大量的应用场景不适合使用硬件密码模块,例如,移动终端由于体积限制而无法部署硬件密码模块;互联网信息中心由于产品的快速部署需求而无法全面部署硬件密码模块;而且,由于移动终端设备类型繁多、物理接口类型不尽相同,集成物理硬件密码模块存在一定困难。

因此如何在保证数据信息的安全性的同时,还能够提高密码模块的兼容性、灵活性和可移植性是目前急需解决的问题。



技术实现要素:

本发明针对上述问题,有必要提供一种基于软件密码模块的安全通信方法及系统,其能够在智能终端设置有软件密码模块的基础上,采用实体认证、证书签发、协同签名、密钥协商和加密通信的方法,保证数据信息的安全性,同时软件密码模块能够在多种类型、多种物理接口上进行部署,具有兼容性、灵活性和可移植性,适用于更多的应用场景。

本发明第一方面提出一种基于软件密码模块的安全通信方法,所述安全通信方法包括:初始化过程、密钥协商过程和加密通信过程,所述初始化过程包括实体认证过程和证书签发过程;

实体认证过程:

应用客户端采集设备信息、人员信息和实体认证信息,并发送至空中发证服务器进行实体认证;

所述空中发证服务器根据所述实体认证信息对所述应用客户端进行实体认证,并在实体认证成功后将所述设备信息和所述人员信息导入至协同签名服务器进行录入;

证书签发过程:

所述应用客户端通过软件密码模块随机生成私钥分量i,所述协同签名服务器通过硬件密码模块随机生成私钥分量ii,所述应用客户端根据所述私钥分量i、所述协同签名服务器根据所述私钥分量ii协同运算生成所述应用客户端的公钥;

所述应用客户端通过所述软件密码模块将数字证书请求信息发送至所述空中发证服务器;所述空中发证服务器根据所述数字证书请求信息签发所述应用客户端的数字证书,并返回至所述应用客户端;其中,所述数字证书请求信息包括所述应用客户端的公钥;

密钥协商过程:

所述应用客户端的软件密码模块与网关的密码设备进行密钥协商请求信息交互后,所述应用客户端获得第一密钥协商参数,所述网关获得第二密钥协商参数;

所述应用客户端的软件密码模块对采集的第三密钥协商参数进行加密,以获得所述第三密钥协商参数的密文信息;通过所述软件密码模块和所述协同签名服务器对加密后的第三密钥协商参数进行协同签名,所述应用客户端获得第三密钥协商参数的签名值;接着,所述应用客户端通过所述软件密码模块将所述第三密钥协商参数的密文和签名值发送至所述网关;

所述网关通过所述密码设备对所述第三密钥协商参数的签名值进行验签,对所述第三密钥协商参数的密文信息进行解密,以获得第三密钥协商参数;

所述应用客户端通过所述软件密码模块对所述第一密钥协商参数和所述第三密钥协商参数进行计算获得会话密钥,所述网关通过所述密码设备对所述第二密钥协商参数和第三密钥协商参数进行计算获得会话密钥;

加密通信过程:

所述应用客户端的软件密码模块使用所述会话密钥对通信信息进行加密后,获得通信信息的密文并发送至所述网关;所述网关通过所述密码设备使用所述会话密钥对所述通信信息的密文进行解密后,获得通信信息的明文并发送至所述应用服务端。

进一步的,所述实体认证过程中,所述空中发证服务器根据所述实体认证信息对所述应用客户端进行实体认证时,执行:

所述空中发证服务器通过预先录入的人员信息与所述实体认证信息进行信息比对验证,若一致,则实体认证通过;否则,实体认证失败;

其中,所述人员信息包括身份证信息和手机号信息;所述实体认证信息包括采集的身份证信息、人脸识别信息和短信验证码。

进一步的,所述密钥协商过程中,所述应用客户端的软件密码模块与所述网关的密码设备进行密钥协商请求信息交互后,所述应用客户端获得第一密钥协商参数,所述网关获得第二密钥协商参数时,执行:

所述应用客户端通过所述软件密码模块采集第一随机数后,将所述第一随机数和连接请求信息发送至所述网关;

所述网关接收到所述第一随机数和连接请求信息后,通过所述密码设备采集第二随机数,并将所述第二随机数和网关数字证书发送至所述应用客户端;

所述应用客户端通过所述软件密码模块对所述网关数字证书进行验证后,获得包括有网关的数字证书、第一随机数和第二随机数的第一密钥协商参数,所述网关获得包括有第一随机数和第二随机数的第二密钥协商参数。

进一步的,所述密钥协商过程中,获得所述第三密钥协商参数的密文信息和签名值时,执行:

所述应用客户端的软件密码模块使用所述网关数字证书中的网关公钥对采集的第三密钥协商参数进行加密,以获得所述第三密钥协商参数的密文;

所述应用客户端通过所述软件密码模块的私钥分量i对所述第三密钥协商参数的密文进行签名,获得第一签名信息并发送至所述协同签名服务器;

所述协同签名服务器通过所述硬件密码模块使用其私钥分量ii对所述第一签名信息进行再次签名,获得第二签名信息并发送至所述应用客户端;

所述应用客户端的软件密码模块根据所述第二签名信息计算出所述第三密钥协商参数的签名值。

进一步的,在所述密钥协商过程中,还包括:所述应用客户端将所述应用客户端的数字证书、所述第三密钥协商参数的密文和签名值发送至所述网关进行验证;

所述网关的密码设备对所述应用客户端的数字证书进行验证;在确认验证通过后,所述网关的密码设备使用所述应用客户端的公钥对所述签名值进行验签;若验签通过,则所述网关的密码设备使用所述网关的私钥对所述第三密钥协商参数的密文信息进行解密,以获得第三密钥协商参数。

本发明还提出一种基于软件密码模块的安全通信系统,所述系统包括应用客户端、网关、应用服务端、空中发证服务器和协同签名服务器,所述应用客户端包括软件密码模块,所述协同签名服务器包括硬件密码模块,所述网关包括密码设备;所述应用客户端通过所述网关与所述应用服务端通信连接;所述应用客户端的软件密码模块与所述协同签名服务器通信互联,所述应用客户端与所述空中发证服务器通信连接,所述空中发证服务器与所述协同签名服务器通信连接;

在实体认证过程中:

所述应用客户端,用于采集设备信息、人员信息和实体认证信息后发送至所述空中发证服务器进行实体认证;

所述空中发证服务器,用于对所述实体认证信息进行实体认证,并在实体认证成功后将所述设备信息和所述人员信息导入至所述协同签名服务器进行录入;

所述协同签名服务器,用于进行所述设备信息和所述人员信息的信息录入;

在证书签发过程中:

所述应用客户端,用于通过所述软件密码模块随机生成私钥分量i;还用于应用客户端根据所述私钥分量i、协同签名服务器根据私钥分量ii协同运算生成所述应用客户端的公钥;以及用于通过所述软件密码模块将包括有所述应用客户端的公钥的数字证书请求信息发送至所述空中发证服务器,并获得返回的所述应用客户端的数字证书;

所述协同签名服务器,用于通过所述硬件密码模块随机生成私钥分量ii;

所述空中发证服务器,用于根据所述数字证书请求信息签发所述应用客户端的数字证书,并返回至所述应用客户端;

在密钥协商过程中:

所述应用客户端,用于通过所述软件密码模块与所述网关的所述密码设备进行密钥协商请求信息交互,以获得第一密钥协商参数;以及用于通过所述软件密码模块对采集的第三密钥协商参数进行加密,以获得所述第三密钥协商参数的密文信息;通过所述软件密码模块和所述协同签名服务器对加密后的第三密钥协商参数进行协同签名,以获得第三密钥协商参数的签名值;以及通过所述软件密码模块将所述第三密钥协商参数的密文和签名值发送至所述网关;以及用于通过所述软件密码模块对所述第一密钥协商参数和所述第三密钥协商参数进行计算获得会话密钥;

所述协同签名服务器,用于通过所述硬件密码模块与所述应用客户端的所述软件密码模块对所述第三密钥协商参数的密文进行协同签名;

所述网关,用于通过所述密码设备与所述应用客户端的软件密码模块进行密钥协商请求信息交互,以获得第二密钥协商参数;还用于通过所述密码设备对所述第三密钥协商参数的签名值进行验签后,对所述第三密钥协商参数的密文信息进行解密,以获得第三密钥协商参数;以及用于通过所述密码设备对所述第二密钥协商参数和第三密钥协商参数进行计算获得会话密钥;

在加密通信过程中:

所述应用客户端,用于通过所述软件密码模块使用所述会话密钥对通信信息进行加密后发送至所述网关;

所述网关,用于通过所述密码设备使用所述会话密钥对所述通信信息的密文进行解密后发送至所述应用服务端。

进一步的,所述实体认证过程中,所述空中发证服务器根据所述实体认证信息对所述应用客户端进行实体认证时,执行:所述空中发证服务器通过预先录入的人员信息与所述实体认证信息进行信息比对验证,若一致,则实体认证通过;否则,实体认证失败;

其中,所述人员信息包括身份证信息和手机号信息;所述实体认证信息包括采集的身份证信息、人脸识别信息和短信验证码。

进一步的,在所述密钥协商过程中,所述应用客户端的软件密码模块与所述网关的密码设备进行密钥协商请求信息交互后,所述应用客户端获得第一密钥协商参数,所述网关获得第二密钥协商参数时,执行:

所述应用客户端通过所述软件密码模块采集第一随机数后,将所述第一随机数和连接请求信息发送至所述网关;

所述网关接收到所述第一随机数和连接请求信息后,通过所述密码设备采集第二随机数,并将所述第二随机数和所述网关数字证书发送至所述应用客户端;

所述应用客户端通过所述软件密码模块对所述网关数字证书进行验证后,所述应用客户端获得包括有网关数字证书、第一随机数和第二随机数的第一密钥协商参数,所述网关获得包括有第一随机数和第二随机数的第二密钥协商参数。

进一步的,在所述密钥协商过程中,获得所述第三密钥协商参数的密文信息和签名值时,执行:

所述应用客户端的软件密码模块使用所述网关数字证书中的网关公钥对采集的第三密钥协商参数进行加密,以获得所述第三密钥协商参数的密文;

所述应用客户端通过所述软件密码模块的私钥分量i对所述第三密钥协商参数的密文进行签名后,获得第一签名信息并发送至所述协同签名服务器;

所述协同签名服务器通过所述硬件密码模块使用其私钥分量ii对所述第一签名信息进行再次签名后,获得第二签名信息并发送至所述应用客户端;

所述应用客户端的软件密码模块根据所述第二签名信息计算出所述第三密钥协商参数的签名值。

进一步的,在所述密钥协商过程中,还包括:将所述应用客户端的数字证书、所述第三密钥协商参数的密文和签名值发送至所述网关进行验证;

所述网关的密码设备对所述应用客户端的数字证书进行验证;在确认验证通过后,所述网关的密码设备使用所述应用客户端的公钥对所述签名值进行验签;若验签通过,则所述网关的密码设备使用网关私钥对所述第三密钥协商参数的密文信息进行解密,以获得第三密钥协商参数。

本发明具有突出的实质性特点和显著的进步,具体的说:

(1)本发明提供了一种基于软件密码模块的安全通信方法及系统,通过应用客户端采集设备信息、人员信息和实体认证信息,通过空中发证服务器对实体认证信息进行实体认证,以及通过协同签名服务器进行设备信息和人员信息的录入,实现软件密码模块的初始化,建立使用软件密码模块的用户和应用客户端之间的绑定关系,保证只有实体认证通过的用户才能在后续的工作中正常使用软件密码模块的密码服务功能;

(2)应用客户端通过软件密码模块、协同签名服务器通过硬件密码模块各自生成私钥分量,并协同运算生成应用客户端的公钥,保证私钥不会在应用客户端中完整出现,有效解决应用客户端上软件密码模块的密钥安全问题;另,应用客户端的软件密码模块利用网关公钥对第三密钥协商参数进行加密,并使用私钥分量i对第三密钥协商参数的密文进行第一次签名,接着协同签名服务器的硬件密码模块使用私钥分量ii对第一次签名进行第二次签名,最后由软件密码模块计算生成最终的签名值,实现应用客户端和协同签名服务器之间的协同签名处理,保证第三密钥参数的机密性、真实性;

(3)应用客户端通过软件密码模块与空中发证服务器之间进行信息交互获得应用客户端的数字证书,用于在密钥协商过程中实现网关对应用客户端的验证,再通过应用客户端对网关数字证书的验证,保证应用客户端与网关之间的双向验证,进一步提高应用客户端与应用服务端之间信息传输的安全性;另,应用客户端通过软件密码模块分别与协同签名服务器、网关进行密钥协商信息交互,建立应用客户端和网关之间的安全通道,应用客户端和网关分别获得会话密钥,再通过会话密钥对应用客户端和应用服务端之间传输的通信信息进行加解密处理,保证了通信信息的安全传输;

(4)通过在应用客户端中采用软件密码模块,能够在不同设备类型、不同物理接口类型的终端上方便使用,解决了硬件密码模块难以集成的问题,具有一定的兼容性、灵活性和可移植性,为用户提供不低于硬件密码模块的高安全密码服务功能,适用于更多有安全需求的应用场景;以及通过在应用客户端中设置有软件密码模块、在协同签名服务器中设置有硬件密码模块、在网关中设置有密码设备,从而整体提升了整个系统结构的安全性和信息交互的安全性。

本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1示出本发明的一种基于软件密码模块的安全通信方法流程图;

图2示出本发明的一种基于软件密码模块的安全通信方法中初始化时序图;

图3示出本发明的一种基于软件密码模块的安全通信方法中密钥协商、加密通信时序图;

图4示出本发明的一种基于软件密码模块的安全通信系统结构框图;

图5示出本发明的另一种基于软件密码模块的安全通信系统结构框图。

具体实施方式

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

需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

如图1所示,本发明第一方面提出一种基于软件密码模块的安全通信方法,该安全通信方法应用于应用客户端、网关、应用服务端、空中发证服务器和协同签名服务器,所述应用客户端包括软件密码模块,所述协同签名服务器包括硬件密码模块,所述网关包括密码设备;所述应用客户端分别与所述网关、所述空中发证服务器进行通信连接,所述软件密码模块与所述协同签名服务器通信互联,所述空中发证服务器与所述协同签名服务器进行通信连接,所述网关与所述应用服务端进行通信连接;

所述安全通信方法包括:初始化过程、密钥协商过程和加密通信过程,所述初始化过程包括实体认证过程和证书签发过程;

实体认证过程:

所述应用客户端采集设备信息、人员信息和实体认证信息,并发送至所述空中发证服务器进行实体认证;

所述空中发证服务器根据所述实体认证信息对所述应用客户端进行实体认证,并在实体认证成功后将所述设备信息和所述人员信息导入至所述协同签名服务器进行录入;保证只有实体认证通过的用户才能在后续的工作中正常使用软件密码模块的密码服务功能;

证书签发过程:

所述应用客户端通过所述软件密码模块随机生成私钥分量i,所述协同签名服务器通过硬件密码模块随机生成私钥分量ii,所述应用客户端根据所述私钥分量i、所述协同签名服务器根据所述私钥分量ii协同运算生成所述应用客户端的公钥;

所述应用客户端通过所述软件密码模块将包括有所述应用客户端公钥的数字证书请求信息发送至所述空中发证服务器;所述空中发证服务器根据所述数字证书请求信息签发所述应用客户端的数字证书,并返回至所述应用客户端;

密钥协商过程:

所述应用客户端的软件密码模块与所述网关的密码设备进行密钥协商请求信息交互后,所述应用客户端获得第一密钥协商参数,所述网关获得第二密钥协商参数;其中,所述第一密钥协商参数包括网关数字证书、第一随机数和第二随机数,所述第二密钥协商参数包括第一随机数和第二随机数;所述网关数字证书中包括网关公钥等;

所述应用客户端的软件密码模块对采集的第三密钥协商参数进行加密,以获得所述第三密钥协商参数的密文信息;通过所述软件密码模块和所述协同签名服务器对加密后的第三密钥协商参数进行协同签名,所述应用客户端获得第三密钥协商参数的签名值;接着,所述应用客户端通过所述软件密码模块将所述第三密钥协商参数的密文和签名值发送至所述网关;

所述网关获取应用客户端的公钥,所述密码设备利用应用客户端的公钥对所述第三密钥协商参数的签名值进行验签,对所述第三密钥协商参数的密文信息进行解密,以获得第三密钥协商参数;

所述应用客户端通过所述软件密码模块对所述第一密钥协商参数和所述第三密钥协商参数进行计算获得会话密钥,所述网关通过所述密码设备对所述第二密钥协商参数和第三密钥协商参数进行计算获得会话密钥;其中,第三密钥协商参数为第三随机数;所述应用客户端的软件密码模块提取出第一随机数、第二随机数和第三随机数利用加密算法计算出会话密钥,所述网关的密码设备提取出第一随机数、第二随机数和第三随机数利用相同的加密算法计算出相同的会话密钥;

加密通信过程:

所述应用客户端的软件密码模块使用所述会话密钥对通信信息进行加密后,获得通信信息的密文并发送至所述网关;所述网关的密码设备使用所述会话密钥对所述通信信息的密文进行解密后,获得通信信息的明文并发送至所述应用服务端。

具体的,所述实体认证过程中,所述空中发证服务器根据所述实体认证信息进行实体认证具体包括:所述空中发证服务器通过预先录入的人员信息与所述实体认证信息对所述应用客户端进行信息比对验证,若一致,则实体认证通过;否则,实体认证失败;其中,所述人员信息包括身份证信息和手机号信息;所述实体认证信息包括采集的身份证信息、人脸识别信息和短信验证码。

本发明通过应用客户端采集设备信息、人员信息和实体认证信息,通过空中发证服务器对实体认证信息进行实体认证,以及通过协同签名服务器进行设备信息和人员信息的录入,实现软件密码模块的初始化,建立使用软件密码模块的用户和应用客户端之间的绑定关系,保证只有实体认证通过的用户才能在后续的工作中正常使用软件密码模块的密码服务功能。

在实际的应用中,应用客户端可通过nfc方式采集用户本人的身份证信息或者进行人脸识别采集用户的人脸图像;空中发证服务器中预先录入的人员信息包括身份证信息,身份证信息由身份证号码和用户人脸图像组成;空中发证服务器通过人员信息可对采集的实体认证信息进行比对验证;在其他实施例中,录入的人员信息还可以是其他生物特征信息,例如指纹信息;在应用客户端上采集用户的指纹信息与录入的指纹信息进行比对验证;还可以通过输入用户手机号,读取短信验证码的方式进行验证。当然,也可以根据需求采用多种不同因素结合的验证方式进行验证。

具体的,所述应用客户端的软件密码模块与所述网关的密码设备进行密钥协商请求信息交互后,所述应用客户端获得第一密钥协商参数,所述网关获得第二密钥协商参数时,执行:所述应用客户端通过所述软件密码模块采集第一随机数后,将所述第一随机数和连接请求信息发送至所述网关;所述网关接收到所述第一随机数和连接请求信息后,通过所述密码设备采集第二随机数,并将所述第二随机数和所述网关的数字证书发送至所述应用客户端;所述应用客户端通过所述软件密码模块对所述网关的数字证书进行验证后,所述应用客户端获得包括有网关数字证书、第一随机数和第二随机数的第一密钥协商参数,所述网关获得包括有第一随机数和第二随机数的第二密钥协商参数。

具体的,在所述密钥协商过程中,获得所述第三密钥协商参数的密文信息和签名值时,执行:所述应用客户端的软件密码模块使用所述网关数字证书中的网关公钥对采集的第三密钥协商参数进行加密,以获得所述第三密钥协商参数的密文;所述应用客户端通过所述软件密码模块使用其私钥分量i对所述第三密钥协商参数的密文进行签名,获得第一签名信息并发送至所述协同签名服务器;所述协同签名服务器通过所述硬件密码模块使用其私钥分量ii对所述第一签名信息进行再次签名,获得第二签名信息并发送至所述应用客户端;所述应用客户端的软件密码模块根据所述第二签名信息计算出所述第三密钥协商参数的签名值;所述应用客户端通过所述软件密码模块将所述第三密钥协商参数的密文和签名值发送至所述网关。

可以理解,应用客户端通过软件密码模块、协同签名服务器通过硬件密码模块各自生成私钥分量,应用客户端与协同签名服务器协同运算生成应用客户端的公钥,保证私钥不会在应用客户端中完整出现,有效解决应用客户端上软件密码模块的密钥安全问题;另,应用客户端的软件密码模块利用网关公钥对第三密钥协商参数进行加密,并使用私钥分量i对第三密钥协商参数的密文进行第一次签名,接着协同签名服务器的硬件密码模块使用私钥分量ii对第一次签名进行第二次签名,最后由软件密码模块计算生成最终的签名值,实现应用客户端和协同签名服务器之间的协同签名处理,保证第三密钥参数的机密性、真实性。

具体的,在所述密钥协商过程中,还包括:所述应用客户端将所述应用客户端的数字证书、所述第三密钥协商参数的密文和签名值发送至所述网关进行验证;所述网关的密码设备对所述应用客户端的数字证书进行验证;在确认验证通过后,所述网关的密码设备使用所述应用客户端的公钥对所述签名值进行验签;若验签通过,则所述网关的密码设备使用网关私钥对所述第三密钥协商参数的密文信息进行解密,以获得第三密钥协商参数。

需要说明的是,第三密钥协商参数在实际中是从软件密码模块采集的另一随机数;应用客户端和网关分别采用相同的密钥协商算法对第一随机数、第二随机数和第三随机数进行计算后获得相同的会话密钥。

在实际的应用中,软件密码模块是以软件形态运行在用户的客户端上,其核心主体是sdk,在协同签名服务器的配合下向用户提供密码服务;软件密码模块配备有sm2、sm3、sm4密码算法,提供随机数生成、sm3摘要、sm2签名\验签、sm2加密\解密、密钥管理等安全功能;软件密码模块客户端sdk支持android、windows、linux、ios、单片机等系统平台以及提供初始化、文件管理、密码服务等api接口;

如图2所示,在具体的实施例中,安全通信方法中的初始化过程具体可以包括以下过程:

空中发证服务器预先录入人员信息;

应用客户端采集设备信息、人员信息和实体认证信息后发送至空中发证服务器;

空中发证服务器对实体认证信息进行实体认证,在实体认证成功后,将设备信息和人员信息导入至协同签名服务器;

协同签名服务器录入设备信息和人员信息后,通过空中发证服务器将实体认证成功信息返回至应用客户端;

应用客户端通过软件密码模块随机生成私钥分量i后,向协同签名服务器发送协同产生密钥对请求信息;

协同签名服务器接收到所述协同产生密钥对请求信息后,通过硬件密码模块随机生成私钥分量ii;

应用客户端根据私钥分量1、协同签名服务器根据私钥分量ii协同运算生成应用客户端的公钥;

应用客户端通过软件密码模块将包括有应用客户端的公钥的数字证书请求信息发送至空中发证服务器;

空中发证服务器根据数字证书请求信息签发应用客户端的数字证书,并将应用客户端的数字证书返回至应用客户端。

如图3所示,在具体的实施例中,安全通信方法中的密钥协商过程和加密通信过程具体可以包括以下过程:

应用客户端通过软件密码模块采集第一随机数后,将第一随机数和连接请求信息发送至网关;

网关接收到第一随机数和连接请求信息后,通过密码设备采集第二随机数,并将第二随机数和网关数字证书发送至应用客户端;

应用客户端通过软件密码模块对网关数字证书进行验证;

验证通过后,应用客户端通过软件密码模块采集第三随机数,并使用网关数字证书中的网关公钥对第三随机数进行加密后,获得第三随机数的密文;

应用客户端通过软件密码模块的私钥分量i对第三随机数的密文进行签名后获得第一签名信息,并发送至协同签名服务器;

协同签名服务器通过硬件密码模块使用私钥分量ii对第一签名信息进行再次签名后获得第二签名信息,并返回至应用客户端;

应用客户端通过所述软件密码模块对第二签名信息计算获得最终签名值;

应用客户端通过软件密码模块将应用客户端的数字证书、第三随机数的密文和最终签名值发送至网关;

网关通过密码设备对应用客户端的数字证书进行验证后,使用应用客户端的公钥对最终签名值进行验签,若验签通过,再通过密码设备使用网关私钥对第三随机数的密文信息进行解密后,获得第三随机数明文;

应用客户端通过软件密码模块、网关通过密码设备分别采用相同的加密算法对第一随机数、第二随机数和第三随机数进行计算获得会话密钥;

网关的密码设备使用会话密钥加密握手消息并发送至应用客户端;

应用客户端接收握手消息密文,并通过软件密码模块使用会话密钥解密验证握手消息,完成会话密钥协商;

应用客户端的软件密码模块使用会话密钥加密通信信息后,将通信消息密文发送至网关;网关的密码设备使用会话密钥解密获得通信信息明文后,将通信信息明文发送至应用服务端;

应用服务端执行相关通信信息后,将执行结果信息发送至网关,网关的密码设备使用会话密钥加密执行结果信息后再发送至应用客户端,应用客户端通过软件密码模块使用会话密钥解密获得执行结果信息。

如图4所示,本发明还提出一种基于软件密码模块的安全通信系统,所述系统包括应用客户端、网关、应用服务端、空中发证服务器和协同签名服务器,所述应用客户端包括软件密码模块,所述协同签名服务器包括硬件密码模块,所述网关包括密码设备;所述应用客户端通过所述网关与所述应用服务端通信连接;所述应用客户端的软件密码模块与所述协同签名服务器通信互联,所述应用客户端与所述空中发证服务器通信连接,所述空中发证服务器与所述协同签名服务器通信连接;

在实体认证过程中:

所述应用客户端,用于采集设备信息、人员信息和实体认证信息后发送至所述空中发证服务器进行实体认证;

所述空中发证服务器,用于对所述实体认证信息进行实体认证,并在实体认证成功后将所述设备信息和所述人员信息导入至所述协同签名服务器进行录入;

所述协同签名服务器,用于进行所述设备信息和所述人员信息的信息录入;

在证书签发过程中:

所述应用客户端,用于通过所述软件密码模块随机生成私钥分量i;还用于应用客户端根据所述私钥分量i、协同签名服务器根据所述私钥分量ii协同运算生成所述应用客户端的公钥;以及用于通过所述软件密码模块将包括有所述应用客户端的公钥的数字证书请求信息发送至所述空中发证服务器,并获得返回的所述应用客户端的数字证书;

所述协同签名服务器,用于通过所述硬件密码模块随机生成私钥分量ii;

所述空中发证服务器,用于根据所述数字证书请求信息签发所述应用客户端的数字证书,并返回至所述应用客户端;

在密钥协商过程中:

所述应用客户端,用于通过所述软件密码模块与所述网关的所述密码设备进行密钥协商请求信息交互,以获得第一密钥协商参数;以及用于通过所述软件密码模块对采集的第三密钥协商参数进行加密,以获得所述第三密钥协商参数的密文信息;通过所述软件密码模块和所述协同签名服务器对加密后的第三密钥协商参数进行协同签名,以获得第三密钥协商参数的签名值;以及通过所述软件密码模块将所述第三密钥协商参数的密文和签名值发送至所述网关;以及用于通过所述软件密码模块对所述第一密钥协商参数和所述第三密钥协商参数进行计算获得会话密钥;其中,所述第一密钥协商参数包括网关数字证书、第一随机数和第二随机数,所述网关数字证书中包括网关公钥等;

所述协同签名服务器,用于通过所述硬件密码模块与所述应用客户端的所述软件密码模块对所述第三密钥协商参数的密文进行协同签名;

所述网关,用于通过所述密码设备与所述应用客户端的软件密码模块进行密钥协商请求信息交互,以获得第二密钥协商参数;还用于获取应用客户端的公钥,所述密码设备利用应用客户端的公钥对所述第三密钥协商参数的签名值进行验签后,对所述第三密钥协商参数的密文信息进行解密,以获得第三密钥协商参数;以及用于通过所述密码设备对所述第二密钥协商参数和第三密钥协商参数进行计算获得会话密钥;其中,所述第二密钥协商参数包括第一随机数和第二随机数;

在加密通信过程中:

所述应用客户端,用于通过所述软件密码模块使用所述会话密钥对通信信息进行加密后发送至所述网关;

所述网关,用于通过所述密码设备使用所述会话密钥对所述通信信息的密文进行解密后发送至所述应用服务端。

如图5所示,可以理解的是,在实体认证过程中,还可以设置有与协同签名服务器通信连接的管理平台,管理平台可通过usb接口连接有usbkey,该usbkey中内置有验证管理员身份的安全模块,通过管理平台可进行人员信息、设备信息的录入、软件密码模块停用注销等功能,建立了应用客户端用户与软件密码模块之间的关系,保证只有实体认证通过且进行注册录入的用户才能在后续的工作中正常使用密码管理模块提供的密码服务功能;此外,在协同签名服务器录入人员信息和设备信息后,还需要通过空中发证服务器向应用客户端返回实体认证成功的消息;空中发证服务器在实际应用中还需要连接有证书服务器,用于配合空中发证服务器进行数字证书的签发。

具体的,所述实体认证过程中,所述空中发证服务器跟所述实体认证信息对所述应用客户端进行实体认证具体包括:所述空中发证服务器通过预先录入的人员信息与所述实体认证信息进行信息比对验证,若一致,则实体认证通过;否则,实体认证失败;其中,所述人员信息包括身份证信息和手机号信息;所述实体认证信息包括采集的身份证信息、人脸识别信息和短信验证码。

具体的,在所述密钥协商过程中,所述应用客户端的软件密码模块与所述网关的密码设备进行密钥协商请求信息交互后,所述应用客户端获得第一密钥协商参数,所述网关获得第二密钥协商参数时,执行:

所述应用客户端通过所述软件密码模块采集第一随机数后,将所述第一随机数和连接请求信息发送至所述网关;

所述网关接收到所述第一随机数和连接请求信息后,通过所述密码设备采集第二随机数,并将所述第二随机数和所述网关数字证书发送至所述应用客户端;

所述应用客户端通过所述软件密码模块对所述网关数字证书进行验证后,所述应用客户端获得包括有网关数字证书、第一随机数和第二随机数的第一密钥协商参数,所述网关获得包括有第一随机数和第二随机数的第二密钥协商参数。其中,所述网关数字证书包括网关公钥等。

具体的,在所述密钥协商过程中,在所述密钥协商过程中,获得所述第三密钥协商参数的密文信息和签名值时,执行:

所述应用客户端的软件密码模块使用所述网关数字证书中的网关公钥对采集的第三密钥协商参数进行加密后,以获得所述第三密钥协商参数的密文;

所述应用客户端通过所述软件密码模块的私钥分量i对所述第三密钥协商参数的密文进行签名后,获得第一签名信息并发送至所述协同签名服务器;

所述协同签名服务器接收第一签名信息,并通过所述硬件密码模块使用其私钥分量ii对所述第一签名信息进行再次签名后,获得第二签名信息并发送至所述应用客户端;

所述应用客户端的软件密码模块根据所述第二签名信息计算出所述第三密钥协商参数的签名值;

所述应用客户端通过所述软件密码模块将所述第三密钥协商参数的密文和签名值发送至所述网关。

具体的,在所述密钥协商过程中,还包括:将所述应用客户端的数字证书、所述第三密钥协商参数的密文和签名值发送至所述网关进行验证;

所述网关的密码设备对所述应用客户端的数字证书进行验证;在确认验证通过后,所述网关的密码设备使用所述应用客户端的公钥对所述签名值进行验签;若验签通过,则所述网关的密码设备使用网关私钥对所述第三密钥协商参数的密文信息进行解密,以获得第三密钥协商参数。

可以理解,在获得所述第三密钥协商参数的密文信息和签名值之后,在一种实施例中,所述应用客户端可以通过所述软件密码模块将所述第三密钥协商参数的密文和签名值发送至所述网关,进行签名验签和密文解密。在其他实施例中,所述应用客户端也可以通过所述软件密码模块,将所述应用客户端的数字证书、所述第三密钥协商参数的密文和签名值发送至所述网关进行验证;也就是说,在进行签名验签和密文解密之前,先验证所述应用客户端的数字证书,确认应用客户端的数字证书验证通过之后,所述网关才能进行签名验签和密文解密,进一步提高了密钥协商过程的安全性。

应用客户端通过软件密码模块与空中发证服务器之间进行信息交互获得应用客户端的数字证书,用于在密钥协商过程中实现网关对应用客户端的验证,再通过应用客户端对网关数字证书的验证,保证应用客户端与网关之间的双向验证,保证应用客户端与网关的可靠性,进一步提高应用客户端与应用服务端之间信息传输的安全性;以及应用客户端通过软件密码模块、协同签名服务器与网关进行密钥协商,建立应用客户端和网关之间的安全通道,应用客户端和网关分别获得会话密钥,再通过会话密钥对应用客户端和应用服务端之间传输的通信信息进行加解密处理,保证了通信信息的安全传输;

通过在应用客户端中采用软件密码模块,能够在不同设备类型、不同物理接口类型的终端上方便使用,解决了硬件密码模块难以集成的问题,具有一定的兼容性、灵活性和可移植性,为用户提供不低于硬件密码模块的高安全密码服务功能,适用于更多有安全需求的应用场景;以及通过在应用客户端中设置有软件密码模块、在协同签名服务器中设置有硬件密码模块、在网关中设置有密码设备,从而整体提升了整个系统结构的安全性和信息交互的安全性。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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