一种实现非侵入性的微服务间接口安全调用的方法技术

技术编号:27474621 阅读:22 留言:0更新日期:2021-03-02 17:41
本发明专利技术涉及一种实现非侵入性的微服务间接口安全调用的方法,两个主应用MS_A与MS_B,分别部署在不同的Kubernetes节点Pod_A与Pod_B上,主应用对应承载的容器分别为MSC_A与MSC_B;配置两个Pod节点上的Init容器和伴生容器,并在伴生容器上部署运行功能模块MSCP。应用发布部署系统将主应用镜像对应的应用名称MS_NAME、应用镜像MD5值MS_MD5、通讯密钥MS_KEY和该应用访问的其他应用列表记录到Config Server中,MSCP读取主应用镜像的MD5值与该应用在Config Server注册的MD5值进行比对,验证主应用的身份并确保该应用未被篡改;MSCP将MS_A的密钥加上MS_B的密钥形成组合密钥MS_KEY_A+MS_KEY_B,MS_B,对MSCP服务拦截到MS_A的MSCP发送给MS_B的加密后的报文,再次校验MS_B的MD5值后,将解密后的报文转发给MS_B。本发明专利技术实现应用身份确认,防止主应用被仿冒或被篡改。篡改。篡改。

【技术实现步骤摘要】
一种实现非侵入性的微服务间接口安全调用的方法


[0001]本专利技术涉及计算机微服务开发
,特别是一种实现非侵入性的微服务间接口安全调用的方法。

技术介绍

[0002]微服务架构下,我们的系统根据业务被拆分成了多个职责单一的微服务。每个微服务都有自己的一套API提供给别的微服务调用,那么如何保证微服务API的安全性,也就是如何防止微服务API接口在未经授权的情况下被随意访问,并且避免微服务间API调用的仿冒、窃听、篡改、重放攻击等安全问题。
[0003]现有的技术方案有如下实现方式:1、JWT或OAuth2认证方式,这两种思路非常类似,都是将用户提供信息给认证服务器,服务器根据传递过来的信息进行合法性认证,验证成功则返回一个token(设置过期时间),之后用户在访问的时候都携带这个token去访问,受保护的接口再进行鉴权。
[0004]2、HTTPS链路加密方式:微服务间通过HTTPS协议进行通讯,由HTTPS对通讯链路进行加密,从而保证接口调用与数据传输的安全性。
[0005]JWT或OAuth2认证方法,只能解决微服务间调用的认证问题,不能解决接口报文数据窃听与篡改的问题,并且这两种认证方式需要对微服务应用或配置进行一定的侵入式改造。
[0006]采用HTTPS方式虽然可以对通讯链路进行加密,但是对接口调用性能有一定的影响,并且如果需要对调用者进行身份认证,则需要使用HTTPS双向认证,这对性能与部署复杂度都提出了更高的要求。

技术实现思路

