掌桥专利:专业的专利平台
掌桥专利
首页

一种微服务网关请求的安全管控方法

文献发布时间:2024-04-18 20:01:30


一种微服务网关请求的安全管控方法

技术领域

本发明涉及微服务网关技术领域,尤其涉及一种微服务网关请求的安全管控方法。

背景技术

传统的JavaWeb项目都是采用单体架构的方式来进行开发、部署和运维的,所谓单体架构就是指将所有业务模块全部打包在一个WebApp文件中进行部署。随着互联网的发展、用户数量的激增、业务的极速扩展,传统的单体应用方式的缺点就逐渐显现出来了,给开发、部署、运维都带来了极大的难度,工作量会越来越大,难度越来越高。因为在单体架构中业务模块的耦合性太高,耦合性过高的同时项目体量又很大势必会给各个技术环节带来挑战。项目越进行到后期,这种难度越大,只要有改动,整个应用都需要重新测试,部署,极大的限制了开发的灵活性,降低了开发效率。同时也带来了更大的安全隐患,如果某个模块发生故障无法正常运行就有可能导致整个项目崩溃。为了解决这些问题,微服务架构应运而生,微服务就是将一个单体应用拆分成若干个小型的服务,协同完成系统功能的一种架构模式,在系统架构层面进行解耦合,将一个复杂问题拆分成若干个简单问题。这样的好处是对于每一个简单问题,开发、维护、部署的难度就降低了很多,可以实现自治,可自主选择最合适的技术框架,提高项目开发的灵活性。

微服务架构是将原有单体应用按照不同业务拆分成若干个小型的服务,不同的微服务一般有不同的网络地址,而外部的客户端可能需要调用多个服务的接口才能完成一个业务需求。如果客户端直接和微服务进行通信,一方面客户端会多次请求不同微服务,而且不同的微服务会占用不同的端口,增加客户端请求服务端的复杂性,另一方面认证复杂,每一个服务都需要独立认证,独立的登录鉴权以及其他的安全控制等。系统冗余,占用过多服务资源。

发明内容

本发明的目的在于,解决现有技术的不足之处,提出一种微服务网关请求的安全管控方法,该方法以开源的Netflix Zuul作为微服务网关基础框架,在此基础上结合实际业务场景在安全性和易用性进行研究设计开发。

一种微服务网关请求的安全管控方法,包括以下步骤:

步骤1,对业务请求数据进行完整性校验,请求完整性校验是对请求中的摘要和根据请求数据计算的摘要进行对比,从而实现请求是否被第三方篡改的数据安全性校验;

步骤2,对业务请求的数据进行解密,使用国密算法对请求中的密文数据解密为明文数据;

步骤3,根据配置的策略对请求进行安全校验,主要过滤策略为:客户端访问策略,二次认证策略,请求数据过滤策略等;

步骤4,根据业务接口配置的访问策略对业务请求接口进行权限鉴别,主要权限鉴别策略分为:匿名访问类、有权限访问类和仅登录访问类;

步骤5,根据配置的流量策略对接口请求进行流量限制;

步骤6,根据配置的路由信息对请求进行转发到指定的微服务;

步骤7,收集请求和响应数据发送到MQ用以记录接口安全审计日志;

步骤8,对响应数据进行加密,使用国密算法对响应中的明文数据加密为密文数据。

根据权利要求1的一种微服务网关请求的安全管控方法,其特征在于:步骤1中对业务请求数据进行完整性校验,具体包括以下步骤:

步骤1.1,数据传输完整性采用国密SM3算法进行校验;客户端对请求数据利用SM3算法计算请求数据摘要Summary,并将该摘要连同数据一并发送给服务端;

步骤1.2,服务端对接收的请求数据利用SM3算法对接收到的请求数据计算摘要;

步骤1.3,服务端将计算的摘要与请求中的摘要进行比对,如相同则请求数据未被篡改,请求正常放行;如不同则请求数据被篡改,驳回请求;

步骤1.4,服务端对响应数据利用SM3算法计算摘要,并将摘要和响应数据同时发送给客户端;

步骤1.5,客户端对响应数据利用SM3算法计算摘要,并与服务端发送的摘要进行比对,如相同则正常响应页面数据;如不同则提示响应数据完整性破坏错误。

优选的,步骤4中产生的接口缓存,步骤5中产生的限流配置缓存,以及步骤6中产生的路由缓存均需定时或被动刷新。

优选的,步骤7中的安全审计日志包括操作日志、客户端异常访问日志、登录失败日志、系统登录日志、越权访问日志等;通过过滤器拦截所有业务请求并按类型对过滤策略进行分类,借助消息中间件RocketMQ异步记录所有请求的访问日志数据,为日志分析和查询提供统一支持。

