CN110309645A - 一种对api进行安全防护的方法、设备和系统 - Google Patents

一种对api进行安全防护的方法、设备和系统 Download PDF

Info

Publication number
CN110309645A
CN110309645A CN201910304659.9A CN201910304659A CN110309645A CN 110309645 A CN110309645 A CN 110309645A CN 201910304659 A CN201910304659 A CN 201910304659A CN 110309645 A CN110309645 A CN 110309645A
Authority
CN
China
Prior art keywords
token
request
object invocation
api
api calls
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.)
Pending
Application number
CN201910304659.9A
Other languages
English (en)
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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201910304659.9A priority Critical patent/CN110309645A/zh
Publication of CN110309645A publication Critical patent/CN110309645A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种对API进行安全防护的方法、设备和系统,所述方法涉及云安全技术领域,所述方法包括:当生成目标API的调用请求时,目标用户终端调用动态令牌生成库加密生成调用请求唯一对应的API调用令牌;目标用户终端在调用请求中添加API调用令牌,并向安全服务集群发送调用请求;当接收到目标调用请求时,安全服务集群检测目标调用请求中是否携带有基于动态令牌生成库加密生成的,目标调用请求唯一对应的API调用令牌;如果是,安全服务集群则向目标调用请求指向的业务服务器发送目标调用请求,否则丢弃目标调用请求。采用本发明,可以有效识别并阻断针对API的恶意攻击,满足了企业对API的安全防护需求,同时也降低了对正常用户造成误杀的概率。

Description

