CN111614458A - 网关jwt的生成方法、系统及存储介质 - Google Patents
网关jwt的生成方法、系统及存储介质 Download PDFInfo
- Publication number
- CN111614458A CN111614458A CN202010462232.4A CN202010462232A CN111614458A CN 111614458 A CN111614458 A CN 111614458A CN 202010462232 A CN202010462232 A CN 202010462232A CN 111614458 A CN111614458 A CN 111614458A
- Authority
- CN
- China
- Prior art keywords
- jwt
- information
- gateway
- user
- payload
- 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
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000007246 mechanism Effects 0.000 claims abstract description 75
- 239000003999 initiator Substances 0.000 claims description 38
- 230000008520 organization Effects 0.000 claims description 28
- 238000012795 verification Methods 0.000 claims description 15
- 239000000126 substance Substances 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 229920003169 water-soluble polymer Polymers 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 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
- 230000002028 premature Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及数据安全技术领域,提出一种网关JWT的生成方法、系统及存储介质,通过利用ECDSA生产JWT,并使用AES加密,杜绝用户隐私泄露的隐患;通过按照机构失效、按照用户ID失效以及按照JWT ID失效等多种失效方式,解决JWT在有效期内不能失效的问题。本发明通过网关JWT的生成方法实现了网关管理安全性的提升。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种网关JWT的生成方法、系统及存储介质。
背景技术
JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息,因为该信息是数字签名,因此可以被验证和信任。
目前JWT被广泛的用于手机端APP个后端服务器的会话保持、信息交换等功能。JwtBearer认证是一种标准的,安全的,通用的,无状态的,可扩展的用户认证方式与语言无关的认证方式。
JWT存储在客户端,而服务端仅通过判断JWT是否还在有效期来校验JWT的有效性;现有的JWT存在的弊端如下:
1、因为base64编码是可逆的,当base64编码被截取后,可以通过解析该JWT并提取所在Token中的用户信息;因此,JWT中用户信息仅适用base64编码,存在用户信息泄露点的风险;
2、当存储在当客户端的JWT被删除后,因为删除的JWT仍在有效期内,带来安全隐患;也就是说,当机构失效,用户失效时,用户的提前注销无法对已颁发给该机构用户的JWT做实时失效处理。
所以,亟需一种安全,有效地针对有效期内的JWT的失效方法。
发明内容
本发明提供一种网关JWT的生成方法、系统及计算机可读存储介质,其主要通过利用ECDSA(Elliptic Curve Digital Signature Algorithm)生产JWT,并使用AES加密,杜绝用户隐私泄露的隐患;通过按照机构失效、按照用户ID失效以及按照JWT ID失效等多种失效方式,解决JWT在有效期内不能失效的问题。
为实现上述目的,本发明还提供一种网关JWT的生成方法,应用于电子装置,所述JWT的生成方法包括:
生成JWT的JWT头部和有效荷载;
其中,所述JWT头部包括token的签名算法信息;
所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;
利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;
将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构。
进一步,优选的,所述将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构之后,还包括网关机构对访问请求发起者的JWT进行有效性校验;其中,网关机构对所述JWT进行有效性校验的方法包括:
通过实时读取所述JWT中的机构信息,并判断所述机构信息中的机构是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
将JWT的ID与无效列表中缓存的失效JWT ID进行比对,判断所述JWT的ID是否失效,若是则拒绝该次请求;若否,则继续访问。
进一步,优选的,所述机构信息存储在JWT的有效荷载中,并从BICS系统获取。
进一步,优选的,在通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效的方法包括:
判断所述JWT中的用户ID的签名信息与JWT信息内的签名是否一致;
若是,则JWT中的用户ID信息校验成功;
若否,则JWT中的用户ID信息校验不成功,拒绝该次请求。
进一步,优选的,在所述网关机构对所述JWT进行校验之前,还包括网关机构对访问请求发起者的API访问权限的校验;所述API访问权限的校验方法包括:
判断请求发起者的API是否在网关管理中心配置的API白名单中;
若否,则判断访问请求发起者不具备API访问权限;
若是,则判断访问请求发起者的API是否配置网关管理中心的用户访问的API策略;
若是,则访问请求发起者具备API访问权限;若否,则访问请求发起者不具备API访问权限。
为实现上述目的,本发明还提供一种网关JWT的安全验证系统,包括JWT生成单元、JWT有效性校验单元和API访问权限校验单元;其中,
JWT生成单元,用于生成JWT的JWT头部和有效荷载,其中,所述JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构;
JWT有效性校验单元,用于通过读取所生成的JWT中的机构信息、用户的ID以及JWTID,并判断机构信息、用户的ID以及JWT ID是否失效;
API访问权限校验单元,用于判断请求发起者的API是否在网关管理中心配置的API白名单中;若否,则判断访问请求发起者不具备API访问权限;若是,则判断访问请求发起者的API是否配置网关管理中心的用户访问的API策略;若是,则访问请求发起者具备API访问权限;若否,则访问请求发起者不具备API访问权限。
进一步,优选的,
所述JWT生成单元包括JWT头部和JWT有效荷载生成模块、JWT签名信息生成模块和JWT组装模块;其中,
所述JWT头部和JWT有效荷载生成模块,用于生成JWT的JWT头部和JWT有效荷载,
其中,所述JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;
所述JWT签名信息生成模块,用于利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;
所述JWT组装模块,用于将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构。
进一步,优选的,
JWT有效性校验单元包括机构信息校验模块、用户的ID信息校验模块和JWT ID信息校验模块;其中,
所述机构信息校验模块,用于通过实时读取所述JWT中的机构信息,并判断所述机构信息中的机构是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
所述用户的ID信息校验模块,用于通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
所述JWT ID信息校验模块,用于将JWT的ID与无效列表中缓存的失效JWT ID进行比对,判断所述JWT的ID是否失效,若是则拒绝该次请求;若否,则继续访问。
为实现上述目的,本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述网关JWT的生成方法的步骤。此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括网关JWT的安全验证程序,所述网关JWT的安全验证程序被处理器执行时,实现上述的网关JWT的安全验证方法的步骤。
本发明提出的网关JWT的生成方法、系统及计算机可读存储介质,通过AES加密以及ECDSA私钥签名生成JWT;网关在每一个服务请求时都要分别经过机构有效性判断、用户ID有效性判断以及JWT ID有效性判断,避免了数据被非法访问的风险;有益效果如下:
(1)、通过利用ECDSA生产JWT,并使用AES加密,杜绝用户隐私泄露的隐患;
(2)、针对JWT在有效期内不能失效的问题,使用JWT通过加密方式按照机构失效、按照用户ID失效以及按照JWT ID失效等多种失效方式,对JWT安全验证更加灵活精细,降低系统被非法访问,数据被非法访问的风险;
(3)、同时屏蔽失效机构,失效用户对后端服务的请求,避免服务被非法调用,达到保护后端服务稳定可靠的目的;
(4)、各家机构的ECDSA的公私钥都不同,当机构合作期满失效时,该机构的公私钥和所有该机构的JWT随即实时失效,不影响其他机构的合法访问,避免了公私钥泄露导致的安全问题。
附图说明
图1为本发明的JWT生成方法较佳实施例的流程图;
图2为本发明的网关JWT的安全验证系统的较佳实施例的结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一种网关JWT的生成方法,通过利用ECDSA生产JWT,并使用AES加密,杜绝用户隐私泄露的隐患;通过按照机构失效、按照用户ID失效以及按照JWT ID失效等多种失效方式,解决JWT在有效期内不能失效的问题。
为了提高网关JWT安全验证的安全性,本发明提供一种网关JWT的生成方法。图1示出了根据本发明JWT生成方法较佳实施例的流程。参照图1所示,该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
需要说明的是,根据登录请求获取客户端的登录信息;对登录信息加密,得到身份安全令牌JWT的签名;根据签名、荷载数据和加密登录信息时的加密算法生成JWT;根据登录请求获取登录信息,登录信息包括客户端的用户名、登录密码以及客户端的公钥以及JWT的有效期限。加密头部和荷载数据后得到的JWT的签名部分,根据签名部分、登录信息和加密所述登录信息时使用的加密算法生成JWT。
具体地说,所述JWT的生成方法包括,步骤S110-步骤S130。
S110、生成JWT的JWT头部和有效荷载;
其中,JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成。
另外,JWT头部还包括加密方式信息和加密类型信息。
JWT头包括token的类型(“JWT”)和算法名称;用Base64对这个JSON编码就得到JWT的头部分;Bearer验证属于HTTP协议标准验证。
需要说明的是,为了验证使用者的身份,需要客户端向服务器端提供一个可靠的验证信息,称为Token,这个token通常由Json数据格式组成,通过hash散列算法生成一个字符串,所以称为Json Web Token(Json表示令牌的原始值是一个Json格式的数据,web表示是在互联网传播的,token表示令牌,简称JWT)。
JWT令牌是一个自包含的访问令牌-它是一个带有声明和过期的受保护数据结构。一旦API了解了密钥材料,它就可以验证自包含的令牌,而无需与发行者进行通信。这使得JWT难以撤销。它们将一直有效,直到它们过期。
JWT常被用于前后端分离,可以和Restful API(资源端)配合使用,常用于构建身份认证机制,一个JWT实际上就是一个字符串,它包含了使用.分隔的三部分:Header头部Payload负载Signature签名(格式:Header.Payload.Signature);在这个三个部分中最关键的就是signature。signature:被用来确认JWT信息的发送者是谁,并保证信息没有被篡改,使用header中指定的算法将编码后的header、编码后的payload、一个secret进行加密。因此签名算法推荐使用RSA或ECDSA非对称加密算法。
具体地说,JWT就是一个字符串,经过加密处理与校验处理的字符串,形式为:A.B.C;
A:header头部,由JWT头部信息header加密得到,主要为token使用的签名算法加密方式,类型。
B:payload荷载,由JWT用到的身份验证信息json数据对称加密密文,JWTID,用户ID,失效时间,机构等组成的json字符串经base64后得到。
C:签名,由A和B加密得到,是校验部分。:使用保存在服务端的秘钥对其签名,用来验证发送者的JWT的同时也能确保在期间不被篡改。在一个Controller的方法中生成jwttoken,一般在用户登陆验证方法中,如果用户登陆验证成功,就返回一个token。
在一个具体的实施例中,签名部分signature
SHA256withECDSA(A+“.”+B,privateKey),privateKey是签名私钥。签名的目的是用来验证头部和载荷是否被非法篡改。验签过程描述:获取token值,读取A部分并Base64解码,得到签名算法。读取B中机构信息,在数据库找到机构对应的公钥。通过公钥验证C段的签名是否正确,若验证失败,说明是JWT是非法的。
将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密,生成JWT的有效荷载。具体地说,使用AES加密算法构造一个密钥,具有128位和256位密钥的AES密钥包(“A128KW”和“A256KW”)还支持使用椭圆曲线Diffie-Hellman临时静态(ECDH-ES)来同意用于包装内容加密密钥(“ECDH-ES+A128KW”和“ECDH-ES+A256KW”)的密钥。
其中,有效荷载包含声明(要求);声明是关于实体(通常是用户)和其他数据的声明。声明有三种类型:registered,public和private。
Registered claims:这里有一组预定义的声明,它们不是强制的,但是推荐。比如:iss(issuer),exp(expiration time),sub(subject),aud(audience)等。Publicclaims:可以随意定义。Private claims:用于在同意使用它们的各方之间共享信息,并且不是注册的或公开的声明。Token中荷载信息携带了机构信息,在网关收入请求时,从BICS系统获取该机构的有效性,如果无效,则拒绝该次请求。对payload进行Base64编码就得到JWT的第二部分。
需要说明的是,在JWT的payload或header中不能放置敏感信息,除非它们是加密的。
S120、利用JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息。
ECDSA的全名是Elliptic Curve DSA,即椭圆曲线DSA。它是Digital SignatureAlgorithm(DSA)应用了椭圆曲线加密算法的变种。椭圆曲线算法的原理很复杂,但是具有很好的公开密钥算法特性,通过公钥无法逆向获得私钥。它不能用作加密,只用作数字签名。DSA使用公开密钥,为接受者验证数据的完整性和数据发送者的身份。它也可用于由第三方去确定签名和所签数据的真实性。
其中,客户端的公钥在客户端向服务端发送登录请求之前通过算法生成,再利用同样的算法生成私钥。
编码过的头,编码过的有效荷载和一个私钥;利用JWT的头指定的算法对其进行签名;
签名适用于验证消息在传递过程有没有被更改,并且,对于使用私钥签名的token,还可以验证JWT的发送方的是否为它所称的发送方。
其中,需要说明的是,公钥失效,相当于对原始公钥做替换操作,将原始公钥替换为新的公钥。公私钥失效和机构有效性一致,都是对机构失效的一种方法,还有公钥失效还能在机构的公私钥泄露后,通过失效原始公私钥来解决。
具体地说,用户ID有效性,JWT ID有效性是针对单个用户的,机构有效性是针对机构的,而机构与用户的关系是包含关系,属于1对多。
S130、将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构。
将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构之后,还包括网关机构对访问请求发起者的JWT进行有效性校验;其中,网关机构对所述JWT进行有效性校验的方法包括:
S210、通过实时读取所述JWT中的机构信息,并判断所述机构信息中的机构是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
S220、通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
S230、将JWT的ID与无效列表中缓存的失效JWT ID进行比对,判断所述JWT的ID是否失效,若是则拒绝该次请求;若否,则继续访问。
在一个具体的实施例中,所述机构信息存储在JWT的有效荷载中,并从BICS系统获取。换句话说,TOKEN中荷载信息携带了机构信息,在网关收入请求时,从BICS系统获取该机构的有效性,如果无效,则拒绝该次请求。
在所述步骤S220中通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效的方法包括:判断所述JWT中的用户ID的签名信息与JWT信息内的签名是否一致;若是,则JWT中的用户ID信息校验成功;若否,则JWT中的用户ID信息校验不成功,拒绝该次请求;其中,需要说明的是,JWT中的用户ID的签名信息的获取过程为:从JWT的有效荷载中解析出用户的ID;根据用户ID获取密钥;根据用户ID和密钥,生成签名信息。
在一个具体地实施例中,网关对JWT的安全验证过程如下:S10、首次登陆系统时,利用密钥加密用户ID,形成JWT信息的步骤;首次登录系统获得用户名和密码;S11、利用API对用户名和密码进行校验,判断用户名和密码是否正确;若否,则发出无法登陆的通知;若是,则采用通用通用密钥或者转悠密钥加密用户ID,对用户ID进行签名形成JWT信息;S12、发起附带JWT信息的HTTP访问请求;S13、判断JWT信息是否校验成功;若校验不成功,则拒绝API访问请求;若校验成功,则校验访问请求发起者是否具备API访问权限;若不具备API访问权限,则拒绝API访问请求;若具备API访问权限,则继续访问。
在一个具体的实施例中,在网关机构对JWT进行校验之前,网关机构对访问请求发起者的API访问权限的校验,所述API访问权限的校验方法包括:判断请求发起者的API是否在网关管理中心配置的API白名单中;若否,则判断访问请求发起者不具备API访问权限;若是,则判断访问请求发起者的API是否配置网关管理中心的用户访问的API策略;若是,则访问请求发起者具备API访问权限;若否,则访问请求发起者不具备API访问权限。
具体地说,在验证了JWT信息之后,需要校验API访问权限,网关管理中心允许所有用户都能访问API白名单中的API列表;若在白名单中,可以访问API,但是,进一步的根据网关管理中心是否配置了该用户的访问API的策略,判断该用户是否能继续访问该API;若果配置了不允许该用户访问API的策略,则同样拒绝访问。
需要说明的是,在实际环境中应该使用加密的token,而不应该使用临时令牌。以及尽量设置token的过期时间短,以及刷新token的机制,这样可以尽可能的保护token以及数据安全。
综上所述,JWT中含有用户ID及其机构信息,网关系统在处理携带该JWT的请求时,会优先检查JWT中的用户ID或者机构在系统的状态,当用户机构失效时,或者用户被禁用时,该请求被拒绝。
图2为本发明的网关JWT的安全验证系统的较佳实施例的结构;参照图2所示,
一种网关JWT的安全验证系统200,包括JWT生成单元210、JWT有效性校验单元220和API访问权限校验单元230;其中,
JWT生成单元210,用于生成JWT的JWT头部和有效荷载,其中,所述JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构;
JWT有效性校验单元220,用于通过读取所生成的JWT中的机构信息、用户的ID以及JWT ID,并判断机构信息、用户的ID以及JWT ID是否失效;
API访问权限校验单元230,用于判断请求发起者的API是否在网关管理中心配置的API白名单中;若否,则判断访问请求发起者不具备API访问权限;若是,则判断访问请求发起者的API是否配置网关管理中心的用户访问的API策略;若是,则访问请求发起者具备API访问权限;若否,则访问请求发起者不具备API访问权限。
进一步,优选的,所述JWT生成单元210包括JWT头部和JWT有效荷载生成模块211、JWT签名信息生成模块212和JWT组装模块213;其中,
所述JWT头部和JWT有效荷载生成模块211,用于生成JWT的JWT头部和JWT有效荷载,
其中,所述JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;
所述JWT签名信息生成模块212,用于利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;
所述JWT组装模块213,用于将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构。
进一步,优选的,JWT有效性校验单元220包括机构信息校验模块221、用户的ID信息校验模块222和JWT ID信息校验模块223;其中,
机构信息校验模块221,用于通过实时读取所述JWT中机构信息,判断所述JWT中的机构是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断。
用户的ID信息校验模块222,用于通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断。
JWT ID信息校验模块223,用于将JWT的ID与无效列表中缓存的失效JWT ID进行比对,判断所述JWT的ID是否失效,若是则拒绝该次请求;若否,则继续访问。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:生成JWT的JWT头部和有效荷载;其中,所述JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构。
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:网关机构对访问请求发起者的JWT进行有效性校验;其中,网关机构对所述JWT进行有效性校验的方法包括:通过实时读取所述JWT中的机构信息,并判断所述机构信息中的机构是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;将JWT的ID与无效列表中缓存的失效JWT ID进行比对,判断所述JWT的ID是否失效,若是则拒绝该次请求;若否,则继续访问。
在一个实施例中,通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效的方法包括:判断所述JWT中的用户ID的签名信息与JWT信息内的签名是否一致;若是,则JWT中的用户ID信息校验成功;若否,则JWT中的用户ID信息校验不成功,拒绝该次请求。
此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质中包括网关JWT的安全验证程序,所述网关JWT的安全验证程序被处理器执行时实现如网关JWT的生成方法的操作。
本发明之计算机可读存储介质的具体实施方式与上述网关JWT的生成方法、系统具体实施方式大致相同,在此不再赘述。
总的来说,本发明网关JWT的生成方法、系统及计算机可读存储介质通过针对JWT在有效期内不能失效的问题,使用JWT通过加密方式按照机构失效、按照用户ID失效以及按照JWT ID失效等多种失效方式,对JWT管理更加灵活精细,降低系统被非法访问,数据被非法访问的风险;同时屏蔽失效机构,失效用户对后端服务的请求,避免服务被非法调用,达到保护后端服务稳定可靠的目的;当机构合作期满失效时,该机构的公私钥和所有该机构的JWT随即实时失效,不影响其他机构的合法访问,避免了公私钥泄露导致的安全问题。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种网关JWT的生成方法,应用于电子装置,其特征在于,所述JWT的生成方法包括:
生成JWT的JWT头部和有效荷载;其中,所述JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;
利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;
将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构。
2.根据权利要求1所述的网关JWT的生成方法,其特征在于,所述将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构之后,还包括:
网关机构对访问请求发起者的JWT进行有效性校验;其中,网关机构对所述JWT进行有效性校验的方法包括:
通过实时读取所述JWT中的机构信息,并判断所述机构信息中的机构是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
将JWT的ID与无效列表中缓存的失效JWT ID进行比对,判断所述JWT的ID是否失效,若是则拒绝该次请求;若否,则继续访问。
3.根据权利要求2所述的网关JWT的生成方法,其特征在于,
所述机构信息存储在JWT的有效荷载中,并从BICS系统获取。
4.根据权利要求2所述的网关JWT的生成方法,其特征在于,
在通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效的方法包括:
判断所述JWT中的用户ID的签名信息与JWT信息内的签名是否一致;
若是,则JWT中的用户ID信息校验成功;
若否,则JWT中的用户ID信息校验不成功,拒绝该次请求。
5.根据权利要求2所述的网关JWT的生成方法,其特征在于,在所述网关机构对所述JWT进行校验之前,还包括网关机构对访问请求发起者的API访问权限的校验;所述API访问权限的校验方法包括:
判断请求发起者的API是否在网关管理中心配置的API白名单中;
若否,则判断访问请求发起者不具备API访问权限;
若是,则判断访问请求发起者的API是否配置网关管理中心的用户访问的API策略;
若是,则访问请求发起者具备API访问权限;若否,则访问请求发起者不具备API访问权限。
6.一种网关JWT的管理系统,其特征在于,包括JWT生成单元、JWT有效性校验单元和API访问权限校验单元;其中,
JWT生成单元,用于生成JWT的JWT头部和有效荷载,其中,所述JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构;
JWT有效性校验单元,用于通过读取所生成的JWT中的机构信息、用户的ID以及JWT ID,并判断机构信息、用户的ID以及JWT ID是否失效;
API访问权限校验单元,用于判断请求发起者的API是否在网关管理中心配置的API白名单中;若否,则判断访问请求发起者不具备API访问权限;若是,则判断访问请求发起者的API是否配置网关管理中心的用户访问的API策略;若是,则访问请求发起者具备API访问权限;若否,则访问请求发起者不具备API访问权限。
7.根据权利要求6所述的网关JWT的安全验证系统,其特征在于,
所述JWT生成单元包括JWT头部和JWT有效荷载生成模块、JWT签名信息生成模块和JWT组装模块;其中,
所述JWT头部和JWT有效荷载生成模块,用于生成JWT的JWT头部和JWT有效荷载,
其中,所述JWT头部包括token的签名算法信息;所述有效荷载通过将机构编码、用户ID、JWT ID、TOKEN的颁发时间以及默认失效时间信息使用AES加密生成;
所述JWT签名信息生成模块,用于利用所述JWT头部的token的签名算法对ECDSA私钥和JWT的有效荷载进行签名,生成JWT的签名信息;
所述JWT组装模块,用于将JWT头部、JWT的有效荷载以及JWT的签名组装成JWT,将组装的JWT返回给网关机构。
8.根据权利要求6所述的网关JWT的安全验证系统,其特征在于,JWT有效性校验单元包括机构信息校验模块、用户的ID信息校验模块和JWT ID信息校验模块;其中,
所述机构信息校验模块,用于通过实时读取所述JWT中的机构信息,并判断所述机构信息中的机构是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
所述用户的ID信息校验模块,用于通过第三方接口定时读取用户的ID,判断所述JWT中的用户ID是否失效,若是,拒绝该次请求,若否,则继续进行有效性判断;
所述JWT ID信息校验模块,用于将JWT的ID与无效列表中缓存的失效JWT ID进行比对,判断所述JWT的ID是否失效,若是则拒绝该次请求;若否,则继续访问。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项权利要求所述网关JWT的生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括网关JWT的安全验证程序,所述网关JWT的安全验证程序被处理器执行时,实现如权利要求1至5中任一项所述的网关JWT的生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010462232.4A CN111614458A (zh) | 2020-05-27 | 2020-05-27 | 网关jwt的生成方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010462232.4A CN111614458A (zh) | 2020-05-27 | 2020-05-27 | 网关jwt的生成方法、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111614458A true CN111614458A (zh) | 2020-09-01 |
Family
ID=72196058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010462232.4A Pending CN111614458A (zh) | 2020-05-27 | 2020-05-27 | 网关jwt的生成方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614458A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112260993A (zh) * | 2020-09-18 | 2021-01-22 | 冠群信息技术(南京)有限公司 | 一种电子证照库第三方Token令牌验证的方法 |
CN112532599A (zh) * | 2020-11-19 | 2021-03-19 | 北京信安世纪科技股份有限公司 | 一种动态鉴权方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756448A (zh) * | 2017-11-02 | 2019-05-14 | 广东亿迅科技有限公司 | 基于微服务的api网关安全管理方法及其系统 |
US20190306157A1 (en) * | 2018-03-30 | 2019-10-03 | Lendingclub Corporation | Authenticating and authorizing users with jwt and tokenization |
CN111147525A (zh) * | 2020-02-27 | 2020-05-12 | 深圳市伊欧乐科技有限公司 | 基于api网关的认证方法、系统、服务器和存储介质 |
-
2020
- 2020-05-27 CN CN202010462232.4A patent/CN111614458A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756448A (zh) * | 2017-11-02 | 2019-05-14 | 广东亿迅科技有限公司 | 基于微服务的api网关安全管理方法及其系统 |
US20190306157A1 (en) * | 2018-03-30 | 2019-10-03 | Lendingclub Corporation | Authenticating and authorizing users with jwt and tokenization |
CN111147525A (zh) * | 2020-02-27 | 2020-05-12 | 深圳市伊欧乐科技有限公司 | 基于api网关的认证方法、系统、服务器和存储介质 |
Non-Patent Citations (1)
Title |
---|
王玉;宁可新;朱蕾蕾;: "基于TLS和JWT远程救助系统安全的API", 吉林大学学报(信息科学版), no. 06, 15 November 2017 (2017-11-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112260993A (zh) * | 2020-09-18 | 2021-01-22 | 冠群信息技术(南京)有限公司 | 一种电子证照库第三方Token令牌验证的方法 |
CN112260993B (zh) * | 2020-09-18 | 2023-08-15 | 冠群信息技术(南京)有限公司 | 一种电子证照库第三方Token令牌验证的方法 |
CN112532599A (zh) * | 2020-11-19 | 2021-03-19 | 北京信安世纪科技股份有限公司 | 一种动态鉴权方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588649B2 (en) | Methods and systems for PKI-based authentication | |
US8219808B2 (en) | Session-based public key infrastructure | |
US8245030B2 (en) | Method for authenticating online transactions using a browser | |
US8196186B2 (en) | Security architecture for peer-to-peer storage system | |
US8499339B2 (en) | Authenticating and communicating verifiable authorization between disparate network domains | |
CN111901346B (zh) | 一种身份认证系统 | |
CN106453361B (zh) | 一种网络信息的安全保护方法及系统 | |
CN108259406B (zh) | 检验ssl证书的方法和系统 | |
US20090055642A1 (en) | Method, system and computer program for protecting user credentials against security attacks | |
JP2011515961A (ja) | クライアント側証明書認証情報の認証保存方法と認証保存システム | |
US10579809B2 (en) | National identification number based authentication and content delivery | |
CN112765626A (zh) | 基于托管密钥授权签名方法、装置、系统及存储介质 | |
WO2010115607A1 (en) | Secure data system | |
CN111614458A (zh) | 网关jwt的生成方法、系统及存储介质 | |
CN110035035B (zh) | 一种单点登录的二次认证方法及系统 | |
KR20090054774A (ko) | 분산 네트워크 환경에서의 통합 보안 관리 방법 | |
Polleit et al. | Defeating the secrets of otp apps | |
CN115459929B (zh) | 安全验证方法、装置、电子设备、系统、介质和产品 | |
WO2023071429A1 (zh) | Api认证鉴权的方法、系统、运行控制装置及存储介质 | |
Deeptha et al. | Extending OpenID connect towards mission critical applications | |
Farrell et al. | HTTP Origin-Bound Authentication (HOBA) | |
CN111628867A (zh) | 一种身份管理方法、装置及相关组件 | |
KR20240075095A (ko) | 토큰 프로세스 기반 블록체인을 이용한 제로 트러스트 네트워크의 인증 시스템 및 인증 방법 | |
CN116389095A (zh) | 一种云平台混合身份认证方法及系统 | |
Sakimura et al. | OpenID Connect Messages 1.0-draft 09 |
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 |