一种会话保持的方法和设备与流程

文档序号:18211054发布日期:2019-07-19 22:18阅读:154来源:国知局
一种会话保持的方法和设备与流程

本申请涉及计算机技术领域,尤其涉及一种会话保持的方法和设备。



背景技术:

随着以网络技术为基础的电子商务的快速发展,以木马传播,流量交易,虚拟财产等活动为代表的黑色产业链也在不断壮大。在此背景下,应用(app)提供商提供的服务被攻击的次数与日俱增。流量清洗服务是针对攻击者发起的攻击,为用户提供监控、告警和防护的一种网络安全服务。

图1为现有安全防护组网示意图。其中,清洗设备是通过部署在网络侧部署的高性能linux虚拟应用服务器(linuxvirtualserver,lvs)集群实现的。app是通过终端设备上的应用软件客户端和网络侧的应用服务器相互配合实现的。应用软件客户端是指终端设备上的提供特定功能、且具有网络访问和报文处理能力的软件,如游戏客户端,手机购物客户端和即时聊天客户端等客户端软件,是应用服务的发起点。应用服务器(appserver)是提供游戏,购物和聊天等应用业务的应用服务器。

在附图1中,应用软件客户端的网际协议(internetprotocol,ip)地址信息是123.12.1.2:5482。清洗设备的虚拟ip(virtualip,vip)地址信息是122.13.3.2:8080,清洗设备的本地(localip,lip)地址信息是121.13.4.2:4653。appserver的ip地址信息是118.16.7.3:8080。清洗设备为应用服务器提供安全防护的基本原理如下:

1)、终端设备上的应用软件客户端通过互联网访问清洗设备。应用软件客户端发送的报文的源地址信息是123.12.1.2:5482,其中源地址是应用软件客户端的ip地址123.12.1.2,源端口号是5482;报文的目的地址信息是122.13.3.2:8080,其中目的ip地址是清洗设备的vip地址122.13.3.2,目的端口号是8080。

2)、清洗设备对包括分布式拒绝服务(distributeddenialofservice,ddos)攻击在内的异常流量进行清洗,并将清洗后的流量通过源地址转换(sourcenetworkaddresstranslation,snat)和目的地址转换(destinationnetworkaddresstranslation,dnat)的方式向appserver发送。snat将源地址信息由123.12.1.2:5482转换为清洗平台的lip地址信息121.13.4.2:4653。dnat将目的地址信息由清洗平台的vip地址信息122.13.3.2:8080转换为appserver的ip地址信息118.16.7.3:8080。

当清洗设备的vip地址遭受到攻击者的攻击时,清洗设备需要切换到新的vip地址,造成应用软件客户端与清洗设备之间的连接中断。由于清洗设备是通过代理机制在应用软件客户端和appserver之间建立连接的,在应用软件客户端与清洗设备之间的连接中断后,清洗设备也会很快断开与appserver之间的连接。此时,如果终端设备用户想继续使用应用,则应用软件客户端需要重新通过清洗设备作为代理建立与appserver之间的连接。这个过程会导致应用业务中断,当应用软件客户端重新与appserver建立连接后,新的连接中的会话状态与此前断开的连接中的会话状态不一致。因而现有技术无法保持应用的会话连接。



技术实现要素:

本申请实施例提供一种会话保持的方法和设备,以解决当app应用服务器受到攻击时app的会话中断,重新与app应用服务器建立连接后出现的会话不一致问题。

本申请实施例提供的具体技术方案如下:

第一方面,本申请实施例提供一种会话保持的方法,由清洗设备执行,所述清洗设备包括回源功能模块和至少两个清洗功能模块,清洗设备中的清洗功能模块接收应用软件客户端发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端的地址和端口号,所述第一业务报文的目的地址信息是所述清洗功能模块的虚拟网际协议vip地址和第一端口号;对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述清洗功能模块的本地网际协议lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为所述回源功能模块的vip地址和第三端口号;将所述第二业务报文发送至所述回源功能模块;所述回源功能模块从所述第二业务报文的选项字段中提取地址信息,根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项;如果存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项,利用所述会话表项中包含的地址映射信息对所述第二业务报文执行第二地址替换处理,从而生成第三业务报文,所述第二地址替换处理是指将所述第二业务报文的源地址信息替换为所述回源功能模块的lip地址和端口号,将所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号;将所述第三业务报文发送至应用服务器。这样,当一个清洗功能模块的vip地址被攻击时,即便发往应用服务器的流量被切换到另一个清洗功能模块的vip地址上,回源功能模块从切换后的清洗功能模块接收到的报文中提取的地址信息和业务报文的目的地址信息的组合仍然能够匹配到切换之前建立的会话表项,因此回源功能模块无需与应用服务器重新建立会话,从而保持切换之前建立的会话不中断。

在第一方面的一种可能的设计中,所述第一业务报文的选项字段中还携带应用标识,所述应用标识为所述应用软件客户端的唯一标识,或所述应用软件客户端的端口号,或所述应用软件客户端的唯一标识和所述应用软件客户端的端口号的组合。由于应用标识能够唯一标识发送第一业务报文的应用,当提取的地址信息和业务报文的目的地址信息的组合无法唯一标识会话时,利用应用标识能够保证会话的唯一性。

在第一方面的一种可能的设计中,所述第一业务报文中还携带第一校验串和第一码串,所述清洗功能模块接收到所述第一业务报文之后,执行第一地址替换处理之前,所述清洗功能模块从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用标识、所述应用软件客户端生成的随机数和所述第一码串进行组合得到的;从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值;从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串;将所述应用标识、所述应用软件客户端生成的随机数和所述第二码串按照所述预定义方式进行组合得到所述第二校验串;确定所述第一校验串与所述第二校验串相同。

