CN111541542B - 请求的发送和验证方法、装置及设备 - Google Patents
请求的发送和验证方法、装置及设备 Download PDFInfo
- Publication number
- CN111541542B CN111541542B CN201911420524.5A CN201911420524A CN111541542B CN 111541542 B CN111541542 B CN 111541542B CN 201911420524 A CN201911420524 A CN 201911420524A CN 111541542 B CN111541542 B CN 111541542B
- Authority
- CN
- China
- Prior art keywords
- request
- token
- signature
- api
- 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.)
- Active
Links
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/321—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 a third party or a trusted authority
- H04L9/3213—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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/3226—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 using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- 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/3234—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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种请求的发送和验证方法、装置及设备,属于互联网安全技术领域,所述方法包括:获取令牌和动态签名秘钥;生成随机串和请求参数串;根据令牌、动态签名密钥、随机串和请求参数串,生成第一签名;生成API请求;发送所述API请求。本申请实施例提供的技术方案中,在保证了第一签名与API请求中的请求信息相对应的同时,使得第一签名具有时效性和唯一性,导致在令牌或动态签名秘钥失效后无法获取API请求对应地API服务,提高了API服务的安全性,也提高了API请求在传输过程中的安全性。
Description
技术领域
本申请实施例涉及互联网安全技术领域,特别涉及一种请求的发送和验证方法、装置及设备。
背景技术
目前,API(Application Programming Interface,应用程序接口)的运用越来越广泛,API请求的安全验证也越来越重要。
在相关技术中,用户在终端触发生成API请求的时候,向服务器发送用户的帐号信息,进一步地,服务器根据该帐号信息对用户的身份进行验证,确定用户是否拥有使用上述API的权限,若拥有,则向终端发送控制指令,执行上述API对应的功能。
然而,上述相关技术提供的方案中,服务器通过帐号信息直接对用户进行身份验证,若存在网络攻击者API请求的传输过程中拦截获取该帐号信息,则该攻击者可以使用帐号信息恶意攻击API服务,安全性低。
发明内容
本申请实施例提供了一种请求的发送和验证方法、装置及设备,可用于实现提高API服务的安全性的功能。所述技术方案如下:
一方面,本申请实施例提供了一种API请求的发送方法,所述方法包括:
获取令牌和动态签名秘钥;
生成随机串和请求参数串;
根据所述令牌、所述动态签名密钥、所述随机串和所述请求参数串,生成第一签名;
生成API请求,所述API请求包括所述令牌、所述随机串和所述第一签名;
发送所述API请求。
另一方面,本申请实施例提供了一种API请求的验证方法,所述方法包括:
接收请求设备发送的API请求,所述API请求包括令牌、随机串和第一签名;
获取所述令牌对应的动态签名密钥;
根据所述令牌、所述动态签名密钥、所述随机串、请求参数串,生成第二签名;
响应于所述第一签名和所述第二签名相同,执行所述API请求。
再一方面,本申请实施例提供了一种请求的发送装置,所述装置包括:
令牌获取模块,用于获取令牌和动态签名秘钥;
随机生成模块,用于生成随机串和请求参数串;
签名生成模块,用于根据所述令牌、所述动态签名密钥、所述随机串和所述请求参数串,生成第一签名;
请求生成模块,用于生成API请求,所述API请求包括所述令牌、所述随机串和所述第一签名;
请求发送模块,用于发送所述API请求。
又一方面,本申请实施例提供了一种API请求的验证装置,所述装置包括:
请求接收模块,用于接收请求设备发送的API请求,所述API请求包括令牌、随机串和第一签名;
秘钥获取模块,用于获取所述令牌对应的动态签名密钥;
签名生成模块,用于根据所述令牌、所述动态签名密钥、所述随机串、请求参数串,生成第二签名;
请求执行模块,用于响应于所述第一签名和所述第二签名相同,执行所述API请求。
还一方面,本申请实施例提供了一种请求设备,所述请求设备包括处理器和存储器,所述存储器中存储计算机程序,所述计算机程序由所述处理器加载并执行以实现上述API请求的发送方法。
还一方面,本申请实施例提供了一种验证设备,所述验证设备包括处理器和存储器,所述存储器中存储计算机程序,所述计算机程序由所述处理器加载并执行以实现上述API请求的验证方法。
还一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由请求设备的处理器加载并执行以实现上述API请求的发送方法。
还一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由验证设备的处理器加载并执行以实现上述API请求的验证方法。
还一方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在请求设备上运行时,使得请求设备执行上述API请求的发送方法。
还一方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在验证设备上运行时,使得验证设备执行上述API请求的验证方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过令牌、动态签名秘钥、随机串和请求参数串生成第一签名,其中,令牌和动态签名具有有效期限,随机串具有唯一性,请求参数串是API请求中的请求信息对应的字符串,在保证了第一签名与API请求中的请求信息相对应的同时,使得第一签名具有时效性和唯一性,导致在令牌或动态签名秘钥失效后无法获取API请求对应地API服务,提高了API服务的安全性;API请求中包括随机串、令牌和第一签名,保证了API请求不可解密的特性,提高了API请求在传输过程中的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的API服务系统的示意图;
图2是本申请一个实施例提供的API请求的发送方法的流程图;
图3示出了一种API请求的发送方法的示意图;
图4是本申请一个实施例提供的API请求的验证方法的流程图;
图5示出了一种API请求的验证方法的示意图;
图6示出了一种API请求发送和验证方法的示意图;
图7示出了一种API请求安全分析的示意图;
图8是本申请一个实施例提供的API请求的发送装置的框图;
图9是本申请另一个实施例提供的API请求的发送装置的框图;
图10是本申请一个实施例提供的API请求的验证装置的框图;
图11是本申请另一个实施例提供的API请求的验证装置的框图;
图12是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的API服务系统的示意图。如图1所示,API服务系统包括:请求设备10、验证设备20、信息生成设备30、权限检测设备40和指令执行设备50。
请求设备10用于生成并发送API请求。可选地,请求设备10可以是应用程序对应的后台服务器,也可以是虚拟服务平台,本申请实施例对此不作限定。在本申请实施例中,请求设备10在生成上述API请求之后,可以向验证设备20发送该API请求。需要说明的一点是,上述应用程序可以是安装在硬件设备(如终端、计算机设别和可穿戴电子设备)中的软件应用程序,也可以是通过硬件设备打开的网页应用程序。
验证设备20用于验证上述API请求的合法性。可选地,在本申请实施例中,验证设备20在接收到上述API请求之后,可以验证该API请求的合法性,若该API请求合法,则向权限检测设备40发送权限验证请求,该权限验证请求用于请求验证请求设备10是否拥有上述API请求中对应的API的权限;若该API请求不合法,则向请求设备10发送上述API请求对应的终止指令。
信息生成设备30用于生成上述API请求中的部分信息,如令牌和动态签名秘钥。可选地,请求设备10在获取上述API请求对应的帐号和密码后,向信息生成设备30发送信息获取请求,进一步地,信息生成设备30根据该信息获取请求生成上述API请求中的部分信息。需要说明的一点是,上述帐号和密码可以是由用户输入的,也可以由请求设备10检测获取。
权限检测设备40用于检测请求设备10是否具有使用上述API请求中对应的API的权限。可选地,若请求设备10具有使用上述API的权限,则权限检测设备40可以向指令执行设备50发送上述API请求对应的执行指令;若请求设备10不具有使用上述API的权限,则权限检测设备40可以向请求设备10发送上述API请求对应的终止指令。当然,在另一种可能的实施例中,权限检测设备40也可以向验证设备20发送权限验证结果,并由验证设备20根据权限验证结果执行后续步骤。
指令执行设备50用于执行上述API请求对应的执行指令,并将通过API生成的信息发送至其他设备,该其他设备可以是上述API请求中指定的接收上述信息的设备,如请求设备10。
可选地,上述请求设备10、验证设备20、信息生成设备30、权限检测设备40和指令执行设备50之间可以通过有线或网线网络进行连接。需要说明的一点,在一种可能的实施例中,验证设备20、信息生成设备30和权限检测设备40可以是同一计算机设备;在另一种可能的实施方式中,信息生成设备30、权限检测设备40和指令执行设备50可以是同一计算机设备;当然,以上对验证设备20、信息生成设备30、权限检测设备40和指令执行设备50的硬件设备的限定是示例性和解释性的,在实际运用中,上述各个设备还有多种设置方式,如验证设备20和信息生成设备30可以是同一计算机设备,或权限检测设备40和指令执行设备50可以是同一计算机设备,本申请实施例对此不作限定。
还需要说明的一点是,为了保证说明书中的用词统一,便于理解,上述信息生成设备30、权限检测设备40和指令执行设备50在下文中统称为服务器。
请参考图2,其示出了本申请一个实施例提供的API请求的发送方法的流程图。该方法可应图1实施例中的请求设备10,如各步骤的执行主体可以是请求设备10。该方法可以包括以下几个步骤(201~205):
步骤201,获取令牌和动态签名秘钥。
令牌是指API请求对应的标识信息,动态签名秘钥是指与该令牌绑定的可刷新秘钥。可选地,上述令牌和动态签名秘钥具有有效期限,在一种可能的实施方式中,令牌和动态签名秘钥具有相同的有效期限,当令牌和动态签名秘钥的失效后,请求设备可以请求为上述API请求获取新的令牌和动态签名秘钥;在另一种可能的实施方式中,上述动态签名秘钥的有效期限短于上述令牌的有效期限,在该动态签名秘钥失效后,请求设备可以在令牌的有效期内,为该令牌绑定新的动态签名秘钥。
可选地,在本申请实施例中,用户可以通过对应的操作触发生成上述API请求对应的信息获取请求,该信息获取请求用于向服务器请求获取上述API请求对应的令牌和动态签名秘钥,例如,当用户触发生成上述API请求中的请求信息时,请求设备生成该API请求对应的信息获取请求。进一步地,请求设备向服务器发送该信息获取请求,之后由服务器为上述API请求生成对应的令牌和动态签名秘钥,并向请求设备发送该令牌和动态签名秘钥。
在一种可能的实施方式中,上述信息获取请求中包括帐号和密码。帐号是指请求设备或用户的身份标识信息。密码是指上述身份标识信息对应的验证码。可选地,上述步骤201包括以下几个步骤:
1、获取帐号和密码。
在一种可能的实施方式中,该帐号和密码可以是由用户输入的;在另一种可能的实施方式中,上述帐号和密码是上述信息生成请求生成之前,请求设备根据该上述API请求对应的请求信息检测获取的帐号和密码。
2、向服务器发送信息获取请求。
信息获取请求中包括上述帐号和密码。可选地,请求设备在获取上述帐号和密码之后,可以生成信息获取请,并向服务器发送该信息获取请求,该信息获取请求中包括上述帐号和密码。在另一种可能的实施方式中,为了保证信息获取请求在传输过程中的安全性,请求设备在获取上述帐号和密码之后,可以根据该帐号和密码生成对应的信息获取请求,其中,该信息获取请求中包括上述帐号和密码的相关信息,但并不直接该帐号和密码;进一步地,终端设备向服务器发送该信息获取请求。
可选地,服务器在根据上述信息获取请求之后,可以验证上述帐号和密码的合法性,若该帐号和密码合法,则服务器可以根据该信息获取请求生成令牌和动态签名秘钥;若该帐号和信息不合法,则服务器可以向请求设备发送终止指令。在一种可能的实施方式中,上述令牌和动态签名秘钥是服务器根据上述信息获取请求中携带的信息,通过令牌生成算法生成的。在另一种可能的实施方式中,上述令牌和动态签名秘钥可以是服务器根据上述信息获取请求,为上述API请求随机分配的。
3、接收服务器发送的令牌和动态签名密钥。
可选地,服务器在生成上述令牌和动态签名秘钥之后,可以向请求设备发送该令牌和动态签名秘钥,对应的,请求设备接收该令牌和动态签名秘钥。需要说明的一点是,不同的API请求对应的令牌和动态签名秘钥不同。
步骤202,生成随机串和请求参数串。
随机串用于标识上述API请求的唯一性。可选地,在本申请实施例中,请求设备在获取上述令牌动态签名秘钥之后,可以为上述API请求构造对应的随机串。在一种可能的实施方式中,请求设备可以随机选择字符串作为上述随机串;在另一种可能的实施方式中,请求设备可以根据上述令牌或动态签名秘钥,通过随机算法(如随机采样)生成上述随机串。
请求参数串是指上述API请求中的请求信息对应的字符串。可选地,在本申请实施例中,请求设备可以根据第一参数和第二参数生成该请求参数串,其中还,第一参数和第二参数是指由用户触发生成的上述API请求对应的请求信息,可选地,该第一参数和第二参数可以存储在请求设备中的不同位置。
下文会对上述随机串和请求参数串的生成方法进行详细介绍,在此不作赘述。
步骤203,根据令牌、动态签名密钥、随机串和请求参数串,生成第一签名。
第一签名用于标识上述API请求的合法性。在本申请实施例中,请求设备在获取上述令牌、动态签名秘钥、随机串和请求参数串之后,可以对该令牌、动态签名秘钥、随机串和请求参数串进行拼接、加密和编码,生成第一签名。下面,对该第一签名的生成方法进行介绍。
可选地,上述步骤203包括以下几个步骤:
1、将令牌、动态签名秘钥、随机串和请求参数串进行拼接,得到签名数据。
2、对签名数据进行加密,得到加密后的签名数据。
3、对加密后的签名数据进行编码,得到第一签名。
可选地,在本申请实施例中,请求设备在获取上述令牌、动态签名秘钥、随机串和请求参数串之后,可以对该令牌、动态签名秘钥、随机串和请求参数串按照预设顺序进行拼接,得到签名数据;进一步地,请求设备通过加密算法(如SHA256算法)对该签名数据进行加密,生成加密后的签名数据;接着,请求设备对该加密后的签名数据进行编码(如base64),得到第一签名。需要说明的一点是,上述预设顺序可以是请求设备设置的任意顺序,本申请实施例对此不作限定。
示例性地,假设令牌为token,请求参数串为paramsData,随机串为nonce,动态签名秘钥为signSecret,则顺序拼接后得到的签名数据signData1为:
signData1=token+paramsData+nonce+signSecret;
进一步地,通过SHA256对上述签名数据signData1进行加密,得到加密后的签名数据,并对该加密后的签名数据进行base64编码,则得到的第一签名sign1为:
sign1=base64(sha256(signData1))。
当然,在另一种可能的实施例中,请求设备可以将令牌、请求参数串和随机串进行拼接,得到带签名数据,进一步地,使用动态签名秘钥,通过签名算法,对待签名数据进行签名,得到签名数据,并对签名数据进行签名,得到第一签名。
示例性地,假设令牌为token,请求参数串为paramsData,随机串为nonce,动态签名秘钥为signSecret,则顺序拼接后,通过签名算法得到的签名数据signData1为:
signData1=sha256(token|paramsData|nonce,signSecret);
进一步地,对signData1进行base64编码,得到第一签名sign1为:
sign1=base64(signData1)。
需要说明的一点是,上述对第一签名的生成方法的介绍只是示例性和解释性的,在实际运用中,请求设备可以使用多种可行的算法生成第一签名,本申请实施例对此不作限定。还需要说明的一点是,请求设备在生成上述第一签名时,使用的算法为不可逆算法,即任意设备不能通过第一签名解密得到令牌、请求参数串和随机串等数据。
步骤204,生成API请求。
可选地,请求设备在获取上述第一签名之后,可以根据上树签名、随机串和第一签名生成API请求。在一种可能的实施例中,该API请求包括令牌、随机串和第一签名。当然,在其他可能的实施例中,该API请求中还可以包括上述第一参数和第二参数。
步骤205,发送API请求。
可选地,请求设备在生成上述API请求之后,可以向验证设备发送该API请求,进一步地,验证设备对该API请求进行合法性验证,若该API请求验证通过,则验证设备可以向服务器发送该API请求对应的执行指令,进一步地,服务根据该执行指令执行对应的操作;若该API请求验证未通过,则验证设备可以向请求设备发送该API请求对应的终止指令,进一步地,请求设备根据该终止指令终止该API请求对应的服务操作。
综上所述,本申请实施例提供的技术方案中,通过令牌、动态签名秘钥、随机串和请求参数串生成第一签名,其中,令牌和动态签名具有有效期限,随机串具有唯一性,请求参数串是API请求中的请求信息对应的字符串,在保证了第一签名与API请求中的请求信息相对应的同时,使得第一签名具有时效性和唯一性,导致在令牌或动态签名秘钥失效后无法获取API请求对应地API服务,提高了API服务的安全性;API请求中包括随机串、令牌和第一签名,保证了API请求不可解密的特性,提高了API请求在传输过程中的安全性。
另外,通过帐号和密码获取令牌和动态签名秘钥,能够有效地在API请求传输的过程中隐藏帐号信息,避免了帐号信息的泄露,保证了API服务的安全性。
另外,通过对令牌、动态签名秘钥、随机串和请求参数串的拼接、加密和编码生成第一签名,使得攻击者无法顺利破解第一签名,保证了第一签名的安全性,从侧面提高了API请求在传输过程的安全性。
下面,对上述随机串和请求参数串的生成方法进行介绍。
1、随机构造随机串。
可选地,在本申请实施例中,请求设备可以随机构造随机串。需要说明的一点是,不同的API请求对应的随机串不同,也就是说,对于合法的API请求,验证设备不会接受到重复的随机串。
2、根据API请求,获取第一参数和第二参数。
第一参数和第二参数是指上述API请求对应的请求信息。可选地,第一参数和第二参数可以存储在请求设备的不同位置。可选地,请求设备可以通过上述API请求,获取对应的第一参数和第二参数。
3、根据第一参数和第二参数,生成请求参数串。
可选地,上述第一参数中包括上述API请求对应的请求信息和该请求信息对应的标识。在本申请实施例中,请求设备在获取上述第一参数和第二参数后,可以根据上述标识,对第一参数进行首尾拼接,得到拼接后的第一参数;进一步地,请求设备将上述第二参数拼接在该拼接后的第一参数之后,得到请求参数串。
示例性地,假设第一参数为query(key1=v1,key2=v2……),其中,key表示标识,v表示请求信息,第二参数为JsonBody。可选地,请求设备可以根据第一参数query中的标识key的ASC2码的顺序,对该第一参数query进行首尾拼接,并在拼接的结尾处拼接body字符串,此时生成的请求参数串paramsData为:
paramsData=sortAsc2(query)+bodyString。
示例性地,结合参考图3,对上述请求设备中API请求的发送方法进行完整介绍。
步骤31,请求设备获取帐号和密码。
步骤32,请求设备接收服务器发送的令牌和动态签名秘钥。
步骤33,请求设备构造随机串。
步骤34,请求设备根据第一参数和第二参数,生成请求参数串。
步骤35,请求设备对令牌、动态签名秘钥、随机串和请求参数串进行拼接、加密和编码,生成第一签名。
步骤36,请求设备向验证设备发送API请求,该API请求中包括令牌、随机串和第一签名。
请参考图4,其示出了本申请一个实施例提供的API请求的验证方法的流程图。该方法可应用于图1实施例中的验证设备20,如各步骤的执行主体可以是验证设备20。该方法可以包括以下几个步骤(401~404):
步骤401,接收请求设备发送的API请求。
API请求用于请求执行API对应的功能。可选地,API请求中包括令牌、随机串和第一签名,其中,令牌是指API请求对应的标识信息,随机串是指用于标识API请求唯一性的字符串,第一签名是指用于标识API请求合法性的字符串。当然,在另一种可能的实施例中,上述API请求中还包括该API请求对应的请求信息,如第一参数和第二参数。
可选地,请求设备在生成上述API请求之后,可以向验证设备发送该API请求,对应的,验证设备接收该API请求,并对该API请求的合法性进行验证。需要说明的一点是,由于上述令牌的时效性和随机串的唯一性,验证设备可以该API请求进行有效性和唯一性的验证,下文对该验证方法进行介绍,在此不作赘述,可选地,若该API请求未通过有效性或重复性的验证,则验证设备可以向请求设备直接发送该API请求对应的终止指令,以节省各个设备的处理开销。
步骤402,获取令牌对应的动态签名密钥。
动态签名秘钥是指与上述令牌绑定的可刷新秘钥。可选地,该动态签名秘钥具有有效期限,当该动态签名秘钥失效时,请求设备可以通过服务器请求为上述API请求生成新的动态签名秘钥。需要说明的一点是,上述令牌也具有有效期限,可选地,该令牌的有效期限和上述动态签名秘钥的有效期限可以相同,也可以不同。
在本申请实施例中,验证设备在获取上述API请求之后,可以向服务器发送秘钥获取请求,可选地,该秘钥获取请求中包括上述API请求中的令牌,用于控制服务器向验证设备发送该令牌绑定的动态签名秘钥。当然,验证设备也可以向请求设备发送上述秘钥获取请求,以获取上述令牌对应的动态签名秘钥,本申请实施例对此不作限定。
步骤403,根据令牌、动态签名密钥、随机串、请求参数串,生成第二签名。
请求参数串是指上述API请求对应的请求信息的字符串。可选地,验证设备可以通过第一参数和第二参数获取该请求参数串,其中,该第一参数和第二参数可以是携带在API请求中,由请求设备向验证设备发送的;也可以是验证设备在接收到上述API请求后,向请求设备请求获取的。在本申请实施例中,上述第一参数中包括上述API请求对应的请求信息和该请求信息对应的标识。可选地,验证设备可以根据上述标识,对第一参数进行首尾拼接,得到拼接后的第一参数;进一步地,将上述第二参数拼接在该拼接后的第一参数之后,得到请求参数串。需要说明的一点是,为了保证API请求验证结果的准确性,验证设备中生成请求参数串的方法与上述请求设备中生成请求参数串的方法相同。
第二签名用于验证上述API请求的合法性,可选地,该第二签名的生成方法与上述第一签名的生成方法类似。在本申请实施例中,验证设备在获取到上述动态签名秘钥之后,可以获取上述API请求对应的第一参数和第二参数,并根据该第一参数和第二参数生成上述请求参数串;进一步地,验证设备可以对上述令牌、动态签名秘钥、随机串和请求参数串进行拼接、加密和编码处理,生成第二签名。需要说明的一点是,对于同一API请求中第一签名和第二签名的生成过程中的拼接操作,上述令牌、动态签名秘钥、请求参数串和随机串的拼接顺序相同。
示例性地,假设第一参数为query(key1=v1,key2=v2……),其中,key表示标识,v表示请求信息,第二参数为JsonBody。可选地,验证设备可以根据第一参数query中的标识key的ASC2码的顺序,对该第一参数query进行首尾拼接,并在拼接的结尾处拼接body字符串,此时生成的请求参数串paramsData为:
paramsData=sortAsc2(query)+bodyString;
进一步地,对令牌token,请求参数串paramsData,随机串nonce,动态签名秘钥为signSecret进行顺序拼接,得到的签名数据signData2为:
signData2=token+paramsData+nonce+signSecret;
进一步地,通过SHA256对上述签名数据signData2进行加密,得到加密后的签名数据,并对该加密后的签名数据进行base64编码,则得到的第二签名sign2为:
sign2=base64(sha256(signData2))。
需要说明的一点是,上述度第二签名的生成方法是示例性和解释性的,在实际应用中,验证设备可以通过多种可行的算法生成第二签名,本申请实施例对此不作限定。但是,为了保证API请求验证的准确性,对于同一API请求,验证设备生成第二签名的方法,与上述请求设备生成第一签名的算法相同。
步骤404,响应于第一签名和第二签名相同,执行API请求。
可选地,在本申请实施例中,验证设备在生成上述第二签名之后,将该第二签名与上述第一签名进行比较,若该第一签名与该第二签名相同,则验证设备可以向服务器发送执行指令,该执行指令用于控制服务器执行上述API请求对应的API服务。
需要说明的一点是,在本申请实施例中,在上述API请求通过验证设备的合法性验证之后,验证请求可以检测上述请求设备是否具有使用上述API请求对应的API的权限,可选地,上述步骤404包括以下几个步骤:
1、响应于请求设备具有使用API的权限,根据API请求,生成对应的执行指令。
可选地,上述API请求中还可以包括上述请求设备的标识,进一步地,验证设备可以向服务器发送权限验证请求,该权限验证请求中可以包括上述API请求对应的API的标识和上述请求设备的标识;之后,服务器根据上述权限验证请求验证上述请求设备是否具有使用上述API的权限,若请求设备具有使用API的权限,则服务器可以将该验证结果发送至验证设备,并由验证设备根据上述API请求生成上述API请求对应的执行指令;若请求设备不具有使用API的权限,则服务器可以将该验证结果发送至验证设备,并由验证设备根据上述API请求生成上述API请求对应的终止指令。
当然,上述请求设备的标识也可以是在上述API请求通过合法性验证后,由请求设备向验证设备发送的。需要说明的一点是,上述权限可以是请求设备的生产者赋予的,例如,生产者在生产请求设备时,设置该请求设备可以使用API 1、API 2和API 3,但不能使用API 4。
2、向服务器发送API请求对应的执行指令。
可选地,在本申请实施例中,若请求设备具有使用API的权限,则验证设备根据上述API请求生成上述API请求对应的执行指令,并向服务器发送该执行指令,进一步地,服务器根据该执行指令执行上述API请求对应的操作;若请求设备不具有使用API的权限,则验证设备根据上述API请求生成上述API请求对应的终止指令,并向请求设备发送该终止指令,进一步地,请求设备根据该终止指令,终止上述API请求对应的API服务。
综上所述,本申请实施例提供的技术方案中,通过令牌、动态签名秘钥、随机串和请求参数串生成第二签名,若第二签名与API请求中的第一签名相同,则执行API请求,保证了API请求验证的准确性;令牌和动态签名的有效性,随机串的唯一性,提高了API请求在传输过程中的安全性。
下面,对上述API请求的有效性和唯一性的检测方法进行介绍。可选地,上述步骤401之后还包括以下几个子步骤:
1、检测令牌是否有效。
可选地,在本申请实施例中,验证设备在获取上述API请求之后,可以将该API请求中的令牌发送给服务器,由服务器检测该令牌是否有效,并将检测结果发送给验证设备。当然,上述令牌中也可以包括对应的有效期限,在这种情况下,关于检测该令牌是否有效地操作,可以由验证设备进行,也可以由服务器进行。
2、响应于令牌有效,检测令牌的有效期内随机串是否重复。
在本申请实施例中,若上述令牌有效,验证设备可以检测在该令牌的有效期内,上述API请求中的随机串是否重复,即在令牌的有效期内,验证设备是否接受过由相同的随机串标记唯一性的API请求。
3、响应于随机串不重复,从上述步骤402开始执行。
可选地,如上述随机串不重复,则验证设备可以继续执行后续步骤。需要说明的一点是,若上述令牌无效或随机串重复,则验证设备可以向上述请求设备发送终止指令,以终止上述API请求对应的API服务。
示例性地,结合参考图5,对上述验证设备中API请求的验证方法进行完整介绍。
步骤51,验证设备接收请求设备发送的API请求,API请求中包括令牌、随机串和第一签名。
步骤52,验证设备验证令牌是否有效,并验证在令牌的有效期内,随机串是否未重复。若令牌有效且随机串未重复,则执行步骤53和步骤55;若令牌无效或随机串重复,则执行步骤57。
步骤53,验证设备对令牌、动态签名秘钥、随机串和随机参数串进行拼接、加密和编码,生成第二签名。
步骤54,验证设备判断第一签名与第二签名是否相同,若相同,则执行步骤56;若不同,则执行步骤57。
步骤55,验证设备通过服务器验证请求设备是否具有使用API的权限,若拥有,则执行步骤56;若未拥有,则执行步骤57。
步骤56,验证设备向服务器发送执行指令。
步骤57,验证设备向请求设备发送终止指令。
需要说明的一点是,上述关于API请求中的合法性验证和权限验证的相关步骤可以同时进行,也可以不同时进行,本申请实施例对此不作限定。
下面,结合参考图6,以上述服务器分为信息生成设备、权限检测设备和指令执行设备为例,对本申请的完整方案进行介绍。
步骤601,请求设备获取帐号和密码。
步骤602,请求设备向信息生成设备发送信息获取请求,该信息获取请求中包括帐号和密码。
步骤603,信息生成设备向请求设备发送令牌和动态签名秘钥。
步骤604,请求设备构造随机串和请求参数串。
步骤605,请求设备对令牌、动态签名秘钥、随机串和请求参数串进行拼接、加密和编码,生成第一签名。
步骤606,请求设备向验证设备发送API请求,该API请求中包括令牌、随机串和第一签名。
步骤607,验证设备向信息生成设备发送令牌。
步骤608,信息生成设备验证令牌是否有效,并向验证设备发送验证结果。
步骤609,若令牌有效,则验证设备继续验证在令牌的有效期内,随机串是否重复;若令牌无效,则验证设备执行步骤614。
步骤610,若随机串未重复,则验证设备对令牌、动态签名秘钥、随机串和请求参数串进行拼接、加密和编码,生成第二签名。
若随机串重复,则验证设备执行步骤614。
步骤611,若第二签名与第一签名相同,则验证设备向权限检测设备发送权限验证请求;若第二签名与第一签名不同,则验证设备执行步骤614。
步骤612,权限检测设备根据权限验证请求验证请求设备是否有使用API的权限,并将验证结果发送至验证设备。
步骤613,若请求设备拥有使用API的权限,则验证设备向指令执行设备发送执行指令。
步骤614,若请求设备未拥有使用API的权限,则验证设备向请求设备发送终止请求。
下面是对本申请中API请求传输过程的安全性分析。示例性地,结合参考图7,API请求70中包括令牌71、随机串72、第一签名73和请求参数串74。
在一种可能的场景中,攻击者在拦截到上述API请求70后,试图解密得到请求设备75的帐号信息,但该API请求70中不包括请求设备70的帐号信息,令牌71、随机串72、第一签名73和请求参数串74均是与API请求直接相关的信息,隐藏了请求设备的帐号信息。
在另一种可能的场景中,攻击者在拦截到上述API请求70后,篡改了请求参数串74生成非合法API请求发送验证设备76,但是验证设备76在获取上述非合法API请求请求后生成的第二签名和第一签名不同,向请求设备75发送终止指令。
在再一种可能的场景中,攻击者使用同一API请求进行大量重复发送,进而攻击验证设备76和API服务,但是,此时随机串失去唯一性,验证设备76向请求设备75发送终止指令。
在又一种可能的场景中,攻击者可能获取API请求70对应的动态签名秘钥,此时,请求设备75可以获取新的令牌和新的动态签名秘钥,进而令牌71和绑定的动态签名秘钥均失效。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图8,其示出了本申请一个实施例提供的API请求的发送装置的框图。该装置具有实现上述API发送方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是请求设备,也可以设置在请求设备中。该装置800可以包括:令牌获取模块810、随机生成模块820、签名生成模块830、请求生成模块840和请求发送模块850。
令牌获取模块810,用于获取令牌和动态签名秘钥。
随机生成模块820,用于生成随机串和请求参数串。
签名生成模块830,用于根据所述令牌、所述动态签名密钥、所述随机串和所述请求参数串,生成第一签名。
请求生成模块840,用于生成API请求,所述API请求包括所述令牌、所述随机串和所述第一签名。
请求发送模块850,用于发送所述API请求。
在示例性实施例中,如图9所示,所述随机生成模块820,包括:随机构造单元821、参数获取单元822和参数生成单元823。
随机构造单元821,用于随机构造所述随机串。
参数获取单元822,用于根据所述API请求,获取第一参数和第二参数,所述第一参数和所述第二参数是指所述API请求对应的请求信息。
参数生成单元823,用于根据所述第一参数和所述第二参数,生成所述请求参数串。
在示例性实施例中,第一参数中包括所述API请求对应的请求信息和所述请求信息对应的标识。
所述参数生成单元823,用于根据所述标识,对所述第一参数进行首尾拼接,得到拼接后的第一参数;将所述第二参数拼接在所述拼接后的第一参数之后,得到所述请求参数串。
在示例性实施例中,所述令牌获取模块810,用于获取帐号和密码;向服务器发送信息获取请求,所述信息获取请求中包括所述帐号和所述密码;接收所述服务器发送的所述令牌和所述动态签名密钥,所述令牌和所述动态签名密钥根据所述信息获取请求生成。
在示例性实施例中,所述签名生成模块830,用于将所述令牌、所述动态签名秘钥、所述随机串和所述请求参数串进行拼接,得到签名数据;对所述签名数据进行加密,得到加密后的签名数据;对所述加密后的签名数据进行编码,得到所述第一签名。
综上所述,本申请实施例提供的技术方案中,通过令牌、动态签名秘钥、随机串和请求参数串生成第一签名,其中,令牌和动态签名具有有效期限,随机串具有唯一性,请求参数串是API请求中的请求信息对应的字符串,在保证了第一签名与API请求中的请求信息相对应的同时,使得第一签名具有时效性和唯一性,导致在令牌或动态签名秘钥失效后无法获取API请求对应地API服务,提高了API服务的安全性;API请求中包括随机串、令牌和第一签名,保证了API请求不可解密的特性,提高了API请求在传输过程中的安全性。
请参考图10,其示出了本申请一个实施例提供的API请求的验证装置的框图。该装置具有实现上述API验证方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是验证设备,也可以设置在验证设备中。该装置1000可以包括:请求接收模块1010、秘钥获取模块1020、签名生成模块1030和请求执行模块1040。
请求接收模块1010,用于接收请求设备发送的API请求,所述API请求包括令牌、随机串和第一签名。
秘钥获取模块1020,用于获取所述令牌对应的动态签名密钥。
签名生成模块1030,用于根据所述令牌、所述动态签名密钥、所述随机串、请求参数串,生成第二签名。
请求执行模块1040,用于响应于所述第一签名和所述第二签名相同,执行所述API请求。
在示例性实施例中,如图11所示,所述装置1000还包括:令牌检测模块1050、随机检测模块1060和步骤执行模块1070。
令牌检测模块1050,用于检测所述令牌是否有效。
随机检测模块1060,用于响应于所述令牌有效,检测所述令牌的有效期内所述随机串是否重复。
步骤执行模块1070,用于响应于所述随机串不重复,从所述获取所述令牌对应的动态签名密钥的步骤开始执行。
综上所述,本申请实施例提供的技术方案中,通过令牌、动态签名秘钥、随机串和请求参数生成第二签名,若第二签名与API请求中的第一签名相同,则执行API请求,保证了API请求验证的准确性;令牌和动态签名的有效性,随机串的唯一性,提高了API请求在传输过程中的安全性。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图12,其示出了本申请一个实施例提供的计算机设备1200的结构框图。该计算机设备用于实施上述实施例中提供的API请求的发送方法,或实现。
具体来讲:
该计算机设备1200包括处理单元(如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)和FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)等)1201、包括RAM(Random Access Memory,随机存取存储器)1202和ROM(Read Only Memory,只读存储器)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。该计算机设备800还包括帮助计算计算机设备内的各个器件之间传输信息的基本I/O系统(Input/Output,输入/输出)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1212的大容量存储设备1207。
该基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中,该显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。该基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
该大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。该大容量存储设备1207及其相关联的计算机可读介质为计算机设备1200提供非易失性存储。也就是说,该大容量存储设备1207可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备1207可以统称为存储器。
根据本申请实施例,该计算机设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1200可以通过连接在该系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
需要说明的一点是,上面所述的计算机设备的结构仅是示例性和解释性的,其可以包括更多或者更少的部件,本申请实施例对此不作限定。
本申请实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序由请求设备的处理器加载并执行以实现上述API请求的发送方法。
本申请实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序由验证设备的处理器加载并执行以实现上述API请求的验证方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。
在示例性实施例中,还提供一种计算机程序产品,当所述计算机程序产品在请求设备上运行时,使得请求设备执行上述API请求的发送方法。
在示例性实施例中,还提供一种计算机程序产品,当所述计算机程序产品在验证设备上运行时,使得请求设备执行上述API请求的验证方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种应用程序接口API请求的发送方法,其特征在于,所述方法包括:
获取令牌和动态签名秘钥,所述令牌与所述动态签名秘钥绑定,所述动态签名秘钥的有效期限短于或者等于所述令牌的有效期限;
若所述动态签名秘钥失效且所述令牌未失效,则在所述令牌的有效期限内对所述动态签名秘钥进行更新;
生成随机串和请求参数串;
将所述令牌、所述动态签名秘钥、所述随机串和所述请求参数串进行拼接,得到签名数据;
对所述签名数据进行加密,得到加密后的签名数据;
对所述加密后的签名数据进行编码,得到第一签名;
生成API请求,所述API请求包括所述令牌、所述随机串和所述第一签名;
发送所述API请求。
2.根据权利要求1所述的方法,其特征在于,所述生成随机串和请求参数串,包括:
随机构造所述随机串;
根据所述API请求,获取第一参数和第二参数,所述第一参数和所述第二参数是指所述API请求对应的请求信息;
根据所述第一参数和所述第二参数,生成所述请求参数串。
3.根据权利要求2所述的方法,其特征在于,所述第一参数中包括所述API请求对应的请求信息和所述请求信息对应的标识;
所述根据所述第一参数和所述第二参数,生成所述请求参数串,包括:
根据所述标识,对所述第一参数进行首尾拼接,得到拼接后的第一参数;
将所述第二参数拼接在所述拼接后的第一参数之后,得到所述请求参数串。
4.根据权利要求1所述的方法,其特征在于,所述获取令牌和动态签名秘钥,包括:
获取帐号和密码;
向服务器发送信息获取请求,所述信息获取请求中包括所述帐号和所述密码;
接收所述服务器发送的所述令牌和所述动态签名秘钥,所述令牌和所述动态签名秘钥根据所述信息获取请求生成。
5.一种API请求的验证方法,其特征在于,所述方法包括:
接收请求设备发送的API请求,所述API请求包括令牌、随机串和第一签名;其中,所述令牌与动态签名秘钥绑定,所述动态签名秘钥的有效期限短于或者等于所述令牌的有效期限,若所述动态签名秘钥失效且所述令牌未失效,则由所述请求设备在所述令牌的有效期限内对所述动态签名秘钥进行更新;所述第一签名基于加密后的签名数据进行编码得到,所述加密后的签名数据是所述请求设备基于所述令牌、所述动态签名秘钥、所述随机串和所述请求参数拼接得到的签名数据进行加密后得到的;
获取所述令牌对应的动态签名秘钥;
根据所述令牌、所述动态签名秘钥、所述随机串、请求参数串,生成第二签名;
响应于所述第一签名和所述第二签名相同,执行所述API请求。
6.根据权利要求5所述的方法,其特征在于,所述接收请求设备发送的API请求之后,还包括:
检测所述令牌是否有效;
响应于所述令牌有效,检测所述令牌的有效期内所述随机串是否重复;
响应于所述随机串不重复,从所述获取所述令牌对应的动态签名秘钥的步骤开始执行。
7.一种应用程序接口API请求的发送装置,其特征在于,所述装置包括:
令牌获取模块,用于获取令牌和动态签名秘钥,所述令牌与所述动态签名秘钥绑定,所述动态签名秘钥的有效期限短于或者等于所述令牌的有效期限;
所述令牌获取模块,还用于在所述动态签名秘钥失效且所述令牌未失效的情况下,在所述令牌的有效期限内对所述动态签名秘钥进行更新;
随机生成模块,用于生成随机串和请求参数串;
签名生成模块,用于将所述令牌、所述动态签名秘钥、所述随机串和所述请求参数串进行拼接,得到签名数据;对所述签名数据进行加密,得到加密后的签名数据;对所述加密后的签名数据进行编码,得到第一签名;
请求生成模块,用于生成API请求,所述API请求包括所述令牌、所述随机串和所述第一签名;
请求发送模块,用于发送所述API请求。
8.一种API请求的验证装置,其特征在于,所述装置包括:
请求接收模块,用于接收请求设备发送的API请求,所述API请求包括令牌、随机串和第一签名;其中,所述令牌与动态签名秘钥绑定,所述动态签名秘钥的有效期限短于或者等于所述令牌的有效期限,若所述动态签名秘钥失效且所述令牌未失效,则由所述请求设备在所述令牌的有效期限内对所述动态签名秘钥进行更新;所述第一签名基于加密后的签名数据进行编码得到,所述加密后的签名数据是所述请求设备基于所述令牌、所述动态签名秘钥、所述随机串和所述请求参数拼接得到的签名数据进行加密后得到的;
秘钥获取模块,用于获取所述令牌对应的动态签名秘钥;
签名生成模块,用于根据所述令牌、所述动态签名秘钥、所述随机串、请求参数串,生成第二签名;
请求执行模块,用于响应于所述第一签名和所述第二签名相同,执行所述API请求。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至4任一项所述的方法,或实现如权利要求5或6所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911420524.5A CN111541542B (zh) | 2019-12-31 | 2019-12-31 | 请求的发送和验证方法、装置及设备 |
PCT/SG2020/050800 WO2021137769A1 (en) | 2019-12-31 | 2020-12-31 | Method and apparatus for sending and verifying request, and device thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911420524.5A CN111541542B (zh) | 2019-12-31 | 2019-12-31 | 请求的发送和验证方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111541542A CN111541542A (zh) | 2020-08-14 |
CN111541542B true CN111541542B (zh) | 2023-09-15 |
Family
ID=71979937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911420524.5A Active CN111541542B (zh) | 2019-12-31 | 2019-12-31 | 请求的发送和验证方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111541542B (zh) |
WO (1) | WO2021137769A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086428B (zh) * | 2021-03-11 | 2024-06-28 | 中国电信股份有限公司 | 网络请求发送方法、装置与电子设备 |
CN113378095B (zh) * | 2021-06-30 | 2023-08-04 | 抖音视界有限公司 | 签名算法的动态加载方法、装置、设备及存储介质 |
CN114124408A (zh) * | 2021-11-26 | 2022-03-01 | 浪潮云信息技术股份公司 | 一种api网关实现后端签名的方法及系统 |
CN114520724A (zh) * | 2022-02-18 | 2022-05-20 | 深圳前海环融联易信息科技服务有限公司 | 一种开放api接口的签名验证方法 |
CN115242558B (zh) * | 2022-09-22 | 2022-12-09 | 城云科技(中国)有限公司 | Api接口安全加密方法和认证方法及装置、可读存储介质 |
CN118378253B (zh) * | 2024-06-24 | 2024-10-15 | 国家工业信息安全发展研究中心 | 基于内生安全的api接口动态跳变方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101627644A (zh) * | 2007-03-14 | 2010-01-13 | 华为技术有限公司 | 用于漫游环境的基于令牌的动态密钥分配方法 |
CN102315933A (zh) * | 2011-10-18 | 2012-01-11 | 飞天诚信科技股份有限公司 | 一种更新密钥的方法及系统 |
CN102651743A (zh) * | 2012-05-02 | 2012-08-29 | 飞天诚信科技股份有限公司 | 一种令牌种子的生成方法 |
CN102984252A (zh) * | 2012-11-26 | 2013-03-20 | 中国科学院信息工程研究所 | 一种基于动态跨域安全令牌的云资源访问控制方法 |
CN104967597A (zh) * | 2014-11-04 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 一种基于安全渠道的第三方应用消息鉴权方法及系统 |
CN108810029A (zh) * | 2018-07-23 | 2018-11-13 | 珠海宏桥高科技有限公司 | 一种微服务架构服务间鉴权系统及优化方法 |
CN109067774A (zh) * | 2018-09-11 | 2018-12-21 | 中国电子科技集团公司第二十八研究所 | 一种基于信任令牌的安全接入系统及其安全接入方法 |
CN109522726A (zh) * | 2018-10-16 | 2019-03-26 | 平安万家医疗投资管理有限责任公司 | 小程序的鉴权方法、服务器及计算机可读存储介质 |
CN109618341A (zh) * | 2018-12-27 | 2019-04-12 | 无锡天脉聚源传媒科技有限公司 | 一种数字签名认证方法、系统、装置以及存储介质 |
CN110543464A (zh) * | 2018-12-12 | 2019-12-06 | 广东鼎义互联科技股份有限公司 | 一种应用于智慧园区的大数据平台及操作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7475250B2 (en) * | 2001-12-19 | 2009-01-06 | Northrop Grumman Corporation | Assignment of user certificates/private keys in token enabled public key infrastructure system |
US9898734B2 (en) * | 2012-12-19 | 2018-02-20 | Deutsche Telekom Ag | Method and system for terminal device-based communication between third-party applications and an electronic wallet |
CN103312515B (zh) * | 2013-06-21 | 2016-04-20 | 百度在线网络技术(北京)有限公司 | 授权令牌的生成方法、生成装置、认证方法和认证系统 |
US9526984B2 (en) * | 2013-11-21 | 2016-12-27 | Oracle International Corporation | Gamification provider abstraction layer |
CN107911219A (zh) * | 2017-11-09 | 2018-04-13 | 成都知道创宇信息技术有限公司 | 一种基于密钥签名的api防cc方法 |
CN109788002A (zh) * | 2019-03-12 | 2019-05-21 | 北京首汽智行科技有限公司 | 一种Http请求加密、解密方法及系统 |
-
2019
- 2019-12-31 CN CN201911420524.5A patent/CN111541542B/zh active Active
-
2020
- 2020-12-31 WO PCT/SG2020/050800 patent/WO2021137769A1/en active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101627644A (zh) * | 2007-03-14 | 2010-01-13 | 华为技术有限公司 | 用于漫游环境的基于令牌的动态密钥分配方法 |
CN102315933A (zh) * | 2011-10-18 | 2012-01-11 | 飞天诚信科技股份有限公司 | 一种更新密钥的方法及系统 |
CN102651743A (zh) * | 2012-05-02 | 2012-08-29 | 飞天诚信科技股份有限公司 | 一种令牌种子的生成方法 |
CN102984252A (zh) * | 2012-11-26 | 2013-03-20 | 中国科学院信息工程研究所 | 一种基于动态跨域安全令牌的云资源访问控制方法 |
CN104967597A (zh) * | 2014-11-04 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 一种基于安全渠道的第三方应用消息鉴权方法及系统 |
CN108810029A (zh) * | 2018-07-23 | 2018-11-13 | 珠海宏桥高科技有限公司 | 一种微服务架构服务间鉴权系统及优化方法 |
CN109067774A (zh) * | 2018-09-11 | 2018-12-21 | 中国电子科技集团公司第二十八研究所 | 一种基于信任令牌的安全接入系统及其安全接入方法 |
CN109522726A (zh) * | 2018-10-16 | 2019-03-26 | 平安万家医疗投资管理有限责任公司 | 小程序的鉴权方法、服务器及计算机可读存储介质 |
CN110543464A (zh) * | 2018-12-12 | 2019-12-06 | 广东鼎义互联科技股份有限公司 | 一种应用于智慧园区的大数据平台及操作方法 |
CN109618341A (zh) * | 2018-12-27 | 2019-04-12 | 无锡天脉聚源传媒科技有限公司 | 一种数字签名认证方法、系统、装置以及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于用户令牌的数字签名在电子政务建设中的应用;于鑫;魏志光;盛鸿宇;;信息安全与通信保密(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111541542A (zh) | 2020-08-14 |
WO2021137769A1 (en) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111541542B (zh) | 请求的发送和验证方法、装置及设备 | |
CN110378139B (zh) | 一种数据密钥保护方法、系统及电子设备和存储介质 | |
US11258792B2 (en) | Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium | |
CN111708991B (zh) | 服务的授权方法、装置、计算机设备和存储介质 | |
TWI522836B (zh) | Network authentication method and system for secure electronic transaction | |
JP4638912B2 (ja) | ディストリビューションcdを使用した、署名されたグループにおけるダイレクトプルーフの秘密鍵を装置に伝達する方法 | |
US20210234857A1 (en) | Authentication system, authentication method, and application providing method | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN111131336B (zh) | 多方授权场景下的资源访问方法、装置、设备及存储介质 | |
CN108259438A (zh) | 一种基于区块链技术的认证的方法和装置 | |
CN109831311B (zh) | 一种服务器验证方法、系统、用户终端及可读存储介质 | |
CN111131144B (zh) | IoT设备管理方法、装置、服务器及存储介质 | |
CN103560887A (zh) | 智能终端远程证明方法和系统 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN111585995A (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN109670289B (zh) | 一种识别后台服务器合法性的方法及系统 | |
CN114760070A (zh) | 数字证书颁发方法、数字证书颁发中心和可读存储介质 | |
CN108235067B (zh) | 一种视频流地址的鉴权方法及装置 | |
CN113505353A (zh) | 一种认证方法、装置、设备和存储介质 | |
CN111628985A (zh) | 安全访问控制方法、装置、计算机设备和存储介质 | |
CN108429621B (zh) | 一种身份验证方法及装置 | |
CN107241341B (zh) | 访问控制方法及装置 | |
CN115242471A (zh) | 信息传输方法、装置、电子设备及计算机可读存储介质 | |
JP4729457B2 (ja) | 自動分析装置 | |
CN113508380A (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 |