一种基于API网关实现国密功能的系统及其方法技术方案

技术编号:35849173 阅读:13 留言:0更新日期:2022-12-07 10:31
本发明专利技术涉及一种基于API网关实现国密功能的系统及其方法,该系统包括管理端、API网关、客户端和后端,其中,管理端和客户端分别连接至API网关,API网关连接至后端,API网关连接有国密动态链接库,管理端用于发送外界控制信号给API网关;客户端用于发送加密请求给API网关;API网关采用多进程模型,通过执行网关业务逻辑、调用国密动态链接库,以完成对加密请求的处理,并将处理结果转发至后端。与现有技术相比,本发明专利技术通过将开源的国密库构建成国密动态链接库,使得网关可以在运行时调用本地的国密动态链接库来处理相关请求,并且由于网关具备国密相关功能后就不再需要额外启动国密应用,能够有效节省硬件资源。能够有效节省硬件资源。能够有效节省硬件资源。

【技术实现步骤摘要】
一种基于API网关实现国密功能的系统及其方法


[0001]本专利技术涉及网关开发
,尤其是涉及一种基于API网关实现国密功能的系统及其方法。

技术介绍

[0002]国密即国家密码局认定的国产密码算法。目前在实现国密功能时,主要是利用网关通过HTTP请求调用可提供国密相关功能的应用,再通过该应用的国密功能对报文进行相关操作(如加密、哈希等),应用操作完毕后最终将结果返回给网关。
[0003]上述方式在实际使用时,会增加额外的网络调用过程,网关调用前需要将相关信息序列化,然后发送出去;国密应用接收到请求后,则需要先对请求反序列化,然后再对请求进行相关的国密处理,处理完毕后将结果序列化后、再返回给网关;网关收到请求后需要先将结果反序列化后才能继续进行相关处理。这些额外的处理步骤将会严重降低网关处理相关请求的效率,此外,由于还需要单独启动一个提供国密服务的应用,也就存在浪费硬件资源的情况。

技术实现思路

