一种流量报文转发方法、装置,中间设备及存储介质与流程

文档序号:29403899发布日期:2022-03-26 10:08阅读:102来源:国知局
一种流量报文转发方法、装置,中间设备及存储介质与流程

1.本技术涉及通信技术领域,具体而言,涉及一种流量报文转发方法、装置,中间设备及存储介质。


背景技术:

2.为了增加网络系统的安全,负载均衡器等中间设备可以具备ssl(server name indication,服务器名称标示)流量透视镜功能。具备ssl流量透视镜功能的负载均衡器在接收到终端设备的ssl加密流量报文后,会对ssl加密流量报文进行解密,如果解密成功,则将ssl加密流量报文转发至远端网站进行访问。此外,解密成功后,还可以将流量旁路一份做进一步分析。而不具备ssl流量透视镜功能的负载均衡器在接收到流量报文后,均直接进行转发。
3.通常情况下,终端设备安装了负载均衡器的信任证书后,均可以通过ssl加密流量报文对外发起通话,但是发明人在实际研究中发现,若是终端设备做了特殊校验,比如防止中间人代理,改动报文协议(如将报文协议更改为私有协议)等操作后,可能导致负载均衡器无法对终端设备发送的ssl加密流量报文进行解密,或者出现负载均衡器解密失败的情况,进而使得终端设备无法访问远端网站。


技术实现要素:

