CN114070610A - Api网关鉴权方法、网关设备及可读存储介质 - Google Patents
Api网关鉴权方法、网关设备及可读存储介质 Download PDFInfo
- Publication number
- CN114070610A CN114070610A CN202111344353.XA CN202111344353A CN114070610A CN 114070610 A CN114070610 A CN 114070610A CN 202111344353 A CN202111344353 A CN 202111344353A CN 114070610 A CN114070610 A CN 114070610A
- Authority
- CN
- China
- Prior art keywords
- sign
- client
- encryption
- content
- api gateway
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013507 mapping Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 230000001172 regenerating effect Effects 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000005336 cracking Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
Images
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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种API网关鉴权方法、网关设备及可读存储介质,所述API网关鉴权方法包括:将客户端生成的第一签名以及生成第一签名所使用的部分数据发送到网关服务器,网关服务器根据接收到的数据再生成第二签名并与第一签名进行比对,再根据比对结果判断该请求是否有权限通过网关,其中将请求体BODY加入到第一签名的生成中,避免访问请求内容发生篡改后无法识别的问题;同时生成签名(SIGN)使用的数据APPKEY不参与数据传输过程,直接储存在客户端和网关服务端上,防止关键信息泄露;而且网关服务对请求时间设置了上限以及对请求签名进行查重,可以避免服务器遭受重复访问。
Description
技术领域
本发明涉及计算机、API网关和单向加密领域,尤其涉及一种API网关鉴权方法、网关设备及可读存储介质。
背景技术
API网关(API Gateway)是随着计算机软件服务架构变化而兴起的一种架构模式,可以解决微服务过于分散,无法统一管理的问题。对于服务数量众多、复杂度比较高、规模比较大的业务来说,引入API网关可以方便实现一系列功能如:鉴权、限流、熔断、降级等。在API网关处实现了统一的鉴权,目前主流的实现方式cookie-session、JWT等。其中JWT鉴权方式将部分用户信息放置于明文信息中,容易产生信息泄漏,且报文被截取后可以被伪造,使得服务器遭受恶意重复访问,同时无法验证报文内容是否被篡改,因此在目前所使用主流网关鉴权方案中存在网关被突破的安全风险。
发明内容
本发明的主要目的在于提供一种API网关鉴权方法,旨在解决目前在API网关处实现统一鉴权所使用的主流方案中存在网关被突破的安全风险的技术问题。
为实现上述目的,本发明提供一种API网关鉴权方法,所述API网关鉴权方法包括:
接收客户端发送的请求所携带的第一SIGN,所述第一SIGN由客户端根据第一加密因子组经单向加密运算生成,其中,第一加密因子组的加密因子包括:客户端当前时间戳、客户端APPID、客户端APPKEY和客户端请求体BODY;
接收客户端发送的第二加密因子组,所述第二加密因子组由第一加密因子组去除加密因子客户端APPKEY得到;
根据所述第二加密因子组中的加密因子客户端APPID查找得到对应的APPKEY,并将得到的APPKEY作为加密因子加入第二加密因子组得到第三加密因子组;
将所述第三加密因子组经单向加密运算生成第二SIGN;
判断第一SIGN的内容与第二SIGN的内容是否一致;
若第一SIGN的内容与第二SIGN的内容不一致,则拒绝接收到的请求;
若第一SIGN的内容与第二SIGN的内容一致,则同意接收到的请求。
进一步的,所述第一加密因子组、所述第二加密因子组和所述第三加密因子组均还包括加密因子客户端随机生成的预设长度字符组。
进一步的,所述API网关鉴权方法还包括:
在所述第一加密因子组单向加密之前,使用混淆字符以预设顺序链接成字符串并对所述字符串进行加密运算;
在所述第三加密因子组单向加密之前,使用混淆字符以预设顺序链接成字符串并对所述字符串进行加密运算。
进一步的,所述判断第一SIGN的内容与第二SIGN的内容是否一致的步骤之前,包括:
判断接收到的第一SIGN的内容是否与历史第一SIGN的内容一致;
若接收到的第一SIGN的内容与历史第一SIGN的内容一致,则拒绝接收到的请求;
若接收到的第一SIGN的内容与历史第一SIGN的内容不一致,则执行所述判断第一SIGN与第二SIGN是否一致的步骤。
进一步的,所述判断判断第一SIGN的内容与第二SIGN的内容是否一致还包括:
将接收到的生成第一SIGN所使用的时间戳与当前时间做比较,若当前时间与接收到的生成第一SIGN所使用的时间戳的差值大于预设差值,则认为第一SIGN的内容与第二SIGN的内容不一致。
进一步的,所述根据所述第二加密因子组中的加密因子客户端APPID查找得到对应的APPKEY包括:
根据加密因子客户端APPID查找映射表得到对应的客户端APPKEY,所述映射表储存有客户端APPID与客户端APPKEY之间的映射关系且所述映射表储存在API网关上。
进一步的,所述单向加密运算所使用的加密算法为单向MD5签名算法。
此外,为实现上述目的,还提出一种网关设备,所述网关设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的API网关鉴权程序,所述API网关鉴权程序被所述处理器执行时实现如上述的API网关鉴权方法的步骤。
此外,为实现上述目的,还提出一种可读存储介质,所述可读存储介质上存储有的API网关鉴权程序,所述的API网关鉴权程序被处理器执行时实现如上述的API网关鉴权方法的步骤。
本发明实施例提出的一种API网关鉴权方法,通过在将请求体BODY加入到客户端访问请求的签名生成中,避免访问请求内容发生篡改后无法识别的问题;同时客户端在发送加密因子组时将加密因子APPKEY去除,因此与客户端APPID对应的APPKEY不参与数据传输过程,而是直接储存在客户端和服务端上,防止关键信息在传输过程中泄露;而且对请求设置时间参数和对请求签名作出查重处理,可以避免服务器遭受恶意重复的访问。从多个角度降低了网关被恶意访问突破的安全风险。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的网关设备装置结构示意图;
图2为本发明API网关鉴权方法中第一实施例的流程示意图;
图3为本发明API网关鉴权方法中在第一实施例的基础上,针对步骤S10至S70的细化流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:将请求体BODY加入到客户端访问请求的签名生成中,同时与客户端APPID对应的APPKEY不参与数据传输直接储存在客户端和服务端上,而且对请求设置时间参数以及对请求签名作出查重处理。
由于现有技术中网关主流的鉴权方式将部分用户信息放置于明文信息中,容易产生信息泄漏,且报文被截取后可以被伪造,使得服务器遭受恶意重复访问,同时无法验证报文内容是否被篡改。
本发明提供一种解决方案,将请求体BODY加入到客户端访问请求的签名生成中,避免访问请求内容发生篡改后无法识别的问题;同时与客户端APPID对应的APPKEY不参与数据传输直接储存在客户端和服务端上,防止关键信息在传输过程中泄露,而且对请求设置时间参数以及对请求签名作出查重处理,可以避免服务器遭受恶意重复的访问。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的网关设备结构示意图。
本发明实施例终端可以是服务器,也可以是路由器、交换机、PC、便携计算机等具有通讯传输功能的电子设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及的API网关鉴权程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的的API网关鉴权程序,并执行以下操作:
接收客户端发送的请求所携带的第一SIGN,所述第一SIGN由客户端根据第一加密因子组经单向加密运算生成,其中,第一加密因子组的加密因子包括:客户端当前时间戳、客户端APPID、客户端APPKEY和客户端请求体BODY;
接收客户端发送的第二加密因子组,所述第二加密因子组由第一加密因子组去除加密因子客户端APPKEY得到;
根据所述第二加密因子组中的加密因子客户端APPID查找得到对应的APPKEY,并将得到的APPKEY作为加密因子加入第二加密因子组得到第三加密因子组;
将所述第三加密因子组经单向加密运算生成第二SIGN;
判断第一SIGN的内容与第二SIGN的内容是否一致;
若第一SIGN的内容与第二SIGN的内容不一致,则拒绝接收到的请求;
若第一SIGN的内容与第二SIGN的内容一致,则同意接收到的请求。
进一步地所述第一加密因子组、所述第二加密因子组和所述第三加密因子组均还包括加密因子客户端随机生成的预设长度字符组。
进一步地,处理器1001可以调用存储器1005中存储的API网关鉴权程序,还执行以下操作:
所述API网关鉴权方法还包括:
在所述第一加密因子组单向加密之前,使用混淆字符以预设顺序链接成字符串并对所述字符串进行加密运算;
在所述第三加密因子组单向加密之前,使用混淆字符以预设顺序链接成字符串并对所述字符串进行加密运算。
进一步地,处理器1001可以调用存储器1005中存储的API网关鉴权程序,还执行以下操作:
所述判断第一SIGN的内容与第二SIGN的内容是否一致的步骤之前,包括:
判断接收到的第一SIGN的内容是否与历史第一SIGN的内容一致;
若接收到的第一SIGN的内容与历史第一SIGN的内容一致,则拒绝接收到的请求;
若接收到的第一SIGN的内容与历史第一SIGN的内容不一致,则执行所述判断第一SIGN与第二SIGN是否一致的步骤。
进一步地,处理器1001可以调用存储器1005中存储的API网关鉴权程序,还执行以下操作:
所述判断第一SIGN的内容与第二SIGN的内容是否一致还包括:
将接收到的生成第一SIGN所使用的时间戳与当前时间做比较,若当前时间与接收到的生成第一SIGN所使用的时间戳的差值大于预设差值,则认为第一SIGN的内容与第二SIGN的内容不一致。
进一步地,处理器1001可以调用存储器1005中存储的API网关鉴权程序,还执行以下操作:
所述若第一SIGN的内容与第二SIGN的内容不一致,则拒绝接收到的请求的步骤之后,包括:
将被拒绝的请求的第一SIGN记录到错误日志,通过相应的分析工具输出提示信息。
进一步地,处理器1001可以调用存储器1005中存储的API网关鉴权程序,还执行以下操作:
所述根据所述第二加密因子组中的加密因子客户端APPID查找得到对应的APPKEY包括:
根据加密因子客户端APPID查找映射表得到对应的客户端APPKEY,所述映射表储存有客户端APPID与客户端APPKEY之间的映射关系且所述映射表储存在API网关上。
进一步地,所述单向加密运算所使用的加密算法为单向MD5签名算法。
参照图2,本发明API网关鉴权方法的第一实施例中,所述API网关鉴权方法包括:
步骤S10,接收客户端发送的请求所携带的第一SIGN,所述第一SIGN由客户端根据第一加密因子组经单向加密运算生成,其中,第一加密因子组的加密因子包括:客户端当前时间戳、客户端APPID、客户端APPKEY和客户端请求体BODY;
可以理解的是,本发明的实施主体是API网关设备如:网关服务器、路由器和交换机等能够实现网络数据传输的电子设备,为清楚的描述本实施例的方案,本实施例基于SpringCloud(微服务器框架)Gateway(网关),以API网关服务器为实施主体进行说明,以下简称为网关服务器或者API网关。
作为请求端的客户端在发送访问请求时会携带签名(第一SIGN),第一SIGN是客户端根据第一加密因子组单向加密所生成,且生成的第一SIGN将发送给网关服务器用于验证请求是否可以通过。其中第一加密因子组包含的加密因子有客户端当前时间戳、客户端APPID、客户端APPKEY和客户端请求体BODY,客户端当前时间戳为代表客户端发送请求时刻的字符序列,本实施中的时间戳精确到毫秒位;客户端APPID为客户端应用的唯一标识号;客户端APPKEY为与APPID对应的密码,客户端和网关服务器成对储存APPID和APPKEY;客户端请求体BODY为客户端请求的内容,因此客户端发出的不同请求存在有不同的请求体。其中,对第一加密因子组单向加密运算所使用的加密算法为单向MD5(Message DigestAlgorithm MD5,消息摘要算法)签名算法(本实施例加密生成签名所使用的算法为单向加密方式,此处以单向MD5为例具体单向算法不做限制),因为使用的是单向加密,无法根据生成的SIGN反向得到生成SIGN的加密因子,因此即便截获了SIGN也无法破解得到其中的包含的信息。同时,相比于主流鉴权方式,本实施例将请求体BODY加入到签名的生成中,因此当请求发生改变时生成的签名也将发生改变。
步骤S20,接收客户端发送的第二加密因子组,所述第二加密因子组由第一加密因子组去除加密因子客户端APPKEY得到;
客户端在发送第一SIGN的同时,还将向网关服务器发送第二加密因子组,所述第二加密因子组由生成第一SIGN所使用到的部分加密因子组成,网关服务器接收客户端发送的第二加密因子组,所述第二加密因子组由第一加密因子组去除加密因子客户端APPKEY得到;可以理解是在客户端向网关服务器发送的验证信息中并不包含与客户端APPID对应的客户端APPKEY,因此避免了APPKEY被截获的风险。
步骤S30,根据所述第二加密因子组中的加密因子客户端APPID查找得到对应的APPKEY,并将得到的APPKEY作为加密因子加入第二加密因子组得到第三加密因子组;
当网关服务器接收到客户端发送的第一SIGN的同时还将接收第二加密因子组,就网关服务器而言,第二加密因子组中缺少加密因子客户端APPKEY,因此会根据加密因子客户端APPID查找映射表得到对应的客户端APPKEY,所述映射表储存有客户端APPID与客户端APPKEY之间的映射关系且所述映射表储存在API网关上。可以理解的是,在保证客户端APPID不出错的情况下,查找客户端APPID得到的客户端APPKEY与第一加密因子组中的加密因子客户端APPKEY相同,因此从加密因子上来看第一加密因子组与第三加密因子组两者包含的加密因子相同。
步骤S40,将所述第三加密因子组经加密运算生成第二SIGN;
当网关服务器得到第三加密因子组后,根据第三加密因子组包含的加密因子,使用生成第一SIGN的同样的单向加密算法(单向MD5算法)进行加密运算生成第二SING。可以理解的是客户端和网关服务器所使用的加密算法相同,因此只要使用的加密因子相同,则生成的第一SIGN和第二SIGN也将相同。同时使用的加密算法将不会参与到客户端和网关服务器的信息交互中,因此也将避免加密算法泄露的风险。
步骤S50,判断第一SIGN的内容与第二SIGN的内容是否一致;
客户端和网关服务器所生成签名为一串字符,网关服务器将接收到第一SIGN字符与自己生成的第二SIGN字符进行比较判断是否一致,除了判断两个SIGN字符是否一致外,还将接收到的生成第一SIGN所使用的时间戳与当前时间做比较,若当前时间与接收到的生成第一SIGN所使用的时间戳的差值大于预设差值,则认为第一SIGN的内容与第二SIGN的内容不一致。对超时的请求也同样不能通过网关服务器的校验,以减少服务器的压力。
步骤S60,若第一SIGN的内容与第二SIGN的内容不一致,则拒绝接收到的请求;
将被拒绝的请求的第一SIGN记录到错误日志,通过相应的分析工具输出提示信息。如经过分析得到两个签名不一致的原因是当前时间与时间戳记载额时间相差时间大于预设差值,则输出请求超时的提示信息;若原因是第一SIGN与第二SIGN字符存在区别,则输出客户端请求报文存在被截获篡改的风险,将提示信息反馈给客户端。
步骤S70,若第一SIGN的内容与第二SIGN的内容一致,则同意接收到的请求。
将网关服务器对签名进行验证一致后则表明该客户端请求合法,通过该请求并执行转发接口。
在本实施例中,客户端向网关服务器发送使用预设单向加密算法对客户端的当前时间戳、APPID、APPKEY和请求体BODY加密运算生成第一SIGN,并将第一SIGN发送给网关服务器,同时发送的还有客户端的当前时间戳、APPID和请求体BODY,网关服务器根据APPID在映射表中查找对应的APPKEY,再结合接收到的当前时间戳、APPID和请求体BODY使用同样的单向加密算法生成第二SIGN,将其与接收到的第一SIGN对比校验,比对校验时还将坚持生成第一SIGN的时间戳与服务器接收到第一SIGN的当前时间作比较,两者差值超过预设时间是等同于校验不一致,若一致则认为该请求有权限通过客户端的请求内容,若不一致则认为该请求无权限拒绝客户端的请求内容。在客户端和网关服务器交互的过程中,APPKEY和加密算法将不参与数据的传输,同时使用的加密方式为单向加密而且将请求体BODY参与到签名的加密生成中,使得客户端访问请求的任何数据被篡改都无法通过网关服务器校验,此外本实施例还对访问时间做出限制,当客户端发送请求的时间与网关服务器接收到请求的时间相差过大时,该请求也将无法通过网关服务器的校验,因此本实施例从多个方面减少了网关被恶意访问突破的风险。而且本方案与目前主流API网关鉴权方式相比,也无需在服务器上储存大量的session数据,减少了服务器的压力,提高了鉴权的性能。
进一步的,参照图3,在第一实施例的基础上,针对步骤S10至S70进一步细化,具体对应为步骤S100至S700,步骤S100至S700包括;
步骤S100,接收客户端根据第一加密因子组经单向加密运算生成的第一SIGN,所述第一加密因子组的加密因子包括:客户端当前时间戳、客户端APPID、客户端APPKEY和客户端请求体BODY;
其中,所述第一加密因子组的加密因子还将包括加密因子客户端随机生成的预设长度字符组。即客户端生成第一SIGN时所使用的加密因子可以是客户端当前时间戳、客户端APPID、客户端APPKEY、客户端请求体BODY以及客户端随机生成的预设长度字符组。可以理解的是,在本实施例中如果就同一客户端向网关服务器发送同一访问请求的情况时,加密因子中客户端APPID、客户端APPKEY和客户端请求体BODY等数据都将一致,而对于发生变化的时间戳而言虽然已经精确到毫秒,但是依然可能存在时间戳一样的小概率时间发生,此时会导致客户端向网关服务器发送两个完全相同的签名,为避免此事件的发生,增加随机生成的预设长度字符组作为一个加密因子参与签名的加密生成,进一步降低客户端向网关服务器发送两个完全相同签名事件的发生概率。同时将所述第一加密因子组中的加密因子使用混淆字符(如&、*和#等符号)以预设顺序连接成字符串并对所述字符串进行加密运算生成第一SIGN,增加混淆符号和加密因子的排列顺序后,进一步降低SIGN被破解的风险。
步骤S200,接收客户端发送的第二加密因子组,所述第二加密因子组由第一加密因子组去除加密因子客户端APPKEY得到;
客户端在发送第一SIGN的同时,还将向网关服务器发送第二加密因子组,所述第二加密因子组由生成第一SIGN所使用到的部分加密因子组成,网关服务器接收客户端发送的第二加密因子组,所述第二加密因子组由第一加密因子组去除加密因子客户端APPKEY得到;可以理解是在客户端向网关服务器发送的验证信息中并不包含与客户端APPID对应的客户端APPKEY,因此避免了APPKEY被截获的风险。
其中,所述第二加密因子组的加密因子还将包括加密因子客户端随机生成的预设长度字符组,减少生成相同签名的概率,并进一步降低SIGN被破解的风险。
步骤S300,根据所述第二加密因子组中的加密因子客户端APPID查找得到对应的APPKEY,并将得到的APPKEY作为加密因子加入第二加密因子组得到第三加密因子组;
当网关服务器接收到客户端发送的第一SIGN的同时还将接收第二加密因子组,就网关服务器而言,第二加密因子组中缺少加密因子客户端APPKEY,因此会根据加密因子客户端APPID查找映射表得到对应的客户端APPKEY,所述映射表储存有客户端APPID与客户端APPKEY之间的映射关系且所述映射表储存在API网关上。可以理解的是,在保证客户端APPID不出错的情况下,查找客户端APPID得到的客户端APPKEY与第一加密因子组中的加密因子客户端APPKEY相同,因此从加密因子上来看第一加密因子组与第三加密因子组两者包含的加密因子相同。
其中,所述第三加密因子组的加密因子也将包括加密因子客户端随机生成的预设长度字符组。增加客户端随机生成的预设长度字符组后极大的降低了生成相同签名发生的概率,并进一步的降低SIGN被破解的风险。
步骤S400,将所述第三加密因子组经加密运算生成第二SIGN;
当网关服务器通过签名查重验证后,将得到的第三加密因子组中的加密因子使用混淆字符以预设顺序连接成字符串并对所述字符串进行加密运算,所使用的混淆字符、加密因子排列顺序和单向加密算法与生成第一SIGN相同,因此若该访问请求是正常访问请求,则网关服务器生成的第二SIGN也将与第一SIGN一致。
步骤S501,判断接收到的第一SIGN的内容是否与历史第一SIGN的内容一致;
若接收到的第一SIGN的内容与历史第一SIGN的内容一致,则拒绝接收到的请求;若接收到的第一SIGN的内容与历史第一SIGN的内容不一致,则执行所述判断第一SIGN与第二SIGN是否一致的步骤(步骤S52)。
可以理解的是在第一实施中会对生成第一SIGN的时间戳与当前时间作比较,当时间差值大于预设差值时将其做超时处理,与检验签名不一致结果一样不能通过网关服务器,但在预设时间内网关服务器可能接收到签名相同的访问请求,从签名本身来看访问请求是没有问题的,但由于在本方案中之前的步骤对正常请求已经极大的降低两次生成签名相同发生的概率,因此为避免恶意请求的重放攻击,网关服务器接收到第一SIGN后还将其与预设历史时间内接收的第一SIGN进行内容比较,默认两次或两次以上签名内容相同时的请求为恶意访问与检验签名不一致结果相同同样不能通过网关服务器(若在预设历史时间内没有找到与当前接收的第一SIGN内容一样的签名则执行步骤S502),同时输出提示信息可能存在重放攻击。在本实施例中增加签名的查重后,避免了请求重放攻击,提高本方案的安全性。
步骤S502,若接收到的第一SIGN的内容与历史第一SIGN的内容不一致,则判断第一SIGN的内容与第二SIGN的内容是否一致;
当网关服务没有从预设历史时间内接收到的签名中找到与当前接收到的签名字符一致的签名,则判断第一SIGN与第二SIGN字符是否一致,此外还将接收到的生成第一SIGN所使用的时间戳与当前时间做比较,若当前时间与接收到的生成第一SIGN所使用的时间戳的差值大于预设差值,则认为第一SIGN的内容与第二SIGN的内容不一致。过滤超时请求,从而减少网关服务器的压力。
步骤S600,若第一SIGN的内容与第二SIGN的内容不一致,则拒绝接收到的请求;
将被拒绝的请求的第一SIGN记录到错误日志,通过相应的分析工具输出提示信息。如经过分析得到两个签名不一致的原因是当前时间与时间戳记载额时间相差时间大于预设差值,则输出请求超时的提示信息;若原因是第一SIGN与第二SIGN字符存在区别,则输出客户端请求报文存在被截获篡改的风险;将提示信息反馈给客户端。
步骤S700,若第一SIGN的内容与第二SIGN的内容一致,则同意接收到的请求。
将网关服务器对签名进行验证一致后则表明该客户端请求合法,通过该请求并执行转发接口。
在本实施例中,将客户端随机生成的预设长度字符组作为加密因子加入到加密因子组中,并且所述加密因子使用混淆符号和预设顺序连接成字符串再使用单向加密算法加密生成签名,一方面避免了重复签名生成的可能性,另一方面降低了签名被破解的风险,同时在生成第二SIGN之前将第一SIGN与历史第一SIGN进行比对,对重复签名的访问请求不予通过,避免了请求重放攻击,减少服务器访问压力的同时提高了本方案的安全性。
此外,本发明实施例还提出一种网关设备,所述网关设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的API网关鉴权程序,所述API网关鉴权程序被所述处理器执行时实现如上述的API网关鉴权方法的步骤。
此外,本发明实施例还提出一种可读存储介质,所述可读存储介质上存储有API网关鉴权程序,所述API网关鉴权程序被处理器执行时实现如上述的API网关鉴权方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种API网关鉴权方法,其特征在于,所述API网关鉴权方法包括以下内容:
接收客户端发送的请求所携带的第一SIGN,所述第一SIGN由客户端根据第一加密因子组经单向加密运算生成,其中,第一加密因子组的加密因子包括:客户端当前时间戳、客户端APPID、客户端APPKEY和客户端请求体BODY;
接收客户端发送的第二加密因子组,所述第二加密因子组由第一加密因子组去除加密因子客户端APPKEY得到;
根据所述第二加密因子组中的加密因子客户端APPID查找得到对应的APPKEY,并将得到的APPKEY作为加密因子加入第二加密因子组得到第三加密因子组;
将所述第三加密因子组经单向加密运算生成第二SIGN;
判断第一SIGN的内容与第二SIGN的内容是否一致;
若第一SIGN的内容与第二SIGN的内容不一致,则拒绝接收到的请求;
若第一SIGN的内容与第二SIGN的内容一致,则同意接收到的请求。
2.如权利要求1所述API网关鉴权方法,其特征在于,所述第一加密因子组、所述第二加密因子组和所述第三加密因子组均还包括加密因子客户端随机生成的预设长度字符组。
3.如权利要求2所述API网关鉴权方法,其特征在于,所述API网关鉴权方法还包括:
在所述第一加密因子组单向加密之前,使用混淆字符以预设顺序链接成字符串并对所述字符串进行加密运算;
在所述第三加密因子组单向加密之前,使用混淆字符以预设顺序链接成字符串并对所述字符串进行加密运算。
4.如权利要求3所述API网关鉴权方法,其特征在于,所述判断第一SIGN的内容与第二SIGN的内容是否一致的步骤之前,包括:
判断接收到的第一SIGN的内容是否与历史第一SIGN的内容一致;
若接收到的第一SIGN的内容与历史第一SIGN的内容一致,则拒绝接收到的请求;
若接收到的第一SIGN的内容与历史第一SIGN的内容不一致,则执行所述判断第一SIGN与第二SIGN是否一致的步骤。
5.如权利要求4所述API网关鉴权方法,其特征在于,所述判断第一SIGN的内容与第二SIGN的内容是否一致还包括:
将接收到的生成第一SIGN所使用的时间戳与当前时间做比较,若当前时间与接收到的生成第一SIGN所使用的时间戳的差值大于预设差值,则认为第一SIGN的内容与第二SIGN的内容不一致。
6.如权利要求5所述API网关鉴权方法,其特征在于,所述若第一SIGN的内容与第二SIGN的内容不一致,则拒绝接收到的请求的步骤之后,包括:
将被拒绝的请求的第一SIGN记录到错误日志,通过相应的分析工具输出提示信息。
7.如权利要求6所述API网关鉴权方法,其特征在于,所述根据所述第二加密因子组中的加密因子客户端APPID查找得到对应的APPKEY包括:
根据加密因子客户端APPID查找映射表得到对应的客户端APPKEY,所述映射表储存有客户端APPID与客户端APPKEY之间的映射关系且所述映射表储存在API网关上。
8.如权利要求7所述API网关鉴权方法,其特征在于,所述单向加密运算所使用的加密算法为单向MD5签名算法。
9.一种网关设备,其特征在于,所述网关设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的API网关鉴权程序,所述API网关鉴权程序被所述处理器执行时实现如权利要求1至8中任一项所述的API网关鉴权方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有API网关鉴权程序,所述API网关鉴权程序被处理器执行时实现如权利要求1至8中任一项所述的API网关鉴权方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111344353.XA CN114070610B (zh) | 2021-11-12 | 2021-11-12 | Api网关鉴权方法、网关设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111344353.XA CN114070610B (zh) | 2021-11-12 | 2021-11-12 | Api网关鉴权方法、网关设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114070610A true CN114070610A (zh) | 2022-02-18 |
CN114070610B CN114070610B (zh) | 2024-07-23 |
Family
ID=80271862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111344353.XA Active CN114070610B (zh) | 2021-11-12 | 2021-11-12 | Api网关鉴权方法、网关设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114070610B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117579385A (zh) * | 2024-01-16 | 2024-02-20 | 山东星维九州安全技术有限公司 | 一种快速筛查新型WebShell流量的方法、系统及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404575A (zh) * | 2008-11-06 | 2009-04-08 | 阿里巴巴集团控股有限公司 | 一种更新签名算法的方法和系统 |
CN104461491A (zh) * | 2013-09-24 | 2015-03-25 | 阿里巴巴集团控股有限公司 | 一种Hybrid组件的运行方法和系统 |
US20170302451A1 (en) * | 2014-12-31 | 2017-10-19 | Alibaba Group Holding Limited | Method and device for identifying user identity |
CN109194681A (zh) * | 2018-09-27 | 2019-01-11 | 卓望数码技术(深圳)有限公司 | 一种移动端/服务端移动应用安全认证方法、装置及系统 |
CN109660546A (zh) * | 2018-12-27 | 2019-04-19 | 泰华智慧产业集团股份有限公司 | 基于NetflixZuul的API网关实现鉴权的方法 |
CN111988301A (zh) * | 2020-08-14 | 2020-11-24 | 武汉气吞云梦科技有限公司 | 一种客户端防黑客暴力攻击的安全通讯方法 |
-
2021
- 2021-11-12 CN CN202111344353.XA patent/CN114070610B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404575A (zh) * | 2008-11-06 | 2009-04-08 | 阿里巴巴集团控股有限公司 | 一种更新签名算法的方法和系统 |
CN104461491A (zh) * | 2013-09-24 | 2015-03-25 | 阿里巴巴集团控股有限公司 | 一种Hybrid组件的运行方法和系统 |
US20170302451A1 (en) * | 2014-12-31 | 2017-10-19 | Alibaba Group Holding Limited | Method and device for identifying user identity |
CN109194681A (zh) * | 2018-09-27 | 2019-01-11 | 卓望数码技术(深圳)有限公司 | 一种移动端/服务端移动应用安全认证方法、装置及系统 |
CN109660546A (zh) * | 2018-12-27 | 2019-04-19 | 泰华智慧产业集团股份有限公司 | 基于NetflixZuul的API网关实现鉴权的方法 |
CN111988301A (zh) * | 2020-08-14 | 2020-11-24 | 武汉气吞云梦科技有限公司 | 一种客户端防黑客暴力攻击的安全通讯方法 |
Non-Patent Citations (2)
Title |
---|
严静;: "基于旁路技术的单点登录系统设计与实现", 计算机应用, no. 1 * |
严静;: "基于旁路技术的单点登录系统设计与实现", 计算机应用, no. 1, 30 June 2011 (2011-06-30) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117579385A (zh) * | 2024-01-16 | 2024-02-20 | 山东星维九州安全技术有限公司 | 一种快速筛查新型WebShell流量的方法、系统及设备 |
CN117579385B (zh) * | 2024-01-16 | 2024-03-19 | 山东星维九州安全技术有限公司 | 一种快速筛查新型WebShell流量的方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114070610B (zh) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113676336B (zh) | 微服务访问代理方法、设备及存储介质 | |
CN112596802B (zh) | 一种信息处理方法及装置 | |
CN109639661B (zh) | 服务器证书更新方法、装置、设备及计算机可读存储介质 | |
CN106330850B (zh) | 一种基于生物特征的安全校验方法及客户端、服务器 | |
US8763101B2 (en) | Multi-factor authentication using a unique identification header (UIDH) | |
CN109688098B (zh) | 数据的安全通信方法、装置、设备及计算机可读存储介质 | |
CN112217835B (zh) | 报文数据的处理方法、装置、服务器和终端设备 | |
CN109472166A (zh) | 一种电子签章方法、装置、设备及介质 | |
CN111666564B (zh) | 应用程序安全启动方法、装置、计算机设备和存储介质 | |
CN106790156B (zh) | 一种智能设备绑定方法及装置 | |
CN111444500A (zh) | 鉴权方法、装置、设备及可读存储介质 | |
CN113794734A (zh) | 车载can总线加密通信方法、控制装置和可读存储介质 | |
CN112632573B (zh) | 智能合约执行方法、装置、系统、存储介质及电子设备 | |
CN113225324B (zh) | 区块链匿名账户创建方法、系统、设备及存储介质 | |
CN110717156A (zh) | 身份验证方法、系统、计算机设备和存储介质 | |
CN111988275A (zh) | 一种单点登录方法、单点登录服务器集群及电子设备 | |
CN114338212A (zh) | 身份验证令牌管理方法、装置、电子设备及可读存储介质 | |
CN112231309A (zh) | 纵向联邦数据统计的去重方法、装置、终端设备及介质 | |
CN111460524A (zh) | 数据完整性的检测方法、设备及计算机可读存储介质 | |
CN107548542B (zh) | 经强化完整性及安全性的用户认证方法 | |
CN114070610A (zh) | Api网关鉴权方法、网关设备及可读存储介质 | |
CN113946862A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN112214270B (zh) | 一种页面重绘方法、装置、设备及存储介质 | |
CN110830264B (zh) | 业务数据验证方法、服务器、客户端及可读存储介质 | |
CN112351043A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |