一种通信连接建立方法及计算设备与流程

文档序号:39360825发布日期:2024-09-13 11:12阅读:14来源:国知局
一种通信连接建立方法及计算设备与流程

本技术实施例涉及通信,尤其涉及一种通信连接建立方法及计算设备。


背景技术:

1、客户端与服务端之间存在数据传输需求时,需要基于传输控制协议(transmission control protocol,tcp)三次握手过程建立通信连接后,以进行可靠的数据传输。tcp三次握手过程中,若服务端已接收到了客户端的建立连接请求,但是还未成功建立通信连接时,服务端会设置一个半连接状态用于维护客户端与服务器之间的连接建立过程。这种半连接状态会消耗服务端的资源。

2、目前一些恶意攻击者会利用这种情况,大量发送建立连接请求后不执行后续的过程,使得服务端设置大量的半连接状态,造成资源的大量消耗,甚至导致服务端的崩溃。这种恶意攻击方式又称为tcp半连接攻击。


技术实现思路

1、本技术实施例提供一种通信连接建立方法及计算设备,能够有效防范tcp半连接攻击。

2、第一方面,本技术实施例提供一种通信连接建立方法,应用于服务端,该方法包括:接收授权端发送的验证信息;验证信息用于验证客户端的第一次握手报文的合法性;接收客户端发送的第一次握手报文;第一次握手报文用于请求建立通信连接;基于验证信息对第一次握手报文进行验证;在第一次握手报文通过验证的情况下,向客户端发送第二次握手报文;接收客户端发送的第三次握手报文,所述第三次握手报文是客户端对所述第二次握手报文的响应;建立与客户端的通信连接。

3、本技术实施例的技术方案通过设置授权端,客户端在向服务端发起请求以建立通信连接之前,先向授权端发送请求消息以使得授权端验证客户端的身份合法性。在确定客户端合法的情况下,授权端向服务端发送验证信息,该验证信息可以用于验证客户端请求建立连接时,发送的第一次握手报文。这样,只有在第一次握手报文验证通过后,服务端则继续执行后续的过程以建立通信连接。可以看出,本技术实施例的技术方案通过引入授权端,将验证客户端合法性的过程提到了接收第一次握手报文之前,不会对第一次握手报文进行改写。通过授权端对客户端的合法性进行验证,在验证客户端合法后生成验证信息发送至服务端,使得服务端在接收到第一次握手报文后再次进行验证,从而保证客户端发送的是正常的建立连接请求,从而有效防范tcp半连接攻击。

4、一种可能的实现方式中,上述方法还包括:在第一次握手报文未通过验证的情况下,丢弃第一次握手报文。可以理解,验证不通过,则说明该第一次握手报文不合法,服务端可以无需响应第一次握手报文,不需要花费资源设置半连接状态,从而有效避免tcp半连接攻击。

5、另一种可能的实现方式中,验证信息包括以下至少一项:源地址、源端口、目的端口、第一次握手报文的序列号和预期请求时间段;第一次握手报文通过验证的情况包括以下至少一项:第一次握手报文的发送地址与验证信息中的源地址一致;第一次握手报文携带的源端口与验证信息中的源端口一致;第一次握手报文携带的目的端口与验证信息中的目的端口一致;第一次握手报文携带的序列号与验证信息中的序列号一致;接收到第一次握手报文的时间位于验证信息中的预期请求时间段内。可以看出,这种通过对比的验证方式计算复杂度低,对服务端的算力需求不高,可以使得服务端将更多的算力资源分配到服务的提供上,保证用户的服务使用体验。

6、又一种可能的实现方式中,方法还包括:接收授权端发送的授权有效期;授权有效期用于指示验证信息的生效时间;基于验证信息对第一次握手报文进行验证,包括:在授权有效期内,基于验证信息对第一次握手报文进行验证。授权端通过向服务端发送验证信息的授权有效期,使得服务端确定验证信息的有效时长,在授权有效期过期后,则服务端则可以删除该验证信息,以保证安全,且可以节省服务端的空间占用。

7、又一种可能的实现方式中,第一次握手报文、第二次握手报文以及第三次握手报文为符合传输控制协议tcp的规定格式的报文。与相关技术相比,本方案不会对三次握手过程中报文的内容进行改写,使得绝大多数设备都可以使用该本方案以建立通信连接,对网络的兼容性较好,应用场景更加广泛。

8、第二方面,本技术实施例提供一种通信连接建立方法,应用于授权端,该方法包括:接收客户端发送的请求消息;请求消息用于请求验证客户端的身份合法性;在确定客户端的身份合法的情况下,向服务端发送验证信息;验证信息用于服务端验证客户端的第一次握手报文的合法性,第一次握手报文用于客户端请求与服务端建立通信连接。

9、一种可能的实现方式中,在确定客户端的身份合法的情况下,方法还包括:向客户端发送指示客户端身份合法的响应消息;响应消息用于触发客户端向服务端发送第一次握手报文。

10、另一种可能的实现方式中,请求消息包括:至少一个字段以及掩码信息;掩码信息用于指示至少一个字段中作为验证信息的字段;向服务端发送验证信息,包括:基于掩码信息所指示的字段,生成验证信息;向服务端发送验证信息。

