Tcp旁路阻断方法和装置制造方法

文档序号:7807320阅读:1737来源:国知局
Tcp旁路阻断方法和装置制造方法
【专利摘要】本发明公开了一种TCP旁路阻断方法和装置。其中,该TCP旁路阻断方法通过旁路干扰设备进行TCP阻断,其中,旁路干扰设备旁接在客户端和服务器之间,该TCP旁路阻断方法包括:旁路干扰设备获取来自客户端的第一次握手信号;旁路干扰设备根据第一次握手信号生成第二次握手信号,得到来自旁路干扰设备的第二次握手信号;以及旁路干扰设备在来自服务器的第二次握手信号到达客户端之前,发送来自旁路干扰设备的第二次握手信号至客户端,其中,来自服务器的第二次握手信号与来自旁路干扰设备的第二次握手信号不同。通过本发明,解决了现有技术中阻断客户端与服务器之间传输数据包不稳定的问题,进而达到了提高阻断客户端与服务器之间传输数据包的稳定性效果。
【专利说明】TCP旁路阻断方法和装置
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种TCP旁路阻断方法和装置。
【背景技术】
[0002]众所周知,在客户端与服务器之间部署监听设备,在利用传输控制协议(Transmission Control Protocol,简称TCP)建立客户端和服务器之间的连接后,伪造RST(TCP首部中六个标记比特之一,表示重置连接、复位连接)数据向客户端或者服务器发送RST报文使客户端和服务器的连接断开,从而达到阻断客户端与服务器进行通信的目的。
[0003]现有的TCP阻断方法,是利用TCP在客户端和服务器之间建立连接后传输数据时伪造RST的方式实现的数据阻断,但是这种方法很容易被破解而造成阻断失效。
[0004]针对现有技术中阻断客户端与服务器之间数据包的传输不稳定问题,目前尚未提出有效的解决方案。

【发明内容】

