CN105471896B - 基于ssl的代理方法、装置及系统 - Google Patents
基于ssl的代理方法、装置及系统 Download PDFInfo
- Publication number
- CN105471896B CN105471896B CN201511003185.2A CN201511003185A CN105471896B CN 105471896 B CN105471896 B CN 105471896B CN 201511003185 A CN201511003185 A CN 201511003185A CN 105471896 B CN105471896 B CN 105471896B
- Authority
- CN
- China
- Prior art keywords
- encryption parameter
- client
- master
- public key
- cryptographic secret
- 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
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/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
- H04L63/205—Network 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
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)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于SSL的代理方法、装置及系统,所述方法包括:获取在与客户端的第一握手过程中所选定的第一加密参数以及所述客户端发送的预主密码密文数据;在与服务器的第二握手过程中,获取所述服务器选定的第二加密参数;判断所述第一加密参数和所述第二加密参数是否匹配;若匹配,则直接将在所述第一握手过程中所述客户端发送的预主密码密文数据发送给所述服务器,以使所述服务器根据所述预主密码密文数据完成所述第二握手过程。在判定匹配的情况下,无需对第二握手过程中随机数进行再次计算,就可以获取用于完成第二握手过程的预主密码密文数据,避免了与客户端的第一握手过程中预主密码密文数据的闲置,提高了资源利用率。
Description
技术领域
本发明涉及网络技术领域,特别是涉及一种基于SSL的代理方法、装置及系统。
背景技术
随着网络技术的发展,对网络数据的传输安全的要求也在不断提高。在基于SSL(Secure Sockets Layer,安全套接层)协议的握手过程中,最消耗计算资源的操作是非对称加密运算,非对称加密运算需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。SSL协议是为网络通信提供安全及数据完整性的一种安全协议。
目前SSL代理与客户端和服务器进行握手协商建立连接的过程中,在SSL代理与客户端通过计算得到协商结果,并根据协商结果建立连接。之后,SSL代理再与服务器握手协商建立连接,在此握手协商过程中,仍需要调用计算资源再次运算,而未使用SSL代理与客户端的协商结果,导致了该协商结果闲置,造成了资源的浪费。
发明内容
基于此,有必要针对由于SSL代理与客户端的协商结果闲置而造成的资源浪费问题,提供一种基于SSL的代理方法、装置及系统。
一种基于SSL的代理方法,所述方法应用于基于SSL的代理系统中的代理服务器,所述基于SSL的代理系统还包括客户端和目标服务器,在所述客户端通过所述代理服务器访问所述目标服务器的过程中,所述方法包括:
获取在与客户端的第一握手过程中所述代理服务器所选定的第一加密参数以及所述客户端发送的预主密码密文数据;
在与所述目标服务器的第二握手过程中,获取所述目标服务器选定的第二加密参数;
判断所述第一加密参数和所述第二加密参数是否匹配;
若匹配,则直接将所述预主密码密文数据发送给所述目标服务器,以使所述目标服务器根据所述预主密码密文数据完成所述第二握手过程。
在其中一个实施例中,所述获取在与客户端的第一握手过程中代理服务器所选定的第一加密参数以及所述客户端发送的预主密码密文数据的步骤,包括:
接收客户端发送的客户端握手请求;
根据所述客户端握手请求选定第一加密参数并返回给所述客户端;
接收所述客户端发送的预主密码密文数据,所述预主密码密文数据是根据所述第一加密参数中的公钥对所述客户端产生的随机数加密获得的;
根据所述公钥相应的私钥对所述预主密码密文数据进行解密获得预主密码明文数据。
在其中一个实施例中,所述方法还包括:
若不匹配,则以所述第二握手过程中的随机数作为预主密码,根据所述第二加密参数中的公钥对所述预主密码进行加密得到预主密码密文数据,并将所述预主密码密文数据发送给所述目标服务器,以使所述目标服务器根据所述第二加密参数中的公钥相应的私钥解密所述预主密码密文数据并完成所述第二握手过程。
在其中一个实施例中,所述第二加密参数包括协议版本号、密钥交换算法以及公钥;所述获取所述服务器选定的第二加密参数包括:
发送代理握手请求;
接收所述目标服务器根据所述代理握手请求选定的协议版本号、密钥交换算法以及目标服务器数字证书;
从所述目标服务器数字证书中提取公钥,并根据所述协议版本号、所述密钥交换算法和所述公钥得到所述第二加密参数。
在其中一个实施例中,所述判断所述第一加密参数和所述第二加密参数是否匹配包括:
判断所述第一加密参数中的密钥交换算法、协议版本号及公钥,是否分别与所述第二加密参数中的密钥交换算法、协议版本号及公钥匹配。
上述基于SSL的代理方法,首先获取在与客户端的第一握手过程中所选定的第一加密参数以及所述客户端发送的预主密码密文数据,之后在与目标服务器的第二握手过程中,获取目标服务器选定的第二加密参数,再判断第一加密参数和第二加密参数是否匹配,若匹配,则直接将在第一握手过程中客户端发送的预主密码密文数据发送给目标服务器,以使目标服务器根据预主密码密文完成第二握手过程。这样,在判断第一加密参数与第二加密参数匹配时,则将与客户端的第一握手过程中的预主密码密文数据作为与目标服务器的第二握手过程中的预主密码密文数据。在第二握手过程中,无需对第二握手过程中随机数进行再次计算以得到预主密码密文数据,就可以获取用于完成第二握手过程的预主密码密文数据,同时也避免了与客户端的第一握手过程中预主密码密文数据的闲置,提高了资源利用率。
一种基于SSL的代理装置,所述装置包括:
第一获取模块,用于获取在与客户端的第一握手过程中所述代理服务器所选定的第一加密参数以及所述客户端发送的预主密码密文数据;
第二获取模块,用于在与所述目标服务器的第二握手过程中,获取所述目标服务器选定的第二加密参数;
加密参数判断模块,用于判断所述第一加密参数和所述第二加密参数是否匹配;
预主密码选取模块,用于若所述第一加密参数和所述第二加密参数匹配,则直接将所述预主密码密文数据发送给所述目标服务器,以使所述目标服务器根据所述预主密码密文数据完成所述第二握手过程。
在其中一个实施例中,所述第一获取模块还包括:
握手请求接收模块,用于接收客户端发送的客户端握手请求;
加密参数返回模块,用于根据所述客户端握手请求选定第一加密参数并返回给所述客户端;
预主密码接收模块,用于接收所述客户端发送的预主密码密文数据,所述预主密码密文数据是根据所述第一加密参数中的公钥对所述客户端产生的随机数加密获得的;
预主密码解密模块,用于根据所述公钥相应的私钥对所述预主密码密文数据进行解密获得预主密码明文数据。
在其中一个实施例中,所述预主密码选取模块还用于若所述第一加密参数和所述第二加密参数不匹配,则以所述第二握手过程中的随机数作为预主密码,根据所述第二加密参数中的公钥对所述预主密码进行加密得到预主密码密文数据,并将所述预主密码密文数据发送给所述目标服务器,以使所述目标服务器根据所述第二加密参数中的公钥相应的私钥解密所述预主密码密文数据并完成所述第二握手过程。
在其中一个实施例中,所述第二加密参数包括协议版本号、密钥交换算法以及公钥;所述第二获取模块包括:
请求发送模块,用于发送代理握手请求;
加密参数接收模块,用于接收所述目标服务器根据所述代理握手请求选定的协议版本号、密钥交换算法以及目标服务器数字证书;
公钥提取模块,用于从所述目标服务器数字证书中提取公钥,并根据所述协议版本号、所述密钥交换算法和所述公钥得到所述第二加密参数。
在其中一个实施例中,所述加密参数判断模块还用于判断所述第一加密参数中的密钥交换算法、协议版本号及公钥,是否分别与所述第二加密参数中的密钥交换算法、协议版本号及公钥匹配。
上述基于SSL的代理装置,首先第一获取模块获取在与客户端的第一握手过程中所选定的第一加密参数以及客户端发送的预主密码密文数据,之后在与目标服务器的第二握手过程中,第二获取模块获取目标服务器选定的第二加密参数,加密参数判断模块再判断第一加密参数和第二加密参数是否匹配,若匹配,预主密码选取模块则直接将在第一握手过程中客户端发送的预主密码密文数据发送给目标服务器,以使目标服务器根据预主密码密文完成第二握手过程。这样,在判断第一加密参数与第二加密参数匹配时,则将与客户端的第一握手过程中的预主密码密文数据作为与目标服务器的第二握手过程中的预主密码密文数据。在第二握手过程中,无需对第二握手过程中随机数进行再次计算以得到预主密码密文数据,就可以获取用于完成第二握手过程的预主密码密文数据,同时也避免了与客户端的第一握手过程中预主密码密文数据的闲置,提高了资源利用率。
一种基于SSL的代理系统,所述系统包括客户端、代理服务器和目标服务器:
所述客户端用于向所述代理服务器发送客户端握手请求;
所述代理服务器用于接收所述客户端握手请求,并根据所述客户端握手请求选定第一加密参数并发送给所述客户端;
所述客户端还用于利用所述第一加密参数对所述客户端产生的随机数进行加密生成预主密码明文数据,并将所述预主密码密文数据发送给所述代理服务器;
所述代理服务器还用于在于所述目标服务器的握手过程中获取所述目标服务器选定的第二加密参数;判断所述第一加密参数和所述第二加密参数是否匹配,若匹配,则直接将所述预主密码密文数据发送给所述目标服务器;
所述目标服务器用于利用第二加密参数中公钥对应的私钥对所述预主密码密文数据解密以完成与所述代理服务器的握手过程。
本实施例中,代理服务器在判断第一加密参数与第二加密参数匹配时,则将与客户端的握手过程中的预主密码密文数据作为与目标服务器的握手过程中的预主密码密文数据。在与目标服务器的握手过程中,无需对与目标服务器的握手过程中随机数进行再次计算以得到预主密码密文数据,就可以获取用于完成与目标服务器的握手过程的预主密码密文数据,同时也避免了与客户端的握手过程中预主密码密文数据的闲置,提高了资源利用率。
附图说明
图1为一个实施例基于SSL的代理系统的应用环境图;
图2为一个实施例中基于SSL的代理方法的流程示意图;
图3为一个实施例中基于SSL的代理方法的获取预主密码明文数据的步骤的流程示意图;
图4为另一个实施例中基于SSL的代理方法中的获取服务器选定的第二加密参数步骤的流程示意图;
图5为一个实施例中基于SSL的代理方法中第一握手过程的时序图;
图6为一个实施例中基于SSL的代理方法中第二握手过程的时序图;
图7为一个实施例中基于SSL的代理装置的结构框图;
图8为另一个实施例中基于SSL的代理装置中第二获取模块的结构框图;
图9为再一个实施例中基于SSL的代理装置中第二获取模块的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是一个实施例中基于SSL的代理系统的应用环境图。基于SSL的代理系统包括客户端110、代理服务器120和目标服务器130。目标服务器130为客户端110所要访问的服务器,在客户端110访问目标服务器130的过程中,客户端110通过代理服务器120来访问目标服务器130。
如图2所示,提供一种基于SSL的代理方法,本实施例以该方法应用于图1中的基于SSL的代理系统中的代理服务器120来举例说明。该代理服务器120上运行有基于SSL的代理程序,通过基于SSL的代理程序来实施基于SSL的代理方法。该方法具体包括如下步骤:
步骤202,获取在与客户端的第一握手过程中代理服务器所选定的第一加密参数以及客户端发送的预主密码密文数据。
具体地,客户端110在与代理服务器120握手的过程中,客户端110发送自己支持的协议版本号、加密算法的信息和公钥给代理服务器120,代理服务器120从客户端110所发送的信息中选定第一加密参数,第一加密参数包括协议版本号、密钥交换算法和公钥,代理服务器120保存第一加密参数,代理服务器120将选定的第一加密参数发送给客户端110。客户端110利用第一加密参数中的公钥对客户端110所产生的随机数进行加密,得到预主密码密文数据,客户端110将预主密码密文数据发送给代理服务器120。代理服务器120保存所接收到的预主密码密文数据。第一握手过程是指客户端110与代理服务器120协商建立连接的过程。第一加密参数是在第一握手过程中对预主密码进行加密所涉及的参数。
步骤204,在与目标服务器的第二握手过程中,获取目标服务器选定的第二加密参数。
具体地,代理服务器120向目标服务器130发送代理握手请求,代理握手请求包括代理服务器120自身支持的协议版本号和采用的加密算法的信息。代理握手请求可以包括客户端地址、代理服务器地址以及服务器地址等用于通信的信息。目标服务器130从代理握手请求中的协议版本号和加密算法的信息中选定第二加密参数中的协议版本号和密钥交换算法,并将目标服务器数字证书中的公钥作为第二加密参数中的公钥。第二加密参数包括协议版本号、密钥交换算法和公钥,并将选定的协议版本号、所采用密钥交换算法的信息和公钥发送给代理服务器120。第二握手过程是客户端110与代理服务器120的握手过程。第二加密参数是在第二握手过程中对预主密码进行加密所涉及的参数。
步骤206,判断第一加密参数和第二加密参数是否匹配。
具体地,代理服务器120在接收到目标服务器130发送的第二加密参数之后,将获取到的第一加密参数和第二加密参数中相应的内容分别进行比较,以判断第一加密参数和第二加密参数中相应的内容是否匹配。在判断第一加密参数和第二加密参数是否匹配的过程中,包括判断公钥是否匹配,第一加密参数和第二加密参数中的公钥匹配,那与公钥对应的私钥也匹配,故密钥对也匹配。
步骤208,若匹配,则直接将预主密码密文数据发送给目标服务器,以使目标服务器根据预主密码密文数据完成第二握手过程。
具体地,代理服务器120判定第一加密参数和第二加密参数中相应的内容匹配,代理服务器120将第一握手过程中的预主密码密文数据发送给目标服务器130。目标服务器130使用与公钥对应的私钥对预主密码密文数据进行解密得到预主密码明文数据,在得到预主密码明文数据之后,目标服务器130与代理服务器120通过发送握手结束信息以完成第二握手过程。
步骤210,若不匹配,则以第二握手过程中的随机数作为预主密码,根据第二加密参数中的公钥对预主密码进行加密得到预主密码密文数据,并将预主密码密文数据发送给目标服务器,以使目标服务器根据第二加密参数中的公钥相应的私钥解密预主密码密文数据并完成第二握手过程。
在一个实施中,若代理服务器120判定第一加密参数和第二加密参数中相应的内容不匹配。则代理服务器120则会以与目标服务器130握手的第二握手过程中的随机数作为预主密码,根据第二加密参数中的公钥对预主密码进行加密,得到预主密码密文数据,代理服务器120将预主密码密文数据发送给目标服务器130。目标服务器130在接收到预主密码密文数据后,使用与第二加密参数中公钥相对的私钥对预主密码密文数据解密得到预主密码明文数据。目标服务器130的得到预主密码明文数据之后,向代理服务器120发送握手完成信息以表示握手过程的结束。
本实施例中,首先获取在与客户端的第一握手过程中所选定的第一加密参数以及客户端发送的预主密码密文数据,之后在与目标服务器的第二握手过程中,获取目标服务器选定的第二加密参数,再判断第一加密参数和第二加密参数是否匹配,若匹配,则直接将在第一握手过程中客户端发送的预主密码密文数据发送给目标服务器,以使目标服务器根据预主密码密文完成第二握手过程。这样,在判断第一加密参数与第二加密参数匹配时,则将与客户端的第一握手过程中的预主密码密文数据作为与目标服务器的第二握手过程中的预主密码密文数据。在第二握手过程中,无需对第二握手过程中随机数进行再次计算以得到预主密码密文数据,就可以获取用于完成第二握手过程的预主密码密文数据,同时也避免了与客户端的第一握手过程中预主密码密文数据的闲置,提高了资源利用率。
如图3所示,在一个实施例中,步骤202具体包括如下步骤:
步骤302,接收客户端发送的客户端握手请求。
具体地,客户端110向代理服务器120发送客户端握手请求,客户端握手请求中包括客户端110支持的协议版本号和加密算法,客户端握手请求还可以包括客户端地址、服务器地址以及代理服务器地址等用于通信的信息。
在一个实施例中,客户端110向代理服务器120发送ClientHello数据帧,其中包含客户端SSL的协议版本号,客户端110产生的随机数、加密算法的信息以及用于通信的信息等。ClientHello数据帧为用于发送自身所支持的协议版本号、加密算法的信息以及通信的信息等信息的数据帧。
步骤304,根据客户端握手请求选定第一加密参数并返回给客户端。
具体地,代理服务器120根据客户端握手请求中的协议版本号和所采用加密算法的信息来选定握手过程中使用的协议版本号和加密算法,并将选定的协议版本号和加密算法发送给客户端110,加密算法包括多种验证算法、多种密钥交换算法和多种数据加密算法。同时代理服务器120还将代理服务器数字证书发送给客户端110,代理服务器数字证书中包括用于对数据进行加密的公钥信息。代理服务器数字证书和目标服务器数字证书相同,其中的公钥也相同。
在一个实施例中,代理服务器120在接收到ClientHello之后,通过SeverHello数据帧将选定的协议版本号、加密算法信息和客户端110产生的随机数以及用于通信的信息发送给客户端120。代理服务器120通过Certifiate数据帧发送代理服务器数字证书,在不使用代理服务器数字证书中的密钥对作为密钥交换的密钥时,可以发送SeverKeyExchange数据帧来替换加密过程中所使用的公钥,该数据帧中包括新的公钥信息。代理服务器120向客户端110发送CertificateRequest数据帧请求客户端110发送客户端数字证书,代理服务器120向客户端发送SeverHelloDone数据帧以通知客户端开始返回应答信息。客户端110在收到SeverHelloDone数据帧之后,通过Certificate数据帧返回客户端数字证书和通过CertificateVertify数据帧返回客户端数字证书的验证信息。代理服务器130使用CertificateVertify数据帧中的验证信息对客户端数字证书进行验证。SeverHello数据帧是发送选定的协议版本号、选定的加密算法信息及通信信息等的数据帧。Certifiate数据帧在用于传输数字证书信息。SeverKeyExchange数据帧是发送密钥交换算法参数的数据帧。CertificateRequest数据帧是用于请求数字证书的数据帧。SeverHelloDone数据帧是用于通知客户端可以开始发送应答信息的数据帧。CertificateVertify数据帧是发送数字证书验证信息的数据帧。
步骤306,接收客户端发送的预主密码密文数据,预主密码密文数据是根据第一加密参数中的公钥对客户端产生的随机数加密获得的。
具体地,客户端110在接收到代理服务器110返回的第一加密参数后,以客户端110所产生的随机数作为预主密码,使用第一加密参数中的公钥对预主密码进行加密,经过加密之后的预主密码为预主密码密文数据,客户端110将预主密码密文数据发送给代理服务器120。
在一个实施例中,客户端110通过ClientKeyExchange数据帧将预主密码密文数据发送给代理服务器120。代理服务器120在接收到ClientKeyExchange数据帧之后,通过ClientKeyExchange数据帧解析得到该数据帧中的预主密码密文数据。ClientKeyExchange数据帧是用于发送预主密码信息的数据帧。
步骤308,根据公钥相应的私钥对预主密码密文数据进行解密获得预主密码明文数据。
具体地,在代理服务器120接收到客户端110发送的预主密码密文数据之后,代理服务器120根据与对预主密码进行加密的公钥对应的私钥对预主密码密文数据进行解密,在解密之后获得了预主密码明文数据。代理服务器120与客户端110之间通过发送握手结束信息以表示整个握手过程结束。
在一个实施例中,在代理服务器120通过解密获得预主密码明文数据,代理服务器120将握手结束信息,发送给客户端110以表示整个握手过程结束,并建立了连接,代理服务器120与客户端110之间通过握手建立连接进行数据的传输,并且该连接可以保证数据传输的安全性。
在一个实施例中,客户端120传输完CertificateVertify数据帧之后,向代理服务器120发送Finished数据帧以表示客户端110的握手过程结束。代理服务器120通过解密得到预主密码明文数据之后,向客户端110发送Finished数据帧以表示代理服务器120的握手过程结束,至此客户端110与代理服务器120的握手完成。Finished数据帧是表示握手结束的数据帧。
本实施例中,客户端通过发送客户端握手请求给代理服务器,代理服务器从客户端握手请求中选定在握手过程中要所使用的第一加密参数,通过第一加密参数对预主密码进行加密和解密,完成第一握手过程,保证了在代理服务器通过与客户端的通过握手过程建立安全性较高的连接。
如图4所示,在一个实施例中,第二参数包括协议版本号、密钥交换算法以及公钥;步骤204具体包括如下步骤:
步骤402,发送代理握手请求。
在一个实施例中,代理服务器120在完成与客户端110的第一握手过程之后,代理服务器120向目标服务器130发送用于与目标服务器130握手的代理握手请求。代理握手请求中包括代理服务器120支持的协议版本号和加密算法种类,加密算法种类包括验证算法的种类、数据加密算法的种类和密钥交换算法的种类。代理握手请求还包括客户端地址、代理服务器地址或服务器地址中的至少一种。
步骤404,接收目标服务器根据代理握手请求选定的协议版本号、密钥交换算法以及目标服务器数字证书。
在一个实施例中,目标服务器130在接收到代理服务器120发送的代理握手请求,目标服务器130在代理握手请求中选定协议版本号、验证算法、密钥加密算法和数据加密算法,并将选定的内容发送给代理服务器120。同时,目标服务器130将目标目标服务器数字证书发送给代理服务器120,目标目标服务器数字证书中包括公钥。
步骤406,从目标服务器数字证书中提取公钥,并根据协议版本号、密钥交换算法和公钥得到第二加密参数。
在一个实施例中,代理服务器120在接收到服务器发送的选定的协议版本号、验证算法、密钥加密算法、数据加密算法和目标目标服务器数字证书之后,代理服务器120在数字证书中提取公钥,根据提取到的公钥、选定的协议版本号、验证算法、密钥加密算法和数据加密算法得到第二加密参数。
本实施例中,代理服务器120向目标服务器130发送了代理握手请求之后,目标服务器130根据代理握手请求选定握手过程中使用的协议版本号、密钥加密算法以及加密过程中使用的公钥,以保证整个握手过程的安全性。
在一个实施例中,步骤206具体包括:判断第一加密参数中的密钥交换算法、协议版本号及公钥,是否分别与第二加密参数中的密钥交换算法、协议版本号及公钥匹配。
具体地,代理服务器120获取到第一握手过程中的第一加密参数和第二握手过程中的第二加密参数,分别提取第一加密参数和第二加密参数中的密钥交换算法的信息、协议版本号及公钥,分别将第一加密参数中的所采用密钥交换算法的信息、协议版本号及公钥与第二加密参数中的密钥交换算法的信息、协议版本号及公钥是否对应匹配。
本实施例中,代理服务器120通过比对握手过程中所使用的协议版本号、密钥交换算法和公钥,以确定在握手过程中度预主密码的运算是否相同,若相同,在第二握手过程中避免再次进行相同的运算,直接获取并使用第一握手过程中的运算结果即可,减少了运算次数,节省了运算资源的消耗。
在一个实施例中,提供一种基于SSL的代理方法,其中客户端110与代理服务器120之间的第一握手过程和代理服务器120与目标服务器130之间的第二次握手请分别参照图5和图6。
如图5所示,在第一握手过程中,客户端110向代理服务器120发送客户端握手请求,客户端握手请求中包括客户端110所支持的协议版本号和加密算法。代理服务器120接收到客户端握手请求后,根据代理服务器120的数字证书选取客户端握手请求中的协议版本号和加密算法,并将选定的协议版本号和加密算法发送给客户端110。加密算法包括验证算法、密钥交换算法以及数据加密算法。同时代理服务器120将代理服务器数字证书发送给客户端110,代理服务器数字证书中包括在与客户端110握手的过程中使用的公钥信息,如果在握手过程中不使用代理服务器数字证书中的公钥,代理服务器120还可以通过发送密钥交换信息来更换公钥,密钥交换信息中包括新的公钥信息。代理服务器120还可以通过发送客户端数字证书请求来获取客户端数字证书以对客户端110的身份进行验证。代理服务器120在发送完信息之后,再向客户端110发送开始应答信息以通知客户端110可以发送相应的应答信息。
客户端110在接收到开始应答信息之后,根据代理服务器120发送的客户端数字证书请求返回客户端数字证书以方便代理服务器120对客户端110的身份进行验证。客户端110使用代理服务器数字证书中的公钥对预主密码进行加密,并将得到的预主密码密文数据发送给代理服务器120,客户端110再向代理服务器120发送验证信息,使代理服务器120对验证信息进行验证。之后客户端110发送握手完成信息表示握手结束。代理服务器120将接收到的预主密码密文数据利用与公钥对应的私钥进行解密得到预主密码明文数据,代理服务器120向客户端110发送握手完成以表示握手结束并握手成功。其中,客户端数字证书请求、客户端数字证书和验证信息在第一握手过程中是非必须的。
如图6所示,在第二握手过程中,代理服务器120向目标服务器130发送代理握手请求,代理握手请求中包括代理服务器120所支持的协议版本号和加密算法。服务器120接收到代理握手请求后,根据目标服务器130的数字证书选取代理握手请求中的协议版本号和加密算法,并将选定的协议版本号和加密算法发送给代理服务器120。加密算法包括验证算法、密钥交换算法以及数据加密算法。同时目标服务器130将目标服务器数字证书发送给代理服务器120,目标服务器数字证书中包括在与代理服务器120握手的过程中使用的公钥信息,如果在握手过程中不使用代理服务器数字证书中的公钥,代理服务器120还可以通过发送密钥交换信息,密钥交换信息中包括新的公钥信息。目标服务器数字证书和代理服务器数字证书中的内容相同。目标服务器130还可以通过发送代理服务器数字证书请求来获取代理服务器数字证书和验证信息以对代理服务器120的身份进行验证。目标服务器130在发送完上述信息之后,再向代理服务器120发送开始应答信息以通知代理服务器120可以发送相应的应答信息。
代理服务器120在接收到开始应答信息之后,根据目标服务器130发送的代理服务器数字证书请求返回客户端数字证书以方便目标服务器130对代理服务器120的身份进行验证。由于第一握手过程的预主密码与第二握手过程中的预主密码相同,代理服务器120判断第一握手过程中和第二握手过程中的协议版本号、密钥交换算法和公钥是否匹配,若匹配,则表示第一和第二握手过程中对预主密码的加密方法是相同的,所生成的预主密码密文数据也是相同的,为了避免再次对预主密码加密运算,则代理服务器120直接将第一握手过程中的预主密码密文数据发送给目标服务器130,再发送验证信息给目标服务器130,使目标服务器130对验证信息进行验证。之后发送握手完成信息表示握手结束。目标服务器130根据接收到的预主密码密文数据进行解密获得预主密码明文数据。目标服务器130将接收到的预主密码密文数据利用与公钥对应的私钥进行解密得到预主密码明文数据,目标服务器130向代理服务器120发送握手完成以表示握手结束并握手成功。其中,代理服务器数字证书请求、代理服务器数字证书和验证信息在第二握手过程中是非必须的。
如图7所示,在一个实施例中,提供一种基于SSL的代理装置700,所述装置包括:第一获取模块702,第二获取模块704,加密参数判断模块706和预主密码选取模块708。
第一获取模块702,用于获取在与客户端的第一握手过程中所选定的第一加密参数以及所述客户端发送的预主密码密文数据。
第二获取模块704,用于在与服务器的第二握手过程中,获取服务器选定的第二加密参数。
加密参数判断模块706,用于判断第一加密参数和第二加密参数是否匹配。
预主密码选取模块708,用于若第一加密参数和第二加密参数匹配,则直接将在所述第一握手过程中所述客户端发送的预主密码密文数据发送给所述服务器,以使所述服务器根据所述预主密码密文数据完成所述第二握手过程。
本实施例中,第一获取模块702获取在与客户端的第一握手过程中所选定的第一加密参数以及所述客户端发送的预主密码密文数据,之后在与服务器的第二握手过程中,第二获取模块704获取服务器选定的第二加密参数,加密参数判断模块706再判断第一加密参数和第二加密参数是否匹配,若匹配,预主密码选取模708块则直接将在第一握手过程中客户端发送的预主密码密文数据发送给服务器,以使服务器根据预主密码密文完成第二握手过程。这样,在判断第一加密参数与第二加密参数匹配时,则将与客户端的第一握手过程中的预主密码密文数据作为与服务器的第二握手过程中的预主密码密文数据。在第二握手过程中,无需对第二握手过程中随机数进行再次计算以得到预主密码密文数据,就可以获取用于完成第二握手过程的预主密码密文数据,同时也避免了与客户端的第一握手过程中预主密码密文数据的闲置,提高了资源利用率。
如图8所示,在一个实施例中,第二获取模块704包括:握手请求接收模块704a、加密参数返回模块704b、预主密码接收模块704c和预主密码解密模块704d。
握手请求接收模块704a,用于接收客户端发送的客户端握手请求。
加密参数返回模块704b,用于根据客户端握手请求选定第一加密参数并返回给客户端。
预主密码接收模块704c,用于接收客户端发送的预主密码密文数据,预主密码密文数据是根据第一加密参数中的公钥对客户端产生的随机数加密获得的。
预主密码解密模块704d,用于根据公钥相应的私钥对预主密码密文数据进行解密获得预主密码明文数据。
本实施例中,握手请求接收模块704a接收客户端发送的客户端握手请求,加密参数返回模块704b从客户端握手请求中选定在握手过程中所要使用的第一加密参数,预主密码接收模块704c接收客户端通过第一加密参数对预主密码进行加密生成的预主密码密文数据,预主密码解密模块704d对预主密码面数据进行解密以完成第一握手过程。保证了在代理服务器通过与客户端的握手过程中的安全性。
在一个实施例中,预主密码选取模块704c还用于若第一加密参数和第二加密参数不匹配,则以第二握手过程中的随机数作为预主密码,根据第二加密参数中的公钥对预主密码进行加密得到预主密码密文数据,并将预主密码密文数据发送给服务器,以使服务器根据第二加密参数中的公钥相应的私钥解密预主密码密文数据并完成第二握手过程。
本实施中,在判断第一加密参数和第二加密参数中相应内容不匹配时,再对第二握手过程中的随机数作为预主密码,避免第一加密参数和第二加密参数相同时对预主密码进行相同的运算而浪费运算资源。
如图9所示,在一个实施例中,第二参数包括协议版本号、密钥交换算法以及公钥;第二获取模块704包括:请求发送模块704e、加密参数接收方法704f和公钥提取模块704g。
请求发送模块704e,用于发送代理握手请求。
加密参数接收模块704f,用于接收根据代理握手请求选定的协议版本号、密钥交换算法以及目标服务器数字证书。
公钥提取模块704g,用于从目标服务器数字证书中提取公钥,并根据协议版本号、密钥交换算法和公钥得到第二加密参数。
本实施例中,在请求发送模块704e发送了代理握手请求之后,加密参数接收模块704f和公钥提取模块704g接收根据代理握手请求选定握手过程中使用的协议版本号、密钥加密算法以及加密过程中使用的公钥,以保证整个握手过程的安全性。
在一个实施例中,加密参数判断模块706还用于判断第一加密参数中的密钥交换算法、协议版本号及公钥和第二加密参数中的密钥交换算法、协议版本号及公钥是否匹配。
本实施例中,加密参数判断模块706通过比对握手过程中所使用的协议版本号、密钥交换算法和公钥,以确定在握手过程中度预主密码的运算是否相同,若相同,在第二握手过程中避免再次进行相同的运算,直接获取并使用第一握手过程中的运算结果即可,减少了运算次数,节省了运算资源的消耗。
在一个实施例中,提供一种基于SSL的代理系统,包括客户端110、代理服务器120和目标服务器130:
客户端110用于向代理服务器120发送客户端握手请求。
代理服务器120用于接收客户端握手请求,并根据客户端握手请求选定第一加密参数并发送给客户端。
客户端110还用于利用第一加密参数对客户端110产生的随机数进行加密生成预主密码明文数据,并将预主密码密文数据发送给代理服务器120。
代理服务器120还用于在与目标服务器130的握手过程中获取目标服务器130选定的第二加密参数;判断第一加密参数和第二加密参数是否匹配,若匹配,则直接将预主密码密文数据发送给目标服务器130。
目标服务器130用于利用第二加密参数中公钥对应的私钥对预主密码密文数据解密以完成与代理服务器120的握手过程。
本实施例中,代理服务器在判断第一加密参数与第二加密参数匹配时,则将与客户端的握手过程中的预主密码密文数据作为与目标服务器的握手过程中的预主密码密文数据。在与目标服务器的握手过程中,无需对与目标服务器的握手过程中随机数进行再次计算以得到预主密码密文数据,就可以获取用于完成与目标服务器的握手过程的预主密码密文数据,同时也避免了与客户端的握手过程中预主密码密文数据的闲置,提高了资源利用率。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于SSL的代理方法,所述方法应用于基于SSL的代理系统中的代理服务器,所述基于SSL的代理系统还包括客户端和目标服务器,在所述客户端通过所述代理服务器访问所述目标服务器的过程中,所述方法包括:
获取在与客户端的第一握手过程中所述代理服务器所选定的第一加密参数以及所述客户端发送的预主密码密文数据;
在与所述目标服务器的第二握手过程中,获取所述目标服务器选定的第二加密参数;
判断所述第一加密参数和所述第二加密参数是否匹配;
若匹配,则直接将所述预主密码密文数据发送给所述目标服务器,以使所述目标服务器根据所述预主密码密文数据完成所述第二握手过程;
若不匹配,则以所述第二握手过程中的随机数作为预主密码,根据所述第二加密参数中的公钥对所述预主密码进行加密得到预主密码密文数据,并将所述预主密码密文数据发送给所述目标服务器,以使所述目标服务器根据所述第二加密参数中的公钥相应的私钥解密所述预主密码密文数据并完成所述第二握手过程。
2.根据权利要求1所述的方法,其特征在于,所述获取在与客户端的第一握手过程中代理服务器所选定的第一加密参数以及所述客户端发送的预主密码密文数据的步骤,包括:
接收客户端发送的客户端握手请求;
根据所述客户端握手请求选定第一加密参数并返回给所述客户端;
接收所述客户端发送的预主密码密文数据,所述预主密码密文数据是根据所述第一加密参数中的公钥对所述客户端产生的随机数加密获得的;
根据所述公钥相应的私钥对所述预主密码密文数据进行解密获得预主密码明文数据。
3.根据权利要求1所述的方法,其特征在于,所述第二加密参数包括协议版本号、密钥交换算法以及公钥;所述获取所述服务器选定的第二加密参数包括:
发送代理握手请求;
接收所述目标服务器根据所述代理握手请求选定的协议版本号、密钥交换算法以及目标服务器数字证书;
从所述目标服务器数字证书中提取公钥并根据所述协议版本号、所述密钥交换算法和所述公钥得到所述第二加密参数。
4.根据权利要求1所述的方法,其特征在于,所述判断所述第一加密参数和所述第二加密参数是否匹配包括:
判断所述第一加密参数中的密钥交换算法、协议版本号及公钥,是否分别与所述第二加密参数中的密钥交换算法、协议版本号及公钥匹配。
5.一种基于SSL的代理装置,其特征在于,所述装置包括:
第一获取模块,用于获取在与客户端的第一握手过程中所述代理服务器所选定的第一加密参数以及所述客户端发送的预主密码密文数据;
第二获取模块,用于在与目标服务器的第二握手过程中,获取所述目标服务器选定的第二加密参数;
加密参数判断模块,用于判断所述第一加密参数和所述第二加密参数是否匹配;
预主密码选取模块,用于若所述第一加密参数和所述第二加密参数匹配,则直接将所述预主密码密文数据发送给所述目标服务器,以使所述目标服务器根据所述预主密码密文数据完成所述第二握手过程;
所述预主密码选取模块还用于若所述第一加密参数和所述第二加密参数不匹配,则以所述第二握手过程中的随机数作为预主密码,根据所述第二加密参数中的公钥对所述预主密码进行加密得到预主密码密文数据,并将所述预主密码密文数据发送给所述目标服务器,以使所述目标服务器根据所述第二加密参数中的公钥相应的私钥解密所述预主密码密文数据并完成所述第二握手过程。
6.根据权利要求5所述的装置,其特征在于,所述第一获取模块还包括:
握手请求接收模块,用于接收客户端发送的客户端握手请求;
加密参数返回模块,用于根据所述客户端握手请求选定第一加密参数并返回给所述客户端;
预主密码接收模块,用于接收所述客户端发送的预主密码密文数据,所述预主密码密文数据是根据所述第一加密参数中的公钥对所述客户端产生的随机数加密获得的;
预主密码解密模块,用于根据所述公钥相应的私钥对所述预主密码密文数据进行解密获得预主密码明文数据。
7.根据权利要求5所述的装置,其特征在于,所述第二加密参数包括协议版本号、密钥交换算法以及公钥;所述第二获取模块包括:
请求发送模块,用于发送代理握手请求;
加密参数接收模块,用于接收所述目标服务器根据所述代理握手请求选定的协议版本号、密钥交换算法以及目标服务器数字证书;
公钥提取模块,用于从所述目标服务器数字证书中提取公钥,并根据所述协议版本号、所述密钥交换算法和所述公钥得到所述第二加密参数。
8.根据权利要求5所述的装置,其特征在于,所述加密参数判断模块还用于判断所述第一加密参数中的密钥交换算法、协议版本号及公钥,是否分别与所述第二加密参数中的密钥交换算法、协议版本号及公钥匹配。
9.一种基于SSL的代理系统,其特征在于,所述系统包括客户端、代理服务器和目标服务器;
所述客户端用于向所述代理服务器发送客户端握手请求;
所述代理服务器用于接收所述客户端握手请求,并根据所述客户端握手请求选定第一加密参数并发送给所述客户端;
所述客户端还用于利用所述第一加密参数对所述客户端产生的随机数进行加密生成预主密码明文数据,并将所述预主密码密文数据发送给所述代理服务器;
所述代理服务器还用于在与所述目标服务器的握手过程中获取所述目标服务器选定的第二加密参数;判断所述第一加密参数和所述第二加密参数是否匹配,若匹配,则直接将所述预主密码密文数据发送给所述目标服务器;
所述目标服务器用于利用第二加密参数中公钥对应的私钥对所述预主密码密文数据解密以完成与所述代理服务器的握手过程;
所述代理服务器还用于判定所述第一加密参数和所述第二加密参数不匹配,则以所述第二握手过程中的随机数作为预主密码,根据所述第二加密参数中的公钥对所述预主密码进行加密得到预主密码密文数据,并将所述预主密码密文数据发送给所述目标服务器;
所述目标服务器根据所述第二加密参数中的公钥相应的私钥解密所述预主密码密文数据并完成所述第二握手过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511003185.2A CN105471896B (zh) | 2015-12-28 | 2015-12-28 | 基于ssl的代理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511003185.2A CN105471896B (zh) | 2015-12-28 | 2015-12-28 | 基于ssl的代理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105471896A CN105471896A (zh) | 2016-04-06 |
CN105471896B true CN105471896B (zh) | 2019-01-15 |
Family
ID=55609166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511003185.2A Active CN105471896B (zh) | 2015-12-28 | 2015-12-28 | 基于ssl的代理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105471896B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106941401B (zh) * | 2017-03-23 | 2021-06-04 | 深信服科技股份有限公司 | 加速设备以及基于加速设备获取会话秘钥的方法 |
CN107707564B (zh) * | 2017-11-06 | 2018-11-09 | 山东渔翁信息技术股份有限公司 | 一种基于云网络的安全通道建立系统 |
CN109818916B (zh) * | 2017-11-22 | 2021-08-17 | 中兴通讯股份有限公司 | Ssl/tls代理及其协商方法、设备、计算机可读存储介质 |
CN109936529B (zh) * | 2017-12-15 | 2021-12-31 | 华为技术有限公司 | 一种安全通信的方法、装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2098006A4 (en) * | 2006-12-01 | 2012-07-04 | Microsoft Corp | DELEGATION OF AUTHENTICATION BASED ON RE-VERIFICATION OF CRYPTOGRAPHIC PROOF |
CN103188074A (zh) * | 2011-12-28 | 2013-07-03 | 上海格尔软件股份有限公司 | 一种增强浏览器ssl算法强度的代理方法 |
US8782393B1 (en) * | 2006-03-23 | 2014-07-15 | F5 Networks, Inc. | Accessing SSL connection data by a third-party |
JP2014147039A (ja) * | 2013-01-30 | 2014-08-14 | Oki Electric Ind Co Ltd | 暗号通信装置、代行サーバ、暗号通信システム、暗号通信装置プログラム及び代行サーバプログラム |
CN104081711A (zh) * | 2011-12-16 | 2014-10-01 | 阿卡麦科技公司 | 在不用局部可访问的私有密钥的情况下终止ssl连接 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140052703A (ko) * | 2012-10-25 | 2014-05-07 | 삼성전자주식회사 | 프록시 서버를 이용한 웹 서비스 가속 방법 및 장치 |
-
2015
- 2015-12-28 CN CN201511003185.2A patent/CN105471896B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782393B1 (en) * | 2006-03-23 | 2014-07-15 | F5 Networks, Inc. | Accessing SSL connection data by a third-party |
EP2098006A4 (en) * | 2006-12-01 | 2012-07-04 | Microsoft Corp | DELEGATION OF AUTHENTICATION BASED ON RE-VERIFICATION OF CRYPTOGRAPHIC PROOF |
CN104081711A (zh) * | 2011-12-16 | 2014-10-01 | 阿卡麦科技公司 | 在不用局部可访问的私有密钥的情况下终止ssl连接 |
CN103188074A (zh) * | 2011-12-28 | 2013-07-03 | 上海格尔软件股份有限公司 | 一种增强浏览器ssl算法强度的代理方法 |
JP2014147039A (ja) * | 2013-01-30 | 2014-08-14 | Oki Electric Ind Co Ltd | 暗号通信装置、代行サーバ、暗号通信システム、暗号通信装置プログラム及び代行サーバプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN105471896A (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110380852B (zh) | 双向认证方法及通信系统 | |
CN105993146B (zh) | 用于与客户端设备建立安全会话的方法和装置 | |
US8732461B2 (en) | Client apparatus, server apparatus, and program using entity authentication and biometric authentication | |
CN111615105B (zh) | 信息提供、获取方法、装置及终端 | |
CN105307165B (zh) | 基于移动应用的通信方法、服务端和客户端 | |
CN108111301A (zh) | 基于后量子密钥交换实现ssh协议的方法及其系统 | |
CN105915342A (zh) | 一种应用程序通信处理系统、设备、装置及方法 | |
CN105871797A (zh) | 客户端与服务器进行握手的方法、装置及系统 | |
CN102833253A (zh) | 建立客户端与服务器安全连接的方法及服务器 | |
CN109861813B (zh) | 基于非对称密钥池的抗量子计算https通信方法和系统 | |
CN113612605A (zh) | 使用对称密码技术增强mqtt协议身份认证方法、系统和设备 | |
CN108243176B (zh) | 数据传输方法和装置 | |
CN111756529B (zh) | 一种量子会话密钥分发方法及系统 | |
CN108494811A (zh) | 数据传输安全认证方法及装置 | |
CN110198295A (zh) | 安全认证方法和装置及存储介质 | |
CN101631305B (zh) | 一种加密方法及系统 | |
CN107918731A (zh) | 用于控制对开放接口进行访问的权限的方法和装置 | |
CN105049434B (zh) | 一种对等网络环境下的身份认证方法与加密通信方法 | |
CN105471896B (zh) | 基于ssl的代理方法、装置及系统 | |
CN112087428B (zh) | 一种基于数字证书的抗量子计算身份认证系统及方法 | |
CN109302369A (zh) | 一种基于密钥验证的数据传输方法及装置 | |
CN111756528B (zh) | 一种量子会话密钥分发方法、装置及通信架构 | |
CN114765543B (zh) | 一种量子密码网络扩展设备的加密通信方法及系统 | |
CN116015906B (zh) | 用于隐私计算的节点授权方法、节点通信方法和装置 | |
CN113545004A (zh) | 具有减少攻击面的认证系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 518000 the first floor of A1 building, Nanshan Zhiyuan 1001, Nanshan District Xue Yuan Avenue, Shenzhen, Guangdong. Applicant after: SINFOR Polytron Technologies Inc Address before: 518000 the first floor of A1 building, Nanshan Zhiyuan 1001, Nanshan District Xue Yuan Avenue, Shenzhen, Guangdong. Applicant before: Shenxinfu Electronics Science and Technology Co., Ltd., Shenzhen |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |