CN106790049A - 基于混合密码套件中间件的数据安全传输方法与装置 - Google Patents
基于混合密码套件中间件的数据安全传输方法与装置 Download PDFInfo
- Publication number
- CN106790049A CN106790049A CN201611177052.1A CN201611177052A CN106790049A CN 106790049 A CN106790049 A CN 106790049A CN 201611177052 A CN201611177052 A CN 201611177052A CN 106790049 A CN106790049 A CN 106790049A
- Authority
- CN
- China
- Prior art keywords
- middleware
- client
- algorithm
- key
- cipher
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/045—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于混合密码套件中间件的数据安全传输方法,用于客户端从服务端安全获得需要的数据。本发明提出在中间件与客户端进行安全数据传输时采用混合密码套件,此混合密码套件包括国家商用非对称密码算法,摘要算法和国外标准对称密码算法。中间件与客户端进行安全数据传输的步骤包括:首先,中间件与客户端之间在建立安全连接的过程中,采用混合密码套件生成对称密钥之后,中间件与客户端通过比较双方的摘要值来建立安全连接;最后,在双方建立安全连接的基础上,中间件将客户端需要的数据进行加密得到加密数据,并将此加密数据发送给客户端,客户端采用协商的密钥解密加密数据得到需要的数据。
Description
技术领域
本发明涉及应用服务器中间件领域和信息安全领域,特别是涉及基于混合密码套件中间件的数据安全传输方法与装置。
背景技术
当今,客户端可以根据需要从服务端获得数据。为了提高数据在客户端与服务端间传输的安全性,数据可以通过中间件(应用服务器中间件)在客户端与服务端间安全传输。
中间件是位于应用软件之下,网络、操作系统、数据库之上的基础软件平台,为应用提供名字、事务、安全、消息、数据访问等服务并为应用提供开发、部署、运行及管理支撑环境,数据在客户端与服务端之间传输,中间件起到一个保证数据安全传输的中转站作用,客户端通过中间件从服务端获取数据的过程为:
首先,客户端与中间件建立安全连接,通过建立安全连接,在客户端与中间件端生成用于客户端与中间件对数据进行加密解密的密钥,以确保数据安全传输;然后,中间件根据客户端的请求数据从服务端获取数据,并采用密钥对此数据进行加密得到加密数据并发送给客户端;最后,客户端通过解密中间件发送的加密数据获得需要的数据。
数据在客户端与服务端之间传输的安全性依赖于客户端与中间件建立安全连接时所用的密码套件,此密码套件包括密钥交换算法、摘要算法和对称密码算法。目前,客户端与中间件建立安全连接所使用的密码套件全部采用国外标准密码算法,国外标准密码算法的密钥长度决定国外标准密码算法的安全强度,由于国外标准的密码算法的密钥长度受出口限制,导致国外标准密码算法安全强度不可控。除此之外,部分国外标准密码算法留有安全后门,导致数据传输安全性不可控。
为了实现数据在客户端与服务端之间安全传输,需要提供一种密码套件,使用此密码套件客户端与中间件建立安全连接后可以保证数据在客户端与服务端之间安全传输。
发明内容
有鉴于此,本发明的主要目的是基于混合密码套件提供一种生成密钥的方法、建立安全连接的方法和传输数据的方法,其中的混合密码套件中的密钥交换算法采用国家商用非对称密码算法,对称密码算法采用国外标准密码算法,此混合密码套件中的算法组合可以使得数据在客户端与中间件之间安全传输。
为此,本发明解决上述问题的技术方案是:提供一种基于混合密码套件中间件的安全传输数据的方法与装置,应用于中间件与客户端之间安全传输数据,包括步骤:
一种生成密钥的方法,所述生成密钥的方法应用于与客户端交互的中间件,所述中间件与所述客户端都集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的密钥交换算法采用国家商用非对称密码算法,该方法包括:
所述中间件与所述客户端协商使用所述混合密码套件中的国家商用非对称密码算法作为解密加密预主密钥的算法,所述加密预主密钥由所述客户端采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到,所述预主密钥由所述客户端生成;
所述中间件采用所述国家商用非对称密码算法,并使用私钥解密所述加密预主密钥得到所述预主密钥;
所述中间件采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述中间件与所述客户端约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
所述中间件采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述中间件与所述客户端约定的算法;
所述中间件采用分解算法将所述密钥分组分解得到对称密钥,所述分解算法是所述中间件与所述客户端约定的算法。
优选的,所述中间件与所述客户端协商使用所述混合密码套件中的国家商用非对称密码算法作为解密加密预主密钥的算法,具体包括:
所述中间件接收所述客户端发送的密码套件列表,所述密码套件列表包括所述含有国家商用密码算法和国外标准密码算法的混合密码套件和其他密码套件;
所述中间件根据所述密码套件列表选定所述含有国家商用密码算法和国外标准密码算法的混合密码套件作为生成密钥的密码套件;
所述中间件使用所述混合密码套件中的国家商用非对称密码算法,作为解密所述加密预主密钥的算法。
本发明还提供一种生成对称密钥的装置,所述装置集成在与客户端连接的中间件上,该装置包括:
协商解密加密预主密钥算法单元,用于与所述客户端协商使用所述混合套件中的国家商用非对称密码算法作为解密加密预主密钥的算法,所述加密预主密钥由所述客户端采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到,所述预主密钥由所述客户端生成;
获取预主密钥单元,用于采用所述国家商用非对称密码算法,并使用私钥解密所述加密预主密钥得到所述预主密钥;
生成主密钥单元,用于采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述中间件与所述客户端约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
获取密钥分组单元,用于采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述中间件与所述客户端约定的算法;
获取对称密钥单元,用于采用分解算法将所述主密钥分解得到对称密钥,所述分解算法是所述中间件与所述客户端约定的算法。
优选的,所述协商解密加密预主密钥算法单元,具体包括:
获取密码套件列表模块,用于接收所述客户端发送的密码套件列表,所述密码套件列表包括所述含有国家商用密码算法和国外标准密码算法的混合密码套件和其他密码套件;
获取密码套件模块,用于根据所述密码套件列表选定所述含有国家商用密码算法和国外标准密码算法的混合密码套件作为生成密钥的密码套件;
获取解密加密预主密钥算法模块,用于使用所述混合密码套件中的国家商用非对称密码算法,作为解密所述加密预主密钥的算法。
一种生成密钥的方法,所述生成密钥的方法应用于与中间件交互的客户端,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的密钥交换算法采用国家商用非对称密码算法,该方法包括:
所述客户端与所述中间件协商使用所述国家商用非对称密码算法作为生成加密预主密钥的算法;
所述客户端采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到所述加密预主密钥,所述预主密钥由所述客户端生成,以便所述中间件采用私钥解密所述加密预主密钥得到所述预主密钥;
所述客户端采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述客户端与所述中间件约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
所述客户端采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述客户端与所述中间件约定的算法;
所述客户端采用分解算法将所述密钥分组分解得到对称密钥,所述分解算法是所述客户端与所述中间件约定的算法。
本发明还提供一种生成对称密钥的装置,该装置集成在与中间件相连的客户端上,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的密钥交换算法采用国家商用非对称密码算法,该装置包括:
协商生成加密预主密钥算法单元,用于与所述中间件协商使用所述国家商用非对称密码算法作为生成加密预主密钥的算法;
生成加密预主密钥单元,用于采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到所述加密预主密钥,所述预主密钥由所述客户端生成,以便所述中间件采用私钥解密所述加密预主密钥得到所述预主密钥;
生成主密钥单元,用于采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述客户端与所述中间件约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
获取密钥分组单元,用于采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述客户端与所述中间件约定的算法;
获取对称密钥单元,用于采用分解算法将所述主密钥分解得到对称密钥,所述分解算法是所述客户端与所述中间件约定的算法。
一种建立安全连接的方法,所述建立安全连接的方法应用于与客户端交互的中间件,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括国家商用非对称密码算法、摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,该方法包括:
所述中间件接收所述客户端发送的加密摘要值,所述加密摘要值由所述客户端采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥由中间件生成对称密钥的方法生成,所述第一摘要值由所述客户端采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到;
所述中间件采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥由中间件生成对称密钥的方法生成;
所述中间件比较所述解密摘要值与第二摘要值,所述第二摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到;
若解密摘要值与第二摘要值相同,并且所述中间件没有收到所述客户端发出的安全连接建立失败的警报,则与客户端的安全连接建立成功。
本发明还提供一种建立安全连接的装置,所述装置集成在与客户端连接的中间件上,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括国家商用非对称密码算法、摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,该装置包括:
接收加密摘要值单元,用于接收所述客户端发送的加密摘要值,所述加密摘要值由所述客户端采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥由客户端生成对称密钥的装置生成,所述第一摘要值由所述客户端采用所述摘要算法计算所发送与接收的握手消息的摘要值得到;
获取解密摘要值单元,用于采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥由中间件生成对称密钥的装置生成;
比较单元,用于比较所述解密摘要值与第二摘要值,所述第二摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到,若相同,并且所述中间件没有收到所述客户端发出的安全连接建立失败的警报,则与客户端的安全连接建立成功。
一种建立安全连接的方法,所述建立安全连接应用于与中间件交互的客户端,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括国家商用非对称密码算法、摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,该方法包括:
所述客户端接收加密摘要值,所述加密摘要值由所述中间件采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥采用中间件生成对称密钥的方法生成,所述第一摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到;
所述客户端采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥采用客户端生成对称密钥的方法生成;
所述客户端比较所述解密摘要值与第二摘要值,所述第二摘要值由所述客户端采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到;
若所述解密摘要值与所述第二摘要值相同,并且所述客户端没有收到所述中间件发出的安全连接建立失败的警报,则与中间件的安全连接建立成功。
本发明还提供一种建立安全连接的装置,所述装置集成在与中间件连接的客户端上,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括国家商用非对称密码算法、摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,该装置包括:
接收加密摘要值单元,用于接收加密摘要值,所述加密摘要值由所述中间件采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥采用中间件生成对称密钥的装置生成,所述第一摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到;
获取解密摘要值单元,用于采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥采用客户端生成对称密钥的装置生成;
比较单元,用于比较所述解密摘要值与第二摘要值,所述第二摘要值由所述客户端采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到,若相同,并且所述客户端没有收到所述中间件发出的安全连接建立失败的警报,则与中间件的安全连接建立成功。
一种安全传输数据的方法,所述安全传输数据的方法应用于与客户端交互的中间件,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的对称密码算法采用国外标准对称密码算法,该方法包括:
所述中间件与所述客户端建立安全连接,所述建立安全连接的方法采用中间件与客户端建立安全连接的方法;
所述中间件采用对称密钥解密所述客户端发送的加密数据请求信息,得到数据请求信息;
所述中间件向所述客户端发送加密的响应信息,所述加密的响应信息由所述中间件采用所述国外标准对称密码算法,并使用对称密钥对响应信息加密得到,所述响应信息由所述中间件从服务端获取。
本发明还提供一种安全传输数据的装置,所述装置集成在与客户端连接的中间件上,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的对称密码算法采用国外标准对称密码算法,该装置包括:
建立安全连接单元,用于与所述客户端建立安全连接,所述建立与所述客户端的安全连接的方法采用中间件与客户端建立安全连接的装置建立;
获取数据请求单元,用于采用对称密钥解密所述客户端发送的加密数据请求信息,得到数据请求信息;
发送加密数据单元,用于向所述客户端发送加密的响应信息,所述加密的响应信息由所述中间件采用所述国外标准对称密码算法,并使用对称密钥对响应信息加密得到,所述响应信息由所述中间件从服务端获取。
一种安全传输数据的方法,所述安全传输数据的方法应用于与中间件交互的客户端,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的对称密码算法采用国外标准对称密码算法,该方法包括:
所述客户端与所述中间件建立安全连接,所述建立安全连接的方法采用客户端与中间件建立安全连接的方法;
所述客户端采用对称密钥解密所述中间件发送的加密的响应信息来获取响应信息,所述响应信息由所述中间件从服务端获取与所述客户端发送的请求数据信息相对应的响应信息。
本发明还提供一种安全传输数据的装置,所述装置集成在与中间件连接的客户端,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的对称密码算法采用国外标准对称密码算法,该装置包括:
建立安全连接单元,用于与所述中间件建立安全连接,所述建立与所述中间件的安全连接的方法采用客户端与中间件建立安全连接的装置建立;
获取数据单元,用于采用对称密钥解密所述中间件发送的加密的响应信息来获取响应信息,所述响应信息由所述中间件从服务端获取与所述客户端发送的请求数据信息相对应的响应信息。
与现有技术相比,本发明具有以下有益效果:
本发明在客户端与中间件建立安全连接与传输数据的过程中使用混合密码套件,此混合密码套件包括:密钥交换算法、摘要算法和对称密码算法。其中,密钥交换算法采用国家商用非对称密码算法,对称密码算法采用国外标准对称密码算法。密钥交换算法采用国家商用非对称密码算法,使得在中间件与客户端生成用于加密和解密的密钥长度不受出口限制,并且避免了国外非对称密码算法留有安全后门的缺点。此外,国外标准对称密码算法对数据的加密性能优于国内对称密码算法对数据加密的性能,因此,本发明采用国家商用非对称密码算法与国外标准对称密码算法的混合算法,不仅克服了现有安全技术中密钥交换算法采用国外通用密码算法导致的密钥长度受出口限制以及留有后门,导致的安全强度与安全性不可控的缺点,而且混合密码套件中的混合算法可以保证数据传输的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明中中间件所采用的SG-APS结构示意图;
图2是本发明中一种中间件与客户端采用混合密码套件生成对称密钥方法实施例流程图;
图3是本发明中中间件与客户端生成主密钥、计算密钥分组和得到对称密钥的过程示意图;
图4是本发明中中间件建立与客户端的安全连接的方法实施例流程图;
图5是本发明中客户端建立与中间件的安全连接的方法实施例流程图;
图6是本发明中间件与客户端之间安全传输数据的方法实施例流程图;
图7是本发明中一种中间件与客户端采用混合密码套件生成对称密钥装置实施例的结构示意图;
图8是本发明中一种客户端与中间件采用混合密码套件生成对称密钥装置实施例的结构示意图;
图9是本发明中中间件建立与客户端的安全连接的装置实施例的结构示意图;
图10是本发明中客户端建立与中间件的安全连接的装置实施例的结构示意图;
图11是本发明中中间件与客户端之间安全传输数据的装置实施例的结构示意图;
图12是本发明中客户端与中间件的安全传输数据的装置实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种应用于中间件与客户端间建立安全连接与数据传输的混合密码套件,此混合密码套件包括国家商用非对称密码算法、摘要算法与国外标准对称密码算法,依据安全套接字层(SSL/TLS)握手协议的规定,中间件与客户端协商使用此密码套件,生成用于加密解密传输数据的对称密钥,双方通过协商加密套件和生成对称密钥来建立安全连接。客户端与中间件建立安全连接之后,采用国外标准对称密码算法,并使用对称密钥对数据加密与解密,从而使数据在客户端与服务端之间进行安全传输,在本发明的实施例中的中间件指SG-APS,结构如图1所示,国家商用非对称密码算法采用SM2算法,摘要算法可以采用SM3算法。
在图1中,中间件包括Web容器与“开源安全套接字层(Open Secure SocketLayer,OpenSSL)”两部分。在Web容器中嵌入有专门处理Web请求与提供(Hypertexttransfer protocol,Http)和(Hypertext Transfer Protocol over Secure SocketLayer,Https)服务的模块;“OpenSSL”安全模块是用来保证通信安全的模块,在“OpenSSL”安全模块内集成了包括混合密码套件与其他非混合密码套件的套件列表。
中间件支持基于抽象输入/输出接口(I/O abstraction,BIO)和运行时库(ApachePortable Runtime,APR)的两种套接字(Socket)通信模式,其中,基于BIO的Socket通信模式,通过JSSE技术实现SSL功能;基于APR的Socket通信模式,通过OpenSSL实现SSL功能。当配置文件选择APR通道时,就会调用OpenSSL安全模块,进而使用混合密码套件。
中间件中的Web容器通过本地接口(native接口)调用APR和OpenSSL安全模块,APR和OpenSSL各司其职,APR可以大幅度提高通道的速度,OpenSSL安全模块保证通信的安全。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
实施例1
为了使技术领域的人员对中间件与客户端使用混合密码套件进行安全传输数据有更好的了解,先详细介绍本发明实施例中中间件与客户端按照SSL/TLS握手协议生成对称密钥的过程。
请参阅图2,是本发明实施例中中间件与客户端采用混合密码套件生成对称密钥的流程图,具体步骤可以包括:
步骤S201:所述中间件与所述客户端协商使用所述混合密码套件中的国家商用非对称密码算法作为所述中间件解密加密预主密钥的算法与所述客户端生成加密预主密钥的算法。
为了使中间件与客户端生成对称密钥,中间件和客户端都要获取用于生成对称密钥的预主密钥、客户端生成的第一随机数与中间件生成的第二随机数,其中,预主密钥由客户端生成。
按照SSL/TLS握手协议,中间件获取客户端生成的预主密钥,需要中间件与客户端协商密码套件,具体可以包括步骤A1~步骤A5:
步骤A1:所述客户端向所述中间件发送密码套件列表,所述密码套件列表包括所述含有国家商用密码算法和国外标准密码算法的混合密码套件和非混合密码套件。
密码套件是按照规定的格式定义的,该格式规定了密码算法的顺序。例如,在SSL/TLS握手协议中,规定的格式为:每个密码套件以“SSL”开头,后面紧跟着的是认证算法、密钥交换算法,在密钥交换算法后用“WITH”把密钥交换算法与对称密码算法、摘要算法分开。
具体的,一个定义密码套件的例子如下所示:
“SSL_DHE_RSA_WITH_DES_CBC_SHA”,其中“DHE”为认证算法、“RSA”为密钥交换算法,“DES_CBC”为对称密码算法,“SHA”为摘要算法,在此密码套件的定义中,可以看出密码套件规定了认证算法、密钥交换算法、对称密码算法和摘要算法选用的是哪一个算法,以方便中间件与客户端根据此密码套件中规定的算法从OpenSSL中调用相应的算法进行操作,OpenSSL是实现SSL/TLS协议的开源框架及代码,其内含有密码套件中规定的各种算法。在OpenSSL中每个密码套件都对应一个编码,此编码占用两个字节,例如,编码“0x000a”代表的密码套件是“TLS_RSA_WITH_3DES_EDE_CBC_SHA”(这个密码套件认证算法和密钥交换算法是同一个,都是RSA算法)。
在现有的基于SSL/TLS握手协议实现安全传输数据的中间件产品中,OpenSSL只含有国外标准密码算法,不包含国家商用密码算法,为了使用本发明提出的含有国家商用密码算法和国外标准密码算法的混合密码套件,需要在OpenSSL中增加国家商用密码算法、定义混合密码套件的编码、添加混合密码套件的ID、添加混合密码套件中算法的强度以及添加混合密码套件的合法性等信息,构成最终的含有国家商用密码算法和国外标准密码算法的混合密码套件。
具体的,可以通过引擎的方式在OpenSSL中增加国家商用密码算法。在OpenSSL中每个算法都对应一个引擎容器,每个引擎容器都包含有一个引擎列表、一个默认引擎和一些控制信息。以国家商用密码算法SM2为例说明如何在OpenSSL中添加国家商用密码算法。具体为:首先在OpenSSL中为SM2算法创建一个SM2引擎容器,将SM2算法保存到SM2引擎容器的引擎中;然后,将保存有SM2算法的引擎添加到引擎容器的引擎列表和默认引擎中;最后,中间件在使用SM2算法时优先从引擎中提取进行计算。
在得到混合密码套件之后,客户端将包括混合密码套件和非混合密码套件的密码套件列表发送给中间件,此混合密码套件与非混合密码套件都是客户端支持的密码套件,将这些密码套件发送给中间件,使中间件在这些密码套件中选择其所支持的密码套件。
步骤A2:所述中间件接收所述密码套件列表并选定所述含有国家商用密码算法和国外标准密码算法的混合密码套件作为生成密钥的密码套件。
中间件从接收到的密码套件列表中选择一个其支持的密码套件,并将此密码套件发送给客户端。
中间件从接收到的密码套件列表中如何选择一个其支持的密码套件,在SSL规范说明文档中并没有指出,中间件既可以按照密码套件列表中密码套件的先后顺序进行选择,也可以根据自己的规则来选择密码套件。
当中间件接收到客户端发送的密码套件列表中没有混合密码套件时,中间件从密码套件列表的第一项按照先后顺序逐个进行检查,检查密码套件是否可以应用于中间件与客户端之间的安全通信。检查的标准为密码套件中的密钥交换算法和数字签名算法这两种非对称密码算法是否与当前中间件用户证书类型匹配。如果匹配,中间件在其支持的密码套件列表中查找该密码套件,如果能找到则确定该密码套件为双方安全通信所使用的密码套件。反之,如果密钥交换算法和数字签名算法这两种非对称密码算法与中间件的证书类型不匹配,或者匹配,但是当前密码套件在中间件的密码套件列表中找不到,中间件则继续检查客户端发送的密码套件列表中的下一个密码套件。当中间件选定用于安全通信的密码套件后,中间件将此密码套件作为中间件HELLO消息的一部分发送给客户端,至此,中间件与客户端之间的密码套件协商完毕。
当中间件接收到的密码套件列表中含有混合密码套件时,因为含有国家商用密码算法和国外标准密码算法的混合密码套件在密码套件列表中的优先级最高,所以中间件选择混合密码套件作为与客户端协商的密码套件,并将此混合密码套件作为中间件HELLO消息的一部分发送给客户端。
在本实施例中,客户端发送给中间件的密码套件列表中含有混合密码套件,因此,中间件直接从此密码套件列表中选定混合密码套件,作为中间件与客户端之间安全通信的密码套件。
步骤A3:所述中间件将所述混合密码套件发送给所述客户端。
步骤A4:所述客户端接收所述中间件发送的所述混合密码套件,并将所述混合密码套件中的国家商用非对称密码算法,作为生成所述加密预主密钥的算法。
中间件将选定的混合密码套件发送给客户端,客户端使用混合套件中的国家商用非对称密码算法作为生成所述加密预主密钥的算法。
步骤A5:所述中间件使用所述混合密码套件中的国家商用非对称密码算法,作为解密所述加密预主密钥的算法。
步骤S202:所述客户端采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到所述加密预主密钥,并将所述加密预主密钥发送给所述中间件。
加密预主密钥是客户端对生成的预主密钥采用国家商用非对称密码算法,并使用中间件的公钥进行加密得到的,所述公钥是混合密码套件中国家商用非对称密码算法的公钥,此公钥可以在步骤A3中由中间件一并发送给客户端。
步骤S203:所述中间件采用所述国家商用非对称密码算法,并使用私钥解密所述加密预主密钥得到所述预主密钥。
中间件采用国家商用非对称密码算法,并使用其私钥对客户端发送的加密预主密钥进行解密,得到客户端生成的预主密钥,此预主密钥是用来生成对称密钥的,所述私钥是混合密码套件中国家商用非对称密码算法的私钥。
步骤S204:所述中间件与所述客户端采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述中间件与所述客户端约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成。
中间件生成对称密钥需要获得预主密钥、第一随机数、第二随机数。此时,中间件已拥有用于生成对称密钥的预主密钥与第二随机数,其中第二随机数由中间件生成,还缺少客户端生成的第一随机数。在步骤A1中客户端一并将第一随机数发送给中间件。
中间件采用与客户端预先约定的主密钥生成函数,将预主密钥、第一随机数和第二随机数生成主密钥。
客户端生成对称密钥同样需要获得预主密钥、第一随机数、第二随机数。此时,客户端已拥有用于生成对称密钥的预主密钥与第一随机数,其中第一随机数由客户端生成,还缺少中间件生成的第二随机数。在步骤A3中中间件一并将第二随机数发送给客户端。
客户端采用与中间件预先约定的主密钥生成函数,将预主密钥、第一随机数和第二随机数生成主密钥。
步骤S205:所述中间件与所述客户端采用密钥分组算法,计算所述第一随机数、第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述中间件与所述客户端约定的算法。
中间件对第一随机数、第二随机数和主密钥采用密钥分组算法进行计算,得到密钥分组,此密钥分组算法是中间件与客户端约定的算法。
客户端同样采用此密钥分组算法计算第一随机数、第二随机数和主密钥得到密钥分组,得到密钥分组的过程如图(3)所示。
步骤S206:所述中间件与所述客户端采用分解算法将所述密钥分组分解得到对称密钥,所述分解算法是所述中间件与所述客户端约定的算法。
在此步骤中,中间件对步骤S205得到的密钥分组采用分解算法进行分解,得到中间件的对称密钥、中间件的MAC以及中间件IV,此处的分解算法是中间件与客户端约定的算法。
客户端同样采用此分解算法对客户端计算得到的密钥分组进行分解,得到客户端的对称密钥、客户端的MAC以及客户端的IV,中间件与客户端分解密钥分组的过程如图(3)所示。
需要说明的是,中间件与客户端获取了预主密钥、第一随机数和第二随机数后,在生成主密钥、计算密钥分组以及分解密钥分组得到对称密钥的过程中,可以不同时进行,可以在需要的时候生成主密钥、计算密钥分组以及分解密钥分组得到对称密钥。
在本实施例中,中间件与客户端首先协商用于安全通信的密码套件,获得用于生成主密钥所需的预主密钥、第一随机数以及第二随机数;然后,中间件与客户端根据预主密钥、第一随机数和第二随机数计算得到密钥分组;最后中间件与客户端采用分解算法对密钥分组进行分解,得到中间件与客户端用于数据在传输层安全传输的对称密钥。
实施例2
中间件与客户端之间使用混合密码套件进行安全传输数据需要建立安全连接,本发明实施例详细介绍了中间件建立与客户端的安全连接过程,本发明实施例是在实施例1基础上,即中间件与客户端都得到对称密钥的基础上,中间件与客户端按照SSL/TLS握手协议的规定建立安全连接。
请参阅图4,是本发明实施例中中间件与客户端在得到对称密钥的基础上建立安全连接的流程图,具体步骤可以包括:
步骤S400:所述中间件解封装所述客户端发送的封装加密数据请求信息,在SSL/TLS层与所述客户端进行安全连接。
在客户端与中间件进行互联网通信时,客户端首先需要对加密的数据请求信息按照互联网协议进行封装,将加密的数据请求信息封装后发送给中间件;中间件对接收的封装的加密数据请求信息进行解封装,解封装的过程与客户端封装加密的数据请求信息的过程相反,当中间件解封到SSL/TLS层时,与客户端建立安全连接,在建立安全连接的过程中,获取后续进行数据传输过程中用来加密及解密的对称密钥。下面是中间件与客户端在SSL/TLS层建立安全连接的详细步骤。
步骤S401:所述中间件接收所述客户端发送的加密摘要值,所述加密摘要值由所述客户端采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥由实施例1的方法生成,所述第一摘要值由所述客户端采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到。
需要说明的是,SSL握手协议规定在客户端向中间件发送加密摘要值之前,客户端必须先向中间件发送“改变密码套件”消息,并且加密摘要值是紧接着“改变密码套件”消息之后发送的。
具体的,中间件中的OpenSSL在接收到“改变密码套件”消息后,会做一标记,此标记表示已经接收到“改变密码套件”消息,当接收到客户端发送的加密摘要值时,会检查相应的标记,如果标记没有被标识,则说明中间件没有接收过“改变密码套件”消息,将引发错误,不能对接收的加密摘要值进行解密,否则,对接收的加密摘要值进行解密,按照SSL握手协议的规定顺利进行。
从步骤S201到步骤S206,客户端对其发送给中间件及接收中间件的所有消息采用混合密码套件中的摘要算法计算得到第一摘要值。客户端对此第一摘要值采用混合密码套件中的国外标准对称密码算法,并使用本发明实施例1中生成的对称密钥进行加密得到加密摘要值,并将此加密摘要值发送给中间件,中间件接收到客户端发送的加密摘要值。
步骤S402:所述中间件采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥由实施例1的方法生成。
中间件对接收到的加密摘要值采用本发明实施例1的方法生成对称密钥进行解密得到解密摘要值。
步骤S403:所述中间件比较所述解密摘要值与第一摘要值,所述第一摘要值由所述中间件采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到。
步骤S404:若解密摘要值与所述第一摘要值相同,并且所述中间件没有收到所述客户端发出的安全连接建立失败的警报,则与客户端的安全连接建立成功。
客户端解密中间件发送的加密摘要值得到解密摘要值,将解密摘要值与客户端生成的摘要值进行比较,如果两者相同,则客户端与中间件建立安全连接成功,如果两者不同,则客户端发出与中间件建立安连接失败,所以,当中间件没有收到客户端发出的建立安全连接失败的信息,表示中间件与客户端之间建立安全连接成功。
实施例3
本发明实施例详细介绍了客户端与中间件之间建立安全连接的过程,本发明实施例是在实施例1基础上,即客户端与中间件都得到对称密钥的基础上,客户端按照SSL/TLS握手协议的规定与中间件建立的安全连接。
请参阅图5,是本发明实施例中客户端在得到对称密钥的基础上建立与中间件的安全连接的流程图,具体步骤可以包括:
步骤S500:所述客户端向所述中间件发送封装的加密数据请求信息,其中,所述加密数据请求信息所采用的密钥采用实施例1方法得到的对称密钥。
客户端将加密的数据请求信息按照HTTPS协议进行封装,将封装的加密数据请求信息发送给中间件。中间件接收到此封装的加密数据请求信息后按照与客户端封装加密数据请求信息相反的过程,对封装的加密数据请求信息进行解封,在SSL/TLS层与客户端建立安全连接。
步骤S501:所述客户端接收所述中间件发送的加密摘要值,所述加密摘要值由所述中间件采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥采用实施例1的方法生成,所述第一摘要值由所述中间件采用所述摘要算法计算所发送与接收的握手消息的摘要值得到。
需要说明的是,SSL协议规定在中间件向客户端发送加密摘要值之前,中间件必须先向客户端发送“改变密码套件“改变密码套件”消息,并且加密摘要值是紧接着“改变密码套件”消息之后发送的。具体的,客户端中的OpenSSL在接收到“改变密码套件”消息后,会做一标记,此标记表示已经接收到“改变密码套件”消息,当接收到中间件发送的加密摘要值时,会检查相应的标记,如果标记没有被标识,则说明客户端没有接收过“改变密码套件”消息,将引发错误,不能对接收的加密摘要值进行解密,否则,对接收的加密摘要值进行解密,按照SSL握手协议的规定顺利进行。
从步骤S201到步骤S206,中间件对其发送给客户端及接收客户端的所有消息采用混合密码套件中的摘要算法计算得到第一摘要值。中间件对此第一摘要值采用混合密码套件中的国外标准对称密码算法,并使用本发明实施例1中生成的对称密钥进行加密得到加密摘要值,并将此加密摘要值发送给客户端,客户端接收到中间件发送的加密摘要值。
步骤S502:所述客户端采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥采用实施例1的方法生成。
客户端对接收到的加密摘要值采用本发明实施例1的方法生成对称密钥进行解密得到解密摘要值。
步骤S503:所述客户端比较所述解密摘要值与第二摘要值,所述第二摘要值由所述客户端采用所述摘要算法计算握手过程中所有发送与接收的握手消息的摘要值得到。
步骤S504:若所述解密摘要值与所述第二摘要值相同,并且所述客户端没有收到所述中间件发出的安全连接建立失败的警报,则与中间件的安全连接建立成功。
当中间件解密接收到的加密摘要值后,将得到的解密摘要值与第一摘要值比较,若两者不同,则中间件会发出与客户端建立连接失败的警报。因此,当客户端没有收到中间件发出的建立安全连接失败的警报,并且对所述解密摘要值与所述第二摘要值比较的结果是相同,则客户端与中间件的安全连接建立成功。
从步骤S201到步骤S206,客户端对其发送给中间件及接收中间件的所有消息采用混合密码套件中的摘要算法计算得到第二摘要值。
客户端将步骤S502中得到的解密摘要值与第二摘要值进行比较,如果相同,则客户端建立与中间件的安全连接。
需要说明的是,中间件向客户端发送中间件生成的加密摘要值与客户端向中间件发送客户端生成的加密摘要值没有先后顺序。
实施例4
本发明实施例详细介绍在客户端与中间件之间建立安全连接后,中间件与客户端之间进行数据传输的过程。
请参阅图6,是本发明实施例中中间件与客户端之间建立安全连接的基础上,进行数据传输的流程图,具体步骤可以包括:
步骤S601:所述客户端与所述中间件建立安全连接,所述建立安全连接的方法采用实施例3所述的方法建立。
中间件根据SSL/TLS握手协议的规定与客户端按照实施例2的方法建立与客户端之间的安全连接。
步骤S602:所述客户端采用对称密钥解密所述中间件发送的加密的响应信息来获取响应信息,所述响应信息由所述中间件从服务端获取与所述客户端发送的请求数据信息相对应的响应信息。
中间件与客户端之间建立安全连接后,中间件采用对称密钥解密客户端发送的加密数据请求信息,得到数据请求信息,中间件根据数据请求信息从服务端中获取客户端想要获取的响应信息,并对所述响应信息采用混合密码套件中的国外标准对称密码算法,并使用对称密钥进行加密得到加密的响应信息,将此加密响应信息发送到客户端。
客户端接收此加密响应信息,采用对称密钥解密中间件所发送的加密响应信息获得响应信息。
本发明实施例,中间件与客户端间按照SSL/TLS握手协议规定建立安全连接,在中间件与客户端建立安全连接的基础上,中间件对客户端想要获取的响应信息采用国外标准对称密码算法,并使用对称密钥进行加密得到加密的响应信息,将此加密的响应信息发送给客户端,客户端采用对称密钥对此加密的响应信息进行解密获取响应信息。
实施例5
本发明实施例公开一种生成密钥的装置,参见图7,所述生成密钥的装置集成在于客户端连接的中间件上,该装置包括:
协商解密加密预主密钥算法单元701,用于与所述客户端协商使用所述混合密码套件中的国家商用非对称密码算法作为解密加密预主密钥的算法,所述加密预主密钥由所述客户端采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到,所述预主密钥由所述客户端生成;
获取预主密钥单元702,用于采用所述国家商用非对称密码算法,并使用私钥解密所述加密预主密钥得到所述预主密钥;
生成主密钥单元703,用于采用主密钥生成函数将第一随机数、所述第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述中间件与所述客户端约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
获取密钥分组单元704,用于采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述中间件与所述客户端约定的算法;
获取对称密钥单元705,用于采用分解算法将所述主密钥分解得到对称密钥,所述分解算法是所述中间件与所述客户端约定的算法。
可选的,在本发明实施例中,所述协商解密加密预主密钥算法单元701协商用于解密加密预主密钥的算法时,具体用于:
接收所述客户端发送的密码套件列表,所述密码套件列表包括所述含有国家商用密码算法和国外标准密码算法的混合密码套件和其他密码套件;
根据所述密码套件列表选定所述含有国家商用密码算法和国外标准密码算法的混合密码套件作为生成密钥的密码套件;
使用所述混合密码套件中的国家商用非对称密码算法,作为解密所述加密预主密钥的算法。
本发明装置实施例,通过协商解密加密预主密钥算法单元,中间件获得使用混合密码套件中的国家商用非对称密码算法解密加密预主密钥,采用此密码算法通过获取预主密钥单元,中间件获得客户端生成的预主密钥,将预主密钥、客户端生成的第一随机数和中间件生成的第二随机数采用生成主密钥单元,中间件与客户端生成主密钥,对生成的主密钥通过密钥分组单元得到密钥分组,最后将密钥分组通过获取对称密钥单元,中间件获得对称密钥。
实施例6
本发明实施例公开一种生成密钥的装置,参见图8,所述生成密钥的装置集成在与中间件连接的客户端上,该装置包括:
协商生成加密预主密钥算法单元801,用于与所述中间件协商使用所述国家商用非对称密码算法作为生成加密预主密钥的算法;
生成加密预主密钥单元802,用于采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到所述加密预主密钥,所述预主密钥由所述客户端生成,以便所述中间件采用私钥解密所述加密预主密钥得到所述预主密钥;
生成主密钥单元803,用于采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述客户端与所述中间件约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
获取密钥分组单元804,用于采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述客户端与所述中间件约定的算法;
获取对称密钥单元805,用于采用分解算法将所述主密钥分解得到对称密钥,所述分解算法是所述客户端与所述中间件约定的算法。
实施例7
本发明实施例公开了一种建立安全连接的装置,该装置集成在与客户端连接的中间件上,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,参见图9,该装置包括:
接收加密摘要值单元901,用于接收所述客户端发送的加密摘要值,所述加密摘要值由所述客户端采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥实施例5装置生成,所述第一摘要值由所述客户端采用所述摘要算法计算所发送与接收的握手消息的摘要值得到;
获取解密摘要值单元902,用于采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥由实施例5所述装置生成;
比较单元903,用于比较所述解密摘要值与第二摘要值,所述第二摘要值由所述中间件采用所述摘要算法计算所发送与接收的握手消息的摘要值得到,若相同,并且所述中间件没有收到所述客户端发出的安全连接建立失败的警报,则与客户端的安全连接建立成功。
本发明装置实施例,中间件通过接收加密摘要值单元接收客户端发送的加密摘要值,采用获取解密摘要值单元获得加密摘要值的解密摘要值,并将此解密摘要值与中间件生成的的第二摘要值通过比较单元,如果两者相同,并且所述中间件没有收到所述客户端发出的安全连接建立失败的警报,则与客户端的安全连接建立成功。
实施例8
本发明实施例公开了一种建立安全连接的装置,该装置集成在与中间件连接的客户端上,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,参见图10,该装置包括:
接收加密摘要值单元1001,用于接收加密摘要值,所述加密摘要值由所述中间件采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥采用实施例5的装置生成,所述第一摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到;
获取解密摘要值单元1002,用于采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥采用实施例5的装置生成;
比较单元1003,用于比较所述解密摘要值与第二摘要值,所述第二摘要值由所述客户端采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到,若相同,并且所述客户端没有收到所述中间件发出的安全连接建立失败的警报,则与中间件的安全连接建立成功。
本发明装置实施例,客户端通过接收加密摘要值单元接收中间件发送的加密摘要值,通过获取解密摘要值单元获得中间件发送的加密摘要值的解密摘要值,中间件将此解密摘要值与生成的第二摘要值通过比较单元进行比较,如果相同,并且所述客户端没有收到所述中间件发出的安全连接建立失败的警报,则与中间件的安全连接建立成功。
实施例9
本发明实施例公开了一种安全传输数据的装置,参见图11,该装置集成在与客户端连接的中间件上,该装置包括:
建立安全连接单元1101,用于与所述客户端建立安全连接,所述建立与所述客户端的安全连接的方法采用实施例7的装置建立;
获取数据请求单元1102,用于采用对称密钥解密所述客户端发送的加密数据请求信息,得到数据请求信息;
发送加密数据单元1103,用于向所述客户端发送加密的响应信息,所述加密的响应信息由所述中间件采用所述国外标准对称密码算法,并使用对称密钥对响应信息加密得到,所述响应信息由所述中间件从服务端获取。
本发明装置实施例,采用建立安全连接单元,中间件按照SSL/TLS握手协议建立与客户端的安全连接,通过获取数据请求单元,中间件接收到客户端发送的数据请求信息,通过发送加密数据单元,中间件将客户端想要获取的响应信息采用国外标准对称密码算法,并使用对称密钥进行加密得到加密的响应信息,将此加密的响应信息发送给客户端。
实施例10
本发明实施例公开了一种安全传输数据的装置,参见图12,该装置集成在与中间件连接的客户端上,该装置包括:
建立安全连接单元1201,用于与所述中间件建立安全连接,所述建立与所述中间件的安全连接的装置采用实施例8所述的装置;
获取数据单元1202,采用对称密钥解密所述中间件发送的加密的响应信息来获取响应信息,所述响应信息由所述中间件从服务端获取与所述客户端发送的请求数据信息相对应的响应信息。
本发明装置实施例,客户端通过建立安全连接单元,客户端遵循SSL/TLS握手协议的规定建立与中间件的安全连接,通过获取数据单元,客户端采用国外标准对称密码算法,并使用对称密钥解密所述中间件发送的加密的响应信息获得响应信息。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种生成密钥的方法,其特征在于,所述生成密钥的方法应用于与客户端交互的中间件,所述中间件与所述客户端都集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的密钥交换算法采用国家商用非对称密码算法,该方法包括:
所述中间件与所述客户端协商使用所述混合密码套件中的国家商用非对称密码算法作为解密加密预主密钥的算法,所述加密预主密钥由所述客户端采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到,所述预主密钥由所述客户端生成;
所述中间件采用所述国家商用非对称密码算法,并使用私钥解密所述加密预主密钥得到所述预主密钥;
所述中间件采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述中间件与所述客户端约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
所述中间件采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述中间件与所述客户端约定的算法;
所述中间件采用分解算法将所述密钥分组分解得到对称密钥,所述分解算法是所述中间件与所述客户端约定的算法。
2.根据权利要求1所述的一种生成密钥的方法,其特征在于,所述中间件与所述客户端协商使用所述混合密码套件中的国家商用非对称密码算法作为解密加密预主密钥的算法,包括:
所述中间件接收所述客户端发送的密码套件列表,所述密码套件列表包括所述含有国家商用密码算法和国外标准密码算法的混合密码套件和其他密码套件;
所述中间件根据所述密码套件列表选定所述含有国家商用密码算法和国外标准密码算法的混合密码套件作为生成密钥的密码套件;
所述中间件使用所述混合密码套件中的国家商用非对称密码算法,作为解密所述加密预主密钥的算法。
3.一种生成密钥的方法,其特征在于,所述生成密钥的方法应用于与中间件交互的客户端,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的密钥交换算法采用国家商用非对称密码算法,该方法包括:
所述客户端与所述中间件协商使用所述国家商用非对称密码算法作为生成加密预主密钥的算法;
所述客户端采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到所述加密预主密钥,所述预主密钥由所述客户端生成,以便所述中间件采用私钥解密所述加密预主密钥得到所述预主密钥;
所述客户端采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述客户端与所述中间件约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
所述客户端采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述客户端与所述中间件约定的算法;
所述客户端采用分解算法将所述密钥分组分解得到对称密钥,所述分解算法是所述客户端与所述中间件约定的算法。
4.一种建立安全连接的方法,其特征在于,所述建立安全连接的方法应用于与客户端交互的中间件,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括国家商用非对称密码算法、摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,该方法包括:
所述中间件接收所述客户端发送的加密摘要值,所述加密摘要值由所述客户端采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥由权利要求3的方法生成,所述第一摘要值由所述客户端采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到;
所述中间件采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥由权利要求1所述方法生成;
所述中间件比较所述解密摘要值与第二摘要值,所述第二摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到;
若解密摘要值与第二摘要值相同,并且所述中间件没有收到所述客户端发出的安全连接建立失败的警报,则与客户端的安全连接建立成功。
5.一种建立安全连接的方法,其特征在于,所述建立安全连接应用于与中间件交互的客户端,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括国家商用非对称密码算法、摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,该方法包括:
所述客户端接收加密摘要值,所述加密摘要值由所述中间件采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥采用权利要求1所述的方法生成,所述第一摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到;
所述客户端采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥采用权利要求3所述的方法生成;
所述客户端比较所述解密摘要值与第二摘要值,所述第二摘要值由所述客户端采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到;
若所述解密摘要值与所述第二摘要值相同,并且所述客户端没有收到所述中间件发出的安全连接建立失败的警报,则与中间件的安全连接建立成功。
6.一种安全传输数据的方法,其特征在于,所述安全传输数据的方法应用于与客户端交互的中间件,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的对称密码算法采用国外标准对称密码算法,该方法包括:
所述中间件与所述客户端建立安全连接,所述建立安全连接的方法采用权利要求4所述的方法;
所述中间件采用对称密钥解密所述客户端发送的加密数据请求信息,得到数据请求信息;
所述中间件向所述客户端发送加密的响应信息,所述加密的响应信息由所述中间件采用所述国外标准对称密码算法,并使用对称密钥对响应信息加密得到,所述响应信息由所述中间件从服务端获取。
7.一种安全传输数据的方法,其特征在于,所述安全传输数据的方法应用于与中间件交互的客户端,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的对称密码算法采用国外标准对称密码算法,该方法包括:
所述客户端与所述中间件建立安全连接,所述建立安全连接的方法采用权利要求5所述的方法;
所述客户端采用对称密钥解密所述中间件发送的加密的响应信息来获取响应信息,所述响应信息由所述中间件从服务端获取与所述客户端发送的请求数据信息相对应的响应信息。
8.一种生成密钥的装置,其特征在于,所述生成密钥装置集成在与客户端连接的中间件上,所述中间件与所述客户端都集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的密钥交换算法采用国家商用非对称密码算法,该装置包括:
协商解密加密预主密钥算法单元,用于与所述客户端协商使用所述混合套件中的国家商用非对称密码算法作为解密加密预主密钥的算法,所述加密预主密钥由所述客户端采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到,所述预主密钥由所述客户端生成;
获取预主密钥单元,用于采用所述国家商用非对称密码算法,并使用私钥解密所述加密预主密钥得到所述预主密钥;
生成主密钥单元,用于采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述中间件与所述客户端约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
获取密钥分组单元,用于采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述中间件与所述客户端约定的算法;
获取对称密钥单元,用于采用分解算法将所述主密钥分解得到对称密钥,所述分解算法是所述中间件与所述客户端约定的算法。
9.根据权利要求8所述的一种生成密钥的装置,其特征在于,所述协商解密加密预主密钥算法单元,具体包括:
获取密码套件列表模块,用于接收所述客户端发送的密码套件列表,所述密码套件列表包括所述含有国家商用密码算法和国外标准密码算法的混合密码套件和其他密码套件;
获取密码套件模块,用于根据所述密码套件列表选定所述含有国家商用密码算法和国外标准密码算法的混合密码套件作为生成密钥的密码套件;
获取解密加密预主密钥算法模块,用于使用所述混合密码套件中的国家商用非对称密码算法,作为解密所述加密预主密钥的算法。
10.一种生成密钥的装置,其特征在于,所述生成密钥的装置集成在与中间件相连的客户端上,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的密钥交换算法采用国家商用非对称密码算法,该装置包括:
协商生成加密预主密钥算法单元,用于与所述中间件协商使用所述国家商用非对称密码算法作为生成加密预主密钥的算法;
生成加密预主密钥单元,用于采用所述国家商用非对称密码算法,并使用所述中间件的公钥对预主密钥加密得到所述加密预主密钥,所述预主密钥由所述客户端生成,以便所述中间件采用私钥解密所述加密预主密钥得到所述预主密钥;
生成主密钥单元,用于采用主密钥生成函数将第一随机数、第二随机数和所述预主密钥生成主密钥,所述主密钥生成函数是所述客户端与所述中间件约定的函数,所述第一随机数由所述客户端生成,所述第二随机数由所述中间件生成;
获取密钥分组单元,用于采用密钥分组算法,计算所述第一随机数、所述第二随机数和所述主密钥得到密钥分组,所述密钥分组算法是所述客户端与所述中间件约定的算法;
获取对称密钥单元,用于采用分解算法将所述主密钥分解得到对称密钥,所述分解算法是所述客户端与所述中间件约定的算法。
11.一种建立安全连接的装置,其特征在于,所述建立安全连接的装置集成在与客户端连接的中间件上,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括国家商用非对称密码算法、摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,该装置包括:
接收加密摘要值单元,用于接收所述客户端发送的加密摘要值,所述加密摘要值由所述客户端采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥由权利要求10的装置生成,所述第一摘要值由所述客户端采用所述摘要算法计算所发送与接收的握手消息的摘要值得到;
获取解密摘要值单元,用于采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥由权利要求8所述装置生成;
比较单元,用于比较所述解密摘要值与第二摘要值,所述第二摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到,若相同,并且所述中间件没有收到所述客户端发出的安全连接建立失败的警报,则与客户端的安全连接建立成功。
12.一种建立安全连接的装置,其特征在于,所述建立安全连接的装置集成在与中间件连接的客户端上,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件包括国家商用非对称密码算法、摘要算法与对称密码算法,所述对称密码算法采用国外标准对称密码算法,该装置包括:
接收加密摘要值单元,用于接收加密摘要值,所述加密摘要值由所述中间件采用所述国外标准对称密码算法,并使用对称密钥加密第一摘要值得到,所述对称密钥采用权利要求8所述的装置生成,所述第一摘要值由所述中间件采用所述摘要算法对握手过程中所有发送与接收的握手消息的摘要值计算得到;
获取解密摘要值单元,用于采用对称密钥解密所述加密摘要值得到解密摘要值,所述对称密钥采用权利要求10所述的装置生成;
比较单元,用于比较所述解密摘要值与第二摘要值,所述第二摘要值由所述客户端采用所述摘要算法,对握手过程中所有发送与接收的握手消息的摘要值计算得到,若相同,并且所述客户端没有收到所述中间件发出的安全连接建立失败的警报,则与中间件的安全连接建立成功。
13.一种安全传输数据的装置,其特征在于,所述安全传输数据的装置集成在与客户端连接的中间件上,所述中间件与所述客户端集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的对称密码算法采用国外标准对称密码算法,该装置包括:
建立安全连接单元,用于与所述客户端建立安全连接,所述建立与所述客户端的安全连接的方法采用权利要求11所述的装置建立;
获取数据请求单元,用于采用对称密钥解密所述客户端发送的加密数据请求信息,得到数据请求信息;
发送加密数据单元,用于向所述客户端发送加密的响应信息,所述加密的响应信息由所述中间件采用所述国外标准对称密码算法,并使用对称密钥对响应信息加密得到,所述响应信息由所述中间件从服务端获取。
14.一种安全传输数据的装置,其特征在于,所述安全传输数据的装置集成在与中间件连接的客户端,所述客户端与所述中间件集成含有国家商用密码算法和国外标准密码算法的混合密码套件,所述混合密码套件中的对称密码算法采用国外标准对称密码算法,该装置包括:
建立安全连接单元,用于与所述中间件建立安全连接,所述建立与所述中间件的安全连接的方法采用权利要求12所述的装置建立;
获取数据单元,用于采用对称密钥解密所述中间件发送的加密的响应信息来获取响应信息,所述响应信息由所述中间件从服务端获取与所述客户端发送的请求数据信息相对应的响应信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611177052.1A CN106790049A (zh) | 2016-12-19 | 2016-12-19 | 基于混合密码套件中间件的数据安全传输方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611177052.1A CN106790049A (zh) | 2016-12-19 | 2016-12-19 | 基于混合密码套件中间件的数据安全传输方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106790049A true CN106790049A (zh) | 2017-05-31 |
Family
ID=58890271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611177052.1A Pending CN106790049A (zh) | 2016-12-19 | 2016-12-19 | 基于混合密码套件中间件的数据安全传输方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790049A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107979613A (zh) * | 2017-12-28 | 2018-05-01 | 明博教育科技股份有限公司 | 一种保障jms消息安全认证的实现方法和系统 |
CN108429615A (zh) * | 2018-01-10 | 2018-08-21 | 如般量子科技有限公司 | 一种基于量子密钥的Stunnel通信方法和Stunnel通信系统 |
CN109067803A (zh) * | 2018-10-10 | 2018-12-21 | 深信服科技股份有限公司 | 一种ssl/tls加解密通信方法、装置及设备 |
CN109450901A (zh) * | 2018-11-12 | 2019-03-08 | 北京天融信网络安全技术有限公司 | 国密隧道建立方法、装置及设备 |
CN109600226A (zh) * | 2019-01-25 | 2019-04-09 | 中国人民解放军国防科技大学 | 基于随机数隐式协商的tls协议会话密钥还原方法 |
CN112000493A (zh) * | 2020-08-24 | 2020-11-27 | 成都卫士通信息产业股份有限公司 | 一种数据处理系统、方法及电子设备和存储介质 |
CN114785860A (zh) * | 2022-06-02 | 2022-07-22 | 深圳云创数安科技有限公司 | 基于加解密的数据响应方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787525A (zh) * | 2005-11-15 | 2006-06-14 | 上海格尔软件股份有限公司 | 双证书在ssl协议中的应用方法 |
US20100146588A1 (en) * | 2008-12-05 | 2010-06-10 | Unisys Corporation | Mapping proprietary ssl apis onto openssl apis |
CN102088441A (zh) * | 2009-12-08 | 2011-06-08 | 北京大学 | 消息中间件的数据加密传输方法和系统 |
CN103118027A (zh) * | 2013-02-05 | 2013-05-22 | 中金金融认证中心有限公司 | 基于国密算法建立tls通道的方法 |
CN104683359A (zh) * | 2015-03-27 | 2015-06-03 | 成都三零瑞通移动通信有限公司 | 一种安全通道建立方法及其数据保护方法和安全通道秘钥更新方法 |
-
2016
- 2016-12-19 CN CN201611177052.1A patent/CN106790049A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787525A (zh) * | 2005-11-15 | 2006-06-14 | 上海格尔软件股份有限公司 | 双证书在ssl协议中的应用方法 |
US20100146588A1 (en) * | 2008-12-05 | 2010-06-10 | Unisys Corporation | Mapping proprietary ssl apis onto openssl apis |
CN102088441A (zh) * | 2009-12-08 | 2011-06-08 | 北京大学 | 消息中间件的数据加密传输方法和系统 |
CN103118027A (zh) * | 2013-02-05 | 2013-05-22 | 中金金融认证中心有限公司 | 基于国密算法建立tls通道的方法 |
CN104683359A (zh) * | 2015-03-27 | 2015-06-03 | 成都三零瑞通移动通信有限公司 | 一种安全通道建立方法及其数据保护方法和安全通道秘钥更新方法 |
Non-Patent Citations (3)
Title |
---|
中国信息安全测评中心: "《Web系统安全和渗透性测试基础》", 30 June 2009 * |
吴永强: "国密SSL安全通信协议的研究与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
许大卫等: "SG-APS应用服务器中间件的设计与实现", 《计算机技术与发展》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107979613A (zh) * | 2017-12-28 | 2018-05-01 | 明博教育科技股份有限公司 | 一种保障jms消息安全认证的实现方法和系统 |
CN108429615A (zh) * | 2018-01-10 | 2018-08-21 | 如般量子科技有限公司 | 一种基于量子密钥的Stunnel通信方法和Stunnel通信系统 |
CN109067803A (zh) * | 2018-10-10 | 2018-12-21 | 深信服科技股份有限公司 | 一种ssl/tls加解密通信方法、装置及设备 |
CN109450901A (zh) * | 2018-11-12 | 2019-03-08 | 北京天融信网络安全技术有限公司 | 国密隧道建立方法、装置及设备 |
CN109600226A (zh) * | 2019-01-25 | 2019-04-09 | 中国人民解放军国防科技大学 | 基于随机数隐式协商的tls协议会话密钥还原方法 |
CN109600226B (zh) * | 2019-01-25 | 2020-05-05 | 中国人民解放军国防科技大学 | 基于随机数隐式协商的tls协议会话密钥还原方法 |
CN112000493A (zh) * | 2020-08-24 | 2020-11-27 | 成都卫士通信息产业股份有限公司 | 一种数据处理系统、方法及电子设备和存储介质 |
CN112000493B (zh) * | 2020-08-24 | 2023-04-18 | 成都卫士通信息产业股份有限公司 | 一种数据处理系统、方法及电子设备和存储介质 |
CN114785860A (zh) * | 2022-06-02 | 2022-07-22 | 深圳云创数安科技有限公司 | 基于加解密的数据响应方法、装置、设备及介质 |
CN114785860B (zh) * | 2022-06-02 | 2024-06-04 | 深圳云创数安科技有限公司 | 基于加解密的数据响应方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790049A (zh) | 基于混合密码套件中间件的数据安全传输方法与装置 | |
CN111953705B (zh) | 物联网身份认证方法、装置及电力物联网身份认证系统 | |
CN102833253B (zh) | 建立客户端与服务器安全连接的方法及服务器 | |
KR101394730B1 (ko) | Id 기반 인증 키 동의 프로토콜을 수행하기 위한 방법 및 장치 | |
CN103118027B (zh) | 基于国密算法建立tls通道的方法 | |
EP2039199B1 (en) | User equipment credential system | |
EP2792100B1 (en) | Method and device for secure communications over a network using a hardware security engine | |
CN108377190B (zh) | 一种认证设备及其工作方法 | |
US20040161110A1 (en) | Server apparatus, key management apparatus, and encrypted communication method | |
CN104702611A (zh) | 一种保护安全套接层会话密钥的设备及方法 | |
CN103354498A (zh) | 一种基于身份的文件加密传输方法 | |
CN109547464A (zh) | 用于存储和执行访问控制客户端的方法及装置 | |
JP2009510963A (ja) | ネットワークエンティティ間のデータ合意を認証するシステム、方法及びコンピュータプログラム製品 | |
CN109891423A (zh) | 使用多个控制机构的数据加密控制 | |
CN104756458A (zh) | 用于保护通信网络中的连接的方法和设备 | |
CN101247232A (zh) | 数据交换传输中基于数字签名的加密技术方法 | |
CN107809311A (zh) | 一种基于标识的非对称密钥签发的方法及系统 | |
CN101442522A (zh) | 一种基于组合公钥的通信实体标识认证方法 | |
CN112422560A (zh) | 基于安全套接层的轻量级变电站安全通信方法及系统 | |
CN108234114A (zh) | 一种基于硬件加密算法的ssl的实现方法 | |
CN112804356A (zh) | 一种基于区块链的联网设备监管认证方法及系统 | |
CN104767766A (zh) | 一种Web Service接口验证方法、Web Service服务器、客户端 | |
CN109802834A (zh) | 一种对业务层数据进行加密、解密的方法及系统 | |
US9356931B2 (en) | Methods and apparatuses for secure end to end communication | |
CN114124375A (zh) | 一种用于物联网环境的多阶段密钥协商方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |