[go: up one dir, main page]

CN102801616B - 报文发送和接收的方法、装置和系统 - Google Patents

报文发送和接收的方法、装置和系统 Download PDF

Info

Publication number
CN102801616B
CN102801616B CN201210273217.0A CN201210273217A CN102801616B CN 102801616 B CN102801616 B CN 102801616B CN 201210273217 A CN201210273217 A CN 201210273217A CN 102801616 B CN102801616 B CN 102801616B
Authority
CN
China
Prior art keywords
server
client
certificate
message
sent
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.)
Expired - Fee Related
Application number
CN201210273217.0A
Other languages
English (en)
Other versions
CN102801616A (zh
Inventor
朱贤
李光应
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruide Yinfang (Nantong) Information Technology Co.,Ltd.
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210273217.0A priority Critical patent/CN102801616B/zh
Publication of CN102801616A publication Critical patent/CN102801616A/zh
Priority to PCT/CN2013/074409 priority patent/WO2014019386A1/zh
Priority to US14/577,907 priority patent/US20150156025A1/en
Application granted granted Critical
Publication of CN102801616B publication Critical patent/CN102801616B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种报文发送和接收方法、装置和系统,该报文发送方法包括:向服务器发送客户端握手报文,该客户端握手报文携带客户端缓存的服务器证书的标识;接收服务器发送的服务器握手报文,当服务器确定客户端缓存的服务器证书的标识包括服务器准备使用的证书的标识时,服务器握手报文携带服务器准备使用的证书的标识;在该客户端缓存的服务器证书中,查找与服务器准备使用的证书的标识对应的服务器证书;通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给服务器。本发明可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度。

Description

报文发送和接收的方法、装置和系统
技术领域
本发明涉及通信技术,尤其涉及一种报文发送和接收方法、装置和系统。
背景技术
传输层安全(Transport Layer Security;以下简称:TLS)协议是一种广泛使用的身份认证和安全传输协议。
在TLS中,认证的安全性取决于服务器私钥的安全性和证书本身的安全性。需要注意的是,认证的安全性,并不基于证书的保密性。证书是一种可以公开的对象,只需保证证书的完整性。而证书的完整性,可以通过证书授权(Certificate Authority;以下简称:CA)中心对证书进行数字签名来保证。在验证服务器的证书的完整性时,任何实体可以使用CA证书进行验证。
而CA证书本身的完整性,由另一个上级CA证书做数字签名来保证,这就形成了CA层次,最上层的CA证书称为根证书。如果一个CA证书没有上级CA证书,则该CA证书必须是根证书。客户端需要对根证书进行可信加载。服务器的证书、CA证书、上级CA证书、…、根证书的序列,称为证书链,一个证书链中通常有3到5个证书。
在TLS握手过程中,证书链通常携带在证书(Certificate)报文中传输,由于证书通常比较大,因此上述证书报文的传输导致TLS握手过程占用的时间比较长,降低TLS的连接速度。
另外,TLS协议实现通常采用缓存技术,如果将TLS握手过程中的报文进行缓存,然后一次发送出去,可以避免每发一个报文,都要等对方确认(Acknowledge;以下简称:ACK)之后,才可以发下一个报文。然而,由于证书报文大小的不确定性,通常难以确定缓存区的大小,例如:若将缓存区的大小确定为1K,则证书报文很可能多次发送,这同样会导致TLS握手过程占用的时间比较长,大大降低TLS的连接速度。
发明内容
本发明提供一种报文发送和接收方法、客户端、服务器和系统,以实现缩短TLS握手过程占用的时间,提高TLS的连接速度。
第一方面,本发明实施例提供一种报文发送方法,包括:客户端向服务器发送客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;所述客户端接收所述服务器发送的服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;所述客户端在所述客户端缓存的服务器证书中,查找与所述服务器准备使用的证书的标识对应的服务器证书;所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给所述服务器。
第二方面,本发明实施例提供一种报文发送方法,包括:客户端向服务器发送第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;所述客户端接收所述服务器发送的服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;如果所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书,则所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给所述服务器。
第三方面,本发明实施例提供一种报文接收方法,其特征在于,包括:服务器接收客户端发送的客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;所述服务器向所述客户端发送服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;所述服务器接收所述客户端发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端在所述客户端缓存的服务器证书中查找到与所述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
第四方面,本发明实施例提供一种报文接收方法,包括:服务器接收客户端发送的第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;所述服务器向所述客户端发送服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;所述服务器接收所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
第五方面,本发明实施例提供一种客户端,包括:第一发送模块、第一接收模块、第一查找模块和第一加密模块;所述第一发送模块,用于向服务器发送客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;以及从所述第一加密模块接收加密后的客户端密钥交换报文,将所述加密后的客户端密钥交换报文发送给所述服务器;所述第一接收模块,用于接收所述服务器发送的服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;以及将所述服务器准备使用的证书的标识传递给所述第一查找模块;所述第一查找模块,用于从所述第一接收模块接收所述服务器准备使用的证书的标识,在所述客户端缓存的服务器证书中,查找与所述服务器准备使用的证书的标识对应的服务器证书;以及将查找到的服务器证书传递给所述第一加密模块;所述第一加密模块,用于从所述第一查找模块接收所述查找到的服务器证书,通过所述查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文传递给所述第一发送模块。
第六方面,本发明实施例提供一种客户端,包括:第二发送模块、第二接收模块、第二查找模块和第二加密模块;所述第二发送模块,用于向服务器发送第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;以及从所述第二加密模块接收加密后的客户端密钥交换报文,将所述加密后的客户端密钥交换报文发送给所述服务器;所述第二接收模块,用于接收所述服务器发送的服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;以及将所述服务器准备使用的证书的标识传递给所述第二查找模块;所述第二查找模块,用于从所述第二接收模块接收所述服务器准备使用的证书的标识,在所述客户端缓存的服务器证书中,查找与所述服务器准备使用的证书的标识对应的服务器证书;以及当查找到与所述服务器准备使用的证书的标识对应的服务器证书时,将查找到的服务器证书传递给所述第二加密模块;所述第二加密模块,用于从所述第二查找模块接收所述查找到的服务器证书,通过所述查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,以及将加密后的客户端密钥交换报文传递给所述第二发送模块。
第七方面,本发明实施例提供一种服务器,包括:第三接收模块和第三发送模块;所述第三接收模块,还用于接收客户端发送的客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;以及将所述客户端缓存的服务器证书的标识传递给所述第三发送模块;所述第三发送模块,用于从所述第三接收模块接收所述客户端缓存的服务器证书的标识,向所述客户端发送服务器握手报文,当确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述第三发送模块发送的所述服务器握手报文携带所述服务器准备使用的证书的标识;所述第三接收模块,还用于接收所述客户端发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端在所述客户端缓存的服务器证书中查找到与所述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
第八方面,本发明实施例提供一种服务器,包括:第四接收模块和第四发送模块;所述第四接收模块,用于接收客户端发送的第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;以及将所述不需所述服务器发送证书的指示发送给所述第四发送模块;所述第四发送模块,用于从所述第四接收模块接收所述不需所述服务器发送证书的指示,向所述客户端发送服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;所述第四接收模块,还用于接收所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
第九方面,本发明实施例提供一种报文交换系统,所述系统包括至少一个客户端和至少一个服务器,其中,所述客户端用于:向服务器发送客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;接收所述服务器发送的服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;在所述客户端缓存的服务器证书中,查找与所述服务器准备使用的证书的标识对应的服务器证书;通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给所述服务器;所述服务器用于:接收客户端发送的客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;向所述客户端发送服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;接收所述客户端发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端在所述客户端缓存的服务器证书中查找到与所述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
第十方面,本发明实施例提供一种报文交换系统,所述系统包括至少一个客户端和至少一个服务器,其中,所述客户端用于:向服务器发送第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;接收所述服务器发送的服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;如果所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书,则所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给所述服务器;所述服务器用于:接收客户端发送的第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;向所述客户端发送服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;接收所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
本发明一方面的技术效果是:客户端向服务器发送携带该客户端缓存的服务器证书的标识的客户端握手报文,当该服务器确定上述客户端缓存的服务器证书的标识包括该服务器准备使用的证书的标识时,服务器可以不发送证书报文,而是将服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;然后,客户端在该客户端缓存的服务器证书中,查找与上述服务器准备使用的证书的标识对应的服务器证书,并通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给服务器。本发明中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
本发明另一方面的技术效果是:客户端向服务器发送携带不需所述服务器发送证书的指示的第一客户端握手报文,接收到第一客户端握手报文之后,服务器不发送证书报文,将该服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;如果客户端在该客户端缓存的服务器证书中,查找到与上述服务器准备使用的证书的标识对应的服务器证书,则该客户端可以通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给服务器。本发明中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明报文发送方法一个实施例的流程图;
图2为本发明报文发送方法另一个实施例的流程图;
图3为本发明报文发送方法再一个实施例的流程图;
图4为本发明报文发送方法再一个实施例的流程图;
图5为本发明报文发送方法再一个实施例的流程图;
图6为本发明应用场景一个实施例的示意图;
图7为本发明报文发送方法再一个实施例的流程图;
图8为本发明应用场景另一个实施例的示意图;
图9为本发明报文发送方法再一个实施例的流程图;
图10为本发明客户端一个实施例的结构示意图;
图11为本发明客户端另一个实施例的结构示意图;
图12为本发明客户端再一个实施例的结构示意图;
图13为本发明客户端再一个实施例的结构示意图;
图14为本发明服务器一个实施例的结构示意图;
图15为本发明服务器另一个实施例的结构示意图;
图16为本发明服务器再一个实施例的结构示意图;
图17为本发明客户端再一个实施例的结构示意图;
图18为本发明客户端再一个实施例的结构示意图;
图19为本发明服务器再一个实施例的结构示意图;
图20为本发明服务器再一个实施例的结构示意图;
图21为本发明报文交换系统一个实施例的结构示意图;
图22为本发明报文交换系统另一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明报文发送方法一个实施例的流程图,如图1所示,该报文发送方法可以包括:
步骤101,客户端向服务器发送客户端握手报文,该客户端握手报文携带该客户端缓存的服务器证书的标识。
具体地,该客户端握手报文携带该客户端缓存的服务器证书的标识可以为:客户端握手报文中新增第一扩展,该第一扩展的扩展数据为上述客户端缓存的服务器证书的标识。
进一步地,上述客户端握手报文还可以携带不需服务器发送证书的指示,具体地,上述客户端握手报文还可以携带不需服务器发送证书的指示可以为:上述客户端握手报文中新增的第一扩展的扩展类型为不需服务器发送证书。
在具体实现时,上述客户端缓存的服务器证书的标识可以列表的方式携带在客户端握手报文中,即第一扩展的扩展数据可以为上述客户端缓存的服务器证书的标识列表。当然,本发明并不仅限于此,上述客户端缓存的服务器证书的标识还可以链表或数组的方式携带在客户端握手报文中,本发明对此不作限定。
步骤102,客户端接收上述服务器发送的服务器握手报文,当上述服务器确定该客户端缓存的服务器证书的标识包括服务器准备使用的证书的标识时,上述服务器握手报文携带服务器准备使用的证书的标识。
具体地,上述服务器握手报文携带服务器准备使用的证书的标识可以为:上述服务器握手报文中新增不需证书的第二扩展,该第二扩展的扩展数据为该服务器准备使用的证书的标识。
步骤103,客户端在客户端缓存的服务器证书中,查找与服务器准备使用的证书的标识对应的服务器证书。
步骤104,客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给上述服务器。
进一步地,步骤101之前,客户端还可以在与上述服务器交互的过程中,缓存该服务器发送的服务器证书。
进一步地,步骤101之前,客户端还需要对该客户端缓存的服务器证书的有效性进行检查;上述客户端握手报文携带的客户端缓存的服务器证书的标识包括上述客户端缓存的有效的服务器证书的标识。也就是说,客户端在发送客户端握手报文之前,会对该客户端缓存服务器证书的有效性进行检查,将客户端缓存的有效的服务器证书的标识携带在客户端握手报文中发送给服务器。
本实施例的一种实现方式中,当上述服务器确定该客户端缓存的服务器证书的标识不包括上述服务器准备使用的证书的标识时,上述服务器握手报文不携带服务器准备使用的证书的标识;这样,在客户端接收服务器发送的服务器握手报文之后,客户端还需要接收服务器发送的证书报文,该服务器发送的证书报文携带上述服务器准备使用的服务器证书;然后,客户端缓存上述服务器准备使用的服务器证书,并通过上述服务器准备使用的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给服务器。
本实施例的另一种实现方式中,上述服务器握手报文除携带服务器准备使用的证书的标识之外,还可以携带不需客户端发送证书的指示和上述服务器缓存的客户端证书的标识;具体地,当服务器需要进行客户端认证时,上述服务器握手报文中可以携带服务器准备使用的证书的标识,以及不需客户端发送证书的指示和上述服务器缓存的客户端证书的标识;这样客户端接收上述服务器发送的服务器握手报文之后,客户端还可以接收上述服务器发送的证书请求报文;当客户端确定上述服务器缓存的客户端证书的标识中包括该客户端准备使用的证书的标识时,上述客户端可以根据服务器发送的证书请求报文,向上述服务器发送证书标识报文,该证书标识报文携带上述客户端准备使用的证书的标识;然后,客户端通过与该客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给服务器,以便服务器在上述服务器缓存的客户端证书中查找到与客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对加密后的证书验证报文进行解密,以验证上述客户端的身份。
本实现方式中,客户端接收服务器发送的证书请求报文之后,当该客户端确定上述服务器缓存的客户端证书的标识中不包括客户端准备使用的证书的标识时,该客户端可以根据服务器发送的证书请求报文向上述服务器发送证书报文,该客户端发送的证书报文携带上述客户端准备使用的客户端证书;然后,客户端通过与该客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给上述服务器,以便该服务器通过接收的客户端证书中的公钥对上述加密后的证书验证报文进行解密,以验证该客户端的身份。
本实现方式中,上述服务器握手报文还可以携带不需上述客户端发送证书的指示和该服务器缓存的客户端证书的标识可以为:上述服务器握手报文中新增不需证书的第三扩展,该第三扩展的扩展类型为不需客户端发送证书,该第三扩展的扩展数据为上述服务器缓存的客户端证书的标识。在具体实现时,上述服务器缓存的客户端证书的标识可以列表的方式携带在服务器握手报文中,即服务器握手报文中第三扩展的扩展数据可以为上述服务器缓存的客户端证书的标识列表。当然,本发明并不仅限于此,上述服务器缓存的客户端证书的标识还可以链表或数组的方式携带在服务器握手报文中,本发明对此不作限定。
本实施例的再一种实现方式中,上述服务器握手报文除携带服务器准备使用的证书的标识之外,还可以仅携带不需客户端发送证书的指示,而不携带上述服务器缓存的客户端证书的标识;具体地,当服务器需要进行客户端认证时,上述服务器握手报文中可以携带服务器准备使用的证书的标识,以及不需客户端发送证书的指示。这样,客户端接收上述服务器发送的服务器握手报文之后,客户端还可以接收上述服务器发送的证书请求报文,然后向上述服务器发送证书标识报文,该证书标识报文携带上述客户端准备使用的证书的标识;然后,客户端通过与该客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给服务器,以便服务器在上述服务器缓存的客户端证书中查找到与客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对加密后的证书验证报文进行解密,以验证上述客户端的身份。
如果服务器在该服务器缓存的客户端证书中未查找到客户端准备使用的证书的标识对应的客户端证书,则服务器可以向客户端发送认证失败响应报文,该认证失败响应报文携带认证失败原因,该认证失败原因为服务器在该服务器缓存的客户端证书中未查找到客户端准备使用的证书的标识对应的客户端证书;或者,服务器可以向客户端发送握手失败报文。
接收到上述认证失败响应报文或上述握手失败报文之后,客户端向服务器重新发送客户端握手报文,重新发送的客户端握手报文携带不需服务器发送证书的指示和该客户端缓存的服务器证书的标识;然后服务器向客户端再次发送服务器握手报文,再次发送的服务器握手报文携带服务器准备使用的证书的标识,但不携带不需客户端发送证书的指示。在发送服务器握手报文之后,服务器向客户端发送证书请求报文,接下来,客户端向上述服务器发送证书报文,该客户端发送的证书报文携带上述客户端准备使用的客户端证书;然后,客户端通过该客户端的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给上述服务器,以便该服务器通过接收的客户端证书中的公钥对上述加密后的证书验证报文进行解密,以验证该客户端的身份。
本实现方式中,上述服务器握手报文还可以携带不需上述客户端发送证书的指示可以为:上述服务器握手报文中新增不需证书的第四扩展,该第四扩展的扩展类型为不需客户端发送证书。
上述实施例中,客户端向服务器发送携带该客户端缓存的服务器证书的标识的客户端握手报文,当该服务器确定上述客户端缓存的服务器证书的标识包括该服务器准备使用的证书的标识时,服务器可以不发送证书报文,而是将服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;然后,客户端在该客户端缓存的服务器证书中,查找与上述服务器准备使用的证书的标识对应的服务器证书,并通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给服务器。本实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图2为本发明报文发送方法另一个实施例的流程图,如图2所示,该报文发送方法可以包括:
步骤201,客户端向服务器发送第一客户端握手报文,该第一客户端握手报文携带不需服务器发送证书的指示。
具体地,第一客户端握手报文携带不需服务器发送证书的指示可以为:第一客户端握手报文中新增第一扩展,该第一扩展的扩展类型为不需服务器发送证书。
步骤202,客户端接收服务器发送的服务器握手报文,该服务器握手报文携带上述服务器准备使用的证书的标识。
具体地,该服务器握手报文携带上述服务器准备使用的证书的标识可以为:该服务器握手报文中新增第二扩展,上述第二扩展的扩展数据为上述服务器准备使用的证书的标识。
步骤203,如果该客户端在该客户端缓存的服务器证书中,查找到与上述服务器准备使用的证书的标识对应的服务器证书,则该客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给上述服务器。
本实施例的一种实现方式中,步骤202之后,如果该客户端在该客户端缓存的服务器证书中,未查找到与上述服务器准备使用的证书的标识对应的服务器证书,则客户端向服务器重新发送第二客户端握手报文,该第二客户端握手报文不携带不需服务器发送证书的指示;然后,客户端接收上述服务器发送的证书报文,该服务器发送的证书报文携带该服务器准备使用的服务器证书;该客户端缓存上述服务器准备使用的服务器证书,并通过该服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给服务器。
上述实施例中,客户端向服务器发送携带不需服务器发送证书的指示的第一客户端握手报文,接收到第一客户端握手报文之后,服务器不发送证书报文,将该服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;如果客户端在该客户端缓存的服务器证书中,查找到与上述服务器准备使用的证书的标识对应的服务器证书,则该客户端可以通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给服务器。本实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图3为本发明报文发送方法再一个实施例的流程图,如图3所示,该报文发送方法可以包括:
步骤301,服务器接收客户端发送的客户端握手报文,该客户端握手报文携带该客户端缓存的服务器证书的标识。
其中,上述客户端握手报文携带的该客户端缓存的服务器证书的标识包括上述客户端缓存的有效的服务器证书的标识。也就是说,客户端在发送客户端握手报文之前,会对该客户端缓存服务器证书的有效性进行检查,将客户端缓存的有效的服务器证书的标识携带在客户端握手报文中发送给服务器。
具体地,该客户端握手报文携带该客户端缓存的服务器证书的标识可以为:客户端握手报文中新增第一扩展,该第一扩展的扩展数据为客户端缓存的服务器证书的标识。
进一步地,上述客户端握手报文还可以携带不需服务器发送证书的指示,具体地,上述客户端握手报文还可以携带不需服务器发送证书的指示可以为:上述客户端握手报文中新增的第一扩展的扩展类型为不需服务器发送证书。
在具体实现时,上述客户端缓存的服务器证书的标识可以列表的方式携带在客户端握手报文中,即客户端握手报文中第一扩展的扩展数据可以为上述客户端缓存的服务器证书的标识列表。当然,本发明并不仅限于此,上述客户端缓存的服务器证书的标识还可以链表或数组的方式携带在客户端握手报文中,本发明对此不作限定。
步骤302,服务器向上述客户端发送服务器握手报文,当服务器确定上述客户端缓存的服务器证书的标识包括服务器准备使用的证书的标识时,上述服务器握手报文携带服务器准备使用的证书的标识。
具体地,上述服务器握手报文携带服务器准备使用的证书的标识可以为:上述服务器握手报文中新增不需证书的第二扩展,该第二扩展的扩展数据为服务器准备使用的证书的标识。
步骤303,服务器接收上述客户端发送的加密的客户端密钥交换报文,该加密的客户端密钥交换报文是客户端在上述客户端缓存的服务器证书中查找到与上述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给上述服务器的。
进一步地,步骤301之前,服务器还可以在与上述客户端交互的过程中,向上述客户端发送服务器证书,以便该客户端缓存服务器发送的服务器证书。
本实施例的一种实现方式中,当服务器确定上述客户端缓存的服务器证书的标识不包括服务器准备使用的证书的标识时,上述服务器握手报文不携带服务器准备使用的证书的标识;这样,服务器向上述客户端发送服务器握手报文之后,服务器向上述客户端发送证书报文,该服务器发送的证书报文携带上述服务器准备使用的服务器证书,以便客户端缓存上述服务器准备使用的服务器证书;然后,服务器接收客户端发送的加密的客户端密钥交换报文,上述加密的客户端密钥交换报文是客户端接收到上述服务器准备使用的服务器证书之后,通过上述服务器准备使用的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给服务器的。
本实施例的另一种实现方式中,上述服务器握手报文除携带服务器准备使用的证书的标识之外,还可以携带不需客户端发送证书的指示和上述服务器缓存的客户端证书的标识;具体地,当服务器需要进行客户端认证时,上述服务器握手报文中可以携带服务器准备使用的证书的标识,以及不需客户端发送证书的指示和上述服务器缓存的客户端证书的标识;本实现方式中,上述服务器向客户端发送服务器握手报文之后,服务器还可以向上述客户端发送证书请求报文;然后,服务器接收客户端在确定上述服务器缓存的客户端证书的标识中包括该客户端准备使用的证书的标识之后发送的证书标识报文,该证书标识报文携带客户端准备使用的证书的标识;最后,服务器接收客户端发送的加密的证书验证报文,该加密的证书验证报文是客户端通过与上述客户端准备使用的证书匹配的私钥对待发送的证书验证报文加密后发送给服务器的;服务器在上述服务器缓存的客户端证书中查找到与客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对加密后的证书验证报文进行解密,以验证上述客户端的身份。
本实现方式中,服务器向客户端发送证书请求报文之后,该服务器还可以接收客户端在确定上述服务器缓存的客户端证书的标识中不包括客户端准备使用的证书的标识之后发送的证书报文,上述客户端发送的证书报文携带客户端准备使用的客户端证书;然后,服务器接收客户端发送的加密的证书验证报文,该加密的证书验证报文是客户端通过与上述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密后发送给服务器的;最后,服务器通过接收的客户端证书中的公钥对上述加密后的证书验证报文进行解密,以验证客户端的身份。
本实现方式中,上述服务器握手报文还可以携带不需客户端发送证书的指示和该服务器缓存的客户端证书的标识可以为:上述服务器握手报文中新增不需证书的第三扩展,该第三扩展的扩展类型为不需客户端发送证书,该第三扩展的扩展数据为服务器缓存的客户端证书的标识。在具体实现时,上述服务器缓存的客户端证书的标识可以列表的方式携带在服务器握手报文中,即服务器握手报文中第三扩展的扩展数据可以为上述服务器缓存的客户端证书的标识列表。当然,本发明并不仅限于此,上述服务器缓存的客户端证书的标识还可以链表或数组的方式携带在服务器握手报文中,本发明对此不作限定。
本实施例的再一种实现方式中,上述服务器握手报文除携带服务器准备使用的证书的标识之外,还可以仅携带不需客户端发送证书的指示,而不携带上述服务器缓存的客户端证书的标识;具体地,当服务器需要进行客户端认证时,上述服务器握手报文中可以携带服务器准备使用的证书的标识,以及不需客户端发送证书的指示。这样,服务器向客户端发送服务器握手报文之后,上述服务器还可以向客户端发送证书请求报文,然后服务器接收上述客户端发送的证书标识报文,该证书标识报文携带上述客户端准备使用的证书的标识;然后,服务器接收客户端发送的加密的证书验证报文,上述加密的证书验证报文是客户端通过与上述客户端准备使用的证书匹配的私钥对待发送的证书验证报文加密后发送给上述服务器的;最后,服务器在该服务器缓存的客户端证书中查找到与上述客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对加密后的证书验证报文进行解密,以验证客户端的身份。
如果服务器在该服务器缓存的客户端证书中未查找到客户端准备使用的证书的标识对应的客户端证书,则服务器可以向客户端发送认证失败响应报文,该认证失败响应报文携带认证失败原因,该认证失败原因为服务器在该服务器缓存的客户端证书中未查找到客户端准备使用的证书的标识对应的客户端证书;或者,服务器可以向客户端发送握手失败报文。
接收到上述认证失败响应报文或上述握手失败报文之后,客户端向服务器重新发送客户端握手报文,重新发送的客户端握手报文携带不需服务器发送证书的指示和该客户端缓存的服务器证书的标识;然后服务器向客户端再次发送服务器握手报文,再次发送的服务器握手报文携带服务器准备使用的证书的标识,但不携带不需客户端发送证书的指示。在发送服务器握手报文之后,服务器向客户端发送证书请求报文,接下来,客户端向上述服务器发送证书报文,该客户端发送的证书报文携带上述客户端准备使用的客户端证书;然后,客户端通过该客户端的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给上述服务器,以便该服务器通过接收的客户端证书中的公钥对上述加密后的证书验证报文进行解密,以验证该客户端的身份。
本实现方式中,上述服务器握手报文还可以携带不需上述客户端发送证书的指示可以为:上述服务器握手报文中新增不需证书的第四扩展,该第四扩展的扩展类型为不需客户端发送证书。
上述实施例中,服务器接收到客户端发送的携带该客户端缓存的服务器证书的标识的客户端握手报文之后,当该服务器确定上述客户端缓存的服务器证书的标识包括该服务器准备使用的证书的标识时,服务器可以不发送证书报文,而是将服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;本实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图4为本发明报文发送方法再一个实施例的流程图,如图4所示,该报文发送方法可以包括:
步骤401,服务器接收客户端发送的第一客户端握手报文,该第一客户端握手报文携带不需服务器发送证书的指示。
具体地,上述第一客户端握手报文携带不需服务器发送证书的指示可以为:该第一客户端握手报文中新增第一扩展,该第一扩展的扩展类型为不需服务器发送证书。
步骤402,服务器向客户端发送服务器握手报文,该服务器握手报文携带该服务器准备使用的证书的标识。
具体地,上述服务器握手报文携带服务器准备使用的证书的标识可以为:上述服务器握手报文中新增第二扩展,该第二扩展的扩展数据为服务器准备使用的证书的标识。
步骤403,服务器接收上述客户端在该客户端缓存的服务器证书中,查找到与上述服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,该加密的客户端密钥交换报文是客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给该服务器的。
本实施例的一种实现方式中,步骤402之后,服务器还可以接收客户端在该客户端缓存的服务器证书中,未查找到与上述服务器准备使用的证书的标识对应的服务器证书之后重新发送的第二客户端握手报文,该第二客户端握手报文不携带不需所述服务器发送证书的指示;然后,服务器向上述客户端发送证书报文,该服务器发送的证书报文携带上述服务器准备使用的服务器证书,以便客户端缓存上述服务器准备使用的服务器证书。然后,服务器接收客户端发送的加密的客户端密钥交换报文,该加密的客户端密钥交换报文是客户端接收到上述服务器准备使用的服务器证书之后,通过该服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给上述服务器的。
上述实施例中,服务器接收到客户端发送的携带不需所述服务器发送证书的指示的第一客户端握手报文之后,服务器不向客户端发送证书报文,而是将该服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;本实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图5为本发明报文发送方法再一个实施例的流程图,如图5所示,该报文发送方法可以包括:
步骤501,客户端向服务器发送客户端握手(ClientHello)报文,该客户端握手报文携带不需服务器发送证书的指示和该客户端缓存的服务器证书的标识。
本实施例中,客户端向服务器发送客户端握手报文之前,客户端在与服务器交互的过程中,在客户端缓存一些服务器在证书(Certificate)报文中发送的服务器证书。
然后,客户端将该客户端缓存的服务器证书的标识携带在客户端握手报文中发送给服务器,同时在该客户端握手报文中携带不需服务器发送证书的指示。
具体地,该客户端握手报文携带不需服务器发送证书的指示和该客户端缓存的服务器证书的标识可以为:客户端握手报文中新增第一扩展,该第一扩展可以为不需证书(Certificate Not Required)的扩展,该第一扩展的扩展类型为不需服务器发送证书,该第一扩展的扩展数据为上述客户端缓存的服务器证书的标识。
在具体实现时,上述客户端缓存的服务器证书的标识可以列表的方式携带在客户端握手报文中,即客户端握手报文中新增的第一扩展的扩展数据可以为上述客户端缓存的服务器证书的标识列表。当然,本发明并不仅限于此,上述客户端缓存的服务器证书的标识还可以链表或数组的方式携带在客户端握手报文中,本发明对此不作限定。
优选地,客户端发送客户端握手报文之前,需要先检查该客户端缓存的服务器证书是否还有效,即对该客户端缓存的服务器证书的有效性进行检查,仅将该客户端缓存的有效的服务器证书的标识携带在客户端握手报文中发送给服务器。具体地,由于客户端将缓存的服务器证书存放在本地,且缓存的服务器证书已经是通过验证的,所以客户端只需检查与时间相关的约束,包括服务器证书是否还在有效期,服务器证书是否被证书吊销列表(CertificateRevocation List;以下简称:CRL)或在线证书状态协议(Online Certificate StatusProtocol,以下简称:OCSP)所撤销了。如果客户端缓存了较多的服务器证书,对服务器证书进行有效性检查会带来一定的开销,这时可以采取一些优化措施,例如对缓存中的服务器证书进行分类,在连接到某类服务器时,只发送这类服务器的服务器证书的标识;或者,优化缓存的服务器证书的数量;或者,采用单独的线程或进程来对服务器证书的状态进行定期检测和刷新;或者,在加载CRL时,对所有缓存中的服务器证书进行检查,并移除撤销的服务器证书。
步骤502,服务器接收到上述客户端握手报文之后,判断该客户端握手报文中携带的服务器证书的标识是否包括该服务器准备使用的证书的标识。如果是,则执行步骤503;如果该客户端握手报文中携带的服务器证书的标识不包括该服务器准备使用的证书的标识,则执行步骤506。
步骤503,服务器向客户端发送服务器握手(ServerHello)报文,该服务器握手报文携带服务器准备使用的证书的标识。
具体地,上述服务器握手报文携带服务器准备使用的证书的标识可以为:上述服务器握手报文中新增第二扩展,该第二扩展可以为不需证书的扩展,该第二扩展的扩展数据为该服务器准备使用的证书的标识。
步骤504,客户端从接收到的服务器握手报文中,获得服务器准备使用的证书的标识,并在客户端缓存的服务器证书中,查找与服务器准备使用的证书的标识对应的服务器证书。
步骤505,客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给上述服务器。本次流程结束。
步骤506,服务器向客户端发送服务器握手报文,该服务器握手报文不携带服务器准备使用的证书的标识。
步骤507,服务器向客户端发送证书报文,该服务器发送的证书报文携带上述服务器准备使用的服务器证书。
步骤508,客户端缓存上述服务器准备使用的服务器证书,并通过该服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给服务器。本次流程结束。
也就是说,当客户端握手报文中携带的服务器证书的标识不包括该服务器准备使用的证书的标识时,服务器向客户端发送的服务器握手报文不携带服务器准备使用的证书的标识,并且服务器需要向客户端发送携带该服务器准备使用的服务器证书的证书报文,接收到服务器发送的证书报文之后,客户端缓存该服务器准备使用的证书,并通过该服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给服务器。
上述实施例中,当客户端握手报文中携带的服务器证书的标识包括服务器准备使用的证书的标识时,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。另外,省略证书报文的发送,可以省略客户端验证证书的过程,从而可以大大减少TLS握手过程中客户端的中央处理单元(Central Processing Unit;以下简称:CPU)的开销。
需要说明的是,本发明图1、图3和图5所示实施例中,客户端初次与某服务器交互时,或者客户端缓存的服务器证书失效时,服务器在客户端握手报文携带的服务器证书的标识中,都不会找到该服务器准备使用的证书的标识,这时服务器需要发送证书报文。另外,客户端初次入网,还没有缓存任何证书时,客户端发送的客户端握手报文中不携带上述不需服务器发送证书的指示,也不携带该客户端缓存的服务器证书的标识;也就是说,客户端发送的客户端握手报文中不携带上述不需证书的扩展。
根据TLS已有的扩展机制,如果服务器不能识别客户端握手报文中新增的不需证书(Certificate Not Required)的扩展,则服务器可以直接忽略此扩展,并发送证书报文。同样,如果客户端发现服务器没有在服务器握手报文中响应上述新增的不需证书的扩展,则该客户端仍可以继续处理证书报文。因此本发明提供的方法不影响互操作性。
本发明图1、图3和图5所示实施例可以应用于图6所示应用场景中,图6为本发明应用场景一个实施例的示意图。如图6所示,移动终端通过基站和网关通用分组无线服务支持节点(Gateway General Packet Radio ServiceSupport Node;以下简称:GGSN)连接到因特网中的网页服务器。
通常,移动终端通用分组无线服务(General Packet Radio Service;以下简称:GPRS)通道的带宽很低,移动终端与网页服务器建立端到端的TLS连接过程中,减少证书报文的发送,可以大大提高移动终端与网页服务器之间TLS连接的建立速度。
使用上述移动终端的用户在浏览网站时,通常会重复访问一些网站,这时本发明提供的方法可以大大提高上述重复访问的网站的连接速度。另外,用户在访问一个网站时,对于此网站内不同的页面,有时会发起一些新的连接,这时本发明提供的方法也可以提升性能,从而改进用户体验。
另外,某些移动终端的CPU资源比较少,本发明提供的方法可以减少验证服务器证书所需的CPU开销,也可以大大提高移动终端的TLS连接性能。
图7为本发明报文发送方法再一个实施例的流程图,如图7所示,该报文发送方法可以包括:
步骤701,客户端向服务器发送第一客户端握手报文,该第一客户端握手报文携带不需服务器发送证书的指示。
具体地,第一客户端握手报文携带不需服务器发送证书的指示可以为:第一客户端握手报文中新增第一扩展,该第一扩展可以为不需证书的扩展,该第一扩展的扩展类型为不需服务器发送证书。
本实施例中,该第一客户端握手报文中新增的第一扩展的扩展数据携带0个服务器证书的标识,以间接表明客户端缓存有服务器证书。
步骤702,客户端接收服务器发送的服务器握手报文,该服务器握手报文携带上述服务器准备使用的证书的标识。
具体地,该服务器握手报文携带上述服务器准备使用的证书的标识可以为:该服务器握手报文中新增第二扩展,该第二扩展可以为不需证书的扩展,上述第二扩展的扩展数据为上述服务器准备使用的证书的标识。
步骤703,客户端判断在该客户端缓存的服务器证书中,是否查找到与上述服务器准备使用的证书的标识对应的服务器证书。如果是,则执行步骤704;如果客户端在该客户端缓存的服务器证书中,未查找到与上述服务器准备使用的证书的标识对应的服务器证书,则执行步骤705。
步骤704,客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给上述服务器。本次流程结束。
步骤705,客户端向服务器重新发送第二客户端握手报文,该第二客户端握手报文不携带不需服务器发送证书的指示。
步骤706,客户端接收上述服务器发送的证书报文,该服务器发送的证书报文携带该服务器准备使用的服务器证书。
步骤707,客户端缓存上述服务器准备使用的服务器证书,并通过该服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给服务器。本次流程结束。
上述实施例中,当第一客户端握手报文中携带不需服务器发送证书的指示时,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。另外,省略证书报文的发送,可以省略客户端验证证书的过程,从而可以大大减少TLS握手过程中客户端的CPU的开销。另外,本发明图7所示实施例中,第一客户端握手报文中不携带客户端缓存的服务器证书的标识,从而可以使客户端握手报文本身的大小不会增大得太多。
本发明图2、图4和图7所示实施例提供的方法适用于客户端总是与一些固定的服务器进行交互的场景。否则,由于客户端没有发送该客户端缓存的服务器证书的标识,而服务器认为该服务器的证书在客户端已缓存,但实际上客户端可能没有该服务器的证书,则此时握手会失败。这时,客户端需要重新发起不携带不需服务器发送证书的指示的报文,并接收服务器发送的证书报文,缓存该证书报文携带的该服务器准备使用的服务器证书。这样通过两次握手才完成认证。
举例来说,本发明图2、图4和图7所示实施例提供的方法可以应用于图8所示的应用场景,图8为本发明应用场景另一个实施例的示意图。如图8所示,网管与网元之间建立TLS连接的过程中,网管可以被看作客户端,网元可以被看作服务器。在网元被网管添加进行管理之后,网管会与固定的一些网元进行连接。根据本发明图7所示实施例提供的方法,网管在握手过程中,可以向网元发送不含证书的标识的第一握手报文,然后网元将该网元准备使用的证书的标识携带在握手报文中发送给网管,如果网管在该网管缓存的证书中查找到与上述网元准备使用的证书的标识对应的证书,则网管可以通过查找到的证书中的公钥对待发送的密钥交换报文进行加密,并将加密后的密钥交换报文发送给网元,以与网元建立TLS连接,这时,网管与网元可以通过一次握手过程完成认证,快速建立TLS连接。
如果网管在该网管缓存的证书中未查找到与上述网元准备使用的证书的标识对应的证书,则网管可以向网元发送第二握手报文,该第二握手报文不携带不需网元发送证书的指示;接收到第二握手报文之后,网元向网管发送证书报文,该证书报文携带该网元准备使用的证书;接收到该证书报文之后,网管缓存该证书报文中携带的证书,这样后续网管再与网元建立TLS连接时,就可以通过一次握手过程完成认证,快速建立TLS连接。
图9为本发明报文发送方法再一个实施例的流程图,如图9所示,该报文发送方法可以包括:
步骤901,客户端向服务器发送客户端握手报文,该客户端握手报文携带不需服务器发送证书的指示和该客户端缓存的服务器证书的标识。
本实施例中,客户端向服务器发送客户端握手报文之前,客户端在与服务器交互的过程中,在客户端缓存一些服务器在证书报文中发送的服务器证书。
然后,客户端将该客户端缓存的服务器证书的标识携带在客户端握手报文中发送给服务器,同时在该客户端握手报文中携带不需服务器发送证书的指示。
具体地,该客户端握手报文携带不需服务器发送证书的指示和该客户端缓存的服务器证书的标识可以为:客户端握手报文中新增第一扩展,该第一扩展可以为不需证书(Certificate Not Required)的扩展,该第一扩展的扩展类型为不需服务器发送证书,该第一扩展的扩展数据为上述客户端缓存的服务器证书的标识。
在具体实现时,上述客户端缓存的服务器证书的标识可以列表的方式携带在客户端握手报文中,即客户端握手报文中新增的第一扩展的扩展数据可以为上述客户端缓存的服务器证书的标识列表。当然,本发明并不仅限于此,上述客户端缓存的服务器证书的标识还可以链表或数组的方式携带在客户端握手报文中,本发明对此不作限定。
优选地,客户端发送客户端握手报文之前,需要先检查该客户端缓存的服务器证书是否还有效,即对该客户端缓存的服务器证书的有效性进行检查,仅将该客户端缓存的有效的服务器证书的标识携带在客户端握手报文中发送给服务器。具体地,由于客户端将缓存的服务器证书存放在本地,且缓存的服务器证书已经是通过验证的,所以客户端只需检查与时间相关的约束,包括服务器证书是否还在有效期,服务器证书是否被CRL或OCSP所撤销了。如果客户端缓存了较多的服务器证书,对服务器证书进行有效性检查会带来一定的开销,这时可以采取一些优化措施,例如对缓存中的服务器证书进行分类,在连接到某类服务器时,只发送这类服务器的服务器证书的标识;或者,优化缓存的服务器证书的数量;或者,采用单独的线程或进程来对服务器证书的状态进行定期检测和刷新;或者,在加载CRL时,对所有缓存中的服务器证书进行检查,并移除撤销的服务器证书。
步骤902,服务器接收到上述客户端握手报文之后,判断该客户端握手报文中携带的服务器证书的标识是否包括该服务器准备使用的证书的标识。如果是,则执行步骤903;如果该客户端握手报文中携带的服务器证书的标识不包括该服务器准备使用的证书的标识,则执行步骤916。
步骤903,服务器向客户端发送服务器握手报文,该服务器握手报文携带服务器准备使用的证书的标识。
进一步地,当服务器需要进行客户端认证时,该服务器握手报文还可以携带不需客户端发送证书的指示和该服务器缓存的客户端证书的标识。
具体地,上述服务器握手报文携带服务器准备使用的证书的标识可以为:上述服务器握手报文中新增第二扩展,该第二扩展可以为不需证书的扩展,该第二扩展的扩展数据为服务器准备使用的证书的标识。
上述服务器握手报文还可以携带不需客户端发送证书的指示和该服务器缓存的客户端证书的标识可以为:上述服务器握手报文中新增第三扩展,该第三扩展可以为不需证书的扩展,该第三扩展的扩展类型为不需客户端发送证书,该第三扩展的扩展数据为服务器缓存的客户端证书的标识。在具体实现时,上述服务器缓存的客户端证书的标识可以列表的方式携带在服务器握手报文中,即服务器握手报文中第三扩展的扩展数据可以为上述服务器缓存的客户端证书的标识列表。当然,本发明并不仅限于此,上述服务器缓存的客户端证书的标识还可以链表或数组的方式携带在服务器握手报文中,本发明对此不作限定。
步骤904,服务器向客户端发送证书请求报文。
步骤905,客户端判断服务器缓存的客户端证书的标识中是否包括该客户端准备使用的证书的标识。如果是,则执行步骤906;如果服务器缓存的客户端证书的标识中不包括该客户端准备使用的证书的标识,则执行步骤911。
步骤906,客户端向服务器发送证书标识报文,该证书标识报文携带上述客户端准备使用的证书的标识。
步骤907,客户端在客户端缓存的服务器证书中,查找与服务器准备使用的证书的标识对应的服务器证书。
步骤908,客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给上述服务器。
步骤909,客户端通过该客户端的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给服务器。
步骤910,服务器在该服务器缓存的客户端证书中查找到与客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对加密后的证书验证报文进行解密,以验证上述客户端的身份。本次流程结束。
步骤911,客户端向服务器发送证书报文,该客户端发送的证书报文携带上述客户端准备使用的客户端证书。
步骤912,客户端在客户端缓存的服务器证书中,查找与服务器准备使用的证书的标识对应的服务器证书。
步骤913,客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给上述服务器。
步骤914,客户端通过该客户端的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给服务器。
步骤915,服务器通过客户端发送的证书报文携带的客户端证书中的公钥对上述加密后的证书验证报文进行解密,以验证该客户端的身份。本次流程结束。
步骤916,服务器向客户端发送服务器握手报文,该服务器握手报文不携带服务器准备使用的证书的标识。
进一步地,当服务器需要进行客户端认证时,该服务器握手报文可以携带不需客户端发送证书的指示和该服务器缓存的客户端证书的标识。
具体地,上述服务器握手报文携带不需客户端发送证书的指示和该服务器缓存的客户端证书的标识的方式可以参照步骤903中提供的方式,在此不再赘述。
步骤917,服务器向客户端发送证书报文,该服务器发送的证书报文携带上述服务器准备使用的服务器证书。
步骤918,服务器向客户端发送证书请求报文。
步骤919,客户端判断服务器缓存的客户端证书的标识中是否包括该客户端准备使用的证书的标识。如果是,则执行步骤920;如果服务器缓存的客户端证书的标识中不包括该客户端准备使用的证书的标识,则执行步骤924。
步骤920,客户端向服务器发送证书标识报文,该证书标识报文携带上述客户端准备使用的证书的标识。
步骤921,客户端通过接收到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给上述服务器。
步骤922,客户端通过该客户端的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给服务器。
步骤923,服务器在该服务器缓存的客户端证书中查找到与客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对加密后的证书验证报文进行解密,以验证上述客户端的身份。本次流程结束。
步骤924,客户端向服务器发送证书报文,该客户端发送的证书报文携带上述客户端准备使用的客户端证书。
步骤925,客户端通过接收到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给上述服务器。
步骤926,客户端通过该客户端的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给服务器。
步骤927,服务器通过客户端发送的证书报文携带的客户端证书中的公钥对上述加密后的证书验证报文进行解密,以验证该客户端的身份。本次流程结束。
上述实施例中,当客户端握手报文中携带的服务器证书的标识包括服务器准备使用的证书的标识时,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。另外,省略证书报文的发送,可以省略客户端验证证书的过程,从而可以大大减少TLS握手过程中客户端的CPU的开销。并且本实施例中,服务器还可以对客户端进行认证,进一步提高了TLS连接的可靠性。
本发明图9所示实施例中,当客户端握手报文携带的服务器证书的标识中包括服务器准备使用的证书的标识时,服务器可以在服务器握手报文中携带第二扩展,该第二扩展的扩展数据为该服务器准备使用的证书的标识;同时,如果服务器需要对客户端进行认证,则服务器可以在服务器握手报文中携带第三扩展,该第三扩展的扩展类型为不需客户端发送证书,该第三扩展的扩展数据为服务器缓存的客户端证书的标识。
为保证最大的兼容性,可以增加约束。即只有客户端握手报文中携带第一扩展时,服务器才能在服务器握手报文中包含针对客户端证书的第三扩展。另外,当服务器不支持客户端握手报文中新增的第一扩展时,服务器不会在服务器握手报文中包含针对客户端证书的第三扩展。
另外,如果服务器不能识别客户端握手报文中新增的第一扩展时,则服务器可以直接忽略客户端握手报文中新增的第一扩展,并发送证书报文。同样,如果客户端发现服务器没有在服务器握手报文中响应上述新增的第一扩展,则该客户端仍可以继续处理证书报文。因此本发明图9所示实施例提供的方法不影响互操作性。
本发明图9所示实施例的另一种实现方式中,步骤903中,当服务器需要对客户端进行认证时,该服务器握手报文可以仅携带服务器准备使用的证书的标识和不需客户端发送证书的指示,而不携带服务器缓存的客户端证书的标识。这样,步骤903之后,执行步骤904,接下来不需执行步骤905,直接执行步骤906~步骤909,如果服务器在该服务器缓存的客户端证书中查找到客户端准备使用的证书的标识对应的客户端证书,则执行步骤910。
如果服务器在该服务器缓存的客户端证书中未查找到客户端准备使用的证书的标识对应的客户端证书,则服务器可以向客户端发送认证失败响应报文,该认证失败响应报文携带认证失败原因,该认证失败原因为服务器在该服务器缓存的客户端证书中未查找到客户端准备使用的证书的标识对应的客户端证书;或者,服务器可以向客户端发送握手失败报文。
接收到上述认证失败响应报文或者上述握手失败报文之后,客户端向服务器重新发送客户端握手报文,重新发送的客户端握手报文携带不需服务器发送证书的指示和该客户端缓存的服务器证书的标识;然后服务器向客户端再次发送服务器握手报文,再次发送的服务器握手报文携带服务器准备使用的证书的标识,但不携带不需客户端发送证书的指示。在发送服务器握手报文之后,服务器向客户端发送证书请求报文,接下来,可以按照步骤911-步骤915描述的流程执行,在此不再赘述。
同样,步骤916中,当服务器需要对客户端进行认证时,该服务器握手报文也可以仅携带服务器准备使用的证书的标识和不需客户端发送证书的指示,而不携带服务器缓存的客户端证书的标识。后续流程与上述流程类似,在此不再赘述。
本发明图9所示实施例提供的方法可以应用在图8所示的场景中,网元可以被看作服务器,通常固定地与一个网管(该网管可以被看作客户端)进行连接,且需要通过对网管进行认证来验证网管的身份。通过本发明图9所示实施例提供的方法,网管可以不用发送证书,从而可以提高TLS连接的速度,且可以减少网管的握手开销,进而可以提高网管的处理能力。
在发展过程中,TLS协议出现过许多版本,包括安全套接层版本2(SecureSockets Layer version2;以下简称:SSLv2)、安全套接层版本3(Secure SocketsLayer version3;以下简称:SSLv3)、TLS1.0、TLS1.1和TLS1.2等,以后还可能出现新的版本。本发明实施例中的TLS指代所有这些版本。对于新的版本,只要新版本的TLS协议包含证书认证,本发明实施例提供的方法同样适用上述新版本的TLS协议。
另外,本发明实施例仅以TLS握手的公钥加密算法(Rivest ShamirAdleman;以下简称:RSA)认证流程为例进行说明。对于其它的TLS流程,只要包括证书认证,在证书传递方面,都可以直接采用本发明实施例引入的扩展来减少证书的传递。对于加密和签名的具体步骤,虽然与本发明实施例所描述的不同,但本发明实施例引入的扩展,同样直接适用于这些流程。
下面按照TLS协议中的语法对客户端握手报文和服务器握手报文中新增的扩展进行介绍。
1、在扩展类型(ExtensionType)增加新的不需证书(certificate not required)类型值,如下所示。
上述不需证书(certificate_not_required)类型值,只能用于私有协议。具体的类型值需要通过互联网工程任务组互联网数字分配机构(InternetEngineering Task Force Internet Assigned Numbers Authority;以下简称:IETF IANA)批准,才能成为标准协议。但certificate_not_required类型值的大小不影响互操作性。
2、定义证书标识列表(CertificateIDTypeList),如下所示。
其中,Name和CertificateSerialNumber来源于x.509标准,Name和CertificateSerialNumber的值对应于相应的可辨别编码规则(DistinguishedEncoding Rules;以下简称:DER)编码。
对于
当extension_type的值为不需证书(certificate_not_required)时,上述extension_data的值为CertificateIDTypeList。
本发明在客户端握手报文和服务器握手报文中,都可以新增上述扩展。
本发明中,对于任一个证书,可以使用该证书中的签发者(isser)和证书序列号(serialNumber)进行唯一标识,也可以使用签发者(isser)和证书序列号(serialNumber)连接以后的哈希值,例如:消息摘要算法第五版(Message DigestAlgorithm5;以下简称:MD5)值进行标识。使用上述哈希值对证书进行标识,可以减小客户端握手报文的大小。
本发明图9所示实施例中,需要增加新的握手报文类型,如下所示:
上述certificate_id类型值,只能用于私有协议。该certificate_id类型值需要通过IETF_IANA批准,才能成为标准协议,但certificate_id类型值的大小不影响互操作性。
对于certificate_id报文,其格式与CertificateIDTypeList的格式相同,且固定包含1个元素,即客户端准备使用的证书的标识。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图10为本发明客户端一个实施例的结构示意图,本实施例中的客户端10可以实现本发明图1所示实施例的流程,如图10所示,该客户端10可以包括:第一发送模块1001、第一接收模块1002、第一查找模块1003和第一加密模块1004;
其中,第一发送模块1001,用于向服务器发送客户端握手报文,该客户端握手报文携带该客户端缓存的服务器证书的标识;以及从第一加密模块1004接收加密后的客户端密钥交换报文,将加密后的客户端密钥交换报文发送给服务器;进一步地,上述客户端握手报文还可以携带不需服务器发送证书的指示;
第一接收模块1002,用于接收服务器发送的服务器握手报文,当上述服务器确定该客户端缓存的服务器证书的标识包括上述服务器准备使用的证书的标识时,该服务器握手报文携带服务器准备使用的证书的标识;以及将该服务器准备使用的证书的标识传递给第一查找模块1003;
第一查找模块1003,用于从第一接收模块1002接收服务器准备使用的证书的标识,在客户端缓存的服务器证书中,查找与服务器准备使用的证书的标识对应的服务器证书;以及将查找到的服务器证书传递给第一加密模块1004;
第一加密模块1004,用于从第一查找模块1003接收查找到的服务器证书,通过上述查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文传递给第一发送模块1001。
上述实施例中,第一发送模块1001向服务器发送携带该客户端缓存的服务器证书的标识的客户端握手报文,当该服务器确定上述客户端缓存的服务器证书的标识包括该服务器准备使用的证书的标识时,服务器可以不发送证书报文,而是将服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;然后,第一查找模块1003在该客户端缓存的服务器证书中,查找与上述服务器准备使用的证书的标识对应的服务器证书,并由第一加密模块1004通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,再由第一发送模块1001将加密后的客户端密钥交换报文发送给服务器。本实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图11为本发明客户端另一个实施例的结构示意图,与图10所示的客户端相比,不同之处在于,本实施例中的客户端11还可以包括:第一缓存模块1005;
第一缓存模块1005,用于在与服务器交互的过程中,缓存上述服务器发送的服务器证书;以及将缓存的服务器证书的标识传递给第一发送模块1001。
本实施例的一种实现方式中,当服务器确定客户端缓存的服务器证书的标识不包括上述服务器准备使用的证书的标识时,第一接收模块1002接收的服务器握手报文不携带该服务器准备使用的证书的标识;这时,第一接收模块1002,还用于在接收不携带服务器准备使用的证书的标识的服务器握手报文之后,接收上述服务器发送的证书报文,该服务器发送的证书报文携带该服务器准备使用的服务器证书;以及将该服务器准备使用的服务器证书分别传递给第一缓存模块1005和第一加密模块1004;
这时,第一缓存模块1005,还用于从第一接收模块1002接收上述服务器准备使用的服务器证书,缓存该服务器准备使用的服务器证书;
第一加密模块1004,还用于从第一接收模块1002接收上述服务器准备使用的服务器证书,通过上述服务器准备使用的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密。
进一步地,该客户端11还可以包括:检查模块1006;
检查模块1006,用于在第一发送模块1001发送客户端握手报文之前,对客户端缓存的服务器证书的有效性进行检查;以及将客户端缓存的有效的服务器证书的标识传递给第一发送模块1001;
第一发送模块1001,还用于从检查模块1006接收客户端缓存的有效的服务器证书的标识,第一发送模块1001发送的客户端握手报文携带的客户端缓存的服务器证书的标识包括客户端缓存的有效的服务器证书的标识。
本实施例的另一种实现方式中,第一接收模块1002接收的服务器握手报文还携带不需客户端发送证书的指示和该服务器缓存的客户端证书的标识;
第一接收模块1002,还用于在接收服务器发送的服务器握手报文之后,接收服务器发送的证书请求报文;
第一发送模块1001,还用于当客户端确定服务器缓存的客户端证书的标识中包括客户端准备使用的证书的标识时,根据服务器发送的证书请求报文向服务器发送证书标识报文,该证书标识报文携带客户端准备使用的证书的标识;以及从第一加密模块1004接收加密后的证书验证报文,将加密后的证书验证报文发送给服务器,以便服务器在上述服务器缓存的客户端证书中查找到与上述客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对加密后的证书验证报文进行解密,以验证客户端的身份;
第一加密模块1004,还用于通过与上述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,以及将加密后的证书验证报文传递给第一发送模块1001。
进一步地,第一发送模块1001,还用于当客户端确定上述服务器缓存的客户端证书的标识中不包括客户端准备使用的证书的标识时,根据服务器发送的证书请求报文向服务器发送证书报文,第一发送模块1001发送的证书报文携带上述客户端准备使用的客户端证书。
本实施例的再一种实现方式中,第一接收模块1002接收的服务器握手报文还携带不需客户端发送证书的指示;
第一接收模块1002,还用于在接收服务器发送的服务器握手报文之后,接收服务器发送的证书请求报文;
第一发送模块1001,还用于向服务器发送证书标识报文,上述证书标识报文携带客户端准备使用的证书的标识;以及从第一加密模块1004接收加密后的证书验证报文,将上述加密后的证书验证报文发送给服务器,以便服务器在上述服务器缓存的客户端证书中查找到与客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对上述加密后的证书验证报文进行解密,以验证上述客户端的身份;
第一加密模块1004,还用于通过与上述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,以及将加密后的证书验证报文传递给第一发送模块1001。
上述实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图12为本发明客户端再一个实施例的结构示意图,本实施例中的客户端可以实现本发明图2所示实施例的流程,如图12所示,该客户端12可以包括:第二发送模块1201、第二接收模块1202、第二查找模块1203和第二加密模块1204;
第二发送模块1201,用于向服务器发送第一客户端握手报文,该第一客户端握手报文携带不需服务器发送证书的指示;以及从第二加密模块1204接收加密后的客户端密钥交换报文,将加密后的客户端密钥交换报文发送给服务器;
第二接收模块1202,用于接收服务器发送的服务器握手报文,上述服务器握手报文携带服务器准备使用的证书的标识;以及将上述服务器准备使用的证书的标识传递给第二查找模块1203;
第二查找模块1203,用于从第二接收模块1202接收上述服务器准备使用的证书的标识,在客户端缓存的服务器证书中,查找与上述服务器准备使用的证书的标识对应的服务器证书;以及当查找到与上述服务器准备使用的证书的标识对应的服务器证书时,将查找到的服务器证书传递给第二加密模块1204;
第二加密模块1204,用于从第二查找模块1203接收查找到的服务器证书,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,以及将加密后的客户端密钥交换报文传递给第二发送模块1201。
上述实施例中,第二发送模块1201向服务器发送携带不需服务器发送证书的指示的第一客户端握手报文,接收到第一客户端握手报文之后,服务器不发送证书报文,将该服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;如果第二查找模块1203在该客户端缓存的服务器证书中,查找到与上述服务器准备使用的证书的标识对应的服务器证书,则第二加密模块1204可以通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并由第二发送模块1201将加密后的客户端密钥交换报文发送给服务器。上述实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图13为本发明客户端再一个实施例的结构示意图,与图12所示的客户端相比,不同之处在于,图13所示的客户端13还可以包括:第二缓存模块1205;
第二发送模块1201,还用于当第二查找模块1203在客户端缓存的服务器证书中,未查找到与上述服务器准备使用的证书的标识对应的服务器证书时,向服务器重新发送第二客户端握手报文,该第二客户端握手报文不携带不需服务器发送证书的指示;
第二接收模块1202,还用于接收服务器发送的证书报文,该服务器发送的证书报文携带服务器准备使用的服务器证书;以及将服务器准备使用的服务器证书分别传递给第二缓存模块1205和第二加密模块1204;
第二缓存模块1205,还用于从第二接收模块1202接收上述服务器准备使用的服务器证书,缓存上述服务器准备使用的服务器证书;
第二加密模块1204,还用于从第二接收模块1202接收上述服务器准备使用的服务器证书,通过该服务器证书中的公钥对待发送的客户端密钥交换报文进行加密。
上述实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图14为本发明服务器一个实施例的结构示意图,本实施例中的服务器可以实现本发明图3所示实施例的流程,如图14所示,该服务器14可以包括:第三接收模块1401和第三发送模块1402;
第三接收模块1401,用于接收客户端发送的客户端握手报文,该客户端握手报文携带上述客户端缓存的服务器证书的标识;以及将上述客户端缓存的服务器证书的标识传递给第三发送模块1402;接收客户端发送的加密的客户端密钥交换报文,上述加密的客户端密钥交换报文是客户端在该客户端缓存的服务器证书中查找到与上述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给上述服务器的;
进一步地,上述客户端握手报文还可以携带不需服务器发送证书的指示,则第三接收模块1401还需要将上述不需服务器发送证书的指示传递给第三发送模块1402;
第三发送模块1402,用于从第三接收模块1401接收上述客户端缓存的服务器证书的标识,向客户端发送服务器握手报文,当确定上述客户端缓存的服务器证书的标识包括上述服务器准备使用的证书的标识时,第三发送模块1402发送的上述服务器握手报文携带该服务器准备使用的证书的标识。
进一步地,第三发送模块1402,还用于在与客户端交互的过程中,向上述客户端发送服务器证书,以便该客户端缓存上述服务器发送的服务器证书。
本实施例的一种实现方式中,当确定客户端缓存的服务器证书的标识不包括该服务器准备使用的证书的标识时,第三发送模块1402发送的服务器握手报文不携带该服务器准备使用的证书的标识;
第三发送模块1402,还用于在向客户端发送服务器握手报文之后,向上述客户端发送证书报文,第三发送模块1402发送的证书报文携带服务器准备使用的服务器证书,以便客户端缓存上述服务器准备使用的服务器证书;
第三接收模块1401,还用于接收上述客户端发送的加密的客户端密钥交换报文;该加密的客户端密钥交换报文是客户端接收到上述服务器准备使用的服务器证书之后,通过上述服务器准备使用的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给服务器的。
本实施例中,第三接收模块1401接收的客户端握手报文携带的客户端缓存的服务器证书的标识包括上述客户端缓存的有效的服务器证书的标识。也就是说,客户端在发送客户端握手报文之前,会对该客户端缓存服务器证书的有效性进行检查,将客户端缓存的有效的服务器证书的标识携带在客户端握手报文中发送给服务器。
上述实施例中,第三接收模块1401接收到客户端发送的携带该客户端缓存的服务器证书的标识的客户端握手报文之后,当该服务器确定上述客户端缓存的服务器证书的标识包括该服务器准备使用的证书的标识时,服务器可以不发送证书报文,而是将服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;本实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图15为本发明服务器另一个实施例的结构示意图,与图14所示的服务器相比,不同之处在于,图15所示的服务器15还可以包括:第三查找模块1403和第一解密模块1404;
本实施例中,第三发送模块1402发送的服务器握手报文还携带不需客户端发送证书的指示和上述服务器缓存的客户端证书的标识;
第三发送模块1402,还用于向客户端发送服务器握手报文之后,向客户端发送证书请求报文;
本实施例的一种实现方式中,第三接收模块1401,还用于接收客户端确定服务器缓存的客户端证书的标识中包括上述客户端准备使用的证书的标识之后发送的证书标识报文,该证书标识报文携带客户端准备使用的证书的标识;以及将上述客户端准备使用的证书的标识传递给第三查找模块1403;以及接收客户端发送的加密的证书验证报文,将加密的证书验证报文传递给第一解密模块1404,上述加密的证书验证报文是客户端通过与上述客户端准备使用的证书匹配的私钥对待发送的证书验证报文加密后发送给服务器的;
第三查找模块1403,用于从第三接收模块1401接收客户端准备使用的证书的标识,在服务器缓存的客户端证书中查找与上述客户端准备使用的证书的标识对应的客户端证书;以及将查找到的客户端证书传递给第一解密模块1404;
第一解密模块1404,用于从第三接收模块1401接收加密的证书验证报文,以及从第三查找模块1403接收客户端证书,及通过客户端证书中的公钥对上述加密后的证书验证报文进行解密,以验证客户端的身份。
本实施例的另一种实现方式中,第三接收模块1401,还用于接收客户端在确定服务器缓存的客户端证书的标识中不包括客户端准备使用的证书的标识之后发送的证书报文,上述客户端发送的证书报文携带该客户端准备使用的客户端证书;以及接收客户端发送的加密的证书验证报文,上述加密的证书验证报文是客户端通过与上述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密后发送给服务器的;以及将上述客户端证书和上述加密的证书验证报文传递给第一解密模块1404;
第一解密模块1404,还用于从第三接收模块1401接收上述客户端证书和加密的证书验证报文,通过上述客户端证书中的公钥对加密后的证书验证报文进行解密,以验证客户端的身份。
本实施例的再一种实现方式中,上述服务器15还可以包括:第四查找模块1405和第二解密模块1406;
本实现方式中,第三发送模块1402发送的服务器握手报文还可以携带不需客户端发送证书的指示,而不携带上述服务器缓存的客户端证书的标识;
第三发送模块1402,还用于向客户端发送服务器握手报文之后,向上述客户端发送证书请求报文;
第三接收模块1401,还用于接收客户端发送的证书标识报文,该证书标识报文携带客户端准备使用的证书的标识;以及将上述客户端准备使用的证书的标识传递给第四查找模块1405;以及接收客户端发送的加密的证书验证报文,将上述加密的证书验证报文传递给第二解密模块1406,上述加密的证书验证报文是客户端通过与上述客户端准备使用的证书匹配的私钥对待发送的证书验证报文加密后发送给上述服务器的;
第四查找模块1405,用于从第三接收模块1401接收上述客户端准备使用的证书的标识,在服务器缓存的客户端证书中查找与所述客户端准备使用的证书的标识对应的客户端证书;以及将查找到的客户端证书传递给第二解密模块1406;
第二解密模块1406,用于从第三接收模块1401接收上述加密的证书验证报文,以及从第四查找模块1405接收客户端证书,及通过客户端证书中的公钥对加密后的证书验证报文进行解密,以验证上述客户端的身份。
上述实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图16为本发明服务器再一个实施例的结构示意图,本实施例中的服务器16可以实现本发明图4所示实施例的流程,如图16所示,该服务器16可以包括:第四接收模块1601和第四发送模块1602;
第四接收模块1601,用于接收客户端发送的第一客户端握手报文,该第一客户端握手报文携带不需服务器发送证书的指示;以及将上述不需所述服务器发送证书的指示发送给第四发送模块1602;
第四发送模块1602,用于从第四接收模块1601接收上述不需服务器发送证书的指示,向客户端发送服务器握手报文,该服务器握手报文携带上述服务器准备使用的证书的标识;
第四接收模块1601,还用于接收客户端在上述客户端缓存的服务器证书中,查找到与服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,上述加密的客户端密钥交换报文是客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给服务器的。
本实施例的一种实现方式中,第四接收模块1601,还用于接收客户端在上述客户端缓存的服务器证书中,未查找到与服务器准备使用的证书的标识对应的服务器证书之后重新发送的第二客户端握手报文,该第二客户端握手报文不携带不需服务器发送证书的指示;以及接收客户端发送的加密的客户端密钥交换报文,上述加密的客户端密钥交换报文是客户端接收到服务器准备使用的服务器证书之后,通过服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给服务器的;
第四发送模块1602,还用于向客户端发送证书报文,第四发送模块1602发送的证书报文携带服务器准备使用的服务器证书,以便客户端缓存上述服务器准备使用的服务器证书。
上述实施例中,第四接收模块1601接收到客户端发送的携带不需所述服务器发送证书的指示的第一客户端握手报文之后,第四发送模块1602不向客户端发送证书报文,而是将该服务器准备使用的证书的标识携带在服务器握手报文中发送给客户端;本实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图17为本发明客户端再一个实施例的结构示意图,如图17所示,该客户端17可以包括:总线1704、至少一个处理器1701、通信接口1703以及存储器1702,处理器1701、存储器1702和通信接口1703均连接到总线1704。该存储器1702用于存储可执行程序代码,其中,处理器1701通过读取存储器1702中存储的可执行程序代码来运行与可执行程序代码对应的程序,以使客户端实现如下功能:向服务器发送客户端握手报文,上述客户端握手报文携带该客户端缓存的服务器证书的标识;接收服务器发送的服务器握手报文,当服务器确定客户端缓存的服务器证书的标识包括上述服务器准备使用的证书的标识时,该服务器握手报文携带上述服务器准备使用的证书的标识;在客户端缓存的服务器证书中,查找与上述服务器准备使用的证书的标识对应的服务器证书;通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给服务器。
在本实施例中,通信接口1703具体可以为网络接口适配器(或称网卡),或可以为天线等可单独或分别做发送器和接收器的设备,主要用于与服务器建立通信通道,并在处理器1701的指示下实现报文的发送和接收。
上述实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图18为本发明客户端再一个实施例的结构示意图,如图18所示,该客户端18可以包括:总线1804、至少一个处理器1801、通信接口1803以及存储器1802,上述处理器1801、存储器1802和通信接口1803均连接到总线1804。该存储器1802用于存储可执行程序代码,其中,处理器1801通过读取存储器1802中存储的可执行程序代码来运行与可执行程序代码对应的程序,以使客户端实现如下功能:向服务器发送第一客户端握手报文,该第一客户端握手报文携带不需服务器发送证书的指示;接收服务器发送的服务器握手报文,上述服务器握手报文携带服务器准备使用的证书的标识;如果在该客户端缓存的服务器证书中,查找到与服务器准备使用的证书的标识对应的服务器证书,则通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给服务器。
在本实施例中,上述通信接口1803,具体可以为网卡,或可以为天线等可单独或分别做发送器和接收器的设备,主要用于与服务器建立通信通道,并在处理器1801的指示下实现报文的发送和接收。
上述实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图19为本发明服务器再一个实施例的结构示意图,如图19所示,该服务器19可以包括:总线1904、至少一个处理器1901、通信接口1903以及存储器1902,上述处理器1901、存储器1902和通信接口1903均连接到总线1904。该存储器1902用于存储可执行程序代码,其中,处理器1901通过读取存储器1902中存储的可执行程序代码来运行与可执行程序代码对应的程序,以使服务器实现如下功能:接收客户端发送的客户端握手报文,该客户端握手报文携带该客户端缓存的服务器证书的标识;向客户端发送服务器握手报文,当上述服务器确定客户端缓存的服务器证书的标识包括服务器准备使用的证书的标识时,上述服务器握手报文携带该服务器准备使用的证书的标识;接收客户端发送的加密的客户端密钥交换报文,上述加密的客户端密钥交换报文是客户端在该客户端缓存的服务器证书中查找到与上述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给服务器的。
在本实施例中,上述通信接口1903,具体可以为网卡,用于与客户端建立通信通道,并在处理器1901的指示下实现与客户端之间报文的发送和接收。
上述实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图20为本发明服务器再一个实施例的结构示意图,如图20所示,该服务器20可以包括:总线2004、至少一个处理器2001、通信接口2003以及存储器2002,上述处理器2001、存储器2002和通信接口2003均连接到总线2004。该存储器2002用于存储可执行程序代码,其中,处理器2001通过读取存储器2002中存储的可执行程序代码来运行与可执行程序代码对应的程序,以使服务器实现如下功能:接收客户端发送的第一客户端握手报文,该第一客户端握手报文携带不需服务器发送证书的指示;向客户端发送服务器握手报文,上述服务器握手报文携带服务器准备使用的证书的标识;接收客户端在上述客户端缓存的服务器证书中,查找到与服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,该加密的客户端密钥交换报文是客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给上述服务器的。
在本实施例中,上述通信接口2003,具体可以为网卡,用于与客户端建立通信通道,并在处理器2001的指示下实现与客户端之间的报文发送和接收。
上述实施例中,服务器可以不向客户端发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图21为本发明报文交换系统一个实施例的结构示意图,如图21所示,该报文交换系统可以包括至少一个客户端2101和至少一个服务器2102,其中,
客户端2101用于:向服务器2102发送客户端握手报文,上述客户端握手报文携带客户端缓存的服务器证书的标识;接收服务器2102发送的服务器握手报文,当服务器2102确定客户端2101缓存的服务器证书的标识包括服务器2102准备使用的证书的标识时,上述服务器握手报文携带服务器2102准备使用的证书的标识;在客户端2101缓存的服务器证书中,查找与服务器2102准备使用的证书的标识对应的服务器证书;通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给服务器2102;
服务器2102用于:接收客户端2101发送的客户端握手报文,上述客户端握手报文携带客户端2101缓存的服务器证书的标识;向客户端2101发送服务器握手报文,当服务器2102确定客户端2101缓存的服务器证书的标识包括服务器2102准备使用的证书的标识时,上述服务器握手报文携带服务器2102准备使用的证书的标识;接收客户端2101发送的加密的客户端密钥交换报文,上述加密的客户端密钥交换报文是客户端2101在客户端2101缓存的服务器证书中查找到与服务器2102准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给服务器2102的。
图21以报文交换系统包括一个客户端2101和一个服务器2102为例示出。
上述报文交换系统中,服务器2102可以不向客户端2101发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
图22为本发明报文交换系统另一个实施例的结构示意图,如图22所示,该报文交换系统可以包括至少一个客户端2201和至少一个服务器2202,其中,
客户端2201用于:向服务器2202发送第一客户端握手报文,第一客户端握手报文携带不需服务器发送证书的指示;接收服务器2202发送的服务器握手报文,服务器握手报文携带服务器2202准备使用的证书的标识;如果客户端2201在客户端2201缓存的服务器证书中,查找到与服务器2202准备使用的证书的标识对应的服务器证书,则客户端2201通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给服务器2202;
服务器2202用于:接收客户端2201发送的第一客户端握手报文,第一客户端握手报文携带不需服务器发送证书的指示;向客户端2201发送服务器握手报文,服务器握手报文携带服务器2202准备使用的证书的标识;接收客户端2201在客户端2201缓存的服务器证书中,查找到与服务器2202准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,加密的客户端密钥交换报文是客户端2201通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给服务器2202的。
图22以报文交换系统包括一个客户端2201和一个服务器2202为例示出。
上述报文交换系统中,服务器2202可以不向客户端2201发送证书报文,从而可以减少TLS握手过程中的数据量,缩短TLS握手过程占用的时间,进而可以提高TLS连接的速度,并且可以避免缓存区过小导致的证书报文多次发送的问题,从而可以进一步提高TLS连接的速度。
综上所述,本发明实施例提供的报文发送和接收方法、客户端、服务器和系统具有如下技术效果:通过在TLS握手过程中省略证书报文的传递,可以优化TLS握手的性能。在低速网络中,省略证书报文的传递可以大幅减少TLS握手过程中的数据量,从而可以大大提高TLS连接速度;并且,省略证书报文的传递可以使多个TLS握手报文一次发送完成,可以避免缓存区过小导致的证书报文多次发送的问题,进而可以避免延迟ACK对TLS握手过程的影响,大大提高了TLS连接的速度。另外,省略证书报文的传递可以省略证书链的验证过程,可以大大减少TLS握手过程中客户端和服务器的CPU开销。
另外,本发明不会降低TLS连接的安全性,这是因为证书本身是公开的资源,其安全性在于其完整性。对比使用每次握手时从对端传递过来的证书,和本地缓存的证书,两者在安全性方面没有区别。对于缓存证书带来的存储开销,现在很多客户端已经具备了较大的存储空间。增加少量的缓存空间开销不会有不利影响。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口;装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明实施例提供的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (46)

1.一种报文发送方法,其特征在于,包括:
客户端向服务器发送客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;
所述客户端接收所述服务器发送的服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;
所述客户端在所述客户端缓存的服务器证书中,查找与所述服务器准备使用的证书的标识对应的服务器证书;
所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给所述服务器。
2.根据权利要求1所述的方法,其特征在于,所述客户端向服务器发送客户端握手报文之前,还包括:
所述客户端在与所述服务器交互的过程中,缓存所述服务器发送的服务器证书。
3.根据权利要求1所述的方法,其特征在于,
当所述服务器确定所述客户端缓存的服务器证书的标识不包括所述服务器准备使用的证书的标识时,所述服务器握手报文不携带所述服务器准备使用的证书的标识;
所述客户端接收所述服务器发送的服务器握手报文之后,还包括:
所述客户端接收所述服务器发送的证书报文,所述服务器发送的证书报文携带所述服务器准备使用的服务器证书;
所述客户端缓存所述服务器准备使用的服务器证书,并通过所述服务器准备使用的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给所述服务器。
4.根据权利要求1所述的方法,其特征在于,所述客户端向服务器发送客户端握手报文之前,还包括:
所述客户端对所述客户端缓存的服务器证书的有效性进行检查;
所述客户端握手报文携带的所述客户端缓存的服务器证书的标识包括所述客户端缓存的有效的服务器证书的标识。
5.根据权利要求1所述的方法,其特征在于,所述服务器握手报文还携带不需所述客户端发送证书的指示和所述服务器缓存的客户端证书的标识;
所述客户端接收所述服务器发送的服务器握手报文之后,还包括:
所述客户端接收所述服务器发送的证书请求报文;
当所述客户端确定所述服务器缓存的客户端证书的标识中包括所述客户端准备使用的证书的标识时,所述客户端根据服务器发送的证书请求报文向所述服务器发送证书标识报文,所述证书标识报文携带所述客户端准备使用的证书的标识;
所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给所述服务器,以便所述服务器在所述服务器缓存的客户端证书中查找到与所述客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
6.根据权利要求5所述的方法,其特征在于,所述客户端接收所述服务器发送的证书请求报文之后,还包括:
当所述客户端确定所述服务器缓存的客户端证书的标识中不包括所述客户端准备使用的证书的标识时,所述客户端根据服务器发送的证书请求报文向所述服务器发送证书报文,所述客户端发送的证书报文携带所述客户端准备使用的客户端证书;
所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给所述服务器,以便所述服务器通过接收的所述客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
7.根据权利要求1所述的方法,其特征在于,所述服务器握手报文还携带不需所述客户端发送证书的指示;
所述客户端接收所述服务器发送的服务器握手报文之后,还包括:
所述客户端接收所述服务器发送的证书请求报文;
所述客户端向所述服务器发送证书标识报文,所述证书标识报文携带所述客户端准备使用的证书的标识;
所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,并将加密后的证书验证报文发送给所述服务器,以便所述服务器在所述服务器缓存的客户端证书中查找到与所述客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
8.根据权利要求1-7中任意一项所述的方法,其特征在于,所述客户端握手报文还携带不需所述服务器发送证书的指示;
所述客户端握手报文携带所述客户端缓存的服务器证书的标识包括:所述客户端握手报文中新增第一扩展,所述第一扩展的扩展数据为所述客户端缓存的服务器证书的标识;
所述客户端握手报文还携带不需所述服务器发送证书的指示包括:所述客户端握手报文中新增的所述第一扩展的扩展类型为不需所述服务器发送证书。
9.根据权利要求1、2、4-7中任意一项所述的方法,其特征在于,所述服务器握手报文携带所述服务器准备使用的证书的标识包括:
所述服务器握手报文中新增第二扩展,所述第二扩展的扩展数据为所述服务器准备使用的证书的标识。
10.根据权利要求5或6所述的方法,其特征在于,所述服务器握手报文还携带不需所述客户端发送证书的指示和所述服务器缓存的客户端证书的标识包括:
所述服务器握手报文中新增第三扩展,所述第三扩展的扩展类型为不需所述客户端发送证书,所述第三扩展的扩展数据为所述服务器缓存的客户端证书的标识。
11.一种报文发送方法,其特征在于,包括:
客户端向服务器发送第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;
所述客户端接收所述服务器发送的服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;
如果所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书,则所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给所述服务器。
12.根据权利要求11所述的方法,其特征在于,所述客户端接收所述服务器发送的服务器握手报文之后,还包括:
如果所述客户端在所述客户端缓存的服务器证书中,未查找到与所述服务器准备使用的证书的标识对应的服务器证书,则所述客户端向所述服务器发送第二客户端握手报文,所述第二客户端握手报文不携带不需所述服务器发送证书的指示;
所述客户端接收所述服务器发送的证书报文,所述服务器发送的证书报文携带所述服务器准备使用的服务器证书;
所述客户端缓存所述服务器准备使用的服务器证书,并通过所述服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,将加密后的客户端密钥交换报文发送给所述服务器。
13.根据权利要求11或12所述的方法,其特征在于,所述第一客户端握手报文携带不需所述服务器发送证书的指示包括:
所述第一客户端握手报文中新增第一扩展,所述第一扩展的扩展类型为不需所述服务器发送证书;
所述服务器握手报文携带所述服务器准备使用的证书的标识包括:
所述服务器握手报文中新增第二扩展,所述第二扩展的扩展数据为所述服务器准备使用的证书的标识。
14.一种报文接收方法,其特征在于,包括:
服务器接收客户端发送的客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;
所述服务器向所述客户端发送服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;
所述服务器接收所述客户端发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端在所述客户端缓存的服务器证书中查找到与所述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
15.根据权利要求14所述的方法,其特征在于,所述服务器接收客户端发送的客户端握手报文之前,还包括:
所述服务器在与所述客户端交互的过程中,向所述客户端发送服务器证书,以便所述客户端缓存所述服务器发送的服务器证书。
16.根据权利要求14所述的方法,其特征在于,
当所述服务器确定所述客户端缓存的服务器证书的标识不包括所述服务器准备使用的证书的标识时,所述服务器握手报文不携带所述服务器准备使用的证书的标识;
所述服务器向所述客户端发送服务器握手报文之后,还包括:
所述服务器向所述客户端发送证书报文,所述服务器发送的证书报文携带所述服务器准备使用的服务器证书,以便所述客户端缓存所述服务器准备使用的服务器证书;
所述服务器接收所述客户端发送的加密的客户端密钥交换报文;所述加密的客户端密钥交换报文是所述客户端接收到所述服务器准备使用的服务器证书之后,通过所述服务器准备使用的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
17.根据权利要求14所述的方法,其特征在于,所述客户端握手报文携带的所述客户端缓存的服务器证书的标识包括所述客户端缓存的有效的服务器证书的标识。
18.根据权利要求14所述的方法,其特征在于,所述服务器握手报文还携带不需所述客户端发送证书的指示和所述服务器缓存的客户端证书的标识;
所述服务器向所述客户端发送服务器握手报文之后,还包括:
所述服务器向所述客户端发送证书请求报文;
所述服务器接收所述客户端在确定所述服务器缓存的客户端证书的标识中包括所述客户端准备使用的证书的标识之后发送的证书标识报文,所述证书标识报文携带所述客户端准备使用的证书的标识;
所述服务器接收所述客户端发送的加密的证书验证报文,所述加密的证书验证报文是所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文加密后发送给所述服务器的;
所述服务器在所述服务器缓存的客户端证书中查找到与所述客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
19.根据权利要求18所述的方法,其特征在于,所述服务器向所述客户端发送证书请求报文之后,还包括:
所述服务器接收所述客户端在确定所述服务器缓存的客户端证书的标识中不包括所述客户端准备使用的证书的标识之后发送的证书报文,所述客户端发送的证书报文携带所述客户端准备使用的客户端证书;
所述服务器接收所述客户端发送的加密的证书验证报文,所述加密的证书验证报文是所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密后发送给所述服务器的;
所述服务器通过接收的所述客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
20.根据权利要求14所述的方法,其特征在于,所述服务器握手报文还携带不需所述客户端发送证书的指示;
所述服务器向所述客户端发送服务器握手报文之后,还包括:
所述服务器向所述客户端发送证书请求报文;
所述服务器接收所述客户端发送的证书标识报文,所述证书标识报文携带所述客户端准备使用的证书的标识;
所述服务器接收所述客户端发送的加密的证书验证报文,所述加密的证书验证报文是所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文加密后发送给所述服务器的;
所述服务器在所述服务器缓存的客户端证书中查找到与所述客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
21.根据权利要求14-20任意一项所述的方法,其特征在于,所述客户端握手报文还携带不需所述服务器发送证书的指示;
所述客户端握手报文携带所述客户端缓存的服务器证书的标识包括:所述客户端握手报文中新增第一扩展,所述第一扩展的扩展数据为所述客户端缓存的服务器证书的标识;
所述客户端握手报文还携带不需所述服务器发送证书的指示包括:所述客户端握手报文中新增的所述第一扩展的扩展类型为不需所述服务器发送证书。
22.根据权利要求14、15、17-20任意一项所述的方法,其特征在于,所述服务器握手报文携带所述服务器准备使用的证书的标识包括:
所述服务器握手报文中新增第二扩展,所述第二扩展的扩展数据为所述服务器准备使用的证书的标识。
23.根据权利要求18或19所述的方法,其特征在于,所述服务器握手报文还携带不需所述客户端发送证书的指示和所述服务器缓存的客户端证书的标识包括:
所述服务器握手报文中新增第三扩展,所述第三扩展的扩展类型为不需所述客户端发送证书,所述第三扩展的扩展数据为所述服务器缓存的客户端证书的标识。
24.一种报文接收方法,其特征在于,包括:
服务器接收客户端发送的第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;
所述服务器向所述客户端发送服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;
所述服务器接收所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
25.根据权利要求24所述的方法,其特征在于,所述服务器向所述客户端发送服务器握手报文之后,还包括:
所述服务器接收所述客户端在所述客户端缓存的服务器证书中,未查找到与所述服务器准备使用的证书的标识对应的服务器证书之后重新发送的第二客户端握手报文,所述第二客户端握手报文不携带不需所述服务器发送证书的指示;
所述服务器向所述客户端发送证书报文,所述服务器发送的证书报文携带所述服务器准备使用的服务器证书,以便所述客户端缓存所述服务器准备使用的服务器证书;
所述服务器接收所述客户端发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端接收到所述服务器准备使用的服务器证书之后,通过所述服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
26.根据权利要求24或25所述的方法,其特征在于,所述第一客户端握手报文携带不需所述服务器发送证书的指示包括:
所述第一客户端握手报文中新增第一扩展,所述第一扩展的扩展类型为不需所述服务器发送证书;
所述服务器握手报文携带所述服务器准备使用的证书的标识包括:所述服务器握手报文中新增第二扩展,所述第二扩展的扩展数据为所述服务器准备使用的证书的标识。
27.一种客户端,其特征在于,包括:第一发送模块、第一接收模块、第一查找模块和第一加密模块;
所述第一发送模块,用于向服务器发送客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;以及从所述第一加密模块接收加密后的客户端密钥交换报文,并将所述加密后的客户端密钥交换报文发送给所述服务器;
所述第一接收模块,用于接收所述服务器发送的服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;以及将所述服务器准备使用的证书的标识传递给所述第一查找模块;
所述第一查找模块,用于从所述第一接收模块接收所述服务器准备使用的证书的标识,在所述客户端缓存的服务器证书中,查找与所述服务器准备使用的证书的标识对应的服务器证书;以及将查找到的服务器证书传递给所述第一加密模块;
所述第一加密模块,用于从所述第一查找模块接收所述查找到的服务器证书,通过所述查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文传递给所述第一发送模块。
28.根据权利要求27所述的客户端,其特征在于,还包括:第一缓存模块;
所述第一缓存模块,用于在与所述服务器交互的过程中,缓存所述服务器发送的服务器证书;以及将缓存的服务器证书的标识传递给所述第一发送模块。
29.根据权利要求28所述的客户端,其特征在于,
当所述服务器确定所述客户端缓存的服务器证书的标识不包括所述服务器准备使用的证书的标识时,所述第一接收模块接收的服务器握手报文不携带所述服务器准备使用的证书的标识;
所述第一接收模块,还用于在接收不携带所述服务器准备使用的证书的标识的服务器握手报文之后,接收所述服务器发送的证书报文,所述服务器发送的证书报文携带所述服务器准备使用的服务器证书;以及将所述服务器准备使用的服务器证书分别传递给所述第一缓存模块和所述第一加密模块;
所述第一缓存模块,还用于从所述第一接收模块接收所述服务器准备使用的服务器证书,缓存所述服务器准备使用的服务器证书;
所述第一加密模块,还用于从所述第一接收模块接收所述服务器准备使用的服务器证书,通过所述服务器准备使用的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密。
30.根据权利要求27所述的客户端,其特征在于,还包括:检查模块;
所述检查模块,用于在所述第一发送模块发送客户端握手报文之前,对所述客户端缓存的服务器证书的有效性进行检查;以及将所述客户端缓存的有效的服务器证书的标识传递给所述第一发送模块;
所述第一发送模块,还用于从所述检查模块接收所述客户端缓存的有效的服务器证书的标识,所述第一发送模块发送的所述客户端握手报文携带的所述客户端缓存的服务器证书的标识包括所述客户端缓存的有效的服务器证书的标识。
31.根据权利要求27所述的客户端,其特征在于,
所述第一接收模块接收的所述服务器握手报文还携带不需所述客户端发送证书的指示和所述服务器缓存的客户端证书的标识;
所述第一接收模块,还用于在接收所述服务器发送的服务器握手报文之后,接收所述服务器发送的证书请求报文;
所述第一发送模块,还用于当所述客户端确定所述服务器缓存的客户端证书的标识中包括所述客户端准备使用的证书的标识时,根据服务器发送的证书请求报文向所述服务器发送证书标识报文,所述证书标识报文携带所述客户端准备使用的证书的标识;以及从所述第一加密模块接收加密后的证书验证报文,将所述加密后的证书验证报文发送给所述服务器,以便所述服务器在所述服务器缓存的客户端证书中查找到与所述客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份;
所述第一加密模块,还用于通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,以及将加密后的证书验证报文传递给所述第一发送模块。
32.根据权利要求31所述的客户端,其特征在于,
所述第一发送模块,还用于当所述客户端确定所述服务器缓存的客户端证书的标识中不包括所述客户端准备使用的证书的标识时,根据服务器发送的证书请求报文向所述服务器发送证书报文,所述第一发送模块发送的证书报文携带所述客户端准备使用的客户端证书。
33.根据权利要求27所述的客户端,其特征在于,
所述第一接收模块接收的所述服务器握手报文还携带不需所述客户端发送证书的指示;
所述第一接收模块,还用于在接收所述服务器发送的服务器握手报文之后,接收所述服务器发送的证书请求报文;
所述第一发送模块,还用于向所述服务器发送证书标识报文,所述证书标识报文携带所述客户端准备使用的证书的标识;以及从所述第一加密模块接收加密后的证书验证报文,将所述加密后的证书验证报文发送给所述服务器,以便所述服务器在所述服务器缓存的客户端证书中查找到与所述客户端准备使用的证书的标识对应的客户端证书之后,通过查找到的客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份;
所述第一加密模块,还用于通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密,以及将加密后的证书验证报文传递给所述第一发送模块。
34.一种客户端,其特征在于,包括:第二发送模块、第二接收模块、第二查找模块和第二加密模块;
所述第二发送模块,用于向服务器发送第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;以及从所述第二加密模块接收加密后的客户端密钥交换报文,将所述加密后的客户端密钥交换报文发送给所述服务器;
所述第二接收模块,用于接收所述服务器发送的服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;以及将所述服务器准备使用的证书的标识传递给所述第二查找模块;
所述第二查找模块,用于从所述第二接收模块接收所述服务器准备使用的证书的标识,在所述客户端缓存的服务器证书中,查找与所述服务器准备使用的证书的标识对应的服务器证书;以及当查找到与所述服务器准备使用的证书的标识对应的服务器证书时,将查找到的服务器证书传递给所述第二加密模块;
所述第二加密模块,用于从所述第二查找模块接收所述查找到的服务器证书,通过所述查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,以及将加密后的客户端密钥交换报文传递给所述第二发送模块。
35.根据权利要求34所述的客户端,其特征在于,还包括:第二缓存模块;
所述第二发送模块,还用于当所述第二查找模块在所述客户端缓存的服务器证书中,未查找到与所述服务器准备使用的证书的标识对应的服务器证书时,向所述服务器重新发送第二客户端握手报文,所述第二客户端握手报文不携带不需所述服务器发送证书的指示;
所述第二接收模块,还用于接收所述服务器发送的证书报文,所述服务器发送的证书报文携带所述服务器准备使用的服务器证书;以及将所述服务器准备使用的服务器证书分别传递给所述第二缓存模块和所述第二加密模块;
所述第二缓存模块,还用于从所述第二接收模块接收所述服务器准备使用的服务器证书,缓存所述服务器准备使用的服务器证书;
所述第二加密模块,还用于从所述第二接收模块接收所述服务器准备使用的服务器证书,通过所述服务器证书中的公钥对待发送的客户端密钥交换报文进行加密。
36.一种服务器,其特征在于,包括:第三接收模块和第三发送模块;
所述第三接收模块,用于接收客户端发送的客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;以及将所述客户端缓存的服务器证书的标识传递给所述第三发送模块;以及接收所述客户端发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端在所述客户端缓存的服务器证书中查找到与所述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的;
所述第三发送模块,用于从所述第三接收模块接收所述客户端缓存的服务器证书的标识,向所述客户端发送服务器握手报文,当确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述第三发送模块发送的所述服务器握手报文携带所述服务器准备使用的证书的标识。
37.根据权利要求36所述的服务器,其特征在于,
所述第三发送模块,还用于在与所述客户端交互的过程中,向所述客户端发送服务器证书,以便所述客户端缓存所述服务器发送的服务器证书。
38.根据权利要求36或37所述的服务器,其特征在于,
当确定所述客户端缓存的服务器证书的标识不包括所述服务器准备使用的证书的标识时,所述第三发送模块发送的所述服务器握手报文不携带所述服务器准备使用的证书的标识;
所述第三发送模块,还用于在向所述客户端发送服务器握手报文之后,向所述客户端发送证书报文,所述第三发送模块发送的证书报文携带所述服务器准备使用的服务器证书,以便所述客户端缓存所述服务器准备使用的服务器证书;
所述第三接收模块,还用于接收所述客户端发送的加密的客户端密钥交换报文;所述加密的客户端密钥交换报文是所述客户端接收到所述服务器准备使用的服务器证书之后,通过所述服务器准备使用的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
39.根据权利要求36所述的服务器,其特征在于,所述第三接收模块接收的所述客户端握手报文携带的所述客户端缓存的服务器证书的标识包括所述客户端缓存的有效的服务器证书的标识。
40.根据权利要求36所述的服务器,其特征在于,还包括:第三查找模块和第一解密模块;
所述第三发送模块发送的所述服务器握手报文还携带不需所述客户端发送证书的指示和所述服务器缓存的客户端证书的标识;
所述第三发送模块,还用于向所述客户端发送服务器握手报文之后,向所述客户端发送证书请求报文;
所述第三接收模块,还用于接收所述客户端确定所述服务器缓存的客户端证书的标识中包括所述客户端准备使用的证书的标识之后发送的证书标识报文,所述证书标识报文携带所述客户端准备使用的证书的标识;以及将所述客户端准备使用的证书的标识传递给所述第三查找模块;以及接收所述客户端发送的加密的证书验证报文,将所述加密的证书验证报文传递给所述第一解密模块,所述加密的证书验证报文是所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文加密后发送给所述服务器的;
所述第三查找模块,用于从所述第三接收模块接收所述客户端准备使用的证书的标识,在所述服务器缓存的客户端证书中查找与所述客户端准备使用的证书的标识对应的客户端证书;以及将查找到的客户端证书传递给所述第一解密模块;
所述第一解密模块,用于从所述第三接收模块接收所述加密的证书验证报文,以及从所述第三查找模块接收客户端证书,及通过所述客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
41.根据权利要求40所述的服务器,其特征在于,
所述第三接收模块,还用于接收所述客户端在确定所述服务器缓存的客户端证书的标识中不包括所述客户端准备使用的证书的标识之后发送的证书报文,所述客户端发送的证书报文携带所述客户端准备使用的客户端证书;以及接收所述客户端发送的加密的证书验证报文,所述加密的证书验证报文是所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文进行加密后发送给所述服务器的;以及将所述客户端证书和所述加密的证书验证报文传递给所述第一解密模块;
所述第一解密模块,还用于从所述第三接收模块接收所述客户端证书和所述加密的证书验证报文,通过所述客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
42.根据权利要求36所述的服务器,其特征在于,还包括:第四查找模块和第二解密模块;
所述第三发送模块发送的所述服务器握手报文还携带不需所述客户端发送证书的指示;
所述第三发送模块,还用于向所述客户端发送服务器握手报文之后,向所述客户端发送证书请求报文;
所述第三接收模块,还用于接收所述客户端发送的证书标识报文,所述证书标识报文携带所述客户端准备使用的证书的标识;以及将所述客户端准备使用的证书的标识传递给所述第四查找模块;以及接收所述客户端发送的加密的证书验证报文,将所述加密的证书验证报文传递给所述第二解密模块,所述加密的证书验证报文是所述客户端通过与所述客户端准备使用的证书匹配的私钥对待发送的证书验证报文加密后发送给所述服务器的;
所述第四查找模块,用于从所述第三接收模块接收所述客户端准备使用的证书的标识,在所述服务器缓存的客户端证书中查找与所述客户端准备使用的证书的标识对应的客户端证书;以及将查找到的客户端证书传递给所述第二解密模块;
所述第二解密模块,用于从所述第三接收模块接收所述加密的证书验证报文,以及从所述第四查找模块接收客户端证书,及通过所述客户端证书中的公钥对所述加密后的证书验证报文进行解密,以验证所述客户端的身份。
43.一种服务器,其特征在于,包括:第四接收模块和第四发送模块;
所述第四接收模块,用于接收客户端发送的第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;以及将所述不需所述服务器发送证书的指示发送给所述第四发送模块;
所述第四发送模块,用于从所述第四接收模块接收所述不需所述服务器发送证书的指示,向所述客户端发送服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;
所述第四接收模块,还用于接收所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
44.根据权利要求43所述的服务器,其特征在于,
所述第四接收模块,还用于接收所述客户端在所述客户端缓存的服务器证书中,未查找到与所述服务器准备使用的证书的标识对应的服务器证书之后重新发送的第二客户端握手报文,所述第二客户端握手报文不携带不需所述服务器发送证书的指示;以及接收所述客户端发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端接收到所述服务器准备使用的服务器证书之后,通过所述服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的;
所述第四发送模块,还用于向所述客户端发送证书报文,所述第四发送模块发送的证书报文携带所述服务器准备使用的服务器证书,以便所述客户端缓存所述服务器准备使用的服务器证书。
45.一种报文交换系统,其特征在于,所述系统包括至少一个客户端和至少一个服务器,其中,
所述客户端用于:向服务器发送客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;接收所述服务器发送的服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;在所述客户端缓存的服务器证书中,查找与所述服务器准备使用的证书的标识对应的服务器证书;通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给所述服务器;
所述服务器用于:接收客户端发送的客户端握手报文,所述客户端握手报文携带所述客户端缓存的服务器证书的标识;向所述客户端发送服务器握手报文,当所述服务器确定所述客户端缓存的服务器证书的标识包括所述服务器准备使用的证书的标识时,所述服务器握手报文携带所述服务器准备使用的证书的标识;接收所述客户端发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端在所述客户端缓存的服务器证书中查找到与所述服务器准备使用的证书的标识对应的服务器证书之后,通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
46.一种报文交换系统,其特征在于,所述系统包括至少一个客户端和至少一个服务器,其中,
所述客户端用于:向服务器发送第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;接收所述服务器发送的服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;如果所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书,则所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密,并将加密后的客户端密钥交换报文发送给所述服务器;
所述服务器用于:接收客户端发送的第一客户端握手报文,所述第一客户端握手报文携带不需所述服务器发送证书的指示;向所述客户端发送服务器握手报文,所述服务器握手报文携带所述服务器准备使用的证书的标识;接收所述客户端在所述客户端缓存的服务器证书中,查找到与所述服务器准备使用的证书的标识对应的服务器证书之后发送的加密的客户端密钥交换报文,所述加密的客户端密钥交换报文是所述客户端通过查找到的服务器证书中的公钥对待发送的客户端密钥交换报文进行加密后发送给所述服务器的。
CN201210273217.0A 2012-08-02 2012-08-02 报文发送和接收的方法、装置和系统 Expired - Fee Related CN102801616B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210273217.0A CN102801616B (zh) 2012-08-02 2012-08-02 报文发送和接收的方法、装置和系统
PCT/CN2013/074409 WO2014019386A1 (zh) 2012-08-02 2013-04-19 报文发送和接收的方法、装置和系统
US14/577,907 US20150156025A1 (en) 2012-08-02 2014-12-19 Message sending and receiving method, apparatus, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210273217.0A CN102801616B (zh) 2012-08-02 2012-08-02 报文发送和接收的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN102801616A CN102801616A (zh) 2012-11-28
CN102801616B true CN102801616B (zh) 2015-04-15

Family

ID=47200584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210273217.0A Expired - Fee Related CN102801616B (zh) 2012-08-02 2012-08-02 报文发送和接收的方法、装置和系统

Country Status (3)

Country Link
US (1) US20150156025A1 (zh)
CN (1) CN102801616B (zh)
WO (1) WO2014019386A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801616B (zh) * 2012-08-02 2015-04-15 华为技术有限公司 报文发送和接收的方法、装置和系统
CN104639471B (zh) * 2013-11-06 2018-08-24 航天信息股份有限公司 一种报文分包处理的方法
CN105296433B (zh) 2014-08-01 2018-02-09 中山康方生物医药有限公司 一种ctla4抗体、其药物组合物及其用途
US10439908B2 (en) 2014-12-23 2019-10-08 Talari Networks Incorporated Methods and apparatus for providing adaptive private network centralized management system time correlated playback of network traffic
CN105871797A (zh) * 2015-11-19 2016-08-17 乐视云计算有限公司 客户端与服务器进行握手的方法、装置及系统
WO2017190279A1 (zh) * 2016-05-03 2017-11-09 华为技术有限公司 一种证书通知方法及装置
WO2018035710A1 (en) 2016-08-23 2018-03-01 Akeso Biopharma, Inc. Anti-ctla4 antibodies
CN107786515B (zh) * 2016-08-29 2020-04-21 中国移动通信有限公司研究院 一种证书认证的方法和设备
CN108804434B (zh) * 2017-04-26 2022-12-27 腾讯科技(深圳)有限公司 一种消息查询方法、服务器及终端设备
CN107147497B (zh) * 2017-05-02 2018-07-06 北京海泰方圆科技股份有限公司 信息处理方法和装置
CN108200063B (zh) * 2017-12-29 2020-01-03 华中科技大学 一种可搜索公钥加密方法、采用该方法的系统和服务器
CN108200104A (zh) * 2018-03-23 2018-06-22 网宿科技股份有限公司 一种进行ssl握手的方法和系统
CN108880821B (zh) * 2018-06-28 2021-07-13 中国联合网络通信集团有限公司 一种数字证书的认证方法及设备
CN109150844B (zh) * 2018-07-26 2021-07-27 网易(杭州)网络有限公司 确定数字证书的方法、装置和系统
CN110225135B (zh) * 2019-06-24 2022-02-15 北京字节跳动网络技术有限公司 服务器的连接方法、装置、电子设备及存储介质
CN112003879B (zh) * 2020-10-22 2021-05-18 腾讯科技(深圳)有限公司 用于虚拟场景的数据传输方法、计算机设备及存储介质
CN114244846B (zh) * 2021-12-15 2024-02-09 山石网科通信技术股份有限公司 一种流量报文转发方法、装置,中间设备及存储介质
CN115514584B (zh) * 2022-11-16 2023-01-31 北京锘崴信息科技有限公司 服务器以及金融相关服务器的可信安全认证方法
WO2025129502A1 (en) * 2023-12-20 2025-06-26 Huawei Technologies Co., Ltd. Method and apparatus for post-quantum cryptography communication

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459506A (zh) * 2007-12-14 2009-06-17 华为技术有限公司 密钥协商方法、用于密钥协商的系统、客户端及服务器
CN101567784A (zh) * 2008-04-21 2009-10-28 成都市华为赛门铁克科技有限公司 一种获取密钥的方法、系统和设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294366A1 (en) * 2005-06-23 2006-12-28 International Business Machines Corp. Method and system for establishing a secure connection based on an attribute certificate having user credentials
JP2008079091A (ja) * 2006-09-22 2008-04-03 Fujitsu Ltd 電子証明書を用いる認証システム
US20090172776A1 (en) * 2007-12-31 2009-07-02 Petr Makagon Method and System for Establishing and Managing Trust Metrics for Service Providers in a Federated Service Provider Network
CN102801616B (zh) * 2012-08-02 2015-04-15 华为技术有限公司 报文发送和接收的方法、装置和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459506A (zh) * 2007-12-14 2009-06-17 华为技术有限公司 密钥协商方法、用于密钥协商的系统、客户端及服务器
CN101567784A (zh) * 2008-04-21 2009-10-28 成都市华为赛门铁克科技有限公司 一种获取密钥的方法、系统和设备

Also Published As

Publication number Publication date
WO2014019386A1 (zh) 2014-02-06
US20150156025A1 (en) 2015-06-04
CN102801616A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102801616B (zh) 报文发送和接收的方法、装置和系统
CN111869249B (zh) 针对中间人攻击的安全ble just works配对方法
US11303431B2 (en) Method and system for performing SSL handshake
CN105917689B (zh) 以信息为中心的网络中的安全的点对点组
EP3142327B1 (en) Intermediate network entity
CN107659406B (zh) 一种资源操作方法及装置
JP6896940B2 (ja) 第1のアプリケーションと第2のアプリケーションとの間の対称型相互認証方法
CN109936529B (zh) 一种安全通信的方法、装置和系统
US12185110B1 (en) Systems and method for authentication and authorization in networks using service based architecture
US20140337619A1 (en) Derived Certificate based on Changing Identity
US20150172064A1 (en) Method and relay device for cryptographic communication
US20040236965A1 (en) System for cryptographical authentication
WO2022100356A1 (zh) 身份认证系统、方法、装置、设备及计算机可读存储介质
CN111783068A (zh) 设备认证方法、系统、电子设备及存储介质
WO2017067160A1 (zh) 基于mptcp的主流连接建立方法及装置
CN101335626A (zh) 多级认证方法和多级认证系统
US11528150B1 (en) Real-time certificate pinning list (RTCPL)
CN112640360B (zh) 用于对认证信息的设定进行中介的装置及方法
WO2023036348A1 (zh) 一种加密通信方法、装置、设备及介质
CN107566393A (zh) 一种基于受信任证书的动态权限验证系统及方法
CN118573483B (zh) 一种网络安全的管理方法及相关设备
CN114428965A (zh) 安全通信方法、系统、电子装置和存储介质
WO2016000473A1 (zh) 一种业务访问方法、系统及装置
US9800568B1 (en) Methods for client certificate delegation and devices thereof
CN114244569A (zh) Ssl vpn远程访问方法、系统和计算机设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191218

Address after: Room 302, No. 8319, Yanshan Road, Bengbu City, Anhui Province

Patentee after: Bengbu Lichao Information Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201020

Address after: C 013, C 015, C 016, C 020, C 021, C 022, 3 / F, e-commerce Industrial Park, Nantong home textile city, Jinchuan Avenue, Chuanjiang Town, Tongzhou District, Nantong City, Jiangsu Province 226000

Patentee after: Ruide Yinfang (Nantong) Information Technology Co.,Ltd.

Address before: Room 302, No. 8319, Yanshan Road, Bengbu City, Anhui Province

Patentee before: Bengbu Lichao Information Technology Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150415