首页 / 专利库 / 计算机网络 / 服务器 / 通讯安全防护系统、方法及消息缓存节点

通讯安全防护系统、方法及消息缓存节点

阅读:90发布:2021-06-10

专利汇可以提供通讯安全防护系统、方法及消息缓存节点专利检索,专利查询,专利分析的服务。并且本 申请 提供了一种通讯安全防护方案,该方案中客户端设备和服务端设备之间通过前置 节点 、消息缓存节点和后置节点进行通讯,两者之间不直接通讯且物理隔离,攻击 请求 无法直接达到服务端设备,仅有前置节点存在被攻击的 风 险,客户端设备与服务端设备之间的连接实际上是由后置节点代理完成,并且消息缓存节点能够管理客户端设备与服务端设备的会话信息,保证数据包能够正确地从发送者达到接收者,因此,当任一前置节点收到攻击时,可以由其它前置节点完成后续通讯,不会存在因 服务器 宕机造成无法提供服务的问题。,下面是通讯安全防护系统、方法及消息缓存节点专利的具体信息内容。

1.一种通讯安全防护方法,包括:
消息缓存节点从前置节点获取与第一数据包相关的第二数据包,其中,所述第二数据包包括通讯数据和关于客户端设备的第一连接信息,所述通讯数据来自于所述客户端设备向所述前置节点所发送的第一数据包;
消息缓存节点根据所述第一连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息;
消息缓存节点根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点,以使所述后置节点根据所述第二连接信息将所述通讯数据发送至服务端设备。
2.根据权利要求1所述的方法,其中,消息缓存节点根据所述第一连接信息获取关于本次通讯的会话信息,包括:
消息缓存节点使用所述第一连接信息查询是否存在包含所述第一连接信息的、关于本次通讯的会话信息;若存在,则获取关于本次通讯的会话信息;若不存在,则生成关于本次通讯的会话信息。
3.根据权利要求1所述的方法,其中,该方法还包括:
消息缓存节点保存所述通讯数据和所述会话信息,并在完成保存之后,通知所述后置节点获取所述通讯数据。
4.根据权利要求3所述的方法,其中,消息缓存节点根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点,包括:
消息缓存节点接收所述后置节点在获得通知之后发送的数据获取请求
在接收到所述数据获取请求后,消息缓存节点根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点。
5.根据权利要求1至4中任一项所述的方法,其中,该方法还包括:
消息缓存节点从后置节点获取与第四数据包相关的第五数据包,其中,所述第五数据包包括返回数据和关于服务端设备的第二连接信息,所述返回数据由所述服务端设备基于所述通讯数据生成,且来自于所述服务端设备向所述后置节点所发送的第四数据包;
消息缓存节点根据所述第二连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第二连接信息和所述服务端设备对应的客户端设备的第一连接信息;
消息缓存节点根据所述返回数据和所述第一连接信息生成第六数据包,并将所述第六数据包发送至前置节点,以使前置节点根据所述第一连接信息将所述返回数据发送至客户端设备。
6.根据权利要求5所述的方法,其中,消息缓存节点根据所述第二连接信息获取关于本次通讯的会话信息,包括:
消息缓存节点使用所述第二连接信息查询是否存在包含所述第二连接信息的、关于本次通讯的会话信息;若存在,则获取关于本次通讯的会话信息;若不存在,则生成关于本次通讯的会话信息。
7.根据权利要求5所述的方法,其中,该方法还包括:
消息缓存节点保存所述返回数据和所述会话信息,并在完成保存之后,通知所述前置节点获取所述返回数据。
8.根据权利要求7所述的方法,其中,消息缓存节点根据所述返回数据和所述第一连接信息生成第六数据包,并将所述第六数据包发送至前置节点,包括:
消息缓存节点接收所述前置节点在获得通知之后发送的数据获取请求;
在接收到所述数据获取请求后,消息缓存节点根据所述返回数据和所述第一连接信息生成第六数据包,并将所述第六数据包发送至前置节点。
9.一种用于通讯安全防护的消息缓存节点,包括:
数据包接收模,用于从前置节点获取与第一数据包相关的第二数据包,其中,所述第二数据包包括通讯数据和关于客户端设备的第一连接信息,所述通讯数据来自于所述客户端设备向前置节点所发送的第一数据包;
会话管理模块,用于根据所述第一连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息;
数据包发送模块,用于根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点,以使所述后置节点根据所述第二连接信息将所述通讯数据发送至服务端设备。
10.根据权利要求9所述的消息缓存节点,其中,所述数据包接收模块,还用于从后置节点获取与第四数据包相关的第五数据包,其中,所述第五数据包包括返回数据和关于服务端设备的第二连接信息,所述返回数据由所述服务端设备基于所述通讯数据生成,且来自于所述服务端设备向所述后置节点所发送的第四数据包;
所述会话管理模块,还用于根据所述第二连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第二连接信息和所述服务端设备对应的客户端设备的第一连接信息;
所述数据包发送模块,还用于根据所述返回数据和所述第一连接信息生成第六数据包,并将所述第六数据包发送至前置节点,以使前置节点根据所述第一连接信息将所述返回数据发送至客户端设备。
11.一种用于通讯安全防护的消息缓存节点,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至8任一项所述的方法。
12.一种通讯安全防护系统,包括前置节点、消息缓存节点和后置节点;
所述前置节点,用于接收由客户端设备发送的包含通讯数据的第一数据包;注册关于所述客户端设备的第一连接信息;以及根据所述第一连接信息和所述通讯数据生成第二数据包,并将所述第二数据包发送至消息缓存节点;
所述消息缓存节点,用于接收由前置节点发送的第二数据包;根据所述第一连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息;以及根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点;
所述后置节点,用于从所述消息缓存节点获取第三数据包;注册所述第二连接信息;以及根据所述第二连接信息,向所述服务端设备发送所述通讯数据。

