掌桥专利:专业的专利平台
掌桥专利
首页

基于TLS中间人技术的网络方法、装置、设备及存储介质

文献发布时间:2024-01-17 01:13:28


基于TLS中间人技术的网络方法、装置、设备及存储介质

技术领域

本发明涉及网络加速领域,尤其涉及一种基于TLS中间人技术的网络方法、装置、设备及存储介质。

背景技术

目前,HTTPS已经成为了网页访问过程中的标准协议,理想情况下,其协议握手过程至少需要1(TCP)+2(TLS v1.2)+1(HTTP request)=4个RTT(Round-Trip Time,即往返时间)。而在远距离网络访问,如跨洋访问的情况下,一个RTT往往至少需要上百毫秒。考虑到访问一个现代网页需要远不止一个的TCP网络连接,那么,每个连接的协议握手阶段的这4个RTT就成为了影响用户网络访问体验,甚至影响网络连通(延迟过大容易引起协议握手超时,从而中断连接)的重要因素。

与此同时,远距离的TCP流量传输过程中,因为TCP拥塞控制算法的存在,每一个独立的TCP连接都需要经历一次慢启动的过程,而慢启动的调整过程(即TCP拥塞窗口的变化)则是以RTT为单位的往返过程。因此就算链路通畅,其流量传输的过程也并不顺畅,往往需要经过多个RTT后,传输双方才能协调到一个较高的网速。

目前常用的网络加速技术,在服务器端一般可采用CDN技术,提前分发内容至距离用户较近的服务器,但是并非所有网站都部署了这种技术,尤其是一些受众较小的网站。而客户端网络加速方案通常采用基于公网或专线的网络代理或者VPN技术,这仅能提升线路质量,减少传输阶段的拥塞,对这种长距离的网络协议握手导致的协议延迟则无法有效改善。

发明内容

针对上述问题,本发明实施例的目的在于提供一种基于TLS中间人技术的网络方法、装置、设备及存储介质,以改善上述问题。

本发明实施例提供了一种基于TLS中间人技术的网络加速方法,其包括:

客户端向目标网站服务器发起TCP连接;TCP连接包括目标网站信息;

代理加速器截获TCP连接,并通过预先插入在客户端的TLS根证书,截断并伪造TLS响应,以与客户端进行TLS握手;其中,代理加速器与客户端进行TLS握手时,代理加速器根据客户端已信任的TLS根证书以及请求的网站信息来动态签发证书,以与客户端完成TLS握手;

代理加速器向服务器发起HTTP/2长连接请求;

服务器响应HTTP/2长连接请求与代理加速器建立HTTP/2长连接,并根据HTTP/2长连接获取目标网站信息,以根据目标网站信息向目标网站服务器发起TCP和TLS连接;

客户端向代理加速器发起HTTP访问请求;

代理加速器根据HTTP访问请求生成HTTP/2格式的访问请求并通过HTTP/2长连接发送给服务器;

服务器基于HTTP/2格式的访问请求以及建立的与目标网站服务器之间的底层连接,向目标网站服务器发起HTTP请求;

目标网站服务器根据HTTP请求经由服务器以及代理加速器向客户端返回HTTP响应。

优选地,代理加速器的HTTP/2格式的访问请求以多路复用的形态被传输到服务器。

优选地,客户端与代理加速器部署于同一台设备内或者同一个局域网内。

优选地,服务器与目标网站服务器之间的底层连接建立和客户端与代理加速器的TLS握手并行进行;所述底层连接包括TCP握手和TLS握手。

本发明实施例还提供了一种基于TLS中间人技术的网络加速方法,其包括:

截获客户端向目标服务器发起的TCP连接,并通过预先插入在客户端的TLS根证书,截断并伪造TLS响应,以与客户端进行TLS握手;其中,TCP连接包括目标网站信息;在与客户端进行TLS握手时,根据客户端已信任的TLS根证书以及请求的网站信息来动态签发证书,以与客户端完成TLS握手;