[0004]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于API网关实现国密功能的系统及其方法,以能够提高网关处理请求的效率、节省硬件资源。
[0005]本专利技术的目的可以通过以下技术方案来实现:一种基于API网关实现国密功能的系统,包括管理端、API网关、客户端和后端,所述管理端和客户端分别连接至API网关,所述API网关连接至后端,所述API网关连接有国密动态链接库,所述管理端用于发送外界控制信号给API网关;
[0006]所述客户端用于发送加密请求给API网关;
[0007]所述API网关采用多进程模型,通过执行网关业务逻辑、调用国密动态链接库,以完成对加密请求的处理,并将处理结果转发至后端。
[0008]进一步地,所述多进程模型包括与管理进程分别连接的多个工作进程,所述管理进程与管理端连接,用于将外界控制信号转发给各工作进程,以及监控各工作进程的运行状态;
[0009]所述多个工作进程同等竞争来自客户端的加密请求,并对竞争得到的加密请求进行处理,将处理结果转发至后端。
[0010]进一步地,所述管理进程和多个工作进程分别设置有对应的Lua虚拟机。
[0011]一种基于API网关实现国密功能的方法,包括以下步骤:
[0012]S1、管理端发送外界控制信号给API网关;
[0013]客户端发送加密请求给API网关;
[0014]S2、根据外界控制信号,API网关对应执行启动、停止或重启操作;
[0015]S3、API网关接收加密请求,运行网关业务逻辑,并通过调用国密动态链接库,以完
成对加密请求的处理,得到处理结果;
[0016]S4、API网关将处理结果转发至后端。
[0017]进一步地,所述步骤S1具体包括以下步骤:
[0018]S11、管理端发送外界控制信号给管理进程;
[0019]S12、管理进程将外界控制信号对应转发给各个工作进程,并实时监控个工作进程的运行状态;
[0020]S13、客户端使用国密库对原始请求进行加密,得到加密请求,并将加密请求发送至API网关。
[0021]进一步地,所述步骤S12中若管理进程监控到某个工作进程发生异常,则输出启动信号给其余正常的工作进程。
[0022]进一步地,所述步骤S3具体包括以下步骤:
[0023]S31、多个工作进程竞争来自客户端的加密请求;
[0024]S32、针对竞争得到的加密请求,工作进程执行网关业务逻辑,通过调用国密动态链接库,对加密请求进行解密,得到原始请求。
[0025]进一步地,所述步骤S32中工作进程具体是在Lua环境中执行网关业务逻辑,所述网关业务逻辑包括但不限于黑白名单、限流和鉴权。
[0026]进一步地,所述国密动态链接库的构建过程为:将开源的由Go语言实现的国密源码编译成动态链接库,即构建得到国密动态链接库。
[0027]进一步地,所述步骤S32中调用国密动链接库的具体过程为:通过LuaJIT的扩展库FFI来加载调用国密动态链接库。
[0028]与现有技术相比,本专利技术通过构建国密动态链接库,API网关在接收客户端的请求后,能够直接调用国密动态链接库以完成对请求的处理,由此减少了额外的网络请求及序列化反序列化操作,提高了网关处理请求的效率;由于API网关能够直接使用动态链接库的国密功能处理请求,不再需要启动额外的国密应用,从而节省了硬件资源。
[0029]本专利技术中API网关采用多进程模型,管理进程管理多个工作进程、并响应管理端的操作;各个工作进程独立运行,通过竞争获得来自客户端的请求并进行处理,进一步提升了网关处理请求的效率。
附图说明
[0030]图1为本专利技术的系统结构示意图;
[0031]图2为实施例中系统架构示意图;
[0032]图3为本专利技术的方法流程示意图;
[0033]图4为实施例中工作进程处理请求的流程示意图;
[0034]图中标记说明:1、管理端,2、API网关,3、客户端,4、后端,5、国密动态链接库。
具体实施方式
[0035]下面结合附图和具体实施例对本专利技术进行详细说明。
[0036]实施例
[0037]如图1所示,一种基于API网关实现国密功能的系统,包括管理端1、API网关2、客户
端3和后端4,管理端1和客户端3分别连接至API网关2,API网关2连接至后端4,API网关2连接有国密动态链接库5,管理端1用于发送外界控制信号给API网关2;
[0038]客户端3用于发送加密请求给API网关2;
[0039]API网关2采用多进程模型,通过执行网关业务逻辑、调用国密动态链接库5,以完成对加密请求的处理,并将处理结果转发至后端4。
[0040]如图2所示,API网关2的多进程模型包括与管理进程分别连接的多个工作进程,管理进程与管理端1连接,用于将外界控制信号转发给各工作进程,以及监控各工作进程的运行状态;
[0041]多个工作进程同等竞争来自客户端3的加密请求,并对竞争得到的加密请求进行处理,将处理结果转发至后端4。
[0042]本实施例中,管理进程和多个工作进程分别设置有对应的Lua虚拟机。
[0043]将上述系统应用于实际,以实现一种基于API网关实现国密功能的方法,如图3所示,包括以下步骤:
[0044]S1、管理端发送外界控制信号给API网关;
[0045]客户端发送加密请求给API网关;
[0046]具体的:
[0047]S11、管理端发送外界控制信号给管理进程;
[0048]S12、管理进程将外界控制信号对应转发给各个工作进程,并实时监控个工作进程的运行状态,若管理进程监控到某个工作进程发生异常,则输出启动信号给其余正常的工作进程;
[0049]S13、客户端使用国密库对原始请求进行加密,得到加密请求,并将加密请求发送至本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于API网关实现国密功能的系统,其特征在于,包括管理端(1)、API网关(2)、客户端(3)和后端(4),所述管理端(1)和客户端(3)分别连接至API网关(2),所述API网关(2)连接至后端(4),所述API网关(2)连接有国密动态链接库(5),所述管理端(1)用于发送外界控制信号给API网关(2);所述客户端(3)用于发送加密请求给API网关(2);所述API网关(2)采用多进程模型,通过执行网关业务逻辑、调用国密动态链接库(5),以完成对加密请求的处理,并将处理结果转发至后端(4)。2.根据权利要求1所述的一种基于API网关实现国密功能的系统,其特征在于,所述多进程模型包括与管理进程分别连接的多个工作进程,所述管理进程与管理端(1)连接,用于将外界控制信号转发给各工作进程,以及监控各工作进程的运行状态;所述多个工作进程同等竞争来自客户端(3)的加密请求,并对竞争得到的加密请求进行处理,将处理结果转发至后端(4)。3.根据权利要求2所述的一种基于API网关实现国密功能的系统,其特征在于,所述管理进程和多个工作进程分别设置有对应的Lua虚拟机。4.一种基于API网关实现国密功能的方法,其特征在于,包括以下步骤:S1、管理端发送外界控制信号给API网关;客户端发送加密请求给API网关;S2、根据外界控制信号,API网关对应执行启动、停止或重启操作;S3、API网关接收加密请求,运行网关业务逻辑,并通过调用国密动态链接库,以完成对加密请求的处理,得到处理结果;S4、API网关将处理结果转发至后端...

【专利技术属性】
技术研发人员:杨旭红
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:

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

1