[0005]本发明的主要目的在于提供一种TCP旁路阻断方法和装置,以解决现有技术中阻断客户端与服务器之间数据包的传输容易失效的问题。
[0006]为了实现上述目的,根据本发明的一个方面,提供了 一种TCP旁路阻断方法。根据本发明的TCP旁路阻断方法包括:通过旁路干扰设备进行TCP阻断,其中,旁路干扰设备旁接在客户端和服务器之间,TCP旁路阻断方法包括:旁路干扰设备获取来自客户端的第一次握手信号;旁路干扰设备根据第一次握手信号生成第二次握手信号,得到来自旁路干扰设备的第二次握手信号;以及旁路干扰设备在来自服务器的第二次握手信号到达客户端之前,发送来自旁路干扰设备的第二次握手信号至客户端,其中,服务器根据第一次握手信号生成来自服务器的第二次握手信号,来自服务器的第二次握手信号与来自旁路干扰设备的第二次握手信号不同。
[0007]进一步地,旁路干扰设备配置有阻断策略,其中,阻断策略用于确定进行数据阻断的服务器和客户端,在旁路干扰设备获取来自客户端的第一次握手信号之前,TCP旁路阻断方法还包括:旁路干扰设备获取来自客户端的数据包;旁路干扰设备分析数据包,得到分析结果;旁路干扰设备根据分析结果检测客户端是否与阻断策略相匹配;以及旁路干扰设备如果判断出客户端与阻断策略匹配,则旁路干扰设备将数据包作为待获取的第一次握手信号的数据包。
[0008]进一步地,旁路干扰设备分析数据包,得到分析结果包括:旁路干扰设备分析数据包,得到数据包的源IP、目的IP、源端口、目的端口、第一次握手信号中的初始序号和数据包的SYN标记,旁路干扰设备根据第一次握手信号生成第二次握手信号包括:添加ACK标记,保留SYN标记;根据第一次握手信号中的初始序号生成应答序号和来自旁路干扰设备的初始序号;交换源IP和目的IP,交换源端口和目的端口,得到交换数据包,并计算得到校验和;根据SYN标记、ACK标记、应答序号、来自旁路干扰设备的初始序号、交换数据包和校验和得到来自旁路干扰设备的第二次握手信号。
[0009]进一步地,旁路干扰设备获取第一次握手信号的数据包包括:旁路干扰设备获取来自客户端的数据包;旁路干扰设备判断数据包是否有第一次握手信号;以及旁路干扰设备如果判断出数据包有第一次握手信号,则获取数据包作为第一次握手信号的数据包。
[0010]进一步地,TCP旁路阻断方法还包括:服务器接收来自客户端的第三次握手信号,其中,第三次握手信号包括根据来自旁路干扰设备的第二次握手信号生成的应答序号;月艮务器判断第三次握手信号中的应答序号与来自服务器的第二次握手信号中的应答序号是否匹配;以及服务器如果判断出第三次握手信号中的应答序号与来自服务器的第二次握手信号中的应答序号不匹配,则服务器不响应第三次握手信号。
[0011]为了实现上述目的,根据本发明的另一方面,提供了一种TCP旁路阻断装置。根据本发明的TCP旁路阻断装置包括:通过旁路干扰设备进行TCP阻断,其中,旁路干扰设备旁接在客户端和服务器之间,TCP旁路阻断装置包括:第一获取单元,用于使得旁路干扰设备获取来自客户端的第一次握手信号;第一生成单元,用于使得旁路干扰设备根据第一次握手信号生成第二次握手信号,得到来自旁路干扰设备的第二次握手信号;以及发送单元,用于使得旁路干扰设备在来自服务器的第二次握手信号到达客户端之前,发送来自旁路干扰设备的第二次握手信号至客户端,其中,服务器根据第一次握手信号生成来自服务器的第二次握手信号,来自服务器的第二次握手信号与来自旁路干扰设备的第二次握手信号不同。
[0012]进一步地,旁路干扰设备配置有阻断策略,其中,阻断策略用于确定进行数据阻断的服务器和客户端,TCP旁路阻断装置还包括:第二获取单元,用于在旁路干扰设备获取来自客户端的第一次握手信号之前,使得旁路干扰设备获取来自客户端的数据包;分析单元,用于使得旁路干扰设备分析数据包,得到分析结果;检测单元,用于使得旁路干扰设备根据分析结果检测客户端是否与阻断策略相匹配;以及第二生成单元,用于在旁路干扰设备判断出客户端与阻断策略匹配时,使得旁路干扰设备将数据包作为待获取的第一次握手信号的数据包。
[0013]进一步地,分析单元还用于使得旁路干扰设备分析得到数据包的源IP、目的IP、源端口、目的端口、第一次握手信号中的初始序号和数据包的SYN标记,第一生成单元包括:添加模块,用于添加ACK标记,保留SYN标记;生成模块,用于根据第一次握手信号中的初始序号生成应答序号和来自旁路干扰设备的初始序号;交换模块,用于交换源IP和目的IP,交换源端口和目的端口,得到交换数据包,并计算得到校验和;确认模块,用于SYN标记、ACK标记、应答序号、来自旁路干扰设备的初始序号、交换数据包和校验和得到来自旁路干扰设备的第二次握手信号。
[0014]进一步地,第二获取单元包括:第二获取模块,用于使得旁路干扰设备获取来自客户端的数据包;判断模块,用于使得旁路干扰设备判断数据包是否有第一次握手信号;以及第三获取模块,用于在旁路干扰设备判断出数据包有第一次握手信号时,获取来自客户端的数据包作为第一次握手信号的数据包。
[0015]进一步地,TCP旁路阻断装置还包括:接收单元,用于使得服务器接收来自客户端的第三次握手信号,其中,第三次握手信号包括根据来自旁路干扰设备的第二次握手信号生成的应答序号;判断单元,用于使得服务器判断第三次握手信号中的应答序号与来自服务器的第二次握手信号中的应答序号是否匹配;以及响应单元,用于在服务器判断出第三次握手信号中的应答序号与来自服务器的第二次握手信号中的应答序号不匹配时,使得服务器不响应第三次握手信号
[0016]通过本发明,采用一种TCP旁路阻断方法,其特征在于,通过旁路干扰设备进行TCP阻断,其中,旁路干扰设备旁接在客户端和服务器之间,TCP旁路阻断方法包括:旁路干扰设备获取来自客户端的第一次握手信号;旁路干扰设备根据第一次握手信号生成第二次握手信号,得到来自旁路干扰设备的第二次握手信号;以及旁路干扰设备在来自服务器的第二次握手信号到达客户端之前,发送来自旁路干扰设备的第二次握手信号至客户端,其中,服务器根据第一次握手信号生成来自服务器的第二次握手信号,解决了现有技术中阻断客户端与服务器之间传输数据包不稳定的问题,进而达到了提高阻断客户端与服务器之间传输数据包的稳定性效果。
【专利附图】