向服务器发起HTTP/2长连接请求,以使服务器响应HTTP/2长连接请求与代理加速器建立长连接,并同时根据目标网站信息建立服务器到目标网站服务器的底层连接;

接收客户端向目标服务器发起的HTTP访问请求;

根据访问请求生成符合HTTP/2格式的访问请求并发送给服务器,以使得服务器基于HTTP/2格式的访问请求以及建立的底层连接,向目标网站服务器发起HTTP请求,且使目标网站服务器根据HTTP请求经由服务器返回HTTP响应;

将HTTP响应发送给客户端。

本发明实施例还提供了一种基于TLS中间人技术的网络加速装置,其包括:

截断单元,用于截获客户端向目标服务器发起的TCP连接,并通过预先插入在客户端的TLS根证书,截断并伪造TLS响应,以与客户端进行TLS握手;TCP连接包括目标网站信息;

长连接单元,用于向服务器发起HTTP/2长连接请求,以使服务器响应HTTP/2长连接请求与代理加速器建立长连接,并根据目标网站信息建立远端出口到目标网站服务器的底层连接;

转发单元,用于接收客户端向目标服务器发起的HTTP访问请求;

转发单元,还用于根据访问请求生成符合HTTP/2格式的访问请求并发送给服务器,以使得服务器基于HTTP/2格式的访问请求以及建立的底层连接,向目标网站服务器发起HTTP请求,且使目标网站服务器根据HTTP请求经由服务器返回HTTP响应;

转发单元,还用于将HTTP响应发送给客户端。

本发明实施例还提供了一种基于TLS中间人技术的网络加速设备,其包括存储器以及处理器,存储器内存储有计算机程序,计算机程序能够被处理器执行,以实现如上述的基于TLS中间人技术的网络加速方法。

本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序,计算机程序能够被计算机可读存储介质所在设备的处理器执行,以实现如上述的基于TLS中间人技术的网络加速方法。

综上,本实施例使用TLS中间人技术切断客户端到目标网站服务器的长距离握手过程,并将它转变为客户端到代理加速器之间、代理加速器到服务器之间以及服务器到目标网站服务器之间的三组握手,并通过HTTP/2长连接复用代理加速器到服务器这一段距离最长的连接,仅需一次的长距离握手,避免了大量因重复握手导致的时间开销,极大缩短了远程连接建立的延迟。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明第一实施例提供的基于TLS中间人技术的网络加速方法的一种流程示意图。

图2是本发明第一实施例提供的基于TLS中间人技术的网络加速方法的另一种流程示意图。

图3是本发明第二实施例提供的基于TLS中间人技术的网络加速方法的流程示意图。

图4是本发明第三实施例提供的基于TLS中间人技术的网络加速装置的结构示意图。

具体实施方式

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

请参阅图1及图2,本发明第一实施例提供了一种基于TLS中间人技术的网络加速方法,其包括:

S101,客户端向目标网站服务器发起TCP连接。

在本实施例中,客户端可为一浏览器,当用户想要访问某个网站时,用户可以在浏览器上输入对应的网址信息来完成访问,该网址信息可以是对应的域名或者中文网址信息等。例如,用户想要访问的目标网站为百度,其可以输入“

在本实施例中,客户端在获取到用户输入的网址信息后,其生成对应的DNS(域名解析服务)解析请求至代理加速器。

S102,代理加速器截获TCP连接,并通过预先插入在客户端的TLS根证书,截断并伪造TLS响应,以与客户端完成TLS握手。

在本实施例中,当客户端设置了代理加速的服务后,代理加速器就可以接管客户端向外发出的网络连接。例如,当客户端向目标网站服务器(附图中表示为目标网站1)请求建立TCP连接时,代理加速器可以截获TCP连接,并通过预先插入在客户端的TLS根证书,截断并伪造TLS响应,以与客户端完成TLS握手。具体地:

代理加速器在截获TCP连接后,先与客户端建立TCP连接,并同时获取目标网站信息,然后在TLS握手时,代理加速器根据客户端已信任的TLS根证书以及请求的目标网站信息来动态签发证书,以与客户端完成TLS握手。

