CN117097591A - 一种应用安全接入网关***及路由转发方法 - Google Patents
一种应用安全接入网关***及路由转发方法 Download PDFInfo
- Publication number
- CN117097591A CN117097591A CN202311356991.2A CN202311356991A CN117097591A CN 117097591 A CN117097591 A CN 117097591A CN 202311356991 A CN202311356991 A CN 202311356991A CN 117097591 A CN117097591 A CN 117097591A
- Authority
- CN
- China
- Prior art keywords
- filter
- application
- route
- service
- forwarding
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000006243 chemical reaction Methods 0.000 claims abstract description 6
- 230000003068 static effect Effects 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 13
- 238000013475 authorization Methods 0.000 claims description 8
- 238000002347 injection Methods 0.000 claims description 8
- 239000007924 injection Substances 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- 230000014509 gene expression Effects 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 60
- 238000010586 diagram Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种应用安全接入网关***及路由转发方法,***包括后台管理***和服务网关***,所述服务网关***包括前置路由器、全局路由表、虚拟转发器、全局转发过滤器。网关集群分组为若干个具有独立子域名的网关集群组,每个网关集群组设置一个全局路由表,每个应用对应一个虚拟转发器;所述前置路由器用于依据全局路由表匹配路由对象;所述全局路由表用于为前置路由器提供匹配依据和策略;所述路由组表用于负责应用所有请求的路由转发工作;所述全局转发过滤器用于实现请求数据包的复制转发和协议转换。本发明具有灵活可扩展的集群架构,可以支持网关服务线性和不停机扩展,请求流量自动分流,保证了服务平稳运行。
Description
技术领域
本发明属于网络数据传输的技术领域,具体涉及一种应用安全接入网关***及路由转发方法。
背景技术
在企业数字化和办公移动化建设过程中,随着各种移动平台的逐步推广运用,例如企业微信等,越来越多的核心业务实现移动化办公,这就对业务数据的安全性提出了更高的要求,必须保障业务数据在互联网传输过程中的安全性。
现有技术中,通过在企业现有技术架构路线中统一建设的安全交互平台,可以部分满足移动平台中离线应用的业务数据网络传输安全要求。如图1所示,安全交互平台主要由三个模块组成:安全交互后台、安全交互代理、JS-SDK。安全交互后台在企业数据中心统一部署实施,作为移动端互联网请求唯一入口,安全交互后台统一将请求路由转发到各业务应用的后台服务。在移动端为APP应用提供JS-SDK集成组件,通过JS-SDK提供的接口可以在手机上启动安全交互代理进程,并获得安全交互代理的访问地址。安全交互代理与安全交互后台负责建立安全网络通道,移动APP所有的业务请求地址都必须是安全交互代理的访问地址,业务请求通过建立的安全网络通道转发到业务后台服务。
目前,常用的服务网关***大部分都是基于Spring Cloud Gateway扩展实现的,使用注册中心组件动态构建路由或者通过配置文件构建静态路由,默认情况下只具备基本的请求路由转发功能,主要存在以下问题:
①现有的服务网关***只能以微服务为单位进行接入管理,构建的路由表也是以微服务为单位。在实际的生产运营和运维体系中,都是以业务***为单位的管理模式。在微服务架构下,大型的业务***都是由多个微服务组件构成,这就需要将业务***的微服务打包为一个整体,统一管理和配置。
②只有基本的路由转发功能,没有完善的安全防护措施。网关作为业务***的统一入口,除了基本的请求路由转发,还需要必要的安全防护措施,保障业务***接口和数据的安全。
③配置参数无法在线维护并实时生效。传统的方式都是通过配置文件的方式维护***参数,参数变更以后需要重启***,参数才能生效,在高并发的网关***中断服务是不可取的。
④只支持通过注册中心构建动态路由,或者通过配置文件构建静态路由。但是静态路由相关的配置参数无法在线编辑,修改静态路由参数后必须重启服务网关。
⑤无法对多种应用层网络协议提供支持,一般对网关服务只支持HTTP/HTTPS协议。支持行业上多种主流网络数据传输协议(例如Websocket、Dubbo等)也存在迫切的需求,通过协议解析扩展机制支持私有数据传输协议。
⑥在常规的基于应用请求路径的路由匹配策略之外,没有其他扩展机制实现灵活的路由匹配实现,例如根据请求元数据、客户端源地址匹配等策略。针对应用私有数据传输协议,要能够快速的定制路由匹配策略。
⑦随着接入的应用越来越多,全局路由表越发庞大,导致请求数据包路由匹配效率急剧下降,严重影响应用的效率和吞吐量。
随着各种分布式开发框架的发展,不同用途的分布式网络数据通讯协议被采用,例如应用层跨平台文本协议HTTP,基于TCP/IP协议的RPC二进制私有协议、应用层全双工通讯协议Websocket等。这就需要一种服务机制统一管理和协调各种协议的访问和数据包的路由转发。其次,随着接入的应用越来越多,导致全局路由表越发庞大起来,严重影响请求路由匹配效率,降低整个***的吞吐量。整体的应用接入管理***架构无法实现真正的横向服务能力扩展,分摊应用请求的流量。
发明内容
本发明的目的在于提供一种应用安全接入网关***及路由转发方法,旨在解决上述的问题。
本发明主要通过以下技术方案实现:
一种应用安全接入网关***,包括后台管理***和服务网关***,所述后台管理***用于提供WEB端管理界面、应用接入管理、应用配置参数维护;所述服务网关***包括前置路由器、全局路由表、虚拟转发器、全局转发过滤器,所述服务网关***设置有服务端口和管理端口,所述服务端口用于接收请求并发送至前置路由器,所述管理端口用于接入后台管理***;
网关集群分组为若干个具有独立子域名的网关集群组,每个网关集群组分别设置一个全局路由表,所述后台管理***用于使用相应子域名的网关集群组访问应用的服务;每个接入的应用分别对应一个虚拟转发器,虚拟转发器用于负责该应用所有请求的路由转发工作,所述虚拟转发器包括应用配置模块、路由组表;
所述前置路由器用于解析请求数据包使用的数据通讯协议并依据对应应用的网关集群组的全局路由表匹配路由对象,并将匹配成功的路由对象发送至对应应用的虚拟转发器;所述全局路由表用于维护静态路由和动态路由信息,为前置路由器提供API请求匹配依据和策略;所述应用配置模块用于创建静态路由并推送至全局路由表,注册中心用于获取应用服务信息并创建动态路由推送至全局路由表;所述路由组表用于负责应用所有请求的路由转发工作,并发送至全局转发过滤器;所述全局转发过滤器用于负责管理与远程应用的网络通讯,实现请求数据包的复制转发和协议转换。
为了更好地实现本发明,进一步地,所述路由组表包括过滤器链模块、转发模块,所述过滤器链模块用于执行过滤器链,所述转发模块用于将转发请求至全局转发过滤器。
为了更好地实现本发明,进一步地,所述过滤器链包括从前至后依次设置的HTTP检查过滤器、认证授权过滤器、加解密过滤器、防重过滤器、XSS过滤器、SQL注入过滤器。
为了更好地实现本发明,进一步地,所述全局路由表中的路由条目按照匹配优先级由高到低分为静态调整组、动态调整组和默认组。
为了更好地实现本发明,进一步地,所述后台管理***包括应用接入模块、路由转发模块、安全配置模块、配置分发模块;所述应用接入模块用于配置国密SM2密钥对,实现数据加密与签名;所述路由转发模块用于配置路由转发规则,以实现构建路由;所述安全配置模块用于配置过滤器链;所述配置分发模块用于采用主动推送模式,实时分发变更的应用配置参数到所有服务网关。
本发明主要通过以下技术方案实现:
一种应用安全接入网关路由转发方法,采用上述的网关***进行,包括以下步骤:
步骤S100:后台管理***和服务网关***交互,接入应用***;
步骤S200:在应用***接入成功后,所有请求都必须通过服务网关***进行路由转发:
步骤S201:客户端发送请求到服务网关***的服务端口,服务网关***接收到请求后,前置路由器先根据全局路由表匹配策略匹配路由,如果未匹配上路由,则服务网关***直接返回错误提示,如果路由匹配成功,则进入步骤S202;
步骤S202:请求虚拟转发器处理,虚拟转发器将执行过滤器链,过滤器链将依次执行每个过滤器,如果过滤器处理失败,直接返回报错提示,否则过滤器链执行完后,转发模块转发请求至全局转发过滤器;
步骤S203:全局转发过滤器复制请求并转发请求至远程应用,远程应用处理请求并返回响应至全局转发过滤器,全局转发过滤器对响应进行处理,如果处理失败,返回错误提示至服务端,否则返回正常响应至客户端。
为了更好地实现本发明,进一步地,所述步骤S202包括以下步骤:
步骤A1:首先通过HTTP检查过滤器对HTTP协议中请求跨域和请求方法相关的消息头进行检查,请求跨域通过可信任的域名白名单检查相关的消息头Referer、Origin的值,请求方法只允许使用GET和POST;
步骤A1:通过认证授权过滤器实现调用者身份验证和应用接口访问权限检查;
步骤A2:加解密过滤器采用国密SM2和动态SM4组合算法对HTTP请求主体进行解密和响应主体进行加密;
步骤A3:防重放过滤器按照规定的算法和协议生成消息头,服务网关***检查消息头判断请求是否是重复的请求;
步骤A4:防篡改过滤器通过对请求的数据进行签名,服务网关***检查数据的签名是否一致,如果不一致,表示请求的数据被篡改;
步骤A5:XSS脚本攻击过滤器和SQL注入过滤器分别通过正则表达式检查请求参数和请求主体是否存在相关的关键字。
为了更好地实现本发明,进一步地,所述步骤S100包括以下步骤:
步骤S101:用户通过后台管理***提供的UI界面操作应用配置,后台管理***使用关系数据库持久化应用配置数据;
步骤S102:服务网关***使用管理端口接收应用配置参数列表,服务网关***中的虚拟转发器组件根据应用配置参数列表更新路由组表,更新应用的路由转发规则和过滤器链;
步骤S103:路由组表组件将配置的静态路由推送给全局路由表组件,全局路由表组件根据静态路由配置更新路由表信息;
步骤S104:所述服务网关***监听管理端口和服务端口,所述管理端口服务于控制面,处理应用配置参数和服务网关运行状态指标查询;所述服务端口服务于数据面,处理应用***的业务请求。
本发明的有益效果如下:
(1)本发明通过将网关集群分组为若干个具有独立子域名的网关集群组,使网关***具有灵活可扩展的集群架构,可以支持网关服务线性和不停机扩展,请求流量自动分流,保证服务平稳运行;
(2)本发明的全局路由表根据集群分片处理和路由条目优先级排序策略,提供路由匹配性能;在路由匹配时,先计算静态调整组中的条目,接下来再匹配动态调整组路由条目,最后计算默认组条目。这样设计的目的是为了让管理员能够干预动态调整的结果,提高了服务网关请求匹配性能,具有较好的实用性;
(3)本发明具有统一的应用请求网络入口,实现了规范化、标准化应用接入管理,降低了应用接入难度,接入的成本更低;本发明支持多类型应用同时接入与应用个性化的安全参数配置;本发明的网关***具有高并发、安全稳定的优点,可以满足多种类型应用接入,支持WEB应用和REST应用的安全接入要求,通用型和适应性更好,对应用***的影响更小,业务***通过少量的整改即可完成接入;
(4)应用通过路由组和过滤器链的工作机制,实现请求路由转发和安全检查功能。本发明实现了配置参数在线管理与实时推送更新生效;路由表支持动态路由和静态路由,静态路由也可以通过后台管理功能实现在线编辑。应用可以通过后台管理按需调整应用配置参数,并将应用配置参数实时推送到服务网关,服务网关能够根据应用配置参数实时更新路由组表;
(5)本发明实现了应用数据在网络传输过程中的安全保障和服务接口授权访问,通过应用层的数据加解密和签名保证数据的完整性和保密性。另外服务网关也需要支持XSS脚本攻击和SQL注入拦截,HTTP协议跨域请求和消息头的保护。
附图说明
图1为现有安全交互平台的原理框图;
图2为本发明的部署架构图;
图3为本发明应用安全接入网关***的总体框架图;
图4为全局路由表的创建关系图;
图5为前置路由器的处理原理图;
图6为网关集群组关系图;
图7为网关全局路由表分组关系图;
图8为应用配置参数管理与实时发布的时序图;
图9为请求路由转发的时序图;
图10为过滤器链执行的时序图;
图11为注册中心的工作原理图。
具体实施方式
实施例1:
一种应用安全接入网关***,如图2所示,服务网关采用集群部署模式,将网关集群分为若干个具有独立子域名的网关集群组,且每个网关集群组对应设置有一个全局路由表,应用服务通过子域名对应关联特定的网关集群组,实现客户端使用相应集群组的子域名访问应用的服务。对应每个应用服务设置有一个虚拟转发器,即对应每个应用服务均设置有一个路由组表。
优选地,如图11所示,服务提供者将服务相关信息注册到注册中心中,所述注册中心用于维护服务注册表,服务网关用于定时从注册中心拉取注册表信息,并更新路由表信息。优选地,在服务提供者的信息包括服务ID、协议、IP地址和端口注册到注册中心中。注册中心通过心跳机制检测服务提供者的健康状态。如果检测到服务已下线,注册中心从注册表中删除服务注册的信息。
优选地,所述网关***包括后台管理***和服务网关***,所述后台管理***用于提供WEB端管理界面、应用接入管理、应用配置参数维护。如图3所示,所述服务网关***包括前置路由器、全局路由表、虚拟转发器、全局转发过滤器,所述服务网关***设置有服务端口和管理端口,所述服务端口用于接收请求并发送至前置路由器,所述管理端口用于接入后台管理***。
优选地,网关集群分组为若干个具有独立子域名的网关集群组,每个网关集群组分别设置一个全局路由表,所述后台管理***用于使用相应子域名的网关集群组访问应用的服务;每个接入的应用分别对应一个虚拟转发器,虚拟转发器用于负责该应用所有请求的路由转发工作,所述虚拟转发器包括应用配置模块、路由组表。
优选地,所述前置路由器用于解析请求数据包使用的数据通讯协议并依据对应应用的网关集群组的全局路由表匹配路由对象,并将匹配成功的路由对象发送至对应应用的虚拟转发器;所述全局路由表用于维护静态路由和动态路由信息,为前置路由器提供API请求匹配依据和策略;所述应用配置模块用于创建静态路由并推送至全局路由表,注册中心用于获取应用服务信息并创建动态路由推送至全局路由表;所述路由组表用于负责应用所有请求的路由转发工作,并发送至全局转发过滤器;所述全局转发过滤器用于负责管理与远程应用的网络通讯,实现请求数据包的复制转发和协议转换。优选地,所述全局路由表中的路由条目按照匹配优先级由高到低分为静态调整组、动态调整组和默认组。
优选地,所述路由组表包括过滤器链模块、转发模块,所述过滤器链模块用于执行过滤器链,所述转发模块用于将转发请求至全局转发过滤器。优选地,所述过滤器链包括从前至后依次设置的HTTP检查过滤器、认证授权过滤器、加解密过滤器、防重过滤器、XSS过滤器、SQL注入过滤器。
优选地,所述后台管理***包括应用接入模块、路由转发模块、安全配置模块、配置分发模块;所述应用接入模块用于配置国密SM2密钥对,实现数据加密与签名;所述路由转发模块用于配置路由转发规则,以实现构建路由;所述安全配置模块用于配置过滤器链;所述配置分发模块用于采用主动推送模式,实时分发变更的应用配置参数到所有服务网关。
本发明通过将网关集群分组为若干个具有独立子域名的网关集群组,使网关***具有灵活可扩展的集群架构,可以支持网关服务线性和不停机扩展,请求流量自动分流,保证服务平稳运行。本发明的全局路由表根据集群分片处理和路由条目优先级排序策略,提供路由匹配性能。本发明具有统一的应用请求网络入口,实现了规范化、标准化应用接入管理;本发明支持多类型应用同时接入与应用个性化的安全参数配置;本发明的网关***具有高并发、安全稳定的优点,可以满足多种类型应用接入,支持WEB应用和REST应用的安全接入要求,通用型和适应性更好,对应用***的影响更小,业务***通过少量的整改即可完成接入。
实施例2:
一种应用安全接入网关***,包括后台管理***和服务网关***,如图3所示,所述服务网关***包括前置路由器、全局路由表、虚拟转发器、全局转发过滤器,所述服务网关***设置有服务端口和管理端口,所述服务端口用于接收请求并发送至前置路由器,所述管理端口用于接入后台管理***。
所述后台管理***用于提供WEB端管理界面,负责应用接入管理,应用配置参数维护,配置参数包括路由转发规则、安全配置和国密SM2密钥对。其中,路由转发规则用于构建路由,安全配置用于配置过滤器链,国密SM2密钥对用于数据加密与签名。应用配置参数变更后,后台管理***采用主动推送模式,实时分发到所有服务网关。
如图2所示,服务网关为了支撑高并发、高可用,一般采用集群部署模式,且位于防火墙后面的网络边界处。服务网关与应用服务一般都部署在相同的数据中心,服务网关与应用服务(应用数据中心)使用局域网进行通讯。为了保障应用配置参数的安全,后台管理和管理终端一般也部署在局域网中。客户端的网络环境相对比较复杂,可以是公司局域网,也可以是互联网。
如图4所示,全局路由表模块负责维护静态路由和动态路由信息,动态路由通过注册中心获取应用服务信息自动创建,静态路由通过应用配置模块信息按需创建,规定静态路由的优先级高于动态路由。优选地,注册中心支持多种三方服务提供商,例如阿里云、华为云的服务治理服务。全局路由表为前置路由器提供API请求匹配依据和策略。
如图5所示,前置路由器负责处理API接口请求数据包,解析请求数据包使用的数据通讯协议,依据全局路由表匹配路由对象。全局路由表根据数据通讯协议和路由配置的匹配策略匹配路由对象。优选地,路由匹配策略是一个开放的接口,可以根据通讯协议和请求数据包特征等信息匹配路由对象。一般常见的匹配策略实现包括:请求路径匹配、请求元数据匹配、请求参数匹配等,可以多种匹配策略逻辑组合实现功能更强大的匹配模式。
虚拟转发器根据匹配上的路由对象,完成请求转发工作。虚拟转发器是面向应用的功能模块,每个接入的应用分别对应一个虚拟转发器,负责该应用所有请求的路由转发工作。全局转发过滤器负责管理与远程应用的网络通讯,实现请求数据包的复制转发和协议转换。全局路由表中的路由对象也是属于某一个应用的,根据应用可以直接匹配上对应的虚拟转发器,完成请求转发。
全局路由表和路由组表组件最大的不同在于服务的对象不同,全局路由表服务于服务网关的前置路由器,其中每个路由对应一个微服务,路由组表服务于应用***。路由组由至少一个路由、一个转发模块和一个过滤器链构成。路由组表根据应用配置参数创建,在路由组表中一个路由组对应一个接入的应用***。应用配置参数发生变更,路由组表也会同步实时更新。
优选地,如图6所示,服务集群是常见的高可用、高吞吐量的解决方案,根据某种负载策略实现多个服务节点分担流量压力。但在单一服务集群模式下,服务节点也存在扩展的上线,不能无限的扩展下去。另外随着接入的应用越多,路由表也随着变得庞大,导致路由匹配策略计算时花费更多的CPU时间,降低整个服务集群的性能。通过集群分组的方式将一个大集群分成多个小集群(网关集群组),每个小集群通过云原生SLB负载均衡服务,或者其他组件实现网关集群的负载均衡访问,为每个小集群分配一个独立的子域名。
优选地,如图7所示,将网关集群分成多个小集群(网关集群组)以后,全局路由表也需要拆分成多个小的路由表,减少路由表中的条目,提高路由遍历匹配性能。后台管理在实现应用接入时需要人工指定由哪个集群组承载应用的访问流量,使应用的路由组只能属于一个小集群组的全局路由表,客户端使用相应集群组的子域名访问应用的服务。
优选地,默认情况下全局路由表中路由条目根据应用注册时间决定路由条目在路由表中的顺序。但这种路由条目顺序对于路由匹配策略可能不是最佳的,极端情况下最大吞吐量应用的路由条目在路由表中排序最靠后,路由匹配时会依次对前面的路由条目进行匹配计算,匹配到最后一个路由条目时才命中目标。为每个路由条目设置一个顺序优先级分值,值越大优先级越高,路由匹配时先计算。针对全局路由表中路由条目的分值采用静态调整和动态调整两种模式。静态调整由管理员通过后台管理功能手动设置分值。动态调整根据某种算法策略动态计算分值,例如根据一段时间内应用并发访问量计算分值,访问量越大分值越高,路由条目优先级越高。动态调整模式下路由条目的顺序会随时间自动调整。
优选地,将全局路由表中的路由条目分成3个逻辑组:静态调整组、动态调整组和默认组,优先级由高到低。路由匹配时先计算静态调整组中的条目,这样设计的目的是为了让管理员能够干预动态调整的结果,接下来再匹配动态调整组路由条目,最后计算默认组条目。应用路由条目属于哪个组由管理员在后台管理中配置。
动态路由与静态路由的数据结构中转发的URL地址不同。动态路由的URL地址采用lb协议,主机地址是微服务的服务ID,路由转发时使用服务注册表信息将服务ID转换成真实的IP地址和端口。
优选地,如图11所示,在微服务注册中心、服务网关和服务提供者三者之间,在服务提供者启动成功后,将服务相关的信息,包括服务ID、协议、IP地址和端口注册到注册中心中。注册中心维护服务注册表,注册中心通过心跳机制检测服务提供者的健康状态。如果检测到服务已下线,注册中心从注册表中删除服务注册的信息。服务网关定时从注册中心拉取注册表信息,并更新路由表信息。
实施例3:
一种应用安全接入网关路由转发方法,采用上述的网关***进行,后台管理和服务网关交互,接入应用***。在应用***接入成功后,所有请求都必须通过服务网关进行路由转发。
优选地,如图8所示,用户操作应用配置参数以后,后台管理和服务网关之间的交互处理如下:
用户通过后台管理提供的UI界面操作应用配置,后台管理使用关系数据库持久化应用配置数据。服务网关使用管理端口接收应用配置参数列表,服务网关中的虚拟转发器组件根据应用配置参数列表更新路由组表,主要更新应用的路由转发规则和过滤器链。路由组表组件将配置的静态路由推送给全局路由表组件,全局路由表组件根据静态路由配置更新路由表信息。
服务网关监听两个端口:管理端口和服务端口。管理端口服务于控制面,处理应用配置参数和服务网关运行状态指标查询等功能。服务端口服务于数据面,处理应用***的业务请求。采用控制面和数据面分离的方式进一步的保障服务网关的安全。
优选地,如图9所示,服务网关业务请求路由转发处理如下:
应用***成功接入后,所有请求都必须通过服务网关进行路由转发。上图中的客户端可以是应用***的前端界面或第三方业务***,客户端将请求发送到网关的服务端口。服务网关接收到请求后,前置路由器先根据全局路由表匹配策略匹配路由,如果未匹配上路由,网关直接返回404错误,如果路由匹配成功,下一步请求虚拟转发器开始处理。虚拟转发器将执行过滤器链。过滤器链将依次执行每个过滤器,如果过滤器处理失败,直接返回400报错。过滤器链执行完后转发模块负责请求转发,请求全局转发过滤器处理。全局转发过滤器负责实现请求复制与转发,应用服务处理请求并响应,这时全局转发过滤器会对响应进行处理,如果处理失败,返回500错误。
优选地,如图10所示,过滤器链中过滤器的执行如下:
(1)过滤器链中的过滤器是否执行受到应用配置参数的控制。用户可以通过管理界面操作应用配置参数,开启或关闭某一个过滤器功能。极端情况下可以关闭所有过滤器功能。
(2)HTTP检查过滤器主要对HTTP协议中重要的消息头进行检查,包括请求跨域和请求方法相关的消息头。请求跨域通过可信任的域名白名单检查相关的消息头Referer、Origin的值。根据国网的安全要求请求方法只允许使用GET和POST,如果使用其他请求方法直接响应400错误。
(3)认证授权过滤器实现调用者身份验证和应用接口访问权限检查。调用者身份验证支持OAuth2协议和HTTP协议的Basic认证方式。服务网关实现OAuth2协议标准中资源服务器功能,支持Bearer访问令牌类型。本身不提供身份管理和授权管理功能,只能通过集成第三方OAuth2授权中心实现,例如国网统一权限管理***。
针对HTTP协议的Basic认证方式,服务网关为调用者颁发访问Key和密钥,客户端每次请求时都需要采用Basic认证方式。
OAuth2协议更多的用于WEB应用的用户身份认证,Basic认证常用于REST应用后台三方***之间接口调用的身份认证。
访问权限检查依赖身份验证结果,需要先身份验证通过后,才能进行访问权限检查。访问权限检查也是委托第三方OAuth2授权中心实现。服务网关定义了访问权限检查REST接口规范。
(4)加解密过滤器采用国密SM2和动态SM4组合算法对HTTP请求主体进行解密和响应主体进行加密,提高数据网络中传输的保密性。
请求头X-Acloud-Crypto-Symmetric-Code的值是SM4密钥,使用SM2公钥对SM4密钥文本加密。后台通过对应的SM2私钥解密获得SM4密钥,并使用SM4密钥对请求密文进行解密,使用相同的SM4密钥对响应进行加密。
针对WEB应用使用应用配置参数中的SM2密钥对,如果是REST应用使用为调用者分配的SM2密钥对。
(5)防重放过滤器按照规定的算法和协议生成消息头,服务网关检查消息头判断请求是否是重复的请求。
(6)防篡改过滤器通过对请求的数据进行签名,服务网关检查数据的签名是否一致,如果不一致这表示请求的数据被篡改。
(7)XSS脚本攻击过滤器和SQL注入过滤器通过正则表达式检查请求参数和请求主体是否存在相关的关键字。
本发明可以实现多种类型应用同时接入管理,服务网关支持众多应用同时运行。可以实现应用配置参数在线管理与实时推送,服务网关实时更新生效,避免服务网关因为参数变动中断服务。可以实现应用***基于路由组和过滤器链的请求路由转发和安全检查。本发明采用过滤器链的执行模式,实现身份认证、访问授权检查、数据加密传输、SQL注入检查、脚本攻击防护等安全功能。并且支持在线配置方式按需开启或关闭相关检查功能。过滤器链在相同数据通讯协议下,可以针对请求和响应的数据包实现主体数据格式转换和元数据调整,例如在HTTP协议中添加首部信息和转换主体媒体类型。全局路由表模块中路由对象创建方式,支持注册中心构建的动态路由和配置的静态路由。支持灵活可扩展的路由匹配策略,满足各种协议数据包的路由匹配场景。全局路由表路由优先级逻辑分组与优先级动态计算策略,有效提高了服务网关请求匹配的性能。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (8)
1.一种应用安全接入网关***,其特征在于,包括后台管理***和服务网关***,所述后台管理***用于提供WEB端管理界面、应用接入管理、应用配置参数维护;所述服务网关***包括前置路由器、全局路由表、虚拟转发器、全局转发过滤器,所述服务网关***设置有服务端口和管理端口,所述服务端口用于接收请求并发送至前置路由器,所述管理端口用于接入后台管理***;
网关集群分组为若干个具有独立子域名的网关集群组,每个网关集群组分别设置一个全局路由表,所述后台管理***用于使用相应子域名的网关集群组访问应用的服务;每个接入的应用分别对应一个虚拟转发器,虚拟转发器用于负责该应用所有请求的路由转发工作,所述虚拟转发器包括应用配置模块、路由组表;
所述前置路由器用于解析请求数据包使用的数据通讯协议并依据对应应用的网关集群组的全局路由表匹配路由对象,并将匹配成功的路由对象发送至对应应用的虚拟转发器;所述全局路由表用于维护静态路由和动态路由信息,为前置路由器提供API请求匹配依据和策略;所述应用配置模块用于创建静态路由并推送至全局路由表,注册中心用于获取应用服务信息并创建动态路由推送至全局路由表;所述路由组表用于负责应用所有请求的路由转发工作,并发送至全局转发过滤器;所述全局转发过滤器用于负责管理与远程应用的网络通讯,实现请求数据包的复制转发和协议转换。
2.根据权利要求1所述的一种应用安全接入网关***,其特征在于,所述路由组表包括过滤器链模块、转发模块,所述过滤器链模块用于执行过滤器链,所述转发模块用于将转发请求至全局转发过滤器。
3.根据权利要求2所述的一种应用安全接入网关***,其特征在于,所述过滤器链包括从前至后依次设置的HTTP检查过滤器、认证授权过滤器、加解密过滤器、防重过滤器、XSS过滤器、SQL注入过滤器。
4.根据权利要求1所述的一种应用安全接入网关***,其特征在于,所述全局路由表中的路由条目按照匹配优先级由高到低分为静态调整组、动态调整组和默认组。
5.根据权利要求1所述的一种应用安全接入网关***,其特征在于,所述后台管理***包括应用接入模块、路由转发模块、安全配置模块、配置分发模块;所述应用接入模块用于配置国密SM2密钥对,实现数据加密与签名;所述路由转发模块用于配置路由转发规则,以实现构建路由;所述安全配置模块用于配置过滤器链;所述配置分发模块用于采用主动推送模式,实时分发变更的应用配置参数到所有服务网关。
6.一种应用安全接入网关路由转发方法,采用权利要求1-5任一项所述的网关***进行,其特征在于,包括以下步骤:
步骤S100:后台管理***和服务网关***交互,接入应用***;
步骤S200:在应用***接入成功后,所有请求都必须通过服务网关***进行路由转发:
步骤S201:客户端发送请求到服务网关***的服务端口,服务网关***接收到请求后,前置路由器先根据全局路由表匹配策略匹配路由,如果未匹配上路由,则服务网关***直接返回错误提示,如果路由匹配成功,则进入步骤S202;
步骤S202:请求虚拟转发器处理,虚拟转发器将执行过滤器链,过滤器链将依次执行每个过滤器,如果过滤器处理失败,直接返回报错提示,否则过滤器链执行完后,转发模块转发请求至全局转发过滤器;
步骤S203:全局转发过滤器复制请求并转发请求至远程应用,远程应用处理请求并返回响应至全局转发过滤器,全局转发过滤器对响应进行处理,如果处理失败,返回错误提示至服务端,否则返回正常响应至客户端。
7.根据权利要求6所述的一种应用安全接入网关路由转发方法,其特征在于,所述步骤S202包括以下步骤:
步骤A1:首先通过HTTP检查过滤器对HTTP协议中请求跨域和请求方法相关的消息头进行检查,请求跨域通过可信任的域名白名单检查相关的消息头Referer、Origin的值,请求方法只允许使用GET和POST;
步骤A1:通过认证授权过滤器实现调用者身份验证和应用接口访问权限检查;
步骤A2:加解密过滤器采用国密SM2和动态SM4组合算法对HTTP请求主体进行解密和响应主体进行加密;
步骤A3:防重放过滤器按照规定的算法和协议生成消息头,服务网关***检查消息头判断请求是否是重复的请求;
步骤A4:防篡改过滤器通过对请求的数据进行签名,服务网关***检查数据的签名是否一致,如果不一致,表示请求的数据被篡改;
步骤A5:XSS脚本攻击过滤器和SQL注入过滤器分别通过正则表达式检查请求参数和请求主体是否存在相关的关键字。
8.根据权利要求6所述的一种应用安全接入网关路由转发方法,其特征在于,所述步骤S100包括以下步骤:
步骤S101:用户通过后台管理***提供的UI界面操作应用配置,后台管理***使用关系数据库持久化应用配置数据;
步骤S102:服务网关***使用管理端口接收应用配置参数列表,服务网关***中的虚拟转发器组件根据应用配置参数列表更新路由组表,更新应用的路由转发规则和过滤器链;
步骤S103:路由组表组件将配置的静态路由推送给全局路由表组件,全局路由表组件根据静态路由配置更新路由表信息;
步骤S104:所述服务网关***监听管理端口和服务端口,所述管理端口服务于控制面,处理应用配置参数和服务网关运行状态指标查询;所述服务端口服务于数据面,处理应用***的业务请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311356991.2A CN117097591B (zh) | 2023-10-19 | 2023-10-19 | 一种应用安全接入网关***及路由转发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311356991.2A CN117097591B (zh) | 2023-10-19 | 2023-10-19 | 一种应用安全接入网关***及路由转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117097591A true CN117097591A (zh) | 2023-11-21 |
CN117097591B CN117097591B (zh) | 2024-01-23 |
Family
ID=88777312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311356991.2A Active CN117097591B (zh) | 2023-10-19 | 2023-10-19 | 一种应用安全接入网关***及路由转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117097591B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724869A (zh) * | 2023-12-19 | 2024-03-19 | 成都九天智信科技有限公司 | 一种基于web的自定义的***流程编辑器 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070082738A1 (en) * | 2005-10-06 | 2007-04-12 | Game Driven Corporation | Self-organizing turn base games and social activities on a computer network |
WO2014015697A1 (zh) * | 2012-05-04 | 2014-01-30 | 运软网络科技(上海)有限公司 | 一种虚拟网络的自主管理***和方法 |
WO2015138043A2 (en) * | 2014-03-14 | 2015-09-17 | Nicira, Inc. | Route advertisement by managed gateways |
WO2017070545A1 (en) * | 2015-10-23 | 2017-04-27 | Interdigital Technology Corporation | Software-defined network enhancements enabling programmable information centric networking in edge networks |
CN111386676A (zh) * | 2018-03-21 | 2020-07-07 | 华为技术有限公司 | 应用编程接口api网关集群的控制方法和api网关集群 |
CN112217555A (zh) * | 2020-08-24 | 2021-01-12 | 成都天奥集团有限公司 | 一种基于sdn架构并采用sr路由协议的编队卫星路由方法 |
CN113572689A (zh) * | 2021-09-24 | 2021-10-29 | 深圳市信润富联数字科技有限公司 | 微服务网关管理方法、***、设备、可读存储介质及产品 |
CN115883471A (zh) * | 2021-09-28 | 2023-03-31 | 上海宝信软件股份有限公司 | 应用网关及其流量管控方法 |
CN116055254A (zh) * | 2023-01-10 | 2023-05-02 | 华中科技大学 | 一种安全可信网关***、控制方法、介质、设备及终端 |
CN116633724A (zh) * | 2022-02-14 | 2023-08-22 | 上海宝信软件股份有限公司 | 多维度限流和动态路由的***和部署方法 |
CN116743742A (zh) * | 2023-03-16 | 2023-09-12 | 阿里巴巴(中国)有限公司 | OpenVPN集群及其实例间通信方法、云网关 |
-
2023
- 2023-10-19 CN CN202311356991.2A patent/CN117097591B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070082738A1 (en) * | 2005-10-06 | 2007-04-12 | Game Driven Corporation | Self-organizing turn base games and social activities on a computer network |
WO2014015697A1 (zh) * | 2012-05-04 | 2014-01-30 | 运软网络科技(上海)有限公司 | 一种虚拟网络的自主管理***和方法 |
WO2015138043A2 (en) * | 2014-03-14 | 2015-09-17 | Nicira, Inc. | Route advertisement by managed gateways |
WO2017070545A1 (en) * | 2015-10-23 | 2017-04-27 | Interdigital Technology Corporation | Software-defined network enhancements enabling programmable information centric networking in edge networks |
CN111386676A (zh) * | 2018-03-21 | 2020-07-07 | 华为技术有限公司 | 应用编程接口api网关集群的控制方法和api网关集群 |
CN112217555A (zh) * | 2020-08-24 | 2021-01-12 | 成都天奥集团有限公司 | 一种基于sdn架构并采用sr路由协议的编队卫星路由方法 |
CN113572689A (zh) * | 2021-09-24 | 2021-10-29 | 深圳市信润富联数字科技有限公司 | 微服务网关管理方法、***、设备、可读存储介质及产品 |
CN115883471A (zh) * | 2021-09-28 | 2023-03-31 | 上海宝信软件股份有限公司 | 应用网关及其流量管控方法 |
CN116633724A (zh) * | 2022-02-14 | 2023-08-22 | 上海宝信软件股份有限公司 | 多维度限流和动态路由的***和部署方法 |
CN116055254A (zh) * | 2023-01-10 | 2023-05-02 | 华中科技大学 | 一种安全可信网关***、控制方法、介质、设备及终端 |
CN116743742A (zh) * | 2023-03-16 | 2023-09-12 | 阿里巴巴(中国)有限公司 | OpenVPN集群及其实例间通信方法、云网关 |
Non-Patent Citations (1)
Title |
---|
潘育飞, 吴震华, 顾尔丹, 陈 纯: "WAP网关集群的分布式负载均衡", 计算机工程, no. 04 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724869A (zh) * | 2023-12-19 | 2024-03-19 | 成都九天智信科技有限公司 | 一种基于web的自定义的***流程编辑器 |
Also Published As
Publication number | Publication date |
---|---|
CN117097591B (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907359B2 (en) | Event-based user state synchronization in a local cloud of a cloud storage system | |
US9491201B2 (en) | Highly scalable architecture for application network appliances | |
US7613131B2 (en) | Overlay network infrastructure | |
JP4304055B2 (ja) | クライアントセッションフェイルオーバーを提供する方法および構造 | |
US20160164826A1 (en) | Policy Implementation at a Network Element based on Data from an Authoritative Source | |
CN112804722A (zh) | 一种微服务网关动态路由的实现方法 | |
EP3605948B1 (en) | Distributing overlay network ingress information | |
CN117097591B (zh) | 一种应用安全接入网关***及路由转发方法 | |
WO2011159799A2 (en) | Methods, systems, and computer readable media for providing dynamic origination-based routing key registration in a diameter network | |
US20080082823A1 (en) | Systems and methods for management of secured networks with distributed keys | |
US20080072282A1 (en) | Intelligent overlay for providing secure, dynamic communication between points in a network | |
US11658812B1 (en) | Distributed key management system | |
US11356448B1 (en) | Device and method for tracking unique device and user network access across multiple security appliances | |
US20240195790A1 (en) | Centralized management of private networks | |
US20200127975A1 (en) | Cloud computing architecture with secure multi-cloud integration | |
CN116668191B (zh) | 具有数据加密汇聚功能的物联网应用虚拟网关 | |
US11895227B1 (en) | Distributed key management system with a key lookup service | |
CN111343070A (zh) | sdwan网络通信控制方法 | |
WO2008033532A2 (en) | Enterprise data protection management for providing secure communication in a network | |
US20190089680A1 (en) | Enhanced packet formating for security inter-computing system communication | |
US20080082822A1 (en) | Encrypting/decrypting units having symmetric keys and methods of using same | |
US20220255905A1 (en) | Centralized management control lists for private networks | |
US20240195795A1 (en) | Computer-implemented methods and systems for establishing and/or controlling network connectivity | |
Nandini | Efficient-way of Data Storage on Decentralized Cloud using Blockchain Technology | |
KR102120229B1 (ko) | 4-tier 방식 CASB의 보안통제 수행을 위한 인공지능 기반 부하균형 시스템 및 그 방법 |
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 |