在第一方面的一种可能的设计中,所述第一业务报文中还携带第一校验串和第一码串,所述清洗功能模块接收到所述第一业务报文之后,执行第一地址替换处理之前,所述清洗功能模块从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用软件客户端生成的随机数和所述第一码串进行组合得到的;从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值;从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串;确定所述第一码串与所述第二码串相同。

上述两种设计中,清洗功能模块针对第一业务报文校验来源的真实性,从而保证应用软件客户端发送的第一业务报文的安全性,防止清洗功能模块的vip地址被cc攻击,以保证应用服务器的安全。

在第一方面的一种可能的设计中,所述第一业务报文的选项字段位于所述第一业务报文的网际协议ip报文头或传输控制协议tcp报文头。这样,清洗功能模块能够根据第一报文的实际传输设计,来灵活选择选项字段的封装报文头。

在第一方面的一种可能的设计中,根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址的组合对应的会话表项,可以通过以下过程实现:所述回源功能模块将所述第二业务报文的源地址信息替换为提取到的地址信息,从而获得替换后的第二业务报文;根据所述替换后的第二业务报文的源地址信息和目的地址的组合在所述会话表中查找是否存在与替换后的所述第二业务报文的源地址信息和目的地址的组合对应的会话表项;所述第二地址替换处理是指将所述替换后的第二业务报文源地址信息替换为所述回源功能模块的lip地址和端口号,将替换后的所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号。由于回源功能模块与应用服务器建立连接时,是根据提取到的地址信息和接收到的业务报文的目的地址信息的组合创建会话表中的会话表项。在后续接收到报文时,回源功能模块是根据提取到的地址信息和接收到的业务报文的目的地址信息的组合匹配会话表中的会话表项,这样能够快速匹配到切换之前建立的会话表项,从而保证会话不中断。

第二方面,本申请实施例提供一种清洗系统,包括会话处理设备和至少两个清洗设备,所述至少两个清洗设备中的第一清洗设备,用于接收应用软件客户端发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端的地址和端口号,所述第一业务报文的目的地址信息是所述第一清洗设备的虚拟网际协议vip地址和第一端口号;对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述第一清洗设备的本地网际协议lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为所述会话处理设备的vip地址和第三端口号;将所述第二业务报文发送至所述会话处理设备;所述会话处理设备,用于从所述第二业务报文的选项字段中提取地址信息,根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项;如果存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项,利用所述会话表项中包含的地址映射信息对所述第二业务报文执行第二地址替换处理,从而生成第三业务报文,所述第二地址替换处理是指将所述第二业务报文的源地址信息替换为所述会话处理设备的lip地址和端口号,将所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号;将所述第三业务报文发送至应用服务器。

在第二方面的一种可能的设计中,所述第一业务报文的选项字段中还携带应用标识,所述应用标识为所述应用软件客户端的唯一标识,或所述应用软件客户端的端口号,或所述应用软件客户端的唯一标识和所述应用软件客户端的端口号的组合。

在第二方面的一种可能的设计中,所述第一业务报文中还携带第一校验串和第一码串,所述第一清洗设备接收到所述第一业务报文之后,执行第一地址替换处理之前,还用于:从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用标识、所述应用软件客户端生成的随机数和所述第一码串进行组合得到的;从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值;从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串;将所述应用标识、所述应用软件客户端生成的随机数和所述第二码串按照所述预定义方式进行组合得到所述第二校验串;确定所述第一校验串与所述第二校验串相同。

在第二方面的一种可能的设计中,所述第一业务报文中还携带第一校验串和第一码串,所述第一清洗设备接收到所述第一业务报文之后,执行第一地址替换处理之前,还用于:从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用软件客户端生成的随机数和所述第一码串进行组合得到的;从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值;从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串;确定所述第一码串与所述第二码串相同。

在第二方面的一种可能的设计中,所述第一业务报文的选项字段位于所述第一业务报文的网际协议ip报文头或传输控制协议tcp报文头。

在第二方面的一种可能的设计中,所述会话处理设备根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址的组合对应的会话表项时,具体用于:将所述第二业务报文的源地址信息替换为提取到的地址信息,从而获得替换后的第二业务报文;根据所述替换后的第二业务报文的源地址信息和目的地址的组合在所述会话表中查找是否存在与替换后的所述第二业务报文的源地址信息和目的地址的组合对应的会话表项;所述第二地址替换处理是指将所述替换后的第二业务报文源地址信息替换为所述会话处理设备的lip地址和端口号,将替换后的所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号。

第三方面,本申请实施例提供一种清洗设备,包括至少三个处理器、至少三个存储器和网络接口。其中,存储器、网络接口处理器之间可以通过总线系统相连。网络接口用于接收报文,所述至少三个处理器中的第一处理器与所述至少三个存储器中的第一存储器耦合,所述第一存储器中存储有程序代码,所述第一处理器读取所述第一存储器中的程序代码后执行第一方面或第一方面的任意可能的设计中所述清洗功能模块所执行的操作;所述至少三个处理器中的第二处理器与所述至少三个存储器中的第二存储器耦合,所述第二存储器中存储有程序代码,所述第二处理器读取所述第二存储器中的程序代码后执行第一方面或第一方面的任意可能的设计中所述清洗功能模块所执行的操作;所述至少三个处理器中的第三处理器与所述至少三个存储器中的第三存储器耦合,所述第二存储器中存储有程序代码,所述第三处理器读取所述第三存储器中的程序代码后执行第一方面或第一方面的任意可能的设计中所述回源功能模块所执行的操作。