优选的,步骤8中请求响应采用国密算法进行加解密,具体包括以下步骤:

步骤8.1,客户端请求服务端获取SM2公钥并生成一个长度为32位的十六进制随机数作为SM4对称秘钥基数SecretKey,连同认证鉴权信息通过SM2公钥加密后,与请求code一起通过发送给服务端;

步骤8.2,服务端通过请求code获取到服务器内存中存放的SM2私钥,解密出客户端认证信息和SM4 SecretKey;

步骤8.3,通过客户鉴权后,服务器会生成客户端访问许可access_token,并生成一个SM4秘钥偏移量SecretIv;

步骤8.4,服务器将秘钥偏移量和其他响应信息利用SecretKey使用SM4(ECB模式)进行对称加密后返回给客户端,并删除本次握手的SM2公私钥对;

步骤8.5,客户端利用对称秘钥SecretKey使用SM4,CBC模式,对登录响应数据进行解密,得到明文的SecretIv和登录响应数据;

步骤8.6,后续对于一般业务请求数据客户端利用对称秘钥SecretKey与秘钥偏移量SecretIv使用SM4,CBC模式,对请求数据进行加密和对响应数据进行解密;服务端利用对称秘钥SecretKey与秘钥偏移量SecretIv使用SM4,CBC模式,对请求数据进行解密和对响应数据进行加密。

本发明的优点及技术效果在于:

本发明的一种微服务网关请求的安全管控方法,以介于客户端和服务器端之间的微服务网关作为中间层,所有的外部请求都会先经过微服务网关,由微服务网关统一调度、路由和转发客户端发送的请求。这样客户端只需要和网关交互,无需直接调用特定微服务的接口,方便监控,易于认证,减少客户端和各个微服务之间的交互次数。并且一方面,该安全管控方法可以提供用户请求的权限鉴别、请求的加密与响应的解密处理、请求数据的完整性校验、请求数据的安全过滤以及请求审计日志的记录等安全访问控制的功能;另一方面用户可以对微服务网关进行可视化的配置,以支撑实际的业务应用。

本发明的一种微服务网关请求的安全管控方法,主要具备以下两项优势:

在安全性方面:本发明主要对用户的安全认证、请求响应的加解密和完整性校验、数据的安全过滤和审计日志等功能进行了适配扩展。通过网关zuul集成shiro和jwt进行认证鉴权,将安全处理在网关层进行处理,由网关来验证令牌,微服务不与认证服务器直接交互,只需处理自己的业务即可。对于外部访问来说,只需要网关地址即可,内部微服务由网关进行转发。

在易用性方面,本发明根据实际业务需求,将网关的注册、网关路由管理和网关限流策略等提供可视化管理功能,极大的方便客户的使用。

1、不同应用的网关都是逻辑隔离的,每个网关下配置挂载微服务,应用、网关和微服务之间的关联关系通过关系型数据库的方式进行存储并以将获取的信息展示到界面上。

2、网关路由信息可以进行动态管理,本发明可以通过界面主动进行路由的变更并保存到redis缓存中,也可以通过后台定时任务的方式进行路由刷新,确保网关的路由是即时生效的。

3、为了避免瞬时高流量击穿以及恶意攻击行为,引入了网关限流策略,按照客户端ip、请求url和用户限流三个维度进行限流处理。

最后,本发明的一种微服务网关请求的安全管控方法,可实现网关配置服务化,网关配置与网关服务分离;可实现网关配置可视化,用户可以通过可视化的配置对网关服务进行动态配置;可实现网关服务可以作为不同应用的实例,用以指定和划分不同的微服务组,对组间服务进行隔离;可实现网关服务对请求和响应的数据使用国密算法进行加密和解密。

附图说明

图1为本发明网关配置服务的数据框架图;

图2为本发明的网关服务请求/响应数据流程图。

具体实施方式

下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

本发明的本发明的一种微服务网关请求的安全管控方法,以开源的Netflix Zuul作为微服务网关基础框架,在此基础上结合实际业务场景在安全性和易用性进行研究设计开发。

在安全性方面,本发明主要对用户的安全认证、请求响应的加解密和完整性校验、数据的安全过滤和审计日志等功能进行了适配扩展。

(1)一个业务系统会有多个微服务,在每个微服务上进行安全认证存在诸多弊端,通过网关zuul集成shiro和jwt进行认证鉴权,将安全处理在网关层进行处理,由网关来验证令牌,微服务不与认证服务器直接交互,只需处理自己的业务即可。对于外部访问来说,只需要网关地址即可,内部微服务由网关进行转发。

