CN116933238A - 应用程序接口调用验证方法、电子设备和存储介质 - Google Patents
应用程序接口调用验证方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116933238A CN116933238A CN202310967654.0A CN202310967654A CN116933238A CN 116933238 A CN116933238 A CN 116933238A CN 202310967654 A CN202310967654 A CN 202310967654A CN 116933238 A CN116933238 A CN 116933238A
- Authority
- CN
- China
- Prior art keywords
- call
- calling
- identifier
- key value
- verification
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 159
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000013475 authorization Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 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
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请提供一种应用程序接口调用验证方法、电子设备和存储介质,该方法应用于调用系统中的应用程序接口管理系统;调用系统包括调用方、被调用方以及应用程序接口管理系统;应用程序接口管理系统均与调用方和被调用通信;该方法包括接收远程调用请求信息;其中,远程调用请求信息通过调用方采用签名认证服务器的秘钥加密生成,远程调用请求信息包括调用方的第一标识和调用秘钥值,调用秘钥值通过所述第一标识和被调用方对应的第二标识进行目标哈希运算生成;对远程调用请求信息进行解密,获得远程调用请求信息中的第一标识和调用秘钥值;根据第一标识和调用秘钥值,确定调用方是否调用验证通过。
Description
技术领域
本申请涉及安全防护技术领域,具体而言,涉及一种应用程序接口调用验证方法、电子设备和存储介质。
背景技术
应用程序接口(Application Programming Interface,API)是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。
目前的应用程序接口调用方式一般是采用Spring Cloud微服务,运用SpringCloud的一套现有技术进行服务注册,具体是用户在API开放平台注册账号,确认成为平台开发者或能力调用者,分配时认证授权的客户端ID和认证授权的签名,然后通过签名验签从而实现应用程序接口的调用。
然而目前采用的方式整个验证过程仅通过签名进行调用验证,存在安全性较低的问题。
发明内容
本申请实施例的目的在于提供一种应用程序接口调用验证方法、电子设备和存储介质,用以解决目前API调用整个验证过程仅通过签名进行调用验证带来的安全性较低的问题。
第一方面,本发明提供一种应用程序接口调用验证方法,该方法应用于调用系统中的应用程序接口管理系统;调用系统包括调用方、被调用方以及应用程序接口管理系统;应用程序接口管理系统均与调用方和被调用通信;该方法包括接收远程调用请求信息;其中,远程调用请求信息通过调用方采用签名认证服务器的秘钥加密生成,远程调用请求信息包括调用方的第一标识和调用秘钥值,调用秘钥值通过所述第一标识和被调用方对应的第二标识进行目标哈希运算生成;对远程调用请求信息进行解密,获得远程调用请求信息中的第一标识和调用秘钥值;根据第一标识和调用秘钥值,确定调用方是否调用验证通过。
上述设计的应用程序接口调用验证方法,本方案通过应用程序接口管理系统接收调用方发送的远程调用请求信息后,首先对远程调用请求信息进行验签解密,获得远程调用请求信息中的第一标识和调用秘钥值,然后根据第一标识和调用秘钥值以及被调用方对应的第二标识的一致性确定调用方是否调用验证通过,从而使得设计的应用程序接口调用验证方法不仅通过验签方式提高安全性,还通过调用秘钥值、第一标识和第二标识的一致性确定是否验证通过,从而通过简单的加密算法实现接口调用的进一步验证,进而进一步提高应用程序接口调用的安全性。
在第一方面的可选实施方式中,其中,被调用方的第二标识存储在被调用方系统内;根据第一标识和调用秘钥值,确定调用方是否调用验证通过,包括:将第一标识和调用秘钥值发送给被调用方;其中,第一标识和调用秘钥值用于被调用方根据第一标识、调用秘钥值以及自身标识对调用方的调用请求进行验证;若接收到被调用方返回的验证成功信息,则确定调用方调用验证通过。本实施方式通过被调用方实现调用方调用验证是否通过的判定,从而避免应用程序接口管理系统故障或被入侵带来的安全性低的问题,从而提高调用方调用验证的安全性。
在第一方面的可选实施方式中,其中,被调用方的第二标识存储在应用程序接口管理系统内;根据第一标识和调用秘钥值,确定调用方是否调用验证通过,包括:将被调用方对应的第二标识和第一标识进行目标哈希运算生成第一验证秘钥值;判断第一验证秘钥值与调用秘钥值是否相同;若判定第一验证秘钥值与调用秘钥值相同,则确定调用方调用验证通过。本实施方式通过应用程序接口管理系统实现调用方调用验证是否通过的判定,从而提高调用方调用验证的效率。
在第一方面的可选实施方式中,在接收远程调用请求信息之前,该方法还包括:接收调用方和被调用方的远程调用注册请求信息;根据调用方的远程调用注册请求信息,对调用方进行注册;根据被调用方的远程调用注册请求信息对被调用方进行注册,并生成被调用方对应的第二标识。本实施方式在被调用方注册阶段生成对应的第二标识,进而便于后续调用阶段的一致性验证。
在第一方面的可选实施方式中,在接收远程调用请求信息之前,该方法还包括:接收调用方的远程调用配置请求;根据远程调用配置请求,获取调用方的第一标识和注册的被调用方对应的第二标识;根据第一标识和注册的被调用方对应的第二标识,利用目标哈希运算生成调用秘钥值;向调用方发送第一标识和调用秘钥值。本实施方式提前利用第一标识和被调用方对应的第二标识生成调用秘钥值并发送给调用方,提高后续的调用验证效率。
在第一方面的可选实施方式中,该方法还包括:接收本地调用请求信息;其中,本地调用请求信息包括调用方传输的调用签名文件,调用签名文件通过签名认证服务器的公钥对调用文件进行加密获得;判断利用签名认证服务器的私钥是否对调用签名文件解密成功;若利用签名认证服务器的私钥对调用签名文件解密成功,则向调用方返回验签通过信息;其中,验签通过信息用于调用方对调用签名文件中的调用文件进行调用。
在第一方面的可选实施方式中,在接收本地调用请求信息之前,该方法还包括:接收被调用方的本地调用注册请求信息;其中,本地调用注册请求信息包括调用文件;在接收到调用方的本地调用配置请求的情况下,利用签名认证服务器的公钥对调用文件进行加密,以获得调用签名文件;向调用方发送调用签名文件。
上述设计的实施方式,本方案不仅可以使用远程调用,还可采用本地调用类型,从而提高本方案设计的应用程序接口调用的适应性。
第二方面,本发明提供一种应用程序接口调用验证装置,该装置设置于调用系统中的应用程序接口管理系统;调用系统包括调用方、被调用方以及应用程序接口管理系统;应用程序接口管理系统均与调用方和被调用通信;该装置包括:第一接收模块、解密模块以及第一确定模块;该第一接收模块,用于接收远程调用请求信息;其中,远程调用请求信息通过调用方采用签名认证服务器的秘钥加密生成,远程调用请求信息包括调用方的第一标识和调用秘钥值,调用秘钥值通过所述第一标识和被调用方对应的第二标识进行目标哈希运算生成;该解密模块,用于对远程调用请求信息进行解密,获得远程调用请求信息中的第一标识和调用秘钥值;该第一确定模块,用于根据第一标识和调用秘钥值,确定调用方是否调用验证通过。
上述设计的资产管理装置,本方案通过应用程序接口管理系统接收调用方发送的远程调用请求信息后,首先对远程调用请求信息进行验签解密,获得远程调用请求信息中的第一标识和调用秘钥值,然后根据第一标识和调用秘钥值以及被调用方对应的第二标识的一致性确定调用方是否调用验证通过,从而使得设计的应用程序接口调用验证方法不仅通过验签方式提高安全性,还通过调用秘钥值、第一标识和第二标识的一致性确定是否验证通过,从而通过简单的加密算法实现接口调用的进一步验证,进而进一步提高应用程序接口调用的安全性。
在第二方面的可选实施方式中,其中,被调用方的第二标识存储在被调用方系统内;该第一确定模块,具体用于将第一标识和调用秘钥值发送给被调用方;其中,第一标识和调用秘钥值用于被调用方根据第一标识、调用秘钥值以及自身标识对调用方的调用请求进行验证;若接收到被调用方返回的验证成功信息,则确定调用方调用验证通过。
在第二方面的可选实施方式中,其中,被调用方的第二标识存储在应用程序接口管理系统内,该第一确定模块,具体用于根据第一标识和调用秘钥值,确定调用方是否调用验证通过,包括:将被调用方标和第一标识进行目标哈希运算生成第一验证秘钥值;判断第一验证秘钥值与调用秘钥值是否相同;若判定第一验证秘钥值与调用秘钥值相同,则确定调用方调用验证通过。
在第二方面的可选实施方式中,该第一接收模块,还用于在接收远程调用请求信息之前,接收调用方和被调用方的远程调用注册请求信息;注册模块,用于根据调用方的远程调用注册请求信息,对调用方进行注册;根据被调用方的远程调用注册请求信息对被调用方进行注册,并生成被调用方对应的第二标识。
在第二方面的可选实施方式中,该第一接收模块,还用于在接收远程调用请求信息之前,接收调用方的远程调用配置请求;获取模块,用于根据远程调用配置请求,获取调用方的第一标识和注册的被调用方对应的第二标识;第一生成模块,用于根据第一标识和注册的被调用方对应的第二标识,利用目标哈希运算生成调用秘钥值;发送模块,用于向调用方发送第一标识和调用秘钥值。
在第二方面的可选实施方式中,该第一接收模块,还用于接收本地调用请求信息;其中,本地调用请求信息包括调用方传输的调用签名文件,调用签名文件通过签名认证服务器的公钥对调用文件进行加密获得;第一判断模块,用于判断利用签名认证服务器的私钥是否对调用签名文件解密成功;该发送模块,还用于在第一判断模块判断利用签名认证服务器的私钥对调用签名文件解密成功之后,向调用方返回验签通过信息;其中,验签通过信息用于调用方对调用签名文件中的调用文件进行调用。
在第二方面的可选实施方式中,该第一接收模块,还用于在接收本地调用请求信息之前,接收被调用方的本地调用注册请求信息;其中,本地调用注册请求信息包括调用文件;加密模块,用于在接收到调用方的本地调用配置请求的情况下,利用签名认证服务器的公钥对调用文件进行加密,以获得调用签名文件;该发送模块,还用于向调用方发送调用签名文件。
第三方面,本申请还提供一种应用程序接口调用验证方法,该方法应用于调用系统中的被调用方,调用系统包括调用方、所述被调用方以及应用程序接口管理系统;应用程序接口管理系统均与调用方和被调用方通信;该方法包括:接收应用程序接口管理系统发送的调用方的第一标识和调用秘钥值,调用秘钥值通过调用方的第一标识和被调用方的第二标识进行目标哈希运算预先生成;对第一标识和自身标识进行目标哈希运算,生成第二验证秘钥值;判断第二验证秘钥值与调用秘钥值是否相同;若第二验证秘钥值与调用秘钥值相同,则确定调用方的调用验证通过。
上述设计的应用程序接口调用验证方法,本方案通过应用程序接口管理系统接收调用方发送的远程调用请求信息后,首先对远程调用请求信息进行验签解密,获得远程调用请求信息中的第一标识和调用秘钥值,然后将获得的第一标识和调用秘钥值转发给被调用方,被调用方采用第一标识、调用秘钥值和自身的第二标识进行一致性验证,从而实现调用方的调用验证,提高应用程序接口调用的安全性。
第四方面,本申请提供一种应用程序接口调用验证装置,该装置设置于调用系统中的被调用方,调用系统包括调用方、所述被调用方以及应用程序接口管理系统;应用程序接口管理系统均与调用方和被调用方通信;该装置包括:第二接收模块、第二生成模块、第二判断模块以及第二确定模块;该第二接收模块,用于接收应用程序接口管理系统发送的调用方的第一标识和调用秘钥值,调用秘钥值通过调用方的第一标识和被调用方的第二标识进行目标哈希运算预先生成;该第二生成模块,用于对第一标识和自身标识进行目标哈希运算,生成第二验证秘钥值;该第二判断模块,用于判断第二验证秘钥值与调用秘钥值是否相同;该第二确定模块,用于在第二判断模块判断第二验证秘钥值调用秘钥值相同之后确定调用方的调用验证通过。
上述设计的应用程序接口调用验证装置,本方案通过应用程序接口管理系统接收调用方发送的远程调用请求信息后,首先对远程调用请求信息进行验签解密,获得远程调用请求信息中的第一标识和调用秘钥值,然后将获得的第一标识和调用秘钥值转发给被调用方,被调用方采用第一标识、调用秘钥值和自身的第二标识进行一致性验证,从而实现调用方的调用验证,提高应用程序接口调用的安全性。
第五方面,本申请提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时执行第一方面、第一方面中任一可选的实现方式以及第三方面中的所述方法。
第六方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时执行第一方面、第一方面中任一可选的实现方式以及第三方面中的所述方法。
第七方面,本申请提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一方面、第一方面中任一可选的实现方式以及第三方面中的所述方法。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的调用系统的第一结构示意图;
图2为本申请实施例提供的调用系统的第二结构示意图;
图3为本申请实施例提供的一种应用程序接口调用验证方法的第一流程示意图;
图4为本申请实施例提供的一种应用程序接口调用验证方法的第二流程示意图;
图5为本申请实施例提供的一种应用程序接口调用验证方法的第三流程示意图;
图6为本申请实施例提供的一种应用程序接口调用验证方法的第四流程示意图;
图7为本申请实施例提供的另一种应用程序接口调用验证方法的流程示意图;
图8为本申请实施例提供的一种应用程序接口调用验证装置的结构示意图;
图9为本申请实施例提供的又一种应用程序接口调用验证装置的结构示意图;
图10为本申请实施例提供的电子设备的结构示意图。
图标:10-调用方;10A-第一调用方;10B-第二调用方;10C-第三调用方;20-被调用方;20A-第一被调用方;20B-第二被调用方;20C-第三被调用方;30-应用程序接口管理系统;800-第一接收模块;810-解密模块;820-第一确定模块;830-注册模块;840-获取模块;850-第一生成模块;860-发送模块;870-第一判断模块;880-加密模块;900-第二接收模块;910-第二生成模块;920-第二判断模块;930-第二确定模块;10-电子设备;1001-处理器;1002-存储器;1003-通信总线。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组),“多片”指的是两片以上(包括两片)。
在本申请实施例的描述中,技术术语“中心”“纵向”“横向”“长度”“宽度”“厚度”“上”“下”“前”“后”“左”“右”“竖直”“水平”“顶”“底”“内”“外”“顺时针”“逆时针”“轴向”“径向”“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请实施例的限制。
在本申请实施例的描述中,除非另有明确的规定和限定,技术术语“安装”“相连”“连接”“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;也可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请实施例中的具体含义。
目前的应用程序接口(Application Programming Interface,API)调用方式一般是采用Spring Cloud微服务,运用Spring Cloud的一套现有技术进行服务注册,具体是用户在API开放平台注册账号,确认成为平台开发者或能力调用者,分配时认证授权的客户端ID和认证授权的密码,然后通过密码验签从而实现应用程序接口的调用。
本发明人发现,目前采用的方式整个验证过程仅通过签名进行调用验证,这样使得目前的应用程序接口调用存在安全性较低的问题;同时,并且目前调用方式除了远程调用手段以外,不支持本地调用。
本发明人针对上述问题,提出一种应用程序接口调用方法、电子设备和存储介质,提前根据调用方和被调用方对应的标识生成调用秘钥值,并分配给对应的调用方,在调用阶段除了验签以外,还通过调用方标识和被调用方标识来生成验证秘钥值,从而通过调用秘钥值和验证秘钥值的一致性确定是否调用验证成功,进而提高应用程序接口调用的安全性;同时,本方案在支持远程调用的同时还支持本地调用,从而提高应用程序接口的适应性。
基于上述思路,本申请提供一种应用程序接口调用系统,如图1所示,该应用程序接口调用系统包括调用方10、被调用方20以及应用程序接口管理系统30;应用程序接口管理系统30均与调用方10和被调用20通信。
作为一种可能的实施方式,调用方10和被调用方20的数量均可为多个,例如,如图2所示的,第一调用方10A、第二调用方10B以及第三调用方10C,第一被调用方20A、第二被调用方20B以及第三被调用方20C等。
基于上述应用程序接口调用系统,本申请提供一种应用程序接口调用方法,该方法可应用于应用程序接口管理系统,如图3所示,该方法可通过如下方式实现,包括:
步骤S300:接收远程调用请求信息。
步骤S310:对远程调用请求信息进行解密,获得远程调用请求信息中的第一标识和调用秘钥值。
步骤S320:根据第一标识和调用秘钥值,确定调用方是否调用验证通过。
在上述实施方式中,远程调用请求信息通过调用方发送获得,其中,远程调用请求信息可通过调用方可采用签名认证服务器的秘钥加密生成,具体可通过调用方采用签名认证服务器的公钥加密生成,该远程调用请求信息中可具体包括调用方的第一标识APP_ID和调用秘钥值APP_SECRET,该调用秘钥值APP_SECRET可提前通过第一标识APP_ID和被调用方对应的第二标识ERP_ID进行目标哈希运算生成进而下发给调用方获得。
其中,被调用方对应的第二标识ERP_ID可在被调用方进行远程调用注册阶段生成,具体地,应用程序接口管理系统可接收调用方和被调用方的远程调用注册请求信息,然后根据调用方的远程调用注册请求信息,对调用方进行注册,根据被调用方的远程调用注册请求信息对被调用进行注册,并生成被调用方对应的第二标识ERP_ID。
这里需要说明的是,当存在多个被调用方进行远程调用注册的情况下,不同的调用方对应生成的第二标识ERP_ID不同,例如,前文描述的第一被调用方20A、第二被调用方20B以及第三被调用方20C进行远程调用注册生成的第二标识ERP_ID不同。作为一种具体的示例,第一被调用方20A生成的第二标识ERP_ID为第二标识ERP_ID1,第二被调用方20B生成的第二标识ERP_ID为第二标识ERP_ID2,第三被调用方20C生成的第二标识ERP_ID为第二标识ERP_ID3。
其中,生成的被调用方对应的第二标识ERP_ID可存储在对应的被调用方的系统内,也可以存储在应用程序接口管理系统中。当第二标识ERP_ID存储在应用程序接口管理系统中的情况下,不同调用方的第二标识ERP_ID可与不同调用方的名称等建立对应的映射关系,进而便于不同的被调用方的第二标识ERP_ID的区分。
在本实施例的可选实施方式中,前文描述到调用秘钥值APP_SECRET可提前通过第一标识APP_ID和被调用方对应的第二标识ERP_ID进行目标哈希运算生成。具体地,应用程序接口管理系统可接收调用方的远程调用配置请求,然后根据远程调用配置请求,获取调用方的第一标识和注册的被调用方对应的第二标识,其中,调用方的第一标识APP_ID为用户唯一标识,可使用UUID或固定长度的随机数,不同的调用方对应的第一标识APP_ID也不同,例如,前文描述的调用方10A、10B以及10C对应的第一标识APP_ID不同,第一调用方10A对应APP_ID1,第二调用方10B对应APP_ID2,第三调用方10C对应APP_ID3。
应用程序接口管理系统根据获取的调用方的第一标识APP_ID和注册的被调用方对应的第二标识ERP_ID,利用目标哈希运算生成调用秘钥值。具体地,应用程序接口管理系统可利用SM3哈希算法对第一标识APP_ID和注册的被调用方对应的第二标识ERP_ID做摘要值,从而得到调用秘钥值APP_SECRET。
这里需要说明的是,同一调用方与不同的被调用方生成的调用秘钥值不同,例如,第一调用方10A申请配置第一被调用方20A和第二被调用方20B,应用程序接口管理系统根据第一调用方10A对应的第一标识APP_ID1与第一被调用方20A对应的第二标识ERP_ID1进行SM3哈希运算,获得调用秘钥值APP_SECRET1,并利用第一调用方10A对应的第一标识APP_ID1与第二被调用方20B对应的第二标识ERP_ID2进行SM3哈希运算,获得调用秘钥值APP_SECRET2。
另外,不同调用方与同一被调用方生成的调用秘钥值也不同,例如,第一调用方10A申请配置第一被调用方20A,第二调用方10B也申请配置第一被调用方20A,在此基础上,应用程序接口管理系统根据调用方10A对应的第一标识APP_ID1与第一被调用方20A对应的第二标识ERP_ID1进行SM3哈希运算,获得调用秘钥值APP_SECRETA1;并根据第二调用方10B对应的第一标识APP_ID2与第一被调用方20A对应的第二标识ERP_ID1进行SM3哈希运算,获得调用秘钥值APP_SECRETB1。
应用程序接口管理系统在生成调用秘钥值APP_SECRET的情况下,可将调用秘钥值APP_SECRET和调用方的第一标识APP_ID生成授权码文件,调用方可在登录应用程序接口管理系统后下载自己对应的授权码文件即可获得自身的第一标识APP_ID和对应的调用秘钥值APP_SECRET。例如,前文举例的,应用程序接口管理系统可将第一调用方10A的第一标识APP_ID1和APP_SECRETA1生成授权码文件,第一调用方10A可登录应用程序接口管理系统下载即可获得对应的APP_ID1和调用秘钥值APP_SECRETA1。
通过上述方式即可得知调用方发送的远程调用请求信息中的第一标识和调用秘钥值的来源,应用程序接口管理系统在获得远程调用请求信息的情况下,应用程序接口管理系统可首先采用签名认证服务器的秘钥对远程调用请求信息进行解密验签。具体地,应用程序接口管理系统可首先采用签名认证服务器的公钥对应的私钥对远程调用请求信息进行验签,解密后获得远程调用请求信息中的调用方的第一标识APP_ID和调用秘钥值APP_SECRET,然后根据第一标识和调用秘钥值,确定调用方是否调用验证通过。
作为一种可能的实施方式,每个被调用方的第二标识可以存储在应用程序接口管理系统中,在此基础上,应用程序接口管理系统可自行对调用方是否调用验证通过进行判定,如图4所示,包括:
步骤S400:将被调用方对应的第二标识和第一标识进行目标哈希运算生成第一验证秘钥值。
步骤S410:判断第一验证秘钥值与调用秘钥值是否相同,若相同,则转到步骤S420。
步骤S420:确定调用方调用验证通过。
在本实施方式中,远程调用请求信息中还可以包括被调用方信息,例如被调用方名称,在此基础上,应用程序接口管理系统可根据被调用方名称查找被调用方名称对应的第二标识,然后应用程序接口管理系统可根据远程调用请求信息中的第一标识和查找获得的第二标识进行目标哈希运算(SM3哈希运算)生成第一验证秘钥值APP_TSV,然后将生成的第一验证秘钥值APP_TSV与远程调用请求信息中的调用秘钥值APP_SECRET进行比对,若生成的第一验证秘钥值APP_TSV与远程调用请求信息中的调用秘钥值APP_SECRET相同,那么则确定调用方调用验证通过,应用程序接口管理系统可根据远程调用请求信息中的调用信息调用对应被调用方对应的数据,并返回给调用方;若生成的第一验证秘钥值APP_TSV与远程调用请求信息中的调用秘钥值APP_SECRET不相同,则确定调用方调用验证不通过。
作为另一种可能的实施方式,被调用方的第二标识可以存储在被调用方自身的系统中,在此基础上,应用程序接口管理系统可通过如下方式对调用方是否调用验证通过进行判定,如图5所示,包括:
步骤S500:将第一标识和调用秘钥值发送给被调用方。
步骤S510:若接收到被调用方返回的验证成功信息,则确定调用方调用验证通过。
在本实施方式中,由于被调用的第二标识存储在自身的系统中,因此,应用程序接口管理系统则将解密后获得远程调用请求信息中的第一标识和调用秘钥值发送给对应的被调用方,被调用方对第一标识和自身标识进行目标哈希运算,生成第二验证秘钥值,然后被调用方判断第二验证秘钥值与调用秘钥值是否相同,若被调用方判断第二验证秘钥值与调用秘钥值相同,则确定调用方的调用验证通过,进而将调用方调用所需的数据通过应用程序接口管理系统返回给调用方。
上述实施方式,本方案通过被调用方根据第一标识和调用秘钥值和自身的第二标识判定调用方的调用验证是否通过,从而避免应用程序接口管理系统被入侵带来的安全问题,从而提高被调用方接口调用的安全性。
上述设计的应用程序接口调用验证方法,本方案通过应用程序接口管理系统接收调用方发送的远程调用请求信息后,首先对远程调用请求信息进行验签解密,获得远程调用请求信息中的第一标识和调用秘钥值,然后根据第一标识和调用秘钥值以及被调用方对应的第二标识的一致性确定调用方是否调用验证通过,从而使得设计的应用程序接口调用验证方法不仅通过验签方式提高安全性,还通过调用秘钥值、第一标识和第二标识的一致性确定是否验证通过,从而通过简单的加密算法实现接口调用的进一步验证,进而进一步提高应用程序接口调用的安全性。
在本实施例的可选实施方式中,除了前文描述远程调用以外,本方案还可实现本地调用模式,如图6所示,可通过如下方式实现,包括:
步骤S600:接收本地调用请求信息。
步骤S610:判断利用所述签名认证服务器的私钥是否对调用签名文件解密成功,若解密成功,则转到步骤S620。
步骤S620:向调用方返回验签通过信息。
在上述实施方式中,该本地调用请求信息中可包括调用方传输的调用签名文件,该调用签名文件通过签名认证服务器的公钥对调用文件进行加密获得,该调用文件包含调用方所需调用的数据信息等。
作为一种可能的实施方式,应用程序接口管理系统可接收被调用方的本地调用注册请求信息,该本地调用注册请求信息可包括该调用文件,在接收到调用方的本地调用配置请求的情况下,应用程序接口管理系统利用签名认证服务器的公钥对调用文件进行加密,以获得调用签名文件,然后应用程序接口管理系统将调用签名文件发送给申请本地调用配置请求的调用方,从而使得调用方获得该调用签名文件,但由于调用签名文件已加密,调用方需要向应用程序接口管理系统验证调用权限才能获得调用签名文件内部的调用文件。
因此,应用程序接口管理系统需要判断利用签名认证服务器的私钥是否对调用签名文件解密成功,若解密成功,则说明调用方可对该调用文件进行使用,从而向调用方返回验签通过信息,其中,该验签通过信息用于调用方对调用签名文件中的调用文件进行调用。
上述设计的实施方式,本方案不仅可以使用远程调用,还可采用本地调用类型,从而提高本方案设计的应用程序接口调用的适应性。
本申请还提供一种应用程序接口调用验证方法,该方法可应用于前文描述的被调用方,如图7所示,该方法可通过如下方式实现,包括:
步骤S700:接收应用程序接口管理系统发送的调用方的第一标识和调用秘钥值。
步骤S710:对第一标识和自身标识进行目标哈希运算,生成第二验证秘钥值。
步骤S720:判断第二验证秘钥值与调用秘钥值是否相同,若相同,则转到步骤S730。
步骤S730:确定调用方的调用验证通过。
上述实施方式与前文实施例描述的被调用方采用第一标识、调用秘钥值和自身的第二标识进行一致性验证的实施过程一致,在这里不再赘述。
上述设计的应用程序接口调用验证方法,本方案通过应用程序接口管理系统接收调用方发送的远程调用请求信息后,首先对远程调用请求信息进行验签解密,获得远程调用请求信息中的第一标识和调用秘钥值,然后将获得的第一标识和调用秘钥值转发给被调用方,被调用方采用第一标识、调用秘钥值和自身的第二标识进行一致性验证,从而实现调用方的调用验证,提高应用程序接口调用的安全性。
图8出示了本申请提供一种应用程序接口调用装置的示意性结构框图,应理解,该装置与图2至6中应用程序接口管理系统执行的方法实施例对应,能够执行前述的方法涉及的步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。具体地,该装置包括:第一接收模块800、解密模块810以及第一确定模块820;该第一接收模块800,用于接收远程调用请求信息;其中,远程调用请求信息通过调用方采用签名认证服务器的秘钥加密生成,远程调用请求信息包括调用方的第一标识和调用秘钥值,调用秘钥值通过所述第一标识和被调用方对应的第二标识进行目标哈希运算生成;该解密模块810,用于对远程调用请求信息进行解密,获得远程调用请求信息中的第一标识和调用秘钥值;该第一确定模块820,用于根据第一标识和调用秘钥值,确定调用方是否调用验证通过。
上述设计的应用程序接口调用装置,本方案通过应用程序接口管理系统接收调用方发送的远程调用请求信息后,首先对远程调用请求信息进行验签解密,获得远程调用请求信息中的第一标识和调用秘钥值,然后根据第一标识和调用秘钥值以及被调用方对应的第二标识的一致性确定调用方是否调用验证通过,从而使得设计的应用程序接口调用验证方法不仅通过验签方式提高安全性,还通过调用秘钥值、第一标识和第二标识的一致性确定是否验证通过,从而通过简单的加密算法实现接口调用的进一步验证,进而进一步提高应用程序接口调用的安全性。
在本实施例的可选实施方式中,其中,被调用方的第二标识存储在被调用方系统内;该第一确定模块820,具体用于将第一标识和调用秘钥值发送给被调用方;其中,第一标识和调用秘钥值用于被调用方根据第一标识、调用秘钥值以及自身标识对调用方的调用请求进行验证;若接收到被调用方返回的验证成功信息,则确定调用方调用验证通过。
在本实施例的可选实施方式中,其中,被调用方的第二标识存储在应用程序接口管理系统内,该第一确定模块820,具体用于根据第一标识和调用秘钥值,确定调用方是否调用验证通过,包括:将被调用方标和第一标识进行目标哈希运算生成第一验证秘钥值;判断第一验证秘钥值与调用秘钥值是否相同;若判定第一验证秘钥值与调用秘钥值相同,则确定调用方调用验证通过。
在本实施例的可选实施方式中,该第一接收模块800,还用于在接收远程调用请求信息之前,接收调用方和被调用方的远程调用注册请求信息;注册模块830,用于根据调用方的远程调用注册请求信息,对调用方进行注册;根据被调用方的远程调用注册请求信息对被调用方进行注册,并生成被调用方对应的第二标识。
在本实施例的可选实施方式中,该第一接收模块800,还用于在接收远程调用请求信息之前,接收调用方的远程调用配置请求;获取模块840,用于根据远程调用配置请求,获取调用方的第一标识和注册的被调用方对应的第二标识;第一生成模块850,用于根据第一标识和注册的被调用方对应的第二标识,利用目标哈希运算生成调用秘钥值;发送模块860,用于向调用方发送第一标识和调用秘钥值。
在本实施例的可选实施方式中,该第一接收模块800,还用于接收本地调用请求信息;其中,本地调用请求信息包括调用方传输的调用签名文件,调用签名文件通过签名认证服务器的公钥对调用文件进行加密获得;第一判断模块870,用于判断利用签名认证服务器的私钥是否对调用签名文件解密成功;该发送模块860,还用于在第一判断模块判断利用签名认证服务器的私钥对调用签名文件解密成功之后,向调用方返回验签通过信息;其中,验签通过信息用于调用方对调用签名文件中的调用文件进行调用。
在本实施例的可选实施方式中,该第一接收模块800,还用于在接收本地调用请求信息之前,接收被调用方的本地调用注册请求信息;其中,本地调用注册请求信息包括调用文件;加密模块880,用于在接收到调用方的本地调用配置请求的情况下,利用签名认证服务器的公钥对调用文件进行加密,以获得调用签名文件;该发送模块860,还用于向调用方发送调用签名文件。
图9出示了本申请提供一种应用程序接口调用装置的示意性结构框图,应理解,该装置与图7中被调用方执行的方法实施例对应,能够执行前述的方法涉及的步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。具体地,该装置包括:第二接收模块900、第二生成模块910、第二判断模块920以及第二确定模块930;该第二接收模块900,用于接收应用程序接口管理系统发送的调用方的第一标识和调用秘钥值,调用秘钥值通过调用方的第一标识和被调用方的第二标识进行目标哈希运算预先生成;该第二生成模块910,用于对第一标识和自身标识进行目标哈希运算,生成第二验证秘钥值;该第二判断模块920,用于判断第二验证秘钥值与调用秘钥值是否相同;该第二确定模块930,用于在第二判断模块判断第二验证秘钥值调用秘钥值相同之后确定调用方的调用验证通过。
上述设计的应用程序接口调用装置,本方案通过应用程序接口管理系统接收调用方发送的远程调用请求信息后,首先对远程调用请求信息进行验签解密,获得远程调用请求信息中的第一标识和调用秘钥值,然后将获得的第一标识和调用秘钥值转发给被调用方,被调用方采用第一标识、调用秘钥值和自身的第二标识进行一致性验证,从而实现调用方的调用验证,提高应用程序接口调用的安全性。
根据本申请的一些实施例,如图10所示,本申请提供一种电子设备10,包括:处理器1001和存储器1002,处理器1001和存储器1002通过通信总线1003和/或其他形式的连接机构(未标出)互连并相互通讯,存储器1002存储有处理器1001可执行的计算机程序,当计算设备运行时,处理器1001执行该计算机程序,以执行时执行任一可选的实现方式中外端机执行的方法,例如步骤S300至步骤S320:接收远程调用请求信息;对远程调用请求信息进行解密,获得远程调用请求信息中的第一标识和调用秘钥值;根据第一标识和调用秘钥值,确定调用方是否调用验证通过。或,步骤S700至步骤S730:接收应用程序接口管理系统发送的调用方的第一标识和调用秘钥值;对第一标识和自身标识进行目标哈希运算,生成第二验证秘钥值;判断第二验证秘钥值与调用秘钥值是否相同,若相同,则确定调用方的调用验证通过。
本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前述任一可选的实现方式中的方法。
其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请提供一种计算机程序产品,该计算机程序产品在计算机上运行时,使得计算机执行任一可选的实现方式中的方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本申请并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。
Claims (10)
1.一种应用程序接口调用验证方法,其特征在于,所述方法应用于调用系统中的应用程序接口管理系统;所述调用系统包括调用方、被调用方以及所述应用程序接口管理系统;所述应用程序接口管理系统均与调用方和被调用通信;所述方法包括:
接收远程调用请求信息;其中,所述远程调用请求信息通过调用方采用签名认证服务器的秘钥加密生成,所述远程调用请求信息包括调用方的第一标识和调用秘钥值,所述调用秘钥值通过所述第一标识和被调用方对应的第二标识进行目标哈希运算生成;
对所述远程调用请求信息进行解密,获得所述远程调用请求信息中的第一标识和调用秘钥值;
根据所述第一标识和调用秘钥值,确定所述调用方是否调用验证通过。
2.根据权利要求1所述的方法,其特征在于,其中,所述被调用方的第二标识存储在所述被调用方系统内;所述根据所述第一标识和调用秘钥值,确定所述调用方是否调用验证通过,包括:
将所述第一标识和调用秘钥值发送给所述被调用方;其中,所述第一标识和调用秘钥值用于所述被调用方根据所述第一标识、调用秘钥值以及自身标识对所述调用方的调用请求进行验证;
若接收到所述被调用方返回的验证成功信息,则确定所述调用方调用验证通过。
3.根据权利要求1所述的方法,其特征在于,其中,所述被调用方的第二标识存储在应用程序接口管理系统内;所述根据所述第一标识和调用秘钥值,确定所述调用方是否调用验证通过,包括:
将被调用方对应的第二标识和所述第一标识进行所述目标哈希运算生成第一验证秘钥值;
判断所述第一验证秘钥值与所述调用秘钥值是否相同;
若判定所述第一验证秘钥值与所述调用秘钥值相同,则确定所述调用方调用验证通过。
4.根据权利要求1所述的方法,其特征在于,在所述接收远程调用请求信息之前,所述方法还包括:
接收所述调用方和被调用方的远程调用注册请求信息;
根据所述调用方的远程调用注册请求信息,对所述调用方进行注册;
根据所述被调用方的远程调用注册请求信息对所述被调用方进行注册,并生成所述被调用方对应的第二标识。
5.根据权利要求1所述的方法,其特征在于,在所述接收远程调用请求信息之前,所述方法还包括:
接收所述调用方的远程调用配置请求;
根据所述远程调用配置请求,获取所述调用方的第一标识和注册的被调用方对应的第二标识;
根据所述第一标识和注册的被调用方对应的第二标识,利用目标哈希运算生成所述调用秘钥值;
向所述调用方发送所述第一标识和所述调用秘钥值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收本地调用请求信息;其中,所述本地调用请求信息包括调用方传输的调用签名文件,所述调用签名文件通过签名认证服务器的公钥对调用文件进行加密获得;
判断利用所述签名认证服务器的私钥是否对调用签名文件解密成功;
若利用所述签名认证服务器的私钥对所述调用签名文件解密成功,则向所述调用方返回验签通过信息;其中,所述验签通过信息用于所述调用方对所述调用签名文件中的调用文件进行调用。
7.根据权利要求6所述的方法,其特征在于,在所述接收本地调用请求信息之前,所述方法还包括:
接收被调用方的本地调用注册请求信息;其中,所述本地调用注册请求信息包括调用文件;
在接收到所述调用方的本地调用配置请求的情况下,利用签名认证服务器的公钥对所述调用文件进行加密,以获得所述调用签名文件;
向所述调用方发送所述调用签名文件。
8.一种应用程序接口调用验证方法,其特征在于,所述方法应用于调用系统中的被调用方,所述调用系统包括调用方、所述被调用方以及应用程序接口管理系统;所述应用程序接口管理系统均与调用方和被调用方通信;包括:
接收所述应用程序接口管理系统发送的调用方的第一标识和调用秘钥值,所述调用秘钥值通过所述调用方的第一标识和被调用方的第二标识进行目标哈希运算预先生成;
对所述第一标识和自身标识进行所述目标哈希运算,生成第二验证秘钥值;
判断所述第二验证秘钥值与所述调用秘钥值是否相同;
若所述第二验证秘钥值与所述调用秘钥值相同,则确定调用方的调用验证通过。
9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项或权利要求8所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项或权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310967654.0A CN116933238A (zh) | 2023-08-02 | 2023-08-02 | 应用程序接口调用验证方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310967654.0A CN116933238A (zh) | 2023-08-02 | 2023-08-02 | 应用程序接口调用验证方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116933238A true CN116933238A (zh) | 2023-10-24 |
Family
ID=88382514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310967654.0A Pending CN116933238A (zh) | 2023-08-02 | 2023-08-02 | 应用程序接口调用验证方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116933238A (zh) |
-
2023
- 2023-08-02 CN CN202310967654.0A patent/CN116933238A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9281949B2 (en) | Device using secure processing zone to establish trust for digital rights management | |
US10659444B2 (en) | Network-based key distribution system, method, and apparatus | |
US9867043B2 (en) | Secure device service enrollment | |
US9032493B2 (en) | Connecting mobile devices, internet-connected vehicles, and cloud services | |
FI115257B (fi) | Menetelmä informaation käsittelemiseksi elektroniikkalaitteessa, järjestelmä, elektroniikkalaite ja suoritinlohko | |
JP4996817B2 (ja) | 装置に結合されたフラッシュ動作/起動動作によるクローン作成防止方法 | |
CN107181714B (zh) | 基于业务码的验证方法和装置、业务码的生成方法和装置 | |
US20140201517A1 (en) | Method and system for distributed off-line logon using one-time passwords | |
US10432600B2 (en) | Network-based key distribution system, method, and apparatus | |
CN111625829A (zh) | 基于可信执行环境的应用激活方法及装置 | |
US20200412554A1 (en) | Id as service based on blockchain | |
CN109714769B (zh) | 信息绑定方法、装置、设备及存储介质 | |
CN104753674A (zh) | 一种应用身份的验证方法和设备 | |
CN112688773A (zh) | 一种令牌的生成和校验方法及装置 | |
US20050114694A1 (en) | System and method for authentication of applications in a non-trusted network environment | |
CN111401901B (zh) | 生物支付设备的认证方法、装置、计算机设备和存储介质 | |
CN112187709A (zh) | 鉴权方法、设备及服务器 | |
JP2020074578A (ja) | 情報を登録および認証する方法およびデバイス | |
CN113765906A (zh) | 终端应用程序的一键登录的方法、设备及系统 | |
EP3851983B1 (en) | Authorization method, auxiliary authorization component, management server and computer readable medium | |
CN108322886B (zh) | 终端定位数据的鉴权方法和装置 | |
JP4998314B2 (ja) | 通信制御方法および通信制御プログラム | |
CN110287725B (zh) | 一种设备及其权限控制方法、计算机可读存储介质 | |
CN116933238A (zh) | 应用程序接口调用验证方法、电子设备和存储介质 | |
CN109936522B (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 |