第四方面,本申请实施例提供一种清洗设备,包括处理器、存储器和网络接口。其中,存储器、网络接口处理器之间可以通过总线系统相连。网络接口用于接收报文,存储器用于存储程序、指令或代码,处理器用于执行存储器中的程序、指令或代码,以完成上述第一方面或第一方面的任意可能的设计方式中的所述清洗功能模块所执行的操作。

第五方面,本申请实施例提供一种会话处理设备,包括处理器、存储器和网络接口。其中,存储器、网络接口处理器之间可以通过总线系统相连。网络接口用于接收报文,存储器用于存储程序、指令或代码,处理器用于执行存储器中的程序、指令或代码,以完成上述第一方面或第一方面的任意可能的设计方式中的所述回源功能模块所执行的操作。

第六方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意可能的设计方式中的方法。

第七方面,本申请实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意可能的设计方式中的方法。

第八方面,本申请实施例提供一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述第一方面或第一方面的任意可能的设计方式中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,用于保存清洗设备必要的程序指令和数据。芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

应理解,本申请实施例的第二至六方面与本申请实施例的第一方面的技术方案一致,各方面及对应的可实施的设计方式所取得的有益效果相似,不再赘述。

附图说明

图1为一种基于云端安全防护组网示意图;

图2为本申请实施例适用的一种系统架构示意图;

图3为本申请实施例的一种清洗设备的组成结构示意图;

图4为本申请实施例的清洗功能模块的硬件结构示意图;

图5为本申请实施例的回源功能模块的硬件结构示意图;

图6为本申请实施例的一种清洗设备的硬件结构示意图;

图7为本申请实施例的会话保持的方法流程示意图;

图8和图9为本申请实施例基于云端的安全组网的会话保持方法应用示意图;

图10为本申请实施例的清洗系统的结构示意图;

图11为本申请实施例的清洗设备的结构示意图;

图12为本申请实施例的会话处理设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行地描述。

本申请中的会话保持的方法可适用于多种系统架构,图2为本申请适用的一种系统架构示意图。如图2所示,该系统架构中包括:应用软件客户端201、清洗设备202、应用服务器203。应用软件客户端201是指软件实现的可以安装在终端设备上的各种客户端软件,例如浏览器、游戏客户端等等。应用服务器203可以是各种应用服务器,例如web应用服务器、文件传输协议(filetransferprotocol,ftp)应用服务器、游戏应用服务器、电子商务应用服务器等等。

清洗设备202用于对向应用服务器发送的流量进行清洗处理,从而保护应用服务器的安全。其中,清洗设备202可以是云端的清洗平台,包括回源功能模块22和至少两个清洗功能模块21。清洗设备202可以采用集中式部署,即回源功能模块22和至少两个清洗功能模块21由同一个物理设备中的不同软硬件模块实现,例如清洗功能模块和回源功能模块是由各个独立的板卡实现的。也可以采用分布式部署,即每个功能模块分别部署在不同的物理设备上。其中:

应用软件客户端201,是应用服务的发起点,可选地,应用软件客户端201可以安装在手机、平板或其他终端设备上。

清洗设备202中的清洗功能模块21,用于接收应用软件客户端201发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端201的地址和端口号,所述第一业务报文的目的地址信息是所述清洗功能模块21的vip地址和第一端口号;对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述清洗功能模块21的lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为所述回源功能模块22的vip地址和第三端口号;

所述清洗功能模块将所述第二业务报文发送至所述回源功能模块;

清洗设备202中的回源功能模块22,用于从所述第二业务报文的选项字段中提取地址信息,根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项;如果存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项,利用所述会话表项中包含的地址映射信息对所述第二业务报文执行第二地址替换处理,从而生成第三业务报文,所述第二地址替换处理是指将所述第二业务报文的源地址信息替换为所述回源功能模块22的lip地址和端口号,将所述第二业务报文的目的地址信息替换为所述应用服务器203的地址和端口号;

所述回源功能模块将所述第三业务报文发送至应用服务器。

应用服务器203,能够为应用客户端201提供应用业务。

如图3所示,本申请提供的清洗设备的组成结构示意图。该清洗设备300中包括回源功能模块302和至少两个清洗功能模块301。当清洗设备采用分布式部署时,如图4所示为清洗功能模块301硬件结构示意图,图5所示为回源功能模块302硬件结构示意图。

该清洗功能模块301包括:网络接口401、存储器402、处理器403,所述处理器403、存储器402和网络接口401通过总线系统404相互连接。

所述网络接口401,用于接收应用软件客户端发送的业务报文,向回源功能模块302发送处理后的业务报文。网络接口401包括多种形式,例如有线接口,例如光纤分布式数据接口(fiberdistributeddatainterface,简称fddi)、千兆以太网(gigabitethernet,简称ge)接口;网络接口401也可以是无线接口。

所述存储器402,用于存储指令和数据。

存储器402包括但不限于是随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或者快闪存储器)、或便携式只读存储器(cd-rom)。

处理器403可以是一个或多个中央处理器(centralprocessingunit,简称cpu),在处理器403是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

可选地,清洗功能模块301还可以包括输入接口(图4中未示出),输入接口可以与包括麦克风、键盘等输入设备链接,也可以是usb接口等等。可选地,该清洗功能模块301中还包括输出接口(图4中未示出),可以与输出设备连接,输出设备包括打印机,显示器,麦克风等等。

清洗功能模块301中的处理器403用于读取所述存储器402中存储的指令和数据后,执行以下操作:通过网络接口401接收应用软件客户端发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端的地址和端口号,所述第一业务报文的目的地址信息是所述清洗功能模块301的vip地址和第一端口号;对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述清洗功能模块301的lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为所述回源功能模块302的vip地址和第三端口号;通过网络接口401将所述第二业务报文发送至所述回源功能模块302。