一种对API进行安全防护的方法、设备和系统
技术领域
本发明涉及云安全技术领域,特别涉及一种对API进行安全防护的方法、设备和系统。
背景技术
随着计算机技术的不断发展,业务应用的功能越来越丰富多样,而业务应用的内部架构相应的也越来越复杂。为了降低业务应用的开发难度,业务应用在实现功能的过程中往往会涉及到大量API的调用。故而,企业在调用他人API的同时,也可以将已开发的业务功能以API的形式提供给需求方。
在对外提供API调用服务时,为了避免API被恶意攻击而影响到企业的网络业务,企业往往会针对API进行安全防护处理。具体的,企业可以对API的调用频率进行一定的限制,即限制用户在单位时间内对API的调用次数,当某用户对API的调用频率超过限制时,企业将直接拒绝该用户的调用请求并将用户加入黑名单中,从而可以降低API被恶意攻击的风险。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
一方面,一些针对API恶意攻击的攻击形式无需依托于高频调用,故而通过限制API的调用频率往往不能有效防护所有的恶意攻击;另一方面,如果API的调用频率的限制阈值设置不合理,则可能会带来严重的误报或漏报,尤其在多用户共享同一个出口IP的场景下,对正常用户造成误杀的概率将大幅增加。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种对API进行安全防护的方法、设备和系统。所述技术方案如下:
第一方面,提供了一种对API进行安全防护的方法,应用于用户终端,所述方法包括:
当生成目标API的调用请求时,调用预设的动态令牌生成库加密生成所述调用请求唯一对应的API调用令牌;
在所述调用请求中添加所述API调用令牌,并向安全服务集群发送添加处理后的所述调用请求,以供所述安全服务集群根据所述API调用令牌判断所述调用请求是否为正常请求。
可选的,所述调用预设的动态令牌生成库加密生成所述调用请求唯一对应的API调用令牌,包括:
生成随机数,并将所述随机数、当前时刻信息和所述目标用户终端对应的特定字符串输入预设的动态令牌生成库;
调用所述动态令牌生成库,对所述随机数、所述当前时刻信息和所述特定字符串进行组合,生成组合字符串;
调用所述动态令牌生成库基于预设加密算法,对所述组合字符串进行加密,生成所述调用请求唯一对应的API调用令牌。
可选的,所述方法还包括:
如果连续多次未接收到API的调用请求的响应消息,则通过所述安全服务集群更新所述动态令牌生成库和所述特定字符串,并向所述安全服务集群发送调用异常通知。
第二方面,提供了一种对API进行安全防护的方法,应用于安全服务集群,所述方法包括:
当接收到目标调用请求时,检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌;
如果是,则向所述目标调用请求指向的业务服务器发送所述目标调用请求,否则丢弃所述目标调用请求。
可选的,所述检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌,包括:
解析所述目标调用请求,判断所述目标调用请求中是否携带有API调用令牌;
如果携带有API调用令牌,则检测所述API调用令牌是否是基于动态令牌生成库加密生成的,且与所述目标调用请求唯一对应。
可选的,所述检测所述API调用令牌是否是基于动态令牌生成库加密生成的,且与所述目标调用请求唯一对应,包括:
提取所述API调用令牌,并基于预设解密算法对所述API调用令牌进行解密;
如果解密成功,则判断本次解密结果是否与历史调用请求对应的解密结果均不相同;
如果均不相同,则确定所述API调用令牌与所述目标调用请求唯一对应。
可选的,所述丢弃所述目标调用请求之后,还包括:
更新所述目标调用请求的源IP地址对应的调用错误次数;
当所述源IP地址对应的调用错误次数大于预设次数时,则将所述源IP地址标记为异常IP地址。
可选的,所述检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌,包括:
判断所述目标调用请求的源IP地址是否为异常IP地址;
如果不是,则检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌,否则丢弃所述目标调用请求。
第三方面,提供了一种对API进行安全防护的用户终端,所述用户终端包括:
生成模块,用于当生成目标API的调用请求时,调用预设的动态令牌生成库加密生成所述调用请求唯一对应的API调用令牌;
发送模块,用于在所述调用请求中添加所述API调用令牌,并向安全服务集群发送添加处理后的所述调用请求,以供所述安全服务集群根据所述API调用令牌判断所述调用请求是否为正常请求。
可选的,所述生成模块,具体用于:
生成随机数,并将所述随机数、当前时刻信息和所述目标用户终端对应的特定字符串输入预设的动态令牌生成库;
调用所述动态令牌生成库,对所述随机数、所述当前时刻信息和所述特定字符串进行组合,生成组合字符串;
调用所述动态令牌生成库基于预设加密算法,对所述组合字符串进行加密,生成所述调用请求唯一对应的API调用令牌。
可选的,所述装置还包括:
更新模块,用于如果连续多次未接收到API的调用请求的响应消息,则通过所述安全服务集群更新所述动态令牌生成库和所述特定字符串,并向所述安全服务集群发送调用异常通知。
第四方面,提供了一种对API进行安全防护的安全服务集群,所述安全服务集群包括:
请求验证层,用于当接收到目标调用请求时,检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌;
请求处理层,用于如果是,则向所述目标调用请求指向的业务服务器发送所述目标调用请求,否则丢弃所述目标调用请求。
可选的,所述请求验证层,具体用于:
解析所述目标调用请求,判断所述目标调用请求中是否携带有API调用令牌;
如果携带有API调用令牌,则检测所述API调用令牌是否是基于动态令牌生成库加密生成的,且与所述目标调用请求唯一对应。
可选的,所述请求验证层,具体用于:
提取所述API调用令牌,并基于预设解密算法对所述API调用令牌进行解密;
如果解密成功,则判断本次解密结果是否与历史调用请求对应的解密结果均不相同;
如果均不相同,则确定所述API调用令牌与所述目标调用请求唯一对应。
可选的,所述安全服务集群还包括IP标记层,用于:
更新所述目标调用请求的源IP地址对应的调用错误次数;
当所述源IP地址对应的调用错误次数大于预设次数时,则将所述源IP地址标记为异常IP地址。
可选的,所述请求验证层,具体用于:
判断所述目标调用请求的源IP地址是否为异常IP地址;
如果不是,则检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌,否则丢弃所述目标调用请求。
第五方面,提供了一种对API进行安全防护的系统,所述系统包括用户终端、安全服务集群和提供API调用服务的业务服务器,其中所述用户终端用于执行如第一方面所述的方法,所述安全服务集群用于执行如第二方面所述的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,当生成目标API的调用请求时,目标用户终端调用预设的动态令牌生成库加密生成调用请求唯一对应的API调用令牌;目标用户终端在调用请求中添加API调用令牌,并向安全服务集群发送添加处理后的调用请求,以供安全服务集群根据API调用令牌判断调用请求是否为正常请求;当接收到目标调用请求时,安全服务集群检测目标调用请求中是否携带有基于动态令牌生成库加密生成的,目标调用请求唯一对应的API调用令牌;如果是,安全服务集群则向目标调用请求指向的业务服务器发送目标调用请求,否则丢弃目标调用请求。这样,在用户终端和业务服务器间加入安全服务集群,安全服务集群通过验证调用请求中添加的唯一的API调用令牌,来判断调用请求是否为正常请求,而API调用令牌是用户终端基于动态令牌生成库加密生成的,由每个调用请求唯一对应,从而可以有效识别并阻断针对API的恶意攻击,保证了企业的API及相关业务的可用性,满足了企业对API的安全防护需求,同时也大大降低了对正常用户造成误杀的概率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种API调用系统的系统框架示意图;
图2是本发明实施例提供的一种对API进行安全防护的方法流程图;
图3是本发明实施例提供的一种用户终端的结构示意图;
图4是本发明实施例提供的一种用户终端的结构示意图;
图5是本发明实施例提供的一种安全防护集群的结构示意图;
图6是本发明实施例提供的一种安全防护集群的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种对API进行安全防护的方法,该方法可以应用于API调用系统,如图1所示,API调用系统可以包括用户终端、安全服务集群和提供API调用服务的业务服务器,其中,业务服务器可以是企业侧部署有业务功能的API的后端服务器,业务服务器可以对外提供API调用服务,即接收的API的调用请求,并基于API的内部业务功能对调用请求进行响应,一台业务服务器上可以部署有一个或多个API。安全服务集群可以是基于CDN系统等云平台搭建的,用于对API的调用请求进行验证的云端集群,其可以由一台或多台安全服务器构成,企业可以将业务云化,使得用户发起的API的调用请求可以优先到达安全服务集群,安全服务集群在验证调用请求后,将调用请求转发至企业的业务服务器。用户终端可以是存在API调用需求的用户所使用的终端设备,用户可以通过用户终端发起对企业的API的调用。可以理解,API调用系统中可以存在多家企业的业务服务器和大量用户终端,即安全服务集群可以同时支持不同用户终端发起的针对不同API的调用请求的安全防护处理。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,当生成目标API的调用请求时,目标用户终端调用预设的动态令牌生成库加密生成调用请求唯一对应的API调用令牌。
其中,目标API可以是任意开通了API安全防护处理的API,目标用户终端可以是具备目标API的调用资格的合法用户调用目标API时所使用的终端。
在实施中,企业在安全服务集群中开通了对API的安全防护后,企业的API的合法用户可以预先在用户终端上安装安全服务集群提供的,用于辅助实现API安全防护的动态令牌生成库,该动态令牌生成库具体可以是用于生成API调用令牌的SDK。之后,当用户需要调用目标API时,可以在目标用户终端上进行相关调用操作,从而可以触发目标用户终端生成目标API的调用请求。此时,目标用户终端可以调用上述预设的动态令牌生成库,然后通过该动态令牌生成库加密生成该调用请求唯一对应的API调用令牌。值得一提的是,调用请求唯一对应的API调用令牌,可以理解为该API调用令牌仅对应本次生成的调用请求,即使用户本次取消发送该调用请求,且在短时间内再次生成目标API的新调用请求,也需要重新生成新调用请求唯一对应的API调用令牌,而上述两个API调用令牌也必然不同。
可选的,可以基于时间信息、随机数等动态变量来保证生成令牌的唯一性,相应的,步骤201的处理可以如下:目标用户终端生成随机数,并将随机数、当前时刻信息和目标用户终端对应的特定字符串输入预设的动态令牌生成库;目标用户终端调用动态令牌生成库,对随机数、当前时刻信息和特定字符串进行组合,生成组合字符串;目标用户终端调用动态令牌生成库基于预设加密算法,对组合字符串进行加密,生成调用请求唯一对应的API调用令牌。
在实施中,目标用户终端在针对目标API的调用请求生成API调用令牌时,可以先生成随机数,然后将该随机数、当前时刻信息和目标用户终端对应的特定字符串输入上述预设的动态令牌生成库。具体的,随机数可以是n位随机数(n为任意正数)、当前时刻信息可以采用UNIX时间戳、特定字符串可以是安全服务集群预先为不同用户终端分配的唯一m位字符串(m为任意正数)。之后,目标用户终端可以调用动态令牌生成库,对上述随机数、当前时刻信息和特定字符串进行组合,形成组合字符串。接下来,目标用户终端可以调用动态令牌生成库基于预设加密算法,对上述组合字符串进行加密处理,从而生成该调用请求唯一对应的API调用令牌。此处的预设加密算法具有一定复杂性以确保生成的API调用令牌的安全性、不可破解性及不可复用性,可以采用AES加密算法,本实施例不对此进行限定。
可选的,基于上述生成API调用令牌的处理,若正常用户发起的API的调用请求持续未能得到有效响应,则可能是动态令牌生成库过期,或者特定字符串错误,故而用户终端可以支持如下处理:目标用户终端如果连续多次未接收到API的调用请求的响应消息,则通过安全服务集群更新动态令牌生成库和特定字符串,并向安全服务集群发送调用异常通知。
在实施中,以目标用户终端为例,目标用户终端如果连续多次在发送API的调用请求后,均未接收到调用请求的响应消息,则可以认为是API调用令牌的生成过程出错,进而,目标用户终端可以通过安全服务集群对本地预设的动态令牌生成库和目标用户终端对应的特定字符串进行更新,同时还可以向安全服务集群发送调用异常通知。值得一提的是,目标用户终端多次发送的API的调用请求可以是不同针对API的调用请求,若多次发送的调用请求均是针对同一API,则也可能是API对应的业务服务器出现了故障,此时目标用户终端可以发起其它API的调用请求,若仍未接收到响应消息,目标用户终端再执行动态令牌生成库和特定字符串的更新处理。
步骤202,目标用户终端在调用请求中添加API调用令牌,并向安全服务集群发送添加处理后的调用请求,以供安全服务集群根据API调用令牌判断调用请求是否为正常请求。
在实施中,目标用户终端在生成了调用请求唯一对应的API调用令牌之后,可以在该调用请求中添加API调用令牌,具体可以将API调用令牌以HTTP请求头(Key-Value)的方式添加在调用请求中,然后可以向安全服务集群发送添加有API调用令牌的调用请求,以供安全服务集群根据API调用令牌判断调用请求是否为正常请求。可以理解,目标API的调用请求本应发往目标API所在的业务服务器,而由于企业业务云化,在经DNS服务器解析后,可以将目标API的调用请求引导至安全服务集群,这样,目标用户终端将会直接将调用请求发往安全服务集群。
步骤203,当接收到目标调用请求时,安全服务集群检测目标调用请求中是否携带有基于动态令牌生成库加密生成的,目标调用请求唯一对应的API调用令牌。
其中,目标调用请求为针对任意API的调用请求,可以是类似步骤102中由合法用户的用户终端发出的调用请求,也可能是恶意攻击者发出的调用请求。
在实施中,安全服务集群在对API提供安全防护的过程中,如果接收到了目标调用请求,安全服务集群则可以通过检测目标调用请求中是否携带有基于动态令牌生成库加密生成的,目标调用请求唯一对应的API调用令牌,来判断目标调用请求是否为正常请求。
可选的,如果调用请求未携带API调用令牌,则可以直接判断该调用请求为非正常请求,相应的,步骤203的处理具体可以如下:安全服务集群解析目标调用请求,判断目标调用请求中是否携带有API调用令牌;如果携带有API调用令牌,则检测API调用令牌是否是基于动态令牌生成库加密生成的,且与目标调用请求唯一对应。
在实施中,安全服务集群在接收到了目标调用请求之后,可以先对目标调用请求进行解析,再判断目标调用请求中是否携带有API调用令牌。具体的,安全服务集群可以对目标调用请求的请求头进行解析,判断其中是否存放有API调用令牌。如果携带有API调用令牌,安全服务集群则可以提取并解密该API调用令牌,然后可以进一步检测API调用令牌是否是基于动态令牌生成库加密生成的,且与目标调用请求唯一对应。而如果未携带有API调用令牌,安全服务集群则可以将目标调用请求确定为非正常请求。
可选的,安全服务集群可以通过判断API调用令牌的唯一性来筛除非正常请求,相应的处理具体可以如下:安全服务集群提取API调用令牌,并基于预设解密算法对API调用令牌进行解密;如果解密成功,则判断本次解密结果是否与历史调用请求对应的解密结果均不相同;如果均不相同,则确定API调用令牌与目标调用请求唯一对应。
在实施中,当目标调用请求携带有API调用令牌时,安全服务集群可以提取该API调用令牌,然后基于预设解密算法对API调用令牌进行解密。可以理解,预设解密算法可以是动态令牌生成库的生成API调用令牌时所用的预设加密算法对应的逆向解密算法。如果能对API调用令牌成功解密,则可以进一步将本次解密结果与历史调用请求对应的解密结果进行匹配。如果本次解密结果与历史调用请求对应的解密结果均不相同,安全服务集群则确定API调用令牌与目标调用请求唯一对应,即可以认为目标调用请求为正常请求。而如果API调用令牌解密失败,或者历史调用请求对应的解密结果中存在与本次解密结果相同的解密结果,则可以确定目标调用请求为非正常请求。这样,即使恶意攻击者通过抓包获取到正常请求中的API调用令牌,对该API调用令牌进行拷贝复用,其发送的调用请求也将会被安全服务集群识别为非正常请求。
步骤204,如果是,安全服务集群则向目标调用请求指向的业务服务器发送目标调用请求,否则丢弃目标调用请求。
在实施中,安全服务集群如果判定目标调用请求为正常请求,则可以确定目标调用请求指向的业务服务器,然后向该业务服务器发送目标调用请求,从而使得业务服务器可以基于API的内部业务功能对目标调用请求进行响应,具体的响应处理属于现有技术,本实施例中不进行赘述。而安全服务集群如果判定目标调用请求为非正常请求,则可以直接丢弃目标调用请求,当然,安全服务集群还可以进一步向目标调用请求的源端发送调用失败通知。
可选的,安全服务集群在丢弃了某一调用请求后,可以以IP地址的形式对异常请求的发起者进行标记,相应的,步骤204后可以存在如下处理:安全服务集群更新目标调用请求的源IP地址对应的调用错误次数;当源IP地址对应的调用错误次数大于预设次数时,安全服务集群则将源IP地址标记为异常IP地址。
在实施中,安全服务集群在确定了目标调用请求为非正常请求,并丢弃目标调用请求后,可以更新目标调用请求的源IP地址对应的调用错误次数,即将调用错误次数加一。当更新后的源IP地址对应的调用错误次数大于预设次数时,安全服务集群则可以将源IP地址标记为异常IP地址。当然,除源IP地址之外,还可以以其它的形式对非正常请求进行统计,如调用请求对应的用户账号、调用请求对应的终端标识等。
可选的,基于上述标记异常IP地址的处理,安全服务集群在判断调用请求是否为正常请求前,可以先进行IP地址的判断,相应的,上述步骤203的处理可以如下:安全服务集群判断目标调用请求的源IP地址是否为异常IP地址;如果不是,则检测目标调用请求中是否携带有基于动态令牌生成库加密生成的,目标调用请求唯一对应的API调用令牌,否则丢弃目标调用请求。
在实施中,安全服务集群在接收到目标调用请求之后,可以先获取目标调用请求的源IP地址,然后判断该源IP地址是否为已经标记的异常IP地址。如果不是异常IP地址,安全服务集群则可以检测目标调用请求中是否携带有基于动态令牌生成库加密生成的,目标调用请求唯一对应的API调用令牌,而如果是异常IP地址,安全服务集群则无需对再进行判断,可以直接丢弃该目标调用请求。当然,为了避免正常用户由于用户终端短时故障而被永久屏蔽的情况,对于异常IP地址可以设置一定的标记时长,在某源IP地址被标记为异常IP地址之后,经过相应的标记时长后,可以取消标记。可以理解,如果取消标记之后,该源IP地址再次发出了非正常请求,调用错误次数将必然会大于预设次数,这样则会再次被标记为异常IP地址,因此不会降低API的安全性。
本发明实施例中,当生成目标API的调用请求时,目标用户终端调用预设的动态令牌生成库加密生成调用请求唯一对应的API调用令牌;目标用户终端在调用请求中添加API调用令牌,并向安全服务集群发送添加处理后的调用请求,以供安全服务集群根据API调用令牌判断调用请求是否为正常请求;当接收到目标调用请求时,安全服务集群检测目标调用请求中是否携带有基于动态令牌生成库加密生成的,目标调用请求唯一对应的API调用令牌;如果是,安全服务集群则向目标调用请求指向的业务服务器发送目标调用请求,否则丢弃目标调用请求。这样,在用户终端和业务服务器间加入安全服务集群,安全服务集群通过验证调用请求中添加的唯一的API调用令牌,来判断调用请求是否为正常请求,而API调用令牌是用户终端基于动态令牌生成库加密生成的,由每个调用请求唯一对应,从而可以有效识别并阻断针对API的恶意攻击,保证了企业的API及相关业务的可用性,满足了企业对API的安全防护需求,同时也大大降低了对正常用户造成误杀的概率。
基于相同的技术构思,本发明实施例还提供了一种对API进行安全防护的用户终端,如图3所示,所述用户终端包括:
生成模块301,用于当生成目标API的调用请求时,调用预设的动态令牌生成库加密生成所述调用请求唯一对应的API调用令牌;
发送模块302,用于在所述调用请求中添加所述API调用令牌,并向安全服务集群发送添加处理后的所述调用请求,以供所述安全服务集群根据所述API调用令牌判断所述调用请求是否为正常请求。
可选的,所述生成模块301,具体用于:
生成随机数,并将所述随机数、当前时刻信息和所述目标用户终端对应的特定字符串输入预设的动态令牌生成库;
调用所述动态令牌生成库,对所述随机数、所述当前时刻信息和所述特定字符串进行组合,生成组合字符串;
调用所述动态令牌生成库基于预设加密算法,对所述组合字符串进行加密,生成所述调用请求唯一对应的API调用令牌。
可选的,如图4所示,所述装置还包括:
更新模块303,用于如果连续多次未接收到API的调用请求的响应消息,则通过所述安全服务集群更新所述动态令牌生成库和所述特定字符串,并向所述安全服务集群发送调用异常通知。
基于相同的技术构思,本发明实施例还提供了一种对API进行安全防护的安全服务集群,如图5所示,所述安全服务集群包括:
请求验证层501,用于当接收到目标调用请求时,检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌;
请求处理层502,用于如果是,则向所述目标调用请求指向的业务服务器发送所述目标调用请求,否则丢弃所述目标调用请求。
可选的,所述请求验证层501,具体用于:
解析所述目标调用请求,判断所述目标调用请求中是否携带有API调用令牌;
如果携带有API调用令牌,则检测所述API调用令牌是否是基于动态令牌生成库加密生成的,且与所述目标调用请求唯一对应。
可选的,所述请求验证层501,具体用于:
提取所述API调用令牌,并基于预设解密算法对所述API调用令牌进行解密;
如果解密成功,则判断本次解密结果是否与历史调用请求对应的解密结果均不相同;
如果均不相同,则确定所述API调用令牌与所述目标调用请求唯一对应。
可选的,如图6所示,所述安全服务集群还包括IP标记层503,用于:
更新所述目标调用请求的源IP地址对应的调用错误次数;
当所述源IP地址对应的调用错误次数大于预设次数时,则将所述源IP地址标记为异常IP地址。
可选的,所述请求验证层501,具体用于:
判断所述目标调用请求的源IP地址是否为异常IP地址;
如果不是,则检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌,否则丢弃所述目标调用请求。
基于相同的技术构思,本发明实施例还提供了一种对API进行安全防护的系统,所述系统包括用户终端、安全服务集群和提供API调用服务的业务服务器,其中所述用户终端的功能可以参考上述步骤201至步骤202,所述安全服务集群的功能可以参考上述步骤203至步骤204。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种对API进行安全防护的方法,应用于用户终端,其特征在于,所述方法包括:
当生成目标API的调用请求时,调用预设的动态令牌生成库加密生成所述调用请求唯一对应的API调用令牌;
在所述调用请求中添加所述API调用令牌,并向安全服务集群发送添加处理后的所述调用请求,以供所述安全服务集群根据所述API调用令牌判断所述调用请求是否为正常请求。
2.根据权利要求1所述的方法,其特征在于,所述调用预设的动态令牌生成库加密生成所述调用请求唯一对应的API调用令牌,包括:
生成随机数,并将所述随机数、当前时刻信息和所述目标用户终端对应的特定字符串输入预设的动态令牌生成库;
调用所述动态令牌生成库,对所述随机数、所述当前时刻信息和所述特定字符串进行组合,生成组合字符串;
调用所述动态令牌生成库基于预设加密算法,对所述组合字符串进行加密,生成所述调用请求唯一对应的API调用令牌。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果连续多次未接收到API的调用请求的响应消息,则通过所述安全服务集群更新所述动态令牌生成库和所述特定字符串,并向所述安全服务集群发送调用异常通知。
4.一种对API进行安全防护的方法,应用于安全服务集群,其特征在于,所述方法包括:
当接收到目标调用请求时,检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌;
如果是,则向所述目标调用请求指向的业务服务器发送所述目标调用请求,否则丢弃所述目标调用请求。
5.根据权利要求4所述的方法,其特征在于,所述检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌,包括:
解析所述目标调用请求,判断所述目标调用请求中是否携带有API调用令牌;
如果携带有API调用令牌,则检测所述API调用令牌是否是基于动态令牌生成库加密生成的,且与所述目标调用请求唯一对应。
6.根据权利要求5所述的方法,其特征在于,所述检测所述API调用令牌是否是基于动态令牌生成库加密生成的,且与所述目标调用请求唯一对应,包括:
提取所述API调用令牌,并基于预设解密算法对所述API调用令牌进行解密;
如果解密成功,则判断本次解密结果是否与历史调用请求对应的解密结果均不相同;
如果均不相同,则确定所述API调用令牌与所述目标调用请求唯一对应。
7.根据权利要求4所述的方法,其特征在于,所述丢弃所述目标调用请求之后,还包括:
更新所述目标调用请求的源IP地址对应的调用错误次数;
当所述源IP地址对应的调用错误次数大于预设次数时,则将所述源IP地址标记为异常IP地址。
8.根据权利要求7所述的方法,其特征在于,所述检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌,包括:
判断所述目标调用请求的源IP地址是否为异常IP地址;
如果不是,则检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌,否则丢弃所述目标调用请求。
9.一种对API进行安全防护的用户终端,其特征在于,所述用户终端包括:
生成模块,用于当生成目标API的调用请求时,调用预设的动态令牌生成库加密生成所述调用请求唯一对应的API调用令牌;
发送模块,用于在所述调用请求中添加所述API调用令牌,并向安全服务集群发送添加处理后的所述调用请求,以供所述安全服务集群根据所述API调用令牌判断所述调用请求是否为正常请求。
10.一种对API进行安全防护的安全服务集群,其特征在于,所述安全服务集群包括:
请求验证层,用于当接收到目标调用请求时,检测所述目标调用请求中是否携带有基于动态令牌生成库加密生成的,所述目标调用请求唯一对应的API调用令牌;
请求处理层,用于如果是,则向所述目标调用请求指向的业务服务器发送所述目标调用请求,否则丢弃所述目标调用请求。
11.一种对API进行安全防护的系统,其特征在于,所述系统包括用户终端、安全服务集群和提供API调用服务的业务服务器,其中所述用户终端用于执行如权利要求1至3任一项所述的方法,所述安全服务集群用于执行如权利要求4-8任一项所述的方法。
CN201910304659.9A 2019-04-16 2019-04-16 一种对api进行安全防护的方法、设备和系统 Pending CN110309645A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910304659.9A CN110309645A (zh) 2019-04-16 2019-04-16 一种对api进行安全防护的方法、设备和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910304659.9A CN110309645A (zh) 2019-04-16 2019-04-16 一种对api进行安全防护的方法、设备和系统

