CN110149367A - 判断调用接口请求是否正常的方法、装置和计算机设备 - Google Patents
判断调用接口请求是否正常的方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN110149367A CN110149367A CN201910309647.5A CN201910309647A CN110149367A CN 110149367 A CN110149367 A CN 110149367A CN 201910309647 A CN201910309647 A CN 201910309647A CN 110149367 A CN110149367 A CN 110149367A
- Authority
- CN
- China
- Prior art keywords
- request
- zookeeper
- private key
- signature string
- string parameter
- 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
Links
Classifications
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0442—Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
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)
- Storage Device Security (AREA)
Abstract
本申请中提供了一种安全监控的判断调用接口请求是否正常的方法、装置和计算机设备,平台终端接收到zookeeper端调用http接口的请求;依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。以此判定调用的接口是否存在被冒用、攻击的问题。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种判断调用接口请求是否正常的方法、装置和计算机设备。
背景技术
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
Zookeeper实例变更时调用restful接口通知ESG-ADMIN端处理当前节点,但是http接口调用方容易被伪造、串改、易攻击,因此,亟需解决zookeeper端调用的交互接口被第三方恶意攻击的问题。
发明内容
本申请的主要目的为提供一种判断调用接口请求是否正常的方法、装置和计算机设备,旨在解决调用的接口被冒用、攻击的问题。
为实现上述目的,本申请提供了一种判断调用接口请求是否正常的方法,包括以下步骤:
平台终端接收到zookeeper端调用http接口的请求;
依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;
通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;
若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。
进一步地,所述平台终端接收到zookeeper端调用http接口的请求的步骤之前,包括:
通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。
进一步地,所述将所述第一私钥发送给所述zookeeper端的步骤,包括:
将所述第一私钥发送于所述zookeeper端的指定节点中。
进一步地,所述指定节点为RSA/PRIVATE节点。
进一步地,所述通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤之后,还包括:
若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的IP地址进行标记。
进一步地,所述通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤之后,包括:
根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;
将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。
进一步地,所述通过与所述第一私钥对应的所述第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤,包括:
判断所述第一公钥是否可以解开所述请求头签名串参数;
若可以解开,则判定验证通过。
本申请还提供了一种判断调用接口请求是否正常的装置,包括:
接收模块,用于平台终端接收到zookeeper端调用http接口的请求;
获取模块,用于依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;
检验模块,用于通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;
判定模块,用于若验证通过,则判定所述zookeeper调用所述http接口的请求是正常的。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请中提供的判断调用接口请求是否正常的方法、装置和计算机设备,具有以下有益效果:
将生成的第一私钥发送至zookeeper端的指定节点中,以便接收到zookeeper端调用的http接口的请求时,获取到加密的请求头签名串参数,并通过第一共钥进行解密验证,以便判断zookeeper端调用http接口的请求是否正常,以此判定调用的接口是否存在被冒用、攻击的问题。
附图说明
图1是本申请一实施例中判断调用接口请求是否正常的方法步骤示意图;
图2是本申请一实施例中判断调用接口请求是否正常的装置结构框图;
图3是本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,为本申请一实施例中提供了一种判断调用接口请求是否正常的方法,包括以下步骤:
步骤S1,平台终端接收到所述zookeeper端调用http接口的请求;
步骤S2,依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;
步骤S3,通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;
步骤S4,若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。
以上步骤中,平台终端为服务治理管理平台,接收到用于随机生成RSA公私钥的代码并存储,当生成用于加密的第一公钥和第一私钥,其中,平台终端将第一私钥的字节码通过Base64加密得到对应的字符串,将该第一私钥的字符串发送给zookeeper端,将第一私钥对应的字符串设于zookeeper端的指定节点处,该指定节点的路径可以为zookeeper/RSA/PRIVATE,也即将第一私钥通过zookeeper端的acl digest模式写入zookeeper端的RSA中的PRIVATE节点中,zookeeper端对写入节点中的第一私钥进行digest的权限控制,digest是zookeeper端节点权限控制的一种模式,通过digest模式可以防止节点数据泄露,通过编写的zookeeper端的插件感知存放第一私钥节点变化时,读取该节点的数据以得到第一私钥。其中,digest是zookeeper自带的功能和特性,通过digest模式可以防止节点数据的泄露,以生成防止第一私钥泄露的模式。
接收到zookeeper端调用http接口的请求时,依据该请求到zookeeper端获取http接口的请求头签名串参数和请求正文,其中,通过RSA非对称加密进行数字签名,接收到zookeeper端调用http接口的请求之前,zookeeper端通过第一私钥加密http接口的请求正文得到签名串参数,签名串参数设于http接口的请求头中形成请求头签名串参数,即通过第一私钥加签http接口的请求头签名串参数和请求正文;在本实施例中,加签就是数字签名,使用得到的第一私钥加密http接口的请求正文,该请求正文即是zookeeper端通知esg-admin端的数据。Zookeeper端在服务实例节点变更时使用http post方式,将实例节点数据放入body(请求正文),使用第一私钥对body(请求正文)进行数字签名得到签名串。http接口的请求正文,zookeeper端在服务实例节点变更时使用http post方式,将实例节点数据放入请求正文,使用第一私钥对请求正文进行数字签名得到签名串参数或者符号,采用post请求方式对请求body大小没有限制,加签得到签名串符号/参数,将该参数/符号设于http接口的请求头中,形成请求头签名串参数;当接收到zookeeper端的请求所得到的请求头签名串参数和请求正文,平台终端再通过第一公钥对获取到的请求正文和签名串参数进行验证,判断第一公钥是否可以解开zookeeper端的请求所得到的参数,若可以解开,则验证通过,本次zookeeper端发起的请求是正常的,是未经过串改的,允许进行下一步的处理。其中,平台终端通过非对称加密生成的互配第一公钥和第一私钥可以互相解密,可以防止调用的接口不被第三方恶意攻击,以保证所有的请求均通过zookeeper端发起。
若发现第一公钥无法解开zookeeper端调用http接口的请求所得到的参数,则系统会自动判断,验证不通过,且可能存在第三方恶意攻击,则会对本次调用http接口的请求、IP进行标记,以便进行下一次的验证。
在一实施例中,所述平台终端接收到zookeeper端调用http接口的请求的步骤S1之前,还包括:
步骤S10,通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。
以上步骤中,预先接收到开发人员编写的可随机生成互配的公钥和私钥的代码,当接收到用户终端输入生成所述第一公钥和所述第一私钥的指令,通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将第一私钥发送给zookeeper端。可以经常更换随机的公钥和私钥,可以有效的预防系统提供的接口被冒用、串改。
在一实施例中,所述将所述第一私钥发送给所述zookeeper端的步骤S10,包括:
步骤S101,将所述第一私钥发送于所述zookeeper端的指定节点中。
以上步骤中,将第一私钥写入到zookeeper端的指定节点中,如在一实施例中,将第一私钥通过zookeeper端的acl digest模式写入zookeeper端的RSA中的PRIVATE节点中,zookeeper端对写入节点中的第一私钥进行Digest的权限控制,其中digest是zookeeper端节点权限控制的一种模式,通过digest模式可以防止节点数据泄露,通过编写的zookeeper插件感知到存放第一私钥节点变化时,读取该节点的数据以得到第一私钥。利用位于RSA中的第一私钥对post请求正文进行加签得到签名串参数sign,将该签名串参数放入到http的请求头中形成请求头签名串参数,其中,key为参数sign,value为参数sign值。以便接收到zookeeper端调用restful风格的http接口的请求,可以得到用于验证的请求头签名串参数和请求正文。
Restful(Representational State Transfer),主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
在一实施例中,所述指定节点为RSA/PRIVATE节点。
zookeeper端中包括有多种形式的节点,在本实施例中,第一私钥通过写入到路径为zookeeper/RSA/PRIVATE中,PRIVATE节点用于在java中控制访问权限。
在本实施例中,zookeeper端的权限控制模式为ACL DIGEST,其中ACL(AccessControl List)Digest模式是最常用的权限控制模式,zookeeper端会对形成的权限标识先后进行两次编码处理,依次是SHA-1加密算法和Base64编码。
以上步骤中,获取到的第一私钥是一组字节码,系统将获取到的第一私钥的字节码通过Base64加密得到对应的字符串,将所述第一私钥对应的该字符串写入路径为zookeeper/RSA/PRIVATE的节点处,zookeeper端通过感知到节点处的变化,读取到对应的字符串,zookeeper端将该字符串转化为字节码的第一私钥。
Zookeeper端实时监听路径为/RSA/PRIVATE的节点处的第一私钥,通过实时感知接收到的第一私钥是否存在变更,若系统将新生成的变更第一私钥发送至zookeeper端的指定节点处,zookeeper端可自动监听第一私钥是否变更过,若获取到第一私钥已变更过,则对所述已变更的第一私钥进行处理,以便系统接收到zookeeper端的请求后,获取到已变更的第一私钥处理形成的请求头签名串参数和请求正文。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。为最常见的用于传输8Bit字节码的编码方式之一。
在一实施例中,所述通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤S3之后,还包括:
步骤S301,若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的IP地址进行标记。
以上步骤中,若判断收到的所述zookeeper端调用所述http接口的请求是异常的,则系统会预测到系统与zookeeper端交互的接口被第三方恶意攻击,此时http请求并不一定由zookeeper发起,则将发起的IP地址以及请求进行标记,以便下次若检测到依然采用同一个IP地址发起的请求,且是想解签的情况下,进行报警,防止第三方恶意攻击、串改成功。
在一实施例中,所述通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤S10,包括:
步骤S101,根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;
步骤S102,将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。
以上步骤中,为了防止长期使用第一私钥进行加密zookeeper端,容易被第三方恶意攻击且实现串改,可通过一段时间间隔代码,在指定的时间段,如一小时或者两小时等,系统重新通过非对称加密生成新的互配的第一公钥和第一私钥,其中,每次生成RSA公私钥的字串都是不同且随机的,根据预设的时间,触动系统重新生成新的互配的第一公钥和第一私钥,系统再将第一私钥发送至指定节点,如路径为zookeeper/RSA/PRIVATE处,以便zookeeper端可以实时监控节点处的第一私钥是否变更过,进而进行下一步的处理。通过非对称加密的方式进行加密,以便确保系统提供的接口不被冒用、串改。
在一实施例中,所述通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证S3的步骤,包括:
步骤S31,判断所述第一公钥是否可以解开所述请求头签名串参数;
步骤S32,若可以解开,则判定验证通过。
以上步骤中,当接收到zookeeper端的请求所得到的请求头签名串参数和请求正文,通过第一公钥对请求正文和签名串参数进行验证,判断第一公钥是否可以解开zookeeper端的调用请求所得到的参数,若可以解开,则可以得到解开的所述请求头签名串参数对应的请求正文以及签名串参数,进而在签名串参数中剔除出第一私钥,并将剔除的第一私钥与平台系统中生成的第一私钥进行对比,若一致,则验证通过,本次zookeeper端发起的请求是正常的,是未经过串改的,允许进行下一步的处理。通过非对称加密生成的第一公钥和第一私钥互相解密,可以防止系统与zookeeper之间交互的接口不被第三方恶意攻击,以保证所有的请求均通过zookeeper发起。
综上所述,为本申请实施例中提供的判断调用接口请求是否正常的方法,将生成的第一私钥发送至zookeeper端的指定节点中,以便接收到zookeeper端调用的http接口的请求时,获取到加密的请求头签名串参数,并通过第一共钥进行解密验证,以便判断zookeeper端调用http接口的请求是否正常,以此判定调用的接口是否存在被篡改或者冒用、攻击。
参照图2,本申请一实施例中还提供了一种判断调用接口请求是否正常的装置,包括:
接收模块10,用于平台终端接收到zookeeper端调用http接口的请求;
获取模块20,用于依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;
检验模块30,用于通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;
判定模块40,用于若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。
本实施例中,平台终端为服务治理管理平台,接收到用于随机生成RSA公私钥的代码并存储,当生成用于加密的第一公钥和第一私钥,其中,平台终端将第一私钥的字节码通过Base64加密得到对应的字符串,将该第一私钥的字符串发送给zookeeper端,将第一私钥对应的字符串设于zookeeper端的指定节点处,该指定节点的路径可以为zookeeper/RSA/PRIVATE,也即将第一私钥通过zookeeper端的acl Digest模式写入zookeeper端的RSA中的PRIVATE节点中,zookeeper端对写入节点中的第一私钥进行Digest的权限控制,digest是zookeeper端节点权限控制的一种模式,通过digest模式可以防止节点数据泄露,通过编写的zookeeper端的插件感知存放第一私钥节点变化时,读取该节点的数据以得到第一私钥。其中,digest是zookeeper自带的功能和特性,通过digest模式可以防止节点数据的泄露,以生成防止第一私钥泄露的模式。
接收模块10接收到zookeeper端调用http接口的请求时,获取模块20依据该请求到zookeeper端获取http接口的请求头签名串参数和请求正文,其中,通过RSA非对称加密进行数字签名,接收到zookeeper端调用http接口的请求之前,zookeeper端通过第一私钥加密http接口的请求正文得到签名串参数,签名串参数设于http接口的请求头中形成请求头签名串参数,即通过第一私钥加签http接口的请求头签名串参数和请求正文;在本实施例中,加签就是数字签名,使用得到的第一私钥加密http接口的请求正文,该请求正文即是zookeeper端通知esg-admin端的数据。Zookeeper端在服务实例节点变更时使用http post方式,将实例节点数据放入body(请求正文),使用第一私钥对body(请求正文)进行数字签名得到签名串。http接口的请求正文,zookeeper端在服务实例节点变更时使用http post方式,将实例节点数据放入请求正文,使用第一私钥对请求正文进行数字签名得到签名串参数或者符号,采用post请求方式对请求body大小没有限制,加签得到签名串符号/参数,将该参数/符号设于http接口的请求头中,形成请求头签名串参数;当接收到zookeeper端的请求所得到的请求头签名串参数和请求正文,验证模块30通过第一公钥对获取到的请求正文和签名串参数进行验证,判定模块40判断第一公钥是否可以解开zookeeper端的请求所得到的参数,若可以解开,则验证通过,本次zookeeper端发起的请求是正常的,是未经过串改的,允许进行下一步的处理。其中,平台终端通过非对称加密生成的互配第一公钥和第一私钥可以互相解密,可以防止调用的接口不被第三方恶意攻击,以保证所有的请求均通过zookeeper端发起。
若发现第一公钥无法解开zookeeper端调用http接口的请求所得到的参数,则系统会自动判断,验证不通过,且可能存在第三方恶意攻击,则会对本次调用http接口的请求、IP进行标记,以便进行下一次的验证。
在一实施例中,判断调用接口请求是否正常的装置还包括:
生成模块,用于通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。
在本实施例中,预先接收到开发人员编写的可随机生成互配的公钥和私钥的代码,当用户终端输入生成所述第一公钥和所述第一私钥的指令,生成模块通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将第一私钥发送给zookeeper端。通过经常更换随机的公钥和私钥,可以有效的预防系统提供的接口被冒用、串改。
在一实施例中,生成模块包括:
第一发送单元,用于将所述第一私钥发送于所述zookeeper端的指定节点中。
在本实施例中,将第一私钥写入到zookeeper端的指定节点中,如在一实施例中,将第一私钥通过zookeeper端的acl digest模式写入zookeeper端的RSA中的PRIVATE节点中,zookeeper端对写入节点中的第一私钥进行digest的权限控制,其中digest是zookeeper端节点权限控制的一种模式,通过digest模式可以防止节点数据泄露,通过编写的zookeeper插件感知到存放第一私钥节点变化时,读取该节点的数据以得到第一私钥。利用位于RSA中的第一私钥对post请求正文进行加签得到签名串参数sign,将该签名串参数放入到http的请求头中形成请求头签名串参数,其中,key为参数sign,value为参数sign值。以便接收到zookeeper端调用restful风格的http接口的请求,可以得到用于验证的请求头签名串参数和请求正文。
Restful(Representational State Transfer),主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
在一实施例中,所述指定节点为RSA/PRIVATE节点。
在本实施例中,zookeeper端中包括有多种形式的节点,在本实施例中,发送单元将第一私钥写入到路径为zookeeper/RSA/PRIVATE中,PRIVATE节点用于在java中控制访问权限。
在本实施例中,zookeeper端的权限控制模式为ACL DIGEST,其中ACL(AccessControl List)Digest模式是最常用的权限控制模式,zookeeper端会对形成的权限标识先后进行两次编码处理,依次是SHA-1加密算法和Base64编码。
其中,获取到的第一私钥是一组字节码,将获取到的第一私钥的字节码通过Base64加密得到对应的字符串,将所述第一私钥对应的该字符串写入路径为zookeeper/RSA/PRIVATE的节点处,zookeeper端通过感知到节点处的变化,读取到对应的字符串,zookeeper端将该字符串转化为字节码的第一私钥。
Zookeeper端实时监听路径为/RSA/PRIVATE的节点处的第一私钥,通过实时感知接收到的第一私钥是否存在变更,若系统将新生成的变更第一私钥发送至zookeeper端的指定节点处,zookeeper端可自动监听第一私钥是否变更过,若获取到第一私钥已变更过,则对所述已变更的第一私钥进行处理,以便系统接收到zookeeper端的请求后,获取到已变更的第一私钥处理形成的请求头签名串参数和请求正文。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。为最常见的用于传输8Bit字节码的编码方式之一。
在一实施例中,判断调用接口请求是否正常的装置还包括:
标记模块,用于若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的IP地址进行标记。
在本实施例中,判定模块若判断收到的所述zookeeper端调用所述http接口的请求是异常的,则会调用的接口被第三方恶意攻击,此时调用http请求并不一定由zookeeper端发起,则标记模块将发起的IP地址以及请求进行标记,以便下次若检测到依然采用同一个IP地址发起的请求,且是想解签的情况下,进行报警,防止第三方恶意攻击、串改成功。
在一实施例中,生成模块包括:
生成单元,用于根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;
第二发送单元,用于将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。
在本实施例中,为了防止长期使用第一私钥进行加密zookeeper端,容易被第三方恶意攻击且实现串改,可通过一段时间间隔代码,在指定的时间段,如一小时或者两小时等,系统重新通过非对称加密生成新的互配的第一公钥和第一私钥,其中,每次生成RSA公私钥的字串都是不同且随机的,根据预设的时间,触动系统重新生成新的互配的第一公钥和第一私钥,系统再将第一私钥发送至指定节点,如路径为zookeeper/RSA/PRIVATE处,以便zookeeper端可以实时监控节点处的第一私钥是否变更过,进而进行下一步的处理。通过非对称加密的方式进行加密,以便确保系统提供的接口不被冒用、串改。
在一实施例中,验证模块包括:
判断单元,用于判断所述第一公钥是否可以解开所述请求头签名串参数;
判定单元,用于若可以解开,则判定验证通过。
在本实施例中,当接收模块接收到zookeeper端的请求所得到的请求头签名串参数和请求正文,验证模块通过第一公钥对请求正文和签名串参数进行验证,判断单元判断第一公钥是否可以解开zookeeper端的调用请求所得到的参数,若可以解开,则可以得到解开的所述请求头签名串参数对应的请求正文以及签名串参数,进而在签名串参数中剔除出第一私钥,并将剔除的第一私钥与平台系统中生成的第一私钥进行对比,若一致,则判定但那元验证通过,本次zookeeper发起的请求是正常的,是未经过串改的,允许进行下一步的处理。通过非对称加密生成的第一公钥和第一私钥互相解密,可以防止系统与zookeeper之间交互的接口不被第三方恶意攻击,以保证所有的请求均通过zookeeper发起。
综上所述,为本申请实施例中提供的判断调用接口请求是否正常的装置,将生成的第一私钥发送至zookeeper端的指定节点中,以便接收到zookeeper端调用的http接口的请求时,获取到加密的请求头签名串参数,并通过第一共钥进行解密验证,以便判断zookeeper端调用http接口的请求是否正常,以此判定调用的接口是否存在被篡改或者冒用、攻击。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储代码等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种判断调用接口请求是否正常的方法。
上述处理器执行上述判断调用接口请求是否正常的方法的步骤:
接收到zookeeper端调用http接口的请求;
依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;
通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;
若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。
在一实施例中,所述处理器接收到zookeeper端调用http接口的请求的步骤之前,包括:
通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。
在一实施例中,所述将所述第一私钥发送给所述zookeeper端的步骤,包括:
将所述第一私钥发送于所述zookeeper端的节点中。
在一实施例中,所述指定节点为RSA/PRIVATE节点。
在一实施例中,所述处理器通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤之后,还包括:
若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的IP地址进行标记。
在一实施例中,所述处理器通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤,包括:
根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;
将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。
在一实施例中,所述处理器通过所述第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤,包括:
判断所述第一公钥是否可以解开所述请求头签名串参数;
若可以解开,则判定验证通过。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种判断调用接口请求是否正常的方法,具体为:
接收到zookeeper端调用http接口的请求;
依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;
通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;
若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。
在一实施例中,所述处理器接收到zookeeper端调用http接口的请求的步骤之前,包括:
通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。
在一实施例中,所述将所述第一私钥发送给所述zookeeper端的步骤,包括:
将所述第一私钥设置于所述zookeeper端的指定节点中。
在一实施例中,所述指定节点为RSA/PRIVATE节点。
在一实施例中,所述处理器通过与所述第一私钥对应的所述第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤之后,还包括:
若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的IP地址进行标记。
在一实施例中,所述处理器通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤,包括:
根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;
将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。
在一实施例中,所述处理器通过所述第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤,包括:
判断所述第一公钥是否可以解开所述请求头签名串参数;
若可以解开,则判定验证通过。
综上所述,为本申请实施例中提供的判断调用接口请求是否正常的方法、装置和计算机设备,将生成的第一私钥发送至zookeeper端的指定节点中,以便接收到zookeeper端调用的http接口的请求时,获取到加密的请求头签名串参数,并通过第一共钥进行解密验证,以便判断zookeeper端调用http接口的请求是否正常,以此判定调用的接口是否存在被篡改或者冒用、攻击。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种判断调用接口请求是否正常的方法,其特征在于,包括以下步骤:
平台终端接收到zookeeper端调用http接口的请求;
依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;
通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;
若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。
2.根据权利要求1所述的判断调用接口请求是否正常的方法,其特征在于,所述平台终端接收到zookeeper端调用http接口的请求的步骤之前,包括:
通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。
3.根据权利要求2所述的判断调用接口请求是否正常的方法,其特征在于,将所述第一私钥发送给所述zookeeper端的步骤,包括:
将所述第一私钥发送于所述zookeeper端的指定节点中。
4.根据权利要求3所述的判断调用接口请求是否正常的方法,其特征在于,所述指定节点为RSA/PRIVATE节点。
5.根据权利要求1所述的判断调用接口请求是否正常的方法,其特征在于,所述通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤之后,还包括:
若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的IP地址进行标记。
6.根据权利要求2所述的判断调用接口请求是否正常的方法,其特征在于,所述通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤,包括:
根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;
将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。
7.根据权利要求1所述的判断调用接口请求是否正常的方法,其特征在于,所述通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤,包括:
判断所述第一公钥是否可以解开所述请求头签名串参数;
若可以解开,则判定验证通过。
8.一种判断调用接口请求是否正常的装置,其特征在于,包括:
接收模块,用于平台终端接收到zookeeper端调用http接口的请求;
获取模块,用于依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;
检验模块,用于通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;
判定模块,用于若验证通过,则判定所述zookeeper调用所述http接口的请求是正常的。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910309647.5A CN110149367A (zh) | 2019-04-17 | 2019-04-17 | 判断调用接口请求是否正常的方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910309647.5A CN110149367A (zh) | 2019-04-17 | 2019-04-17 | 判断调用接口请求是否正常的方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110149367A true CN110149367A (zh) | 2019-08-20 |
Family
ID=67589840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910309647.5A Pending CN110149367A (zh) | 2019-04-17 | 2019-04-17 | 判断调用接口请求是否正常的方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110149367A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286957A (zh) * | 2020-11-06 | 2021-01-29 | 广州易幻网络科技有限公司 | 基于结构化查询语言的bi系统的api应用方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095731A (zh) * | 2013-02-22 | 2013-05-08 | 浪潮电子信息产业股份有限公司 | 一种基于签名机制的rest安全系统 |
CN107135206A (zh) * | 2017-04-18 | 2017-09-05 | 北京思特奇信息技术股份有限公司 | 一种互联网环境下接口调用的安全防范方法和系统 |
CN107453878A (zh) * | 2017-08-11 | 2017-12-08 | 四川长虹电器股份有限公司 | 一种支持rest api防篡改防重放的方法 |
CN107918731A (zh) * | 2016-10-11 | 2018-04-17 | 百度在线网络技术(北京)有限公司 | 用于控制对开放接口进行访问的权限的方法和装置 |
US20190058594A1 (en) * | 2017-08-21 | 2019-02-21 | Citrix Systems, Inc. | Secure inter-service communications in a cloud computing system |
-
2019
- 2019-04-17 CN CN201910309647.5A patent/CN110149367A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095731A (zh) * | 2013-02-22 | 2013-05-08 | 浪潮电子信息产业股份有限公司 | 一种基于签名机制的rest安全系统 |
CN107918731A (zh) * | 2016-10-11 | 2018-04-17 | 百度在线网络技术(北京)有限公司 | 用于控制对开放接口进行访问的权限的方法和装置 |
CN107135206A (zh) * | 2017-04-18 | 2017-09-05 | 北京思特奇信息技术股份有限公司 | 一种互联网环境下接口调用的安全防范方法和系统 |
CN107453878A (zh) * | 2017-08-11 | 2017-12-08 | 四川长虹电器股份有限公司 | 一种支持rest api防篡改防重放的方法 |
US20190058594A1 (en) * | 2017-08-21 | 2019-02-21 | Citrix Systems, Inc. | Secure inter-service communications in a cloud computing system |
Non-Patent Citations (2)
Title |
---|
人生设计师: "RESTful接口签名认证实现机制", 《博客园》 * |
李伟-CODEL: "开放api接口签名验证", 《博客园》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286957A (zh) * | 2020-11-06 | 2021-01-29 | 广州易幻网络科技有限公司 | 基于结构化查询语言的bi系统的api应用方法及系统 |
CN112286957B (zh) * | 2020-11-06 | 2024-05-07 | 广州易幻网络科技有限公司 | 基于结构化查询语言的bi系统的api应用方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768988B (zh) | 区块链访问控制方法、设备及计算机可读存储介质 | |
Kissel | Glossary of key information security terms | |
CN110175466B (zh) | 开放平台的安全管理方法、装置、计算机设备及存储介质 | |
US20100318799A1 (en) | Discovery of secure network enclaves | |
CN110096903B (zh) | 基于区块链的资产验证方法及区块链网络系统 | |
CN111010367A (zh) | 数据存证方法、装置、计算机设备和存储介质 | |
CN112187931A (zh) | 会话管理方法、装置、计算机设备和存储介质 | |
CN111368340A (zh) | 基于区块链的通证安全校验方法、装置及硬件设备 | |
CN116582266B (zh) | 电子签章方法、电子签章系统以及可读存储介质 | |
JP2022020602A (ja) | スマートコントラクト方式に基づく電子契約証拠保全システム | |
CN108496323B (zh) | 一种证书导入方法及终端 | |
CN113472521A (zh) | 基于区块链的实名数字身份管理方法、签名设备和验证设备 | |
CA3184856A1 (en) | Method, participatant unit, transaction register, and payment system for managing transaction data sets | |
CN110708162A (zh) | 资源的获取方法、装置、计算机可读介质及电子设备 | |
CN110929231A (zh) | 数字资产的授权方法、装置和服务器 | |
CN107026729B (zh) | 用于传输软件的方法和装置 | |
CN107888548A (zh) | 一种信息验证方法及装置 | |
CN110149367A (zh) | 判断调用接口请求是否正常的方法、装置和计算机设备 | |
CN112702354A (zh) | 一种基于区块链技术的数据资源共享追溯方法及装置 | |
CN109474431A (zh) | 客户端认证方法及计算机可读存储介质 | |
CN116720218A (zh) | 基于区块链的跨系统账户共享服务方法及系统 | |
CN113676446B (zh) | 通信网络安全防误控制方法、系统、电子设备及介质 | |
CN109905408A (zh) | 网络安全防护方法、系统、可读存储介质及终端设备 | |
CN113868628A (zh) | 一种签名验证方法、装置、计算机设备和存储介质 | |
JP2007258789A (ja) | エージェント認証システム、エージェント認証方法、及びエージェント認証プログラム |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190820 |