另外,清洗功能模块301的各个组件可以通过总线系统404耦合在一起,其中总线系统404除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统404。但是为了清楚说明,在图4中将各种总线都标为总线系统404。

其中,处理器403控制清洗功能模块301的操作,处理器403还可以称为中央处理单元(英文:centralprocessingunit,cpu)。处理器403可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器403中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器403可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器403读取存储器402中的信息,结合其硬件执行以下图7所示的清洗功能模块的方法步骤。

如附图5所示,附图3中的回源功能模块302包括:网络接口501、存储器502、处理器503,所述处理器503、存储器502和网络接口501通过总线系统504相互连接。

所述网络接口501,用于接收清洗功能模块301发送的业务报文,向应用服务器203发送处理后的业务报文。网络接口501包括多种形式,例如有线接口,例如光纤分布式数据接口(fiberdistributeddatainterface,简称fddi)、千兆以太网(gigabitethernet,简称ge)接口;网络接口501也可以是无线接口。

所述存储器502,用于存储指令和数据。

存储器502包括但不限于是随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或者快闪存储器)、或便携式只读存储器(cd-rom)。

处理器503可以是一个或多个中央处理器(centralprocessingunit,简称cpu),在处理器503是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

可选地,回源功能模块302还可以包括输入接口(图5中未示出),输入接口可以与包括麦克风、键盘等输入设备链接,也可以是usb接口等等。可选地,该清洗功能模块301中还包括输出接口(图5中未示出),可以与输出设备连接,输出设备包括打印机,显示器,麦克风等等。

回源功能模块302中的处理器503用于读取所述存储器502中存储的指令和数据后,执行以下操作:从所述第二业务报文的选项字段中提取地址信息,根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项;如果存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项,利用所述会话表项中包含的地址映射信息对所述第二业务报文执行第二地址替换处理,从而生成第三业务报文,所述第二地址替换处理是指将所述第二业务报文的源地址信息替换为所述回源功能模块302的lip地址和端口号,将所述第二业务报文的目的地址信息替换为所述应用服务器203的地址和端口号;将所述第三业务报文发送至应用服务器203。

另外,回源功能模块302的各个组件可以通过总线系统504耦合在一起,其中总线系统504除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统504。但是为了清楚说明,在图5中将各种总线都标为总线系统504。

其中,处理器503控制回源功能模块302的操作,处理器503还可以称为中央处理单元(英文:centralprocessingunit,cpu)。处理器503可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器503中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器503可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器503读取存储器502中的信息,结合其硬件执行以下图7所示的回源功能模块的方法步骤。

当清洗设备采用集成方式部署时,如图6所示为清洗设备600的硬件结构示意图。该清洗设备600包括:网络接口601、存储器602、处理器603,所述处理器603、存储器602和网络接口601通过总线系统604相互连接。

所述网络接口601,用于接收应用软件客户端发送的业务报文,向应用服务器发送处理后的业务报文。

所述存储器602,用于存储指令和数据。

在具体实现中,处理器603包括至少三个处理器,图6中示出了三个处理器,例如图6中的处理器0、处理器1和处理器2,这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

在具体实现中,存储器602包括至少三个存储器,图6中示出了三个存储器,例如图6中的存储器0、存储器1和存储器2。

所述至少三个处理器中的处理器0与所述至少三个存储器中的存储器0耦合,组成第一板卡,所述至少三个处理器中的处理器1与所述至少三个存储器中的存储器1耦合,组成第二板卡,所述至少三个处理器中的处理器2与所述至少三个存储器中的存储器2耦合,组成第三板卡。

存储器0中存储有程序代码,所述处理器0读取所述存储器0中存储的指令和数据后,执行以下操作:通过网络接口601接收应用软件客户端发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端的地址和端口号,所述第一业务报文的目的地址信息是所述第一板卡的vip地址和第一端口号;对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述第一板卡的lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为所述第三板卡的vip地址和第三端口号;将所述第二业务报文发送至所述第三板卡。

存储器1中存储有程序代码,所述处理器1读取所述存储器1中存储的指令和数据后,执行以下操作:通过网络接口601接收应用软件客户端发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端的地址和端口号,所述第一业务报文的目的地址信息是所述第二板卡的vip地址和第一端口号;对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述第二板卡的lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为所述第三板卡的vip地址和第三端口号;将所述第二业务报文发送至所述第三板卡。

存储器2中存储有程序代码,所述处理器2读取所述存储器2中存储的指令和数据后,执行以下操作:从所述第二业务报文的选项字段中提取地址信息,根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项;如果存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项,利用所述会话表项中包含的地址映射信息对所述第二业务报文执行第二地址替换处理,从而生成第三业务报文,所述第二地址替换处理是指将所述第二业务报文的源地址信息替换为所述第三板卡的lip地址和端口号,将所述第二业务报文的目的地址信息替换为所述应用服务器203的地址和端口号;通过网络接口601将所述第三业务报文发送至应用服务器203。

其中,图4、图5和图6中的处理器还可以称为中央处理单元(英文:centralprocessingunit,cpu)。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件执行以下图7所示的方法步骤。

图7示出了本申请实施例提供的会话保持的方法流程示意图,该流程具体可通过硬件、软件编程或软硬件的结合来实现。

清洗设备可被配置为执行如图7所示的流程,该清洗设备中用以执行本申请实施例所提供的会话保持方案的功能模块具体可以通过硬件、软件编程以及软硬件的组合来实现,硬件可包括一个或多个信号处理和/或专用集成电路。