(2)请求响应采用国密算法进行加解密。客户端请求服务端获取SM2公钥并生成一个长度为32位的十六进制随机数作为SM4对称秘钥基数SecretKey,连同认证鉴权信息通过SM2公钥加密后,与请求code一起通过发送给服务端。服务端通过请求code获取到服务器内存中存放的SM2私钥,解密出客户端认证信息和SM4 SecretKey;通过客户鉴权后,服务器会生成客户端访问许可access_token,并生成一个SM4秘钥偏移量SecretIv。服务器将秘钥偏移量和其他响应信息利用SecretKey使用SM4(ECB模式)进行对称加密后返回给客户端,并删除本次握手的SM2公私钥对。客户端利用对称秘钥SecretKey使用SM4(CBC模式)对登录响应数据进行解密,得到明文的SecretIv和登录响应数据;后续对于一般业务请求数据客户端利用对称秘钥SecretKey与秘钥偏移量SecretIv使用SM4(CBC模式)对请求数据进行加密和对响应数据进行解密;服务端利用对称秘钥SecretKey与秘钥偏移量SecretIv使用SM4(CBC模式)对请求数据进行解密和对响应数据进行加密。

(3)数据传输完整性采用国密SM3算法进行校验。客户端对请求数据利用SM3算法计算请求数据摘要Summary,并将该摘要连同数据一并发送给服务端。服务端对接收的请求数据利用SM3算法对接收到的请求数据计算摘要。服务端将计算的摘要与请求中的摘要进行比对,如相同则请求数据未被篡改,请求正常放行;如不同则请求数据被篡改,驳回请求。服务端对响应数据利用SM3算法计算摘要,并将摘要和响应数据同时发送给客户端。客户端对响应数据利用SM3算法计算摘要,并与服务端发送的摘要进行比对,如相同则正常响应页面数据;如不同则提示响应数据完整性破坏错误。

(4)对于常见的防止xss攻击和sql注入,自定义过滤器,在网关进行路径分发前重写请求输入流,对数据进行安全过滤,保证数据的安全。

(5)审计日志包括操作日志、客户端异常访问日志、登录失败日志、系统登录日志、越权访问日志等。通过过滤器拦截所有业务请求并按类型对过滤策略进行分类,借助消息中间件RocketMQ异步记录所有请求的访问日志数据,为日志分析和查询提供统一支持。

在易用性方面,本发明根据实际业务需求,将网关的注册、网关路由管理和网关限流策略等提供可视化管理功能,极大的方便客户的使用。

(1)不同应用的网关都是逻辑隔离的,每个网关下配置挂载微服务,应用、网关和微服务之间的关联关系通过关系型数据库的方式进行存储并以将获取的信息展示到界面上。

(2)网关路由信息可以进行动态管理,本发明可以通过界面主动进行路由的变更并保存到redis缓存中,也可以通过后台定时任务的方式进行路由刷新,确保网关的路由是即时生效的。

为了避免瞬时高流量击穿以及恶意攻击行为,引入了网关限流策略,按照客户端ip、请求url和用户限流三个维度进行限流处理。

本发明分为网关配置服务部分和网关服务部分:

网关配置服务部分由网关配置应用前端展现组件、网关配置应用微服务安全网关组件、网关配置微服务组件和统一认证微服务构成,如图1所示。网关配置应用前端展现组件提供网关配置必要的登录页面、网关配置页面等UI展现的功能;微服务安全网关组件是网关服务对网关配置应用的一个实例,主要为网关配置应用提供请求转发、接口鉴权以及数据安全过滤等功能;网关配置微服务组件一方面为网关配置应用前端展现组件提供配置接口,配置数据存入数据库和Redis缓存中,另一方面为网关服务提供配置数据的支撑;统一认证微服务提供基本的用户认证、授权等功能。

网关服务请求/响应数据流转图如图2所示:

(1)对业务请求进行完整性校验,请求完整性校验是对请求中的摘要和根据请求数据计算的摘要进行对比,从而实现请求是否被第三方篡改的数据安全性校验。

(2)对业务请求的数据进行解密,使用国密算法对请求中的密文数据解密为明文数据。

(3)根据配置的策略对请求进行安全校验,主要过滤策略为:客户端访问策略,二次认证策略,请求数据过滤策略等。

(4)根据业务接口配置的访问策略对业务请求接口进行权限鉴别,主要权限鉴别策略分为:匿名访问类、有权限访问类和仅登录访问类。

(5)根据配置的流量策略对接口请求进行流量限制。

(6)根据配置的路由信息对请求进行转发到指定的微服务。

(7)收集请求和响应数据发送到MQ用以记录接口安全审计日志。

(8)对响应数据进行加密,使用国密算法对响应中的明文数据加密为密文数据。

(9)定时或被动刷新接口权限缓存、限流配置缓存以及路由缓存等网关缓存数据。

最后,本发明的未尽述之处均采用现有技术中的成熟产品及成熟技术手段。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的实施例或示例中。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。

技术分类

06120116556472