Publications (1)

Publication Number Publication Date
CN110309645A true CN110309645A (zh) 2019-10-08

Family

ID=68074544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910304659.9A Pending CN110309645A (zh) 2019-04-16 2019-04-16 一种对api进行安全防护的方法、设备和系统

Country Status (1)

Country Link
CN (1) CN110309645A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538977A (zh) * 2020-06-23 2020-08-14 腾讯科技(深圳)有限公司 云api密钥的管理、云平台的访问方法、装置及服务器
CN113434889A (zh) * 2021-07-07 2021-09-24 数字广东网络建设有限公司 业务数据的访问方法、装置、设备和存储介质
WO2024032226A1 (zh) * 2022-08-12 2024-02-15 华为技术有限公司 通信方法和通信装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051628A (zh) * 2012-12-21 2013-04-17 微梦创科网络科技(中国)有限公司 基于服务器获取认证令牌的方法及系统
CN105577691A (zh) * 2016-02-03 2016-05-11 飞天诚信科技股份有限公司 一种安全访问方法和服务器
CN105634743A (zh) * 2015-12-30 2016-06-01 中国银联股份有限公司 用于开放接口调用的认证方法
CN105897782A (zh) * 2016-06-30 2016-08-24 北京奇艺世纪科技有限公司 一种针对接口的调用请求的处理方法及装置
CN106897586A (zh) * 2016-08-04 2017-06-27 阿里巴巴集团控股有限公司 一种应用程序编程接口api权限管理方法与装置
US20180167374A1 (en) * 2016-12-14 2018-06-14 Pivotal Software, Inc. Distributed validation of credentials

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051628A (zh) * 2012-12-21 2013-04-17 微梦创科网络科技(中国)有限公司 基于服务器获取认证令牌的方法及系统
CN105634743A (zh) * 2015-12-30 2016-06-01 中国银联股份有限公司 用于开放接口调用的认证方法
CN105577691A (zh) * 2016-02-03 2016-05-11 飞天诚信科技股份有限公司 一种安全访问方法和服务器
CN105897782A (zh) * 2016-06-30 2016-08-24 北京奇艺世纪科技有限公司 一种针对接口的调用请求的处理方法及装置
CN106897586A (zh) * 2016-08-04 2017-06-27 阿里巴巴集团控股有限公司 一种应用程序编程接口api权限管理方法与装置
US20180167374A1 (en) * 2016-12-14 2018-06-14 Pivotal Software, Inc. Distributed validation of credentials

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周述虹: "《电学领域热点专利技术分析》", 31 July 2017 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538977A (zh) * 2020-06-23 2020-08-14 腾讯科技(深圳)有限公司 云api密钥的管理、云平台的访问方法、装置及服务器
CN113434889A (zh) * 2021-07-07 2021-09-24 数字广东网络建设有限公司 业务数据的访问方法、装置、设备和存储介质
WO2024032226A1 (zh) * 2022-08-12 2024-02-15 华为技术有限公司 通信方法和通信装置

