CN112511550B - 通信方法、装置、电子设备及存储介质 - Google Patents
通信方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112511550B CN112511550B CN202011413638.XA CN202011413638A CN112511550B CN 112511550 B CN112511550 B CN 112511550B CN 202011413638 A CN202011413638 A CN 202011413638A CN 112511550 B CN112511550 B CN 112511550B
- Authority
- CN
- China
- Prior art keywords
- client
- key
- server
- encryption
- handshake message
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004891 communication Methods 0.000 title claims abstract description 32
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 196
- 238000004364 calculation method Methods 0.000 claims description 147
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 8
- 238000012550 audit Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 1
Images
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
-
- 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
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0884—Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
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)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种通信方法、装置、电子设备及存储介质,所述包括:中间设备利用预先获取到的服务端的设备私钥,对客户端发送给服务端的客户端密钥交换报文进行解密,得到预主密钥,继而利用预先确定的算法套件对预主密钥进行计算,得到客户端和服务端之间协商确定的加密密钥,该过程无需中间设备分别与客户端和服务端进行密钥协商,就能获取客户端与服务端后续进行数据报文传输所用的加密密钥,降低网络开销,同时,在客户端利用该加密密钥传输数据报文给服务端时,中间设备可以直接将从客户端处获取到的该数据报文转发给服务端,无需通过中间设备解密后再加密转发,继而不会影响客户端与服务端之间的数据传输效率。
Description
技术领域
本申请涉及网络安全技术领域,具体而言,涉及一种通信方法、装置、电子设备及存储介质。
背景技术
超文本安全传输协议(Hyper Text Transfer Protocol Secure,HTTPS)是可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护;为了数据传输的安全性,客户端和服务端通过安全套接层(Secure Sockets Layer,SSL)协议协商出加密秘钥后,会利用该加密密钥对后续传输的数据报文进行加密传输,然而分别与客户端和服务端通信连接的中间设备不知道该加密密钥,但是出于审计需要,需要中间设备对加密的数据进行解密后再审计,可以理解的是,如果中间设备需要对加密数据进行解密,就需要获取到该加密秘钥。
为了解决上述问题,在现有技术中,中间设备需要分别与客户端和服务器进行SSL协商,在客户端与中间设备协商出密钥之后,客户端将利用该密钥进行加密的数据报文发送给中间设备,中间设备利用该密钥进行解密(并对解密后的数据进行审计)之后,利用其与服务端协商的密钥对解密后的数据进行加密,并将加密后的数据报文发送给服务端,服务端可以利用其与中间设备协商的密钥对加密后的数据进行解密,在上述过程中,由于中间设备维护2条SSL连接,因此通信开销比较大,且客户端发送给服务端的数据报文均需要通过中间设备解密后再加密转发,流程复杂,继而导致数据传输效率低。
发明内容
鉴于此,本申请实施例的目的在于提供一种通信方法、装置、电子设备及存储介质,以降低通信开销,并保证数据传输效率。
第一方面,本申请实施例提供一种通信方法,应用于分别与客户端与服务端通信连接的中间设备,所述方法包括:接收所述客户端发送的客户端密钥交换报文,其中,所述客户端密钥交换报文通过所述客户端利用所述服务端发送的设备证书的证书公钥加密获取到的预主密钥生成;利用预先获取到的与所述证书公钥对应的私钥对所述客户端密钥交换报文进行解密,得到所述预主密钥;利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥;将所述客户端密钥交换报文转发给所述服务端。
在上述实现过程中,在所述客户端与所述服务端之间采用证书协商方式协商加密密钥的情况下,中间设备利用预先获取到的所述服务端的设备私钥,对所述客户端发送给所述服务端的客户端密钥交换报文进行解密,得到预主密钥,继而利用预先确定的算法套件对预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥,该过程无需中间设备分别与所述客户端和所述服务端进行密钥协商,就能获取所述客户端与所述服务端后续进行数据报文传输所用的加密密钥,降低网络开销,同时,在所述客户端利用该加密密钥传输数据报文给所述服务端时,中间设备可以直接复制一份该数据报文进行审计(可以理解的是,在审计时,可以直接利用该加密密钥对该数据报文进行解密后进行审计),并将从所述客户端处获取到的该数据报文转发给所述服务端,无需通过中间设备解密后再加密转发,继而不会影响所述客户端与所述服务端之间的数据传输效率。
基于第一方面,在一种可能的设计中,确定预先确定的算法套件的步骤包括:接收所述客户端发送的客户端握手报文;其中,所述客户端握手报文中包括:所述客户端支持的算法套件;在确定所述客户端支持的算法套件只包括证书协商类算法时,确定所述客户端支持的算法套件为所述预先确定的算法套件;将所述客户端握手报文发送给所述服务端。
在所述客户端支持的算法套件只包括证书协商类算法的情况下,所述客户端与所述服务端之间势必会采用证书协商方式协商密钥,所述客户端和所述服务端也会利用所述客户端支持的算法套件对预主密钥进行加密,得到加密密钥,因此,在上述实现过程中,在确定所述客户端支持的算法套件只包括证书协商类算法时,才将客户端握手报文发送给所述服务端,以保证所述客户端与所述服务端之间采用证书协商的方式协商密钥,通过确定所述客户端支持的算法套件为预先确定的算法套件,以保证中间设备能够利用所述客户端支持的算法套件准确地获取到加密密钥。
基于第一方面,在一种可能的设计中,确定预先确定的算法套件的步骤包括:在确定所述客户端支持的算法套件还包括除所述证书协商类算法之外的其他算法时,删除所述客户端握手报文中的所述其他算法,得到修改后的客户端握手报文;将所述修改后的客户端握手报文发送给所述服务端;确定所述修改后的客户端握手报文中的算法套件为所述预先确定的算法套件。
在确定所述客户端支持的算法套件还包括除证书协商类算法之外的其他算法时,所述客户端与所述服务端最后协商出的算法套件可能为所述其他算法,在这种情况下,所述客户端与所述服务端就不会采用证书协商方式协商加密密钥,中间设备也就无法获取该加密密钥,因此,为了解决该问题,在上述实现过程中,在确定所述客户端支持的算法套件还包括除证书协商类算法之外的其他算法时,删除客户端握手报文中的其他算法,以使修改后的客户端握手报文中只包括证书协商类算法,通过将修改后的客户端握手报文发送给所述服务端,以使所述客户端和所述服务端最后协商出的算法套件只包括证书协商类算法,继而保证所述客户端与所述服务端之间会采用证书协商方式协商加密密钥,通过确定修改后的客户端握手报文中的算法套件为预先确定的算法套件,以使中间设备能利用修改后的客户端握手报文中的算法套件准确地获取到加密密钥。
基于第一方面,在一种可能的设计中,所述利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥,包括:利用所述预先确定的算法套件对所述预主密钥进行计算,得到认证密钥和所述加密密钥;对应的,所述方法还包括:接收所述客户端发送的第一加密握手消息报文;其中,所述第一加密握手消息报文中包括:第一哈希值;所述第一哈希值通过所述客户端利用所述加密密钥加密第一哈希计算结果得到;所述第一哈希计算结果通过所述客户端利用所述认证密钥对所述客户端握手报文进行哈希计算得到;利用所述认证密钥对所述修改后的客户端握手报文进行哈希计算,得到第二哈希计算结果;利用所述加密密钥对所述第二哈希计算结果进行加密,得到第二哈希值;向所述服务端发送第二加密握手消息报文;其中,所述第二加密握手消息报文中包括:所述第二哈希值;接收所述服务端发送的第三加密握手消息报文;其中,所述第三加密握手消息报文中包括:第三哈希值;所述第三哈希值为所述服务端利用所述加密密钥加密第三哈希计算结果得到;所述第三哈希计算结果通过所述服务端利用所述认证密钥对所述修改后的客户端握手报文和所述第二加密握手消息报文进行哈希计算得到;利用所述认证密钥对所述客户端握手报文和所述第一加密握手消息报文进行哈希计算,得到第四哈希计算结果;利用所述加密密钥对所述第四哈希计算结果进行加密,得到第四哈希值;向所述客户端发送第四加密握手消息报文;其中,所述第四加密握手消息报文中包括:所述第四哈希值。
由于中间设备是将修改后的客户端握手报文发送给所述服务端,而不是将原始的客户端握手报文发送给所述服务端,因此,为了保证所述客户端和所述服务端之间能够成功完成认证,继而保证所述客户端和所述服务端能够协商出该加密密钥,从而后续也会利用该加密密钥传输数据报文,因此,在上述实现过程中,通过拦截所述客户端发送给所述服务端的报文,并对拦截的报文进行修改后发送给所述服务端进行认证,以保证所述服务端能认证成功,以及通过拦截所述服务端发送给所述客户端的报文,并对拦截的报文进行修改后发送给所述客户端进行认证,以保证所述客户端能认证成功,继而保证所述客户端和所述服务端能够成功完成认证,从而保证所述客户端和所述服务端能够成功协商出该加密密钥。
基于第一方面,在一种可能的设计中,在所述接收所述客户端发送的客户端密钥交换报文之前,所述方法还包括:接收所述服务端发送的服务端握手报文;其中,所述服务端握手报文中包括目标算法套件;将所述服务端握手报文转发给所述客户端;所述利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥,包括:利用所述目标算法套件对所述预主密钥进行计算,得到所述加密密钥。
在所述客户端和所述服务端采用证书协商方式协商加密密钥的情况下,由于所述客户端和所述服务端均会利用服务端握手报文中的目标算法套件计算出加密密钥,因此,在上述实现过程中,利用所述服务端发送的服务端握手报文中的目标算法套件对预主密钥进行计算,以准确地得到加密密钥。
第二方面,本申请实施例提供一种通信装置,应用于分别与所述客户端与所述服务端通信连接的中间设备,所述装置包括:报文接收单元,用于接收所述客户端发送的客户端密钥交换报文,其中,所述客户端密钥交换报文通过所述客户端利用所述服务端发送的设备证书的证书公钥加密获取到的预主密钥生成;解密单元,用于利用预先获取到的与所述证书公钥对应的私钥对所述客户端密钥交换报文进行解密,得到所述预主密钥;加密密钥获取单元,用于利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥;报文转发单元,用于将所述客户端密钥交换报文转发给所述服务端。
基于第二方面,在一种可能的设计中,确定预先确定的算法套件的步骤包括:接收所述客户端发送的客户端握手报文;其中,所述客户端握手报文中包括:所述客户端支持的算法套件;在确定所述客户端支持的算法套件只包括证书协商类算法时,确定所述客户端支持的算法套件为所述预先确定的算法套件;将所述客户端握手报文发送给所述服务端。
基于第二方面,在一种可能的设计中,确定预先确定的算法套件的步骤包括:在确定所述客户端支持的算法套件还包括除所述证书协商类算法之外的其他算法时,删除所述客户端握手报文中的所述其他算法,得到修改后的客户端握手报文;将所述修改后的客户端握手报文发送给所述服务端;确定所述修改后的客户端握手报文中的算法套件为所述预先确定的算法套件。
基于第二方面,在一种可能的设计中,所述加密密钥获取单元,具体用于利用所述预先确定的算法套件对所述预主密钥进行计算,得到认证密钥和所述加密密钥;对应的,所述装置还包括:验证单元,用于接收所述客户端发送的第一加密握手消息报文;其中,所述第一加密握手消息报文中包括:第一哈希值;所述第一哈希值通过所述客户端利用所述加密密钥加密第一哈希计算结果得到;所述第一哈希计算结果通过所述客户端利用所述认证密钥对所述客户端握手报文进行哈希计算得到;以及利用所述认证密钥对所述修改后的客户端握手报文进行哈希计算,得到第二哈希计算结果;利用所述加密密钥对所述第二哈希计算结果进行加密,得到第二哈希值;向所述服务端发送第二加密握手消息报文;其中,所述第二加密握手消息报文中包括:所述第二哈希值;接收所述服务端发送的第三加密握手消息报文;其中,所述第三加密握手消息报文中包括:第三哈希值;所述第三哈希值为所述服务端利用所述加密密钥加密第三哈希计算结果得到;所述第三哈希计算结果通过所述服务端利用所述认证密钥对所述修改后的客户端握手报文和所述第二加密握手消息报文进行哈希计算得到;利用所述认证密钥对所述客户端握手报文和所述第一加密握手消息报文进行哈希计算,得到第四哈希计算结果;利用所述加密密钥对所述第四哈希计算结果进行加密,得到第四哈希值;向所述客户端发送第四加密握手消息报文;其中,所述第四加密握手消息报文中包括:所述第四哈希值。
基于第二方面,在一种可能的设计中,所述装置还包括:接收单元,用于接收所述服务端发送的服务端握手报文;其中,所述服务端握手报文中包括目标算法套件;发送单元,用于将所述服务端握手报文转发给所述客户端;对应的,所述加密密钥获取单元,还用于利用所述目标算法套件对所述预主密钥进行计算,得到所述加密密钥。
第三方面,本申请实施例提供一种电子设备,包括处理器以及与所述处理器连接的存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行第一方面所述的方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面所述的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的密钥获取系统的结构示意图。
图2为本申请实施例提供的通信方法的流程示意图。
图3为本申请实施例提供的通信装置的结构示意图。
图4为本申请实施例提供的电子设备的结构示意图。
图标:100-密钥获取系统;101-所述客户端;102-所述服务端;103-中间设备;300-通信装置;310-报文接收单元;320-解密单元;330-加密密钥获取单元;340-报文转发单元;400-电子设备;401-处理器;402-存储器;403-通信接口。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1为本申请实施例提供的密钥获取系统100,所述系统包括:客户端101、服务端102和中间设备103,所述中间设备103分别与所述客户端101和所述服务端102通信连接。其中,所述服务端102中预先存储所述服务端102的设备证书,所述服务端102和中间设备103均预先存储有与所述设备证书中的公钥对应的私钥。
请参照图2,图2为本申请实施例提供的一种通信方法的流程图,下面将对图2所示的流程进行详细阐述,所述方法应用图1所述的系统,所述方法包括步骤:S10、S11、S12、S13、S14、S15、S16、S17、S18、S19、S20、S21、S22、S23和S24。
S10:所述服务端102向中间设备103发送服务端握手(Server Hello)报文;其中,所述Server Hello报文中包括目标算法套件;所述目标算法套件属于证书协商类算法。
S11:中间设备103将所述Server Hello报文转发给所述客户端101。
S12:所述客户端101利用所述目标算法对获取到的预主密钥进行计算,得到加密密钥和认证密钥。
S13:所述服务端102向所述中间设备103发送所述服务端102的设备证书。
S14:中间设备103将所述设备证书转发给所述客户端101。
S15:所述客户端101基于所述设备证书对所述预主密钥进行加密,生成客户端密钥交换(Client Key Exchange)报文。
S16:所述服务端102向中间设备103发送服务端握手完成(Server Hello Done)报文。
S17:中间设备103将所述Server Hello Done报文转发给所述客户端101。
S18:所述客户端101将所述Client Key Exchange报文发送给中间设备103。
S19:中间设备103接收所述Client Key Exchange报文;
S20:中间设备103利用预先获取到的与所述证书公钥对应的私钥对所述ClientKey Exchange报文进行解密,得到所述预主密钥。
S21:中间设备103利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端101和所述服务端102之间协商确定的加密密钥。
S22:中间设备103将所述Client Key Exchange报文转发给所述服务端102。
S23:所述服务端102利用预先获取到的所述私钥对所述Client Key Exchange报文进行解密,得到所述预主密钥。
S24:所述服务端102利用所述目标算法对所述预主密钥进行计算,得到所述加密密钥和所述认证密钥。
下面对上述方法进行详细介绍。
作为一种实施方式,在S10之前,所述方法还包括步骤:A1、A2和A3。
A1:所述客户端101向中间设备103发送Client Hello(客户端握手)报文;其中,所述Client Hello报文中包括:所述客户端101支持的算法套件。
在实际实施过程中,A1可以按照如下方式实施,所述客户端101基于所述客户端101支持的算法套件,生成Client Hello报文,并将所述Client Hello报文发送给中间设备103。
其中,所述客户端101支持的算法套件包括证书协商类算法。证书协商类算法包括但不限于RSA-AES256、RSA-AES512等使用证书协商的算法。
所述客户端101支持的算法套件还可以包括:DH密钥交换(Diffie–Hellman keyexchange)类协商算法。
确定所述客户端支持的算法套件还包括除证书协商类算法之外的其他算法,这里的其他算法主要是指DH密钥交换类协商算法。A2:中间设备103接收所述Client Hello报文。
在实际实施过程中,A2可以按照如下方式实施,中间设备103实时或者不定时地接收所述Client Hello报文。
A3:中间设备103在确定所述客户端101支持的算法套件只包括所述证书协商类算法时,将所述Client Hello报文发送给所述服务端102。
在实际实施过程中,A3可以按照如下方式实施,中间设备103从所述Client Hello报文中提取出所述客户端101支持的算法套件,继而确定所述客户端101支持的算法套件是否只包括所述证书协商类算法,并在确定所述客户端101支持的算法套件只包括所述证书协商类算法时,将所述Client Hello报文发送给所述服务端102。
作为一种实施方式,所述方法还包括步骤:B1、B2和B3。
B1:中间设备103在确定所述客户端101支持的算法套件还包括除证书协商类算法之外的其他算法时,删除所述Client Hello报文中的所述其他算法,得到修改后的ClientHello报文。
在实际实施过程中,B1可以按照如下方式实施,中间设备103在确定所述客户端101支持的算法套件除了包括证书协商类算法,还包括除证书协商类算法之外的其他算法时,删除所述Client Hello报文中的所述其他算法,得到修改后的Client Hello报文。
在中间设备103得到修改后的Client Hello报文之后,执行步骤B2。
B2:中间设备103将所述修改后的Client Hello报文发送给所述服务端102。
在实际实施过程中,B2可以按照如下方式实施,中间设备103实时或者不定时地将所述修改后的Client Hello报文发送给所述服务端102。
在所述服务端102接收到所述Client Hello报文或者所述修改后的Client Hello报文之后,执行步骤S10。
S10:所述服务端102向中间设备103发送Server Hello报文;其中,所述ServerHello报文中包括目标算法套件;所述目标算法套件属于证书协商类算法。
在所述服务端102接收到的是所述Client Hello报文时,S10可以按照如下方式实施,所述服务端102从所述Client Hello报文中提取出所述客户端101支持的算法套件,并基于预先确定的所述服务端102支持的算法套件,从所述客户端101支持的算法套件和所述服务端102支持的算法套件中,确定出一个目标算法套件,并基于所述目标算法套件生成Server Hello报文,并将Server Hello报文发送给中间设备103。
其中,所述目标算法套件既属于所述客户端101支持的算法套件中的套件,也属于所述服务端102支持的算法套件中的套件。可以理解的是,由于所述客户端101支持的算法套件属于证书协商类算法,因此,所述目标算法套件也属于证书协商类算法。
在所述服务端102接收到的是所述修改后的Client Hello报文时,S10可以按照如下方式实施,所述服务端102从所述修改后的Client Hello报文中提取出全部算法套件,并基于预先确定的所述服务端102支持的算法套件,从所述全部算法套件和所述服务端102支持的算法套件两者相同的算法套件中,确定出一个目标算法套件,也就是说,所述目标算法套件既属于所述全部算法套件中的套件,也属于所述服务端102支持的算法套件中的套件。可以理解的是,由于所述全部算法套件属于证书协商类算法,因此,所述目标算法套件也属于证书协商类算法。
S11:中间设备103将所述Server Hello报文转发给所述客户端101。
在实际实施过程中,S11可以按照如下方式实施,中间设备103实时或者不定时地将所述Server Hello报文转发给所述客户端101。
S12:所述客户端101利用所述目标算法对获取到的预主密钥进行计算,得到加密密钥和认证密钥。
在实际实施过程中,S12可以按照如下方式实施,所述客户端101接收所述ServerHello报文,并从所述Server Hello报文中提取出所述目标算法套件,继而利用所述目标算法套件对获取到的所述预主密钥进行计算,得到所述加密密钥和所述认证密钥。
其中,所述预主密钥可以是所述客户端101在接收到所述Server Hello报文之后,由所述客户端101随机生成的。
所述预主密钥也可以是在所述客户端101接收到所述Server Hello报文之前,预先存储在所述客户端101中的。
其中,利用所述目标算法套件对所述预主密钥进行计算,得到加密密钥和认证密钥的具体实施方式为本领域熟知技术,因此,在此不再赘述。
所述服务端102在确定出所述目标算法之后,执行步骤S13。
S13:所述服务端102向所述中间设备103发送所述服务端102的设备证书。
所述服务端102将预先存储的所述服务端102的证书发送给所述中间设备103。
S14:所述中间设备103将所述设备证书转发给所述客户端101。
在实际实施过程中,S14可以按照如下方式实施,所述中间设备103在接收到所述设备证书之后,实时或者不定时地将所述设备证书转发给所述客户端101。
S15:所述客户端101基于所述设备证书对所述预主密钥进行加密,生成ClientKey Exchange报文。
在实际实施过程中,S15可以按照如下方式实施,所述客户端101从所述设备证书中提取出证书公钥,并利用所述证书公钥对所述预主密钥进行加密,得到加密后的密钥,继而根据所述加密后的密钥生成Client Key Exchange报文。
在所述服务端102在向所述中间设备103发送了Server Hello报文之后,执行步骤S16。
S16:所述服务端102向中间设备103发送Server Hello Done报文。
S17:中间设备103将所述Server Hello Done报文转发给所述客户端101。
S18:所述客户端101将所述Client Key Exchange报文发送给中间设备103。
在实际实施过程中,S18可以按照如下方式实施,所述客户端101在接收到所述Server Hello Done报文之后,所述客户端101实时或者不定时地将所述Client KeyExchange报文发送给所述中间设备103。
S19:中间设备103接收所述Client Key Exchange报文。
在实际实施过程中,S19可以按照如下方式实施,中间设备103实时或者不定时地接收所述Client Key Exchange报文。
S20:中间设备103利用预先获取到的与所述证书公钥对应的私钥对所述ClientKey Exchange报文进行解密,得到所述预主密钥。
由于所述Client Key Exchange报文中携带的是加密后的密钥,其中,所述加密后的密钥为所述客户端101利用所述证书公钥对所述预主密钥进行加密后生成的,因此,S20可以按照如下方式实施,中间设备103从所述Client Key Exchange报文中提取出所述加密后的密钥,继而利用预先获取到的与所述证书公钥对应的私钥对所述加密后的密钥进行解密,得到所述预主密钥。
在中间设备103得到所述预主密钥之后,执行步骤S21。
S21:中间设备103利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端101和所述服务端102之间协商确定的加密密钥。
作为一种实施方式,S21包括:中间设备103利用所述目标算法套件对所述预主密钥进行计算,得到所述加密密钥。
中间设备103从所述Server Hello报文中提出所述目标算法,继而利用所述目标算法对所述预主密钥进行计算,得到所述加密密钥。
中间设备103在从所述客户端101发送的所述Client Hello报文中提取出所述客户端101支持的算法套件,并确定所述客户端101支持的算法套件只包括所述证书协商类算法的情况下,作为一种实施方式,S21可以按照如下方式,中间设备103利用所述客户端101支持的算法套件对所述预主密钥进行计算,得到所述加密密钥。
中间设备103在确定所述客户端101支持的算法套件还包括除证书协商类算法之外的其他算法时,作为一种实施方式,S21可以按照如下方式实施,中间设备103利用所述修改后的Client Hello报文中的算法套件对所述预主密钥进行计算,得到所述认证密钥和所述加密密钥。
中间设备103在接收到所述Client Key Exchange报文之后,执行步骤S22。
S22:中间设备103将所述Client Key Exchange报文转发给所述服务端102。
中间设备103定时或者不定时地将所述Client Key Exchange报文转发给所述服务端102。
S23:所述服务端102利用预先获取到的所述私钥对所述Client Key Exchange报文进行解密,得到所述预主密钥。
由于S23的具体实施方式和S20相同,因此,在此不再赘述。
在所述服务端102得到所述预主密钥和所述目标算法之后,执行步骤S24。
S24:所述服务端102利用所述目标算法对所述预主密钥进行计算,得到所述加密密钥和所述认证密钥。
由于利用目标算法对预主密钥进行计算,得到加密密钥和认证密钥的具体实施方式为本领域熟知技术,因此,在此不再赘述。
在确定所述客户端101支持的算法套件还包括除证书协商类算法之外的其他算法的情况下,作为一种实施方式,在S18之后,所述方法还包括步骤:C1-C14。
C1:所述客户端101向所述中间设备103发送第一加密握手消息(EncryptedHandshake Message)报文;其中,所述第一Encrypted Handshake Message报文中包括:第一哈希值;所述第一哈希值通过所述客户端101利用所述加密密钥加密第一哈希计算结果得到;所述第一哈希计算结果通过所述客户端101利用所述认证密钥对所述Client Hello报文进行哈希计算得到。
在实际实施过程中,C1可以按照如下方式实施,所述客户端101在获取到所述认证密钥和所述加密密钥之后,所述客户端101利用所述认证密钥对所述Client Hello报文进行哈希计算,得到第一哈希计算结果,继而利用所述加密密钥对所述第一哈希计算结果进行加密,得到第一哈希值,从而根据所述第一哈希值生成第一Encrypted HandshakeMessage报文,并将所述第一Encrypted Handshake Message报文发送给所述中间设备103。
作为一种实施方式,所述客户端101也可以利用所述认证密钥对所述ClientHello报文和所述Server Hello报文进行哈希计算,得到所述第一哈希计算结果。
在中间设备103只是将所述修改后的Client Hello报文发送给所述服务端102,而未将所述Client Hello报文发送给所述服务端102的情况下,中间设备103为了保证所述服务端102能够认证成功,在所述客户端101获取到所述认证密钥、所述加密密钥和所述修改后的Client Hello报文,以及向所述中间设备103发送第一Encrypted Handshake Message报文之后,中间设备103执行步骤C2。
C2:中间设备103利用所述认证密钥对所述修改后的Client Hello报文进行哈希计算,得到第二哈希计算结果。
在实际实施过程中,C2可以按照如下方式实施,中间设备103接收所述第一Encrypted Handshake Message报文,并利用所述认证密钥对所述修改后的Client Hello报文进行哈希计算,得到第二哈希计算结果。
中间设备103在获取到第二哈希计算结果之后,执行步骤C3。
C3:中间设备103利用所述加密密钥对所述第二哈希计算结果进行加密,得到第二哈希值。
在中间设备103得到第二哈希值之后,执行步骤C4。
C4:中间设备103向所述服务端102发送第二Encrypted Handshake Message报文;其中,所述第二Encrypted Handshake Message报文中包括:所述第二哈希值。
在实际实施过程中,C4可以按照如下方式实施,中间设备103根据所述第二哈希值生成第二Encrypted Handshake Message报文,并将所述第二Encrypted HandshakeMessage报文发送给所述服务端102。
C5:所述服务端102接收所述第二Encrypted Handshake Message报文。
所述服务端102实时或者不定时地接收所述第二Encrypted Handshake Message报文。
在所述服务端102接收到所述第二Encrypted Handshake Message报文之后,执行步骤C6。
C6:所述服务端102利用所述加密密钥对所述第二Encrypted Handshake Message报文进行解密,得到所述第二哈希计算结果。
在实际实施过程中,C6可以按照如下方式实施,所述服务端102从所述第二Encrypted Handshake Message报文中提取出所述第二哈希值,继而利用所述加密密钥对所述第二哈希值解密,得到所述第二哈希计算结果。
C7:所述服务端102利用所述认证密钥对所述修改后的Client Hello报文进行哈希计算,在确定哈希计算结果和所述第二哈希计算结果相同时,向所述中间设备103发送第三Encrypted Handshake Message报文;其中,所述第三Encrypted Handshake Message报文中包括:第三哈希值;所述第三哈希值为所述服务端102利用所述加密密钥加密第三哈希计算结果得到;所述第三哈希计算结果通过所述服务端102利用所述认证密钥对所述修改后的Client Hello报文和所述第二Encrypted Handshake Message报文进行哈希计算得到。
在所述第二哈希计算结果为利用所述认证密钥对所述修改后的Client Hello报文进行哈希计算得到的情况下,C7可以按照如下方式实施,所述服务端102利用所述认证密钥对所述修改后的Client Hello报文进行哈希计算,并在确定哈希计算结果与所述第二哈希计算结果相同时,利用所述认证密钥对所述修改后的Client Hello报文和所述第二Encrypted Handshake Message报文进行哈希计算,得到第三哈希计算结果,继而利用所述加密密钥对所述第三哈希计算结果进行加密,得到第三哈希值,从而根据所述第三哈希值生成并发送第三Encrypted Handshake Message报文给所述中间设备103。
在所述第二哈希计算结果为利用所述认证密钥对所述修改后的Client Hello报文和所述Server Hello报文进行哈希计算进行哈希计算得到的情况下,C7可以按照如下方式实施,所述服务端102利用所述认证密钥对所述修改后的Client Hello报文和所述Server Hello报文进行哈希计算,并在确定哈希计算结果与所述第二哈希计算结果相同时,向所述中间设备103发送第三Encrypted Handshake Message报文。
作为一种实施方式,C7可以按照如下方式实施,所述服务端102在确定哈希计算结果与所述第二哈希计算结果相同时,所述服务端102利用所述认证密钥对所述修改后的Client Hello报文、所述第二Encrypted Handshake Message报文和所述Server Hello报文进行哈希计算,得到第三哈希计算结果,继而利用所述加密密钥对所述第三哈希计算结果进行加密,得到第三哈希值,从而根据所述第三哈希值生成并发送第三EncryptedHandshake Message报文给所述中间设备103。
值得一提的是,所述服务端102在确定哈希计算结果与所述第二哈希计算结果不同时,不会生成并发送所述第三Encrypted Handshake Message报文给所述中间设备103。
在所述服务端102将所述第三Encrypted Handshake Message报文给所述中间设备103之后,执行步骤C8。
C8:中间设备103接收所述第三Encrypted Handshake Message报文。
中间设备103实时或者不定时地接收所述第三Encrypted Handshake Message报文。
在中间设备103是将所述修改后的Client Hello报文和所述第二EncryptedHandshake Message报文发送给所述服务端102,而未将所述Client Hello报文和所述第一Encrypted Handshake Message报文发送给所述服务端102的情况下,中间设备103为了保证所述客户端101能够认证成功,因此,执行步骤C9。
C9:中间设备103利用所述认证密钥对所述Client Hello报文和所述第一Encrypted Handshake Message报文进行哈希计算,得到第四哈希计算结果。
在所述第三哈希计算结果为利用所述认证密钥对所述修改后的Client Hello报文和所述第二Encrypted Handshake Message报文进行哈希计算所得到时,为了保证所述客户端101能够认证成功,因此,C9可以按照如下方式实施,中间设备103利用所述认证密钥对所述Client Hello报文和所述第一Encrypted Handshake Message报文进行哈希计算,得到所述第四哈希计算结果。
在所述第三哈希计算结果为利用所述认证密钥对所述修改后的Client Hello报文、所述第二Encrypted Handshake Message报文和所述Server Hello报文进行哈希计算所得到时,为了保证所述客户端101能够认证成功,因此,因此,C9可以按照如下方式实施,中间设备103利用所述认证密钥对所述Client Hello报文、所述第一Encrypted HandshakeMessage报文和所述Server Hello报文进行哈希计算,得到所述第四哈希计算结果。
在中间设备103获取到所述第四哈希计算结果之后,执行步骤C10。
C10:中间设备103利用所述加密密钥对所述第四哈希计算结果进行加密,得到第四哈希值。
在中间设备103得到所述第四哈希值之后,执行步骤C11。
C11:中间设备103向所述客户端101发送第四Encrypted Handshake Message报文;其中,所述第四Encrypted Handshake Message报文中包括:所述第四哈希值。
在实际实施过程中,C11可以按照如下方式实施,中间设备103根据所述第四哈希值生成第四Encrypted Handshake Message报文,并将所述第四Encrypted HandshakeMessage报文发送给所述客户端101。
C12:所述客户端101接收所述第四Encrypted Handshake Message报文。
所述客户端101实时或者不定时地接收所述第四Encrypted Handshake Message报文。
C13:所述客户端101利用所述加密密钥对所述第四Encrypted HandshakeMessage报文进行解密,得到所述第四哈希计算结果。
所述客户端101从所述第四Encrypted Handshake Message报文中提出所述第四哈希值,继而利用所述加密密钥对所述第四哈希值进行解密,得到所述第四哈希计算结果。
C14:所述客户端101利用所述认证密钥对所述Client Hello报文和所述第一Encrypted Handshake Message报文进行哈希计算,在确定哈希计算结果和所述第四哈希计算结果相同,确定协商成功。
在所述第四哈希计算结果为利用所述认证密钥对所述Client Hello报文和所述第一Encrypted Handshake Message报文进行哈希计算得到的时,C4可以按照如下方式实施,所述客户端101利用所述认证密钥对所述Client Hello报文和所述第一EncryptedHandshake Message报文进行哈希计算,并将哈希计算结果与所述第四哈希计算结果进行比较,继而在确定哈希计算结果和所述第四哈希计算结果相同,确定协商成功。
在所述第四哈希计算结果为利用所述认证密钥对所述Client Hello报文、所述第一Encrypted Handshake Message报文和所述Server Hello报文进行哈希计算得到的时,C4可以按照如下方式实施,所述客户端101利用所述认证密钥对所述Client Hello报文、所述第一Encrypted Handshake Message报文和所述Server Hello报文进行哈希计算,并将哈希计算结果与所述第四哈希计算结果进行比较,继而在确定哈希计算结果和所述第四哈希计算结果相同,确定协商成功。
在确定所述客户端101支持的算法套件只包括证书协商类算法的情况下,作为一种实施方式,在S18之后,所述方法还包括步骤:D1-D9。
D1:所述客户端101向所述中间设备103发送第一Encrypted Handshake Message报文;其中,所述第一Encrypted Handshake Message报文中包括:第一哈希值;所述第一哈希值通过所述客户端101利用所述加密密钥加密第一哈希计算结果得到;所述第一哈希计算结果通过所述第一设备101利用所述认证密钥对所述Client Hello报文进行哈希计算得到。
D2:中间设备103向所述服务端102转发所述第一Encrypted Handshake Message报文。
D3:所述服务端102接收所述第一Encrypted Handshake Message报文。
其中,D1-D3的具体实施方式请和C1-C3相同,因此,在此不再赘述。
D4:所述服务端102利用所述加密密钥对所述第一Encrypted Handshake Message报文进行解密,得到所述第一哈希计算结果。
其中,D4的具体实施方式和C6相同,因此,在此不再赘述。
D5:所述服务端102利用所述认证密钥对所述Client Hello报文进行哈希计算,在确定哈希计算结果和所述第一哈希计算结果相同时,向所述中间设备103发送第五Encrypted Handshake Message报文;其中,所述第五Encrypted Handshake Message报文中包括:第五哈希值;所述第五哈希值为所述服务端102利用所述加密密钥加密第五哈希计算结果得到;所述第五哈希计算结果通过所述服务端102利用所述认证密钥对所述ClientHello报文和所述第一Encrypted Handshake Message报文进行哈希计算得到。
其中,D5的具体实施方式请参照步骤C7,因此,在此不再赘述。
D6:中间设备103将所述第五Encrypted Handshake Message报文转发给所述客户端101;其中,所述第五Encrypted Handshake Message报文中包括:所述第五哈希值。
D7:所述客户端101接收所述第五Encrypted Handshake Message报文。
D8:所述客户端101利用所述加密密钥对所述第五Encrypted Handshake Message报文进行解密,得到所述第五哈希计算结果。
D9:所述客户端101利用所述认证密钥对所述Client Hello报文和所述第一Encrypted Handshake Message报文进行哈希计算,在确定哈希计算结果和所述第五哈希计算结果相同,确定协商成功。
其中,D9的具体实施方式请参照步骤C14,因此,在此不再赘述。
请参照图3,图3是本申请实施例提供的一种通信装置300的结构框图;所述装置应用于分别与所述客户端与所述服务端通信连接的中间设备,下面将对图3所示的结构框图进行阐述,所示装置包括:
报文接收单元310,用于接收所述客户端101发送的Client Key Exchange报文,其中,所述Client Key Exchange报文通过所述客户端101利用所述服务端102发送的设备证书的证书公钥加密获取到的预主密钥生成。
解密单元320,用于利用预先获取到的与所述证书公钥对应的私钥对所述ClientKey Exchange报文进行解密,得到所述预主密钥。
加密密钥获取单元330,用于利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端101和所述服务端102之间协商确定的加密密钥。
报文转发单元340,用于将所述Client Key Exchange报文转发给所述服务端102。
作为一种实施方式,确定预先确定的算法套件的步骤包括:接收所述客户端101发送的Client Hello报文;其中,所述Client Hello报文中包括:所述客户端支持的算法套件;在确定所述客户端支持的算法套件只包括所述证书协商类算法时,确定所述客户端支持的算法套件为所述预先确定的算法套件;将所述客户端握手报文发送给所述服务端102。
作为一种实施方式,确定预先确定的算法套件的步骤包括:在确定所述客户端101支持的算法套件还包括除证书协商类算法之外的其他算法时,删除所述Client Hello报文中的所述其他算法,得到修改后的Client Hello报文;将所述修改后的Client Hello报文发送给所述服务端102;确定所述修改后的Client Hello报文中的算法套件为所述预先确定的算法套件。
作为一种实施方式,所述加密密钥获取单元330,具体用于利用所述预先确定的算法套件对所述预主密钥进行计算,得到认证密钥和所述加密密钥;对应的,所述装置还包括:验证单元,用于接收所述客户端101发送的第一Encrypted Handshake Message报文;其中,所述第一Encrypted Handshake Message报文中包括:第一哈希值;所述第一哈希值通过所述客户端101利用所述加密密钥加密第一哈希计算结果得到;所述第一哈希计算结果通过所述客户端101利用所述认证密钥对所述Client Hello报文进行哈希计算得到;以及利用所述认证密钥对所述修改后的Client Hello报文进行哈希计算,得到第二哈希计算结果;利用所述加密密钥对所述第二哈希计算结果进行加密,得到第二哈希值;向所述服务端102发送第二Encrypted Handshake Message报文;其中,所述第二Encrypted HandshakeMessage报文中包括:所述第二哈希值;接收所述服务端102发送的第三EncryptedHandshake Message报文;其中,所述第三Encrypted Handshake Message报文中包括:第三哈希值;所述第三哈希值为所述服务端102利用所述加密密钥加密第三哈希计算结果得到;所述第三哈希计算结果通过所述服务端102利用所述认证密钥对所述修改后的ClientHello报文和所述第二Encrypted Handshake Message报文进行哈希计算得到;利用所述认证密钥对所述Client Hello报文和所述第一Encrypted Handshake Message报文进行哈希计算,得到第四哈希计算结果;利用所述加密密钥对所述第四哈希计算结果进行加密,得到第四哈希值;向所述客户端101发送第四Encrypted Handshake Message报文;其中,所述第四Encrypted Handshake Message报文中包括:所述第四哈希值。
作为一种实施方式,所述装置还包括:接收单元,用于接收所述服务端102发送的Server Hello报文;其中,所述Server Hello报文中包括目标算法套件;发送单元,用于将所述Server Hello报文转发给所述客户端101;对应的,所述加密密钥获取单元,还用于利用所述目标算法套件对所述预主密钥进行计算,得到所述加密密钥。
本实施例对的各功能单元实现各自功能的过程,请参见上述图1-2所示实施例中描述的内容,此处不再赘述。
请参照图4,图4为本申请实施例提供的一种电子设备400的结构示意图,电子设备400可以是个人电脑、平板电脑、智能手机、个人数字助理等。
电子设备400可以包括:存储器402、处理401、通信接口403和通信总线,通信总线用于实现这些组件的连接通信。
所述存储器402用于存储本申请实施例提供的通信方法和装置对应的计算程序指令等各种数据,其中,存储器402可以是,但不限于,随机存取存储器(Random AccessMemory),只读存储器(Read Only Memory),可编程只读存储器(Programmable Read-OnlyMemory),可擦除只读存储器(Erasable Programmable Read-Only Memory),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory)等。
处理器401用于执行通信方法和装置对应的计算程序指令。
其中,处理器401可能是一种集成电路芯片,具有信号的处理能力。上述的处理器401可以是通用处理器,包括中央处理器(Central Processing Unit)、网络处理器(Network Processor)等;还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信接口403,用于接收或者发送数据。
此外,本申请实施例还提供了一种存储介质,在该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本申请任一项实施方式所提供的方法。
综上所述,本申请各实施例提出的通信方法、装置、电子设备及存储介质,在所述客户端与所述服务端之间采用证书协商方式协商加密密钥的情况下,中间设备利用预先获取到的所述服务端的设备私钥,对所述客户端发送给所述服务端的客户端密钥交换报文进行解密,得到预主密钥,继而利用预先确定的算法套件对预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥,该过程无需中间设备分别与所述客户端和所述服务端进行密钥协商,就能获取所述客户端与所述服务端后续进行数据报文传输所用的加密密钥,降低网络开销,同时,在所述客户端利用该加密密钥传输数据报文给所述服务端时,中间设备可以直接将从所述客户端处获取到的该数据报文转发给所述服务端,无需通过中间设备解密后再加密转发,继而不会影响所述客户端与所述服务端之间的数据传输效率。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
Claims (6)
1.一种通信方法,其特征在于,应用于分别与客户端与服务端通信连接的中间设备,方法包括:
接收所述客户端发送的客户端密钥交换报文,其中,所述客户端密钥交换报文通过所述客户端利用所述服务端发送的设备证书的证书公钥加密获取到的预主密钥生成;
利用预先获取到的与所述证书公钥对应的私钥对所述客户端密钥交换报文进行解密,得到所述预主密钥;
利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥;
将所述客户端密钥交换报文转发给所述服务端;
确定预先确定的算法套件的步骤包括:
在确定所述客户端支持的算法套件还包括除证书协商类算法之外的其他算法时,删除所述客户端握手报文中的所述其他算法,得到修改后的客户端握手报文;
将所述修改后的客户端握手报文发送给所述服务端;
确定所述修改后的客户端握手报文中的算法套件为所述预先确定的算法套件;
所述利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥,包括:
利用所述预先确定的算法套件对所述预主密钥进行计算,得到认证密钥和所述加密密钥;
对应的,所述方法还包括:
接收所述客户端发送的第一加密握手消息报文;其中,所述第一加密握手消息报文中包括:第一哈希值;所述第一哈希值通过所述客户端利用所述加密密钥加密第一哈希计算结果得到;所述第一哈希计算结果通过所述客户端利用所述认证密钥对所述客户端握手报文进行哈希计算得到;
利用所述认证密钥对所述修改后的客户端握手报文进行哈希计算,得到第二哈希计算结果;
利用所述加密密钥对所述第二哈希计算结果进行加密,得到第二哈希值;
向所述服务端发送第二加密握手消息报文;其中,所述第二加密握手消息报文中包括:所述第二哈希值;
接收所述服务端发送的第三加密握手消息报文;其中,所述第三加密握手消息报文中包括:第三哈希值;所述第三哈希值为所述服务端利用所述加密密钥加密第三哈希计算结果得到;所述第三哈希计算结果通过所述服务端利用所述认证密钥对所述修改后的客户端握手报文和所述第二加密握手消息报文进行哈希计算得到;
利用所述认证密钥对所述客户端握手报文和所述第一加密握手消息报文进行哈希计算,得到第四哈希计算结果;
利用所述加密密钥对所述第四哈希计算结果进行加密,得到第四哈希值;
向所述客户端发送第四加密握手消息报文;其中,所述第四加密握手消息报文中包括:所述第四哈希值。
2.根据权利要求1所述的方法,其特征在于,确定预先确定的算法套件的步骤包括:
接收所述客户端发送的客户端握手报文;其中,所述客户端握手报文中包括:所述客户端支持的算法套件;
在确定所述客户端支持的算法套件只包括所述证书协商类算法时,确定所述客户端支持的算法套件为所述预先确定的算法套件;
将所述客户端握手报文发送给所述服务端。
3.根据权利要求1-2中任一权项所述的方法,其特征在于,在所述接收所述客户端发送的客户端密钥交换报文之前,所述方法还包括:
接收所述服务端发送的服务端握手报文;其中,所述服务端握手报文中包括目标算法套件;
将所述服务端握手报文转发给所述客户端;
对应的,所述利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥,包括:
利用所述目标算法套件对所述预主密钥进行计算,得到所述加密密钥。
4.一种通信装置,其特征在于,应用于分别与客户端和服务端通信连接的中间设备,所述装置包括:
报文接收单元,用于接收所述客户端发送的客户端密钥交换报文,其中,所述客户端密钥交换报文通过所述客户端利用所述服务端发送的设备证书的证书公钥加密获取到的预主密钥生成;
解密单元,用于利用预先获取到的与所述证书公钥对应的私钥对所述客户端密钥交换报文进行解密,得到所述预主密钥;
加密密钥获取单元,用于利用预先确定的算法套件对所述预主密钥进行计算,得到所述客户端和所述服务端之间协商确定的加密密钥;
报文转发单元,用于将所述客户端密钥交换报文转发给所述服务端;
确定预先确定的算法套件的步骤包括:
在确定所述客户端支持的算法套件还包括除证书协商类算法之外的其他算法时,删除所述客户端握手报文中的所述其他算法,得到修改后的客户端握手报文;
将所述修改后的客户端握手报文发送给所述服务端;
确定所述修改后的客户端握手报文中的算法套件为所述预先确定的算法套件;
所述加密密钥获取单元,具体用于利用所述预先确定的算法套件对所述预主密钥进行计算,得到认证密钥和所述加密密钥;对应的,所述装置还包括:验证单元,用于接收所述客户端发送的第一加密握手消息报文;其中,所述第一加密握手消息报文中包括:第一哈希值;所述第一哈希值通过所述客户端利用所述加密密钥加密第一哈希计算结果得到;所述第一哈希计算结果通过所述客户端利用所述认证密钥对所述客户端握手报文进行哈希计算得到;以及利用所述认证密钥对所述修改后的客户端握手报文进行哈希计算,得到第二哈希计算结果;利用所述加密密钥对所述第二哈希计算结果进行加密,得到第二哈希值;向所述服务端发送第二加密握手消息报文;其中,所述第二加密握手消息报文中包括:所述第二哈希值;接收所述服务端发送的第三加密握手消息报文;其中,所述第三加密握手消息报文中包括:第三哈希值;所述第三哈希值为所述服务端利用所述加密密钥加密第三哈希计算结果得到;所述第三哈希计算结果通过所述服务端利用所述认证密钥对所述修改后的客户端握手报文和所述第二加密握手消息报文进行哈希计算得到;利用所述认证密钥对所述客户端握手报文和所述第一加密握手消息报文进行哈希计算,得到第四哈希计算结果;利用所述加密密钥对所述第四哈希计算结果进行加密,得到第四哈希值;向所述客户端发送第四加密握手消息报文;其中,所述第四加密握手消息报文中包括:所述第四哈希值。
5.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行如权利要求1-3中任一项所述的方法。
6.一种存储介质,其特征在于,所述存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如权利要求1-3中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202011413638.XA CN112511550B (zh) | 2020-12-02 | 2020-12-02 | 通信方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202011413638.XA CN112511550B (zh) | 2020-12-02 | 2020-12-02 | 通信方法、装置、电子设备及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112511550A CN112511550A (zh) | 2021-03-16 |
| CN112511550B true CN112511550B (zh) | 2022-02-22 |
Family
ID=74970433
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202011413638.XA Active CN112511550B (zh) | 2020-12-02 | 2020-12-02 | 通信方法、装置、电子设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112511550B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115801278B (zh) * | 2022-11-28 | 2025-05-30 | 湖北天融信网络安全技术有限公司 | 一种加密报文的卸载方法、装置、电子设备及存储介质 |
| CN116015878A (zh) * | 2022-12-27 | 2023-04-25 | 北京天融信网络安全技术有限公司 | 一种流量检测方法、装置、存储介质及设备 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101459506A (zh) * | 2007-12-14 | 2009-06-17 | 华为技术有限公司 | 密钥协商方法、用于密钥协商的系统、客户端及服务器 |
| CN103051613A (zh) * | 2012-12-13 | 2013-04-17 | 北京星网锐捷网络技术有限公司 | 一种报文检测扫描方法、装置及网络安全设备 |
| CN104539620A (zh) * | 2014-12-29 | 2015-04-22 | 飞天诚信科技股份有限公司 | 一种安全的双向ssl认证方法和中间件 |
| CN107241322A (zh) * | 2017-05-27 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种服务端通信管理方法及系统 |
| WO2018121249A1 (zh) * | 2016-12-30 | 2018-07-05 | 中国银联股份有限公司 | 一种基于ssl协议的访问控制方法及装置 |
| CN109600226A (zh) * | 2019-01-25 | 2019-04-09 | 中国人民解放军国防科技大学 | 基于随机数隐式协商的tls协议会话密钥还原方法 |
| CN111740844A (zh) * | 2020-06-24 | 2020-10-02 | 上海缔安科技股份有限公司 | 基于硬件的国密算法的ssl通信方法及装置 |
| CN111771357A (zh) * | 2019-01-31 | 2020-10-13 | 深圳市汇顶科技股份有限公司 | Tls证书认证方法、装置、设备及存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5039146B2 (ja) * | 2007-11-07 | 2012-10-03 | 日本電信電話株式会社 | 共通鍵設定方法、中継装置、及びプログラム |
| CN101299667A (zh) * | 2008-06-05 | 2008-11-05 | 华为技术有限公司 | 一种认证方法、系统、客户端设备和服务器 |
| US11310246B2 (en) * | 2018-08-10 | 2022-04-19 | Cisco Technology, Inc. | Endpoint-assisted inspection of encrypted network traffic |
-
2020
- 2020-12-02 CN CN202011413638.XA patent/CN112511550B/zh active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101459506A (zh) * | 2007-12-14 | 2009-06-17 | 华为技术有限公司 | 密钥协商方法、用于密钥协商的系统、客户端及服务器 |
| CN103051613A (zh) * | 2012-12-13 | 2013-04-17 | 北京星网锐捷网络技术有限公司 | 一种报文检测扫描方法、装置及网络安全设备 |
| CN104539620A (zh) * | 2014-12-29 | 2015-04-22 | 飞天诚信科技股份有限公司 | 一种安全的双向ssl认证方法和中间件 |
| WO2018121249A1 (zh) * | 2016-12-30 | 2018-07-05 | 中国银联股份有限公司 | 一种基于ssl协议的访问控制方法及装置 |
| CN107241322A (zh) * | 2017-05-27 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种服务端通信管理方法及系统 |
| CN109600226A (zh) * | 2019-01-25 | 2019-04-09 | 中国人民解放军国防科技大学 | 基于随机数隐式协商的tls协议会话密钥还原方法 |
| CN111771357A (zh) * | 2019-01-31 | 2020-10-13 | 深圳市汇顶科技股份有限公司 | Tls证书认证方法、装置、设备及存储介质 |
| CN111740844A (zh) * | 2020-06-24 | 2020-10-02 | 上海缔安科技股份有限公司 | 基于硬件的国密算法的ssl通信方法及装置 |
Non-Patent Citations (3)
| Title |
|---|
| A Lightweight Protocol Based on the SSL Protocol for Handheld Devices;Daesung Lee;《2011 International Conference on Information Science and Applications》;20110511;全文 * |
| 支持数字签名的TLS改进协议;司天歌等;《清华大学学报(自然科学版)》;20040130(第01期);全文 * |
| 网络管理系统中身份认证方案的研究;丁振国等;《陕西科技大学学报(自然科学版)》;20090625(第03期);全文 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112511550A (zh) | 2021-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110708170B (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
| CN109347835B (zh) | 信息传输方法、客户端、服务器以及计算机可读存储介质 | |
| US8291231B2 (en) | Common key setting method, relay apparatus, and program | |
| US8732461B2 (en) | Client apparatus, server apparatus, and program using entity authentication and biometric authentication | |
| US12401505B2 (en) | Agile cryptographic deployment service | |
| CN111935712A (zh) | 一种基于NB-IoT通信的数据传输方法、系统及介质 | |
| WO2022111102A1 (zh) | 建立安全连接的方法、系统、装置、电子设备和机器可读存储介质 | |
| CN113225352A (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
| CN106972919B (zh) | 一种密钥协商方法和装置 | |
| CN108809936B (zh) | 一种基于混合加密算法的智能移动终端身份验证方法及其实现系统 | |
| CN111614670A (zh) | 加密文件的发送方法及装置、存储介质 | |
| CN113612852A (zh) | 一种基于车载终端的通信方法、装置、设备及存储介质 | |
| TW202231014A (zh) | 訊息傳輸系統以及應用其中之使用者裝置與資訊安全硬體模組 | |
| CN109272314B (zh) | 一种基于两方协同签名计算的安全通信方法及系统 | |
| CN110690969B (zh) | 一种多方协同完成双向ssl/tls认证的方法和系统 | |
| CN116915488A (zh) | 一种数据加密传输的方法和装置 | |
| CN112511550B (zh) | 通信方法、装置、电子设备及存储介质 | |
| WO2023284691A1 (zh) | 一种账户的开立方法、系统及装置 | |
| CN109547413B (zh) | 具有数据源认证的可转换的数据云存储的访问控制方法 | |
| CN114240428A (zh) | 数据传输方法及装置、数据交易终端、数据供方 | |
| CN116743372A (zh) | 基于ssl协议的量子安全协议实现方法及系统 | |
| US12079613B2 (en) | Processing system and method for updating firmware online | |
| CN114244569A (zh) | Ssl vpn远程访问方法、系统和计算机设备 | |
| CN116015906B (zh) | 用于隐私计算的节点授权方法、节点通信方法和装置 | |
| US20250156860A1 (en) | Security authentication method, apparatus and system for digital currency transaction |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |