CN107104919B - 防火墙设备、流控制传输协议sctp报文的处理方法 - Google Patents
防火墙设备、流控制传输协议sctp报文的处理方法 Download PDFInfo
- Publication number
- CN107104919B CN107104919B CN201610093726.3A CN201610093726A CN107104919B CN 107104919 B CN107104919 B CN 107104919B CN 201610093726 A CN201610093726 A CN 201610093726A CN 107104919 B CN107104919 B CN 107104919B
- Authority
- CN
- China
- Prior art keywords
- cookie
- message
- host
- init
- sctp
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
涉及计算机通信技术领域,尤其涉及防火墙设备、流控制传输协议SCTP报文的处理方法,以解决SCTP建立请求洪水INIT flood攻击时连接资源被无效SCTP偶联占用的问题。防火墙设备,包括:接收模块,用于截获INIT报文;发送模块,用于透传INIT报文;处理模块,在接收模块截获INIT报文后,不申请连接资源;接收模块,还用于截获COOKIE ECHO报文;处理模块,还用于从COOKIE ECHO报文中获取验证SCTP报文所需的验证信息,并申请连接资源记录验证信息。由于在收到INIT报文后不申请资源,因此避免了面对SCTP INIT flood攻击的时候,连接资源被无效SCTP偶联占用的问题。
Description
技术领域
本发明涉及计算机通信技术领域,尤其涉及一种防火墙设备、流控制传输协议(Stream Control Transmission Protocol,SCTP)报文的处理方法。
背景技术
传输控制协议(Transmission Control Protocol,TCP)是一种传输层协议,可用于在互联网协议(Internet Protocol,IP)网络中传输数据和信令。由于TCP 是面向连接的传输层协议,因此,IP网络中的两个网络节点之间建立了TCP 连接之后,才可以在这两个网络节点之间进行TCP报文的传输。
一个完整的TCP连接需要经过发送端和接收端之间三次握手才能完成,通常把完成三次握手之前的连接都称之为半连接。在TCP连接建立过程中,可能会受到同步(Synchronisation,SYN)洪水(Flood)攻击。恶意攻击者向一个网络节点发送大量SYN报文,发起TCP连接请求,但不会回复该网络节点发送的SYN+应答(Acknowledgement,ACK)报文。被攻击的网络节点需要维护一个庞大的半连接列表,消耗较多的中央处理器(CentralProcessing Unit,CPU)时间和内存资源,并且还要不断对这个半连接列表中记录的IP地址进行SYN+ACK报文的重试。该网络节点将忙于处理恶意攻击者伪造的TCP 连接请求,不会去处理正常的客户端的请求,此时从正常的客户端角度看来,服务器失去响应。
流控制传输协议(Stream Control Transmission Protocol,SCTP)也是一种传输层协议。在SCTP偶联(Association)建立的过程中,发起SCTP偶联的 SCTP端点发出偶联建立请求(INIT)报文,接收该INIT报文的SCTP端点不必保存任何状态信息或者分配任何资源,这样就可防范诸如上述SYN Flood等的服务拒绝(Denial of Service,DoS)攻击。
当发起SCTP偶联的SCTP端点和接收INIT报文的SCTP端点之间存在防火墙时,作为中间设备的防火墙,在收到INIT报文时需要申请连接资源以记录防火墙在验证后续SCTP报文时需要的验证信息。在面对SCTP INIT flood 攻击的时候,防火墙会申请大量的连接资源,导致防火墙的连接资源被大量无效的SCTP偶联占用,而影响IP网络的正常使用。
发明内容
本发明实施例提供一种防火墙设备、SCTP报文的处理方法,用以解决上述防火墙面对SCTP INIT flood攻击的时候,连接资源被大量无效的SCTP偶联占用,而影响IP网络的正常使用的问题。
第一方面,本发明实施例提供一种SCTP报文的处理方法。
该方法中,防火墙截获第一主机向第二主机发送的SCTP INIT报文后将截获的INIT报文透传给所述第二主机,且所述防火墙不针对所述SCTP偶联申请连接资源;当防火墙截获所述第一主机向所述第二主机发送的第一COOKIE ECHO报文后,从所述第一COOKIEECHO报文中获取用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息并申请所述连接资源,以记录从所述第一COOKIE ECHO报文中获取的验证信息。
其中,防火墙在收到INIT报文后,不申请用于记录所述防火墙在验证SCTP 偶联上传输的SCTP报文时所需的验证信息的连接资源,而是在收到COOKIE ECHO报文后,自身从COOKIE ECHO报文中获取验证信息,再申请所述连接资源,并在所述连接资源中记录该验证信息。这样,可在面对SCTP INIT flood 攻击时,避免防火墙的连接资源被大量无效的SCTP偶联占用,影响网络正常使用。
在第一方面的一种可选的实现方式中,所述防火墙在将所述INIT报文透传给所述第二主机之后,截获所述第一COOKIE ECHO报文之前,截获所述第二主机向所述第一主机发送的第一INIT确认ACK报文,所述防火墙从所述第一INIT ACK报文中获取验证信息,并根据从所述第一INIT ACK报文中获取的验证信息生成第一状态COOKIE;所述防火墙从所述第一INIT ACK报文中获取第二状态COOKIE,并将所述第一状态COOKIE和所述第二状态COOKIE组合成第三状态COOKIE;所述防火墙将所述第一INIT ACK报文中的所述第二状态COOKIE替换为所述第三状态COOKIE后生成第二INIT ACK报文发送给所述第一主机。
所述第一COOKIE ECHO报文是所述第一主机响应于所述INIT ACK报文发送给所述第二主机的,所述防火墙从所述第一COOKIE ECHO报文中获取第四状态COOKIE,在对所述第四状态COOKIE验证合法后,确认所述第四状态 COOKIE与所述第三状态COOKIE相同并从所述第四状态COOKIE中分离出所述第一状态COOKIE;根据分离出的所述第一状态COOKIE,生成用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息。
其中,防火墙在收到INIT ACK报文后,也不申请连接资源,可避免伪造的INIT ACK报文的攻击;并且防火墙在收到INIT ACK报文后,获取报文中的验证信息,根据该验证信息生成一个新的状态COOKIE,和INIT ACK报文中原来的状态COOKIE置于INIT ACK报文中一同发给第一主机,并在收到第一主机发送的COOKIE ECHO报文后,从收到的COOKIE ECHO报文中获取状态COOKIE进行验证,在验证合法后,获取验证信息并申请连接资源记录获取的验证信息。
由于COOKIE ECHO报文是验证合法的,可有效避免攻击,并且,由于 COOKIE ECHO报文是第一主机将状态COOKIE原封带回的,所以即使在对 INIT ACK报文和INIT报文处理时没有记录验证信息,防火墙也能从COOKIE ECHO报文中获取验证信息,从而可实现对后续SCTP偶联上的SCTP报文的验证。
在第一方面的一种可选的实现方式中,防火墙在从所述第一COOKIE ECHO报文中获取所述第四状态COOKIE之后,从所述第四状态COOKIE中分离出所述第二状态COOKIE;将所述第一COOKIE ECHO报文中的所述第四状态COOKIE替换为从所述第四状态COOKIE中分离出的所述第二状态 COOKIE后,生成第二COOKIE ECHO报文发送给所述第二主机。
这样,就还原了第一主机发送给第二主机的COOKIE ECHO报文,第二主机在收到COOKIE ECHO报文后即可获得正确的状态COOKIE,进而完成 SCTP偶联的建立。
第二方面,本发明实施例提供一种防火墙设备,该防火墙设备具有实现上述方法中防火墙行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本发明实施例提供另一种防火墙设备,该防火墙设备包括:接收器、发送器、处理器和存储器;所述接收器,用于截获流控制传输协议SCTP 报文;所述发送器,用于发送SCTP报文;所述存储器,用于存储指令和数据;所述处理器,用于读取所述存储器中存储的指令和数据,执行以下操作:
控制所述接收器截获第一主机向第二主机发送的SCTP偶联建立请求INIT 报文,所述INIT报文用于发起建立所述第一主机和所述第二主机之间的SCTP 偶联的过程;
控制所述发送器将所述INIT报文透传给所述第二主机;并且,在所述接收器截获所述INIT报文后,不针对所述SCTP偶联申请连接资源;以及
控制所述接收器截获所述第一主机向所述第二主机发送的第一COOKIE ECHO 报文;
从所述第一COOKIE ECHO报文中获取用于验证SCTP偶联上传输的 SCTP报文时所需的验证信息,并在从所述第一COOKIE ECHO报文中获取验证信息后,申请连接资源,所述连接资源用于记录从第一COOKIE ECHO报文中获取的验证信息;
在所述连接资源中记录从第一COOKIE ECHO报文中获取的验证信息。
在第三方面的一种可选的实现方式中,所述处理器还用于执行如下操作:
在控制所述发送器将所述INIT报文透传给所述第二主机之后,控制所述接收器截获所述第一COOKIE ECHO 报文之前,控制所述接收器截获所述第二主机向所述第一主机发送的第一INIT确认ACK报文,所述第一INIT ACK 报文响应于所述INIT报文;
从所述第一INIT ACK报文中获取验证信息,并根据从所述第一INIT ACK 报文中获取的验证信息生成第一状态COOKIE;从所述第一INIT ACK报文中获取第二状态COOKIE,并将所述第一状态COOKIE和所述第二状态COOKIE 组合成第三状态COOKIE;将所述第一INIT ACK报文中的所述第二状态 COOKIE替换为所述第三状态COOKIE后生成第二INIT ACK报文;
控制所述发送器将所述第二INIT ACK报文发送给所述第一主机;
所述第一COOKIE ECHO报文响应于所述INIT ACK报文,所述处理器在获取用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息时,具体执行如下操作:
从所述第一COOKIE ECHO报文中获取所述第四状态COOKIE;
在对所述第四状态COOKIE验证合法后,从所述第四状态COOKIE中分离出所述第一状态COOKIE;
根据从所述第四状态COOKIE中分离出的所述第一状态COOKIE生成用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息。
在第三方面的一种可选的实现方式中,所述处理器还执行如下操作:
在从所述第一COOKIE ECHO报文中获取所述第四状态COOKIE之后,从所述第四状态COOKIE中分离出所述第二状态COOKIE;将所述第一 COOKIE ECHO报文中的所述第四状态COOKIE替换为从所述第四状态 COOKIE中分离出的所述第二状态COOKIE后,生成第二COOKIE ECHO报文;
控制所述发送器将所述第二COOKIE ECHO报文发送给所述第二主机。
第四方面,本发明实施例提供一种网络,包括第二方面或第三方面中所述的第一主机、第二主机和防火墙设备。
第五方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第二方面或第三方面所述的防火墙设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
在上述各个方面以及各方面的可选的实现方式中,所述验证信息包括:
所述第一主机的互联网协议IP地址;
所述第一主机的SCTP端口号;
所述第一主机使用的验证标签verify tag;
所述第二主机的互联网协议IP地址列表;
所述第二主机的SCTP端口号;
所述第二主机使用的验证标签verify tag。
附图说明
图1为通过三次握手建立TCP连接的过程的示意图;
图2为SYN Flood攻击的示意图;
图3为SCTP偶联建立过程的示意图;
图4为两个主机之间存在防火墙的连接示意图;
图5为本发明实施例提供的网络的结构示意图;
图6为本发明实施例提供的SCTP报文处理流程的示意图;
图7A和图7B为本发明实施例中第一状态COOKIE的结构示意图;
图8为本发明实施例提供的防火墙设备的结构示意图;
图9为本发明实施例提供的另一种防火墙设备的结构示意图。
具体实施方式
为了更好地理解本发明实施例的上述目的、方案和优势,下文提供了详细描述。该详细描述通过使用框图、流程图等附图和/或示例,阐明了装置和/或方法的各种实施方式。在这些框图、流程图和/或示例中,包含一个或多个功能和/或操作。本领域技术人员将理解到:这些框图、流程图或示例内的各个功能和/或操作,能够通过各种各样的硬件、软件、固件单独或共同实施,或者通过硬件、软件和固件的任意组合实施。
本发明实施例中,防火墙在收到INIT报文后,不申请用于记录所述防火墙在验证SCTP偶联上传输的SCTP报文时所需的验证信息的连接资源,而是在收到COOKIE ECHO报文后,自身从COOKIE ECHO报文中获取验证信息,并在验证成功之后,再申请所述连接资源,并在所述连接资源中记录该验证信息。这样,可在面对SCTP INIT flood攻击时,避免防火墙的连接资源被大量无效的SCTP偶联占用,影响网络正常使用。
下面对本发明实施例涉及的一些描述进行解释。需要说明的是,这些解释是为了让本发明实施例更容易被理解,而不应该视为对本发明实施例所要求的保护范围的限定。
1、TCP连接建立
TCP连接通过三次握手(Three-way Handshake)过程建立。
如图1所示,主机A通过向主机B发送SYN报文,发起TCP连接的建立过程;
主机B在收到SYN报文后,在内存中创建TCP控制块(TCP Control Block, TCB),然后向主机A发送确认(ACKnowledgement,ACK)报文,并也向主机A发送一个SYN报文,即SYN+ACK应答报文;
在三次握手过程结束之前,TCP连接并没有真正建立起来,所以将三次握手完成之前的TCP连接称为“半连接”,主机B为每一个半连接维护一个TCB,为多个半连接维护多个TCB,组成一个半连接列表。
主机A在收到SYN+ACK应答报文后,向主机B回复ACK报文,主机B 删除半连接列表中该TCP连接对应的TCB之后,主机A和主机B之间的TCP 连接就建立起来了,连接建立后,就可以在两个网络节点之间传输数据报文了。
2、TCP连接建立过程的三次握手受到SYN Flood攻击的原因
假设一个主机A向主机B发送了SYN报文后突然死机或掉线,那么主机 B在发出SYN+ACK应答报文后是无法收到主机A的ACK报文的,即第三次握手无法完成。
这种情况下,主机B端一般会重试,即再次发送SYN+ACK应答报文给主机A,并等待一段时间后丢弃这个半连接,这段时间的长度称为同步超时 (SYN Timeout)。通常,SYNTimeout的数量级为分钟,大约为30秒-2分钟;一个主机A出现异常导致主机B的一个线程等待1分钟,对主机B的资源消耗并不大。
参考图2,如果有一个恶意攻击者在短时间内,比如:10秒内,通过伪造的源地址向主机B发送大量的SYN报文,这些SYN报文的源IP地址,比如:图1中的131.5.6.7、132.6.7.8、133.7.8.9均不是真实的源IP地址,它们真实的源IP地址分别为:128.1.2.3、129.3.4.5和130.4.5.6;主机B针对每一个收到的 SYN报文,都要在内存中创建TCB,当有恶意攻击者发送大量SYN报文时,主机B需要维护一个非常大的半连接列表,会消耗非常多的内存资源,而SYN Timeout又未超时,TCB资源无法释放,这将导致没有可用的TCB资源。
并且,对于庞大的半连接列表,即使是简单的保存和遍历也会消耗主机B 大量的CPU时间和内存。此外,主机B还要不断对这个半连接列表中的每一个TCB进行SYN+ACK应答报文的重试。
这样,主机B将忙于处理恶意攻击者伪造的TCP连接请求而无法处理正常的主机A的请求,此时从正常的主机A角度看来,主机B失去响应,这种情况称为:主机B受到了SYNFlood攻击。
3、主机、SCTP端点、SCTP偶联
1)主机(Host)
主机配有一个或多个IP地址,是一个典型的物理实体。
2)SCTP端点(SCTP Endpoint)
SCTP端点是一种逻辑实体,是数据报文的逻辑发送者或逻辑接收者。一个主机上可以有多个端点。
3)SCTP偶联(Association)
SCTP偶联是指:两个SCTP端点通过SCTP协议规定的四步握手机制建立起来的进行数据报文传递的逻辑联系或者通道。
SCTP协议规定在任何时刻两个SCTP端点之间能且仅能建立一个SCTP 偶联。由于SCTP偶联由两个SCTP端点的传送地址来定义,所以通过本地IP 地址、本地SCTP端口号、对端IP地址、对端SCTP端口号这四个参数,可以唯一标识一个SCTP偶联。
4、SCTP偶联建立过程
图3示出了SCTP偶联建立过程。在图3所示的过程中,主机A向主机B 发送INIT报文,发起SCTP偶联的建立过程。
首先,主机A创建一个TCB,用于描述即将发起的SCTP偶联,该TCB 中包含该SCTP偶联的基本信息,然后向主机B发送INIT报文。
主机B在收到INIT报文后,根据SCTP偶联的基本信息生成一个临时的 TCB,并生成状态COOKIE(STATE COOKIE),该状态COOKIE中包括生成的临时的TCB中的必要信息,比如:状态COOKIE生成的时间戳、该状态 COOKIE的生命期,此外还包括消息鉴权码(MessageAuthentication Control, MAC),该MAC由TCB中的必要信息和本端密钥通过请求评议(Request For Comments,RFC)2401描述的算法生成。主机B将生成的状态COOKIE置于 INITACK)报文中返回给主机A。
主机A在收到INIT ACK报文后,从INIT ACK报文中获取状态COOKIE,并将状态COOKIE置于COOKIE响应(ECHO)报文中返回给主机B;
主机B在收到COOKIE ECHO报文后,从COOKIE ECHO报文中取出状态COOKIE,进行状态COOKIE验证,将状态COOKIE中的TCB中的必要信息和本端密钥根据RFC2401的MAC算法进行计算,将计算得出的MAC与状态COOKIE中携带的MAC进行比较。若不同则丢弃这个报文;若相同,则取出TCB部分的时间戳,和当前时间比较,看时间是否已经超过了状态COOKIE 的生命期。若超过则同样丢弃,若未超过则根据TCB中的信息建立一个和主机A之间的SCTP偶联。
5、SCTP偶联建立过程可防范SYN Flood攻击的原理
在建立SCTP偶联的四次握手过程中,INIT报文的接收端,即上述主机B 不必保存任何状态信息或者分配任何资源,这样就可防范SYN Flooding等DoS 攻击。主机B在发送INIT ACK报文,采用了上述状态Cookie的机制,该状态Cookie中包括主机A建立自身状态所需的全部信息。
主机B在发送完INIT ACK报文后,会删除生成的临时TCB以及与要建立的SCTP偶联有关的所有本地资源。
由于INIT报文和INIT ACK报文中都必须包含建立状态所需的参数:一组 IP地址,保证可靠传输的初始传输顺序号(Transmission Sequence Number, TSN)。并且INIT报文和INIT ACK报文中均包含初始标签(Initial Tag),报文发送端请求发出的流数目和能支持接收的流数目。交换完这些报文之后,主机 A通过COOKIE ECHO报文向主机B返回状态Cookie。主机B根据所接收到的COOKIE ECHO报文中的状态COOKIE,完整地重建自身状态,并回送 COOKIE ACK来确认关联已建立。
由此可见,采用建立SCTP偶联的四次握手的机制,即使主机B接收再多的INIT报文,也没有任何资源的消耗,既不分配任何***资源,也不保存该 SCTP偶联的状态信息,只是把重建状态所用的状态COOKIE作为参数,包含在每一个回送的INIT ACK报文中,最后该状态COOKIE会被COOKIE ECHO 报文发送回来。
6、目前,防火墙在SCTP偶联建立过程中的处理
如图4所示,若主机A和主机B之间存在防火墙,防火墙需要进行SCTP 状态检测,在收到INIT报文时为INIT报文要建立的SCTP偶联准备连接资源,该连接资源用于记录防火墙对SCTP报文进行验证时所需的验证信息。防火墙收到INIT报文或INIT ACK报文后会转发报文;而在收到COOKIE ECHO报文或COOKIE ACK报文等后续的SCTP报文时,只有验证通过的报文才会被转发。
防火墙在主机A和主机B交互完INIT报文和INIT ACK报文之后,才能获取到要建立的SCTP偶联的全部信息,比如:源IP地址列表、目的IP地址列表、源和目的SCTP端口、双向的验证标签(Verify Tag)等,这些验证信息用于对SCTP报文进行验证。因此,防火墙在主机A和主机B之间完成INIT 报文和INIT报文交互之后,才能在两个SCTP端点之间转发其他SCTP报文。
7、目前,防火墙无法抵御DOS攻击的原因
SCTP偶联建立的四次握手机制可以保证主机B能够抵抗大量INIT报文发起的连接耗尽攻击。但作为中间设备的防火墙,在收到INIT报文时就申请连接资源,用于记录上述验证信息。
在面对SCTP INIT flood攻击的时候,防火墙会申请大量的连接资源,导致防火墙的连接资源被大量无效的连接占用,导致防火墙被DOS攻击,影响网络的正常使用。
目前,尚无有效方法来防范上述防火墙的SCTP连接耗尽的问题,只能将收到INIT报文后等待INIT ACK报文的有效时长尽可能的调小,但是在面对海量的INIT flood攻击时,即使该有效时长已经调到很小,但由于收到的用于攻击的INIT报文数量巨大,仍会耗尽防火墙的连接资源,并且,由于这些SCTP 偶联都是无效的,申请和释放连接资源的操作也会大量占用防火墙的CPU资源,导致防火墙性能低下。
8、***和网络,和/或
术语“***”和“网络”在本发明实施例中常被可互换使用。本发明实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上,介绍了本发明实施例涉及的一些描述,下面,结合附图对本发明实施例进行详细描述。
图5示出了本发明实施例提供的网络的结构示意图。如图5所示,该网络 50包括:第一主机501、第二主机502和防火墙设备503,其中,
第一主机501发起SCTP偶联的建立过程,以与第二主机502之间建立 SCTP偶联;
防火墙设备503位于第一主机501与第二主机502之间,用于对第一主机 501和第二主机502之间传送的SCTP报文进行验证。
防火墙设备503可以是一个用于实现防火墙功能的硬件设备,也可以是运行于一台计算机设备上的软件,也能够实现防火墙的功能。
其中,网络50为支持SCTP协议的网络,比如:为一种计算机网络,或者其他通信网络,只要网络中的设备支持SCTP协议即可,该其他通信网络可以是移动通信网络,比如:长期演进(Long Term Evolution,LTE)***,其中的基站与移动性管理网元之间即可采用SCTP协议通信,这两个设备即可分别视为网络50中的第一主机501和第二主机502。
第一主机501和第二主机502可以是计算机设备,比如:台式机、笔记本电脑、平板电脑,也可以是终端设备,比如:手机、可穿戴设备(比如:智能手表、运动手环)等。只要能够支持SCTP协议,均可视为第一主机501或第二主机502。
防火墙设备503也可是计算机设备,或终端设备,只要能够支持SCTP协议,且能够对第一主机501和第二主机502之间传送的SCTP报文进行验证,均可视为防火墙设备503。
图6示出了网络50中第一主机501、第二主机502和防火墙设备503之间交互的流程图。如图6所示,该流程包括如下步骤:
S601:第一主机501向第二主机502发送的INIT报文被防火墙设备503 截获,防火墙设备503作为中间设备将INIT报文透传给第二主机502。
其中,INIT报文中携带第一主机501的IP地址列表、初始标签(init tag) 等信息,第二主机502在收到INIT报文后,将INIT报文中的init tag作为验证标签(verify tag),置于INIT ACK报文中,发给第一主机501。
该步骤中,防火墙设备503不申请连接资源。
该步骤中,防火墙设备503在收到INIT报文后,不申请连接资源,这样就避免了前述的SCTP INIT flood攻击的时候,防火墙申请大量的连接资源,导致防火墙的连接资源被大量无效的连接占用,影响网络正常使用的问题。
S602:第二主机502在收到INIT报文后,回复INIT ACK报文,该INIT ACK 报文被防火墙设备503截获。
其中,INIT ACK报文中也包括一个init tag,这个init tag是第二主机502 为第一主机501分配的,后续第一主机501在该即将建立的SCTP偶联上发送的所有SCTP报文都要携带该init tag。
INIT ACK报文中还包括verify tag,该verify tag是第二主机502从第一主机501发送的INIT报文获取的init tag,是第一主机501为第二主机502分配的,后续第二主机502在该即将建立的SCTP偶联上发送的所有SCTP报文都要携带该verify tag。
此外,INIT ACK报文中还携带了第一主机501的互联网协议IP地址、第一主机501的SCTP端口号、第二主机502的互联网协议IP地址列表和第二主机502的SCTP端口号。
S603:防火墙设备503在收到INIT ACK报文后,从INIT ACK报文中获取如下信息:
第一主机501的互联网协议IP地址;
第一主机501的SCTP端口号;
第一主机501使用的verify tag;
第二主机502的互联网协议IP地址列表;
第二主机502的SCTP端口号;
第二主机502使用的verify tag。
上述信息即为验证后续SCTP报文时使用的验证信息。
实际上,在这一步骤防火墙设备503是可以申请连接资源以记录获取的验证信息的,可以在一定程度上避免SCTP INIT flood攻击对于防火墙性能的影响。但是更为优选的方案是防火墙设备503不在该步骤申请连接资源,以避免伪造的INIT ACK报文,大量伪造的INIT ACK报文也会耗费防火墙设备503 大量的连接资源。
该步骤中,防火墙设备503根据验证信息生成第一状态COOKIE。
其中,防火墙设备503可使用自身保存的加密密钥Key1,比如:防火墙的***启动时间、防火墙的电子标签等,对验证信息进行加密,得到加密后的验证信息。
进一步地,防火墙设备503可使用自身保存的检验密钥Key2,对加密后的验证信息进行计算,得到MAC。
然后,防火墙设备503可将加密后的验证信息、生成的MAC,以及其他指示信息(比如:用于标识第一状态COOKIE是自身生成的特殊字符串、加密后的验证信息的长度的指示信息)等一起,组合成第一状态COOKIE。
图7A示出了一种第一状态COOKIE的结构。
按照从低字节到高字节的顺序,依次包括:
特殊字符串,比如:8字节(bytes),防火墙设备503使用该特殊字符串来表示第一状态COOKIE是自身生成的。特征字符串的作用是用于标识所在的状态COOKIE是否是防火墙设备503生成的。
加密后的验证信息的长度指示信息,该字段长度固定,比如:2bytes;
加密后的验证信息,该字段是防火墙设备503根据自身的加密密钥Key1 对验证信息进行加密后得到的;
MAC,该字段是防火墙设备503使用自身的检验密钥Key2,对加密后的验证信息进行计算后得到的。
图7B示出了另一种第一状态COOKIE的结构。
与图7A所示的结构不同的是,图7B所示的结构中,各字段的顺序与图 7A所示的结构中的各字段相反。
防火墙设备503从INIT ACK报文中获取第二状态COOKIE,防火墙设备 503将第二状态COOKIE和采用附图7A或7B方式生成的第一状态COOKIE 组合成第三状态COOKIE。可选地,防火墙设备503可将生成的第一状态 COOKIE***到第二状态COOKIE的前面或后面等,具体方式不限,只要在后续步骤中,防火墙设备503在收到第一主机501发送的第一COOKIEECHO报文后,能从第一COOKIE ECHO报文中还原第一状态COOKIE和第二状态 COOKIE即可。
比如:如图7A所示,第一状态COOKIE后,即MAC后可为第二状态 COOKIE,第一状态COOKIE和第二状态COOKIE一起组成第三状态COOKIE。
再比如:如图7B所示,第一状态COOKIE前,即特殊字符串前可为第二状态COOKIE,第一状态COOKIE和第二状态COOKIE一起组成第三状态 COOKIE。
防火墙设备503用第三状态COOKIE替换第一INIT ACK报文中的第二状态COOKIE,生成第二INIT ACK报文。
其中,可选地,防火墙设备503可在生成第二INIT ACK报文之前,调整第一INITACK报文的状态COOKIE的长度值、第一INIT ACK报文的长度值、校验和(checksum)等信息。
比如:调整后的状态COOKIE的长度值等于第二状态COOKIE的长度值加上第一状态COOKIE的长度值;
调整后的INIT ACK报文的长度值等于第一INIT ACK报文的长度值加上第一状态COOKIE的长度值;
调整后的INIT ACK报文的IP头中的checksum可根据RFC标准计算;
调整后的INIT ACK报文的SCTP头中的checksum可按照第一INIT ACK 报文中的checksum计算时使用的方法进行计算;防火墙设备503在收到第一 INIT ACK报文后,判断第一INIT ACK报文使用的是哪种checksum的计算方法,然后,按照相同的计算方法,计算得到checksum,将计算得到的checksum 替换原第一INIT ACK报文中的checksum。生成checksum的计算方式可包括: crc32c、adler32和不校验三种可选方式。
S604:防火墙设备503将生成的第二INIT ACK报文发送给第一主机501;
S605:第一主机501在收到第二INIT ACK报文后,回复第一COOKIE ECHO报文时,在该第一COOKIE ECHO报文中将第二INIT ACK报文中的第三状态COOKIE原封带回给防火墙设备503,这里,为了区别于第一主机501 收到的第二INIT ACK报文中的状态COOKIE,将第一主机501发给第二主机 502的第一COOKIE ECHO报文中的状态COOKIE称为“第四状态COOKIE”。
对于第一主机501,由于其无需解析第二INIT ACK报文中的第三状态 COOKIE,因此第一主机501并不知道这个第三状态COOKIE是已经经过了防火墙设备503修改后的状态COOKIE,第一主机501采用目前SCTP协议规定的方法,将第三状态COOKIE原封带回。
步骤S606:防火墙设备503在收到第一COOKIE ECHO报文后,从中获取第四状态COOKIE,对获取的第四状态COOKIE进行验证,验证合法后获取用于验证第一主机501和第二主机502之间的SCTP偶联上传输的后续SCTP 报文时所需的验证信息,申请连接资源并在连接资源中记录验证信息,以及生成第二COOKIE ECHO报文。
防火墙设备503在收到第一COOKIE ECHO报文后,从第一COOKIE ECHO报文中获取第四状态COOKIE。
防火墙设备503根据第四状态COOKIE中的第一状态COOKIE中的特殊字符串,确定第四状态COOKIE是自身发出的。
进而,防火墙设备503读取加密后的验证信息的长度,获取第四状态 COOKIE中加密后的验证信息以及MAC。
防火墙设备503使用步骤S603中生成第三状态COOKIE中的第一状态 COOKIE时所使用的检验密钥Key2,对从第四状态COOKIE中获取的加密后的验证信息进行计算,得到MAC,将得到的MAC与从第四状态COOKIE中获取的MAC进行比较,若一致则确定四状态COOKIE是合法的,即第四状态 COOKIE即为自身之前发出的第三状态COOKIE。
防火墙设备503在验证第四状态COOKIE是合法的之后,使用生成第三状态COOKIE中的第一状态COOKIE时使用的加密密钥Key1,对从第四状态 COOKIE中获取的加密后的验证信息进行解密,得到验证信息。
防火墙设备503可利用生成的第三状态COOKIE中的第一状态COOKIE 各字段组成的特点,确定第四状态COOKIE中的第一状态COOKIE中各个字段的位置。
比如:对于图7A所示的状态COOKIE的结构,防火墙设备503按照目前的SCTP报文的解析方法,是能够准确知道第四状态COOKIE在第一COOKIE ECHO报文中的位置的。由于特殊字符串的长度是固定的,比如8bytes,则防火墙设备503从第四状态COOKIE中获取低8bytes,作为特殊字符串;并且,由于加密后的验证信息的长度这个字段的长度也是规定的,仅通过该字段防火墙设备503也可确定加密后的验证信息的长度,则防火墙设备503可获知MAC 在第四状态COOKIE中的准确位置。
由于MAC后是第二状态COOKIE,因此防火墙设备503也可准确获取第二状态COOKIE。
对于图7B所示的结构,原理类似,区别在于,防火墙设备503是从高字节开始获取特殊字符串等各个字段。上面以图7A和图7B所示的状态COOKIE 的结构为例进行说明。实际上,若采用其他结构,防火墙设备503也是可以从第一COOKIE ECHO报文中获取第一状态COOKIE的,只要采用和生成第一状态COOKIE的方法相对应的方法,即可获取验证信息。
在该步骤中,防火墙设备503可申请连接资源,用于记录该验证信息。
结合步骤S603中,防火墙设备503在步骤S603中不申请连接资源,是为了避免伪造的INIT ACK报文,而在本步骤S606申请连接资源,这是因为:
如果INIT ACK报文是伪造的,则里面携带的verify tag也是伪造的,防火墙设备503在将该伪造的INIT ACK报文发送出去后,即使有主机收到该INIT ACK报文,由于verifytag不正确,也不会回复COOKIE ECHO报文。
而在步骤S606中再申请连接资源,是因为考虑到伪造的INIT ACK报文是不会触发COOKIE ECHO报文,因此,防火墙设备503在收到COOKIE ECHO 报文,且在对COOKIE ECHO报文中的第四状态COOKIE验证通过后,即可认为第一主机501和第二主机502均不是攻击者,此时再申请资源,可有效避免前述的DOS攻击。
进一步地,防火墙设备503从第四状态COOKIE中解析出第二状态 COOKIE,并用第二状态COOKIE替换第一COOKIE ECHO报文中的第四状态 COOKIE,生成第二COOKIE ECHO报文。
其中,防火墙设备503在生成第二COOKIE ECHO报文时,调整状态 COOKIE的长度值、第一COOKIE ECHO报文的长度值、checksum等信息后,生成第二COOKIE ECHO报文。
比如:调整后的状态COOKIE的长度值等于第一COOKIE ECHO报文中的第二状态COOKIE的长度值;
调整后的COOKIE ECHO报文的长度值等于第一COOKIE ECHO报文的长度值减去第一COOKIE ECHO报文中的第一状态COOKIE的长度值;
调整后的COOKIE ECHO报文的IP头中的checksum可根据RFC标准计算;
调整后的COOKIE ECHO报文的SCTP头中的checksum可按照第一 COOKIE ECHO报文报文中的checksum计算时使用的方法进行计算;防火墙设备503在收到第一COOKIE ECHO报文后,判断第一COOKIE ECHO报文使用的是哪种checksum的计算方法,然后,按照相同的计算方法,计算得到 checksum,将计算得到的checksum替换原第一COOKIE ECHO报文中的checksum。生成checksum的计算方式可包括:crc32c、adler32和不校验三种可选方式。
S607:防火墙设备503将生成的第二COOKIE ECHO报文发送给第二主机 502。
S608:第一主机501在收到第二COOKIE ECHO报文后,回应COOKIE ACK报文,第一主机501和第二主机502之间的SCTP偶联建立成功。
以上介绍了本发明实施例提供的网络和SCTP报文处理的方法,下面介绍本发明实施例提供的防火墙设备。
如图8所示,该防火墙设备包括:
接收模块801、发送模块803和处理模块802;其中:
接收模块801,用于截获第一主机向第二主机发送的SCTP INIT报文,INIT 报文用于发起建立第一主机和第二主机之间的SCTP偶联的过程;
发送模块803,用于将INIT报文透传给第二主机;其中,处理模块802 在接收模块801截获INIT报文后,不针对SCTP偶联申请连接资源;
接收模块801,还用于截获第一主机向第二主机发送的第一COOKIE ECHO 报文;
处理模块802,用于从第一COOKIE ECHO报文中获取用于验证SCTP偶联上传输的SCTP报文时所需的验证信息,并在从第一COOKIE ECHO报文中获取验证信息后,申请连接资源,连接资源用于记录从第一COOKIE ECHO报文中获取的验证信息;
处理模块802,还用于在连接资源中记录从第一COOKIE ECHO报文中获取的验证信息。
可选地,接收模块801,还用于在发送模块803将INIT报文透传给第二主机之后,接收模块801截获第一COOKIE ECHO 报文之前,截获第二主机向第一主机发送的第一INIT确认ACK报文,第一INIT ACK报文响应于INIT 报文;
处理模块802,还用于从第一INIT ACK报文中获取验证信息,并根据从第一INITACK报文中获取的验证信息生成第一状态COOKIE;从第一INIT ACK报文中获取第二状态COOKIE,并将第一状态COOKIE和第二状态 COOKIE组合成第三状态COOKIE;将第一INIT ACK报文中的第二状态 COOKIE替换为第三状态COOKIE后生成第二INIT ACK报文;
发送模块803,还用于将第二INIT ACK报文发送给第一主机;
第一COOKIE ECHO报文响应于INIT ACK报文,处理模块802具体用于:
从第一COOKIE ECHO报文中获取第四状态COOKIE;
在对第四状态COOKIE验证合法后,确认第四状态COOKIE与第三状态 COOKIE相同并从第四状态COOKIE中分离出第一状态COOKIE;
根据从第四状态COOKIE中分离出的第一状态COOKIE生成用于验证 SCTP偶联上传输的SCTP报文时所需的验证信息。
可选地,处理模块802,还用于在从第一COOKIE ECHO报文中获取第四状态COOKIE之后,从第四状态COOKIE中分离出第二状态COOKIE;将第一COOKIE ECHO报文中的第四状态COOKIE替换为从第四状态COOKIE中分离出的第二状态COOKIE后,生成第二COOKIE ECHO报文;
发送模块803,还用于将第二COOKIE ECHO报文发送给第二主机。
可选地,验证信息包括:
第一主机的IP地址;
第一主机的SCTP端口号;
第一主机使用的verify tag;
第二主机的IP地址列表;
第二主机的SCTP端口号;
第二主机使用的verify tag。
该防火墙设备的其他可选实现方式可参见前述的防火墙设备503的实现,其中,处理模块802用于实现防火墙设备503的处理操作,比如SCTP报文处理、状态COOKIE生成、状态COOKIE验证等;接收模块801实现防火墙设备503截获SCTP报文的操作;发送模块803用于实现防火墙设备503发送 SCTP报文的操作。
图9为本发明实施例提供的另一种防火墙设备的结构示意图。如图9所示,该防火墙设备包括:
接收器901、发送器903、处理器902、存储器904、总线905和驱动电路 906。
接收器901,用于截获SCTP报文;
发送器903,用于发送SCTP报文;
存储器904,用于存储指令和数据;
在本实施例中发送器903和接收器901可以为网络接口。网络接口可以是有线接口,例如光纤分布式数据接口(Fiber Distributed Data Interface,简称 FDDI)、千兆以太网(Gigabit Ethernet,简称GE)接口;网络接口也可以是无线接口。
处理器902,用于读取存储器904中存储的指令和数据,执行以下操作:
控制接收器901截获第一主机向第二主机发送的流控制传输协议SCTP偶联建立请求INIT报文,INIT报文用于发起建立第一主机和第二主机之间的 SCTP偶联的过程;
控制发送器903将INIT报文透传给第二主机;并且,在接收器901截获 INIT报文后,不针对SCTP偶联申请连接资源;以及
控制接收器901截获第一主机向第二主机发送的第一COOKIE ECHO 报文;
从第一COOKIE ECHO报文中获取用于验证SCTP偶联上传输的SCTP报文时所需的验证信息,并在从第一COOKIE ECHO报文中获取验证信息后,申请连接资源,连接资源用于记录从第一COOKIE ECHO报文中获取的验证信息;
在连接资源中记录从第一COOKIE ECHO报文中获取的验证信息。
其中,所述处理器902可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器902中的硬件的集成逻辑电路或者软件形式的指令完成。这些指令可以通过其中的处理器以配合实现及控制,用于执行本发明实施例揭示的方法。上述处理器还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(application specific integrated circuit)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
其中,上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
其中,驱动电路906,用于为防火墙设备中的各个硬件提供驱动使得各个硬件能够正常工作。
另外,防火墙设备的各个硬件组件通过总线905耦合在一起,其中总线905除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起,在图9中将各种总线都标为总线905。
可选地,在发送器903将INIT报文透传给第二主机之后,接收器901截获第一COOKIE ECHO 报文之前,处理器902还控制接收器901截获第二主机向第一主机发送的第一INIT确认ACK报文,第一INIT ACK报文响应于INIT 报文;
处理器902从第一INIT ACK报文中获取验证信息,并根据从第一INIT ACK报文中获取的验证信息生成第一状态COOKIE;从第一INIT ACK报文中获取第二状态COOKIE,并将第一状态COOKIE和第二状态COOKIE组合成第三状态COOKIE;将第一INIT ACK报文中的第二状态COOKIE替换为第三状态COOKIE后生成第二INIT ACK报文;处理器902控制发送器903将第二 INIT ACK报文发送给第一主机;
第一COOKIE ECHO报文响应于INIT ACK报文,处理器902在获取验证 SCTP偶联上传输的SCTP报文时所需的验证信息,具体可通过如下步骤实现:
从第一COOKIE ECHO报文中获取第四状态COOKIE;
在对第四状态COOKIE验证合法后,从第四状态COOKIE中分离出第一状态COOKIE;
根据从第四状态COOKIE中分离出的第一状态COOKIE生成用于验证 SCTP偶联上传输的SCTP报文时所需的验证信息。
可选地,处理器902在从第一COOKIE ECHO报文中获取第四状态 COOKIE之后,从第四状态COOKIE中分离出第二状态COOKIE;将第一 COOKIE ECHO报文中的第四状态COOKIE替换为从第四状态COOKIE中分离出的第二状态COOKIE后,生成第二COOKIE ECHO报文;并控制发送器 903将第二COOKIE ECHO报文发送给第二主机。
可选地,上述验证信息包括:
第一主机的互联网协议IP地址;
第一主机的SCTP端口号;
第一主机使用的verify tag;
第二主机的IP地址列表;
第二主机的SCTP端口号;
第二主机使用的verify tag。
该防火墙设备的其他可选实现方式可参见前述的防火墙设备503,其中处理器902用于实现防火墙设备503的控制和处理操作,发送器903用于实现防火墙设备503的SCTP报文的发送操作,接收器901用于了实现防火墙设备503 的SCTP报文的截获操作。综上,本发明实施例中,位于第一主机和第二主机中间的防火墙设备在收到INIT报文后,不申请连接资源,这样可在面对SCTP INIT flood攻击的时候,避免申请大量的连接资源,导致防火墙的连接资源被大量无效的连接占用的问题。
进一步地,防火墙设备在收到INIT ACK报文后,也不申请连接资源,可避免伪造的INIT ACK报文的攻击;
进一步地,防火墙设备在收到INIT ACK报文后,获取报文中的验证信息,根据该验证信息生成一个新的状态COOKIE,和INIT ACK报文中原来的状态 COOKIE置于INIT ACK报文中一同发给第一主机,并在收到第一主机发送的 COOKIE ECHO报文后,从收到的COOKIEECHO报文中获取状态COOKIE 进行验证,在验证合法后,获取验证信息并申请连接资源记录获取的验证信息。由于COOKIE ECHO报文是验证合法的,可有效避免攻击,并且,由于COOKIEECHO报文是第一主机将状态COOKIE原封带回的,所以即使在对INIT ACK 报文和INIT报文处理时没有记录验证信息,防火墙设备也能从COOKIE ECHO 报文中获取验证信息,从而可实现对后续SCTP偶联上的SCTP报文的验证。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种防火墙设备,其特征在于,包括:接收模块、发送模块和处理模块;其中:
所述接收模块,用于截获第一主机向第二主机发送的流控制传输协议SCTP偶联建立请求INIT报文,所述INIT报文用于发起建立所述第一主机和所述第二主机之间的SCTP偶联的过程;
所述发送模块,用于将所述INIT报文透传给所述第二主机;其中,所述处理模块在所述接收模块截获所述INIT报文后,不针对所述SCTP偶联申请连接资源;
所述接收模块,还用于截获所述第一主机向所述第二主机发送的第一COOKIE ECHO报文;
所述处理模块,用于从所述第一COOKIE ECHO报文中获取用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息,并在从所述第一COOKIE ECHO报文中获取验证信息后,申请所述连接资源,所述连接资源用于记录从所述第一COOKIE ECHO报文中获取的验证信息;
所述处理模块,还用于在所述连接资源中记录从所述第一COOKIE ECHO报文中获取的验证信息。
2.如权利要求1所述的设备,其特征在于,
所述接收模块,还用于在所述发送模块将所述INIT报文透传给所述第二主机之后,所述接收模块截获所述第一COOKIE ECHO报文之前,截获所述第二主机向所述第一主机发送的第一INIT确认ACK报文,所述第一INIT ACK报文响应于所述INIT报文;
所述处理模块,还用于从所述第一INIT ACK报文中获取验证信息,并根据从所述第一INIT ACK报文中获取的验证信息生成第一状态COOKIE;从所述第一INIT ACK报文中获取第二状态COOKIE,并将所述第一状态COOKIE和所述第二状态COOKIE组合成第三状态COOKIE;将所述第一INIT ACK报文中的所述第二状态COOKIE替换为所述第三状态COOKIE后生成第二INIT ACK报文;
所述发送模块,还用于将所述第二INIT ACK报文发送给所述第一主机;
所述第一COOKIE ECHO报文响应于所述INIT ACK报文,所述处理模块具体用于:
从所述第一COOKIE ECHO报文中获取第四状态COOKIE;
在对所述第四状态COOKIE验证合法后,从所述第四状态COOKIE中分离出所述第一状态COOKIE;
根据从所述第四状态COOKIE中分离出的所述第一状态COOKIE生成用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息。
3.如权利要求2所述的设备,其特征在于,
所述处理模块,还用于在从所述第一COOKIE ECHO报文中获取所述第四状态COOKIE之后,从所述第四状态COOKIE中分离出所述第二状态COOKIE;将所述第一COOKIE ECHO报文中的所述第四状态COOKIE替换为从所述第四状态COOKIE中分离出的所述第二状态COOKIE后,生成第二COOKIE ECHO报文;
所述发送模块,还用于将所述第二COOKIE ECHO报文发送给所述第二主机。
4.如权利要求1~3任一项所述的设备,其特征在于,所述验证信息包括:
所述第一主机的互联网协议IP地址;
所述第一主机的SCTP端口号;
所述第一主机使用的验证标签verify tag;
所述第二主机的互联网协议IP地址列表;
所述第二主机的SCTP端口号;
所述第二主机使用的验证标签verify tag。
5.一种流控制传输协议SCTP报文的处理方法,其特征在于,包括:
防火墙截获第一主机向第二主机发送的SCTP偶联建立请求INIT报文,所述INIT报文用于发起建立所述第一主机和所述第二主机之间的SCTP偶联的过程;
所述防火墙将所述INIT报文透传给所述第二主机,且所述防火墙不针对所述SCTP偶联申请连接资源;
所述防火墙截获所述第一主机向所述第二主机发送的第一COOKIE ECHO报文,所述防火墙从所述第一COOKIE ECHO报文中获取用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息;
所述防火墙在从所述第一COOKIE ECHO报文中获取验证信息后,申请所述连接资源,所述连接资源用于记录从所述第一COOKIE ECHO报文中获取的验证信息;
所述防火墙在所述连接资源中记录从所述第一COOKIE ECHO报文中获取的验证信息。
6.如权利要求5所述的方法,其特征在于,
在所述防火墙将所述INIT报文透传给所述第二主机之后,截获所述第一COOKIE ECHO报文之前,还包括:
所述防火墙截获所述第二主机向所述第一主机发送的第一INIT确认ACK报文,所述第一INIT ACK报文响应于所述INIT报文;
所述防火墙从所述第一INIT ACK报文中获取验证信息,并根据从所述第一INIT ACK报文中获取的验证信息生成第一状态COOKIE;
所述防火墙从所述第一INIT ACK报文中获取第二状态COOKIE,并将所述第一状态COOKIE和所述第二状态COOKIE组合成第三状态COOKIE;
所述防火墙将所述第一INIT ACK报文中的所述第二状态COOKIE替换为所述第三状态COOKIE后生成第二INIT ACK报文;
所述防火墙将所述第二INIT ACK报文发送给所述第一主机;
所述第一COOKIE ECHO报文响应于所述INIT ACK报文,所述防火墙从所述第一COOKIEECHO报文中获取用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息,包括:
所述防火墙从所述第一COOKIE ECHO报文中获取第四状态COOKIE;
所述防火墙在对所述第四状态COOKIE验证合法后,从所述第四状态COOKIE中分离出所述第一状态COOKIE;
所述防火墙根据从所述第四状态COOKIE中分离出的所述第一状态COOKIE,生成用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息。
7.如权利要求6所述的方法,其特征在于,在所述防火墙从所述第一COOKIE ECHO报文中获取所述第四状态COOKIE之后,还包括:
所述防火墙从所述第四状态COOKIE中分离出所述第二状态COOKIE;
所述防火墙将所述第一COOKIE ECHO报文中的所述第四状态COOKIE替换为从所述第四状态COOKIE中分离出的所述第二状态COOKIE后,生成第二COOKIE ECHO报文;
所述防火墙将所述第二COOKIE ECHO报文发送给所述第二主机。
8.如权利要求5~7任一项所述的方法,其特征在于,所述验证信息包括:
所述第一主机的互联网协议IP地址;
所述第一主机的SCTP端口号;
所述第一主机使用的验证标签verify tag;
所述第二主机的互联网协议IP地址列表;
所述第二主机的SCTP端口号;
所述第二主机使用的验证标签verify tag。
9.一种防火墙设备,其特征在于,包括:接收器、发送器、处理器和存储器;
所述接收器,用于截获流控制传输协议SCTP报文;
所述发送器,用于发送SCTP报文;
所述存储器,用于存储指令和数据;
其特征在于,所述处理器,用于读取所述存储器中存储的指令和数据,执行以下操作:
控制所述接收器截获第一主机向第二主机发送的SCTP偶联建立请求INIT报文,所述INIT报文用于发起建立所述第一主机和所述第二主机之间的SCTP偶联的过程;
控制所述发送器将所述INIT报文透传给所述第二主机;并且,在所述接收器截获所述INIT报文后,不针对所述SCTP偶联申请连接资源;以及
控制所述接收器截获所述第一主机向所述第二主机发送的第一COOKIE ECHO报文;
从所述第一COOKIE ECHO报文中获取用于验证SCTP偶联上传输的SCTP报文时所需的验证信息,并在从所述第一COOKIE ECHO报文中获取验证信息后,申请连接资源,所述连接资源用于记录从第一COOKIE ECHO报文中获取的验证信息;
在所述连接资源中记录从第一COOKIE ECHO报文中获取的验证信息。
10.如权利要求9所述的设备,其特征在于,
所述处理器还用于执行如下操作:
在控制所述发送器将所述INIT报文透传给所述第二主机之后,控制所述接收器截获所述第一COOKIE ECHO报文之前,控制所述接收器截获所述第二主机向所述第一主机发送的第一INIT确认ACK报文,所述第一INIT ACK报文响应于所述INIT报文;
从所述第一INIT ACK报文中获取验证信息,并根据从所述第一INIT ACK报文中获取的验证信息生成第一状态COOKIE;从所述第一INIT ACK报文中获取第二状态COOKIE,并将所述第一状态COOKIE和所述第二状态COOKIE组合成第三状态COOKIE;将所述第一INIT ACK报文中的所述第二状态COOKIE替换为所述第三状态COOKIE后生成第二INIT ACK报文;
控制所述发送器将所述第二INIT ACK报文发送给所述第一主机;
所述第一COOKIE ECHO报文响应于所述INIT ACK报文,所述处理器在获取用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息时,具体执行如下操作:
从所述第一COOKIE ECHO报文中获取第四状态COOKIE;
在对所述第四状态COOKIE验证合法后,从所述第四状态COOKIE中分离出所述第一状态COOKIE;
根据从所述第四状态COOKIE中分离出的所述第一状态COOKIE生成用于验证所述SCTP偶联上传输的SCTP报文时所需的验证信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610093726.3A CN107104919B (zh) | 2016-02-19 | 2016-02-19 | 防火墙设备、流控制传输协议sctp报文的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610093726.3A CN107104919B (zh) | 2016-02-19 | 2016-02-19 | 防火墙设备、流控制传输协议sctp报文的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107104919A CN107104919A (zh) | 2017-08-29 |
CN107104919B true CN107104919B (zh) | 2020-06-02 |
Family
ID=59658627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610093726.3A Active CN107104919B (zh) | 2016-02-19 | 2016-02-19 | 防火墙设备、流控制传输协议sctp报文的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107104919B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108134715A (zh) * | 2017-12-25 | 2018-06-08 | 浪潮金融信息技术有限公司 | 基于scp协议的通信终端呼叫处理方法 |
CN107896233B (zh) * | 2017-12-28 | 2021-09-10 | 广州汇智通信技术有限公司 | 一种sctp流数据管理方法、***及设备 |
CN108259518A (zh) * | 2018-04-24 | 2018-07-06 | 北京知道创宇信息技术有限公司 | 一种网络连接认证方法、装置、电子设备及存储介质 |
CN114710337B (zh) * | 2022-03-24 | 2022-12-13 | 北京旷通科技有限责任公司 | 基于sctp的信令防火墙处理方法、装置、***、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630248A (zh) * | 2003-12-19 | 2005-06-22 | 北京航空航天大学 | 基于连接请求验证的SYN flooding攻击防御方法 |
WO2005112384A1 (en) * | 2004-05-19 | 2005-11-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for handling initiation requests |
CN101436958A (zh) * | 2007-11-16 | 2009-05-20 | 太极计算机股份有限公司 | 抵御拒绝服务攻击的方法 |
CN101834833A (zh) * | 2009-03-13 | 2010-09-15 | 丛林网络公司 | 对分布式拒绝服务攻击的服务器防护 |
-
2016
- 2016-02-19 CN CN201610093726.3A patent/CN107104919B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630248A (zh) * | 2003-12-19 | 2005-06-22 | 北京航空航天大学 | 基于连接请求验证的SYN flooding攻击防御方法 |
WO2005112384A1 (en) * | 2004-05-19 | 2005-11-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for handling initiation requests |
CN101436958A (zh) * | 2007-11-16 | 2009-05-20 | 太极计算机股份有限公司 | 抵御拒绝服务攻击的方法 |
CN101834833A (zh) * | 2009-03-13 | 2010-09-15 | 丛林网络公司 | 对分布式拒绝服务攻击的服务器防护 |
Non-Patent Citations (1)
Title |
---|
流控制传输协议安全关键技术研究;陈超然;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130615(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107104919A (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110771118B (zh) | 一种具有tcp移动性选项的无缝移动性和会话连续性 | |
Kumar et al. | Implementation and analysis of QUIC for MQTT | |
US11570098B2 (en) | Systems, apparatuses and methods for cooperating routers | |
CN108293058B (zh) | 使用安全信令建立通信事件 | |
EP3202086B1 (en) | State replication of virtual network function instances | |
US6662223B1 (en) | Protocol to coordinate network end points to measure network latency | |
EP2850776B1 (en) | Tls abbreviated session identifier protocol | |
US9813385B2 (en) | Method and system for load balancing | |
CN107104919B (zh) | 防火墙设备、流控制传输协议sctp报文的处理方法 | |
US9350711B2 (en) | Data transmission method, system, and apparatus | |
JP6178932B2 (ja) | パケット伝送ネットワークにおけるハンドシェイクを制御するための方法及び装置 | |
CN107135190B (zh) | 基于传输层安全连接的数据流量归属识别方法及装置 | |
CN105791307A (zh) | 网络时间协议报文安全认证方法及装置 | |
Schönwälder et al. | On the Impact of Security Protocols on the Performance of SNMP | |
EP3539235B1 (en) | Systems, apparatuses and methods for cooperating routers | |
WO2024001654A1 (zh) | 验证方法、终端设备、网络设备及介质 | |
EP3414877B1 (en) | Technique for transport protocol selection and setup of a connection between a client and a server | |
US20230171191A1 (en) | Systems, Apparatuses and Methods for Cooperating Routers | |
Seggelmann | Sctp: Strategies to secure end-to-end communication | |
KR101730405B1 (ko) | 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티 | |
CN114157707B (zh) | 一种通信连接方法、装置及*** | |
WO2020133603A1 (zh) | 一种dr模式下的防护方法和装置 | |
KR101888952B1 (ko) | 클라이언트 및 클라이언트의 동작 방법 | |
CN114500021B (zh) | 一种攻击检测方法、装置、电子设备及存储介质 | |
Gaminara | Performance and Security Evaluation of TLS, DTLS and QUIC Security Protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |