CN112948143A - 一种应用程序调用方法、装置及调用系统 - Google Patents
一种应用程序调用方法、装置及调用系统 Download PDFInfo
- Publication number
- CN112948143A CN112948143A CN202110240732.8A CN202110240732A CN112948143A CN 112948143 A CN112948143 A CN 112948143A CN 202110240732 A CN202110240732 A CN 202110240732A CN 112948143 A CN112948143 A CN 112948143A
- Authority
- CN
- China
- Prior art keywords
- calling
- request
- application program
- application
- access
- 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 50
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000013475 authorization Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User 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/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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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
Abstract
本申请涉及一种应用程序调用方法、装置及调用系统,该技术方案在应用程序调用过程中,调用方基于认证鉴权服务器下发的访问权限记录,对应用程序之间的调用信息进行数字签名,被调用方则根据认证鉴权服务器下发的访问权限记录对调用方的身份和调用信息内容进行认证鉴权后,才允许应用程序的调用。这样,即便他人窃取到调用方身份和调用信息,也不能使用调用方身份进行非法调用以及通过对调用信息篡改重放进行非法调用,降低非法调用所造成的安全风险,提高应用程序之间调用的安全性和可靠性,从而避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序调用方法、装置及调用系统。
背景技术
随着互联网应用规模的不断增大,大量应用程序分布式地运行在成千上万台服务器上,通过网络互相调用,形成一个完整的功能系统。其中,应用程序被调用时可能会执行例如账户权益变更、银行扣款等敏感操作。
因此,需要一种安全可靠的应用程序调用方法,在应用程序之间进行调用的过程中,在验证调用方的身份真实且有权限后,才允许调用。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种应用程序调用方法、装置及调用系统。
根据本申请实施例的一个方面,提供了一种应用程序调用方法,包括:
获取第一应用程序对第二应用程序进行调用的调用信息,及所述第一应用程序作为调用方且所述第二应用程序作为被调用方的第一访问权限记录;其中,所述第一访问权限记录从认证鉴权服务器获得并存储;
根据所述第一访问权限记录,计算所述调用信息所对应的请求签名;
根据所述请求签名、第一访问权限记录及调用信息生成调用请求;
将所述调用请求发送到所述第二应用程序对应的第二应用服务器,由所述第二应用服务器从本地存储中查询到所述调用请求对应第二访问权限记录,且基于所述第二访问权限记录对所述调用请求验证通过时,执行所述调用请求。
可选的,所述第一访问权限记录中包括:访问密钥标识和秘密访问密钥;
所述根据所述第一访问权限记录,计算所述第一应用程序对所述第二应用程序的调用信息所对应的请求签名,包括:
获取所述调用信息对应的请求时间戳;
采用消息认证码算法,根据所述秘密访问密钥对所述调用信息及请求时间戳进行计算,得到所述请求签名;
所述根据所述请求签名、所述第一访问权限记录及调用信息生成调用请求,包括:
生成包括所述请求签名、访问密钥标识、调用信息及请求时间戳的调用请求。
根据本申请实施例的另一个方面,提供了一种应用程序调用方法,包括:
接收来自于第一应用服务器的调用请求;
查询所述调用请求对应的访问权限记录;其中,所述访问权限记录从认证鉴权服务器获得并存储;
根据所述访问权限记录对所述调用请求进行验证;
当验证通过时,执行所述调用请求。
可选的,所述调用信息包括:请求时间戳;
所述访问权限记录中包括:访问密钥标识和秘密访问密钥;
所述调用请求中包括:第一请求签名、访问密钥标识、调用信息及请求时间戳;
所述根据所述访问权限记录对所述调用请求进行验证,包括:
获取所述调用请求的接收时间;
采用消息认证码算法,根据所述秘密访问密钥对所述调用信息及所述请求时间戳进行计算,得到第二请求签名;
当所述接收时间与请求时间戳之间的时间间隔属于预设时间范围,且所述第二请求签名与所述第一请求签名一致时,对所述调用请求验证通过。
可选的,所述访问权限记录中包括:所述第一应用程序与第二应用程序对应的操作权限;
所述调用信息包括:所述调用请求的请求接口;
所述根据所述访问权限记录对所述调用请求进行验证,包括:
基于所述操作权限,验证所述第一应用程序对所述请求接口的调用权限。
根据本申请实施例的另一个方面,提供了一种应用程序调用装置,包括:
获取模块,用于获取第一应用程序对第二应用程序进行调用的调用信息,及所述第一应用程序作为调用方且所述第二应用程序作为被调用方的第一访问权限记录;其中,所述第一访问权限记录由所述第一应用程序从认证鉴权服务器获得并存储;
计算模块,用于根据所述第一访问权限记录,计算所述第一应用程序对所述第二应用程序的调用信息所对应的请求签名;
生成模块,用于根据所述请求签名、访问权限记录及调用信息生成调用请求;
发送模块,用于将所述调用请求发送到所述第二应用程序,由所述第二应用程序从本地存储中查询到所述调用请求对应第二访问权限记录,且基于所述第二访问权限记录对所述调用请求验证通过时,执行所述调用请求。
根据本申请实施例的另一个方面,提供了一种应用程序调用装置,包括:
接收模块,用于接收来自于第一应用程序的调用请求;
查询模块,用于查询所述访问密钥标识对应的访问权限记录;其中,所述访问权限记录由第二应用程序从认证鉴权服务器获得并存储;
验证模块,用于根据所述访问权限记录对所述调用请求进行验证;
执行模块,用于当验证通过时,执行所述调用请求。
根据本申请实施例的另一个方面,提供了一种调用系统,包括:认证鉴权服务器、第一应用服务器和第二应用服务器;
所述认证鉴权服务器,用于存储各应用程序之间进行调用的访问权限记录;通过HTTPS安全信道接收应用服务器发送的查询请求,查询所述查询请求对应的访问权限记录,并将所述访问权限记录反馈给所述应用服务器;
所述第一应用服务器,用于获取第一应用程序对第二应用程序进行调用的调用信息,及所述第一应用程序作为调用方且所述第二应用程序作为被调用方的第一访问权限记录;其中,所述第一访问权限记录从认证鉴权服务器获得并存储;根据所述第一访问权限记录,计算所述第一应用程序对所述第二应用程序的调用信息所对应的请求签名;根据所述请求签名、第一访问权限记录及调用信息生成调用请求;将所述调用请求发送到所述第二应用程序对应的第二应用服务器;
所述第二应用服务器,用于接收来自于第一应用服务器的调用请求;查询所述调用请求对应的第二访问权限记录;其中,所述第二访问权限记录从认证鉴权服务器获得并存储;根据所述第二访问权限记录对所述调用请求进行验证;当验证通过时,执行所述调用请求。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本申请实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
根据本申请实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
在应用程序调用过程中,调用方基于认证鉴权服务器下发的访问权限记录,对应用程序之间的调用信息进行数字签名,被调用方则根据认证鉴权服务器下发的访问权限记录对调用方的身份和调用信息内容进行认证鉴权后,才允许应用程序的调用。这样,即便他人窃取到调用方身份和调用信息,也不能使用调用方身份进行非法调用以及通过对调用信息篡改重放进行非法调用,降低非法调用所造成的安全风险,提高应用程序之间调用的安全性和可靠性,从而避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用程序调用方法的流程图;
图2为本申请另一实施例提供的一种应用程序调用方法的流程图;
图3为本申请另一实施例提供的一种应用程序调用方法的流程图;
图4为本申请另一实施例提供的一种应用程序调用方法的流程图;
图5为本申请实施例提供的一种应用程序调用方法的流程图;
图6为本申请实施例提供的一种应用程序调用装置的框图;
图7为本申请另一实施例提供的一种应用程序调用装置的框图;
图8为本申请实施例提供的一种调用系统的框图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在应用程序调用过程中,可能存在以下安全风险:
(1)恶意第三方窃取调用方的身份信息,以调用方名义发起非法调用;
(2)一个有权限的调用方发起正常调用,但调用信息被篡改,造成原本要执行的操作内容和实际执行的操作内容存在不同;
(3)一个有权限的调用方发起正常调用,但调用信息被恶意第三方完整窃取,通过重复发送相同的调用信息攻击被调用方(也被称为重放攻击),造成本来应该执行一次的操作被多次执行。
当上述安全风险发生时,应用程序间的非法调用可能造成用户隐私信息或商业机密信息被泄露,以及经济或权益方面的损失。
本申请实施例中,为克服上述安全风险,由认证鉴权服务器管理系统中所有应用程序之间进行调用所需的访问权限记录。各应用程序所在的应用服务器,可以与认证鉴权服务器通过HTTPS安全信道建立经过双向认证的加密连接,以接收认证鉴权服务器发送的访问权限记录。这样,应用程序之间相互调用时,可以通过权限访问记录对调用信息进行认证鉴权,提高应用程序之间相互调用的安全性和可靠性。
其中,应用程序A作为调用方且应用程序B作为被调用方,与应用程序B作为调用方且应用程序A作为被调用方,这两种情况所对应的访问权限记录不同。
下面首先对本发明实施例所提供的一种应用程序调用方法进行介绍。
图1为本申请实施例提供的一种应用程序调用方法的流程图。如图1所示,该方法应用于部署作为调用方的第一应用程序的第一应用服务器,包括以下步骤:
步骤S11,获取第一应用程序对第二应用程序进行调用的调用信息,及第一应用程序作为调用方且第二应用程序作为被调用方的第一访问权限记录;其中,第一访问权限记录从认证鉴权服务器获得并存储。
其中,调用信息可以包括:调用请求接口标识、请求参数等信息。第一访问权限记录包括认证鉴权所需的调用标识及加密密钥。
可选的,在第一应用程序启动时,第一应用服务器通过HTTPS安全信道向认证鉴权服务器发送查询请求,查询第一访问权限记录或第一应用程序作为调用方和/或被调用方的所有访问权限记录集合;缓存认证鉴权服务器反馈的第一访问权限记录或访问权限记录集合。在调用第二应用程序时,从本地缓存中查询第一应用程序作为调用方且第二应用程序作为被调用方的第一访问权限记录。
步骤S12,根据第一访问权限记录,计算调用信息所对应的请求签名。
该步骤中,可使用消息认证算法,通过第一访问权限记录中的加密密钥对调用信息进行数字签名,得到请求签名。
步骤S13,根据请求签名、第一访问权限记录及调用信息生成调用请求。
其中,生成的调用请求可包括:请求签名、第一访问权限记录中的调用标识及原始的调用信息。
在可选实施例中,第一访问权限记录中包括:访问密钥标识(Access Key ID,以下简称AK)和秘密访问密钥(Secret Access Key,以下简称SK)。
在一种情形中,调用方应用程序和被调用方应用程序为一一对应关系,例如,应用程序A只能调用应用程序B,且应用程序B只能被应用程序A调用,则应用程序A、B对应的访问权限记录中,可以仅包括AK、SK及操作权限。
在另一种情形中,调用方应用程序和被调用方应用程序并非一一对应,例如,应用程序A可以调用应用程序B、C、D,而应用程序B可以被应用程序A、E、F调用,则应用程序A、B对应的访问权限记录中,不仅包括AK、SK及操作权限,还需包括调用方应用程序标识及被调用方应用程序标识。
可选的,若第一访问权限记录中仅包括AK、SK及操作权限,则调用标识可以为AK;若第一访问权限记录中还包括调用方应用程序标识及被调用方应用程序标识,则调用标识也可以为调用方应用程序标识。
本实施例中,可采用AK可作为调用标识,SK作为对调用信息的加密密钥。
步骤S14,将调用请求发送到第二应用程序对应的第二应用服务器,由第二应用服务器从本地存储中查询到调用请求对应第二访问权限记录,且基于第二访问权限记录对调用请求验证通过时,执行调用请求。
其中,第二应用服务器也可预先通过HTTPS安全信道从认证鉴权服务器查询第一应用程序作为调用方且第二应用程序作为被调用方的访问权限记录,或第二应用程序作为调用方和/或被调用方的所有访问权限记录集合,并缓存认证鉴权服务器反馈的第二访问权限记录或访问权限记录集合。第二应用服务器可基于调用请求中的调用标识从本地缓存中查询调用请求对应第二访问权限记录,基于该第二访问权限记录对调用请求进行验证。
通过上述步骤S11至步骤S14,在应用程序调用过程中,调用方基于认证鉴权服务器下发的访问权限记录,对应用程序之间的调用信息进行数字签名,被调用方则根据认证鉴权服务器下发的访问权限记录对调用方的身份和调用信息内容进行认证鉴权后,才允许应用程序的调用。这样,即便他人窃取到调用方身份和调用信息,也不能使用调用方身份进行非法调用以及通过对调用信息篡改重放进行非法调用,降低非法调用所造成的安全风险,提高应用程序之间调用的安全性和可靠性,从而避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
图2为本申请另一实施例提供的一种应用程序调用方法的流程图。如图2所示,上述步骤S12包括以下步骤:
步骤S21,采用消息认证码算法,根据秘密访问密钥对调用信息进行计算,得到请求签名;
上述步骤S13包括以下步骤:
步骤S22,生成包括请求签名、访问密钥标识及调用信息的调用请求。
可选的,消息认证码(Hash-based Message Authentication Code,HMAC)算法可以包括以下任一种算法:HMAC-SHA1、HMAC-SHA256、HMAC-SHA512等。其中,部署第一应用程序和第二应用程序的应用程序分别使用相同的HMAC算法进行签名计算。
上述步骤S21中,第一应用服务器可基于HMAC-SHA256算法,以SK对调用请求接口标识、请求参数等调用信息进行数字签名,得到请求签名。在上述步骤S22中,生成包括该请求签名、AK及原始调用信息的调用请求。
基于该可选实施例,第二应用服务器在接收到调用请求后,查询调用请求中AK对应的第二访问权限记录,正常情况下,第二访问权限记录应与第一访问权限记录相同。基于与第一应用服务器相同的HMAC算法以及第二访问权限记录中SK,对调用请求中的调用信息进行签名计算,将计算得到的请求签名与调用请求中的请求签名进行比对,两者一致,则通过验证,允许调用,若两者不一致,则拒绝调用。
通过上述步骤S21和步骤S22,调用方基于HMAC算法及SK对调用信息进行签名计算,将包括请求签名、AK及原始调用信息的调用请求传输至被调用方,被调用方基于AK查询相应的访问权限记录,基于访问权限记录中的SK及同一HMAC算法对调用请求进行验证,以降低调用方身份被窃取及调用信息在传输过程中被非法篡改造成的安全风险,提高应用程序之间调用的安全性和可靠性,避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
在另一可选实施例中,在计算请求签名及生成调用请求时,还可加入请求时间戳。图3为本申请另一实施例提供的一种应用程序调用方法的流程图。如图3所示,上述步骤S12包括以下步骤:
步骤S31,获取调用信息对应的请求时间戳;
步骤S32,采用消息认证码算法,根据秘密访问密钥对调用信息及请求时间戳进行计算,得到请求签名;
上述步骤S13包括以下步骤:
步骤S33,生成包括请求签名、访问密钥标识、调用信息及请求时间戳的调用请求。
基于该可选实施例,第二应用服务器接收到调用请求中包含请求时间戳,在对调用请求的验证过程中,还进一步判断当前时间与请求时间戳之间的时间间隔是否在预设时间范围内,如10秒内,若不在该时间范围内,也拒绝调用。
通过上述步骤S31至步骤S33,调用方在计算请求签名和生成调用请求时,进一步加入请求时间戳,这样,被调用方对调用请求进行验证时,还进一步对接收到调用请求的时间进行验证,这样,即便恶意第三方采用该调用请求对被调用方进行重放攻击,也可基于请求时间戳将重放攻击限制在设定的时间窗口内,避免被调用方因重放攻击造成资源消耗及性能严重下降,进一步提高应用程序之间调用的安全性和可靠性,避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
下面对本发明另一实施例所提供的一种应用程序调用方法进行介绍。图4为本申请另一实施例提供的一种应用程序调用方法的流程图。如图4所示,该方法应用于部署作为被调用方的第二应用程序的第二应用服务器,包括以下步骤:
步骤S41,接收来自于第一应用服务器的调用请求;
步骤S42,查询调用请求对应的访问权限记录;其中,访问权限记录从认证鉴权服务器获得并存储;
其中,若第二应用服务器未查询到调用请求对应的访问权限记录时,可拒绝调用第二应用程序。
步骤S43,根据访问权限记录对调用请求进行验证;
步骤S44,当验证通过时,执行调用请求。
通过上述步骤S41至步骤S44,在应用程序调用过程中,这样,即便他人窃取到调用方身份和调用信息,也不能使用调用方身份进行非法调用以及通过对调用信息篡改重放进行非法调用,降低非法调用所造成的安全风险,提高应用程序之间调用的安全性和可靠性,从而避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
在可选实施例中,调用请求中包括:第一请求签名、访问密钥标识及调用信息。访问权限记录中包括:访问密钥标识AK和秘密访问密钥SK。上述步骤S43包括:
步骤A1,采用消息认证码算法,根据秘密访问密钥对调用信息进行计算,得到第二请求签名;
步骤A2,当第二请求签名与第一请求签名一致时,对调用请求验证通过。
通过上述步骤A1和步骤A2,调用方基于HMAC算法及SK对调用信息进行签名计算,将包括请求签名、AK及原始调用信息的调用请求传输至被调用方,被调用方基于AK查询相应的访问权限记录,基于访问权限记录中的SK及同一HMAC算法对调用请求进行验证,以降低调用方身份被窃取及调用信息在传输过程中被非法篡改造成的安全风险,提高应用程序之间调用的安全性和可靠性,避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
在可选实施例中,调用信息包括:请求时间戳。访问权限记录中包括:访问密钥标识和秘密访问密钥。调用请求中包括:第一请求签名、访问密钥标识、调用信息及请求时间戳。上述步骤S43包括:
步骤B1,获取调用请求的接收时间及请求时间戳对应的时间范围;
步骤B2,采用预设消息认证码算法,根据秘密访问密钥对调用信息及请求时间戳进行计算,得到第二请求签名;
步骤B3,当接收时间与请求时间戳之间的时间间隔属于预设时间范围,且第二请求签名与第一请求签名一致时,对调用请求验证通过。
通过上述步骤B1至步骤B3,调用方在计算请求签名和生成调用请求时,进一步加入请求时间戳,这样,被调用方对调用请求进行验证时,还进一步对接收到调用请求的时间进行验证,这样,即便恶意第三方采用该调用请求对被调用方进行重放攻击,也可基于请求时间戳将重放攻击限制在一定时间窗口内,避免被调用方因重放攻击造成资源消耗及性能严重下降,进一步提高应用程序之间调用的安全性和可靠性,避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
在另一可选实施例中,访问权限记录中包括:第一应用程序与第二应用程序对应的操作权限。调用信息包括:调用请求的请求接口。上述步骤S43包括:基于操作权限,验证第一应用程序对请求接口的调用权限。该实施例中,可以对是否允许第一应用程序访问请求接口进行验证,若第一应用程序不具有对请求接口的调用权限,则拒绝调用。
在上述实施例中,第二应用服务器可以对调用请求中的请求签名、接收时间及第一应用程序对请求接口的调用权限等信息进行验证,若其中一项未验证通过,则拒绝调用第二应用程序。
下面以一个具体的实例对上述方法实施例进行详细说明。
应用程序A部署于应用服务器Sa,应用程序B部署于应用服务器Sb。其中,应用程序B需要认证鉴权通过才可被调用。
当应用程序A、B启动时,应用服务器Sa和应用服务器Sb从认证鉴权服务器查询各自作为调用方和被调用方的所有访问权限记录,并缓存在内存中。
可选的,应用服务器Sa和应用服务器Sb可周期性从认证鉴权服务器查询各自作为调用方和被调用方的所有访问权限记录,并更新内存中存储的记录。
其中,访问权限记录包括:调用方应用程序标识、被调用方应用程序标识、AK、SK及操作权限。其中,操作权限可包括应用程序B允许应用程序A调用的接口标识。
图5为本申请实施例提供的一种应用程序调用方法的流程图。如图5所示,应用程序A调用应用程序B的过程如下:
步骤S51,当应用程序A调用应用程序B时,Sa从本地缓存中查询调用方为应用程序A,被调用方为应用程序B的访问权限记录。若未查询到,则执行步骤S59,若查询到,则执行步骤S52;
步骤S52,Sa采用HMAC-SHA256算法,以访问权限记录中的SK作为密钥,对调用信息和请求时间戳计算得到第一请求签名,并生成包括第一请求签名、请求时间戳、AK及调用信息的调用请求,并发送至Sb;
步骤S53,Sb接收到调用请求后,根据调用请求中的AK查询本地缓存中查询调用方为应用程序A,被调用方为应用程序B的访问权限记录,若未查询到,则执行步骤S58,若查询到,同时执行步骤S54-S56;
步骤S54,Sb采用HMAC-SHA256算法,以访问权限记录中的SK作为密钥,对调用信息和请求时间戳计算得到第二请求签名,比对第一请求签名和第二请求签名是否一致,若否,则执行步骤S58,若是,执行步骤S57;
步骤S55,Sb检查对调用请求的接收时间与请求时间戳之间的时间间隔是否在10秒内,若否,则执行步骤S58,若是,执行步骤S57;
步骤S56,Sb检查操作权限中的接口标识是否包含调用信息中的调用请求接口标识进行调用,若否,则执行步骤S58,若是,执行步骤S57;
步骤S57,Sb执行调用请求;
步骤S58,Sb返回拒绝调用;
步骤S59,Sb直接终止调用。
上述实施例,在应用程序调用过程中,基于认证鉴权服务器下发的访问权限记录,对应用程序之间的调用信息进行数字签名,以及对调用方的身份和调用信息内容进行认证鉴权,降低调用方身份被窃取及调用信息在传输过程中被非法篡改造成的安全风险,另外,即便恶意第三方采用该调用请求对被调用方进行重放攻击,也可基于请求时间戳将重放攻击限制在设定的时间窗口内,避免被调用方因重放攻击造成资源消耗及性能严重下降。从而提高应用程序之间调用的安全性和可靠性,从而避免用户隐私信息或商业机密信息被泄露以及经济或权益方面的损失。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图6为本申请实施例提供的一种应用程序调用装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该应用程序调用装置包括:
获取模块61,用于获取第一应用程序对第二应用程序进行调用的调用信息,及第一应用程序作为调用方且第二应用程序作为被调用方的第一访问权限记录;其中,第一访问权限记录由第一应用程序从认证鉴权服务器获得并存储;
计算模块62,用于根据第一访问权限记录,计算第一应用程序对第二应用程序的调用信息所对应的请求签名;
生成模块63,用于根据请求签名、访问权限记录及调用信息生成调用请求;
发送模块64,用于将调用请求发送到第二应用程序,由第二应用程序从本地存储中查询到调用请求对应第二访问权限记录,且基于第二访问权限记录对调用请求验证通过时,执行调用请求。
图7为本申请另一实施例提供的一种应用程序调用装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图7所示,该应用程序调用装置包括:
接收模块71,用于接收来自于第一应用程序的调用请求;
查询模块72,用于查询访问密钥标识对应的访问权限记录;其中,访问权限记录由第二应用程序从认证鉴权服务器获得并存储;
验证模块73,用于根据访问权限记录对调用请求进行验证;
执行模块74,用于当验证通过时,执行调用请求。
图8为本申请实施例提供的一种调用系统的框图,如图8所示,该调用系统包括:认证鉴权服务器81、第一应用服务器82和第二应用服务器83。
认证鉴权服务器81,用于存储各应用程序之间进行调用的访问权限记录;通过HTTPS安全信道接收应用服务器发送的查询请求,查询查询请求对应的访问权限记录,并将访问权限记录反馈给应用服务器。
第一应用服务器82,用于获取第一应用程序对第二应用程序进行调用的调用信息,及第一应用程序作为调用方且第二应用程序作为被调用方的第一访问权限记录;其中,第一访问权限记录从认证鉴权服务器81获得并存储;根据第一访问权限记录,计算第一应用程序对第二应用程序的调用信息所对应的请求签名;根据请求签名、第一访问权限记录及调用信息生成调用请求;将调用请求发送到第二应用程序对应的第二应用服务器83。
第二应用服务器83,用于接收来自于第一应用服务器82的调用请求;查询调用请求对应的第二访问权限记录;其中,第二访问权限记录从认证鉴权服务器81获得并存储;根据第二访问权限记录对调用请求进行验证;当验证通过时,执行调用请求。
可选的,认证鉴权服务器可以通过外部数据库等方式将系统内所有访问权限记录进行持久化存储。
可选的,认证鉴权服务器支持通过API等方式,添加、删除访问权限记录,或修改访问权限记录中的操作权限。认证鉴权服务器支持通过API等方式查询调用方和被调用方为某个应用程序的所有访问权限记录。在添加时访问权限记录时,需要提供调用方应用标识、被调用方应用标识、操作权限信息,并由认证鉴权服务器生产一对新的AK、SK。
可选的,认证鉴权服务器的API只接收通过HTTPS安全信道发送的请求,且需要通过X.509公钥证书体系认证访问者身份,只允许管理员身份的访问者添加、删除、修改访问权限记录,且只允许应用程序查询自身作为调用方和被调用方的所有访问权限记录。
本申请实施例还提供一种电子设备,如图9所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,P C I)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种应用程序调用方法,其特征在于,包括:
获取第一应用程序对第二应用程序进行调用的调用信息,及所述第一应用程序作为调用方且所述第二应用程序作为被调用方的第一访问权限记录;其中,所述第一访问权限记录从认证鉴权服务器获得并存储;
根据所述第一访问权限记录,计算所述调用信息所对应的请求签名;
根据所述请求签名、第一访问权限记录及调用信息生成调用请求;
将所述调用请求发送到所述第二应用程序对应的第二应用服务器,由所述第二应用服务器从本地存储中查询到所述调用请求对应第二访问权限记录,且基于所述第二访问权限记录对所述调用请求验证通过时,执行所述调用请求。
2.根据权利要求1所述的方法,其特征在于,所述第一访问权限记录中包括:访问密钥标识和秘密访问密钥;
所述根据所述第一访问权限记录,计算所述第一应用程序对所述第二应用程序的调用信息所对应的请求签名,包括:
获取所述调用信息对应的请求时间戳;
采用消息认证码算法,根据所述秘密访问密钥对所述调用信息及请求时间戳进行计算,得到所述请求签名;
所述根据所述请求签名、所述第一访问权限记录及调用信息生成调用请求,包括:
生成包括所述请求签名、访问密钥标识、调用信息及请求时间戳的调用请求。
3.一种应用程序调用方法,其特征在于,包括:
接收来自于第一应用服务器的调用请求;
查询所述调用请求对应的访问权限记录;其中,所述访问权限记录从认证鉴权服务器获得并存储;
根据所述访问权限记录对所述调用请求进行验证;
当验证通过时,执行所述调用请求。
4.根据权利要求3所述的方法,其特征在于,所述调用信息包括:请求时间戳;
所述访问权限记录中包括:访问密钥标识和秘密访问密钥;
所述调用请求中包括:第一请求签名、访问密钥标识、调用信息及请求时间戳;
所述根据所述访问权限记录对所述调用请求进行验证,包括:
获取所述调用请求的接收时间;
采用消息认证码算法,根据所述秘密访问密钥对所述调用信息及所述请求时间戳进行计算,得到第二请求签名;
当所述接收时间与请求时间戳之间的时间间隔属于预设时间范围,且所述第二请求签名与所述第一请求签名一致时,对所述调用请求验证通过。
5.根据权利要求3或4所述的方法,其特征在于,所述访问权限记录中包括:所述第一应用程序与第二应用程序对应的操作权限;
所述调用信息包括:所述调用请求的请求接口;
所述根据所述访问权限记录对所述调用请求进行验证,包括:
基于所述操作权限,验证所述第一应用程序对所述请求接口的调用权限。
6.一种应用程序调用装置,其特征在于,包括:
获取模块,用于获取第一应用程序对第二应用程序进行调用的调用信息,及所述第一应用程序作为调用方且所述第二应用程序作为被调用方的第一访问权限记录;其中,所述第一访问权限记录由所述第一应用程序从认证鉴权服务器获得并存储;
计算模块,用于根据所述第一访问权限记录,计算所述第一应用程序对所述第二应用程序的调用信息所对应的请求签名;
生成模块,用于根据所述请求签名、访问权限记录及调用信息生成调用请求;
发送模块,用于将所述调用请求发送到所述第二应用程序,由所述第二应用程序从本地存储中查询到所述调用请求对应第二访问权限记录,且基于所述第二访问权限记录对所述调用请求验证通过时,执行所述调用请求。
7.一种应用程序调用装置,其特征在于,包括:
接收模块,用于接收来自于第一应用程序的调用请求;
查询模块,用于查询所述访问密钥标识对应的访问权限记录;其中,所述访问权限记录由第二应用程序从认证鉴权服务器获得并存储;
验证模块,用于根据所述访问权限记录对所述调用请求进行验证;
执行模块,用于当验证通过时,执行所述调用请求。
8.一种调用系统,其特征在于,包括:认证鉴权服务器、第一应用服务器和第二应用服务器;
所述认证鉴权服务器,用于存储各应用程序之间进行调用的访问权限记录;通过HTTPS安全信道接收应用服务器发送的查询请求,查询所述查询请求对应的访问权限记录,并将所述访问权限记录反馈给所述应用服务器;
所述第一应用服务器,用于获取第一应用程序对第二应用程序进行调用的调用信息,及所述第一应用程序作为调用方且所述第二应用程序作为被调用方的第一访问权限记录;其中,所述第一访问权限记录从认证鉴权服务器获得并存储;根据所述第一访问权限记录,计算所述第一应用程序对所述第二应用程序的调用信息所对应的请求签名;根据所述请求签名、第一访问权限记录及调用信息生成调用请求;将所述调用请求发送到所述第二应用程序对应的第二应用服务器;
所述第二应用服务器,用于接收来自于第一应用服务器的调用请求;查询所述调用请求对应的第二访问权限记录;其中,所述第二访问权限记录从认证鉴权服务器获得并存储;根据所述第二访问权限记录对所述调用请求进行验证;当验证通过时,执行所述调用请求。
9.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现权利要求1-5任一项所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-5任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110240732.8A CN112948143B (zh) | 2021-03-04 | 2021-03-04 | 一种应用程序调用方法、装置及调用系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110240732.8A CN112948143B (zh) | 2021-03-04 | 2021-03-04 | 一种应用程序调用方法、装置及调用系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948143A true CN112948143A (zh) | 2021-06-11 |
CN112948143B CN112948143B (zh) | 2024-01-12 |
Family
ID=76247647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110240732.8A Active CN112948143B (zh) | 2021-03-04 | 2021-03-04 | 一种应用程序调用方法、装置及调用系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948143B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438242A (zh) * | 2021-06-25 | 2021-09-24 | 未鲲(上海)科技服务有限公司 | 服务鉴权方法、装置与存储介质 |
CN116720172A (zh) * | 2023-08-07 | 2023-09-08 | 四川神州行网约车服务有限公司 | 系统权限的验证方法、装置、计算机设备及可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150180870A1 (en) * | 2013-04-28 | 2015-06-25 | Tencent Technology (Shenzhen) Company Limited | Authorization Authentication Method And Apparatus |
US9313193B1 (en) * | 2014-09-29 | 2016-04-12 | Amazon Technologies, Inc. | Management and authentication in hosted directory service |
KR20170019308A (ko) * | 2015-08-11 | 2017-02-21 | 한국전자통신연구원 | 신뢰된 권한 정보 제공 방법, 신뢰된 권한 정보를 포함하는 사용자 크리덴셜 발급 방법 및 사용자 크리덴셜 획득 방법 |
US20170171183A1 (en) * | 2015-12-15 | 2017-06-15 | Phaneendra Ramaseshu Lingappa | Authentication of access request of a device and protecting confidential information |
CN109510846A (zh) * | 2017-09-14 | 2019-03-22 | 北京金山云网络技术有限公司 | Api调用系统、方法、装置、电子设备及存储介质 |
CN110324276A (zh) * | 2018-03-28 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 一种登录应用的方法、系统、终端和电子设备 |
CN111949974A (zh) * | 2020-08-04 | 2020-11-17 | 北京字节跳动网络技术有限公司 | 一种认证的方法、装置、计算机设备及存储介质 |
CN112000951A (zh) * | 2020-08-31 | 2020-11-27 | 上海商汤智能科技有限公司 | 一种访问方法、装置、系统、电子设备及存储介质 |
CN112165454A (zh) * | 2020-09-03 | 2021-01-01 | 北京金山云网络技术有限公司 | 访问控制方法、装置、网关和控制台 |
-
2021
- 2021-03-04 CN CN202110240732.8A patent/CN112948143B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150180870A1 (en) * | 2013-04-28 | 2015-06-25 | Tencent Technology (Shenzhen) Company Limited | Authorization Authentication Method And Apparatus |
US9313193B1 (en) * | 2014-09-29 | 2016-04-12 | Amazon Technologies, Inc. | Management and authentication in hosted directory service |
KR20170019308A (ko) * | 2015-08-11 | 2017-02-21 | 한국전자통신연구원 | 신뢰된 권한 정보 제공 방법, 신뢰된 권한 정보를 포함하는 사용자 크리덴셜 발급 방법 및 사용자 크리덴셜 획득 방법 |
US20170171183A1 (en) * | 2015-12-15 | 2017-06-15 | Phaneendra Ramaseshu Lingappa | Authentication of access request of a device and protecting confidential information |
CN109510846A (zh) * | 2017-09-14 | 2019-03-22 | 北京金山云网络技术有限公司 | Api调用系统、方法、装置、电子设备及存储介质 |
CN110324276A (zh) * | 2018-03-28 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 一种登录应用的方法、系统、终端和电子设备 |
CN111949974A (zh) * | 2020-08-04 | 2020-11-17 | 北京字节跳动网络技术有限公司 | 一种认证的方法、装置、计算机设备及存储介质 |
CN112000951A (zh) * | 2020-08-31 | 2020-11-27 | 上海商汤智能科技有限公司 | 一种访问方法、装置、系统、电子设备及存储介质 |
CN112165454A (zh) * | 2020-09-03 | 2021-01-01 | 北京金山云网络技术有限公司 | 访问控制方法、装置、网关和控制台 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438242A (zh) * | 2021-06-25 | 2021-09-24 | 未鲲(上海)科技服务有限公司 | 服务鉴权方法、装置与存储介质 |
CN113438242B (zh) * | 2021-06-25 | 2023-08-29 | 广西三方大供应链技术服务有限公司 | 服务鉴权方法、装置与存储介质 |
CN116720172A (zh) * | 2023-08-07 | 2023-09-08 | 四川神州行网约车服务有限公司 | 系统权限的验证方法、装置、计算机设备及可读存储介质 |
CN116720172B (zh) * | 2023-08-07 | 2024-01-30 | 四川神州行网约车服务有限公司 | 系统权限的验证方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112948143B (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11831642B2 (en) | Systems and methods for endpoint management | |
KR101680260B1 (ko) | 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 | |
US20220394026A1 (en) | Network identity protection method and device, and electronic equipment and storage medium | |
CN107124431B (zh) | 鉴权方法、装置、计算机可读存储介质和鉴权系统 | |
CN108259406B (zh) | 检验ssl证书的方法和系统 | |
US9118665B2 (en) | Authentication system and method | |
US20090240936A1 (en) | System and method for storing client-side certificate credentials | |
US20090077373A1 (en) | System and method for providing verified information regarding a networked site | |
CN106453361B (zh) | 一种网络信息的安全保护方法及系统 | |
JP2019145095A (ja) | セキュアインタラクションにおけるサービス運用妨害攻撃を検出するための方法及びデバイス | |
CN112948143B (zh) | 一种应用程序调用方法、装置及调用系统 | |
TWM595792U (zh) | 跨平台授權存取資源的授權存取系統 | |
CN109842616B (zh) | 账号绑定方法、装置及服务器 | |
CN110933078A (zh) | 一种h5未登录用户会话跟踪方法 | |
CN112733121A (zh) | 数据获取方法、装置、设备及存储介质 | |
GB2456742A (en) | Determining trust levels for data sources | |
CN116669888A (zh) | 用于暂停由保护设备实现的对目标的保护的方法 | |
KR20090054774A (ko) | 분산 네트워크 환경에서의 통합 보안 관리 방법 | |
Polleit et al. | Defeating the secrets of otp apps | |
CN117155716A (zh) | 访问校验方法和装置、存储介质及电子设备 | |
CN111614458A (zh) | 网关jwt的生成方法、系统及存储介质 | |
US11184339B2 (en) | Method and system for secure communication | |
CN114466353A (zh) | App用户ID信息保护的装置、方法、电子设备及存储介质 | |
CN114024682A (zh) | 跨域单点登录方法、服务设备及认证设备 | |
CN112000951B (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 |