4.本技术实施例的目的在于提供一种流量报文转发方法、装置,中间设备及存储介质,使得即使负载均衡器等中间设备具备ssl流量透视镜功能,也能够令做了特殊校验的终端设备正常访问远端网站。
5.本发明是这样实现的:
6.第一方面,本技术实施例提供一种流量报文转发方法,应用于中间设备,所述方法包括:接收终端设备发送的握手报文;其中,所述握手报文携带服务器名称标示;解析所述握手报文,判断所述握手报文携带的所述服务器名称标示是否存储在预设的白名单中;当所述握手报文携带的服务器名称标示在所述预设的白名单中,则将所述终端设备发送的与所述服务器名称标示对应的流量报文直接转发。
7.在本技术实施例中,中间设备中预先配置有白名单。白名单中存储有服务器名称标示,与白名单中存储的服务器名称标示对应的流量报文无需进行解密操作。通过该方式,可以使得中间设备在接收到终端设备发送的握手报文后,可以先解析出握手报文所携带的服务器名称标示是否存储在预设的白名单,若是,则直接将后续该终端设备发送的与服务器名称标示对应的流量报文进行转发,以实现对于做了特殊校验的终端设备也能够正常访问远端网站。
8.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述方法还包括:当所述握手报文携带的服务器名称标示不在所述预设的白名单中,对所述终端设备发送的与所述服务器名称标示对应的流量报文进行解密;若解密成功,则将与所述服务器名称标
示对应的流量报文直接转发。
9.在本技术实施例中,若是握手报文携带的服务器名称标示不在预设的白名单中,则对终端设备发送的与服务器名称标示对应的流量报文进行解密,通过该方式以保证对非白名单的所有流量报文进行解密验证。
10.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述方法还包括:若解密失败,基于与所述服务器名称标示对应的流量报文的解密失败情况,确定是否将所述服务器名称标示添加至所述预设的白名单中。
11.在本技术实施例中,若中间设备对终端设备发送的与服务器名称标示对应的流量报文解密失败,可以根据解密失败情况确定是否要将解密失败的服务器名称标示添加至预设的白名单中,通过该方式可以实现对白名单的更新。
12.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述基于与所述服务器名称标示对应的流量报文的解密失败情况,确定是否将所述服务器名称标示添加至所述预设的白名单中,包括:当所述服务器名称标示对应的流量报文的解密失败的次数大于预设次数,则将所述服务器名称标示添加至所述预设的白名单中。
13.在本技术实施例中,用户可以预先在中间设备中配置解密失败的次数,进而使得中间设备在某个服务器名称标示对应的流量报文的解密失败的次数大于预设次数时,将该服务器名称标示添加至预设的白名单中,以根据用户配置需求完成对白名单的更新。
14.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述基于与所述服务器名称标示对应的流量报文的解密失败情况,确定是否将所述服务器名称标示添加至所述预设的白名单中,包括:当所述服务器名称标示对应的流量报文的解密失败原因为网络异常时,则不将所述服务器名称标示添加至所述预设的白名单中。
15.当导致解密失败的原因为网络异常时,此时不会对白名单进行更新,以避免在网络异常的情况下,白名单进行不合理地更新。
16.结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述接收终端设备发送的握手报文之前,所述方法还包括:确定自身开启ssl流量透视镜功能。
17.在本技术实施例中,中间设备只有在确定自身开启ssl流量透视镜功能才执行报文的解析和解密,通过该方式,可以加快报文处理速率。
18.结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述方法还包括:在确定自身未开启ssl流量透视镜功能后,直接将所述终端设备发送的流量报文进行转发。
19.在本技术实施例中,在确定自身未开启ssl流量透视镜功能后,则直接将终端设备发送的流量报文进行转发,以实现对流量报文的快速转发。
20.第二方面,本技术实施例还提供一种流量报文转发装置,应用于中间设备,所述装置包括:接收模块,用于接收终端设备发送的握手报文;其中,所述握手报文携带服务器名称标示;解析模块,用于解析所述握手报文,判断所述握手报文携带的所述服务器名称标示是否存储在预设的白名单中;转发模块,用于当所述握手报文携带的服务器名称标示在所述预设的白名单中,则将所述终端设备发送的与所述服务器名称标示对应的流量报文直接转发。
21.第三方面,本技术实施例提供一种中间设备,包括:处理器和存储器,所述处理器和所述存储器连接;所述存储器用于存储程序;所述处理器用于调用存储在所述存储器中
circuit,asic)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处理器等。
37.存储器120可以是,但不限于,随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可编程只读存储器(programmable read-only memory,prom)、可擦可编程序只读存储器(erasable programmable read-only memory,eprom),以及电可擦编程只读存储器(electric erasable programmable read-only memory,eeprom)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
38.需要说明的是,图2所示的结构仅为示意,本技术实施例提供的中间设备100还可以具有比图2更少或更多的组件,或是具有与图2所示不同的配置。此外,图2所示的各组件可以通过软件、硬件或其组合实现。
39.上述的终端设备200可以是,但不限于个人计算机(personal computer,pc)、智能手机、平板电脑、个人数字助理(personal digital assistant,pda)、移动上网设备(mobile internet device,mid)等。上述的服务器300可以是但不限于网络服务器、数据库服务器、云服务器或由多个子服务器构成的服务器集成等。当然,上述列举的设备仅用于便于理解本技术实施例,其不应作为对本实施例的限定。终端设备200与服务器300的具体结构也可以参考图2所示出的结构,为了避免累赘,此处不作重复说明,相同部分互相参考即可。
40.请参阅图3,图3为本技术实施例提供的流量报文转发方法的步骤流程图,该方法应用于图2所示的中间设备100。需要说明的是,本技术实施例提供的流量报文转发方法不以图3及以下所示的顺序为限制,该方法包括:步骤s101-步骤s103。
41.步骤s101:接收终端设备发送的握手报文;其中,握手报文携带服务器名称标示。
42.服务器名称标示(server name indication,sni)是tls(transport layer security,安全传输层协议)的扩展。在该协议下,终端设备与中间设备在握手过程开始时通过sni以确定所需连接的服务器的主机名称。
43.步骤s102:解析握手报文,判断握手报文携带的服务器名称标示是否存储在预设的白名单中。
44.然后,中间设备对握手报文进行解析,以判断握手报文所携带的服务器名称标示是否与预设的白名单中的服务器名称标示相匹配。
45.需要说明的是,白名单中存储有服务器名称标示。与白名单存储的服务器名称标示对应的流量报文无需进行解密操作。
46.在初始时,可以由用户自定义一些服务器名称标示存储于白名单中。当然,也可以根据后期中间设备对流量报文的解密情况,确定是否将流量报文携带的服务器名称标示添加至白名单中。
47.步骤s103:当握手报文携带的服务器名称标示在预设的白名单中,则将终端设备发送的与服务器名称标示对应的流量报文直接转发。
48.最后,若是握手报文携带的服务器名称在预设的白名单中,则直接将该流量报文进行转发。
49.需要说明的是,上述流量报文为ssl加密流量报文。终端设备在建立ssl加密流量
报文之前需要先通过握手报文与中间设备建立连接。
50.中间设备与终端设备的握手过程包括证书的校验、密钥的交换。在握手完成后,终端设备再通过交换得到的密钥对流量数据进行加密,以构建ssl加密流量报文。而目前具备ssl流量透视镜功能的负载均衡器在接收到终端设备的ssl加密流量报文后,会旁路一份流量进行解密,若是旁路的流量解密成功,则将ssl加密流量报文进行转发,以实现终端设备对远端网站的访问。但若是终端设备做了特殊校验,比如防止中间人代理,改动报文协议(如将报文协议更改为私有协议)等操作后,可能导致负载均衡器无法对终端设备发送的ssl加密流量报文进行解密,或者出现负载均衡器解密失败的情况,进而使得终端设备无法访问远端网站。
51.而本技术实施例中,中间设备中预先配置有白名单。白名单中存储有服务器名称标示,与白名单中存储的服务器名称标示对应的流量报文无需进行解密操作。通过该方式,可以使得中间设备在接收到终端设备发送的握手报文后,可以先解析握手报文,判断握手报文所携带的服务器名称标示是否存储在预设的白名单,若是,则直接将后续终端设备发送的与服务器名称标示对应的流量报文进行转发,以实现对于做了特殊校验的终端设备也能够正常访问远端网站。
52.在一实施例中,当握手报文携带的服务器名称标示不在预设的白名单中,对终端设备发送的与服务器名称标示对应的流量报文进行解密。
53.也即,当中间设备确定握手报文携带的服务器名称标示不在预设的白名单中,则通过ssl流量透视镜功能对该流量报文进行解密。
54.若解密成功,则将与服务器名称标示对应的流量报文直接转发。
55.也即,若是握手报文携带的服务器名称标示不在预设的白名单中,则对终端设备发送的与服务器名称标示对应的流量报文进行解密,通过该方式以保证对非白名单的所有流量报文进行解密验证。
56.而若解密失败,则基于与服务器名称标示对应的流量报文的解密失败情况,确定是否将服务器名称标示添加至预设的白名单中。
57.也即,若中间设备对终端设备发送的与服务器名称标示对应的流量报文解密失败,可以根据解密失败情况确定是否要将解密失败的服务器名称标示添加至预设的白名单中,通过该方式可以实现对白名单的更新。
58.作为一种实施方式,上述基于与服务器名称标示对应的流量报文的解密失败情况,确定是否将服务器名称标示添加至预设的白名单中,可以具体包括:当服务器名称标示对应的流量报文的解密失败的次数大于预设次数,则将服务器名称标示添加至预设的白名单中。
59.其中,预设次数可以根据实际情况设定,比如预设次数可以是五次、七次、十次等等,本技术不作限定。
60.示例性的,当服务器名称标示a1对应的流量报文的解密失败的次数大于预设次数五次,则此时将服务器名称标示a1添加至预设的白名单中。
61.此外,上述的预设次数还可以是一次,即,中间设备若对与服务器名称标示对应的流量报文解密失败,则无需进行后续的验证,直接将该服务器名称标示添加至白名单,以使白名单进行更新。
62.可见,在本技术实施例中,用户可以预先在中间设备中配置解密失败的次数,进而使得中间设备对某个服务器名称标示对应的流量报文的解密失败的次数大于预设次数,则将该服务器名称标示添加至预设的白名单中,以根据用户配置需求完成对白名单的更新。
63.作为另一种实施方式,上述基于与服务器名称标示对应的流量报文的解密失败情况,确定是否将服务器名称标示添加至预设的白名单中,可以具体包括:当服务器名称标示对应的流量报文的解密失败原因为网络异常时,则不将服务器名称标示添加至预设的白名单中。
64.需要说明的是,当导致解密失败的原因为网络异常时,此时不会对白名单进行更新,以避免在网络异常的情况下,白名单进行不合理地更新。
65.在一实施例中,在上述步骤s101之前,该方法还包括:中间设备判断自身是否开启ssl流量透视镜功能。
66.当确定自身开启ssl流量透视镜功能,则执行步骤s101。也即,在本技术实施例中,中间设备只有在确定自身开启ssl流量透视镜功能才执行报文的解析和解密,通过该方式,可以加快报文处理速率。
67.当确定自身未开启ssl流量透视镜功能,则直接将终端设备发送的流量报文进行转发。需要说明的是,在中间设备未开启ssl流量透视镜功能时,终端设备所发送的流量报文可以为不加密的报文。也即,在本技术实施例中,在确定自身未开启ssl流量透视镜功能后,则直接将终端设备发送的流量报文进行转发,以实现对流量报文的快速转发。
68.综上,当终端设备请求访问远端网站时,流量报文会经过负载均衡器等设备,当中间设备未开启ssl流量透视镜功能时,中间设备会自动转发流量报文到互联网,以实现正常上网。当中间设备开启ssl流量透视镜功能时,如果终端设备请求访问的目的主机在白名单中,则不做解密直接转发,实现正常上网。但是如果终端设备请求访问的目的主机不在白名单中,则会做ssl流量解密,对于一些无法实现访问的流量报文会做统计分析并根据情况确定是否添加到白名单中。
69.下面结合图4,以一个完整示例对上述流量报文转发方法进行说明。首先,中间设备会确定自身是否开启ssl流量透视,若否,中间设备会自动转发终端设备发送的流量报文到互联网,以实现正常上网。若是,则解析终端设备发送的握手报文,并判断握手报文携带的服务器名称标示是否存储在预设的白名单中。如果握手报文携带的服务器名称标示在存储在预设的白名单中,则不做解密直接转发,实现正常上网。若握手报文携带的服务器名称标示不在存储在预设的白名单中,则对后续终端设备发送的流量报文进行解密,并记录该流量报文对应的服务器名称标示。若解密成功,则将与该流量报文直接转发。若解密失败,则基于与服务器名称标示对应的流量报文的解密失败情况,确定是否将服务器名称标示添加至预设的白名单中。
70.请参阅图5,基于同一发明构思,本技术实施例还提供一种流量报文转发装置400,该装置包括:
71.接收模块410,用于接收终端设备发送的握手报文;其中,所述握手报文携带服务器名称标示。
72.解析模块420,用于解析所述握手报文,判断所述握手报文携带的所述服务器名称标示是否存储在预设的白名单中。
73.转发模块430,用于当所述握手报文携带的服务器名称标示在所述预设的白名单中,则将所述终端设备发送的与所述服务器名称标示对应的流量报文直接转发。
74.可选地,该装置还包括解密模块。
75.解密模块用于当所述握手报文携带的服务器名称标示不在所述预设的白名单中,对所述终端设备发送的与所述服务器名称标示对应的流量报文进行解密;若解密成功,则将与所述服务器名称标示对应的流量报文直接转发。
76.可选地,该装置还包括确定模块。
77.确定模块用于若解密失败,基于与所述服务器名称标示对应的流量报文的解密失败情况,确定是否将所述服务器名称标示添加至所述预设的白名单中。
78.可选地,确定模块具体用于当所述服务器名称标示对应的流量报文的解密失败的次数大于预设次数,则将所述服务器名称标示添加至所述预设的白名单中。
79.可选地,确定模块还具体用于当所述服务器名称标示对应的流量报文的解密失败原因为网络异常时,则不将所述服务器名称标示添加至所述预设的白名单中。
80.可选地,接收模块410还用于在接收终端设备发送的握手报文之前,确定自身开启ssl流量透视镜功能。
81.可选地,转发模块430还用于在确定自身未开启ssl流量透视镜功能后,直接将所述终端设备发送的流量报文进行转发。
82.需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
83.基于同一发明构思,本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被运行时执行上述实施例中提供的方法。
84.该存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
85.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
86.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
87.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
88.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另
一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
89.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1