如图7所示,该流程具体包括有以下处理过程:

步骤70:清洗设备中的清洗功能模块接收应用软件客户端发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端的地址和端口号,所述第一业务报文的目的地址信息是所述清洗功能模块的vip地址和第一端口号。

一种可能的实现方式中,所述第一业务报文中还携带应用标识,所述应用标识为所述应用软件客户端的唯一标识,或所述应用软件客户端的端口号,或所述应用软件客户端的唯一标识和所述应用软件客户端的端口号的组合。需要说明的是,所述应用标识能够唯一标识发送第一业务报文的应用,应用标识由应用软件客户端生成,生成方式不限定,只要能唯一标识应用即可。

步骤71:清洗功能模块对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述清洗功能模块的lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为所述回源功能模块的vip地址和第三端口号。

可选地,所述清洗功能模块从所述第一业务报文中提取应用标识,将所述应用标识也添加到所述第一业务报文的选项字段中,从而生成第二业务报文。

其中:第一业务报文的选项字段位于所述第一业务报文的ip报文头或传tcp报文头。

步骤72:所述清洗功能模块将所述第二业务报文发送至所述回源功能模块。

步骤73:所述回源功能模块从所述第二业务报文的选项字段中提取地址信息,根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项。

一种可能的实现方式中,回源功能模块从第二业务报文的选项字段中提取应用标识,将所述应用标识与所述第三业务报文的ip五元组进行关联,能够保证会话的唯一性。

步骤74:如果存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项,所述回源功能模块利用所述会话表项中包含的地址映射信息对所述第二业务报文执行第二地址替换处理,从而生成第三业务报文,所述第二地址替换处理是指将所述第二业务报文的源地址信息替换为所述回源功能模块的lip地址和端口号,将所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号

步骤74:所述回源功能模块将所述第三业务报文发送至应用服务器。

通过上述过程可知,回源功能模块与应用服务器建立连接时,是根据提取到的地址信息和接收到的业务报文的目的地址信息的组合创建会话表中的会话表项。在后续接收到报文时,回源功能模块是根据提取到的地址信息和接收到的业务报文的目的地址信息的组合匹配会话表中的会话表项。这样当一个清洗功能模块的vip地址被攻击时,即便发往应用服务器的流量被切换到另一个清洗功能模块的vip地址上,回源功能模块从切换后的清洗功能模块接收到的报文中提取的地址信息和业务报文的目的地址信息的组合仍然能够匹配到切换之前建立的会话表项,因此回源功能模块无需与应用服务器重新建立会话,从而保持切换之前建立的会话不中断。

需要说明的是,本申请实施例上述处理过程中可以保持第一业务报文、第二业务报文和第三业务报文的报文载荷内容不变,只是各自对应的ip五元组不同。

进一步的,为了保证应用软件客户端发送的第一业务报文的安全性,可选地,清洗功能模块针对第一业务报文需要校验来源的真实性,防止清洗功能模块的vip地址被cc(challengecollapsar)攻击,从而保证应用服务器的安全,具体的,可以包括两种可能的实现方式:

第一种实现方式,所述第一业务报文中携带第一校验串和第一码串,所述清洗功能模块接收到所述第一业务报文之后,执行步骤71之前,还需要执行以下过程:

s1:所述清洗功能模块从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用标识、所述应用软件客户端生成的随机数和所述第一码串进行组合得到的。

s2:所述清洗功能模块从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值。

s3:所述清洗功能模块从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串。

s4:将所述应用标识、所述应用软件客户端生成的随机数和所述第二码串按照所述预定义方式进行组合得到所述第二校验串。

s5:确定所述第一校验串与所述第二校验串相同。

需要说明的是,清洗功能模块对第一业务报文进行采样时使用的采样算法与应用软件客户端对第一业务报文进行采样时使用的采样算法相同。

这种实现方式中,清洗功能模块通过比较第一校验串和第二校验串是否相同,来校验第一校验串是否被修改或不完整,若第一校验串和第二校验串相同,说明第一校验串没有被修改,确定第一业务报文为安全的报文,从而继续执行后续步骤;若第一校验串和第二校验串不同,说明第一校验串被修改,确定第一业务报文为不安全的报文,从而丢弃第一业务报文,以保证会话的安全性。

第二种实现方式,所述第一业务报文中携带第一校验串和第一码串,所述清洗功能模块接收到所述第一业务报文之后,执行步骤71之前,还需要执行以下过程:

p1:所述清洗功能模块从所述第一业务报文中提取第一校验串和第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用软件客户端生成的随机数和所述第一码串进行组合得到的。

p2:所述清洗功能模块从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值。

p3:所述清洗功能模块根据所述第一业务报文的源地址信息获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串。

p4:确定所述第一码串与所述第二码串相同。

这种实现方式中,清洗功能模块通过比较第一码串和第二码串是否相同,来校验第一校验串是否被修改或不完整,若第一码串和第二码串相同,说明第一校验串没有被修改,确定第一业务报文为安全的报文,从而继续执行后续步骤;若第一码串和第二校码串不同,说明第一校验串被修改,确定第一业务报文为不安全的报文,从而丢弃第一业务报文,以保证会话的安全性。

图8所示给出了本申请实施例提供的安全组网的会话保持方法应用示意图。该网络架构中的清洗设备采用分布式部署。即部署在网络侧的清洗系统包括两个清洗设备和一个会话处理设备,本实施例中的清洗设备执行集中式部署场景中的清洗功能模块执行的操作,会话处理设备执行集中式部署场景中的回源功能模块执行的操作。基于图8所示的网络架构,下面通过一个具体的应用场景来详细说明图7所示的方法。

