CN114553410B - 一种基于接口映射的api网关安全防护方法及其系统 - Google Patents

一种基于接口映射的api网关安全防护方法及其系统 Download PDF

Info

Publication number
CN114553410B
CN114553410B CN202210177112.9A CN202210177112A CN114553410B CN 114553410 B CN114553410 B CN 114553410B CN 202210177112 A CN202210177112 A CN 202210177112A CN 114553410 B CN114553410 B CN 114553410B
Authority
CN
China
Prior art keywords
request
module
interface mapping
mapping rule
key
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.)
Active
Application number
CN202210177112.9A
Other languages
English (en)
Other versions
CN114553410A (zh
Inventor
刘媛妮
刘坤
张建辉
王苏南
许家铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN202210177112.9A priority Critical patent/CN114553410B/zh
Publication of CN114553410A publication Critical patent/CN114553410A/zh
Application granted granted Critical
Publication of CN114553410B publication Critical patent/CN114553410B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics

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

本发明属于云原生与主动防御领域,具体涉及一种基于接口映射的API网关安全防护方法及其系统,该方法包括:访问客户端模块获取用户身份信息和待访问的目标服务,并向认证中心模块发起认证请求;认证中心模块对请求进行认证,认证通过后返回接口映射规则;访问客户端模块根据接口映射规则生成虚假请求,并将虚假请求发送给API网关;API网关对虚假请求进行解析,得到真实访问请求,并对该请求进行转发;本发明基于接口映射规则动态更新用户身份信息和接口映射规则加密的密钥,降低了接口映射规则被截获破解的风险,提高了应用系统的安全性。

Description

一种基于接口映射的API网关安全防护方法及其系统
技术领域
本发明属于云原生与主动防御领域,具体涉及一种基于接口映射的API网关安全防护方法及其系统。
背景技术
互联网的开放性使得信息共享更加高效、便利,这也不断推动着社会经济的发展,但由于政府、企业、高校等组织的信息数据通常具有机密性,为保护关键数据的安全,需要对网络进行隔离。传统的网络隔离方法通常是基于物理位置实现的,即只有特定区域(如办公大楼)的设备才能访问行业内网。随着社会发展和移动互联网的兴起,远程办公的模式逐渐出现,这要求人们拥有远程访问行业内网的能力。
在办公模式发生变化的同时,软件应用架构也在不断发展,由于传统的单体应用开发流程臃肿、更新困难等缺陷以及云计算技术的普及,越来越多的企业组织开始采用微服务架构来重构内网应用服务系统。微服务是近年来出现的新型软件应用架构,其核心思路是将复杂的大型应用服务分解为可以独立部署和维护的小型服务模块。这种从单体应用到微服务架构的转变,从根本上改变了传统应用的开发、部署和管理方式。相比传统应用架构,微服务架构能够更有效地利用计算资源,更快地更新服务。微服务一般通过RESTful风格的API(Application Interface)对外提供服务调用,然而将单体应用拆分成微服务势必会使得API数量增加,使得API发现和治理尤为重要。API网关作为微服务架构的核心组件之一,主要负载对接入到微服务集群的流量进行统一管控,配合服务注册中心,经过路由断言、安全认证、流量控制、请求转发等步骤将用户请求转发给后端对应的应用微服务。API网关实现了对后端微服务接口的隐匿,减少网络攻击面,一定程度上提高了系统的安全性。
API网关虽然隐藏了服务所在的地址,但是并未隐藏服务的应用特征如请求路径、请求方法和请求参数等,攻击者可以截获外部流量提取这些应用特征并基于这些特征进行进一步的侦查,为后续的攻击手段做准备,造成了数据泄露的风险。
发明内容
为解决以上现有技术存在的问题,本发明提出了一种基于接口映射的API网关安全防护方法,该方法包括:
S1:获取用户身份信息和待访问的目标服务,采用基于动态交叉加密机制更新后的对称密钥对用户身份信息进行加密;访问客户端模块将加密后的密文和身份认证请求发送给认证中心模块;
S2:认证中心模块接收到身份认证请求后对密文进行解密,得到用户身份信息,对解密后的用户信息进行校验,若校验失败,则用户身份认证失败,若校验成功,则根据用户身份信息创建接口映射规则R-I,并向访问客户端模块发送用户凭证,该用户凭证包括用户身份信息和接口映射规则R-I;
S3:访问客户端模块根据接口映射规制和待访问的目标服务构建接口映射规则R-II;根据接口映射规则R-II创建虚假访问请求,并将虚假访问请求发送给API网关;
S4:API网关对虚假访问请求进行解析,得到真实访问的目标服务请求,并将该请求发送给目标服务,并将目标服务相应发送给用户。
优选的,用户信息为字符串“{用户ID}-{用户密码}-{用户设备标识}”。
优选的,采用基于动态交叉加密机制对对称密钥进行更新包括:
步骤1:获取初始密钥A、B和用户身份信息,且初始密钥A和初始密钥B相等,其中访问客户端持有密钥A,认证中心模块持有密钥B;
步骤2:采用初始密钥A对用户身份信息进行加密,并将加密后的身份信息发送给认证中心模块;
步骤3:认证中心模块采用初始密钥B对加密后用户身份信息进行解密,得到解密后的用户身份信息;
步骤4:根据解密后的用户身份信息创建接口映射规则R-I;在认证中心模块中对解密后的用户身份信息进行Hash运算,得到第一临时密钥;
步骤5:对口映射规则R-I进行Hash运算,将该运算结果作为新的密钥B,完成对密钥B的更新;
步骤6:采用第一临时密钥对口映射规则R-I进行加密,并将加密后的接口映射规则R-I发送给访问客户端;
步骤7:在访问客户端对用户身份信息进行Hash运算,得到第二临时密钥,采用第二临时密钥对加密后的接口映射规则R-I进行解密;
步骤8:对解密后的接口映射规则R-I进行Hash运算,将该运算结果作为新的密钥A,完成对密钥A的更新。
优选的,创建接口映射规则R-I的过程包括:
步骤1:创建请求路径映射,该映射为一个<Key,Value>形式的键值对,在R-Ⅰ阶段,Key置空处理为NULL,Value为随机生成的字符串;
步骤2:创建请求方法映射,该映射为一个<Key,Value>形式的键值对,在R-Ⅰ阶段,Key置空处理为NULL,Value为一个键值对集合,即{<Get,R-Get>,<Post,R-Post>,<Put,R-Put>,<Delete,R-Delete>},其中R-Get为{Post,Put,Delete}中的随机值,R-Post为{Get,Put,Delete}中的随机值,R-Put为{Get,Post,Delete}中的随机值,R-Delete为{Get,Post,Put}中的随机值;
步骤3:创建请求参数映射,该映射为两个长度相同的字符串数组Origin和Random,其长度为后端服务中所需参数个数的最大值,在R-Ⅰ阶段,Origin数组置空处理,具体内容为[NULL,NULL,……],Random则填充随机字符串,具体内容为[Random1,Random2,……],其中Random为随机生成的字符串;
步骤4:创建接口映射规则R-Ⅰ,将步骤1、步骤2和步骤3所创建的请求路径映射、请求方法映射以及请求参数映射组成一个JSON格式的字符串,形成接口映射规则R-Ⅰ。
优选的,构建接口映射规则R-II的过程包括:
步骤1:基于接口映射规则R-Ⅰ完善请求路径映射,将请求路径映射的Key值替换为目标服务的访问请求路径;
步骤2:基于接口映射规则R-Ⅰ完善请求方法映射,将请求方法映射的Key值替换为目标服务的访问请求方法;
步骤3:基于接口映射规则R-Ⅰ完善请求参数映射,将请求参数映射中的Origin数组替换为目标服务的访问请求参数列表;
步骤4:创建接口映射规则R-Ⅱ,将步骤1、步骤2和步骤3所完善的请求路径映射、请求方法映射以及请求参数映射组成一个JSON格式的字符串,形成接口映射规则R-Ⅱ。
优选的,创建虚假访问请求的过程包括:
步骤1:创建一个空白的HTTP请求,获取目标服务所需的访问请求方法、参数信息;
步骤2:修改请求的访问路径,将其修改为R-Ⅱ中请求路径映射的Value值;
步骤3:修改请求的访问方法,将其修改为R-Ⅱ中请求方法映射的Value值,该值为目标服务所需请求方法所对应的随机值;
步骤4:修改请求的访问参数,将其按序修改为R-Ⅱ中请求参数映射的Random数组中的元素;
步骤5:将接口映射规则R-Ⅱ置入用户身份凭证中,同时将用户身份凭证放入请求体中,虚假访问请求创建完毕。
优选的,API网关对虚假访问请求进行解析的过程包括:
步骤1:将请求体解析为JSON格式字符串,从其名称为“reflection”的参数获取接口映射规则R-Ⅱ的密文;
步骤2:API网关解析用户身份凭证得到接口映射规则R-Ⅱ;
步骤3:还原访问请求,将请求的请求路径、请求方法分别修改为R-Ⅱ中请求路径映射与请求方法映射的Key值,将请求的参数名称按序修改为R-Ⅱ中请求参数映射Origin数组中的元素值;
步骤4:基于还原后的请求路径判断当前请求访问的目标服务,并将该请求转发给目标服务。
一种基于接口映射的API网关安全防护系统,该系统包括:访问客户端模块、认证中心模块以及API网关模块;
所述访问客户端模块包括数据获取模块、第一动态交叉加密模块、接口映射规制完善模块以及虚构请求模块;
所述数据获取模块用于获取用户的身份信息;
所述第一动态交叉加密模块用于对访问客户端模块中的密钥进行更新,并采用更新后的密钥对用户身份信息进行加密处理;
所述接口映射规制完善模块用于对认证中心返回的接口映射规则R-I进行完善,得到接口映射规则R-II;
所述虚构请求模块根据接口映射规则R-II构建虚假访问请求,并将虚假访问请求发送到API网关模块;
所述认证中心模块包括身份认证模块、接口映射规则制定模块以及第二动态交叉加密模块;
所述第二动态交叉加密模块用于对认证中心模块中的密钥进行进行更新;
所述身份认证模块用于获取经过第一交叉加密模块加密后的用户身份信息,并采用经过第二动态交叉加密模块更新后的密钥对加密后的信息进行解密,得到解密后的用户身份信息,对解密后的身份认证信息进行校验,若若校验失败,则用户身份认证失败,若校验成功,则将用户身份信息发送给接口映射规则制定模块;
所述接口映射规则制定模块根据用户身份信息制定接口映射规则R-I,并将接口映射规则R-I发送给访问客户端模块的接口映射规则完善模块;
所述API网关模块包括接口映射解析模块、请求还原模块以及请求转发模块;
所述接口映射解析模块对访问客户端模块的虚构请求模块发送的虚假访问请求进行解析,得到接口映射规则R-II;将接口映射规则R-II发送到请求还原模块中;
所述请求还原模块根据接口映射规则R-II还原出用户的真实请求服务;
所述请求转发模块用于将请求还原模块还原的真实请求服务转发到对应的服务器中,完成服务请求。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一上述基于接口映射的API网关安全防护方法。
为实现上述目的,本发明还提供一种基于接口映射的API网关安全防护装置,包括处理器和存储器;所述存储器用于存储计算机程序;所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述一种基于接口映射的API网关安全防护装置执行任一上述基于接口映射的API网关安全防护方法。
本发明的有益效果:
本发明提出的一种基于接口映射的API网关安全防护方法,针对现有API网关难以隐藏服务的应用特征并因此为攻击者提供了侦察机会的问题,提出了接口映射流程,通过接口映射实现了服务的对外应用特征跳变,增大了攻击者的侦察难度;在接口映射过程中,接口映射规则存在被截获破解的风险,针对该问题,本发明进而提出一种基于应用特征的动态交叉加密机制,基于接口映射规则动态更新加密密钥,增加了攻击者破解请求流量的难度,提高了应用系统的安全性。
附图说明
图1为本发明的接口映射和动态交叉加密机制在API网关中的应用场景示意图;
图2为本发明的接口映射机制流程图;
图3为本发明的动态交叉加密机制流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于接口映射的API网关安全防护方法,如图2所示,该方法包括:
S1:获取用户身份信息和待访问的目标服务,采用基于动态交叉加密机制更新后的对称密钥对用户身份信息进行加密;访问客户端模块将加密后的密文和身份认证请求发送给认证中心模块;
S2:认证中心模块接收到身份认证请求后对密文进行解密,得到用户身份信息,对解密后的用户信息进行校验,若校验失败,则用户身份认证失败,若校验成功,则根据用户身份信息创建接口映射规则R-I,并向访问客户端模块发送用户凭证,该用户凭证包括用户身份信息和接口映射规则R-I;
S3:访问客户端模块根据接口映射规制和待访问的目标服务构建接口映射规则R-II;根据接口映射规则R-II创建虚假访问请求,并将虚假访问请求发送给API网关;
S4:API网关对虚假访问请求进行解析,得到真实访问的目标服务请求,并将该请求发送给目标服务,并将目标服务相应发送给用户。
本发明提出一种基于接口映射的API网关安全防护方法,其主体由接口映射和动态交叉加密两部分组成。接口映射对微服务的API应用特征进行主动跳变,在隐藏微服务地址的基础上进一步隐藏了服务的应用特征。在接口映射过程中,攻击者可以通过监听、截获访问客户端与认证中心之间的流量从而提前获取API映射规则,从而伪造虚假的访问请求。为此,本发明提出基于应用特征动态交叉加密机制实现密钥的动态更新,增大了攻击者破解映射规则的难度,提高了应用系统的安全性。如图1所示,本发明设计的方法主要通过认证中心模块、访问客户端模块以及API网关模块三个功能模块实现。
认证中心模块:认证中心模块由身份认证、接口映射规则和动态交叉加密三个子功能模块组成。①身份认证子模块负责处理访问客户端模块发送的身份认证请求。该子模块首先基于DES算法解密用户的请求体信息,将其转换为JSON格式的字符串。此后,该子模块从其名称为“userId”的参数获取用户ID,从其名称为“password”的参数获取用户密码,从其名称为“device”的参数获取用户设备标识,得到用户身份信息“{用户ID}-{用户密码}-{用户设备标识}”。该子模块通过比较验证所得的用户身份信息和身份数据库中的用户ID和密码来进行身份校验认证。②接口映射规则子模块负责创建接口映射规则R-Ⅰ,即第一阶段的接口映射规则。R-Ⅰ具备接口映射规则中的映射值,如表2所示。③动态交叉加密子模块主要负责更新认证中心模块用于解密用户身份信息的密钥并创建用于加密R-Ⅰ的临时密钥。该子模块首先基于认证中心模块和访问客户端都持有的初始密钥解密用户身份信息EC,得到用户身份信息C。此后,该子模块通过Hash算法h1对C进行Hash运算,将计算结果记作临时密钥K并基于K对R-I进行加密。最后,该子模块通过Hash算法h2对接口映射规则R-Ⅰ进行Hash运算,将密钥B替换为计算结果。
访问客户端模块:访问客户端模块由动态交叉加密、接口映射规则和虚构请求三个子功能模块组成。动态交叉加密子模块主要负责更新访问客户端子模块用于解密用户身份信息的密钥A并创建用于解密接口映射规则R-Ⅰ的临时密钥,首先通过Hash算法h1对自身的用户身份信息C进行Hash运算,将计算结果记为临时密钥K,基于密钥K对加密的接口映射规则R-Ⅰ进行解密得到接口映射规则R-Ⅰ,最后通过Hash算法h2对接口映射规则R-Ⅰ进行Hash运算,将密钥A替换为计算结果。接口映射规则子模块负责完善接口映射规则R-Ⅰ中的API规则的真实值从而得到接口映射规则R-Ⅱ,即第二阶段的接口映射规则,该阶段的接口映射规则同时具备接口映射规则中的真实值和映射值,如表3所示。虚构请求子功能模块负责基于接口映射规则R-Ⅱ构建虚假的访问请求,即将请求的访问路径、访问请求方法和访问请求参数名称修改为接口映射规则的映射值,并将接口映射规则R-Ⅱ置入用户身份凭证的“reflection”参数中,最终将虚构的请求发送给API网关以访问目标服务。
API网关模块:API网关模块由接口映射规则解析、请求还原和请求转发三个功能子模块组成。①接口映射规则解析子模块负责提取出访问请求中携带的接口映射规则。该子模块负责解析用户身份凭证,并从用户身份凭证的参数“reflection”中获取接口映射规则R-Ⅱ。②请求还原子模块基于R-Ⅱ将当前访问请求中的请求路径、请求方法以及请求参数替换为R-Ⅱ中的真实值,还原的真实请求。③请求转发子模块负责将还原后的真实请求转发给目标服务以获取目标服务的请求响应。
接口映射规则的数据格式如表1所示,主要由访问请求路径Path、访问请求方法和访问请求参数Parameters组成。其中,Path的映射值为API规则为随机生成的字符串,Method由访问请求方法集合{Get,Post,Put,Delete}构成,集合中每个元素的映射值为集合中与其不同的另一个随机元素,Parameters为访问请求的参数名称集合,其映射值为随机字符串。
创建接口映射规则R-I的过程包括:
步骤1:创建请求路径映射,该映射为一个<Key,Value>形式的键值对,在R-Ⅰ阶段,Key置空处理为NULL,Value为随机生成的字符串;
步骤2:创建请求方法映射,该映射为一个<Key,Value>形式的键值对,在R-Ⅰ阶段,Key置空处理为NULL,Value为一个键值对集合,即{<Get,R-Get>,<Post,R-Post>,<Put,R-Put>,<Delete,R-Delete>},其中R-Get为{Post,Put,Delete}中的随机值,R-Post为{Get,Put,Delete}中的随机值,R-Put为{Get,Post,Delete}中的随机值,R-Delete为{Get,Post,Put}中的随机值;
步骤3:创建请求参数映射,该映射为两个长度相同的字符串数组Origin和Random,其长度为后端服务中所需参数个数的最大值,在R-Ⅰ阶段,Origin数组置空处理,具体内容为[NULL,NULL,……],Random则填充随机字符串,具体内容为[Random1,Random2,……],其中Random为随机生成的字符串;
步骤4:创建接口映射规则R-Ⅰ,将步骤1、步骤2和步骤3所创建的请求路径映射、请求方法映射以及请求参数映射组成一个JSON格式的字符串,形成接口映射规则R-Ⅰ。
表1接口映射规则
表2接口映射规则(R-Ⅰ)
构建接口映射规则R-II的过程包括:
步骤1:基于接口映射规则R-Ⅰ完善请求路径映射,将请求路径映射的Key值替换为目标服务的访问请求路径;
步骤2:基于接口映射规则R-Ⅰ完善请求方法映射,将请求方法映射的Key值替换为目标服务的访问请求方法;
步骤3:基于接口映射规则R-Ⅰ完善请求参数映射,将请求参数映射中的Origin数组替换为目标服务的访问请求参数列表;
步骤4:创建接口映射规则R-Ⅱ,将步骤1、步骤2和步骤3所完善的请求路径映射、请求方法映射以及请求参数映射组成一个JSON格式的字符串,形成接口映射规则R-Ⅱ。
创建虚假访问请求的过程包括:
步骤1:创建一个空白的HTTP请求,获取目标服务所需的访问请求方法、参数信息;
步骤2:修改请求的访问路径,将其修改为R-Ⅱ中请求路径映射的Value值;
步骤3:修改请求的访问方法,将其修改为R-Ⅱ中请求方法映射的Value值,该值为目标服务所需请求方法所对应的随机值;
步骤4:修改请求的访问参数,将其按序修改为R-Ⅱ中请求参数映射的Random数组中的元素;
步骤5:将接口映射规则R-Ⅱ置入用户身份凭证中,同时将用户身份凭证放入请求体中,虚假访问请求创建完毕。
API网关对虚假访问请求进行解析的过程包括:API网关模块由接口映射规则解析、请求还原和请求转发三个功能子模块组成;接口映射规则解析模块负责提取出访问请求中携带的接口映射规则,首先将请求的请求体解析位可读的JSON格式字符串,从其名称为“reflection”的参数获取接口映射规则的密文,解密后获得接口映射规则R-Ⅱ,基于R-Ⅱ将当前访问请求中的请求路径、请求方法以及请求参数替换为R-Ⅱ中的真实值,还原的真实请求,最后将真实请求转发给目标服务以获取目标服务的请求响应。
表3接口映射规则(R-Ⅱ)
结合认证中心模块和访问客户端模块,接口映射规则生成算法为:
算法1接口映射规则生成算法
输入受访问的服务中所需请求参数的最大值n,当前访问服务所需的请求参数数量m
输出接口映射规则R
考虑到访问客户端会访问多个不同的服务,接口映射规则的生成算法分为两个阶段:一是认证中心生成虚构的映射值,二是访问客户端生成真实值。算法第1行生成请求路径映射规则,由认证中心生成RandomPath,即虚构的映射值,由访问客户端生成真实的访问路径;算法2~3行生成请求方法映射规则,由认证中心分别为集合Method={get,post,put,delete}中4种常用的请求方法生成一个虚构的RandomMethod,RandomMethod属于集合Method且不重复;算法4~8行生成请求参数映射规则,首先由认证中心生成虚构不重复的RandomParameter,由访问客户端基于目标服务的请求参数填写真实的请求参数RealParameter,对于冗余的RandomParameter进行置空处理。接口映射生成算法具有随机性,可以充分隐藏服务的应用特征,攻击者无法通过分析应用特征和监听数据包预测对应API的行为。
接口映射机制具体实施流程为:
步骤1.1:访问客户端模块向认证中心模块发起身份认证请求,其中,用户身份信息置于请求体RequestBody中,加密前的明文为JSON格式的字符串,具体数据格式如下:
步骤1.2:认证中心模块收到身份认证请求后从请求体中提取密文,解密后从其中获取到用户ID、用户密码和用户设别标识等信息并于用户身份数据库中所存储的用户身份信息进行比对校验。
步骤1.3:身份校验通过后认证中心模块构建第一阶段的接口映射规则R-Ⅰ,其中,接口映射规则R-Ⅰ具备访问请求路径Path、访问请求方法Method以及访问请求参数Params等三个主要属性。Path为一个<Key,Value>形式的键值对,在R-Ⅰ阶段,Key置空处理,即NULL,Value为随机生成的字符串;Method表现为一个<Key,Value>形式的键值对,在R-Ⅰ阶段,Key置空处理,即NULL,Value为一个键值对数组,即{<Get,R-Get>,<Post,R-Post>,<Put,R-Put>,<Delete,R-Delete>},其中R-Get的值不为“Get”且不与R-Post、R-Put和R-Delete重复,以此类推;Parameters表现为两个字符串数组Origin和Random,这两个数组长度相等且为后端的服务中所需参数个数的最大值,在R-Ⅰ阶段,Origin数组置空处理,Random则填充随机字符串,至此接口映射规则R-Ⅰ创建完毕。
步骤1.4:认证中心模块将接口映射规则R-Ⅰ置入用户凭证中并将该凭证作为身份认证请求的响应返回给访问客户端模块;访问客户端模块从用户凭证中提取出接口映射规则R-Ⅰ。
步骤1.5:访问客户端模块基于即将访问的目标服务信息完善接口映射规则R-Ⅰ,得到第二阶段的接口映射规则R-Ⅱ。访问客户端模块完善的具体内容有:①Path属性的Key值,具体内容为目标服务的访问请求路径;②Method的Key值,具体内容为目标服务的访问请求方法;③Parameters的Origin数组,根据目标服务所需的访问请求参数列表依次将参数名称填入Origin数组,至此接口映射规则R-Ⅱ创建完毕。
步骤1.6:访问客户端模块基于接口映射规则R-Ⅱ构建虚假的访问请求。首先,访问客户端快将请求的访问路径修改为R-Ⅱ中Path的Value值,即映射值;其次,访问客户端模块将请求的请求方法为目标服务访问请求方法对应的随机映射值,例如,若目标服务方法为Post,则当前所构建的请求方法为R-Post;最后,访问客户端模块将请求的参数名称依次替换为R-Ⅱ中Parameters的Random数组的元素值,具体的参数值不变。访问客户端模块将R-Ⅱ置入用户凭证,并将携带用户凭证的虚构访问请求发送给API网关模块。
步骤1.7:API网关模块收到访问请求后,首先从请求携带的用户凭证中提取接口映射规则R-Ⅱ,根据其Path的Key,即真实值,判断当前请求所访问的目标服务;其次,API网关模块基于R-Ⅱ还原当前访问请求,具体内容有:①将当前访问请求的访问路径替换为R-Ⅱ中Path属性的Key;②将当前访问请求的请求方法替换为R-Ⅱ中属性Method的Key;③将当前访问请求的请求参数列表中的参数名称依次替换为R-Ⅱ中Origin数组的元素值,至此访问请求还原完毕。最后,API网关模块将还原后的真实访问请求转发给目标服务,并将目标服务的服务响应返回给访问客户端模块。
如图3所示,接口动态交叉加密机制具体实施流程为:
步骤2.1:访问客户端持有本地用户的身份信息C,基于密钥A和AES加密算法对其进行加密得到密文EC,即加密后的用户身份信息,访问客户端模块和认证中心模块基于EC进行身份认证。认证中心模块收到EC后基于密钥B和AES加密算法对EC进行解密得到用户身份信息C,至此访问客户端模块和认证中心模块持有相同的用户身份信息C。其中,在系统初始化阶段令密钥A和密钥B相等。
步骤2.2:认证中心模块通过MD5算法对用户身份信息C进行Hash运算,将运算结果记为临时密钥K,基于K和DES算法对接口映射规则R-Ⅰ进行加密并发送给访问客户端。访问客户端同样通过MD5算法对本地的用户身份信息C进行Hash运算,将计算结果记为临时密钥K,基于K和DES算法对加密的R-I进行解密,至此认证中心模块和访问客户端模块都持有相同的接口映射规则R-Ⅰ。
步骤2.3:认证中心模块通过MD5算法对接口映射规则R-Ⅰ进行Hash运算,将其密钥B替换为运算结果,对密钥B进行更新;访问客户端模块通过MD5算法对接口映射规则R-Ⅰ进行Hash运算,将其密钥A替换为运算结果,对密钥A进行更新,至此密钥A和B完成各自的更新且更新后值相等。
于本发明一实施例中,本发明还包括一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一所述基于接口映射的API网关安全防护方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
一种基于接口映射的API网关安全防护装置,包括处理器和存储器;所述存储器用于存储计算机程序;所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述一种基于接口映射的API网关安全防护装置执行任一上述基于接口映射的API网关安全防护方法。
具体地,所述存储器包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
优选地,所述处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于接口映射的API网关安全防护方法,其特征在于,包括:
S1:获取用户身份信息和待访问的目标服务,采用基于动态交叉加密机制更新后的对称密钥对用户身份信息进行加密;访问客户端模块将加密后的密文和身份认证请求发送给认证中心模块;采用基于动态交叉加密机制对对称密钥进行更新包括:
A1:获取初始密钥A、B和用户身份信息,且初始密钥A和初始密钥B相等,其中访问客户端持有密钥A,认证中心模块持有密钥B;
A2:采用初始密钥A对用户身份信息进行加密,并将加密后的身份信息发送给认证中心模块;
A3:认证中心模块采用初始密钥B对加密后用户身份信息进行解密,得到解密后的用户身份信息;
A4:根据解密后的用户身份信息创建接口映射规则R-I;在认证中心模块中对解密后的用户身份信息进行Hash运算,得到第一临时密钥;
A5:对口映射规则R-I进行Hash运算,将该运算结果作为新的密钥B,完成对密钥B的更新;
A6:采用第一临时密钥对口映射规则R-I进行加密,并将加密后的接口映射规则R-I发送给访问客户端;
A7:在访问客户端对用户身份信息进行Hash运算,得到第二临时密钥,采用第二临时密钥对加密后的接口映射规则R-I进行解密;
A8:对解密后的接口映射规则R-I进行Hash运算,将该运算结果作为新的密钥A,完成对密钥A的更新;
S2:认证中心模块接收到身份认证请求后对密文进行解密,得到用户身份信息,对解密后的用户信息进行校验,若校验失败,则用户身份认证失败,若校验成功,则根据用户身份信息创建接口映射规则R-I,并向访问客户端模块发送用户凭证,该用户凭证包括用户身份信息和接口映射规则R-I;创建接口映射规则R-I的过程包括:
B1:创建请求路径映射,该映射为一个<Key,Value>形式的键值对,在R-Ⅰ阶段,Key置空处理为NULL,Value为随机生成的字符串;
B2:创建请求方法映射,该映射为一个<Key,Value>形式的键值对,在R-Ⅰ阶段,Key置空处理为NULL,Value为一个键值对集合,即{<Get,R-Get>,<Post,R-Post>,<Put,R-Put>,<Delete,R-Delete>},其中R-Get为{Post,Put,Delete}中的随机值,R-Post为{Get,Put,Delete}中的随机值,R-Put为{Get,Post,Delete}中的随机值,R-Delete为{Get,Post,Put}中的随机值;
B3:创建请求参数映射,该映射为两个长度相同的字符串数组Origin和Random,其长度为后端服务中所需参数个数的最大值;在R-Ⅰ阶段,Origin数组置空处理,即[NULL,NULL,……];Random则填充随机字符串,即[Random1,Random2,……],其中Random为随机生成的字符串;
B4:创建接口映射规则R-Ⅰ,将B1、B2和B3所创建的请求路径映射、请求方法映射以及请求参数映射组成一个JSON格式的字符串,形成接口映射规则R-Ⅰ;
S3:访问客户端模块根据接口映射规制和待访问的目标服务构建接口映射规则R-II;根据接口映射规则R-II创建虚假访问请求,并将虚假访问请求发送给API网关;构建接口映射规则R-II的过程包括:
C1:基于接口映射规则R-Ⅰ完善请求路径映射,将请求路径映射的Key值替换为目标服务的访问请求路径;
C2:基于接口映射规则R-Ⅰ完善请求方法映射,将请求方法映射的Key值替换为目标服务的访问请求方法;
C3:基于接口映射规则R-Ⅰ完善请求参数映射,将请求参数映射中的Origin数组替换为目标服务的访问请求参数列表;
C4:创建接口映射规则R-Ⅱ,将C1、C2和C3所完善的请求路径映射、请求方法映射以及请求参数映射组成一个JSON格式的字符串,形成接口映射规则R-Ⅱ;
S4:API网关对虚假访问请求进行解析,得到真实访问的目标服务请求,并将该请求发送给目标服务,并将目标服务相应发送给用户。
2.根据权利要求1所述的一种基于接口映射的API网关安全防护方法,其特征在于,用户身份信息为字符串“{用户ID}-{用户密码}-{用户设备标识}”。
3.根据权利要求1所述的一种基于接口映射的API网关安全防护方法,其特征在于,创建虚假访问请求的过程包括:
步骤1:创建一个空白的HTTP请求,获取目标服务所需的访问请求方法、参数信息;
步骤2:修改请求的访问路径,将其修改为R-Ⅱ中请求路径映射的Value值;
步骤3:修改请求的访问方法,将其修改为R-Ⅱ中请求方法映射的Value值,该值为目标服务所需请求方法所对应的随机值;
步骤4:修改请求的访问参数,将其按序修改为R-Ⅱ中请求参数映射的Random数组中的元素;
步骤5:将接口映射规则R-Ⅱ置入用户身份凭证中,同时将用户身份凭证放入请求体中,虚假访问请求创建完毕。
4.根据权利要求1所述的一种基于接口映射的API网关安全防护方法,其特征在于,API网关对虚假访问请求进行解析的过程包括:
步骤1:将请求体解析为JSON格式字符串,从其名称为“reflection”的参数获取接口映射规则R-Ⅱ的密文;
步骤2:API网关解析用户身份凭证得到接口映射规则R-Ⅱ;
步骤3:还原访问请求,将请求的请求路径、请求方法分别修改为R-Ⅱ中请求路径映射与请求方法映射的Key值,将请求的参数名称按序修改为R-Ⅱ中请求参数映射Origin数组中的元素值;
步骤4:基于还原后的请求路径判断当前请求访问的目标服务,并将该请求转发给目标服务。
5.一种基于如权利要求1所述方法的基于接口映射的API网关安全防护系统,其特征在于,该系统包括:访问客户端模块、认证中心模块以及API网关模块;
所述访问客户端模块包括数据获取模块、第一动态交叉加密模块、接口映射规制完善模块以及虚构请求模块;
所述数据获取模块用于获取用户的身份信息;
所述第一动态交叉加密模块用于对访问客户端模块中的密钥进行更新,并采用更新后的密钥对用户身份信息进行加密处理;
所述接口映射规制完善模块用于对认证中心返回的接口映射规则R-I进行完善,得到接口映射规则R-II;
所述虚构请求模块根据接口映射规则R-II构建虚假访问请求,并将虚假访问请求发送到API网关模块;
所述认证中心模块包括身份认证模块、接口映射规则制定模块以及第二动态交叉加密模块;
所述第二动态交叉加密模块用于对认证中心模块中的密钥进行进行更新;
所述身份认证模块用于获取经过第一交叉加密模块加密后的用户身份信息,并采用经过第二动态交叉加密模块更新后的密钥对加密后的信息进行解密,得到解密后的用户身份信息,对解密后的身份认证信息进行校验,若若校验失败,则用户身份认证失败,若校验成功,则将用户身份信息发送给接口映射规则制定模块;
所述接口映射规则制定模块根据用户身份信息制定接口映射规则R-I,并将接口映射规则R-I发送给访问客户端模块的接口映射规则完善模块;
所述API网关模块包括接口映射解析模块、请求还原模块以及请求转发模块;
所述接口映射解析模块对访问客户端模块的虚构请求模块发送的虚假访问请求进行解析,得到接口映射规则R-II;将接口映射规则R-II发送到请求还原模块中;
所述请求还原模块根据接口映射规则R-II还原出用户的真实请求服务;
所述请求转发模块用于将请求还原模块还原的真实请求服务转发到对应的服务器中,完成服务请求。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行,以实现权利要求1至4中任一项基于接口映射的API网关安全防护方法。
7.一种基于接口映射的API网关安全防护装置,其特征在于,包括处理器和存储器;所述存储器用于存储计算机程序;所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述一种基于接口映射的API网关安全防护装置执行权利要求1至4中任一项基于接口映射的API网关安全防护方法。
CN202210177112.9A 2022-02-24 2022-02-24 一种基于接口映射的api网关安全防护方法及其系统 Active CN114553410B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210177112.9A CN114553410B (zh) 2022-02-24 2022-02-24 一种基于接口映射的api网关安全防护方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210177112.9A CN114553410B (zh) 2022-02-24 2022-02-24 一种基于接口映射的api网关安全防护方法及其系统

Publications (2)

Publication Number Publication Date
CN114553410A CN114553410A (zh) 2022-05-27
CN114553410B true CN114553410B (zh) 2023-10-27

Family

ID=81679557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210177112.9A Active CN114553410B (zh) 2022-02-24 2022-02-24 一种基于接口映射的api网关安全防护方法及其系统

Country Status (1)

Country Link
CN (1) CN114553410B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110301143A (zh) * 2016-12-30 2019-10-01 英特尔公司 用于无线电通信的方法和设备
CN113783695A (zh) * 2021-08-03 2021-12-10 西北大学 一种微服务架构的客户端信息认证方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9557889B2 (en) * 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110301143A (zh) * 2016-12-30 2019-10-01 英特尔公司 用于无线电通信的方法和设备
CN113783695A (zh) * 2021-08-03 2021-12-10 西北大学 一种微服务架构的客户端信息认证方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Precise Android API Protection Mapping Derivation and Reasoning;Yousra Aafer;《ACM》;全文 *
云电子身份管理与认证系统中的关键技术优化改进;王鹏程;谢昆鹏;;现代电子技术(第24期);全文 *
面向零信任API网关的微隔离技术研究;刘坤;《硕士电子期刊》;全文 *

Also Published As

Publication number Publication date
CN114553410A (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
US11303445B2 (en) Method and system of preserving privacy for usage of lightweight blockchain clients
CN111488598B (zh) 访问控制方法、装置、计算机设备和存储介质
US9917829B1 (en) Method and apparatus for providing a conditional single sign on
CN111447214B (zh) 一种基于指纹识别的公钥密码集中服务的方法
CN109981675B (zh) 一种数字身份认证和属性加密的身份信息保护方法
CN109347835A (zh) 信息传输方法、客户端、服务器以及计算机可读存储介质
US8977857B1 (en) System and method for granting access to protected information on a remote server
US10375084B2 (en) Methods and apparatuses for improved network communication using a message integrity secure token
US8924725B2 (en) Authenticated file handles for network file systems
US11005828B1 (en) Securing data at rest
CN111639357B (zh) 一种加密网盘系统及其认证方法和装置
US10929402B1 (en) Secure join protocol in encrypted databases
Culnane et al. Trust implications of DDoS protection in online elections
CN112242898A (zh) 一种针对洋葱网络系统共识文件的加密方法
CN108170753A (zh) 一种共有云中Key-Value数据库加密与安全查询的方法
CN107347073A (zh) 一种资源信息处理方法
CN110572392A (zh) 一种基于Hyperledger网络的身份认证方法
Nakouri et al. A new biometric-based security framework for cloud storage
US20170295142A1 (en) Three-Tiered Security and Computational Architecture
CN110875903B (zh) 一种安全防御方法及设备
US11133926B2 (en) Attribute-based key management system
CN114553410B (zh) 一种基于接口映射的api网关安全防护方法及其系统
CN107704775B (zh) 对导航数据信息进行aes加密存储的方法
Hammami et al. Security issues in cloud computing and associated alleviation approaches
CN107612917B (zh) 云计算环境下对日志存储使用3des加密算法加密的方法

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