说明书全文

通讯安全防护系统、方法及消息缓存节点

技术领域

[0001] 本申请涉及信息技术领域,尤其涉及一种实现通讯安全防护的系统、方法及消息缓存节点。

背景技术

[0002] 图1示出了传统的DDoS(Distributed Denial of Service,分布式拒绝服务)防护方案的原理,在来自客户端的请求,首先通过ISP(Internet Service Provider,互联网服务提供商)的网络被发送至防护节点,由防护节点进行流量清洗,对这些数据中可能是DDoS攻击的请求进行过滤。完成流量清洗后,将请求发送给真实的服务器。此种防护方案存在如下问题:请求可以直接达到服务器,服务器将会直接暴露给客户端设备,当防护节点的流量清洗存在漏洞或者无法提供服务时,DDoS攻击请求将直接达到服务器,引起服务器宕机。发明内容
[0003] 本申请实施例提供了一种通讯安全防护系统、方法及消息缓存节点,以至少解决攻击请求可以直接达到服务端设备的问题。
[0004] 本申请实施例提供的一种通讯安全防护方法,包括:
[0005] 消息缓存节点从前置节点获取与第一数据包相关的第二数据包,其中,所述第二数据包包括通讯数据和关于客户端设备的第一连接信息,所述通讯数据来自于所述客户端设备向所述前置节点所发送的第一数据包;
[0006] 消息缓存节点根据所述第一连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息;
[0007] 消息缓存节点根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点,以使所述后置节点根据所述第二连接信息将所述通讯数据发送至服务端设备。
[0008] 此外,本申请实施例提供了一种用于通讯安全防护的消息缓存节点,包括:
[0009] 数据包接收模,用于从前置节点获取与第一数据包相关的第二数据包,其中,所述第二数据包包括通讯数据和关于客户端设备的第一连接信息,所述通讯数据来自于所述客户端设备向所述前置节点所发送的第一数据包;
[0010] 会话管理模块,用于根据所述第一连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息;
[0011] 数据包发送模块,用于根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点,以使所述后置节点根据所述第二连接信息将所述通讯数据发送至服务端设备。
[0012] 此外,本申请实施例还提供了一种用于通讯安全防护的消息缓存节点,包括:
[0013] 处理器;以及
[0014] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述的通讯安全防护方法。
[0015] 本申请实施例提供了一种通讯安全防护系统,包括前置节点、消息缓存节点和后置节点;
[0016] 所述前置节点,用于接收由客户端设备发送的包含通讯数据的第一数据包;注册关于所述客户端设备的第一连接信息;以及根据所述第一连接信息和所述通讯数据生成第二数据包,并将所述第二数据包发送至消息缓存节点;
[0017] 所述消息缓存节点,用于接收由前置节点发送的第二数据包;根据所述第一连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息;以及根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点;
[0018] 所述后置节点,用于从所述消息缓存节点获取第三数据包;注册所述第二连接信息;以及根据所述第二连接信息,向所述服务端设备发送所述通讯数据。
[0019] 本申请实施例提供的方案中,客户端设备和服务端设备之间通过前置节点、消息缓存节点和后置节点进行通讯,两者之间不直接通讯且物理隔离,攻击请求无法直接达到服务端设备,仅有前置节点存在被攻击的险,客户端设备与服务端设备之间的连接实际上是由后置节点代理完成,并且消息缓存节点能够管理客户端设备与服务端设备的会话信息,保证数据包能够正确地从发送者达到接收者,因此,当任一前置节点收到攻击时,可以由其它前置节点完成后续通讯,不会存在因服务器宕机造成无法提供服务的问题。附图说明
[0020] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0021] 图1为现有技术中DDoS防护方案的原理图;
[0022] 图2为本申请实施例中提供的通讯安全防护系统的交互示意图;
[0023] 图3为本申请实施例中一种通讯安全防护方法的处理流程图
[0024] 图4为本申请实施例提供的一种消息缓存节点的结构示意图;
[0025] 图5为本申请实施例提供的一种消息缓存节点的结构示意图;
[0026] 图6为本申请实施例提供的一种后置节点的结构示意图;
[0027] 图7为本申请实施例提供的另一种消息缓存节点的结构示意图;
[0028] 附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