在附图8中,应用软件客户端的ip地址信息是123.12.1.2:5482。清洗设备1的vip地址信息是122.13.3.2:8080,清洗设备1的lip地址信息是121.13.4.2:5433。清洗设备2的vip地址信息是122.13.3.3:8080,清洗设备2的lip地址信息是121.13.4.3:5433。appserver的ip地址信息是118.16.7.3:8080。会话处理设备的vip地址信息是120.14.5.2:8080,会话处理设备的lip地址信息是119.15.6.2:5433。appserver的ip地址信息是118.16.7.3:8080。

1)、终端设备上的应用软件客户端通过互联网访问清洗设备1。应用软件客户端发送的第一业务报文的源地址信息是123.12.1.2:5482,其中源地址是应用软件客户端的ip地址123.12.1.2,源端口号是5482;第一业务报文的目的地址信息是122.13.3.2:8080,其中目的ip地址是清洗设备1的vip地址122.13.3.2,目的端口号是8080。

2)、清洗设备1接收到第一业务报文后,在第一业务报文的选项(option)字段中添加所述第一业务报文的源地址信息,将第一业务报文的源地址信息替换为清洗设备1的lip地址信息,将第一业务报文的目的地址信息替换为会话处理设备的vip地址信息,从而生成第二业务报文,将第二业务报文发送至会话处理设备。

清洗设备1发送的第二业务报文的源地址信息是121.13.4.2:5433,其中源地址是清洗设备1的lip地址121.13.4.2,源端口号是5433;第二业务报文的目的地址信息是120.14.5.2:8080,其中目的ip地址是会话处理设备的vip地址120.14.5.2,目的端口号是8080。

可选地,清洗设备1从第一业务报文中提取应用标识(假设为appid1),将应用标识也添加到第一业务报文的选项字段中,从而生成第二业务报文。

其中,应用标识是用来唯一标识应用软件客户端的使用者,是应用软件客户端的使用者打开应用时的应用唯一标识,应用标识由应用软件客户端提供。

3)会话处理设备从第二业务报文的选项字段中提取第一业务报文的源地址信息即应用软件客户端的ip地址和端口号,根据提取到的地址信息在已经建立的会话表中查找是否存在匹配的会话,利用匹配的会话将所述第二业务报文的源地址信息由123.12.1.2:5482转换为会话处理设备的lip地址信息119.15.6.2:5433,将所述第二业务报文的目的地址信息由会话处理设备的lip地址信息120.14.5.2:8080转换为appserver的ip地址信息118.16.7.3:8080从而生成第三业务报文。

可选地,会话处理设备从第二业务报文的选项字段中提取第一业务报文的源地址信息即应用软件客户端的ip地址和端口号之后,将所述第二业务报文的源地址信息替换为所述第一业务报文的源地址信息,然后执行根据提取到的地址信息在已经建立的会话表中查找是否存在匹配的会话。

可选地,在第二业务报文的选项字段中携带应用标识时,会话处理设备从第二业务报文中提取应用标识appid1,将应用标识appid1与第三业务报文的ip五元组进行一一关联,应用标识appid1和对应的ip五元组用于唯一标识会话处理设备与应用服务器之间建立的会话。

会话处理设备生成的第三业务报文的源地址信息123.12.1.2:5482,其中源地址是应用软件客户端的ip地址123.12.1.2,源端口号是5482;第三业务报文的目的地址信息是120.14.5.2:8080,其中目的ip地址是会话处理设备的vip地址120.14.5.2,目的端口号是8080。

4)会话处理设备向appserver发送第三业务报文。

其中,第一业务报文、第二业务报文和第三业务报文中的报文载荷内容不变,只是各自对应的ip五元组不同。

当清洗设备1受到攻击时,应用软件客户端由于无法继续与清洗设备1的vip地址建立连接,则根据预先设置的策略修改应用访问的目的地址,将应用访问的目的地址信息由清洗设备1的vip地址信息修改为清洗设备2的vip地址信息,具体过程如下:

5)应用软件客户端通过互联网访问清洗设备2。应用软件客户端发送的第四业务报文的源地址信息是123.12.1.2:5482,其中源地址是应用软件客户端的ip地址123.12.1.2,源端口号是5482;第四业务报文的目的地址信息是122.13.3.3:8080,其中目的ip地址是清洗设备2的vip地址122.13.3.3,目的端口号是8080。

6)、清洗设备2接收到第四业务报文后,在第四业务报文的选项(option)字段中添加所述第四业务报文的源地址信息,将第四业务报文的源地址信息替换为清洗设备2的lip地址信息,将第一业务报文的目的地址信息替换为会话处理设备的vip地址信息,从而生成第五业务报文,将第五业务报文发送至会话处理设备。

清洗设备2发送的第五业务报文的源地址信息是121.13.4.3:5433,其中源地址是清洗设备2的lip地址121.13.4.3,源端口号是5433;第五业务报文的目的地址信息是120.14.5.2:8080,其中目的ip地址是会话处理设备的vip地址120.14.5.2,目的端口号是8080。

可选地,清洗设备2从第四业务报文中提取应用标识(假设为appid2),将应用标识也添加到第四业务报文的选项字段中,从而生成第五业务报文。

7)会话处理设备从第五业务报文的选项字段中提取第四业务报文的源地址信息即应用软件客户端的ip地址和端口号,将所述第五业务报文的源地址信息替换为所述第四业务报文的源地址信息。

可选地,在第五业务报文的选项字段中携带应用标识时,会话处理设备从第五业务报文中提取应用标识appid2,将应用标识appid2与第五业务报文的ip五元组进行一一关联,应用标识appid2和对应的ip五元组用于唯一标识会话处理设备与应用服务器之间建立的会话。