11、第三方面,本技术实施例提供一种通信连接建立方法,应用于客户端,方法包括:向授权端发送请求消息;请求消息用于请求验证客户端的身份合法性;在客户端合法的情况下,触发授权端向服务端发送验证信息;验证信息用于服务端验证客户端的第一次握手报文的合法性;第一次握手报文用于客户端请求与服务端建立通信连接;向服务端发送第一次握手报文;接收服务端发送的第二次握手报文;第二次握手报文是服务端对第一握手报文的响应;响应于第二次握手报文,向服务端发送第三次握手报文;建立与服务器的通信连接。

12、一种可能的实现方式中,在向授权端发送请求消息之后,方法还包括:接收授权端的响应消息;向服务端发送第一次握手报文,包括;在响应消息指示客户端身份合法的情况下,向服务器发送第一次握手报文。

13、另一种可能的实现方式中,在向服务端发送第一次握手报文之后,方法还包括:在预设时长后未接收到服务端发送的第二次握手报文时,重新向服务端发送第一次握手报文。

14、第四方面,本技术实施例提供一种建立装置,该装置应用于服务端,包括:接收模块、验证模块、发送模块和建立模块。接收模块用于,接收授权端发送的验证信息;验证信息用于验证客户端的第一次握手报文的合法性;接收模块还用于,接收客户端发送的第一次握手报文;第一次握手报文用于请求建立通信连接;验证模块用于,基于验证信息对第一次握手报文进行验证;发送模块用于,在第一次握手报文通过验证的情况下,向客户端发送第二次握手报文;第二次握手报文是对第一握手报文的响应;接收模块还用于,接收客户端响应于第二次握手报文发送的第三次握手报文,第三次握手报文是客户端对第二次握手报文的响应;建立模块用于,建立与客户端的通信连接。

15、一种可能的实现方式中,上述装置还包括:丢弃模块。丢弃模块用于,在第一次握手报文未通过验证的情况下,丢弃第一次握手报文。

16、另一种可能的实现方式中,验证信息包括以下至少一项:源地址、源端口、目的端口、第一次握手报文的序列号和预期请求时间段;第一次握手报文通过验证的情况包括以下至少一项:第一次握手报文的发送地址与验证信息中的源地址一致;第一次握手报文携带的源端口与验证信息中的源端口一致;第一次握手报文携带的目的端口与验证信息中的目的端口一致;第一次握手报文携带的序列号与验证信息中的序列号一致;接收到第一次握手报文的时间位于验证信息中的预期请求时间段内。

17、又一种可能的实现方式中,接收模块还用于,接收授权端发送的授权有效期;授权有效期用于指示验证信息的生效时间;验证模块具体用于,在授权有效期内,基于验证信息对第一次握手报文进行验证。

18、又一种可能的实现方式中,第一次握手报文、第二次握手报文以及第三次握手报文为符合传输控制协议tcp的规定格式的报文。

19、第五方面,本技术实施例提供一种建立装置,该装置应用于授权端,包括:接收模块和发送模块。接收模块用于,接收客户端发送的请求消息;请求消息用于请求验证客户端的身份合法性;发送模块用于,在确定客户端的身份合法的情况下,向服务端发送验证信息;验证信息用于服务端验证客户端的第一次握手报文的合法性,第一次握手报文用于客户端请求与服务端建立通信连接。

20、一种可能的实现方式中,发送模块还用于,向客户端发送指示客户端身份合法的响应消息;响应消息用于触发客户端向服务端发送第一次握手报文。

21、另一种可能的实现方式中,请求消息包括:至少一个字段以及掩码信息;掩码信息用于指示至少一个字段中作为验证信息的字段;发送模块具体用于,基于掩码信息所指示的字段,生成验证信息;向服务端发送验证信息。

22、第六方面,本技术实施例提供一种建立装置,该装置应用于客户端,包括:发送模块、接收模块和建立模块。发送模块用于,向授权端发送请求消息;请求消息用于请求验证客户端的身份合法性;在客户端合法的情况下,触发授权端向服务端发送验证信息;验证信息用于服务端验证客户端的第一次握手报文的合法性;第一次握手报文用于客户端请求与服务端建立通信连接;发送模块还用于,向服务端发送第一次握手报文;接收模块用于,接收服务端发送的第二次握手报文;第二次握手报文是服务端对第一握手报文的响应;接收模块还用于,响应于第二次握手报文,向服务端发送第三次握手报文;建立模块用于,建立与服务器的通信连接。

23、一种可能的实现方式中,接收模块还用于,接收授权端的响应消息;发送模块具体用于,在响应消息指示客户端身份合法的情况下,向服务器发送第一次握手报文。

24、另一种可能的实现方式中,发送模块还用于,在预设时长后未接收到服务端发送的第二次握手报文时,重新向服务端发送第一次握手报文。

25、第七方面,本技术实施例提供一种计算设备,该计算设备包括处理器和存储器;处理器与存储器耦合;存储器用于存储计算机指令,计算机指令由处理器加载并执行以使计算设备实现上述第一方面到第三方面的方法。

26、第八方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备实现上述第一方面到第三方面的方法。

27、第九方面,本技术实施例提供一种计算机程序产品,当该计算机程序产品在计算设备上运行时,使得计算设备执行上述第一方面描述的相关方法的步骤,以实现上述第一方面到第三方面的方法。

28、上述第二方面至第九方面的有益效果可以参考第一方面的对应描述,不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1