[0007]有鉴于此,本专利技术的目的是提供一种实现非侵入性的微服务间接口安全调用的方法,解决的就是如何用一种对于应用的侵入和感知都很小的方式,来同时解决微服务间调用在访问控制、数据安全上的问题;能够通过采用伴生容器透明流量劫持的方式,通过对报文的过滤与拦截,实现应用间安全通信的目的。
[0008]本专利技术采用以下方案实现:一种实现非侵入性的微服务间接口安全调用的方法,包括以下步骤:步骤S1:提供两个微服务应用MS_A与MS_B,分别部署在两个不同的Kubernetes节点Pod_A与Pod _B上,对应承载的容器即主应用容器分别为MSC_A与MSC_B;同时,在Pod_A与Pod_B节点上,为每个主应用的容器部署一个伴生容器,MSC_A、MSC_B对应的伴生容器分别为PXC_A、PXC_A;步骤S2:配置Pod节点即节点Pod_A与Pod _B上的专用容器即Init容器,该容器在主应用容器和伴生容器启动之前运行,在Init容器中配置运行iptables命令或脚本,通过该iptables命令实现由伴生容器进行透明流量劫持,即根据全局微服务地址段和端口范围,
将主应用容器访问外部微服务以及外部微服务访问该主应用容器的进出流量,通过iptables命令配置转发到伴生容器上;步骤S3:在两个伴生容器上分别部署运行关键功能模块即微服务通信代理模块 MSCP服务,用以完成步骤S4至步骤S7的过程;步骤S4:Kubernetes的应用发布部署系统在每次更新主应用容器MSC_A与MSC_B的主应用镜像时,将该镜像对应的应用名称MS_NAME、应用镜像MD5值MS_MD5、通讯密钥MS_KEY、以及该应用能够访问的其他应用列表记录到微服务框架的Config Server中,Config Server用以将这些信息同步给所有的MSCP服务,则全局的MSCP服务就能够获取到所有应用的名称、镜像MD5值、密钥及可访问目标应用列表;步骤S5:当MS_A要调用MS_B时,由MS_A服务生成请求报文并且发送给MS_B 服务,MS_A的伴生容器PXC_A上部署的MSCP服务会拦截该请求报文,并且进行合法性校验;步骤S6:MSCP通过步骤S5确认调用发起方主应用MS_A身份合法性与访问权限后,将MS_A的密钥加上MS_B的密钥形成组合密钥MS_KEY_A+MS_KEY_B,然后使用该组合密钥对报文进行对称加密,并且由MSCP负责将加密后的请求报文发送给对端服务即MS_B;步骤S7:MS_B对应伴生容器中部署的MSCP服务拦截到MS_A的MSCP发送给MS_B的加密后的报文,首先根据调用者标识进行鉴权,鉴权通过后根据调用者应用标识采用组合密钥MS_KEY_A+MS_KEY_B对报文进行解密,最后再次校验MS_B的MD5值后,将解密后的报文转发给MS_B;即完成了一次从MS_A应用到MS_B应用间的调用。
[0009]进一步地,步骤S5中所述进行合法校验具体包括以下步骤:步骤SA:MSCP读取主应用镜像的MD5值与主应用在Config Server注册的MD5值进行比对,如果这两个MD5值一致,则说明主应用未被篡改,则继续步骤SB,否则MSCP直接返回应用校验未通过的错误信息给MS_A,并结束整个流程;步骤SB:MSCP再根据Config Server中记录的MS_A可访问的服务清单验证MS_A是否能够访问MS_B,若验证通过则继续步骤S6,否则直接返回访问权限校验未通过信息给MS_A,并结束整个流程。
[0010]与现有技术相比,本专利技术具有以下有益效果:(1)本专利技术对应用无侵入性,无需应用进行任何配置与适配改造;对应用完全透明,应用感知不到该系统的存在。
[0011](2)本专利技术提供了一种框架性的安全解决方案,将安全实现与业务系统完全剥离,应用只需要关注业务的实现,无需再关注安全实现方式。
[0012](3)本专利技术采用伴生容器透明流量劫持的方式,通过对报文的过滤与拦截,实现应用间安全通信的目的。
[0013](4)本专利技术通过MD5对主应用进行检测,可以实现应用身份确认,防止主应用被仿冒或者被篡改。
附图说明
[0014]图1为本专利技术实施例的流程图。
具体实施方式
[0015]下面结合附图及实施例对本专利技术做进一步说明。
[0016]应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。
[0017]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0018]如图1所示,本实施例提供一种实现非侵入性的微服务间接口安全调用的方法,主要面向的是将微服务应用以镜像模式部署在Kubernetes容器中的场景,主要针对的是微服务网关内部,部署在不同的Kubernetes Pod上的微服务之间调用的安全性问题;包括以下步骤:步骤S1:提供两个微服务应用MS_A与MS_B,分别部署在两个不同的Kubernetes节点Pod_A与Pod _B上,对应承载的容器即主应用容器分别为MSC_A与MSC_B;同时,在Pod_A与Pod_B节点上,为每个主应用的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现非侵入性的微服务间接口安全调用的方法,其特征在于:包括以下步骤:步骤S1:提供两个微服务应用MS_A与MS_B,分别部署在两个不同的Kubernetes节点Pod_A与Pod _B上,对应承载的容器即主应用容器分别为MSC_A与MSC_B;同时,在Pod_A与Pod_B节点上,为每个主应用的容器部署一个伴生容器,MSC_A、MSC_B对应的伴生容器分别为PXC_A、PXC_A;步骤S2:配置Pod节点即节点Pod_A与Pod _B上的专用容器即Init容器,该容器在主应用容器和伴生容器启动之前运行,在Init容器中配置运行iptables命令或脚本,通过该iptables命令实现由伴生容器进行透明流量劫持,即根据全局微服务地址段和端口范围,将主应用容器访问外部微服务以及外部微服务访问该主应用容器的进出流量,通过iptables命令配置转发到伴生容器上;步骤S3:在两个伴生容器上分别部署运行关键功能模块即微服务通信代理模块 MSCP服务,用以完成步骤S4至步骤S7的过程;步骤S4:Kubernetes的应用发布部署系统在每次更新主应用容器MSC_A与MSC_B的主应用镜像时,将该镜像对应的应用名称MS_NAME、应用镜像MD5值MS_MD5、通讯密钥MS_KEY、以及该应用能够访问的其他应用列表记录到微服务框架的Config Server中,Config Server用以将这些信息同步给所有的MSCP服务,则全局的MSCP服务就能够获取到所有应用的名称、镜像MD5值、密钥及可访问目标应用列表;步骤S5:当MS...

【专利技术属性】
技术研发人员:邱平
申请(专利权)人:福建福诺移动通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1