会话处理设备替换后的第五业务报文的源地址信息123.12.1.2:5482,其中源地址是应用软件客户端的ip地址123.12.1.2,源端口号是5482;第六业务报文的目的地址信息是120.14.5.2:8080,其中目的ip地址是会话处理设备的vip地址120.14.5.2,目的端口号是8080。

进一步的,会话处理设备将第五业务报文的源地址信息由123.12.1.2:5482转换为会话处理设备的lip地址信息119.15.6.2:5433,将第五业务报文的目的地址信息由会话处理设备的lip地址信息120.14.5.2:8080转换为appserver的ip地址信息118.16.7.3:8080,从而生成第六业务报文。

8)会话处理设备将第六业务报文发送至应用服务器。

在以上过程中步骤3)和步骤7)是保证会话不中断的关键步骤,若上述步骤7中,若应用标识appid2与应用标识appid1相同,且应用标识appid2对应的ip五元组与应用标识appid1对应的ip五元组也相同时,表明步骤1~步骤4中传输的业务报文和步骤5~步骤7中传输的业务报文属于同一个会话,此时回源平台针对步骤7传输的业务报文利用步骤5中已经建立的会话进行后续的地址转换,无需重新建立会话,这样能够保持应用和应用服务器之间的会话不中断。

可选地,若应用软件客户端发送的业务报文中不携带应用标识时,若会话处理设备发送的两个业务报文的ip五元组相同时,说明这两个业务报文属于同一个会话,此时会话处理设备不会与应用服务器之间断开连接,利用已经建立的会话进行后续的地址转换,能够保持应用和应用服务器之间的会话不中断。

需要说明的是,若会话处理设备在发送第三业务报文之后,在预设时长内没有收到来源于应用软件客户端的业务报文时,会话处理设备断开与应用服务器之间的连接。

其中,第四业务报文、第五业务报文和第六业务报文中的报文载荷内容不变,只是各自对应的ip五元组不同。

需要说明的是,为了保证会话的安全性,上述图8中的清洗设备1和清洗设备2对接收到的业务报文执行安全校验功能,图9所示以清洗设备1为例进行说明,清洗设备2执行的过程与清洗设备1的执行过程类似,在此不再赘述。

1),除执行图8中的步骤1)之外,终端设备上的应用软件客户端还需要执行:在第一业务报文的选项字段中添加第一校验串,第一校验串是appid1,应用软件客户端生成的随机数(random)和第一码串按照预设方式进行组合得到的。第一码串是对第一业务报文的初始采样值、应用软件客户端的端口号和应用软件客户端生成的随机数按照预设加密算法进行加密得到。预设加密算法是清洗设备1与应用软件客户端预先约定好的。

需要说明的是,这里的第一校验串可以封装在第一业务报文的tcpoption,也可以封装在第一业务报文的ipoption中,图9中将第一校验串封装在第一业务报文的ipoption中,将appid1和appip封装在第一业务报文的tcpoption中。

2),清洗设备1接收到第一业务报文后,除执行图8中的步骤2)之外,还需要执行:在第一业务报文的选项字段中,提取第一校验串和应用软件客户端生成的random,并从第一业务报文的源地址信息中提取所述应用软件客户端的端口号,对接收到的第一业务报文进行重新采样得到第一采样值。

需要说明的是,清洗设备1和应用软件客户端对业务报文设置的采样算法是相同的。

清洗设备1将第一采样值、所述应用软件客户端的端口号和appid1按照预设加密算法进行加密得到第二码串。

一种可能的实现方式中,若第一码串和第二码串相同时确定所述第一业务报文是安全的报文继续执行后续步骤。

一种可能的实现方式中,清洗设备1对appid1,应用软件客户端生成的随机数和第一码串按照预设方式进行组合得到第二校验串,若第一校验串和第二校验串相同时确定所述第一业务报文是安全的报文继续执行后续步骤,具体可参阅上述步骤3)~步骤4)。

基于上述实施例,参阅图10所示,本申请实施例提供一种清洗系统,包括会话处理设备和至少两个清洗设备,

所述至少两个清洗设备中的第一清洗设备,用于接收应用软件客户端发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端的地址和端口号,所述第一业务报文的目的地址信息是所述第一清洗设备的虚拟网际协议vip地址和第一端口号;对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述第一清洗设备的本地网际协议lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为所述会话处理设备的vip地址和第三端口号;将所述第二业务报文发送至所述会话处理设备;

所述会话处理设备,用于从所述第二业务报文的选项字段中提取地址信息,根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项;如果存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项,利用所述会话表项中包含的地址映射信息对所述第二业务报文执行第二地址替换处理,从而生成第三业务报文,所述第二地址替换处理是指将所述第二业务报文的源地址信息替换为所述会话处理设备的lip地址和端口号,将所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号;将所述第三业务报文发送至应用服务器。

可选地,所述第一业务报文的选项字段中还携带应用标识,所述应用标识为所述应用软件客户端的唯一标识,或所述应用软件客户端的端口号,或所述应用软件客户端的唯一标识和所述应用软件客户端的端口号的组合。

可选地,所述第一业务报文中还携带第一校验串和第一码串,所述第一清洗设备接收到所述第一业务报文之后,执行第一地址替换处理之前,还用于:

从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用标识、所述应用软件客户端生成的随机数和所述第一码串进行组合得到的;

从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值;

从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串;

将所述应用标识、所述应用软件客户端生成的随机数和所述第二码串按照所述预定义方式进行组合得到所述第二校验串;

确定所述第一校验串与所述第二校验串相同。