S103,代理加速器向服务器发起HTTP/2长连接请求。

S104,服务器响应HTTP/2长连接请求与代理加速器建立HTTP/2长连接,并根据HTTP/2长连接获取目标网站信息,以根据目标网站信息向目标网站服务器发起TCP和TLS连接。

在本实施例中,代理加速器与服务器的HTTP/2长连接可以是预先建立的,例如,在代理加速器启动后就可以马上与服务器建立HTTP/2长连接。

同时,在代理加速器获取到目标网站信息(如域名或者IP地址)后,代理加速器将目标网站信息通过HTTP/2长连接发送给服务器,服务器根据目标网站信息即可以与目标网站服务器建立TCP和TLS的底层连接。

S105,客户端向代理加速器发起HTTP访问请求。

S106,代理加速器根据HTTP访问请求生成HTTP/2格式的访问请求并通过HTTP/2长连接发送给服务器。

S107,服务器基于HTTP/2格式的访问请求以及建立的与目标网站服务器之间的底层连接,向目标网站服务器发起HTTP请求。

S108,目标网站服务器根据HTTP请求经由服务器以及代理加速器向客户端返回HTTP响应。

在本实施例中,代理加速器与客户端完成TLS握手后,客户端将开始发送HTTP请求,客户端的HTTP请求将被转化为HTTP/2格式,以多路复用(Multiplexing)的形态被高效传输到服务器,在服务器完成目标网站域名的DNS解析后,服务器再将此HTTP请求通过已经建立的底层连接转发到目标网站服务器,而目标网站服务器的响应也将由原路返回。

可以看到,整个过程中,客户端与代理加速器一般位于同一台电脑或者同一个局域网内部,握手延迟极低。

另外,代理加速器到服务器之间是加速全程中物理跨度最大的部分,然而本应该在客户端和若干远程目标网站服务器之间往返多次的TCP及TLS握手可以共用这一段路径而仅需一次握手,避免了大量因重复握手导致的时间开销。

再另外,从代理加速器到服务器的远程路径上仅有一条HTTP/2的网络流,用户对多个目标网站服务器(图2所示的目标网站1和目标网站2)的多个连接请求都将会被HTTP/2的多路复用(Multiplexing)特性合并到同一个流中,通过优化转发缓存、协调带宽不同的上下游同步传输数据,可保证这条远程HTTP/2的网络流始终保持低延迟和高吞吐量的状态。因此,拥塞控制算法的慢启动过程仅会发生一次,避免了用户每一次新建立TCP/TLS连接都要重新进行慢启动过程的额外消耗。

需要说明的是,在上述实施例中,客户端的网络访问以基于TCP协议的TLS加密为例,而事实上TLS加密技术及其对应的中间人技术还可以基于UDP等其它网络协议,如TLS加密作用于UDP协议时便形成了DTLS协议的基本结构。

由TLS的原理出发,DTLS协议也需要进行TLS握手,所以如上,将TCP协议的相关部分换成UDP或者其它传输层协议时,本发明依然可以起到应有减少握手开销的效果。

需要说明的是,本发明中将代理加速器到服务器的长连接以基于TCP协议上的HTTP/2连接为例,不论其底层连接换成何种协议,只要它基于可靠连接,且需要进行拥塞控制,并支持HTTP协议传输,则均可由本发明所提出的方法进行优化,以解决同路径下多条连接每条都要完成慢启动过程所带来的延迟和带宽利用率低下等问题。

需要说明的是,基于不同的优化策略,从代理加速器到服务器的HTTP/2长连接可以在任何合适的时刻建立,不拘泥于前述实施例中的最开始阶段。

