CN114117401B - Api安全调用方法、装置、设备以及计算机存储介质 - Google Patents
Api安全调用方法、装置、设备以及计算机存储介质 Download PDFInfo
- Publication number
- CN114117401B CN114117401B CN202210075257.8A CN202210075257A CN114117401B CN 114117401 B CN114117401 B CN 114117401B CN 202210075257 A CN202210075257 A CN 202210075257A CN 114117401 B CN114117401 B CN 114117401B
- Authority
- CN
- China
- Prior art keywords
- api
- verified
- agent
- information
- verification
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及网络通信技术领域,公开了一种API安全调用方法,该方法包括:接收待验证代理发送的数据处理请求;数据处理请求中包括待验证身份信息和待处理数据;根据合法代理列表对待验证身份信息进行验证;合法代理列表根据多个可选代理的单包验证结果确定;各个可选代理分别部署在API调用端或API提供端对应的设备上;当待验证身份信息验证通过时,与待验证代理之间建立流量通道;流量通道用于传输待处理数据。通过上述方式,本发明实施例提高了API调用的效率和安全性。
Description
技术领域
本发明实施例涉及网络通信技术领域,具体涉及一种API安全调用的方法、装置、设备以及计算机存储介质。
背景技术
随着微服务的流行,应用经常需要提供API(Application ProgrammingInterface,应用程序接口)给第三方调用。为了提高API调用的安全性,现有技术中一般使用身份验证与安全会话保持技术。
本申请的发明人在实施本申请实施例的过程中发现:现有的API安全调用方法存在安全性或效率不高的问题。
发明内容
鉴于上述问题,本发明实施例提供了一种API安全调用方法,用于解决现有技术中存在的API调用的安全性或效率不高的问题。
根据本发明实施例的一个方面,提供了一种API安全调用方法,所述方法基于API网关;所述方法包括:
接收待验证代理发送的数据处理请求;所述数据处理请求中包括待验证身份信息和待处理数据;
根据合法代理列表对所述待验证身份信息进行验证;所述合法代理列表根据多个可选代理的单包验证结果确定;各个所述可选代理分别部署在API调用端或API提供端对应的设备上;
当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道;所述流量通道用于传输所述待处理数据。
在一种可选的方式中,所述方法还包括:
分别接收各个所述可选代理发送的身份及网络信息包;
对所有所述身份及网络信息包进行验证,得到所述单包验证结果;
将所述单包验证结果为验证通过的所述可选代理添加进所述合法代理列表中。
在一种可选的方式中,所述方法还包括:
对所述身份及网络信息包进行解析,得到待验证身份及网络信息和待验证信息包序号;
当所述待验证身份及网络信息验证通过时,确定历史验证数据包序号;
根据所述待验证信息包序号在所述历史验证数据包序号中进行查询,得到查询结果;
当所述查询结果为未查询到时,确定所述身份及网络信息包验证通过。
在一种可选的方式中,所述方法还包括:
根据所述待验证身份信息在所述合法代理列表进行查询;
当查询到所述待验证身份信息时,确定所述待验证代理验证通过。
在一种可选的方式中,所述API网关的数量为多个,所述多个API网关之间共享各个所述API网关的运行状态信息;所述方法还包括:
根据所有所述运行状态信息从所述多个API网关中确定目标网关;
当接收所述数据处理请求的API网关与所述目标网关不一致时,将所述待处理数据转发至所述目标网关,以使得所述待验证代理与所述目标网关之间建立所述流量通道。
在一种可选的方式中,所述多个API网关之间共享各个所述API网关对应的可调用API信息;当所述待验证代理部署在API调用端对应的设备上时,所述待处理数据中包括待调用API信息;所述方法还包括:
将所述待调用API信息与所述可调用API信息进行匹配,得到匹配结果;
将所述匹配结果为匹配的可调用API信息对应的API网关确定为所述目标网关。
在一种可选的方式中,所述方法还包括:
将所述单包验证结果为未通过的所述可选代理添加进非法代理列表;其中,所述非法代理列表以第一预设时长为周期进行更新,所述合法代理列表以第二预设时长为周期进行更新,所述第一预设时长小于所述第二预设时长。
根据本发明实施例的另一方面,提供了一种API安全调用装置,包括:
接收模块,用于接收待验证代理发送的数据处理请求;所述数据处理请求中包括待验证身份信息和待处理数据;
验证模块,用于根据合法代理列表对所述待验证身份信息进行验证;所述合法代理列表根据多个可选代理的单包验证结果确定;各个所述可选代理分别部署在API调用端或API提供端对应的设备上;
传输模块,用于当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道;所述流量通道用于传输所述待处理数据。
根据本发明实施例的另一方面,提供了一种API安全调用设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如任意一项所述的API安全调用方法实施例的操作。
根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使API安全调用设备执行任意一项所述的API安全调用方法实施例的操作。
本发明实施例通过API网关接收待验证代理发送的数据处理请求;其中,数据处理请求中包括待验证身份信息和待处理数据;根据合法代理列表对待验证身份信息进行验证;其中,合法代理列表根据多个可选代理的单包验证结果确定;各个可选代理分别部署在API调用端或API提供端对应的设备上;最后,当待验证身份信息验证通过时,与待验证代理之间建立流量通道;流量通道用于传输待处理数据。本发明实施例通过根据预先生成的合理代理列表进行验证,一方面将身份验证过程和实际的API调用相关的数据传输过程分离,提高了身份验证的效率,另一方面由于各个被验证的可选代理部署在API调用端或提供端的设备本机上,并且由于API网关IP地址是固定的,当可选代理与API网关通信时,API网关可以得到各个可选代理的相对固定的IP,并且只有通过验证的可选代理才可以与API网关之间建立流量通道,由此可以实现广域网环境下API调用的防DDOS攻击,提高API调用的安全性。由此,区别于现有的API调用进行身份验证较为低效并且无法防范DDOS攻击等问题,本发明实施例能够提高API调用的效率和安全性。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的API安全调用方法的流程示意图;
图2示出了本发明实施例提供的API安全调用装置的结构示意图;
图3示出了本发明实施例提供的API安全调用设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
微服务:架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。
DDOS:Distributed Denial of Service,即分布式阻断服务,是指攻击者利用DDOS攻击器控制多台机器同时攻击来达到妨碍正常使用者使用服务的目的。
边车:即Sidecar,服务网格层可以存在于与应用程序一起运行的Sidecar容器中,每个应用程序旁边都附有相同的Sidecar副本。来自单个服务的所有传入和传出网络流量,都流经Sidecar代理。因此,Sidecar能够管理微服务之间的流量,可收集数据并实施相关策略。从某个角度来说,应用并不需要了解网路外部的系统,只需要知道附加的Sidecar代理,边车与应用程序之间通过本机IO进行通信。
单包验证(Single Packet Authorization):主要作用在通过默认关闭应用服务端口,使服务实现网络隐身,从网络上无法连接、无法扫描。如果需要使用服务,则通过客户端发送一个包含有网络包序号和身份以及网络信息以及摘要的认证报文信息给服务器,服务器认证该报文后,判断客户端的网络和身份可信将对该IP地址打开相关的服务,这个验证方式称为单包验证。
图1示出了本发明实施例提供的API安全调用方法的流程图,该方法由计算机处理设备执行。该计算机处理设备可以包括手机、笔记本电脑、API网关等。如图1所示,该方法包括以下步骤:
步骤10:接收待验证代理发送的数据处理请求;所述数据处理请求中包括待验证身份信息和待处理数据。
在本发明的一个实施例中,待验证代理通过MQTT协议发送数据处理请求至预设的API网关。其中,数据处理请求用于调用特定的API、进行API服务注册或提供API服务等。待处理数据可以包括与API调用相关的数据,如待调用的API的信息、待注册的API服务信息、可提供的API服务信息以及特定的API服务相关信息。待验证身份信息中包括待验证代理的代理标识信息和/或IP地址。API网关的对外IP地址是固定的。
步骤20:根据合法代理列表对所述待验证身份信息进行验证;所述合法代理列表根据多个可选代理的单包验证结果确定;各个所述可选代理分别部署在API调用端或API提供端对应的设备上。
在本发明的一个实施例中,合法代理列表是根据预先的多个可选代理的单包验证结果生成并定时更新的,用于表征可以与API网关连接并进行API调用相关的数据交换的代理,其中,代理可以是用于调用API服务或者提供API服务的。
其中,可选代理可以以边车模式部署在API调用端或API提供端对应的设备上。在边车模式下,API调用端或API提供端把API代理安装到自身所在的机器上。类似于本地SDK,API使用http协议以及json协议调用本地的可选代理,API调用端或API提供端与其本机上的可选代理之间的网络流量通过是本机IO传输,可以忽略不计。
由于各个可选代理部署在API调用端或API提供端对应的设备上,而API网关的对外IP地址是固定的,因此,当可选代理与API网关通信时,可以通过API网关定位到当前连接的可选代理的身份和地址,因此,可以根据待验证身份信息在合理代理列表中进行查询,当查询到时,说明待验证代理是事先身份验证通过的可选代理中的一个。由此将可选代理的身份验证过程与验证通过的代理与API网关之间的API服务调用相关的数据传输过程相解耦与隔离,一方面,通过先验证再连接,并且验证结果能够定位到对应的代理和终端的IP地址上,能够防止DDOS攻击,另一方面也解决了云服务等场景下发起请求方的IP地址不固定的问题,可以对API调用者以及API提供者进行定位,对于API提供端部署于任意网络问题都可以应用。
因此,在本发明的再一个实施例中,在步骤20之前还包括:
步骤201:分别接收各个所述可选代理发送的身份及网络信息包。
在本发明的一个实施例中,身份及网络信息包中包括各个可选代理分别对应的身份信息、网络信息以及摘要的认证报文信息,其中,摘要可以根据可选代理与API网关之间的共享密钥对身份信息以及网络信息进行签名得到。其中,在可选代理中可以存储有其自身的代理标识信息、API网关地址以及共享密钥。
可选代理与API网关之间可以通过UDP或TCP协议进行通信。可选地,可选代理每15秒发送一次身份及网络信息包,而待验证代理每3秒发送一次数据处理请求,从而避免UDP的丢包。
步骤202:对所有所述身份及网络信息包进行验证,得到所述单包验证结果。
在本发明的一个实施例中,对身份及网络信息包进行单包验证,具体可以如下:根据共享密钥对身份及网络信息包进行解析,根据共享密钥对解析得到的身份信息以及网络信息进行加密,将加密得到的结果与解析到的摘要进行匹配,当两者匹配时,确定对应的可选代理单包验证通过,由此完成对所有可选代理的身份及网络信息包进行单包验证。
可选地,考虑到攻击者还可能进行重放攻击,因此身份及网络信息包中还可以包括该信息包的序号,用于特异性表征身份及网络信息包。
将当前接收到的信息包的序号与预设历史区间内历史验证过的数据包序号进行比较,当当前接收到的信息包的序号不存在于历史验证过的数据包序号中时,则确定不存在重放攻击,即单包验证结果为验证通过。
因此,在本发明的再一个实施例中,步骤202还包括:
步骤2021:对所述身份及网络信息包进行解析,得到待验证身份及网络信息和待验证信息包序号。
在本发明的一个实施例中,待验证信息包序号是身份及网络信息包对应的特异性序号。
步骤2022:当所述待验证身份及网络信息验证通过时,确定历史验证数据包序号。
在本发明的一个实施例中,历史验证数据包序号当前的API网关在预设的历史区间内验证过的所有的待验证身份及网络信息包的序号。其中,当前的API网关指的是为当前接收身份及网络信息包的API网关,历史时间区间可以是较短时长内,如3分钟。
步骤2023:根据所述待验证信息包序号在所述历史验证数据包序号中进行查询,得到查询结果。
在本发明的一个实施例中,查询结果中包括历史验证数据包序号中是否存在待验证信息包序号。
步骤2024:当所述查询结果为未查询到时,确定所述身份及网络信息包验证通过。
在本发明的一个实施例中,当未查询到,表明身份及网络信息包之前未发送至API网关进行验证过,因此不存在重放攻击,确定验证通过,在防止DDOS攻击的基础上还可以防止重放攻击,进一步提高API调用的安全性。
步骤203:将所述单包验证结果为验证通过的所述可选代理添加进所述合法代理列表中。
在本发明的一个实施例中,可以将验证通过的可选代理的代理标识信息、IP地址等代理身份信息存储进合法代理列表,从而后续在接收到待验证代理的身份信息时,直接在合法代理列表中进行查询,只有在查询到的情况,才与待验证代理之间建立用于API调用相关数据传输的流量通道,从而防止DDOS攻击。
需要说明的是,结合前述的验证过程与数据传输过程解耦的说明,可选代理的单包验证结果并不返回至对应的可选代理,后续直接根据合法代理列表中是否存储有待验证代理即可完成安全性高的API调用过程。由此实现API网关与可选代理之间的最小程度的回应,在提高API调用的效率的同时,减少API网关与可选代理之间的往返通信次数,提高安全性。
在本发明的再一个实施例中,步骤204之后还包括:
步骤205:将所述单包验证结果为未通过的所述可选代理添加进非法代理列表;其中,所述非法代理列表以第一预设时长为周期进行更新,所述合法代理列表以第二预设时长为周期进行更新,所述第一预设时长小于所述第二预设时长。
在本发明的一个实施例中,结合可选代理发送身份及网络信息的频率如每15秒,第一预设时长可以对应设置为30s,第二预设时长可以对应设置为60s。首先,通过设置非法代理列表,将验证未通过的可选代理都视作潜在的攻击者,不与其建立流量传输通道,从而避免了DDOS攻击。
并且根据可选代理的单包验证请求的频率,对非法代理列表和合法代理列表进行周期性更新,由此防止因合法代理列表或非法代理列表的更新不及时导致API调用不可用或者安全性降低的问题,由此提高API调用的可用性和安全性。
因此,在本发明的一个实施例中,步骤20还包括:
步骤204:根据所述待验证身份信息在所述合法代理列表进行查询。
在本发明的一个实施例中,合法代理列表中包括验证通过的可选代理的代理标识信息、IP地址、验证通过时间以及历史请求次数等身份验证信息。
步骤205:当查询到所述待验证身份信息时,确定所述待验证代理验证通过。
步骤30:当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道;所述流量通道用于传输所述待处理数据。
在本发明的一个实施例中,流量通道可以通过TLS(Transport Layer Security,传输层安全协议)建立。待处理数据中包括API网关通过流量通道接收待处理数据,并将待处理数据转发至该待处理数据对应的身份验证通过的其他待验证代理。
考虑到单个API网关的数据处理能力是有限的,在API调用请求较为频繁和大量时,可能存在网关请求堵塞甚至崩溃,从而影响API调用的效率和可用性,因此,在本发明的再一个实施例中,可以将多个API网关进行组网,得到一个分布式的API集群,该API集群对外表现为单个API网关提供数据传输和转发服务,从而实现API调用者对API提供者所提供的API服务的调用。
其中,API网关组成API集群的方式可以是通过在各个API网关中共享API网关的运行状态信息、通信地址、对应的合法代理列表,实现API网关的自组网。因此,在本发明的一个实施例中,所述API网关的数量为多个,所述多个API网关之间共享各个所述API网关的运行状态信息;
步骤30还包括:步骤301:根据所有所述运行状态信息从所述多个API网关中确定目标网关。
在本发明的一个实施例中,根据运行状态信息确定API网关的负载信息。根据负载信息将多个API网关中负载最小的API网关确定为目标网关。其中,运行状态信息用于表征API网关的资源使用和任务处理状态,如连接数、使用流量、CPU以及网关之间的带宽等。
可选地,负载信息可以按照下式确定:负载=归一化后的连接数+归一化后的CPU+归一化后的内存+当前网关的网络流量/当前网关与其他各网关之间的带宽。
步骤302:当接收所述数据处理请求的API网关与所述目标网关不一致时,将所述待处理数据转发至所述目标网关,以使得所述待验证代理与所述目标网关之间建立所述流量通道。
在本发明的一个实施例中,当存在多个API网关时,当前接收数据处理请求的API网关可以根据其他所有的API网关所共享的运行状态信息确定出负载情况最优的目标网关,当目标网关不是自身时,当前接收数据处理请求的网关则将其接收到的待处理数据转发至目标网关,从而提高API调用的效率。
在本发明的再一个实施例中,考虑到在API调用时,各个API网关所连接的API提供端对应的代理可能不同,并且API提供端的API服务的可用性可能会发生变化,
因从,为了提高API调用者对特定的API服务的调用的可用性,可以根据API网关之间共享的API服务的注册信息,将待处理数据转发至对应的API提供端所注册于的API网关,其中,API在API网关的注册指的是API提供端通过本机上部署的可选代理将自身的可提供服务信息发送至API网关,当该可选代理单包验证通过时,API网关则将API提供端对应的服务信息注册到本网关,并且将API注册信息与其他所有API网关共享,从而进一步提高API调用的效率。
因此,在本发明的再一个实施例中,所述多个API网关之间共享各个所述API网关对应的可调用API信息;其中,当待验证代理部署在API提供端对应的设备上,待处理数据中包括所述可调用API信息。而当所述待验证代理部署在API调用端对应的设备上时,所述待处理数据中包括待调用API信息。
在步骤302之前还包括:步骤303:将所述待调用API信息与所述可调用API信息进行匹配,得到匹配结果。
在本发明的一个实施例中,将待调用API信息与API网关所共享的可调用信息进行匹配,得到所匹配到的可调用API信息对应的代理所注册于的API网关信息。
步骤304:将所述匹配结果为匹配的可调用API信息对应的API网关确定为所述目标网关。
在本发明的一个实施例中,将与待调用API信息匹配的可调用API信息对应的可选代理所连接的API网关确定为目标网关。
在本发明的再一个实施例中,通过API网关实现安全调用API的过程如下:首先,API调用端的本机上以边车模式安装有第一代理,API提供端的本机上以边车模式安装有第二代理,第一代理与第二代理分别通过UDP协议向API网关集群发送第一单包验证请求和第二单包验证请求。第一/第二单包验证请求中包括第一/第二代理对应的身份信息。
API网关集群中的任一API网关接收第一/第二单包验证请求,并对其进行验证,当验证通过时,将第一/第二代理加入合法代理列表第二预设时长,当验证未通过时,将第一/第二代理加入非法代理列表第一预设时长,其中,第一预设时长可以对应设置为30s,第二预设时长可以对应设置为60s。与此同时,各个API网关将自身存储的合法代理列表和非法代理列表与API网关集群中的其他所有API网关进行分享。
随后,第一/第二代理以第三预设时长为发送周期通过MQTT协议分别向API网关集群发送携带有自身的代理身份信息的最优网关查询请求,最优网关查询请求用于查询当前API网关集群中负载最优的API网关。其中,第三预设时长可以是15s。API网关集群中的任一API网关接收并处理最优网关查询请求,根据代理身份信息在合法代理列表中进行查询,当查询到时,则进一步根据当前集群中所有API网关共享的状态信息确定最优网关信息,将该最优网关信息返回至第一/第二代理,从而使得第一/第二代理可以通过TLS协议与负载最优的API网关建立流量传输隧道。
最后,在通过流量隧道进行数据传输阶段,API调用端向第一代理发起API调用请求,API调用请求中包括待调用API信息和其他API调用的待处理数据。而API提供端检查API服务是否可用,并通过第二代理将API可用信息发送至预设的数据库或者是直接发送至API网关集群中的任一API网关,其中,该预设的数据库可以是ETCD,ETCD中存储有第二代理对应的可调用API信息以及所连接的API网关信息。
API网关集群中的任一API网关根据接收到的待调用API信息在数据库中进行查询,得到与待调用API信息匹配的API网关,通过将其他API调用的待处理数据发送至该匹配的API网关,使得该API网关将待处理数据通过前述流量通道发送至第二代理,并将第二代理返回的API调用回应信息返回至第一代理,从而完成API调用者通过第一代理-API网关-第二代理对API提供端提供的API服务的调用。
本发明实施例提供的API安全调用方法通过API网关接收待验证代理发送的数据处理请求;其中,数据处理请求中包括待验证身份信息和待处理数据;根据合法代理列表对待验证身份信息进行验证;其中,合法代理列表根据多个可选代理的单包验证结果确定;各个可选代理分别部署在API调用端或API提供端对应的设备上;最后,当待验证身份信息验证通过时,与待验证代理之间建立流量通道;流量通道用于传输待处理数据。本发明实施例通过根据预先生成的合理代理列表进行验证,一方面将身份验证过程和实际的API调用相关的数据传输过程分离,提高了身份验证的效率,另一方面由于各个被验证的可选代理部署在API调用端或提供端的设备本机上,并且由于API网关IP地址是固定的,当可选代理与API网关通信时,API网关可以得到各个可选代理的相对固定的IP,并且只有通过验证的可选代理才可以与API网关之间建立流量通道,由此可以实现广域网环境下API调用的防DDOS攻击,提高API调用的安全性。由此,区别于现有的API调用进行身份验证较为低效并且无法防范DDOS攻击等问题,本发明实施例提供的API调用方法能够提高API调用的效率和安全性。
图2示出了本发明实施例提供的API安全调用装置的结构示意图。如图2所示,该装置400包括:接收模块401、验证模块402和传输模块403。
其中,接收模块401,用于接收待验证代理发送的数据处理请求;所述数据处理请求中包括待验证身份信息和待处理数据;
验证模块402,用于根据合法代理列表对所述待验证身份信息进行验证;所述合法代理列表根据多个可选代理的单包验证结果确定;各个所述可选代理分别部署在API调用端或API提供端对应的设备上;
传输模块403,用于当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道;所述流量通道用于传输所述待处理数据。
本发明实施例提供的API调用装置所执行的操作与前述方法实施例的操作过程大致相同,不再赘述。
本发明实施例提供的API安全调用装置接收待验证代理发送的数据处理请求;其中,数据处理请求中包括待验证身份信息和待处理数据;根据合法代理列表对待验证身份信息进行验证;其中,合法代理列表根据多个可选代理的单包验证结果确定;各个可选代理分别部署在API调用端或API提供端对应的设备上;最后,当待验证身份信息验证通过时,与待验证代理之间建立流量通道;流量通道用于传输待处理数据。本发明实施例通过根据预先生成的合理代理列表进行验证,一方面将身份验证过程和实际的API调用相关的数据传输过程分离,提高了身份验证的效率,另一方面由于各个被验证的可选代理部署在API调用端或提供端的设备本机上,并且由于API网关IP地址是固定的,当可选代理与API网关通信时,API网关可以得到各个可选代理的相对固定的IP,并且只有通过验证的可选代理才可以与API网关之间建立流量通道,由此可以实现广域网环境下API调用的防DDOS攻击,提高API调用的安全性。由此,区别于现有的API调用进行身份验证较为低效并且无法防范DDOS攻击等问题,本发明实施例提供的API调用装置能够提高API调用的效率和安全性。
图3示出了本发明实施例提供的API安全调用设备的结构示意图,本发明具体实施例并不对API安全调用设备的具体实现做限定。
如图3所示,该API安全调用设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。处理器502,用于执行程序510,具体可以执行上述用于API安全调用方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机可执行指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。API安全调用设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以被处理器502调用使API安全调用设备执行以下操作:
接收待验证代理发送的数据处理请求;所述数据处理请求中包括待验证身份信息和待处理数据;
根据合法代理列表对所述待验证身份信息进行验证;所述合法代理列表根据多个可选代理的单包验证结果确定;各个所述可选代理分别部署在API调用端或API提供端对应的设备上;
当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道;所述流量通道用于传输所述待处理数据。
本发明实施例提供的API调用设备所执行的操作与前述方法实施例的操作过程大致相同,不再赘述。
本发明实施例提供的API安全调用设备通过API网关接收待验证代理发送的数据处理请求;其中,数据处理请求中包括待验证身份信息和待处理数据;根据合法代理列表对待验证身份信息进行验证;其中,合法代理列表根据多个可选代理的单包验证结果确定;各个可选代理分别部署在API调用端或API提供端对应的设备上;最后,当待验证身份信息验证通过时,与待验证代理之间建立流量通道;流量通道用于传输待处理数据。本发明实施例通过根据预先生成的合理代理列表进行验证,一方面将身份验证过程和实际的API调用相关的数据传输过程分离,提高了身份验证的效率,另一方面由于各个被验证的可选代理部署在API调用端或提供端的设备本机上,并且由于API网关IP地址是固定的,当可选代理与API网关通信时,API网关可以得到各个可选代理的相对固定的IP,并且只有通过验证的可选代理才可以与API网关之间建立流量通道,由此可以实现广域网环境下API调用的防DDOS攻击,提高API调用的安全性。由此,区别于现有的API调用进行身份验证较为低效并且无法防范DDOS攻击等问题,本发明实施例提供的API调用设备能够提高API调用的效率和安全性。
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在API安全调用设备上运行时,使得所述API安全调用设备执行上述任意方法实施例中的API安全调用方法。
可执行指令具体可以用于使得API安全调用设备执行以下操作:
接收待验证代理发送的数据处理请求;所述数据处理请求中包括待验证身份信息和待处理数据;
根据合法代理列表对所述待验证身份信息进行验证;所述合法代理列表根据多个可选代理的单包验证结果确定;各个所述可选代理分别部署在API调用端或API提供端对应的设备上;
当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道;所述流量通道用于传输所述待处理数据。
本发明实施例提供的计算机存储介质所执行的操作与前述方法实施例的操作过程大致相同,不再赘述。
本发明实施例提供的计算机存储介质通过API网关接收待验证代理发送的数据处理请求;其中,数据处理请求中包括待验证身份信息和待处理数据;根据合法代理列表对待验证身份信息进行验证;其中,合法代理列表根据多个可选代理的单包验证结果确定;各个可选代理分别部署在API调用端或API提供端对应的设备上;最后,当待验证身份信息验证通过时,与待验证代理之间建立流量通道;流量通道用于传输待处理数据。本发明实施例通过根据预先生成的合理代理列表进行验证,一方面将身份验证过程和实际的API调用相关的数据传输过程分离,提高了身份验证的效率,另一方面由于各个被验证的可选代理部署在API调用端或提供端的设备本机上,并且由于API网关IP地址是固定的,当可选代理与API网关通信时,API网关可以得到各个可选代理的相对固定的IP,并且只有通过验证的可选代理才可以与API网关之间建立流量通道,由此可以实现广域网环境下API调用的防DDOS攻击,提高API调用的安全性。由此,区别于现有的API调用进行身份验证较为低效并且无法防范DDOS攻击等问题,本发明实施例提供的计算机存储介质能够提高API调用的效率和安全性。
本发明实施例提供一种API安全调用装置,用于执行上述API安全调用方法。
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使API安全调用设备执行上述任意方法实施例中的API安全调用方法。
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的API安全调用方法。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
Claims (8)
1.一种API安全调用方法,其特征在于,所述方法基于API网关;所述方法包括:
分别接收各个可选代理发送的身份及网络信息包;各个所述可选代理分别以边车模式部署在API调用端或API提供端对应的设备上;
对所述身份及网络信息包进行解析,得到待验证身份及网络信息和待验证信息包序号;
当所述待验证身份及网络信息验证通过时,确定历史验证数据包序号;
根据所述待验证信息包序号在所述历史验证数据包序号中进行查询,得到查询结果;
当所述查询结果为未查询到时,确定所述可选代理的单包验证结果为验证通过;所述单包验证结果不返回至所述可选代理;
将所述单包验证结果为验证通过的所述可选代理添加进合法代理列表中;所述合法代理列表根据所述单包验证结果定时更新;
接收待验证代理发送的数据处理请求;所述数据处理请求中包括待验证身份信息和待处理数据;
根据所述合法代理列表对所述待验证身份信息进行验证;
当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道;所述流量通道用于传输所述待处理数据。
2.根据权利要求1所述的方法,其特征在于,所述根据合法代理列表对所述待验证身份信息进行验证,包括:
根据所述待验证身份信息在所述合法代理列表进行查询;
当查询到所述待验证身份信息时,确定所述待验证代理验证通过。
3.根据权利要求1所述的方法,其特征在于,所述API网关的数量为多个,所述多个API网关之间共享各个所述API网关的运行状态信息;所述当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道,包括:
根据所有所述运行状态信息从所述多个API网关中确定目标网关;
当接收所述数据处理请求的API网关与所述目标网关不一致时,将所述待处理数据转发至所述目标网关,以使得所述待验证代理与所述目标网关之间建立所述流量通道。
4.根据权利要求3所述的方法,其特征在于,所述多个API网关之间共享各个所述API网关对应的可调用API信息;当所述待验证代理部署在API调用端对应的设备上时,所述待处理数据中包括待调用API信息;在将所述待处理数据转发至所述目标网关,以使得所述待验证代理与所述目标网关之间建立所述流量通道之前,包括:
将所述待调用API信息与所述可调用API信息进行匹配,得到匹配结果;
将所述匹配结果为匹配的可调用API信息对应的API网关确定为所述目标网关。
5.根据权利要求1所述的方法,其特征在于,在所述对所有所述身份及网络信息包进行验证,得到所述单包验证结果之后,包括:
将所述单包验证结果为未通过的所述可选代理添加进非法代理列表;其中,所述非法代理列表以第一预设时长为周期进行更新,所述合法代理列表以第二预设时长为周期进行更新,所述第一预设时长小于所述第二预设时长。
6.一种API安全调用装置,其特征在于,所述装置包括:
验证模块,用于分别接收各个可选代理发送的身份及网络信息包;各个所述可选代理分别以边车模式部署在API调用端或API提供端对应的设备上;
所述验证模块,还用于对所述身份及网络信息包进行解析,得到待验证身份及网络信息和待验证信息包序号;
所述验证模块,还用于当所述待验证身份及网络信息验证通过时,确定历史验证数据包序号;
所述验证模块,还用于根据所述待验证信息包序号在所述历史验证数据包序号中进行查询,得到查询结果;
所述验证模块,还用于当所述查询结果为未查询到时,确定所述可选代理的单包验证结果为验证通过;所述单包验证结果不返回至所述可选代理;
所述验证模块,还用于将所述单包验证结果为验证通过的所述可选代理添加进合法代理列表中;所述合法代理列表根据所述单包验证结果定时更新;
接收模块,用于接收待验证代理发送的数据处理请求;所述数据处理请求中包括待验证身份信息和待处理数据;
所述验证模块,还用于根据合法代理列表对所述待验证身份信息进行验证;
传输模块,用于当所述待验证身份信息验证通过时,与所述待验证代理之间建立流量通道;所述流量通道用于传输所述待处理数据。
7.一种API安全调用设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-5任意一项所述的API安全调用方法的操作。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令在API安全调用设备上运行时,使得API安全调用设备执行如权利要求1-5任意一项所述的API安全调用方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210075257.8A CN114117401B (zh) | 2022-01-22 | 2022-01-22 | Api安全调用方法、装置、设备以及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210075257.8A CN114117401B (zh) | 2022-01-22 | 2022-01-22 | Api安全调用方法、装置、设备以及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114117401A CN114117401A (zh) | 2022-03-01 |
CN114117401B true CN114117401B (zh) | 2022-05-27 |
Family
ID=80361121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210075257.8A Active CN114117401B (zh) | 2022-01-22 | 2022-01-22 | Api安全调用方法、装置、设备以及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114117401B (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423309B2 (en) * | 2007-06-12 | 2019-09-24 | Icontrol Networks, Inc. | Device integration framework |
US9094388B2 (en) * | 2013-05-01 | 2015-07-28 | Dmitri Tkachev | Methods and systems for identifying, verifying, and authenticating an identity |
US10834054B2 (en) * | 2015-05-27 | 2020-11-10 | Ping Identity Corporation | Systems and methods for API routing and security |
CN106302346A (zh) * | 2015-05-27 | 2017-01-04 | 阿里巴巴集团控股有限公司 | Api调用的安全认证方法、装置、系统 |
US11297153B2 (en) * | 2016-03-22 | 2022-04-05 | At&T Mobility Ii Llc | Evolved packet core applications microservices broker |
CN108540513B (zh) * | 2017-03-03 | 2021-08-13 | 中国移动通信集团福建有限公司 | 请求重放攻击的判定方法和装置 |
US11057393B2 (en) * | 2018-03-02 | 2021-07-06 | Cloudentity, Inc. | Microservice architecture for identity and access management |
US10764244B1 (en) * | 2019-06-12 | 2020-09-01 | Cisco Technology, Inc. | Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy |
CN111245925B (zh) * | 2020-01-09 | 2021-08-24 | 北京理工大学 | 一种用于现代分布式微服务架构的通信方法与系统 |
CN112333201A (zh) * | 2020-11-20 | 2021-02-05 | 广州欢网科技有限责任公司 | 上层应用通过网关请求微服务鉴权优化系统 |
-
2022
- 2022-01-22 CN CN202210075257.8A patent/CN114117401B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114117401A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11750662B2 (en) | Multi-access edge computing services security in mobile networks by parsing application programming interfaces | |
US7441265B2 (en) | Method and system for session based authorization and access control for networked application objects | |
US8239520B2 (en) | Network service operational status monitoring | |
US7107609B2 (en) | Stateful packet forwarding in a firewall cluster | |
US8613056B2 (en) | Extensible authentication and authorization of identities in an application message on a network device | |
US7376134B2 (en) | Privileged network routing | |
RU2344473C2 (ru) | Сетевая система, прокси-сервер, способ управления сеансом | |
JP2003500711A (ja) | 機密保護されたセッションシーケンスを行うプロキシシステム及びその方法 | |
US6970934B2 (en) | System and method for connecting to a device on a protected network | |
CN113824685B (zh) | 一种基于Android VpnService实现的移动端定向流量代理系统与方法 | |
US7694015B2 (en) | Connection control system, connection control equipment and connection management equipment | |
US20130219474A1 (en) | Method and system for providing service access to a user | |
US11528326B2 (en) | Method of activating processes applied to a data session | |
CN113872933B (zh) | 隐藏源站的方法、系统、装置、设备及存储介质 | |
Almaini et al. | Delegation of authentication to the data plane in software-defined networks | |
CN114117401B (zh) | Api安全调用方法、装置、设备以及计算机存储介质 | |
CN115297098A (zh) | 边缘服务获取方法和装置、边缘计算系统、介质、设备 | |
US20240147272A1 (en) | Technique for Collecting Analytics Data | |
CN115706977A (zh) | 一种数据传输方法及相关设备 | |
CN112217779A (zh) | 用于分析面向服务的通信的方法和设备 | |
CN113810330A (zh) | 发送验证信息的方法、装置及存储介质 | |
US20220311747A1 (en) | Method and system for securing connections to iot devices | |
US11943620B2 (en) | Context-based security over interfaces in O-RAN environments in mobile networks | |
US20240187860A1 (en) | Methods and means for providing access to external networks | |
US20230023721A1 (en) | Method for processing domain name resolution requests |
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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 518000 4001, Block D, Building 1, Chuangzhi Yuncheng Lot 1, Liuxian Avenue, Xili Community, Xili Street, Nanshan District, Shenzhen, Guangdong Patentee after: Shenzhen Zhuyun Technology Co.,Ltd. Address before: 518000 East, 3rd floor, incubation building, China Academy of science and technology, 009 Gaoxin South 1st Road, Nanshan District, Shenzhen City, Guangdong Province Patentee before: Shenzhen Zhuyun Technology Co.,Ltd. |