可选地,所述第一业务报文中还携带第一校验串和第一码串,所述第一清洗设备接收到所述第一业务报文之后,执行第一地址替换处理之前,还用于:

从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用软件客户端生成的随机数和所述第一码串进行组合得到的;

从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值;

从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串;

确定所述第一码串与所述第二码串相同。

可选地,所述第一业务报文的选项字段位于所述第一业务报文的网际协议ip报文头或传输控制协议tcp报文头。

可选地,所述会话处理设备根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址的组合对应的会话表项时,具体用于:

将所述第二业务报文的源地址信息替换为提取到的地址信息,从而获得替换后的第二业务报文;

根据所述替换后的第二业务报文的源地址信息和目的地址的组合在所述会话表中查找是否存在与替换后的所述第二业务报文的源地址信息和目的地址的组合对应的会话表项;

所述第二地址替换处理是指将所述替换后的第二业务报文源地址信息替换为所述会话处理设备的lip地址和端口号,将替换后的所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号。

基于上述实施例,参阅图11所示,本申请实施例提供一种清洗设备110,包括接收单元111,生成单元112,发送单元113,其中,

接收单元111,用于接收应用软件客户端发送的第一业务报文,所述第一业务报文的源地址信息为所述应用软件客户端的地址和端口号,所述第一业务报文的目的地址信息是所述清洗设备110的vip地址和第一端口号。

生成单元112,用于对所述第一业务报文执行第一地址替换处理,并且在所述第一业务报文的选项字段中添加替换之前的所述第一业务报文的源地址信息,从而生成第二业务报文,所述第一地址替换处理是指将所述第一业务报文的源地址信息替换为所述清洗设备110的lip地址和第二端口号,将所述第一业务报文的目的地址信息替换为会话处理设备的vip地址和第三端口号。

发送单元113,用于将所述第二业务报文发送至所述会话处理设备;

可选地,所述第一业务报文的选项字段中还携带应用标识,所述应用标识为所述应用软件客户端的唯一标识,或所述应用软件客户端的端口号,或所述应用软件客户端的唯一标识和所述应用软件客户端的端口号的组合。

可选地,所述第一业务报文中还携带第一校验串和第一码串,在所述接收单元111接收到所述第一业务报文之后,所述生成单元112执行第一地址替换处理之前,还用于:

从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用标识、所述应用软件客户端生成的随机数和所述第一码串进行组合得到的;

从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值;

从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串;

将所述应用标识、所述应用软件客户端生成的随机数和所述第二码串按照所述预定义方式进行组合得到所述第二校验串;

确定所述第一校验串与所述第二校验串相同。

可选地,所述第一业务报文中还携带第一校验串和第一码串,在所述接收单元111接收到所述第一业务报文之后,所述生成单元112执行第一地址替换处理之前,还用于:

从所述第一业务报文中提取所述第一校验串和所述第一码串,所述第一码串是所述应用软件客户端对所述应用软件客户端生成的随机数、所述第一业务报文的初始采样值和所述应用软件客户端的端口号,利用预设加密算法进行加密得到的,所述第一校验串是按照预定义方式对所述应用软件客户端生成的随机数和所述第一码串进行组合得到的;

从所述第一校验串中提取所述应用软件客户端生成的随机数,并对所述第一业务报文采样得到第一采样值;

从所述第一业务报文的源地址信息中获取所述应用软件客户端的端口号,利用所述预设加密算法对所述应用软件客户端生成的随机数、所述第一采样值和所述应用软件客户端的端口号进行加密得到第二码串;

确定所述第一码串与所述第二码串相同。

可选地,所述第一业务报文的选项字段位于所述第一业务报文的ip报文头或tcp报文头。

清洗设备110应用于上述实施例所示的场景中,实现其中清洗功能模块或者清洗设备的功能。清洗设备110可以实现的其他附加功能、以及与应用软件客户端或应用服务器的交互过程,请参照上述实施例中对清洗功能模块或者清洗设备的描述,在这里不再赘述。

基于上述实施例,参阅图12所示,本申请实施例提供一种会话处理设备120,包括提取单元121,生成单元122,发送单元123,其中,

提取单元121,用于从所述第二业务报文的选项字段中提取地址信息。

生成单元122,用于根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项;如果存在与所述提取到的地址信息和所述第二业务报文的目的地址信息的组合对应的会话表项,利用所述会话表项中包含的地址映射信息对所述第二业务报文执行第二地址替换处理,从而生成第三业务报文,所述第二地址替换处理是指将所述第二业务报文的源地址信息替换为所述会话处理设备的lip地址和端口号,将所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号。

发送单元123,用于将所述第三业务报文发送至应用服务器。

可选地,所述生成单元122根据提取到的地址信息在已经建立的会话表中查找是否存在与所述提取到的地址信息和所述第二业务报文的目的地址的组合对应的会话表项时,具体用于:

将所述第二业务报文的源地址信息替换为提取到的地址信息,从而获得替换后的第二业务报文;

根据所述替换后的第二业务报文的源地址信息和目的地址的组合在所述会话表中查找是否存在与替换后的所述第二业务报文的源地址信息和目的地址的组合对应的会话表项;

所述第二地址替换处理是指将所述替换后的第二业务报文源地址信息替换为所述会话处理设备120的lip地址和端口号,将替换后的所述第二业务报文的目的地址信息替换为所述应用服务器的地址和端口号。

会话处理设备120应用于上述实施例所示的场景中,实现其中回源功能模块或者会话处理设备的功能。会话处理设备120可以实现的其他附加功能、以及与应用软件客户端或应用服务器的交互过程,请参照上述实施例中对清洗功能模块或者清洗设备的描述,在这里不再赘述。

本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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