【附图说明】
[0017]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018]图1是根据本发明第一实施例的TCP旁路阻断方法的流程图;
[0019]图2是根据本发明第二实施例的TCP旁路阻断方法的流程图;
[0020]图3是根据本发明第三实施例的TCP旁路阻断方法的流程图;
[0021]图4是根据本发明第一实施例的TCP旁路阻断装置的示意图;
[0022]图5是根据本发明第三实施例的TCP旁路阻断装置的示意图;以及
[0023]图6是根据本发明第三实施例的TCP旁路阻断装置的示意图。
【具体实施方式】
[0024]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0025]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0026]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0027]本发明提供了一种TCP旁路阻断方法。该旁路阻断方法能够对服务器和客户端之间的通信进行阻断。为了便于理解本发明的技术方案,首先介绍客户端和服务器之间如何建立通信。客户端和服务器之间采用三次握手建立一个连接。
[0028]第一次握手:客户端向服务器发起SYN请求(SYN = j),并等待服务器确认。
[0029]第二次握手:服务器收到客户端发送的SYN请求,对客户端的SYN请求进行应答(SYN = k),并向客户端发送ACK包(ACK = j+Ι),即向客户端发送SYN+ACK包。
[0030]第三次握手:客户端接收服务器的SYN+ACK包,并向服务器发送确认包ACK(ACK =
k+Ι) ο
[0031]在服务器接收到第三次握手时客户端发送的确认包之后,即完成了三次握手,客户端和服务器之间开始传输数据。
[0032]本发明实施例通过旁路阻断设备,在客户端和服务器进行握手的期间,监听客户端的握手信号,伪造服务器的应答包,从而破坏客户端的序号识别机制,使得客户端和服务器之间无法完成通信,达到了阻断客户端和服务器通信的目的。
[0033]以下结合附图对本发明的【具体实施方式】进行说明。
[0034]图1是根据本发明第一实施例的TCP旁路阻断方法的流程图。如图所示,该TCP旁路阻断方法通过旁路干扰设备进行TCP阻断,其中,旁路干扰设备旁接在客户端和服务器之间,该TCP旁路阻断方法包括如下步骤:
[0035]步骤S102,旁路干扰设备获取来自客户端的第一次握手信号。
[0036]旁路干扰设备旁接在客户端和服务器之间,旁接设备旁接的地理位置可以在客户端和服务器之间,例如,客户端在北京,服务器在广州,那么旁路干扰设备可能位于北京到广州的途经节点上进行监听,旁接而非串接在北京至广州的网络中。
[0037]旁路干扰设备能够在客户端和服务器进行通信时监听客户端的握手信号。客户端向服务器发送第一次握手信号,第一次握手信号携带初始序号ISNa。旁路干扰设备监听到客户端的第一次握手信号之后,获取来自客户端的第一次握手信号。
[0038]步骤S104,旁路干扰设备根据第一次握手信号生成第二次握手信号,得到来自旁路干扰设备的第二次握手信号。
[0039]旁路干扰设备获取到第一次握手信号之后,根据第一次握手信号随机生成第二次握手信号的初始信号,即旁路干扰设备伪造第二次握手信号作为服务器的第二次握手信号,来自旁路干扰设备的第二次握手信号携带的应答序号为ISNa+Ι,随机的初始序号为ISNb。
[0040]步骤S106,旁路干扰设备在来自服务器的第二次握手信号到达客户端之前,发送来自旁路干扰设备的第二次握手信号至客户端,其中,服务器根据第一次握手信号生成来自服务器的第二次握手信号,来自服务器的第二次握手信号与来自旁路干扰设备的第二次握手信号不同。
[0041]旁路干扰设备将来自旁路干扰设备的第二次握手信号发送给客户端,客户端将来自旁路干扰设备的第二次握手信号作为服务器的应答。旁路干扰设备获取客户端的第一次握手信号并不阻止第一次握手信号发送给服务器,服务器依然能够接收到客户端的第一次握手信号,并根据接收到的第一次握手信号生成来自服务器的第二次握手信号作为对客户端第一次握手信号的应答,来自服务器的第二次握手信号携带的应答信号为ISNa+Ι,初始序号为ISNc。服务器将生成的来自服务器的第二次握手信号发送给客户端。但是,此时客户端已经收到旁路干扰设备生成的来自旁路干扰设备的第二次握手信号,并对来自旁路干扰设备的第二次握手信号做出应答。
[0042]旁路干扰设备根据第一次握手信号随机生成来自旁路干扰设备的第二次握手信号,生成的来自旁路干扰设备的第二次握手信号与来自服务器的第二次握手信号不同。
[0043]根据TCP协议中的三次握手,在客户端接收到旁路干扰设备生成的来自旁路干扰设备的第二次握手信号时,即进行了第二次握手,由于旁路干扰设备伪造了第二次握手信号,当客户端收到伪造的第二次握手信号之后,再收到真正由服务器发送的第二次握手信号时,来自服务器的第二次握手信号携带的初始序号为ISNc,客户端认为与预期的初始序号ISNb不符,向服务器返回RST,不正确响应来自服务器的第二次握手信号,所以在客户端和服务器之间无法建立连接。
[0044]上述实施例,在客户端向服务器发送第一次握手信号时,旁路干扰设备获取第一次握手信号,根据第一次握手信号生成来自旁路干扰设备的第二次握手信号,并将来自旁路干扰设备的第二次握手信号发送至客户端,使得客户端在接收到真正来自服务器的第二次握手信号之前已经接收到来自旁路干扰设备的第二次握手信号,从而导致客户端响应伪造的第二次握手信号,而不响应真正来自服务器的第二次握手信号,使得客户端和服务器之间无法建立连接,进而阻断了客户端和服务器之间的数据传输。
[0045]图2是根据本发明第二实施例的TCP旁路阻断方法的流程图。为了保证旁路干扰设备只获取需要阻断的客户端和服务器之间的信息,在旁路干扰设备中配置有阻断策略,其中,阻断策略用于确定进行数据阻断的服务器和客户端,在通过旁路干扰设备获取第一次握手信号之前,该TCP旁路阻断方法还包括:
[0046]步骤S202,旁路干扰设备获取来自客户端的数据包。
[0047]旁路干扰设备获取来自客户端的数据包,该数据包包括SYN请求报文,以及初始序号。
[0048]步骤S204,旁路干扰设备分析数据包,得到分析结果。
[0049]旁路干扰设备分析数据包,分析数据包中的数据以便于判断第一次握手信号的数据包是否为监测的客户端。
[0050]步骤S206,旁路干扰设备根据分析结果检测客户端是否与阻断策略相匹配。
[0051]旁路干扰设备在得到分析结果之后,根据分析结果检测客户端是否与阻断策略相匹配,即旁路干扰设备根据分析结果判断获取到的第一次握手信号的数据包是否为自己需要的数据包。
[0052]例如,旁路干扰设备需要阻断客户端A的网络,而不需要阻断客户端B的网络,那么,在获取到第一次握手信号数据包时,对第一次握手信号的数据包进行分析,如果分析结果是该第一次握手信号与客户端A相对应,则客户端A与阻断策略相匹配,则对客户端A的网络进行阻断;如果分析结果是该第二次握手信号与客户端B相对应,则客户端B与阻断策略不匹配,不对客户端B的网络进行阻断。
[0053]通过分析客户端的源IP、目的IP、源端口和目的端口可以确定获取到的第一次握手信号的数据包是否与阻断策略相匹配。
[0054]步骤S208,旁路干扰设备如果判断出客户端与阻断策略匹配,则旁路干扰设备将数据包作为第一次握手信号的数据包。[0055]旁路干扰设备如果判断出客户端与阻断策略匹配,则旁路干扰设备确定针对该客户端进行阻断,将该数据包作为第一次握手信号的数据包。
[0056]进一步地,旁路干扰设备分析数据包,得到分析结果包括:旁路干扰设备分析数据包,得到数据包的源IP、目的IP、源端口、目的端口、第一次握手信号中的初始序号和数据包的SYN标记,旁路干扰设备根据第一次握手信号生成来自旁路干扰设备的第二次握手信号包括:添加ACK标记,保留SYN标记;根据第一次握手信号中的初始序号生成应答序号和来自旁路干扰设备的初始序号;交换源IP和目的IP,交换源端口和目的端口,得到交换数据包,并计算得到校验和;根据SYN标记、ACK标记、应答序号、来自旁路干扰设备的初始序号、交换数据包和校验和得到来自旁路干扰设备的第二次握手信号。
[0057]旁路干扰设备获取的数据包如下:
[0058]源IP:IPA,目的 IP:IPB,源端 口 =PORTA,目的端 口 =PORTB,初始序号 ISNa, SYN 请求标记。
[0059]交换端源IP和目的IP,交换源端口和目的端口,经过处理的数据包如下:
[0060]源IP:IPB,目的IP:IPA,源端口 =PORTB,目的端口 =PORTA,初始序号ISNb,应答序号 I SNa+1,SYN/ACK 标记。
[0061]将得到的数据包作为来自旁路干扰设备的第二次握手信号发送给客户端,来自旁路干扰设备的第二次握手信号包括SYN/ACK标记、应答序号ISNa+Ι和初始序号ISNb。
[0062]进一步地,旁路干扰设备获取第一次握手信号的数据包包括:旁路干扰设备获取来自客户端的数据包。旁路干扰设备判断数据包是否有第一次握手信号。旁路干扰设备如果判断出数据包有第一次握手信号,则获取数据包作为第一次握手信号的数据包。
[0063]旁路干扰设备获取来自客户端的数据包,由于客户端发送的数据包有多种,旁路干扰设备不需要对所有来自客户端的数据包进行数据处理,因此,旁路干扰设备需要判断来自客户端的数据包中是否有第一次握手信号,如果判断出来自客户端的数据包有第一次握手信号,则获取来自客户端的数据包作为第一次握手信号的数据包。
[0064]图3是根据本发明第三实施例的TCP旁路阻断方法的流程图。如图所示,该TCP旁路阻断方法包括如下步骤:
[0065]步骤S302,服务器接收来自客户端的第三次握手信号,其中,第三次握手信号包括根据来自旁路干扰设备的第二次握手信号生成的应答序号。
[0066]根据上述的实施例,客户端发送的第一次握手信号被旁路干扰设备获取,旁路干扰设备根据第一次握手信号生成来自旁路干扰设备的第二次握手信号,客户端针对接收到的来自旁路干扰设备的第二次握手信号作出应答,作为第三次握手信号发送给服务器。月艮务器会接收到来自客户端的第三次握手信号。第三次握手信号的应答序号为ISNb+1。
[0067]步骤S304,服务器判断应答信号与来自服务器的第二次握手信号是否一致。
[0068]服务器接收到来自客户端的第三次握手信号,服务器期望接收到的第三次握手信号中携带的应答信号与服务器发送的来自服务器的第二次握手信号一致,因此服务器需要判断第三次握手信号携带的应答信号与来自服务器的第二次握手信号是否一致。
[0069]步骤S306,服务器如果判断出应答信号与来自服务器的第二次握手信号不一致,则服务器不响应第三次握手信号。
[0070]客户端发送第一次握手信号之后,服务器接收到第一次握手信号,并根据第一次握手信号生成来自服务器的第二次握手信号作为应答。服务器发送的第二次握手信号中的初始序号为ISNc,期望得到的应答序号为ISNc+1,但是,服务器生成的来自服务器的第二次握手信号晚于来自旁路干扰设备的第二次握手信号到达客户端,客户端已经针对来自旁路干扰设备的第二次握手信号生成第三次握手信号发给服务器。服务器接收到的第三次握手信号是应答来自旁路干扰设备的第二次握手信号,即无法收到期望为ISNc+1的应答序号,而来自服务器的第二次握手信号与来自旁路干扰设备的第二次握手信号对应不同的应答序号,服务器发出来自服务器的第二次握手信号后期望得到针对来自服务器的第二次握手信号的应答信号,针对来自服务器的第二次握手信号的应答信号与针对来自旁路干扰设备的第二次握手信号的应答信号不同,导致服务器接收到第三次握手信号与预期不符,则服务器判断应答信号与来自服务器的第二次握手信号不一致,则服务器不响应来自客户端的第三次握手信号。
[0071]通过上述实施例,客户端在接收到来自服务器的来自服务器的第二次握手信号之后,判断出接收到的来自服务器的第二次握手信号与预期不符,向服务器返回RST,不正确响应来自服务器的第二次握手信号导致客户端与服务器的第二次握手失败,而在第三次握手时,服务器接收到来自客户端的第三次握手信号后,判断出第三次握手信号携带的应答信号并非应答服务器发出的来自服务器的第二次握手信号,导致服务器不响应客户端的数据,随后服务器收到来自客户端的基于第二次握手信号的回包RST,由于服务器没有收到期望为ISNc+1的应答序号,最终导致第三次握手失败,使得服务器与客户端之间断开连接。旁路干扰设备伪造的应答信号使得客户端和服务器都出现了握手失败,使得客户端和服务器之间无法进行通信,从而达到了阻断客户端和服务器进行通信的效果。
[0072]另外,本发明实施例的TCP旁路阻断方法是通过旁路干扰设备伪造应答信号与客户端进行第二次握手,从而阻断客户端和服务器之间进行通信,该方法是阻断客户端和服务器建立通信,而不是在客户端和服务器进行通信后再进行阻断,从而保证了阻断不容易被破解。
[0073]本发明实施例还提供了一种TCP旁路阻断装置。
[0074]本发明实施例的TCP旁路阻断方法可以通过本发明实施例所提供的TCP旁路阻断装置来执行,本发明实施例的TCP旁路阻断装置也可以用于执行本发明实施例所提供的TCP旁路阻断方法。
[0075]图4是根据本发明第一实施例的TCP旁路阻断装置的示意图。通过旁路干扰设备进行TCP阻断,其中,旁路干扰设备旁接在客户端和服务器之间,该TCP旁路阻断装置包括:第一获取单元10、第一生成单元20和发送单元30。
[0076]第一获取单元10用于使得旁路干扰设备获取来自客户端的第一次握手信号。
[0077]旁路干扰设备旁接在客户端和服务器之间,旁接设备旁接的地理位置可以在客户端和服务器之间,例如,客户端在北京,服务器在广州,那么旁路干扰设备可能位于北京到广州的途经节点上进行监听,旁接而非串接在北京至广州的网络中。
[0078]旁路干扰设备能够在客户端和服务器进行通信时监听客户端的握手信号。客户端向服务器发送第一次握手信号,第一次握手信号携带初始序号ISNa。旁路干扰设备监听到客户端的第一次握手信号之后,获取来自客户端的第一次握手信号。
[0079]第一生成单元20用于使得旁路干扰设备根据第一次握手信号生成来自旁路干扰设备的第二次握手信号。
[0080]旁路干扰设备获取到第一次握手信号之后,根据第一次握手信号随机生成第二次握手信号的初始信号,即旁路干扰设备伪造来自旁路干扰设备的第二次握手信号作为服务器的应答信号,来自旁路干扰设备的第二次握手信号携带的应答序号为ISNa+Ι,随机的初始序号为ISNb。
[0081]发送单元30用于使得旁路干扰设备在来自服务器的第二次握手信号到达客户端之前,发送来自旁路干扰设备的第二次握手信号至客户端,其中,服务器根据第一次握手信号生成来自服务器的第二次握手信号。
[0082]旁路干扰设备将来自旁路干扰设备的第二次握手信号发送给客户端,客户端将来自旁路干扰设备的第二次握手信号作为服务器的应答。旁路干扰设备获取客户端的第一次握手信号并不阻止第一次握手信号发送给服务器,服务器依然能够接收到客户端的第一次握手信号,并根据接收到的第一次握手信号生成来自服务器的第二次握手信号作为对客户端第一次握手信号的应答,来自服务器的第二次握手信号携带的应答信号为ISNa+Ι,初始序号为ISNc。服务器将生成的来自服务器的第二次握手信号发送给客户端。但是,此时客户端已经收到旁路干扰设备生成的来自旁路干扰设备的第二次握手信号,并对来自旁路干扰设备的第二次握手信号做出应答。
[0083]旁路干扰设备根据第一次握手信号随机生成来自旁路干扰设备的第二次握手信号,生成的来自旁路干扰设备的第二次握手信号与来自服务器的第二次握手信号不同。
[0084]根据TCP协议中的三次握手,在客户端接收到旁路干扰设备生成的来自旁路干扰设备的第二次握手信号时,即进行了第二次握手,由于旁路干扰设备伪造了第二次握手信号,当客户端收到伪造的第二次握手信号之后,再收到真正由服务器发送的第二次握手信号时,接收到初始序号为ISNc,客户端认为与预期的初始序号ISNb不符,向服务器返回RST,不正确响应来自服务器的第二次握手信号,所以在客户端和服务器之间无法建立连接。
[0085]上述实施例,在客户端向服务器发送第一次握手信号时,旁路干扰设备获取第一次握手信号,根据第一次握手信号生成来自旁路干扰设备的第二次握手信号作为第二次握手信号,并将第二次握手信号发送至客户端,使得客户端在接收到真正来自服务器的第二次握手信号之前已经接收到旁路干扰设备发送的第二次握手信号,从而导致客户端响应伪造的第二次握手信号,而不响应来自客户端的第二次握手信号,使得客户端和服务器之间无法建立连接,进而阻断了客户端和服务器之间的数据传输。
[0086]图5是根据本发明第三实施例的TCP旁路阻断装置的示意图。该TCP旁路阻断装置包括:第一获取单元10、第一生成单元20和发送单元30,还包括第二获取单元40、分析单元50、检测单元60和第二生成单元70。
[0087]第二获取单元40用于在旁路干扰设备获取来自客户端的第一次握手信号之前,使得旁路干扰设备获取来自客户端的数据包。
[0088]旁路干扰设备配置有阻断策略,其中,阻断策略用于确定进行数据阻断的服务器和客户端。
[0089]旁路干扰设备获取来自客户端的数据包,该数据包包括SYN请求报文,以及初始序号。[0090]分析单元50用于使得旁路干扰设备分析数据包,得到分析结果。
[0091]旁路干扰设备分析数据包,分析数据包中的数据,以便于判断第一次握手信号的数据包是否为监测的客户端。
[0092]检测单元60用于使得旁路干扰设备根据分析结果检测客户端是否与阻断策略相匹配。
[0093]旁路干扰设备在得到分析结果之后,根据分析结果检测客户端是否与阻断策略相匹配,即旁路干扰设备根据分析结果判断获取到的第一次握手信号的数据包是否为自己需要的数据包。
[0094]例如,旁路干扰设备需要阻断客户端A的网络,而不需要阻断客户端B的网络,那么,在获取到第一次握手信号数据包时,对第一次握手信号的数据包进行分析,如果分析结果是该第一次握手信号与客户端A相对应,则客户端A与阻断策略相匹配,则对客户端A的网络进行阻断;如果分析结果是该第二次握手信号与客户端B相对应,则客户端B与阻断策略不匹配,不对客户端B的网络进行阻断。
[0095]通过分析客户端的源IP、目的IP、源端口和目的端口可以确定获取到的第一次握手信号的数据包是否与阻断策略相匹配。
[0096]第二生成单元70用于在旁路干扰设备判断出客户端与阻断策略匹配时,使得旁路干扰设备将数据包作为第一次握手信号的数据包。
[0097]旁路干扰设备如果判断出客户端与阻断策略匹配,则旁路干扰设备确定针对该客户端进行阻断,将该数据包作为第一次握手信号的数据包。
[0098]进一步地,分析单元还用于使得旁路干扰设备分析得到数据包的源IP、目的IP、源端口和目的端口,添加模块,用于添加ACK标记,保留SYN标记;生成模块,用于根据第一次握手信号中的初始序号生成应答序号和来自旁路干扰设备的初始序号;交换模块,用于交换源IP和目的IP,交换源端口和目的端口,得到交换数据包,并计算得到校验和;确认模块,用于SYN标记、ACK标记、应答序号、来自旁路干扰设备的初始序号、交换数据包和校验和得到来自旁路干扰设备的第二次握手信号。
[0099]旁路干扰设备获取的数据包如下:
[0100]源IP:IPA,目的 IP:IPB,源端 口 =PORTA,目的端 口 =PORTB,初始序号 ISNa, SYN 请求标记。
[0101]交换端源IP和目的IP,交换源端口和目的端口,经过处理的数据包如下:
[0102]源IP:IPB,目的IP:1PA,源端口 =PORTB,目的端口:P0RTA,初始序号ISNb,应答序号 I SNa+1,SYN/ACK 标记。
[0103]将得到的数据包作为来自旁路干扰设备的第二次握手信号发送给客户端,来自旁路干扰设备的第二次握手信号包括SYN/ACK标记、应答序号ISNa+Ι和初始序号ISNb。
[0104]进一步地,第二获取单元包括:
[0105]第二获取模块,用于使得旁路干扰设备获取来自客户端的数据包。
[0106]判断模块,用于使得旁路干扰设备判断来自客户端的数据包是否有第一次握手信号。
[0107]第二确认模块,用于在旁路干扰设备判断出来自客户端的数据包有第一次握手信号时,将来自客户端的数据包作为第一次握手信号的数据包。[0108]旁路干扰设备获取来自客户端的数据包,由于客户端发送的数据包有多种,旁路干扰设备不需要对所有来自客户端的数据包进行数据处理,因此,旁路干扰设备需要判断来自客户端的数据包中是否有第一次握手信号,如果判断出来自客户端的数据包有第一次握手信号,则将来自客户端的数据包作为第一次握手信号的数据包。
[0109]图6是根据本发明第三实施例的TCP旁路阻断装置的示意图。如图所示,该TCP旁路阻断装置包括:第一获取单元10、第一生成单元20和发送单元30还包括接收单元11、判断单元22和响应单元33。
[0110]接收单元11用于使得服务器接收来自客户端的第三次握手信号,其中,第三次握手信号包括根据来自旁路干扰设备的第二次握手信号生成的应答信号。
[0111]根据上述的实施例,客户端发送的第一次握手信号被旁路干扰设备获取,旁路干扰设备根据第一次握手信号生成来自旁路干扰设备的第二次握手信号,客户端针对接收到的来自旁路干扰设备的第二次握手信号作出应答,作为第三次握手信号发送给服务器。月艮务器会接收到来自客户端的第三次握手信号。
[0112]判断单元22用于使得服务器判断应答信号与来自服务器的第二次握手信号是否—致。
[0113]服务器接收到来自客户端的第三次握手信号,服务器期望接收到的第三次握手信号中携带的应答信号与服务器发送的来自服务器的第二次握手信号一致,因此服务器需要判断第三次握手信号携带的应答信号与来自服务器的第二次握手信号是否一致。
[0114]响应单元33用于在服务器判断出应答信号与来自服务器的第二次握手信号不一致时,使得服务器不响应第三次握手信号。
[0115]客户端发送第一次握手信号之后,服务器接收到第一次握手信号,并根据第一次握手信号生成来自服务器的第二次握手信号作为应答。但是,服务器生成的来自服务器的第二次握手信号晚于来自旁路干扰设备的第二次握手信号到达客户端,客户端已经针对来自旁路干扰设备的第二次握手信号生成第三次握手信号发给服务器。服务器接收到的第三次握手信号是应答来自旁路干扰设备的第二次握手信号,即无法收到期望为ISNc+1的应答序号,而来自服务器的第二次握手信号与来自旁路干扰设备的第二次握手信号对应不同的应答序号,服务器发出来自服务器的第二次握手信号后期望得到针对来自服务器的第二次握手信号的应答信号,针对来自服务器的第二次握手信号的应答信号与针对来自旁路干扰设备的第二次握手信号的应答信号不同,导致服务器接收到第三次握手信号与预期不符,则服务器判断应答信号与来自服务器的第二次握手信号不一致,则服务器不响应来自客户端的第三次握手信号。
[0116]通过上述实施例,客户端在接收到来自服务器的来自服务器的第二次握手信号之后,判断出接收到的来自服务器的第二次握手信号与预期不符,向服务器返回RST,不响应来自服务器的第二次握手信号导致客户端与服务器的第二次握手失败,而在第三次握手时,服务器接收到来自客户端的第三次握手信号后,判断出第三次握手信号携带的应答信号并非应答服务器发出的来自服务器的第二次握手信号,导致服务器不响应客户端的数据,随后服务器收到来自客户端的基于第二次握手信号的回包RST,由于服务器没有收到期望为ISNc+1的应答序号,最终导致第三次握手失败,使得服务器与客户端之间断开连接。旁路干扰设备伪造的应答信号使得客户端和服务器都出现了握手失败,使得客户端和服务器之间无法进行通信,从而达到了阻断客户端和服务器进行通信的效果。
[0117]另外,本发明实施例的TCP旁路阻断装置,能够使得旁路干扰设备伪造应答信号与客户端进行第二次握手,从而阻断客户端和服务器之间进行通信,该装置能够阻断客户端和服务器建立通信,而不是在客户端和服务器进行通信后再进行阻断,从而保证了阻断不容易被破解。
[0118]本发明实施例还提供了一种计算机存储介质。该计算机存储介质可存储有程序,该程序用于执行上述的TCP旁路阻断方法中的部分或全部步骤。
[0119]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0120]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种TCP旁路阻断方法,其特征在于,通过旁路干扰设备进行TCP阻断,其中,所述旁路干扰设备旁接在客户端和服务器之间,所述TCP旁路阻断方法包括: 所述旁路干扰设备获取来自所述客户端的第一次握手信号; 所述旁路干扰设备根据所述第一次握手信号生成第二次握手信号,得到来自旁路干扰设备的第二次握手信号;以及 所述旁路干扰设备在来自服务器的第二次握手信号到达所述客户端之前,发送所述来自旁路干扰设备的第二次握手信号至所述客户端,其中,所述客户端响应所述来自旁路干扰设备的第二次握手信号,所述服务器根据所述第一次握手信号生成所述来自服务器的第二次握手信号,所述来自服务器的第二次握手信号与所述来自旁路干扰设备的第二次握手信号不同。
2.根据权利要求1所述的TCP旁路阻断方法,其特征在于,所述旁路干扰设备配置有阻断策略,其中,所述阻断策略用于确定进行数据阻断的服务器和客户端,在所述旁路干扰设备获取来自所述客户端的第一次握手信号之前,所述TCP旁路阻断方法还包括: 所述旁路干扰设备获取来自所述客户端的数据包; 所述旁路干扰设备分析所述数据包,得到分析结果; 所述旁路干扰设备 根据所述分析结果检测所述客户端是否与所述阻断策略相匹配;以及 所述旁路干扰设备如果判断出所述客户端与所述阻断策略匹配,则所述旁路干扰设备将所述数据包作为待获取的第一次握手信号的数据包。
3.根据权利要求2所述的TCP旁路阻断方法,其特征在于, 所述旁路干扰设备分析所述数据包,得到分析结果包括:所述旁路干扰设备分析所述数据包,得到所述数据包的源IP、目的IP、源端口、目的端口、所述第一次握手信号中的初始序号和所述数据包的SYN标记, 所述旁路干扰设备根据所述第一次握手信号生成第二次握手信号包括:添加ACK标记,保留SYN标记;根据所述第一次握手信号中的初始序号生成应答序号和来自旁路干扰设备的初始序号;交换所述源IP和所述目的IP,交换所述源端口和所述目的端口,得到交换数据包,并计算得到校验和;根据所述SYN标记、所述ACK标记、所述应答序号、所述来自旁路干扰设备的初始序号、所述交换数据包和所述校验和得到所述来自旁路干扰设备的第二次握手信号。
4.根据权利要求2所述的TCP旁路阻断方法,其特征在于,所述旁路干扰设备获取所述第一次握手信号的数据包包括: 所述旁路干扰设备获取来自客户端的数据包; 所述旁路干扰设备判断所述数据包是否有第一次握手信号;以及所述旁路干扰设备如果判断出所述数据包有第一次握手信号,则获取所述数据包作为所述第一次握手信号的数据包。
5.根据权利要求1所述的TCP旁路阻断方法,其特征在于,所述TCP旁路阻断方法还包括: 所述服务器接收来自所述客户端的第三次握手信号,其中,所述第三次握手信号包括根据所述来自旁路干扰设备的第二次握手信号生成的应答序号;所述服务器判断所述第三次握手信号中的应答序号与所述来自服务器的第二次握手信号中的应答序号是否匹配;以及 所述服务器如果判断出所述第三次握手信号中的应答序号与所述来自服务器的第二次握手信号中的应答序号不匹配,则所述服务器不响应所述第三次握手信号。
6.一种TCP旁路阻断装置,其特征在于,通过旁路干扰设备进行TCP阻断,其中,所述旁路干扰设备旁接在客户端和服务器之间,所述TCP旁路阻断装置包括: 第一获取单元,用于使得所述旁路干扰设备获取来自所述客户端的第一次握手信号;第一生成单元,用于使得所述旁路干扰设备根据所述第一次握手信号生成第二次握手信号,得到来自旁路干扰设备的第二次握手信号;以及 发送单元,用于使得所述旁路干扰设备在来自服务器的第二次握手信号到达所述客户端之前,发送来自旁路干扰设备的第二次握手信号至所述客户端,其中,所述客户端响应所述来自旁路干扰设备的第二次握手信号,所述服务器根据所述第一次握手信号生成所述来自服务器的第二次握手信号,所述来自服务器的第二次握手信号与所述来自旁路干扰设备的第二次握手信号不同。
7.根据权利要求6所述的TCP旁路阻断装置,其特征在于,所述旁路干扰设备配置有阻断策略,其中,所述阻断策略用于确定进行数据阻断的服务器和客户端,所述TCP旁路阻断装置还包括: 第二获取单元,用于在所述旁路干扰设备获取来自所述客户端的第一次握手信号之前,使得所述旁路干扰设备获取来自所述客户端的数据包; 分析单元,用于使得所述旁路干扰设备分析所述数据包,得到分析结果; 检测单元,用于使得所述旁路干扰设备根据所述分析结果检测所述客户端是否与所述阻断策略相匹配;以及 第二生成单元,用于在所述旁路干扰设备判断出所述客户端与所述阻断策略匹配时,使得所述旁路干扰设备将所述数据包作为待获取的第一次握手信号的数据包。
8.根据权利要求7所述的TCP旁路阻断装置,其特征在于, 所述分析单元还用于使得所述旁路干扰设备分析得到所述数据包的源IP、目的IP、源端口、目的端口、所述第一次握手信号中的初始序号和所述数据包的SYN标记, 所述第一生成单元包括:添加模块,用于添加ACK标记,保留SYN标记;生成模块,用于根据所述第一次握手信号中的初始序号生成应答序号和来自旁路干扰设备的初始序号;交换模块,用于交换所述源IP和所述目的IP,交换所述源端口和所述目的端口,得到交换数据包,并计算得到校验和;确认模块,用于所述SYN标记、所述ACK标记、所述应答序号、所述来自旁路干扰设备的初始序号、所述交换数据包和所述校验和得到所述来自旁路干扰设备的第二次握手信号。
9.根据权利要求7所述的TCP旁路阻断装置,其特征在于,所述第二获取单元包括: 第二获取模块,用于使得所述旁路干扰设备获取来自客户端的数据包; 判断模块,用于使得所述旁路干扰设备判断所述数据包是否有第一次握手信号;以及第三获取模块,用于在所述旁路干扰设备判断出所述数据包有第一次握手信号时,获取所述来自客户端的数据包作为所述第一次握手信号的数据包。
10.根据权利要求6所述的TCP旁路阻断装置,其特征在于,所述TCP旁路阻断装置还包括: 接收单元,用于使得所述服务器接收来自所述客户端的第三次握手信号,其中,所述第三次握手信号包括根据所述来自旁路干扰设备的第二次握手信号生成的应答序号; 判断单元,用于使得所述服务器判断所述第三次握手信号中的应答序号与所述来自服务器的第二次握手信号中的应答序号是否匹配;以及 响应单元,用于在所述服务器判断出所述第三次握手信号中的应答序号与所述来自服务器的第二次握手信号中的应答序号不匹配时,使得所述服务器不响应所述第三次握手信号。
【文档编号】H04L29/06GK104023036SQ201410295161
【公开日】2014年9月3日 申请日期:2014年6月25日 优先权日:2014年6月25日
【发明者】白金, 王兴华, 宗劼 申请人:北京蓝汛通信技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1