CN116582279A - 一种http请求处理方法及设备 - Google Patents
一种http请求处理方法及设备 Download PDFInfo
- Publication number
- CN116582279A CN116582279A CN202310678623.3A CN202310678623A CN116582279A CN 116582279 A CN116582279 A CN 116582279A CN 202310678623 A CN202310678623 A CN 202310678623A CN 116582279 A CN116582279 A CN 116582279A
- Authority
- CN
- China
- Prior art keywords
- http request
- node
- signature
- unsigned
- original
- 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
- 238000003672 processing method Methods 0.000 title claims description 43
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000012795 verification Methods 0.000 claims abstract description 44
- 230000004044 response Effects 0.000 claims description 45
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000009941 weaving Methods 0.000 description 1
Classifications
-
- 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
-
- 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/12—Applying verification of the received information
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
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)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供一种HTTP请求处理方法及设备,涉及计算机技术领域,其中,该方法应用于目标链路中的网关节点,包括:接收客户端应用节点发送的第一HTTP请求,所述第一HTTP请求为在原始HTTP请求中添加了客户端节点签名的HTTP请求;对所述第一HTTP请求中的客户端节点签名进行验证,在验证通过后,得到所述原始HTTP请求;将第二HTTP请求发送至目标链路中的服务端应用节点,其中,所述第二HTTP请求为在所述原始HTTP请求中添加了网关节点签名的HTTP请求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种HTTP请求处理方法及设备。
背景技术
在一些业务系统中,常由客户端应用向业务系统内部的服务端应用发送HTTP请求,得到服务端应用返回的响应。为防止HTTP请求被恶意篡改,传统的HTTP请求处理方法是在业务系统边界侧设置防篡改措施,由客户端应用在待发送的原始HTTP请求中添加数字签名生成加签HTTP请求,将加签HTTP请求发送给网关,由网关对加签HTTP请求中的数字签名进行验证后得到原始HTTP请求,之后,再由网关将原始HTTP请求发送给业务系统内部的服务端应用。然而,在网关到业务系统内部的服务端应用的业务系统内部的HTTP请求链路中,HTTP请求仍有可能被恶意篡改,影响业务系统数据安全。
发明内容
本申请实施例提供一种HTTP请求处理方法及设备,用于在HTTP请求全链路防止HTTP请求被恶意篡改,保证HTTP请求数据在HTTP请求全链路的安全性和一致性。
第一方面,本申请实施例提供一种HTTP请求处理方法,应用于目标链路的网关节点,所述方法包括:
接收客户端应用节点发送的第一HTTP请求,其中,所述第一HTTP请求为在原始HTTP请求中添加了客户端节点签名的HTTP请求;
对所述第一HTTP请求中的客户端节点签名进行验证,在验证通过后,得到所述原始HTTP请求;
将第二HTTP请求发送至目标链路中的服务端应用节点,其中,所述第二HTTP请求为在所述原始HTTP请求中添加了网关节点签名的HTTP请求。
第二方面,本申请实施例提供一种HTTP请求处理方法,应用于目标链路中的服务端应用节点,所述服务端应用节点上设置有第二切面,所述方法包括:
接收上一节点发送的第一加签HTTP请求,其中,在接收上一节点发送的第一加签HTTP请求时,当前节点的第二切面拦截所述第一加签HTTP请求,对所述第一加签HTTP请求中的上一节点签名进行验证,在验证通过后,得到第一未加签HTTP请求,使所述第一未加签HTTP请求被当前节点接收到,其中,所述第一未加签HTTP请求为从所述第一加签HTTP请求中去除了上一节点签名的HTTP请求;
对所述第一未加签HTTP请求进行处理;
在得到所述第一未加签HTTP请求的响应时,将所述响应返回给上一节点。
第三方面,本申请实施例提供一种HTTP请求处理设备,所述设备包括:网关节点,所述网关节点包括:
接收模块,用于接收客户端应用节点的第一HTTP请求,所述第一HTTP请求为在原始HTTP请求中添加了客户端节点签名的HTTP请求;
验证模块,用于对所述第一HTTP请求中的客户端节点签名进行验证,在验证通过后,得到所述原始HTTP请求;
发送模块,用于将第二HTTP请求发送至服务端应用节点,其中,所述第二HTTP请求为在所述原始HTTP请求中添加了网关节点签名的HTTP请求。
第四方面,本申请实施例提供一种HTTP请求处理设备,所述设备包括:服务端应用节点,第二切面,所述第二切面设置于所述服务端应用节点上,所述服务端应用节点包括:
接收模块,用于接收上一节点发送的第一加签HTTP请求,其中,在接收上一节点发送的第一加签HTTP请求时,当前节点的第二切面拦截所述第一加签HTTP请求,对所述第一加签HTTP请求中的上一节点签名进行验证,在验证通过后,得到第一未加签HTTP请求,使所述第一未加签HTTP请求被当前节点接收到,其中,所述第一未加签HTTP请求为从所述第一加签HTTP请求中去除了上一节点签名的HTTP请求;
处理模块,用于对所述第一未加签HTTP请求进行处理;
返回模块,用于在得到所述第一未加签HTTP请求的响应时,将所述响应返回给上一节点。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的HTTP请求处理方法的一种应用场景示意图;
图2为本申请一实施例提供的HTTP请求处理方法的流程示意图;
图3为本申请另一实施例提供的HTTP请求处理方法的流程示意图;
图4为本申请实施例提供的HTTP请求处理方法的另一种应用场景示意图;
图5为本申请又一实施例提供的HTTP请求处理方法的流程示意图;
图6为本申请一实施例提供的HTTP请求处理设备的模块示意图;
图7为本申请另一实施例提供的HTTP请求处理设备的模块示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例以及实施例中的特征可以相互组合。本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应理解这样使用的数据在适当情况下可以互换,以便本说明书实施例能够以除了在这里图示或描述的那些以外的顺序实施。
为了解决HTTP请求数据在网关到服务端应用的业务系统内部的HTTP请求链路中被篡改的问题,本申请实施例提供了一种用于HTTP请求防篡改的HTTP请求处理方案。本申请实施例提供的HTTP请求处理方案,通过为网关节点以后的HTTP请求链路增加防篡改措施,结合网关节点以前的HTTP请求链路防篡改措施,能够实现HTTP请求全链路防篡改;通过为网关节点以后的HTTP请求链路中的网关节点和/或服务端应用节点设置切面,由每个节点的切面对每段HTTP请求链路的HTTP请求进行加签和验签,能够使网关节点和/或服务端节点对每段HTTP请求链路无感防篡改,实现网关节点以后的整个HTTP请求链路的无感防篡改,无需网关节点和服务端节点的原有处理进行更改;通过在加签和验签时,采用预设摘要算法对请求参数进行排序,能够在HTTP请求链路防篡改的同时,防止因请求参数顺序不一致造成篡改误判;通过由远端钥匙托管平台托管各节点的密钥,在加签和验签时,动态从远端钥匙托管平台获取密钥,能够避免密钥泄露,进一步提高安全性。
以下结合附图,详细说明本申请各实施例提供的技术方案。
本申请一个或多个实施例提供的HTTP请求处理方法可以应用于如图1所示的场景中,该场景包括:客户端应用节点100、网关节点300以及服务端应用节点500。
客户端应用节点100可以通过网关节点300向业务系统内部的服务端应用节点500发送HTTP请求,得到服务端应用节点500返回的响应。其中,客户端应用节点100上设置有防篡改措施,其内置安全模块,该安全模块可以采用预设的签名算法在待发送的原始HTTP请求中添加客户端节点签名,生成第一HTTP请求。客户端应用节点100可以将添加有客户端节点签名的第一HTTP请求发送给网关节点300。
网关节点300可以接收客户端应用节点100发送的第一HTTP请求,对第一HTTP请求中的客户端节点签名进行验证,在验证通过后,得到原始HTTP请求。在得到原始HTTP请求后,网关节点300可以在原始HTTP请求中添加网关节点标签,生成第二HTTP请求,将第二HTTP请求发送给服务端节点500。
服务端应用节点500可以对第二HTTP请求中的网关节点标签进行验证,在验证通过后,对第二HTTP请求进行处理得到响应,并将响应通过网关节点300返回给客户端应用节点100。
本申请实施例提供的HTTP请求处理方案为网关节点以后的目标链路提供防篡改措施,一些实施例提供的HTTP请求处理方案应用于目标链路中的网关节点,一些实施例提供的HTTP请求处理方案应用于目标链路中的服务端应用节点,其中,目标链路为HTTP请求链路中网关节点以后的HTTP请求链路,即网关节点到最后一个服务端应用节点的HTTP请求链路。
实施例一
请参考图2,为本申请一实施例提供的HTTP请求处理方法的流程示意图,该HTTP请求处理方法可应用于图1所示的场景中,其执行主体可为目标链路中的网关节点。如图2所示,本实施例提供的HTTP请求处理方法可以包括下述处理:
S102,接收客户端应用节点发送的第一HTTP请求。
其中,第一HTTP请求为在原始HTTP请求中添加了客户端节点签名的HTTP请求,由客户端应用节点生成。客户端应用节点为HTTP请求链路中发起请求的起始节点,其可以为浏览器、移动APP等客户端应用。客户端节点签名为客户端应用节点的数字签名,用于防止HTTP请求数据被篡改,保证HTTP请求链路中请求数据的安全性和一致性,其可由客户端应用节点通过预设签名算法对原始HTTP请求报文进行处理后得到。
S104,对第一HTTP请求中的客户端节点签名进行验证,在验证通过后,得到原始HTTP请求。
其中,可以根据生成客户端节点签名时使用的数字签名算法对客户端节点签名进行验证。
在一种实现方式中,客户端应用节点可以根据客户端节点私钥和第一预设摘要算法生成客户端节点签名。具体而言,客户端应用节点可以根据原始HTTP请求报文和第一预设摘要算法生成第一报文摘要,使用客户端节点私钥对第一报文摘要进行加密生成客户端节点签名,将客户端节点签名添加到原始HTTP请求中生成第一HTTP请求,然后将第一HTTP请求发送给网关节点。
相应的,网关节点可以根据客户端节点公钥和第一预设摘要算法对客户端节点签名进行验证。具体而言,网关节点可以获取客户端节点公钥和第一预设摘要算法,其中,客户端节点公钥与生成客户端节点签名时使用的客户端节点私钥成密钥对,第一预设摘要算法为生成客户端节点签名时使用的摘要算法;使用客户端节点公钥对客户端节点签名进行解密,得到第一报文摘要;第一预设摘要算法从第一HTTP请求中提取比对摘要;检测比对摘要与第一报文摘要是否一致,若一致,则确定验证通过,若不一致,则确定验证不通过。若验证不同过,则表明HTTP请求在客户端应用节点到网关节点的请求链路中被篡改。
S106,将第二HTTP请求发送至目标链路中的服务端应用节点,其中,第二HTTP请求为在原始HTTP请求中添加了网关节点签名的HTTP请求。
其中,网关节点签名为网关节点的数字签名,其用于保证网关节点到服务端应用节点的HTTP请求链路中,HTTP请求数据的安全性和一致性,防止HTTP请求数据被篡改。
通过在网关节点发送给服务端应用节点的HTTP请求中添加网关节点签名,为网关节点以后的HTTP请求链路增加防篡改措施,能够防止HTTP请求在网关节点到服务端应用节点的内部HTTP请求链路中被篡改,结合客户端应用节点到网关节点的HTTP请求链路中的已有的防篡改措施,能够在HTTP请求全链路防篡改。
在一种实现方式中,可对网关节点的现有业务逻辑代码进行更改,在网关节点中增加安全模块,由网关节点内置的安全模块在原始HTTP请求中添加网关节点签名,生成第二HTTP请求。其中,网关节点签名可由网关节点根据网关节点私钥和第二预设摘要算法生成,其中,第二预设摘要算法可以采用与前述第一预设摘要算法相同的摘要算法,也可以采用与前述第一预设摘要算法不同的摘要算法。
在一种实现方式中,在原始HTTP请求中添加网关节点签名,生成第二HTTP请求,具体可以包括下述处理:
处理一:根据第二预设摘要算法从原始HTTP请求中提取第二报文摘要。
其中,第二预设摘要算法可以采用与第一预设摘要算法不同的摘要算法,以使网关节点到服务端应用节点的HTTP请求链路与客户端应用节点到网关节点的HTTP请求链路,采用不同的摘要算法生成网关节点签名和客户端节点签名,以提高防篡改能力。
其中,对于HTTP请求报文,发送的HTTP请求和接收的HTTP请求中多个请求参数的顺序可能会不一致,导致其报文摘要不一致,从而产生错判。为防止因请求参数顺序不一致而导致错判,第二预设摘要算法可以指定对请求参数进行排序的排序顺序,可以根据所述第二预设摘要算法从原始HTTP请求报文中获取请求参数,按照第二预设摘要的指定顺序对所述请求参数进行排序,根据排序后的请求参数生成所述第二报文摘要。其中,可以将排序后的请求参数按顺序拼接为待签名字符串,使用预设的哈希算法计算待签名字符串的散列值,根据待签名字符串的散列值生成第二报文摘要。预设的哈希算法可以采用已有的哈希算法,如HmacSHA256、HmacSHA512等。
指定顺序可以为请求参数名称首字母升序的顺序,也可以为请求参数名称首字母降序的顺序,或者是其他设定的排序顺序。可以理解的是,只要生成第二报文摘要时对请求参数的排序方法与对签名进行验证生成比对摘要时对请求参数的排序方法相同,就能达到避免因请求参数不一致而导致的错判问题。因此,只要在生成签名时采用第二预设摘要算法对请求参数进行排序,在验证签名时采用与生成签名时一致的摘要算法,无论采用哪种排序顺序,均能够达到避免因请求参数顺序不一致而导致错判的效果。由此,第二报文摘要算法对请求参数排序的指定顺序可以为任意指定的顺序。
在一些实现方式中,为进一步提高安全性,可以将指定顺序设置为非常规排序顺序,由此,可以根据非常规排序顺序对请求参数进行排序拼接,得到待签名字符串。例如,可以按请求参数名称字符数从小到大的顺序对请求参数进行排序拼接得到待签名字符串。
在一些实现方式中,为进一步提高安全性,可以将请求参数的参数名称和参数值用第一特殊字符拼接为请求参数组合形式,将不同请求参数组合排序,然后,再用第二特殊字符将排序后的请求参数组合拼接为待签名字符串,之后,根据最终拼接好的字符串生成报文摘要。例如,可以将请求参数拼接为“第一参数名称=第一参数值&第二参数名称=第二参数值…&第N参数名称=第N参数值”的形式。
处理二:使用网关节点私钥对第二报文摘要进行加密,得到网关节点签名。
其中,可以根据预设的加密算法以及网关节点私钥,对第二报文摘要进行加密,形成网关节点数字签名。预设的加密算法可以采用已有的加密算法,如SM2、RSA等。该预设的加密算法可以与对第一报文摘要进行加密时,使用的加密算法不同。通过采用不同的加密算法生成网关签名和客户端节点签名,能够使网关节点到服务端应用节点的HTTP请求链路与客户端应用节点到网关节点的HTTP请求链路的签名算法不同,由此来进一步提高安全性。当然,两者也可以采用相同的加密算法。
在一种实现方式中,为进一步提高安全性,避免密钥泄漏,可以预先将网关节点私钥保存在远端钥匙托管平台上,在提取第二报文摘要后,可以根据网关节点标识动态从远端钥匙托管平台获取网关节点私钥。在使用网关节点私钥前,可以根据网关节点标识从远端钥匙托管平台获取网关节点私钥;在使用网关节点私钥后,可以销毁网关节点私钥。
处理三:将网关节点签名添加到原始HTTP请求的指定位置,得到第二HTTP请求。
其中,指定位置为预先设置的用于添加签名的位置。在一种实现方式中,可以将网关节点签名添加到原始HTTP请求的请求头中的指定位置,得到第二HTTP请求。原始HTTP请求可以为GET请求,也可以为POST请求,而GET请求只有请求头,通过将网关节点签名添加到原始HTTP请求的请求头中的位置,能够适配不同类型的HTTP请求。
在上述实现方式中,通过对网关节点本身的业务逻辑代码进行更改,以在原始HTTP请求中添加网关节点签名,生成发送至服务端应用节点的第二HTTP请求。在一种实现方式中,可为网关节点设置切面,利用切面技术实现原始HTTP请求中添加网关节点签名生生第二HTTP请求的处理,该方法能够使网关节点对增加的防篡改措施无感,无需对网关节点的现有业务逻辑代码进行更改。
切面技术是对于现有代码中已经封装好的类,在编译期间或运行期间,对其进行切割,在原有的方法中织入一些新的代码,对原有的方法代码进行增强处理的技术,其中,增强部分的代码,就称之为切面。在本实现方式中,可以利用切面技术为网关节点设置第一切面,第一切面可以对网关节点发送HTTP请求的事件进行Hook(Hook是一种系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行Hook后,一旦发生已Hook事件,对该事件进行Hook的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应),其可以为在网关节点向服务端应用节点发送HTTP请求时,在网关节点原有的业务逻辑代码中织入的程序代码,该程序代码用于在HTTP请求中添加网关节点签名生成加签HTTP请求,使加签HTTP请求被发送至服务端应用节点,由此,无需对网关节点原有业务逻辑代码进行变更,使网关节点对增加的防篡改措施无感。
具体而言,网关节点可以向服务端应用节点发送原始HTTP请求,第一切面可以在网关节点向服务端应用节点发送原始HTTP请求时,拦截原始HTTP请求,在原始HTTP请求中添加网关节点签名,生成第二HTTP请求,使第二HTTP请求被发送至服务端应用节点。
相关技术中,网关节点获得原始HTTP请求后,原有的业务处理逻辑是,将原始HTTP请求发送给目标链路中的服务端应用节点。在本实施例中,为网关节点设置第一切面后,网关节点原有的业务处理逻辑不变,依然是向服务端应用节点发送原始HTTP请求,不过,在网关节点向服务端应用节点发送原始HTTP请求时,第一切面会拦截该原始HTTP请求,在原始HTTP请求中添加网关节点签名,生成第二HTTP请求,即,第一切面在网关节点向服务端应用节点发送原始HTTP请求的过程中,将原始HTTP请求变更为添加了网关节点签名的第二HTTP请求,由此,使得网关节点最终发送至服务端应用节点的请求实际是添加了网关节点签名的第二HTTP请求,网关节点到服务端应用节点之间HTTP请求链路中的HTTP请求实际为添加了网关节点签名的第二HTTP请求。由此,能够在网关节点不变更原有业务逻辑代码的条件下,对网关节点以后的HTTP请求链路进行无感防篡改,保证该请求链路中HTTP请求的安全性和一致性。
其中,第一切面在原始HTTP请求中添加网关节点签名,生成第二HTTP请求的具体处理可以包括前述处理一~三,在此不再赘述。
实施例二
与上述通过第一切面在网关节点发送的HTTP请求中添加网关节点签名相对应的,可以为服务端应用节点设置第二切面,通过第二切面对服务端应用节点接收的第二HTTP请求中的网关节点签名进行验证,使服务端应用节点接收到验证后得到的原始HTTP,由此,无需服务端应用节点自身的业务逻辑代码进行更改,使服务端应用节点对增加的防篡改措施无感。
请参考图3,为本申请另一实施例提供的HTTP请求处理方法的流程示意图,该HTTP请求处理方法可应用于图1所示的场景中,其执行主体可为目标链路中的服务端应用节点,其中,服务端应用节点上设置有第二切面,第二切面可以对服务端应用节点接收HTTP请求的事件进行HOOK,其可以为在服务端应用接收网关节点发送的第二HTTP请求时,在服务端应用节点原有的业务逻辑代码中织入的程序代码,该程序代码用于对第二HTTP请求中的网关节点签名进行验证,使验签后得到的原始HTTP请求被服务端应用节点接收到。目标链路为HTTP请求链路中网关节点以后的HTTP请求链路。如图3所示,本实施例提供的HTTP请求处理方法可以包括下述处理:
S202,接收网关节点发送的第二HTTP请求,其中,在接收网关节点发送的第二HTTP请求时,第二切面拦截第二HTTP请求,对第二HTTP请求中的网关节点签名进行验证,在验证通过后,得到原始HTTP请求,使原始HTTP请求被服务端应用节点接收到。
具体而言,相关技术中,服务端应用节点原有的业务处理逻辑是,接收到网关节点发送的原始HTTP请求,对原始HTTP请求进行处理,得到原始HTTP请求的响应。在本实施例中,为服务端应用节点设置第二切面后,服务端应用节点原有的业务处理逻辑不变,依然是接收到服务端发送的原始HTTP请求,对原始HTTP请求进行处理,不过,网关节点发送过来的HTTP请求实际为在原始HTTP请求中添加了网关节点签名的第二HTTP请求,在服务端应用节点接收网关节点发送过来的第二HTTP请求时,第二切面会拦截第二HTTP请求,对第二HTTP请求中的客户端节点签名进行验证,在验证通过后,得到原始HTTP请求,即第二切面在服务端应用节点接收网关节点发送的HTTP请求的过程中,将接收的第二HTTP请求变更为去除了网关节点签名的原始HTTP请求,由此,使得服务端应用节点接收到的请求仍为原始HTTP请求,服务端应用节点可以继续使用本身原有的业务处理逻辑对原始HTTP请求进行处理来得到响应,无需服务端应用节点对原有的业务处理逻辑代码进行更改,由此,可以使服务端应用节点对增加的防篡改措施无感。
其中,与在原始请求中添加网关节点签名相对应的,第二切面对第二HTTP请求中的网关节点签名进行验证,具体可以包括下述处理:
处理四,从第二HTTP请求的指定位置获取客户端节点签名。
其中,在网关节点侧,在原始HTTP请求的指定位置添加客户端节点签名生成第二HTTP请求。相应地,在服务端应用节点侧,可以获取指定位置,从第二HTTP请求的指定位置获取客户端签名。其中,指定位置可以为网关节点和服务端应用节点共同约定的位置,例如,报文头中的指定位置。
处理五,使用网关节点公钥对客户端节点签名进行解密,得到第二报文摘要。
其中,在网关节点侧,使用网关节点私钥对第二报文摘要进行加密生成客户端签名。相应地,在服务端应用节点侧,获取与该网关节点私钥成密钥对的网关节点公钥,使用网关节点公钥对客户端节点签名进行解密,得到第二报文摘要。其中,可以获取生成客户端签名时采用的加密算法,根据网关节点公钥以及该加密算法对客户端签名进行解密。
处理六,根据第二预设摘要算法从第二HTTP请求中提取比对摘要。
其中,在网关节点侧,根据第二预设摘要算法从原始HTTP请求报文中提取第二报文摘要。相应地,在服务端应用节点侧,可以获取生成第二报文摘要时采用的第二预设摘要算法,根据第二预设摘要算法从第二HTTP请求中提取比对摘要。
处理七,检测比对摘要与第二报文摘要是否一致,如果是,则确定验证通过,得到原始HTTP请求。
其中,如果比对摘要与第二报文摘要一致,说明服务端应用节点接收的HTTP请求和网关节点发送的HTTP请求的请求参数一致,网关节点到服务端应用节点的HTTP请求链路中的HTTP请求没有被篡改过,则确定验证通过。在验证通过后,可以从第二HTTP请求中去除网关节点签名,得到原始HTTP请求。如果比对摘要与第二报文摘要不一致,说明服务端应用节点接收的HTTP请求和网关节点发送的HTTP请求的请求参数不一致,网关节点到服务算应用节点的HTTP请求链路中的HTTP请求被篡改过,则确定验证不通过,此时,可以不对网关节点发送的HTTP请求进行处理和响应,即可以不进行后续处理S204、S206。
S204,对原始HTTP请求进行处理,得到原始HTTP请求的响应。
其中,服务端应用节点可以沿用本身原有的HTTP请求处理,对原始HTTP请求进行处理,得到原始HTTP请求的响应。
S206,将原始HTTP请求的响应返回给网关节点。
其中,服务端应用节点可以沿用本身原有的HTTP请求处理,将该响应返回给网关节点。
进一步地,网关节点在接收到服务端应用节点的响应后,可以进而将该响应返回给客户端应用节点,由此,完成对客户端应用节点发送的HTTP请求的响应。
通过在服务端应用节点上设置第二切面,能够使网关节点无需更改自身原有的业务处理逻辑,进行无感防篡改。
实施例三
上述实施例提供的HTTP请求处理方法的应用场景为图1所示的场景,在图1所示的场景中,包括一个服务端应用节点,该服务端应用节点通过自身处理即可得到HTTP请求的响应。在一些场景中,如图4所示,网关节点以后的HTTP请求链路中,包括多个服务端应用节点。服务端应用节点对HTTP请求进行处理时,需要调用其他服务端应用节点,根据其他服务端应用节点的响应来生成HTTP请求的响应。例如,对于微服务架构中的应用服务节点,应用服务A在处理HTTP请求A时,需要向应用服务B发送HTTP请求B,根据应用服务B返回的HTTP请求B的响应生成HTTP请求A的响应。
本申请实施例提供一种HTTP请求处理方法,可应用于图4所示的场景中,其执行主体可为图4所示的场景中的任意一个服务端应用节点,每个服务端应用节点上设置有第一切面和第二切面。第一切面可以对服务端应用节点发送HTTP请求的事件进行Hook,其可以为在其所属的当前节点向下一节点发送HTTP请求时,在当前节点的业务逻辑代码中织入的程序代码,该程序代码用于在该HTTP请求中添加当前节点签名,生成加签HTTP请求,使加签HTTP请求被发送至下一节点。第二切面可以对服务端应用节点接收HTTP请求的事件进行Hook,其可以为在其所属的当前节点接收上一节点发送的加签HTTP请求时,在当前节点的业务逻辑代码至织入的程序代码,用于对接收的加签HTTP请求中的上一节点签名进行验证,在验证通过后,得到未加签HTTP请求,使未加签HTTP请求被当前节点接收到。
相关技术中,在服务端应用节点原本的业务处理逻辑中,由当前节点接收上一节点发送的未加签HTTP请求,对接收的未加签HTTP请求进行处理,生成待发送给下一节点的下一未加签HTTP请求,将下一未加签HTTP请求发送至下一节点,由下一节点对下一未加签HTTP请求进行处理。通过为每个服务端应用节点添加第一切面和第二切面,由第一切面和第二切面对HTTP请求进行加签和验签,能够在服务端应用节点的原有业务处理逻辑代码不改动的条件下,为服务端应用节点之间的每段HTTP请求链路增加请求防篡改措施,实现HTTP全链路防篡改。
请参考图5,为本申请又一实施例提供的HTTP请求处理方法的流程示意图,该HTTP请求处理方法可应用于图4所示的场景中,其执行主体可为目标链路中的任一服务端应用节点,每个服务端应用节点设置有第一切面和第二切面。如图5所示,本实施例提供的HTTP请求处理方法可以包括下述处理:
S302:接收上一节点发送的第一加签HTTP请求,其中,在接收上一节点发送的第一加签HTTP请求时,当前节点的第二切面拦截第一加签HTTP请求,对第一加签HTTP请求中的上一节点签名进行验证,在验证通过后,得到第一未加签HTTP请求,使得第一未加签HTTP请求被当前节点接收到。
其中,第一加签HTTP请求为添加了上一节点签名的HTTP请求,第一未加签HTTP请求为从第一加签HTTP请求中去除了上一节点签名的HTTP请求。在当前节点接收上一节点发送的第一加签HTTP请求的过程中,当前节点的第二切面将第一加签HTTP请求变更为了第一未加签HTTP请求,使得当前节点实际接收到的HTTP请求为第一未加签HTTP请求。
在一种实现方式中,当前节点为HTTP请求链路中的第一个服务端应用节点,即网关节点的下一服务端应用节点,上一节点为网关节点,第一加签HTTP请求可以为网关节点发送至当前节点的、添加了网关节点签名的请求,如前述实施例中的第二HTTP请求,第一未加签HTTP请求可以为从第一加签HTTP请求中去除了网关节点签名的请求,如前述实施例中的原始HTTP请求。第二切面对第一加签HTTP请求进行验证来生成第一未加签HTTP请求的具体处理,可以参见前述实施例。
在一种实现方式中,当前节点为目标链路中的任意一个服务端应用节点,上一节点为目标链路中当前节点的上一服务端应用节点/网关节点,下一节点为目标链路中当前节点的下一服务端应用节点。第二切面对第一加签HTTP请求进行验证,在验证通过后,得到第一未加签HTTP请求,具体可以包括下述处理:根据上一节点标识获取上一节点公钥、上一节点摘要算法、上一节点加密算法以及上一节点签名的添加位置;根据所述上一节点公钥匙、上一节点摘要算法、上一节点加密算法以及上一节点签名的添加位置对所述上一节点签名进行进行验证。
其中,上一节点公钥、上一节点摘要算法、上一节点加密算法以及上一节点签名的添加位置为在第一未加签HTTP请求中添加上一节点签名生成第一加签HTTP请求时所采用的信息。因此,作为该过程的反过程,可以根据上一节点公钥匙、上一节点摘要算法、上一节点加密算法以及上一节点签名的添加位置对第一加签HTTP请求中的上一节点签名进行进行验证。例如,可以根据上一节点签名的添加位置,从第一加签HTTP请求中获取上一节点签名,根据上一节点公钥加密算法和上一节点公钥对上一节点签名进行解密,得到第一报文摘要,根据上一节点摘要算法从第一加签HTTP请求中提取比对摘要,检测比对摘要和上一节点摘要是否一致,若一致,则确定验证通过。
处理三,在验证通过后,根据第一加签HTTP请求生成第一未加签HTTP请求。
其中,可以从所述第一加签HTTP请求中删除所述上一节点签名,得到所述第一未加签HTTP请求。
S304:对第一未加签HTTP请求进行处理。
其中,当前节点可以沿用当前节点本身原有的HTTP请求处理对第一未加签HTTP请求进行处理。
如果当前节点不需要进一步根据其他节点的处理结果生成响应,其自身能够生成第一未加签HTTP的响应,即当前节点为HTTP请求链路中的最后一个节点,则此次HTTP请求链路结束。当前节点可以将第一未加签HTTP请求的响应返回给上一节点,使上一节点根据该响应生成待发送给其上一节点的响应,并将响应发送给其上一节点,直到生成客户端应用节点请求的响应并将该响应返回给客户端应用节点。
如果当前节点不是HTTP请求链路中的最后一个节点,其需要根据下一服务端应用节点对当前节点的请求响应生成当前节点对上一请求节点的响应,当前节点可以根据第一未加签HTTP请求进一步生成第二未加签HTTP请求,第二未加签HTTP请求为待发送给当前节点的下一节点的HTTP请求,该请求中未添加当前节点签名。
S306:在根据第一未加签HTTP请求生成第二未加签HTTP请求时,向下一节点发送第二未加签HTTP请求,其中,在向下一节点发送第二未加签HTTP请求时,当前节点的第一切面拦截第二未加签HTTP请求,在第二未加签HTTP请求中添加当前节点签名,生成第二加签HTTP请求,使第二加签HTTP请求被发送至下一节点。
其中,第二未加签HTTP请求为未添加当前节点签名的HTTP请求,第二加签HTTP请求为在第二未加签HTTP请求中添加了当前节点签名的HTTP请求,在当前节点向下一节点发送第二未加签HTTP请求的过程中,当前节点的第一切面将第二未加签HTTP请求变更为第二加签HTTP请求,使得第二加签HTTP请求被发送至下一节点。
在一种实现方式中,第一切面在第二未加签HTTP请求中添加当前节点签名,生成第二加签HTTP请求,具体可以包括下述处理:根据当前节点标识获取当前节点私钥、当前节点摘要算法、当前节点加密算法以及当前节点签名的添加位置;根据当前节点私钥、当前节点摘要算法以及当前节点加密算法生成当前节点签名;根据当前节点签名的添加位置在所述第二未加签HTTP请求中添加当前节点签名,生成所述第二加签HTTP请求。
其中,可以根据当前节点摘要算法从第二未加签HTTP请求中提取第二报文摘要,根据当前节点私钥以及当前节点加密算法,对第二报文摘要进行加密,生成当前节点签名。
可以理解的是,当前节点摘要算法可以与上一节点摘要算法相同,也可以与上一节点摘要算法不同;当前节点加密算法可以与上一节点加密算法相同,也可以与上一节点加密算法不同;当前节点签名的指定位置可以与上一节点签名的指定位置相同,也可以与上一节点签名的指定位置不同。
在一种实现方式中,当前节点摘要算法与上一节点摘要算法、当前节点加密算法与上一节点节点加密算法、当前节点签名的指定位置与上一节点签名的指定位置均相同,由此,可以简化加签和验签处理,提高处理效率。
在一种实现方式中,当前节点摘要算法与上一节点摘要算法、当前节点加密算法与上一节点节点加密算法、当前节点签名的指定位置与上一节点签名的指定位置,至少有一者不同,由此,能够为目标链路的相邻节点之间HTTP请求链路提供个性化的加签、验签算法,使得HTTP请求链路中,不同段HTTP请求链路的加签、验签处理方法不同,由此,能够进一步提高HTTP请求全链路的防篡改能力,保证HTTP请求的安全性和一致性。
在一种实现方式中,在每次加签时,都根据当前节点的节点标识动态获取当前节点摘要算法、当前节点加密算法以及当前节点签名的指定位置,根据动态获取的当前节点摘要算法、当前节点加密算法以及当前节点签名的指定位置生成加签HTTP请求。其中,可以对不同节点的摘要算法、加密算法以及节点签名的指定位置进行统一管理,并进行动态更新,以防止泄露,使根据当前节点的节点标识动态获取的当前节点摘要算法、当前节点加密算法以及当前节点签名的指定位置随时间的变化而产生变化,由此,进一步提高防篡改能力。
实施例四
与本申请提供的应用于网关节点的HTTP请求处理方法相对应地,本申请实施例还提供一种HTTP请求处理设备。图6是本申请实施例提供的HTTP请求处理设备的结构示意图,如图6所示,该HTTP请求处理设备包括:网关节点300,其中,网关节点300包括:
接收模块310,用于接收客户端应用节点的第一HTTP请求,其中,所述第一HTTP请求为在原始HTTP请求中添加了客户端节点签名的HTTP请求;
验证模块320,用于对所述第一HTTP请求中的客户端节点签名进行验证,在验证通过后,得到所述原始HTTP请求;
发送模块330,用于将第二HTTP请求发送至服务端应用节点,其中,所述第二HTTP请求为在所述原始HTTP请求中添加了网关节点签名的HTTP请求。
进一步地,所述验证模块320,具体包括:
获取单元,用于获取客户端节点公钥和第一预设摘要算法,其中,所述客户端节点签名根据所述客户端节点公钥对应的客户端节点私钥和所述第一预设摘要算法得到;
解密单元,用于使用所述客户端节点公钥对所述客户端节点签名进行解密,得到第一报文摘要,所述第一报文摘要由所述客户端应用节点根据所述原始HTTP请求报文和所述第一预设摘要算法生成;
生成单元,用于根据所述第一HTTP请求和所述第一预设摘要算法生成比对摘要;
检测单元,用于检测所述比对摘要与所述第一报文摘要是否一致,若一致,则确定验证通过。
可选地,所述网关节点300上设置有第一切面410,所述发送模块330,包括:
发送单元,用于向所述服务端应用节点发送所述原始HTTP请求,其中,在向所述服务端应用节点发送所述原始HTTP请求时,所述第一切面410拦截所述原始HTTP请求,在所述原始HTTP请求添加网关节点签名,生成所述第二HTTP请求,使所述第二HTTP请求被发送至所述服务端应用节点。
进一步地,所述第一切面410,包括:
摘要生成单元,用于根据第二预设摘要算法从所述原始HTTP请求中提取第二报文摘要;
加密单元,用于使用网关节点私钥对所述第二报文摘要进行加密,得到网关节点签名;
添加单元,用于将所述网关节点签名添加到所述原始HTTP请求的指定位置,得到所述第二HTTP请求。
可选地,所述摘要生成单元进一步用于从所述原始HTTP请求报文中获取请求参数,按照指定顺序对所述请求参数进行排序,根据排序后的请求参数生成所述第二报文摘要。
进一步地,所述第一切面410,还包括:
密钥获取单元,用于在使用所述网关节点私钥前,根据网关节点标识从远端钥匙托管平台获取所述网关节点私钥;
密钥销毁单元,用于在使用所述网关节点私钥后,销毁所述网关节点私钥。
需要说明的是,本申请实施例提供的HTTP请求处理设备与本申请实施例提供的用于网关设备的HTTP请求处理方法基于同一发明构思,因此该实施例的具体实施可以参见前述对应的用于网关节点的HTTP请求处理方法的实施,重复之处不再赘述。
实施例五
与本申请提供的应用于服务端应用节点的HTTP请求处理方法相对应地,本申请实施例还提供一种HTTP请求处理设备。图7是本申请实施例提供的HTTP请求处理设备的结构示意图,如图7所示,该HTTP请求处理设备包括:服务端应用节点500,以及第二切面420,其中,服务端应用节点500包括:
接收模块510,用于接收上一节点发送的第一加签HTTP请求,其中,在接收上一节点发送的第一加签HTTP请求时,第二切面420拦截所述第一加签HTTP请求,对所述第一加签HTTP请求中的上一节点签名进行验证,在验证通过后,得到第一未加签HTTP请求,使所述第一未加签HTTP请求被当前节点接收到,其中,所述第一未加签HTTP请求为从所述第一加签HTTP请求中去除了上一节点签名的HTTP请求;
处理模块520,用于对所述第一未加签HTTP请求进行处理;
返回模块530,用于在得到所述第一未加签HTTP请求的响应时,将所述响应返回给上一节点。
可选地,所述处理模块520,包括:
第一响应生成单元,用于根据所述第一未加签HTT请求生成所述第一未加签HTTP请求的响应。
可选地,所述处理模块520,包括;
请求生成单元,用于根据所述第一未加签HTTP请求生成待发送给下一节点的第二未加签HTTP请求;
请求发送单元,向下一节点发送所述第二未加签HTTP请求,其中,在向下一节点发送所述第二未加签HTTP请求时,当前节点的第一切面拦截所述第二未加签HTTP请求,在所述第二未加签HTTP请求中添加当前节点签名,生成第二加签HTTP请求,使所述第二加签HTTP请求被发送至下一节点;
第二响应生成单元,用于根据下一节点返回的响应生成所述第一未加签HTTP请求的响应。
进一步地,所述第二切面,包括:
第一加签信息获取单元,用于根据上一节点标识获取生成所述上一节点签名所采用的上一节点公钥、上一节点摘要算法、上一节点加密算法以及上一节点签名的添加位置;
签名验证单元,用于根据所述上一节点公钥匙、上一节点摘要算法、上一节点加密算法以及上一节点签名的添加位置对所述上一节点签名进行进行验证;
去签单元,用于在验证通过后,从所述第一加签HTTP请求中删除所述上一节点签名,得到所述第一未加签HTTP请求。
进一步地,所述HTTP请求处理设备,还包括第一切面,所述第一切面设置于所述服务端应用节点上,包括:
第二加签信息获取单元,用于根据当前节点标识获取当前节点私钥、当前节点摘要算法、当前节点加密算法以及当前节点签名的添加位置;
签名生成单元,用于根据当前节点私钥、当前节点摘要算法以及当前节点加密算法生成当前节点签名;
加签单元,根据当前节点签名的添加位置在所述第二未加签HTTP请求中添加当前节点签名,生成所述第二加签HTTP请求。
可选地,所述当前节点摘要算法与上一节点摘要算法、所述当前节点加密算法与上一节点加密算法、所述当前节点签名的添加位置与上一节点签名的添加位置,至少有一项不同,其中,所述上一节点根据所述上一节点摘要算法、上一节点加密算法、上一节点签名的添加位置生成所述第一加签HTTP请求。
需要说明的是,本申请实施例提供的HTTP请求处理设备与本申请实施例提供的用于服务端应用节点的HTTP请求处理方法基于同一发明构思,因此该实施例的具体实施可以参见前述对应的用于服务端应用节点的HTTP请求处理方法的实施,重复之处不再赘述。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书的实施例是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程欺诈案例的串并设备的处理器以产生一个机器,使得通过计算机或其他可编程欺诈案例的串并设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程欺诈案例的串并设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程欺诈案例的串并设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (15)
1.一种HTTP请求处理方法,应用于目标链路中的网关节点,所述方法包括:
接收客户端应用节点发送的第一HTTP请求,其中,所述第一HTTP请求为在原始HTTP请求中添加了客户端节点签名的HTTP请求;
对所述第一HTTP请求中的客户端节点签名进行验证,在验证通过后,得到所述原始HTTP请求;
将第二HTTP请求发送至目标链路中的服务端应用节点,其中,所述第二HTTP请求为在所述原始HTTP请求中添加了网关节点签名的HTTP请求。
2.根据权利要求1所述的HTTP请求处理方法,所述对所述第一HTTP请求中的客户端节点签名进行验证,包括:
获取客户端节点公钥和第一预设摘要算法,其中,所述客户端节点签名根据所述客户端节点公钥对应的客户端节点私钥和所述第一预设摘要算法生成;
使用所述客户端节点公钥对所述客户端节点签名进行解密,得到第一报文摘要,其中,所述第一报文摘要由所述客户端应用节点根据所述原始HTTP请求报文和所述第一预设摘要算法生成;
根据所述第一HTTP请求和所述第一预设摘要算法生成比对摘要;
检测所述比对摘要与所述第一报文摘要是否一致,若一致,则确定验证通过。
3.根据权利要求1所述的HTTP请求处理方法,所述网关节点上设置有第一切面,所述将第二HTTP请求发送至服务端应用节点,包括:
向所述服务端应用节点发送所述原始HTTP请求,其中,在向所述服务端应用节点发送所述原始HTTP请求时,所述第一切面拦截所述原始HTTP请求,在所述原始HTTP请求添加网关节点签名,生成所述第二HTTP请求,使所述第二HTTP请求被发送至所述服务端应用节点。
4.根据权利要求3所述的HTTP请求处理方法,其中,所述在所述原始HTTP请求添加网关节点签名,生成所述第二HTTP请求,包括:
根据第二预设摘要算法从所述原始HTTP请求中提取第二报文摘要;
使用网关节点私钥对所述第二报文摘要进行加密,得到网关节点签名;
将所述网关节点签名添加到所述原始HTTP请求的指定位置,得到所述第二HTTP请求。
5.根据权利要求4所述的HTTP请求处理方法,其中,所述根据第二预设摘要算法从所述原始HTTP请求中提取第二报文摘要包括:
根据所述第二预设摘要算法从所述原始HTTP请求报文中获取请求参数,按照指定顺序对所述请求参数进行排序,根据排序后的请求参数生成所述第二报文摘要。
6.根据权利要求4所述的HTTP请求处理方法,所述所述在所述原始HTTP请求添加网关节点签名,生成所述第二HTTP请求,还包括:
在使用所述网关节点私钥前,根据网关节点标识从远端钥匙托管平台获取所述网关节点私钥;
在使用所述网关节点私钥后,销毁所述网关节点私钥。
7.一种HTTP请求处理方法,应用于目标链路中的服务端应用节点,所述服务端应用节点上设置有第二切面,所述方法包括:
接收上一节点发送的第一加签HTTP请求,其中,在接收上一节点发送的第一加签HTTP请求时,当前节点的第二切面拦截所述第一加签HTTP请求,对所述第一加签HTTP请求中的上一节点签名进行验证,在验证通过后,得到第一未加签HTTP请求,使所述第一未加签HTTP请求被当前节点接收到,其中,所述第一未加签HTTP请求为从所述第一加签HTTP请求中去除了上一节点签名的HTTP请求;
对所述第一未加签HTTP请求进行处理;
在得到所述第一未加签HTTP请求的响应时,将所述响应返回给上一节点。
8.根据权利要求7所述的HTTP请求处理方法,所述对所述第一未加签HTTP请求进行处理,包括:
根据所述第一未加签HTTP请求生成所述第一未加签HTTP请求的响应。
9.根据权利要求7所述的HTTP请求处理方法,其中,所述服务端应用节点上还设置有第一切面,所述对所述第一未加签HTTP请求进行处理,包括:
根据所述第一未加签HTTP请求生成待发送给下一节点的第二未加签HTTP请求;
向下一节点发送所述第二未加签HTTP请求,其中,在向下一节点发送所述第二未加签HTTP请求时,当前节点的第一切面拦截所述第二未加签HTTP请求,在所述第二未加签HTTP请求中添加当前节点签名,生成第二加签HTTP请求,使所述第二加签HTTP请求被发送至下一节点;
根据下一节点返回的响应生成所述第一未加签HTTP请求的响应。
10.根据权利要求7所述的HTTP请求处理方法,所述第二切面对所述第一加签HTTP请求中的上一节点签名进行验证,在验证通过后,得到第一未加签HTTP请求,包括:
根据上一节点标识获取生成上一节点公钥、上一节点摘要算法、上一节点加密算法以及上一节点签名的添加位置,其中,所述上一节点根据所述上一节点摘要算法、上一节点加密算法、上一节点签名的添加位置生成所述第一加签HTTP请求;
根据所述上一节点公钥、上一节点摘要算法、上一节点加密算法以及上一节点签名的添加位置对所述第一加签HTTP请求中的上一节点签名进行进行验证;
在验证通过后,从所述第一加签HTTP请求中删除所述上一节点签名,得到所述第一未加签HTTP请求。
11.根据权利要求9所述的HTTP请求处理方法,所述第一切面在所述第二未加签HTTP请求中添加当前节点签名,生成第二加签HTTP请求,包括:
根据当前节点标识获取当前节点私钥、当前节点摘要算法、当前节点加密算法以及当前节点签名的添加位置;
根据当前节点私钥、当前节点摘要算法以及当前节点加密算法生成当前节点签名;
根据当前节点签名的添加位置在所述第二未加签HTTP请求中添加当前节点签名,生成所述第二加签HTTP请求。
12.根据权利要求11所述的HTTP请求处理方法,其中,所述当前节点摘要算法与上一节点摘要算法、所述当前节点加密算法与上一节点加密算法、所述当前节点签名的添加位置与上一节点签名的添加位置,至少有一项不同,其中,所述第一加签HTTP请求根据所述上一节点摘要算法、上一节点加密算法、上一节点签名的添加位置生成。
13.一种HTTP请求处理设备,包括:网关节点,所述网关节点包括:
接收模块,用于接收客户端应用节点的第一HTTP请求,其中,所述第一HTTP请求为在原始HTTP请求中添加了客户端节点签名的HTTP请求;
验证模块,用于对所述第一HTTP请求中的客户端节点签名进行验证,在验证通过后,得到所述原始HTTP请求;
发送模块,用于将第二HTTP请求发送至服务端应用节点,其中,所述第二HTTP请求为在所述原始HTTP请求中添加了网关节点签名的HTTP请求。
14.根据权利要求13所述的HTTP请求处理设备,所述设备还包括:第一切面,设置于所述网关节点上;
所述发送模块,还用于向所述服务端应用节点发送所述原始HTTP请求;
所述第一切面,用于在向所述服务端应用节点发送所述原始HTTP请求时,拦截所述原始HTTP请求,在所述原始HTTP请求中添加网关节点签名,生成所述第二HTTP请求,使所述第二HTTP请求被发送至所述服务端应用节点。
15.一种HTTP请求处理设备,包括服务端应用节点,第二切面,所述第二切面设置于所述服务端应用节点上,所述服务端应用节点包括:
接收模块,用于接收上一节点发送的第一加签HTTP请求,其中,在接收上一节点发送的第一加签HTTP请求时,当前节点的第二切面拦截所述第一加签HTTP请求,对所述第一加签HTTP请求中的上一节点签名进行验证,在验证通过后,得到第一未加签HTTP请求,使所述第一未加签HTTP请求被当前节点接收到,其中,所述第一未加签HTTP请求为从所述第一加签HTTP请求中去除了上一节点签名的HTTP请求;
处理模块,用于对所述第一未加签HTTP请求进行处理;
返回模块,用于在得到所述第一未加签HTTP请求的响应时,将所述响应返回给上一节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310678623.3A CN116582279A (zh) | 2023-06-08 | 2023-06-08 | 一种http请求处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310678623.3A CN116582279A (zh) | 2023-06-08 | 2023-06-08 | 一种http请求处理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116582279A true CN116582279A (zh) | 2023-08-11 |
Family
ID=87535855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310678623.3A Pending CN116582279A (zh) | 2023-06-08 | 2023-06-08 | 一种http请求处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116582279A (zh) |
-
2023
- 2023-06-08 CN CN202310678623.3A patent/CN116582279A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2728524C1 (ru) | Способ и устройство консенсусной верификации | |
KR102231411B1 (ko) | 서비스 데이터 프로세싱 및 검증을 위한 방법, 장치, 및 시스템 | |
US11288371B2 (en) | Blockchain-based data processing method, apparatus, and device | |
US10834289B2 (en) | Detection of steganography on the perimeter | |
CN112560019B (zh) | 一种区块链数据的处理方法、装置及设备 | |
CN107092824B (zh) | 一种应用程序的运行方法及装置 | |
CN112016924A (zh) | 一种基于区块链的数据存证方法、装置以及设备 | |
CN111737304B (zh) | 一种区块链数据的处理方法、装置及设备 | |
CN111814196A (zh) | 一种数据处理方法、装置及设备 | |
CN110995410A (zh) | 一种公钥和私钥的生成方法、装置、设备以及介质 | |
CN112182506A (zh) | 一种数据的合规检测方法、装置及设备 | |
TW202203054A (zh) | 資訊驗證方法、裝置及設備 | |
CN113239853A (zh) | 一种基于隐私保护的生物识别方法、装置及设备 | |
US20200117795A1 (en) | System and method for generating and authenticating a trusted polymorphic and distributed unique hardware identifier | |
CN116167044A (zh) | 一种应用容器的创建方法、装置及设备 | |
CN112100689B (zh) | 一种可信数据处理方法、装置及设备 | |
CN110602051B (zh) | 基于共识协议的信息处理方法及相关装置 | |
CN112182509A (zh) | 一种合规数据的异常检测方法、装置及设备 | |
CN116582279A (zh) | 一种http请求处理方法及设备 | |
CN107026841B (zh) | 在网络中发布作品的方法和装置 | |
CN115081017A (zh) | 一种大字段数据调用方法和系统 | |
CN113761496A (zh) | 一种基于区块链的身份校验方法及装置和电子设备 | |
CN112311551A (zh) | 保护可证明的资源所有权 | |
CN117113437B (zh) | 一种文件篡改检测方法、装置、计算机设备及存储介质 | |
CN114301710B (zh) | 确定报文是否被篡改的方法、密管平台和密管系统 |
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 |