需要说明的是,本发明实施例中,在截断客户端的TLS握手后,代理加速器通过已建立的HTTP/2长连接向服务器传递了目标网站信息,如域名信息,使得服务器和目标网站服务器的底层连接建立可以并行完成(图2所示),也就是说,服务器与目标网站服务器之间的底层连接建立(包括TCP握手以及TLS握手)和客户端与代理加速器的TLS握手可以同时进行。但可以理解的是,在实际实现过程中,如无此步骤,则整体过程为顺序进行(如图1所示),同样也可以起到完整的加速效果,即减少握手开销和复用远程连接从而避免多次慢启动。

综上,本实施例采用TLS中间人技术介入用户的TLS远程握手过程,将远距离握手过程拆解,并复用了距离最远的一段网络连接,避免了大量因重复握手导致的时间开销。同时本实施例利用HTTP/2的多路复用(Multiplexing)特性,将同路径的多条带拥塞控制的网路流合并为一条,避免了远距离、高RTT情况下的多次慢启动过程,提升了长距离访问时的网络性能。

请参阅图3,本发明第二实施例还提供了一种基于TLS中间人技术的网络加速方法,其从代理加速器的角度出发进行描述,并包括:

S201,截获客户端向目标服务器发起的TCP连接,并通过预先插入在客户端的TLS根证书,截断并伪造TLS响应,以与客户端完成TLS握手;TCP连接包括目标网站信息;

S202,在完成TLS握手后,向服务器发起HTTP/2长连接请求,以使服务器响应HTTP/2长连接请求与代理加速器建立长连接,并根据目标网站信息建立远端出口到目标网站服务器的底层连接。

S203,接收客户端向目标服务器发起的HTTP访问请求;

S204,根据访问请求生成符合HTTP/2格式的访问请求并发送给服务器,以使得服务器基于HTTP/2格式的访问请求以及建立的底层连接,向目标网站服务器发起HTTP请求,且使目标网站服务器根据HTTP请求经由服务器返回HTTP响应;

S205,将HTTP响应发送给客户端。

其中,在与客户端进行TLS握手时,根据客户端已信任的TLS根证书以及请求的目标网站信息来动态签发证书,以与客户端完成TLS握手。

请参阅图4,本发明第三实施例还提供了一种基于TLS中间人技术的网络加速装置,其包括:

截断单元310,用于截获客户端向目标服务器发起的TCP连接,并通过预先插入在客户端的TLS根证书,截断并伪造TLS响应,以与客户端完成TLS握手;TCP连接包括目标网站信息;

长连接单元320,用于在完成TLS握手后,向服务器发起HTTP/2长连接请求,以使服务器响应HTTP/2长连接请求与代理加速器建立长连接,并根据目标网站信息建立远端出口到目标网站服务器的底层连接;

转发单元330,用于接收客户端向目标服务器发起的HTTP访问请求;

转发单元330,还用于根据访问请求生成符合HTTP/2格式的访问请求并发送给服务器,以使得服务器基于HTTP/2格式的访问请求以及建立的底层连接,向目标网站服务器发起HTTP请求,且使目标网站服务器根据HTTP请求经由服务器返回HTTP响应;

转发单元330,还用于将HTTP响应发送给客户端。

本发明第四实施例还提供了一种基于TLS中间人技术的网络加速设备,其包括存储器以及处理器,存储器内存储有计算机程序,计算机程序能够被处理器执行,以实现如上述的基于TLS中间人技术的网络加速方法。

本发明第五实施例还提供了存储有计算机程序,计算机程序能够被计算机可读存储介质所在设备的处理器执行,以实现如上述的基于TLS中间人技术的网络加速方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

相关技术
  • 基于网络欺骗的网络防护方法、装置、设备及存储介质
  • 基于神经网络的歌词生成方法、装置、设备和存储介质
  • 基于神经网络的商户管理方法、装置、计算机设备及存储介质
  • 基于网络融合的报文转发方法、设备、存储介质及装置
  • 基于神经网络的投保信息配置方法、装置、计算机设备及存储介质
  • 基于区块链分片技术的网络资源分配方法、装置、终端设备及存储介质
  • 基于BFD技术建立会话的方法、装置、网络设备及计算机存储介质
技术分类

06120116069090