[0029] 下面结合附图对本申请作进一步详细描述。
[0030] 在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0031] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
[0032] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0033] 图2示出了本申请实施例提供的一种通讯安全防护系统的交互示意图,在本申请实施例中将由客户端设备向服务端设备传输数据的方向设定为接收侧,而由服务端设备向客户端设备传输数据的方向设定为发送侧。
[0034] 其中,前置节点200用于接收由客户端设备发送的包含通讯数据的第一数据包;注册关于所述客户端设备的第一连接信息;以及根据所述第一连接信息和所述通讯数据生成第二数据包,并将所述第二数据包发送至消息缓存节点。
[0035] 消息缓存节点300用于接收由前置节点发送的第二数据包;根据所述第一连接信息获取关于本次通讯的会话信息,其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息;以及根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点。
[0036] 后置节点400用于从所述消息缓存节点获取第三数据包;注册所述第二连接信息;以及根据所述第二连接信息,向所述服务端设备发送所述通讯数据。
[0037] 在本申请的一种实施例中,在客户端设备100向服务端设备500发送请求的过程中,即接收侧的交互流程包括以下步骤:
[0038] 步骤S201,客户端设备100发起请求,向前置节点200发送数据包。
[0039] 步骤S202,前置节点200对数据包进行处理之后,将数据包中的通讯数据发送至消息缓存节点300进行保存,通讯数据即为请求中不包含连接、通讯协议等相关的必要信息之外的、与请求的实际内容相关的数据。
[0040] 步骤S203,后置节点400检测到消息缓存节点300中存在新的返回数据时,读取新的通讯数据。
[0041] 步骤S204,后置节点400将获取到的通讯数据发送给服务端设备500,完成请求的发送,等待服务端设备返回根据请求内容(即通讯数据)生成的应答内容(即返回数据)。
[0042] 在此过程中,前置节点200中保存有关于客户端设备的第一连接信息,从而确定通讯数据的发送者,后置节点400中保存有关于服务端设备的第二连接信息,从而确定通讯数据的接收者,消息缓存节点300中保存有会话信息(Session),会话信息中包含第一连接信息和第二连接信息之间的一一映射关系,从而可以确定其缓存的通讯数据的接收者和发送者。
[0043] 在服务端设备500向客户端设备100返回应答的过程中,即发送侧的交互流程包括以下步骤:
[0044] 步骤S205,后置节点400接收服务端设备500发送返回数据。
[0045] 步骤S206,后置节点400将返回数据发送至消息缓存节点300进行保存。
[0046] 步骤S207,前置节点200检测到消息缓存节点300中存在新返回数据时,读取新的返回数据。
[0047] 步骤S208,前置节点200将获取到的返回数据发送给客户端设备500,完成返回应答的过程。
[0048] 在此过程中,后置节点400根据保存的关于服务端设备的第二连接信息来确定返回数据的发送者,前置节点根据保存的关于客户端设备的第一连接信息来确定返回数据的接收者。
[0049] 这些设备之间的拓扑关系以及交互流程可知:
[0050] 1)客户端设备和服务端设备无直接通讯且物理隔离。
[0051] 2)消息缓存节点只对前置节点和后置节点可见,对客户端设备和服务端设备不可见。
[0052] 3)只有前置节点存在被攻击风险。
[0053] 4)前置节点、后置节点和消息缓存节点可以为单个设备或者集群。
[0054] 5)由于客户端设备和服务端设备不直接通讯,客户端设备的连接实际上是由后置节点代理完成。因此当前置节点遭受攻击的时候,攻击请求无法达到服务端设备,不会存在因为服务器宕机或者网络不可达引起连接断线问题,即前置节点的状态不影响后置节点的状态。
[0055] 图3示出了本申请实施例提供了一种通讯安全防护方法,该方法实现于消息缓存节点300。在接收侧的交互过程中,至少包括如下处理步骤:
[0056] 步骤S301,消息缓存节点从前置节点获取与第一数据包相关的第二数据包。其中,所述第二数据包包括通讯数据和关于客户端设备的第一连接信息,所述通讯数据来自于所述客户端设备向所述前置节点发送的第一数据包。
[0057] 为实现前述的通讯安全防护方法,前置节点会实现的处理如下:在接收侧的交互过程中,前置节点首先接收由客户端设备发送的第一数据包。其中,第一数据包是关于请求的数据报文的相关内容,其中,包含了与请求的实际内容相关的数据(即通讯数据),以及其它与连接、通讯协议等相关的必要信息。其中,通讯数据需要被传输至服务端设备,以返回请求的应答。
[0058] 接收到第一数据包之后,前置节点对第一数据包进行缓存。而后可以注册关于客户端设备的第一连接信息。关于客户端设备的第一连接信息是指用于确定数据包发送者的相关信息,例如客户端设备的IP地址,客户端设备的源端口等等。
[0059] 前置节点注册第一连接信息的处理过程包括:查询关于客户端设备的当前连接信息。若查询到关于客户端设备的当前连接信息,则以第一连接信息更新当前连接信息;若未查询到关于客户端设备的当前连接信息,则将第一连接信息保存为当前连接信息。即先查看是否保存有关于客户端设备的当前连接信息,如果关于客户端的当前连接信息已经存在,则更新当前连接信息,如果关于客户端的当前连接信息不存在,则新建当前连接信息,并进行保存。
[0060] 然后,前置节点将注册好的关于客户端设备的连接信息与客户端设备发送来的通讯数据合并在一起,生成新的第二数据包,发送给消息缓存节点300。
[0061] 在本申请的一种实施例中,前置节点还可以在接收并缓存第一数据包后,对第一数据包进行检测,确定第一数据包通过检测之后,才对其进行后续处理。若未通过检测,则丢弃数据包。在实际场景中,检测可以基于第一数据包的相关特征,例如数据结构、数据的格式、内容中是否包含特定信息等。
[0062] 步骤S302,消息缓存节点根据所述第一连接信息获取关于本次通讯的会话信息。其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息,两者存在映射关系,从而可以确定需要传输的通讯数据的接收者和发送者,确保通讯正常进行。在本申请的一种实施例中,消息缓存节点获取会话信息的过程包括:使用第一连接信息查询是否存在包含第一连接信息的、关于本次通讯的会话信息;若存在,则获取关于本次通讯的会话信息;若不存在,则生成关于本次通讯的会话信息。
[0063] 步骤S303,消息缓存节点根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点,以使所述后置节点根据所述第二连接信息将所述通讯数据发送至服务端设备。
[0064] 其中,第二连接信息可以来自于会话信息,由于第二数据包中携带有通讯数据的发送者的信息(即第一连接信息),因此通过会话信息可以确定通讯数据的接收者的信息(即第二连接信息),由此保证通讯数据可以正确到达服务端设备。
[0065] 本申请的一种实施例中,消息缓存节点向后置节点提供第三数据包的方式可以采用通知的方式,即消息缓存节点会保存所述通讯数据和所述会话信息,并在完成保存之后,通知所述后置节点获取所述通讯数据。后置节点在收到通知之后,会发送数据获取请求,由此消息缓存节点可以接收到所述后置节点在获得通知之后发送的数据获取请求,并在接收到所述数据获取请求后,根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点。
[0066] 为实现前述的通讯安全防护方法,后置节点会实现的处理如下:在接收侧的交互过程中,后置节点会查询消息缓存节点是否存在新的通讯数据,例如采用轮询的方式,如果查询到存在收到了来自消息缓存节点的通知,若轮询到有新的通知,则发送数据获取请求,以从消息缓存节点接收包含通讯数据的第三数据包。
[0067] 然后后置节点会对第二连接信息进行注册,注册方式与前置节点中注册第一连接信息的方式类似,首先查询关于服务端设备的当前连接信息;若查询到关于服务端设备的当前连接信息,则以第二连接信息更新当前连接信息;若未查询到关于服务端设备的连接信息,则将第二连接信息保存为当前连接信息。即先查看是否保存有关于服务端设备的连接信息,如果关于服务端设备的连接信息已经存在,则更新连接信息,如果关于服务端设备的连接信息不存在,则新建立连接信息,并进行保存。
[0068] 后置节点还会根据第二连接信息确定需要发送的服务端设备,然后向服务端设备发送通讯数据。在发送时,可以将第三数据包中的连接信息剥离,得到通讯数据,并将通讯数据封装为数据包发送给服务端设备,完成接收侧的整个交互过程。
[0069] 服务端设备500在获取到表示请求内容的通讯数据之后,进行相应的处理,生成需要返回的、关于请求的应答,同样以数据包的形式返回给后置节点,并经由消息缓存节点、前置节点返回至客户端设备,该数据交互的过程即为发送侧的交互过程。与第一数据包类似,作为应答的第四数据包也包含了与应答的实际内容相关的数据(即返回数据),以及其它与连接、通讯协议等相关的必要信息。
[0070] 由此,本申请实施例提供的一种通讯安全防护方法中,所述消息缓存节点还可以从后置节点获取与第四数据包相关的第五数据包。其中,所述第五数据包包括返回数据和关于服务端设备的第二连接信息,所述返回数据由所述服务端设备基于所述通讯数据生成,且来自于所述服务端设备向所述后置节点所发送的第四数据包。
[0071] 为实现上述通讯安全防护方法,后置节点需要获取服务端设备发送的第四数据包。第四数据包中至少包含了基于通讯数据的返回数据,并且基于数据包中的其它内容查询关于服务端设备的当前连接信息,获取第二连接信息。然后将返回数据和第二连接信息混合后,生成第五数据包,并将第五数据包发送至消息缓存节点。
[0072] 而后,消息缓存节点根据所述第二连接信息获取关于本次通讯的会话信息。其中,所述会话信息至少包含第二连接信息和所述服务端设备对应的客户端设备的第一连接信息,两者存在映射关系,从而可以确定需要传输的通讯数据的接收者和发送者,确保通讯正常进行。在本申请的一种实施例中,获取会话信息的过程包括:使用第二连接信息查询是否存在包含第二连接信息的、关于本次通讯的会话信息;若存在,则获取关于本次通讯的会话信息;若不存在,则生成关于本次通讯的会话信息。
[0073] 消息缓存节点根据所述返回数据和所述第一连接信息生成第六数据包,并将所述第六数据包发送至前置节点,以使前置节点根据所述第一连接信息将所述返回数据发送至客户端设备。
[0074] 其中,第一连接信息可以来自于会话信息,由于第五数据包中携带有返回数据的发送者的信息(即第二连接信息),因此通过会话信息可以确定返回数据的接收者的信息(即第一连接信息),由此保证返回数据可以正确返回至客户端设备。
[0075] 与接收侧的交互过程类似,在本申请的一种实施例中,消息缓存节点在发送侧的交互过程中,在向前置节点提供第五数据包时也可采用通知的方式,即消息缓存节点保存所述返回数据和所述会话信息,并在完成保存之后,通知所述前置节点获取所述返回数据。前置节点在收到通知之后,会发送数据获取请求,由此消息缓存节点可以接收到所述前置节点在获得通知之后发送的数据获取请求,并在接收到所述数据获取请求后,根据所述返回数据和所述第一连接信息生成第六数据包,并将所述第六数据包发送至前置节点。
[0076] 在发送侧的交互过程中,前置节点200可以查询消息缓存节点是否存在新的返回数据,例如采用轮询的方式,例如采用轮询的方式,如果查询到存在收到了来自消息缓存节点的通知,若轮询到有新的通知,则发送数据获取请求,以从消息缓存节点接收包含返回数据的第六数据包。第六数据包中包含了返回数据和关于客户端设备的第一连接信息。
[0077] 然后,前置节点200查询关于客户端设备的当前连接信息,确定第一连接信息。在实际场景中可以是使用接收到的第六数据包中的关于客户端设备的第一连接信息,查询本地保存的当前连接信息,确定返回数据的接收者为第一连接信息所指向的客户端设备,进而将第六数据包中的第一连接信息剥离,得到返回数据,并返回数据封装为数据包,发送至作为接收者的客户端设备,从而完成发送侧的交互过程。
[0078] 基于同一发明构思,本申请实施例中还提供了用于通讯安全防护的消息缓存节点,该节点对应的方法是前述实施例中的通讯安全防护方法,并且其解决问题的原理与这些方法相似。
[0079] 图4示出了本申请实施例提供了一种消息缓存节点,该消息缓存节点至少包括数据包接收模块310、会话管理模块320和数据包发送模块330。其中,数据包接收模块310用于从前置节点获取与第一数据包相关的第二数据包。其中,所述第二数据包包括通讯数据和关于客户端设备的第一连接信息,所述通讯数据来自于所述客户端设备向所述前置节点所发送的第一数据包。
[0080] 会话管理模块320用于根据所述第一连接信息获取关于本次通讯的会话信息。其中,所述会话信息至少包含第一连接信息和所述客户端设备对应的服务端设备的第二连接信息,两者存在映射关系,从而可以确定需要传输的通讯数据的接收者和发送者,确保通讯正常进行。在本申请的一种实施例中,消息缓存节点的会话管理模块320获取会话信息的过程包括:使用第一连接信息查询是否存在包含第一连接信息的、关于本次通讯的会话信息;若存在,则获取关于本次通讯的会话信息;若不存在,则生成关于本次通讯的会话信息。
[0081] 数据包发送模块330用于根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点,以使所述后置节点根据所述第二连接信息将所述通讯数据发送至服务端设备。
[0082] 其中,第二连接信息可以来自于会话信息,由于第二数据包中携带有通讯数据的发送者的信息(即第一连接信息),因此通过会话信息可以确定通讯数据的接收者的信息(即第二连接信息),由此保证通讯数据可以正确到达服务端设备。
[0083] 本申请的一种实施例中,消息缓存节点的数据包发送模块330向后置节点提供第三数据包的方式可以采用通知的方式,即消息缓存节点会保存所述通讯数据和所述会话信息,并在完成保存之后,通知所述后置节点获取所述通讯数据。后置节点在收到通知之后,会发送数据获取请求,由此消息缓存节点的数据包发送模块330可以接收到所述后置节点在获得通知之后发送的数据获取请求,并在接收到所述数据获取请求后,根据所述通讯数据和所述第二连接信息生成第三数据包,并将所述第三数据包发送至后置节点。
[0084] 为实现通讯安全防护,前置节点可以采用如图5所示的结构,并实现的处理如下:在接收侧的交互过程中,前置节点的其数据包接收模块21首先接收由客户端设备发送的第一数据包。其中,第一数据包是关于请求的数据报文的相关内容,其中,包含了与请求的实际内容相关的数据(即通讯数据),以及其它与连接、通讯协议等相关的必要信息。其中,通讯数据需要被传输至服务端设备,以返回请求的应答。
[0085] 接收到第一数据包之后,前置节点的数据包缓存模块220对第一数据包进行缓存。而后客户端连接池管理模块230可以注册关于客户端设备的第一连接信息。关于客户端设备的第一连接信息是指用于确定数据包发送者的相关信息,例如客户端设备的IP地址,客户端设备的源端口等等。
[0086] 前置节点注册第一连接信息的处理过程包括:查询关于客户端设备的当前连接信息。若查询到关于客户端设备的当前连接信息,则以第一连接信息更新当前连接信息;若未查询到关于客户端设备的当前连接信息,则将第一连接信息保存为当前连接信息。即先查看是否保存有关于客户端设备的当前连接信息,如果关于客户端的当前连接信息已经存在,则更新当前连接信息,如果关于客户端的当前连接信息不存在,则新建当前连接信息,并进行保存。
[0087] 然后,前置节点的数据包缓存模块220将注册好的关于客户端设备的连接信息与客户端设备发送来的通讯数据合并在一起,生成新的第二数据包,由前置节点的数据包发送模块240发送给消息缓存节点300。
[0088] 在本申请的一种实施例中,前置节点还可以包括一数据包检测模块250。在接收并缓存第一数据包后,可以由数据包检测模块250对第一数据包进行检测,确定第一数据包通过检测之后,才对其进行后续处理。若未通过检测,则丢弃数据包。在实际场景中,检测可以基于第一数据包的相关特征,例如数据结构、数据的格式、内容中是否包含特定信息等。
[0089] 而后置节点可以采用如图6所示的结构,在接收侧的交互过程中,后置节点的数据包接收模块410会查询消息缓存节点是否存在新的通讯数据,例如采用轮询的方式,如果查询到存在收到了来自消息缓存节点的通知,若轮询到有新的通知,则发送数据获取请求,以从消息缓存节点接收包含通讯数据的第三数据包。
[0090] 然后后置节点的服务端连接池管理模块420会对第二连接信息进行注册,注册方式与前置节点中注册第一连接信息的方式类似,首先查询关于服务端设备的当前连接信息;若查询到关于服务端设备的当前连接信息,则以第二连接信息更新当前连接信息;若未查询到关于服务端设备的连接信息,则将第二连接信息保存为当前连接信息。即先查看是否保存有关于服务端设备的连接信息,如果关于服务端设备的连接信息已经存在,则更新连接信息,如果关于服务端设备的连接信息不存在,则新建立连接信息,并进行保存。
[0091] 后置节点的数据包发送模块430可以根据第二连接信息确定需要发送的服务端设备,然后向服务端设备发送通讯数据。在发送时,可以将第三数据包中的连接信息剥离,得到通讯数据,并将通讯数据封装为数据包发送给服务端设备,完成接收侧的整个交互过程。
[0092] 服务端设备500在获取到表示请求内容的通讯数据之后,进行相应的处理,生成需要返回的、关于请求的应答,同样以数据包的形式返回给后置节点,并经由消息缓存节点、前置节点返回至客户端设备,该数据交互的过程即为发送侧的交互过程。与第一数据包类似,作为应答的第四数据包也包含了与应答的实际内容相关的数据(即返回数据),以及其它与连接、通讯协议等相关的必要信息。
[0093] 由此,本申请实施例提供的一种通讯安全防护方法中,所述消息缓存节点的数据包接收模块310还可以从后置节点获取与第四数据包相关的第五数据包。其中,所述第五数据包包括返回数据和关于服务端设备的第二连接信息,所述返回数据由所述服务端设备基于所述通讯数据生成,来自所述服务端设备向所述后置节点发送的第四数据包。
[0094] 为实现通讯安全防护,后置节点的数据包接收模块410需要获取服务端设备发送的第四数据包。第四数据包中至少包含了基于通讯数据的返回数据,服务端连接池管理模块420基于数据包中的其它内容查询关于服务端设备的当前连接信息,获取第二连接信息。然后由后置节点的数据包发送模块430将返回数据和第二连接信息混合后,生成第五数据包,并将第五数据包发送至消息缓存节点。
[0095] 而后,消息缓存节点的会话管理模块320可以根据所述第二连接信息获取关于本次通讯的会话信息。其中,所述会话信息至少包含第二连接信息和所述服务端设备对应的客户端设备的第一连接信息,两者存在映射关系,从而可以确定需要传输的通讯数据的接收者和发送者,确保通讯正常进行。在本申请的一种实施例中,获取会话信息的过程包括:使用第二连接信息查询是否存在包含第二连接信息的、关于本次通讯的会话信息;若存在,则获取关于本次通讯的会话信息;若不存在,则生成关于本次通讯的会话信息。
[0096] 消息缓存节点的数据包发送模块330根据所述返回数据和所述第一连接信息生成第六数据包,并将所述第六数据包发送至前置节点,以使前置节点根据所述第一连接信息将所述返回数据发送至客户端设备。
[0097] 其中,第一连接信息可以来自于会话信息,由于第五数据包中携带有返回数据的发送者的信息(即第二连接信息),因此通过会话信息可以确定返回数据的接收者的信息(即第一连接信息),由此保证返回数据可以正确返回至客户端设备。
[0098] 与接收侧的交互过程类似,在本申请的一种实施例中,消息缓存节点在发送侧的交互过程中,其数据包发送模块330在向前置节点提供第五数据包时也可采用通知的方式,即消息缓存节点保存所述返回数据和所述会话信息,并在完成保存之后,通知所述前置节点获取所述返回数据。前置节点在收到通知之后,会发送数据获取请求,由此消息缓存节点的数据包发送模块330可以接收到所述前置节点在获得通知之后发送的数据获取请求,并在接收到所述数据获取请求后,根据所述返回数据和所述第一连接信息生成第六数据包,并将所述第六数据包发送至前置节点。
[0099] 在发送侧的交互过程中,前置节点200的数据包接收模块210可以查询消息缓存节点是否存在新的返回数据,例如采用轮询的方式,例如采用轮询的方式,如果查询到存在收到了来自消息缓存节点的通知,若轮询到有新的通知,则发送数据获取请求,以从消息缓存节点接收包含返回数据的第六数据包。第六数据包中包含了返回数据和关于客户端设备的第一连接信息。
[0100] 然后,前置节点200的客户端连接池管理模块230查询关于客户端设备的当前连接信息,确定第一连接信息。在实际场景中可以是使用接收到的第六数据包中的关于客户端设备的第一连接信息,查询本地保存的当前连接信息,确定返回数据的接收者为第一连接信息所指向的客户端设备,进而由数据包发送模块240将第六数据包中的第一连接信息剥离,得到返回数据,并返回数据封装为数据包,发送至作为接收者的客户端设备,从而完成发送侧的交互过程。
[0101] 另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,本申请实施例提供的前消息缓存节点可以采用如图7所示的结构,包括用于存储计算机程序指令的存储器710和用于执行程序指令的处理器720,其中,当该计算机程序指令被该处理器执行时,触发该设备执行基于前述多个实施例中的方法和/或技术方案。
[0102] 综上所述,本申请提供的方案中,客户端设备和服务端设备之间通过前置节点、消息缓存节点和后置节点进行通讯,两者之间不直接通讯且物理隔离,攻击请求无法直接达到服务端设备,仅有前置节点存在被攻击的风险,客户端设备与服务端设备之间的连接实际上是由后置节点代理完成,并且消息缓存节点能够管理客户端设备与服务端设备的会话信息,保证数据包能够正确地从发送者达到接收者,因此,当任一前置节点收到攻击时,可以由其它前置节点完成后续通讯,不会存在因服务器宕机造成无法提供服务的问题。
[0103] 需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0104] 对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