Similar Documents

Publication Publication Date Title
CN104519018B (zh) 一种防止针对服务器的恶意请求的方法、装置和系统
US20170012978A1 (en) Secure communication method and apparatus
JP2610107B2 (ja) ネットワークを管理する方法および装置
CN110309645A (zh) 一种对api进行安全防护的方法、设备和系统
CN101771564B (zh) 会话上下文的处理方法、装置和系统
CN112711759A (zh) 一种防重放攻击漏洞安全防护的方法及系统
CN108270722B (zh) 一种攻击行为检测方法和装置
CN101873298A (zh) 注册方法及终端、服务器、系统
CN102882676A (zh) 物联网设备端安全接入方法及系统
CN108400953A (zh) 控制终端上网及终端上网的方法,路由器设备及终端
CN112073381B (zh) 一种连接互联网设备接入内网检测方法
CN108880868B (zh) Bfd保活报文传输方法、装置、设备及机器可读存储介质
CN106559485A (zh) 一种控制服务器关机的方法及装置
CN106850592B (zh) 一种信息处理方法、服务器及终端
CN105164969B (zh) 即时通信客户端的识别方法和识别系统
CN103501298B (zh) 一种不中断业务升级过程中保证链路不断流的方法和设备
CN109587134B (zh) 接口总线的安全认证的方法、装置、设备和介质
CN109040126B (zh) Ims网络sip洪泛攻击的检测装置及方法
CN114205169B (zh) 网络安全防御方法、装置及系统
KR101551537B1 (ko) 정보유출방지장치
CN108347411B (zh) 一种统一安全保障方法、防火墙系统、设备及存储介质
Gad et al. Hierarchical events for efficient distributed network analysis and surveillance
US11240097B2 (en) Communications methods and apparatus for minimizing and/or preventing message processing faults
US20080052402A1 (en) Method, a Computer Program, a Device, and a System for Protecting a Server Against Denial of Service Attacks
Popek et al. Design issues for secure computer networks

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