CN110912697B - Scheme请求校验方法、装置及设备 - Google Patents
Scheme请求校验方法、装置及设备 Download PDFInfo
- Publication number
- CN110912697B CN110912697B CN201911366998.6A CN201911366998A CN110912697B CN 110912697 B CN110912697 B CN 110912697B CN 201911366998 A CN201911366998 A CN 201911366998A CN 110912697 B CN110912697 B CN 110912697B
- Authority
- CN
- China
- Prior art keywords
- application
- information
- scheme request
- scheme
- decryption
- 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
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/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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开提供一种Scheme请求校验方法、装置及设备,其中,Scheme请求校验方法包括:获取第一应用对第二应用的Scheme请求;生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;将所述Scheme请求以及所述第二加密信息发送给所述第二应用,以使所述第二应用基于所述第二加密信息对所述Scheme请求进行校验;接收来自所述第二应用的所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
Description
技术领域
本公开涉及应用管理技术领域,尤其涉及一种Scheme请求校验方法、装置及设备。
背景技术
目前,iOS URL(Uniform Resource Locator,统一资源定位符)Scheme是在操作系统上设立的一种进程间通讯的方式,应用程序可声明自己的URL Scheme用于被外部应用程序调用。由于URL Scheme本身不能被应用程序独占,则出现了多个应用程序声明同一个URLScheme时,会存在一方劫持另一方的URL Scheme请求的情况。在有恶意程序抢先注册了企业原有的Scheme后,劫持其它应用程序对正常应用程序的URL Scheme请求,并将请求发送到其它设备进行重放,从而危及了用户的资金安全以及账户安全。
发明内容
有鉴于此,本公开的目的在于提出一种Scheme请求校验方法、装置及设备。
根据本公开的第一个方面,提供了一种Scheme请求校验方法,应用于终端,所述方法包括:获取第一应用对第二应用的Scheme请求;生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;将所述Scheme请求以及所述第二加密信息发送给所述第二应用,以使所述第二应用基于所述第二加密信息对所述Scheme请求进行校验;接收来自所述第二应用的所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
根据本公开的第二个方面,提供了一种Scheme请求校验方法,应用于终端,所述方法包括:获取第一应用对第二应用的Scheme请求以及第二加密信息,其中,所述第二加密信息包括加密后的所述第一应用的信息以及第一加密信息,所述第一加密信息通过第一标识对第一随机数进行加密得到,所述第一标识与所述终端以及所述第一应用对应;对所述第二加密信息进行解密,得到所述第一应用的信息;根据所述第一应用的信息对所述Scheme请求进行校验,得到第二校验结果;响应于所述第二校验结果为检验通过,对所述第一加密信息以及所述第一应用的信息进行重新加密,得到重新加密后的第二加密信息;将重新加密后的第二加密信息发送至所述第一应用,以使所述第一应用根据重新加密后的所述第二加密信息对所述Scheme请求进行校验。
根据本公开的第三个方面,提供了一种Scheme请求校验方法,所述方法应用于终端,所述方法包括:第一应用获取其对第二应用的Scheme请求;第一应用生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;第一应用对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;第一应用将所述Scheme请求以及所述第二加密信息发送给所述第二应用;所述第二应用对所述第二加密信息进行解密,根据所述第一应用的信息对所述Scheme请求进行校验,响应于校验成功,向所述第一应用发送所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;第一应用接收所述Scheme请求的响应消息,对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
根据本公开的第四个方面,提供了一种Scheme请求校验装置,应用于终端,所述装置包括:第一获取模块,用于获取第一应用对第二应用的Scheme请求;第一生成模块,用于生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;第一加密模块,用于对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;第一发送模块,用于将所述Scheme请求以及所述第二加密信息发送给所述第二应用,以使所述第二应用基于所述第二加密信息对所述Scheme请求进行校验;第一接收模块,用于接收来自所述第二应用的所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;第一确定模块,用于对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
根据本公开的第五个方面,提供了一种Scheme请求校验装置,应用于终端,所述装置包括:第二获取模块,用于获取第一应用对第二应用的Scheme请求以及第二加密信息,其中,所述第二加密信息包括加密后的所述第一应用的信息以及第一加密信息,所述第一加密信息通过第一标识对第一随机数进行加密得到,所述第一标识与所述终端以及所述第一应用对应;第一解密模块,用于对所述第二加密信息进行解密,得到所述第一应用的信息;校验模块,用于根据所述第一应用的信息对所述Scheme请求进行校验,得到第二校验结果;第二加密模块,用于响应于所述第二校验结果为检验通过,对所述第一加密信息以及所述第一应用的信息进行重新加密,得到重新加密后的第二加密信息;第二发送模块,用于将重新加密后的第二加密信息发送至所述第一应用,以使所述第一应用根据重新加密后的所述第二加密信息对所述Scheme请求进行校验。
根据本公开的第六个方面,提供了一种Scheme请求校验装置,所述装置应用于终端,所述装置包括:第三获取模块,用于通过第一应用获取其对第二应用的Scheme请求;第二生成模块,用于通过第一应用生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;第三加密模块,用于通过第一应用对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;第五发送模块,用于通过第一应用将所述Scheme请求以及所述第二加密信息发送给所述第二应用;第二解密模块,用于通过所述第二应用对所述第二加密信息进行解密,根据所述第一应用的信息对所述Scheme请求进行校验,响应于校验成功,向所述第一应用发送所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;第二接收模块,用于第一应用接收所述Scheme请求的响应消息,对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
根据本公开的第七个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本公开第一方面至第三方面所述的任意一种Scheme请求校验方法。从上面所述可以看出,本公开实施例的Scheme请求校验方法,第一应用发起对第二应用的Scheme请求,在向第二应用发送的Scheme请求中携带通过与终端以及第一应用对应的标识加密的随机数,在接收到包含该随机数据的Scheme请求响应消息后,可通过对该随机数的解密来确定Scheme请求结果,由于第一标识与终端以及第一应用对应,故,其他应用无法获知该第一标识,所以,如果对加密后的随机数解密失败,则说明当前Scheme请求遭到劫持,可确定Scheme请求失败,而,对加密后的随机数解密成功,则可确定Scheme请求成功,故,本公开实施例的Scheme请求校验方法可避免恶意应用劫持以及重放Scheme请求,提高应用间进行Scheme请求的安全性。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开一示例性实施例示出的一种scheme请求校验方法的流程图;
图2是根据本公开一示例性示例示出的一种Scheme请求校验方法的流程图;
图3是根据本公开一示例性实施例示出的一种Scheme请求校验方法的流程图;
图4是根据本公开一示例性实施例示出的一种Scheme请求校验装置的框图;
图5是根据本公开一示例性实施例示出的一种Scheme请求校验装置的框图;
图6是根据本公开一示例性实施例示出的一种电子设备的硬件结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在本说明书的一个示例性实施例中,终端中的第一应用请求调用第二应用,第二应用在接收到第一应用的URL Scheme请求(以下简称Scheme请求)时,会通过系统回调通知获取调用来源(即第一应用)的bundle id(bundle id为iOS应用程序的唯一标识,在AppStore中每个应用程序有且只有一个bundle id),并通过网络请求到第二应用的服务端,以使第二应用的服务端判断该bundle id是否在服务端控制的名单内,如果采集的bundle id服务端没有对应的信息,则会返回校验不通过。但在iOS13操作系统中,操作系统会收回通过系统通知获取bundle id的能力,所以在iOS13操作系统发布后,通过上述方式对Scheme请求进行校验,会存在防控失效的风险。
在本说明书的一个示例性实施场景中,第一应用向第二应用发起URL Scheme请求,第一应用以购物App为例,第二应用以支付App为例,在用户通过购物App购物时,在支付页面需要选择支付App进行钱款,购物App需向支付App发起Scheme请求,这时,支付App以及该支付App的服务端需对该Scheme请求进行校验,购物App可向支付App发送该购物App对支付App的Scheme请求,支付App以及支付App的服务端对该Scheme请求进行校验,如果校验成功,则支付App可授权购物App登录,如果支付App以及支付App的服务端中的任意端对该Scheme请求校验失败,则支付App不授权购物App登录。
图1是根据本公开一示例性实施例示出的一种Scheme请求校验方法的流程图,该方法可应用于终端,例如,可由终端中的Scheme SDK(软件开发工具包,SoftwareDevelopment Kit)执行,其中,Scheme SDK为第一应用中的一个模块,如图1所示,该方法包括:
步骤101:获取第一应用对第二应用的Scheme请求;
步骤102:生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;
上述第一标识例如可以是identifierForVendor,identifierForVendor是iOSUDID的一个属性,与设备(即上述终端)、应用程序(即上述第一应用)有一定绑定关系,identifierForVendor可以是一个字母数字字符串,可用于唯一地标识应用程序供应商的设备。其中,UDID指的是iOS系统设备唯一标识符。
步骤103:对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;
其中,在步骤103之前可对Scheme请求通过SHA256进行摘要计算,得到Scheme请求的摘要信息,上述第一应用的信息可包括该摘要信息。
步骤104:将所述Scheme请求以及所述第二加密信息发送给所述第二应用,以使所述第二应用基于所述第二加密信息对所述Scheme请求进行校验;
例如,可将第二加密信息拼接在Scheme请求尾部,以将Scheme请求以及第二加密信息一并发送给第二应用。
步骤105:接收来自所述第二应用的所述Scheme请求的响应消息,其中,所述响应消息中携带有所述第一加密信息;
步骤106:对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
在步骤105以及步骤106中,根据接收到的来自所述第二应用的Scheme请求的响应消息,确定Scheme请求结果可包括如下几种情况:
情况一:该响应消息中不存在加密的数据,此时,可确定Scheme请求失败。
情况二:该响应消息中存在第二加密信息,但在对该第二加密信息进行解密失败时,可确定Scheme请求失败。
情况三:该响应消息中存在第二加密信息,对该第二加密信息进行解密成功,得到解密后的信息中包括被加密的随机数,对该随机数进行解密失败,可确定Scheme请求失败;
情况四:成功对响应消息中的第二加密信息进行解密后,对解密得到的第一加密信息进行解密,得到的解密后的随机数与预存的随机数一致,可确定Scheme请求成功。
本公开实施例的Scheme请求校验方法,第一应用发起对第二应用的Scheme请求,在向第二应用发送的Scheme请求中携带通过与终端以及第一应用对应的标识加密的随机数,在接收到包含该随机数据的Scheme请求响应消息后,可通过对该随机数的解密来确定Scheme请求结果,由于第一标识与终端以及第一应用对应,故,其他应用无法获知该第一标识,所以,如果对加密后的随机数解密失败,则说明当前Scheme请求遭到劫持,可确定Scheme请求失败,而,对加密后的随机数解密成功,则可确定Scheme请求成功,故,本公开实施例的Scheme请求校验方法可避免恶意应用劫持以及重放Scheme请求,提高应用间进行Scheme请求的安全性。
在本说明书的一个或多个实施例中,对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息可包括:通过第二标识对所述第一加密信息以及所述第一应用的信息进行加密,得到所述第二加密信息,其中,所述第二标识包括:所述第一应用的应用标识以及所述终端的名称,其中,所述应用标识用于标识所述第一应用对应的商户或开发者。例如,所述应用的应用标识例如为App id,其中,App id例如可以是平台颁发给开发者以及商户的唯一id,用于标记开发者/商户所申请的应用。终端的名称例如为,xxx的iPhone,其中,xxx可以是用户的名字或昵称。其中,在上述步骤103中,可将第一应用的标识以及设备标识进行拼接,以拼接得到的字段作为密钥对所述Scheme请求的摘要信息、所述第一加密信息以及所述第一应用的bundle id进行加密,得到第二加密信息。
在本说明书的一个或多个实施例中,对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息可包括,可包括:通过所述第二标识对所述摘要信息、所述第一加密信息、时间戳以及所述第一应用的bundle id进行加密,得到所述第二加密信息,即,在上述步骤103中被一并加密的数据中还可包括时间戳。此外,可通过AES256加密算法通过第二标识对Scheme请求的摘要信息、第一加密信息、时间戳以及第一应用的bundle id进行加密。
在本说明书的一个或多个实施例中,所述第一应用的信息包括所述Scheme请求的摘要信息以及所述第一应用的bundle id,上述Scheme请求校验方法还可包括:在接收来自所述第二应用的所述Scheme请求的响应消息之后,判断所述响应消息中是否包含所述第二加密信息;在所述响应消息中不包含所述第二加密信息时,确定所述Scheme请求结果为所述Scheme请求失败,在所述响应消息中包括所述第二加密信息时,对所述第二加密信息进行解密,例如,通过上述第二标识对第二加密信息进行解密,得到所述Scheme请求的摘要信息、所述第一应用的bundle id以及所述第一加密信息;对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果,包括:在解密得到的所述摘要信息与预存的摘要信息一致,且解密得到的第一应用的bundle id与预存的第一应用的bundle id一致的情况下,通过所述第一标识对所述第一加密信息进行解密,得第二随机数,其中,预存的摘要信息例如为Scheme SDK在对Scheme请求进行摘要计算时,得到的摘要信息;在解密得到的所述摘要信息与预存的摘要信息不一致,和/或解密得到的第一应用的bundle id与预存的第一应用的bundle id不一致的情况下,确定所述Scheme请求结果为所述Scheme请求失败;在所述第一随机数与所述第二随机数一致的情况下,确定所述Scheme请求结果为Scheme请求成功;在所述第一随机数与所述第二随机数不一致的情况下,确定所述Sheme请求结果为所述Scheme请求失败。其中,在Scheme请求失败时,第一应用不可登录第二应用,在Scheme请求成功时,第一应用可登录第二应用。
在本说明书的一个或多个实施例中,上述Scheme请求校验方法还可包括:在将所述Scheme请求以及所述第二加密信息发送给所述第二应用之后,接收所述第二应用对所述第二加密信息的解密失败结果,根据所述解密失败结果确定所述Scheme请求失败;当第一应用接收到第二应用对第二加密信息的解密失败结果时,则可确定Scheme请求失败,向第一应用发送Scheme请求失败通知。或者,在将所述Scheme请求以及所述第二加密信息发送给所述第二应用之后,接收所述第二应用对由所述第二加密信息解密得到的所述摘要信息的校验失败结果,根据所述校验失败结果确定所述Scheme请求失败,可向第一应用发送Scheme请求失败通知。通过第二应用对Scheme请求的摘要信息进行校验,可防止未授权应用劫持Scheme请求,对数据进行篡改。
图2是根据本公开一示例性实施例示出的一种Scheme请求校验方法的流程图,该方法可应用于终端,例如,该方法可由上述第二应用执行,如图2所示,该方法包括:
步骤201:获取第一应用对第二应用的Scheme请求以及第二加密信息,其中,所述第二加密信息包括加密后的所述第一应用的信息以及第一加密信息,所述第一加密信息通过第一标识对所述对一随机数进行加密得到,所述第一标识与所述终端以及所述第一应用对应;
鉴于上文已经对第一标识进行说明,此处将不在对其进行赘述。
步骤202:对所述第二加密信息进行解密,得到所述第一应用的信息;
如上文所述,第二标识可以包括App id以及终端名称,第二应用在获取到上述Scheme请求后,可获取第一应用的App id以及终端名称,例如,第二应用可通过系统API(Application Programming Interface,应用程序接口)[UIDevice currentDevice]获取终端名称,而App id是第二应用与第一应用约定的,只有第一应用以及第二应用可获知该App id的数值。
步骤203:根据所述第一应用的信息对所述Scheme请求进行校验,得到第二校验结果;
例如,服务端在接收到第一应用的bundle id后,可对bundle id进行白名单校验,例如,可判断第一应用的bundle id与第二应用的App id之间是否有可信任关系,如果二者具有可信任关系,则确定校验通过,则第二校验结果为校验通过,否则,第二结果为校验失败。进行该校验可防止未授权应用调用第二应用的服务,其中,白名单校验例如是确定第一应用的bundle id是否在白名单中,白名单中的bundle id所标识的应用均可访问第二应用。
步骤204:响应于所述第二校验结果为检验通过,对所述第一加密信息以及所述第一应用的信息进行重新加密,得到重新加密后的第二加密信息;
需要说明的是,在第二校验结果表示校验成功的情况下,Scheme SDK对所述第一加密信息以及所述第一应用的信息进行重新加密,得到重新加密后的第二加密信息,而在第二校验结果表示校验失败的情况下,第二应用可向Scheme SDK发送校验失败消息,而Scheme SDK根据该校验失败消息可通知第一应用,当前Scheme请求失败。
步骤205:将重新加密后的第二加密信息发送至所述第一应用,以使所述第一应用根据重新加密后的所述第二加密信息对所述Scheme请求进行校验。
例如,第二应用请求第二应用的服务端对第一应用的bundle id进行第二校验后,可将原有的SECRAND、时间戳,以及第二应用的服务端返回的第二校验结果使用SHA256进行摘要计算,再将这些信息整体以App id以及设备名称为密钥通过AES256加密算法进行加密,生成加密数据,追加在Scheme请求尾部返回给Scheme SDK。
其中,Scheme SDK根据重新加密后的第二加密信息对Scheme请求进行校验的操作可参考上述步骤105以及对该步骤的详细解释。
在本说明书的一个或多个实施例中,所述第一应用的信息中包括所述第一应用的bundle id,基于此,根据所述第一应用的信息对所述Scheme请求进行校验,得到第二校验结果,可包括:将所述bundle id发送至所述第二应用的服务端,以使所述第二应用的服务端基于所述bundle id对所述Scheme请求进行校验。其中,bundle id例如是终端的操作系统给应用程序颁发的一个id,App id例如是服务提供方对应用程序进行标记的一个id。举一个例子,比如200017对应了苏宁App(为上述第一应用的一个示例),例如,com.suning.iphone=苏宁App,苏宁App请求调用支付App(为上述第二应用的一个示例),支付App的服务端存在的关系为App id=bundle id=苏宁App,由于Scheme SDK中只有bundle id,所以需要校验调用来源是不是可信的,可将bundle id传到支付App的服务端,由该服务端来查找bundle id的对应关系。假设Scheme SDK采集到的调用来源是com.weixin.phone,该调用来源中,weixin为支付App的bundle id,由于支付App的服务端并不存在该对应关系,则支付App的服务端会确定校验失败。需要说明的是,如果终端中预先存储了App id与bunle id之间的映射关系,则可由终端根据上述第一应用的信息对Scheme请求进行校验,得到第二校验结果。
在本说明书的一个或多个实施例中,所述第一应用的信息包括所述Scheme请求的摘要信息,基于此,Scheme请求校验方法,还可包括:在对所述第二加密信息进行解密后,如果解密失败,则向所述第一应用发送解密失败结果,以使所述第一应用根据所述解密失败结果确定所述Scheme请求失败;如果解密得到所述摘要信息,则根据解密得到的所述摘要信息对所述Scheme请求的摘要信息进行校验,如果校验失败,则将校验失败结果发送给所述第一应用,以使所述第一应用根据所述校验失败结果确定所述Scheme请求失败。需要说明的是,在第二应用对第二加密信息解密失败后,即可确定Scheme请求失败,在该种情况下,则第二应用则无法获得Scheme请求的摘要信息,故第二应用也无需对Scheme请求进行校验。
在本说明书的一个或多个实施例中,对所述第一加密信息以及所述第一应用的信息进行重新加密,可包括:通过第二标识对所述第一加密信息以及所述第一应用的信息进行重新加密,其中,所述第二标识可包括:所述第一应用的应用标识以及所述终端的名称,所述应用标识用于标识所述第一应用对应的商户或开发者。
在本说明书的一个或多个实施例中,提供了一种Scheme请求校验方法,该方法应用于终端,该方法包括:第一应用获取其对第二应用的Scheme请求;第一应用生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;第一应用对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;第一应用将所述Scheme请求以及所述第二加密信息发送给所述第二应用;所述第二应用对所述第二加密信息进行解密,根据所述第一应用的信息对所述Scheme请求进行校验,响应于校验成功,向所述第一应用发送所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;第一应用接收所述Scheme请求的响应消息,对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
在本说明书的一个或多个实施例中,上述Scheme请求校验方法还可包括:所述第一应用在接收来自所述第二应用的所述Scheme请求的响应消息之后,判断所述响应消息中是否包含所述第二加密信息;在所述响应消息中不包含所述第二加密信息时,确定所述Scheme请求结果为所述Scheme请求失败,在所述响应消息中包括所述第二加密信息时,对所述第二加密信息进行解密,得到所述Scheme请求的摘要信息、所述第一应用的bundle id以及所述第一加密信息;所述第一应用对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果,包括:在解密得到的所述摘要信息与预存的摘要信息一致,且解密得到的第一应用的bundle id与预存的第一应用的bundle id一致的情况下,通过所述第一标识对所述第一加密信息进行解密,得第二随机数;在解密得到的所述摘要信息与预存的摘要信息不一致,和/或解密得到的第一应用的bundle id与预存的第一用的bundle id不一致的情况下,确定所述Scheme请求结果为所述Scheme请求失败;在所述第一随机数与所述第二随机数一致的情况下,确定所述Scheme请求结果为Scheme请求成功;在所述第一随机数与所述第二随机数不一致的情况下,确定所述Sheme请求结果为所述Scheme请求失败。
图3是根据本公开一示例性实施例示出的一种Scheme请求校验方法的流程图,如图3所示,该方法涉及商户app(即上述第一应用的一个示例)、Scheme SDK模块(为上述第一应用中的一个模块)、应用程序模块(即上述第二应用的一个示例性,以下简称应用程序)以及应用安全风控模块(即第二应用的服务端的一个示例,以下简称应用安全风控)之间的信息交互以及信息的处理。其中,业务Scheme SDK模块(以下简称Scheme SDK)用于业务的Scheme请求拼装,接受Scheme响应,采集用于安全校验的数据,该数据可包括identifierForVendor、bundle id、时间戳、设备名称、Scheme摘要(即上文中的Scheme请求的摘要信息,以下简称Scheme摘要)、随机数,以及用于校验安全逻辑,包括对加密数据解密,时间戳校验逻辑,随机数校验逻辑,Scheme摘要校验逻辑。应用程序模块用于将解密过后的数据路由到应用安全风控进行安全校验;应用安全风控用于提供安全校验的能力,包括bundle id白名单校验功能。如图3所示,该Scheme请求校验方法包括:
步骤1:商户App向Scheme SDK发送对应用程序的Scheme请求;
步骤2:Scheme SDK在接收到该Scheme请求后,构造业务Scheme;
步骤3:对Scheme请求进行SHA256计算,得到Scheme请求的摘要,得到Scheme摘要(即上述Scheme请求的摘要信息);
步骤4:生成一个随机数,记录该随机数,使用identifierForVendor作为AES密钥,对该随机数进行加密,得到SECRAND(即上述第一加密信息)。
步骤5:采集商户App的bundle id、时间戳、Scheme摘要、SECRAND,以设备名称以及App id(即上述终端名称)为密钥进行AES加密,得到加密数据(即上述第二加密信息)。
步骤6:将加密数据拼接到Scheme请求末尾,并添加当前SDK版本信息,用于后期兼容;
步骤7:向应用程序发送Scheme请求;
步骤8:应用程序在接收到业务Scheme SDK发送的Scheme请求之后,获取商户Appid以及设备名称,以商户App id以及设备名称为密钥对Scheme末尾拼接的加密数据进行解密;
步骤9:如果步骤8中解密失败,应用程序向业务Scheme SDK发送解密失败结果;
步骤10:Scheme SDK向商户App返回Scheme请求失败;
步骤11:应用程序对步骤8中解密得到的Scheme摘要进行校验,得到校验结果;
步骤12:如果步骤11中校验失败,应用程序向业务Scheme SDK发送校验失败结果;
步骤13:业务Scheme SDK向商户App发送Scheme请求失败结果;
步骤14:应用程序将步骤8中解密得到的商户App的bundle id、Scheme摘要、SECRAND以及Scheme请求发送给应用安全风控;
步骤15:应用安全风控根据接收到的消息确定Scheme请求是否合法,例如,对商户App的bundle id进行白名单校验;
步骤16:如果在步骤15中校验通过,应用程序进行业务路由,获取与Scheme请求对应的业务数据,封装Scheme业务结果;
步骤17:应用程序将加密的SECRAND、Scheme摘要、时间戳以App id以及设备名称进行AES加密;
步骤18:应用程序向Scheme SDK返回业务结果;
步骤19:Scheme SDK判断业务结果中是否包含加密数据,如果业务结果中不包含加密数据,则确定业务请求失败;
步骤20:Scheme SDK向商户App发送Scheme请求失败结果;
步骤21:Scheme SDK以App id以及设备名称对业务结果中的加密数据进行解密,如果解密失败,则确定业务请求失败;
步骤22:Scheme SDK向商户App发送Scheme请求失败结果;
步骤23:Scheme SDK以商户App的identifierForVendor对步骤21中解密得到的SECRAND进行解密,如果解密失败,则确定业务请求失败,即Scheme请求失败;
步骤24:Scheme SDK向商户App发送Scheme请求失败结果;
步骤25:Scheme SDK对Scheme摘要进行校验,如果校验失败,则确定业务请求失败;
步骤26:Scheme SDK向商户App发送Scheme请求失败结果;
步骤27:Scheme SDK判断步骤21中解密得到的时间戳进行校验,如果该时间戳大于预设时长则确定当前Scheme请求超时,其中,该预设时长例如,60秒、30秒或10秒,该时长可根据被请求的应用设定。
步骤28:Scheme SDK向商户App发送Scheme请求失败结果;
步骤29:判断是否所有参数均校验成功;
步骤30:在步骤29中判断所有参数均校验成功的情况下,向商户App返回Scheme请求的响应数据。
图4是根据一示例性实施例示出的一种Scheme请求校验装置的框图,该装置可应用于终端,如图4所示,该装置40包括:
第一获取模块41,用于获取第一应用对第二应用的Scheme请求;
第一生成模块42,用于生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;第一加密模块43,用于对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;
第一发送模块44,用于将所述Scheme请求以及所述第二加密信息发送给所述第二应用,以使所述第二应用基于所述第二加密信息对所述Scheme请求进行校验;
第一接收模块45,用于接收来自所述第二应用的所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;
第一确定模块46,用于对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
在本说明书的一个或多个实施例中,所述第一应用的信息包括所述Scheme请求的摘要信息以及所述第一应用的bundle id,上述基于iOS的Scheme请求校验装置还可包括:第一判断模块,用于在接收来自所述第二应用的所述Scheme请求的响应消息之后,判断所述响应消息中是否包含所述第二加密信息;第二确定模块,用于在所述响应消息中不包含所述第二加密信息时,确定所述Scheme请求结果为所述Scheme请求失败,在所述响应消息中包括所述第二加密信息时,对所述第二加密信息进行解密,得到所述Scheme请求的摘要信息、所述第一应用的bundle id以及所述第一加密信息;所述第一确定模块,包括:解密单元,用于在解密得到的所述摘要信息与预存的摘要信息一致,且解密得到的第一应用的bundle id与预存的第一应用的bundle id一致的情况下,通过所述第一标识对所述第一加密信息进行解密,得第二随机数;第一确定单元,用于在解密得到的所述摘要信息与预存的摘要信息不一致,和/或解密得到的第一应用的bundle id与预存的第一用的bundle id不一致的情况下,确定所述Scheme请求结果为所述Scheme请求失败;第二确定单元,用于在所述第一随机数与所述第二随机数一致的情况下,确定所述Scheme请求结果为Scheme请求成功;第三确定单元,用于在解密得到的所述随机数与所述预设随机数不一致的情况下,确定所述Sheme请求结果为所述Scheme请求失败。
在本说明书的一个或多个实施例中,所述第一加密模块,用于:通过第二标识对所述第一加密信息以及所述第一应用的信息进行加密,得到所述第二加密信息,其中,所述第二标识可包括:所述第一应用的应用标识以及所述终端的名称,其中,所述应用标识用于标识所述第一应用对应的商户或开发者。
在本说明书的一个或多个实施例中,所述加密模块可用于:通过所述第二标识对所述摘要信息、所述第一加密信息、时间戳以及所述第一应用的bundle id进行加密,得到所述第二加密信息。
在本说明书的一个或多个实施例中,上述Scheme请求校验装置还可包括:第三确定模块,用于在将所述Scheme请求以及所述第二加密信息发送给所述第二应用之后,接收所述第二应用对所述第二加密信息的解密失败结果,根据所述解密失败结果确定所述Scheme请求失败;或者,在将所述Scheme请求以及所述第二加密信息发送给所述第二应用之后,接收所述第二应用对由所述第二加密信息解密得到的所述摘要信息的校验失败结果,根据所述校验失败结果确定所述Scheme请求失败。
图5是根据本公开一示例性实施例示出的一种Scheme请求校验装置的框图,该装置可应用于终端,如图5所示,该装置50可包括:
第二获取模块51,用于获取第一应用对第二应用的Scheme请求以及第二加密信息,其中,所述第二加密信息包括加密后的所述第一应用的信息以及第一加密信息,所述第一加密信息通过第一标识对第一随机数进行加密得到,所述第一标识与所述终端以及所述第一应用对应;
第一解密模块52,用于对所述第二加密信息进行解密,得到所述第一应用的信息;
校验模块53,用于根据所述第一应用的信息对所述Scheme请求进行校验,得到第二校验结果;
第二加密模块54,用于响应于所述第二校验结果为检验通过,对所述第一加密信息以及所述第一应用的信息进行重新加密,得到重新加密后的第二加密信息;
第二发送模块55,用于将重新加密后的第二加密信息发送至所述第一应用,以使所述第一应用根据重新加密后的所述第二加密信息对所述Scheme请求进行校验。
在本说明书的一个或多个实施例中,所述第一应用的信息中包括所述第一应用的bundle id,所述校验模块用于:将所述bundle id发送至所述第二应用的服务端,以使所述第二应用的服务端基于所述bundle id对所述Scheme请求进行校验。
在本说明书的一个或多个实施例中,所述第一应用的信息包括所述Scheme请求的摘要信息,所述Scheme请求校验装置还可包括:第三发送模块,用于在所述解密模块对所述第二加密信息进行解密后,如果解密失败,则向所述第一应用发送解密失败结果,以使所述第一应用根据所述解密失败结果确定所述Scheme请求失败;第四发送模块,用于如果所述解密模块解密得到所述摘要信息,则根据解密得到的所述摘要信息对所述Scheme请求的摘要信息进行校验,如果校验失败,则将校验失败结果发送给所述第一应用,以使所述第一应用根据所述校验失败结果确定所述Scheme请求失败。
在本说明书的一个或多个实施例中,所述第二加密模块,用于通过第二标识对所述第一加密信息以及所述第一应用的信息进行重新加密,其中,所述所述第二标识可包括:所述第一应用的应用标识以及所述终端的名称,其中,所述应用标识用于标识所述第一应用对应的商户或开发者,该标识可以是上文中提到的App id。
在本说明书的一个或多个实施例中,提供了一种Scheme请求校验装置,所述装置应用于终端,所述装置包括:第三获取模块,用于通过第一应用获取其对第二应用的Scheme请求;第二生成模块,用于通过第一应用生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;第三加密模块,用于通过第一应用对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;第五发送模块,用于通过第一应用将所述Scheme请求以及所述第二加密信息发送给所述第二应用;第二解密模块,用于通过所述第二应用对所述第二加密信息进行解密,根据所述第一应用的信息对所述Scheme请求进行校验,响应于校验成功,向所述第一应用发送所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;第二接收模块,用于第一应用接收所述Scheme请求的响应消息,对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
在本说明书的一个或多个实施例中,上述Scheme请求校验装置还可包括:第二判断模块,用于在所述第一应用在接收来自所述第二应用的所述Scheme请求的响应消息之后,判断所述响应消息中是否包含所述第二加密信息;在所述响应消息中不包含所述第二加密信息时,确定所述Scheme请求结果为所述Scheme请求失败,在所述响应消息中包括所述第二加密信息时,对所述第二加密信息进行解密,得到所述Scheme请求的摘要信息、所述第一应用的bundle id以及所述第一加密信息;所述第二解密模块用于:在解密得到的所述摘要信息与预存的摘要信息一致,且解密得到的第一应用的bundle id与预存的第一应用的bundle id一致的情况下,通过所述第一标识对所述第一加密信息进行解密,得第二随机数;在解密得到的所述摘要信息与预存的摘要信息不一致,和/或解密得到的第一应用的bundle id与预存的第一用的bundle id不一致的情况下,确定所述Scheme请求结果为所述Scheme请求失败;在所述第一随机数与所述第二随机数一致的情况下,确定所述Scheme请求结果为Scheme请求成功;在所述第一随机数与所述第二随机数不一致的情况下,确定所述Sheme请求结果为所述Scheme请求失败。
本说明书还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任意一种Scheme请求校验的方法。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
图6是根据本公开一示例性实施例示出的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (21)
1.一种Scheme请求校验方法,其特征在于,应用于终端,所述方法包括:
获取第一应用对第二应用的Scheme请求;
生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;
对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;
将所述Scheme请求以及所述第二加密信息发送给所述第二应用,以使所述第二应用基于所述第二加密信息对所述Scheme请求进行校验;
接收来自所述第二应用的所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;
对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
2.根据权利要求1所述的方法,其特征在于,所述第一应用的信息包括所述Scheme请求的摘要信息以及所述第一应用的bundle id,所述方法还包括:
在接收来自所述第二应用的所述Scheme请求的响应消息之后,判断所述响应消息中是否包含所述第二加密信息;
在所述响应消息中不包含所述第二加密信息时,确定Scheme请求结果为所述Scheme请求失败,在所述响应消息中包括所述第二加密信息时,对所述第二加密信息进行解密,得到所述Scheme请求的摘要信息、所述第一应用的bundle id以及所述第一加密信息;
对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果,包括:
在解密得到的所述摘要信息与预存的摘要信息一致,且解密得到的第一应用的bundleid与预存的第一应用的bundle id一致的情况下,通过所述第一标识对所述第一加密信息进行解密,得第二随机数;
在解密得到的所述摘要信息与预存的摘要信息不一致,和/或解密得到的第一应用的bundle id与预存的第一应用的bundle id不一致的情况下,确定Scheme请求结果为所述Scheme请求失败;
在所述第一随机数与所述第二随机数一致的情况下,确定所述Scheme请求结果为Scheme请求成功;
在所述第一随机数与所述第二随机数不一致的情况下,确定所述Sc heme请求结果为所述Scheme请求失败。
3.根据权利要求1所述的方法,其特征在于,对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息,包括:
通过第二标识对所述第一加密信息以及所述第一应用的信息进行加密,得到所述第二加密信息,其中,所述第二标识包括:所述第一应用的应用标识以及所述终端的名称,所述应用标识用于标识所述第一应用对应的商户或开发者。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在将所述Scheme请求以及所述第二加密信息发送给所述第二应用之后,接收所述第二应用对所述第二加密信息的解密失败结果,根据所述解密失败结果确定所述Scheme请求失败;
或者,在将所述Scheme请求以及所述第二加密信息发送给所述第二应用之后,接收所述第二应用对由所述第二加密信息解密得到的所述摘要信息的校验失败结果,根据所述校验失败结果确定所述Scheme请求失败。
5.一种Scheme请求校验方法,其特征在于,应用于终端,所述方法包括:
获取第一应用对第二应用的Scheme请求以及第二加密信息,其中,所述第二加密信息包括加密后的所述第一应用的信息以及第一加密信息,所述第一加密信息通过第一标识对第一随机数进行加密得到,所述第一标识与所述终端以及所述第一应用对应;
对所述第二加密信息进行解密,得到所述第一应用的信息;
根据所述第一应用的信息对所述Scheme请求进行校验,得到第二校验结果;
响应于所述第二校验结果为检验通过,对所述第一加密信息以及所述第一应用的信息进行重新加密,得到重新加密后的第二加密信息;
将重新加密后的第二加密信息发送至所述第一应用,以使所述第一应用根据重新加密后的所述第二加密信息对所述Scheme请求进行校验。
6.根据权利要求5所述的方法,其特征在于,所述第一应用的信息中包括所述第一应用的bundle id,根据所述第一应用的信息对所述Scheme请求进行校验,得到第二校验结果,包括:
将所述bundle id发送至所述第二应用的服务端,以使所述第二应用的服务端基于所述bundle id对所述Scheme请求进行校验。
7.根据权利要求6所述的方法,其特征在于,所述第一应用的信息包括所述Scheme请求的摘要信息,所述方法还包括:
在对所述第二加密信息进行解密后,如果解密失败,则向所述第一应用发送解密失败结果,以使所述第一应用根据所述解密失败结果确定所述Scheme请求失败;
如果解密得到所述摘要信息,则根据解密得到的所述摘要信息对所述Scheme请求的摘要信息进行校验,如果校验失败,则将校验失败结果发送给所述第一应用,以使所述第一应用根据所述校验失败结果确定所述Scheme请求失败。
8.根据权利要求5至7任一项所述的方法,其特征在于,对所述第一加密信息以及所述第一应用的信息进行重新加密,包括:
通过第二标识对所述第一加密信息以及所述第一应用的信息进行重新加密,其中,所述第二标识包括:所述第一应用的应用标识以及所述终端的名称,其中,所述应用标识用于标识所述第一应用对应的商户或开发者。
9.一种Scheme请求校验方法,其特征在于,所述方法应用于终端,所述方法包括:
第一应用获取其对第二应用的Scheme请求;
第一应用生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;
第一应用对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;
第一应用将所述Scheme请求以及所述第二加密信息发送给所述第二应用;
所述第二应用对所述第二加密信息进行解密,根据所述第一应用的信息对所述Scheme请求进行校验,响应于校验成功,向所述第一应用发送所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;
第一应用接收所述Scheme请求的响应消息,对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述第一应用在接收来自所述第二应用的所述Scheme请求的响应消息之后,判断所述响应消息中是否包含所述第二加密信息;
在所述响应消息中不包含所述第二加密信息时,确定所述Scheme请求结果为所述Scheme请求失败,在所述响应消息中包括所述第二加密信息时,对所述第二加密信息进行解密,得到所述Scheme请求的摘要信息、所述第一应用的bundle id以及所述第一加密信息;
所述第一应用对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果,包括:
在解密得到的所述摘要信息与预存的摘要信息一致,且解密得到的第一应用的bundleid与预存的第一应用的bundle id一致的情况下,通过所述第一标识对所述第一加密信息进行解密,得第二随机数;
在解密得到的所述摘要信息与预存的摘要信息不一致,和/或解密得到的第一应用的bundle id与预存的第一应用的bundle id不一致的情况下,确定Scheme请求结果为所述Scheme请求失败;
在所述第一随机数与所述第二随机数一致的情况下,确定所述Scheme请求结果为Scheme请求成功;
在所述第一随机数与所述第二随机数不一致的情况下,确定所述Sc heme请求结果为所述Scheme请求失败。
11.一种Scheme请求校验装置,其特征在于,应用于终端,所述装置包括:
第一获取模块,用于获取第一应用对第二应用的Scheme请求;
第一生成模块,用于生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;
第一加密模块,用于对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;
第一发送模块,用于将所述Scheme请求以及所述第二加密信息发送给所述第二应用,以使所述第二应用基于所述第二加密信息对所述Scheme请求进行校验;
第一接收模块,用于接收来自所述第二应用的所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;
第一确定模块,用于对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
12.根据权利要求11所述的装置,其特征在于,所述第一应用的信息包括所述Scheme请求的摘要信息以及所述第一应用的bundle id,所述装置还包括:
第一判断模块,用于在接收来自所述第二应用的所述Scheme请求的响应消息之后,判断所述响应消息中是否包含所述第二加密信息;
第二确定模块,用于在所述响应消息中不包含所述第二加密信息时,确定所述Scheme请求结果为所述Scheme请求失败,在所述响应消息中包括所述第二加密信息时,对所述第二加密信息进行解密,得到所述Scheme请求的摘要信息、所述第一应用的bundle id以及所述第一加密信息;
所述第一确定模块,包括:
解密单元,用于在解密得到的所述摘要信息与预存的摘要信息一致,且解密得到的第一应用的bundle id与预存的第一应用的bundle id一致的情况下,通过所述第一标识对所述第一加密信息进行解密,得第二随机数;
第一确定单元,用于在解密得到的所述摘要信息与预存的摘要信息不一致,和/或解密得到的第一应用的bundle id与预存的第一应用的bundle id不一致的情况下,确定Scheme请求结果为所述Scheme请求失败;
第二确定单元,用于在所述第一随机数与所述第二随机数一致的情况下,确定所述Scheme请求结果为Scheme请求成功;
第三确定单元,用于在解密得到的所述随机数与预设随机数不一致的情况下,确定所述Sc heme请求结果为所述Scheme请求失败。
13.根据权利要求11所述的装置,其特征在于,所述第一加密模块,用于:
通过第二标识对所述第一加密信息以及所述第一应用的信息进行加密,得到所述第二加密信息,其中,所述第二标识包括:
所述第一应用的应用标识以及所述终端的名称,其中,所述应用标识用于标识所述第一应用对应的商户或开发者。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于在将所述Scheme请求以及所述第二加密信息发送给所述第二应用之后,接收所述第二应用对所述第二加密信息的解密失败结果,根据所述解密失败结果确定所述Scheme请求失败;
或者,在将所述Scheme请求以及所述第二加密信息发送给所述第二应用之后,接收所述第二应用对由所述第二加密信息解密得到的所述摘要信息的校验失败结果,根据所述校验失败结果确定所述Scheme请求失败。
15.一种Scheme请求校验装置,其特征在于,应用于终端,所述装置包括:
第二获取模块,用于获取第一应用对第二应用的Scheme请求以及第二加密信息,其中,所述第二加密信息包括加密后的所述第一应用的信息以及第一加密信息,所述第一加密信息通过第一标识对第一随机数进行加密得到,所述第一标识与所述终端以及所述第一应用对应;
第一解密模块,用于对所述第二加密信息进行解密,得到所述第一应用的信息;
校验模块,用于根据所述第一应用的信息对所述Scheme请求进行校验,得到第二校验结果;
第二加密模块,用于响应于所述第二校验结果为检验通过,对所述第一加密信息以及所述第一应用的信息进行重新加密,得到重新加密后的第二加密信息;
第二发送模块,用于将重新加密后的第二加密信息发送至所述第一应用,以使所述第一应用根据重新加密后的所述第二加密信息对所述Scheme请求进行校验。
16.根据权利要求15所述的装置,其特征在于,所述第一应用的信息中包括所述第一应用的bundle id,所述校验模块用于:
将所述bundle id发送至所述第二应用的服务端,以使所述第二应用的服务端基于所述bundle id对所述Scheme请求进行校验。
17.根据权利要求15所述的装置,其特征在于,所述第一应用的信息包括所述Scheme请求的摘要信息,所述装置还包括:
第三发送模块,用于在所述解密模块对所述第二加密信息进行解密后,如果解密失败,则向所述第一应用发送解密失败结果,以使所述第一应用根据所述解密失败结果确定所述Scheme请求失败;
第四发送模块,用于如果所述解密模块解密得到所述摘要信息,则根据解密得到的所述摘要信息对所述Scheme请求的摘要信息进行校验,如果校验失败,则将校验失败结果发送给所述第一应用,以使所述第一应用根据所述校验失败结果确定所述Scheme请求失败。
18.根据权利要求15至17任一项所述的装置,其特征在于,所述第二加密模块,用于通过第二标识对所述第一加密信息以及所述第一应用的信息进行重新加密,其中,所述第二标识包括:
所述第一应用的应用标识以及所述终端的名称,其中,所述应用标识用于标识所述第一应用对应的商户或开发者。
19.一种Scheme请求校验装置,其特征在于,所述装置应用于终端,所述装置包括:
第三获取模块,用于通过第一应用获取其对第二应用的Scheme请求;
第二生成模块,用于通过第一应用生成第一随机数,并通过第一标识对所述第一随机数进行加密,得到第一加密信息,其中,所述第一标识作为密钥,所述第一标识与所述终端以及所述第一应用对应;
第三加密模块,用于通过第一应用对所述第一加密信息以及所述第一应用的信息进行加密,得到第二加密信息;
第五发送模块,用于通过第一应用将所述Scheme请求以及所述第二加密信息发送给所述第二应用;
第二解密模块,用于通过所述第二应用对所述第二加密信息进行解密,根据所述第一应用的信息对所述Scheme请求进行校验,响应于校验成功,向所述第一应用发送所述Scheme请求的响应消息,所述响应消息中携带有所述第一加密信息;
第二接收模块,用于第一应用接收所述Scheme请求的响应消息,对所述第一加密信息进行解密,得到第一解密结果,根据所述第一解密结果确定Scheme请求结果。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:
第二判断模块,用于在所述第一应用在接收来自所述第二应用的所述Scheme请求的响应消息之后,判断所述响应消息中是否包含所述第二加密信息;
在所述响应消息中不包含所述第二加密信息时,确定Scheme请求结果为所述Scheme请求失败,在所述响应消息中包括所述第二加密信息时,对所述第二加密信息进行解密,得到所述Scheme请求的摘要信息、所述第一应用的bundle id以及所述第一加密信息;
所述第二解密模块用于:
在解密得到的所述摘要信息与预存的摘要信息一致,且解密得到的第一应用的bundleid与预存的第一应用的bundle id一致的情况下,通过所述第一标识对所述第一加密信息进行解密,得第二随机数;
在解密得到的所述摘要信息与预存的摘要信息不一致,和/或解密得到的第一应用的bundle id与预存的第一应用的bundle id不一致的情况下,确定Scheme请求结果为所述Scheme请求失败;
在所述第一随机数与所述第二随机数一致的情况下,确定所述Scheme请求结果为Scheme请求成功;
在所述第一随机数与所述第二随机数不一致的情况下,确定所述Sc heme请求结果为所述Scheme请求失败。
21.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至10任意一项所述的Scheme请求校验方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911366998.6A CN110912697B (zh) | 2019-12-26 | 2019-12-26 | Scheme请求校验方法、装置及设备 |
CN202210864752.7A CN115442027A (zh) | 2019-12-26 | 2019-12-26 | Scheme请求校验方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911366998.6A CN110912697B (zh) | 2019-12-26 | 2019-12-26 | Scheme请求校验方法、装置及设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210864752.7A Division CN115442027A (zh) | 2019-12-26 | 2019-12-26 | Scheme请求校验方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110912697A CN110912697A (zh) | 2020-03-24 |
CN110912697B true CN110912697B (zh) | 2022-09-16 |
Family
ID=69827828
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210864752.7A Pending CN115442027A (zh) | 2019-12-26 | 2019-12-26 | Scheme请求校验方法、装置及设备 |
CN201911366998.6A Active CN110912697B (zh) | 2019-12-26 | 2019-12-26 | Scheme请求校验方法、装置及设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210864752.7A Pending CN115442027A (zh) | 2019-12-26 | 2019-12-26 | Scheme请求校验方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN115442027A (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156601A (zh) * | 2015-04-28 | 2016-11-23 | 高德软件有限公司 | iOS平台scheme传送方法、装置、服务器及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6169804B1 (en) * | 1996-11-21 | 2001-01-02 | Pitney Bowes Inc. | Method for verifying the expected postage security device and its status |
CN102143134B (zh) * | 2010-08-05 | 2014-04-30 | 华为技术有限公司 | 分布式身份认证方法、装置与系统 |
CN102868665B (zh) * | 2011-07-05 | 2016-07-27 | 华为软件技术有限公司 | 数据传输的方法及装置 |
WO2014011453A2 (en) * | 2012-07-09 | 2014-01-16 | Jvl Ventures, Llc | Systems, methods, and computer program products for integrating third party services with a mobile wallet |
CN110457959B (zh) * | 2015-09-10 | 2023-06-20 | 创新先进技术有限公司 | 一种基于Trust应用的信息传输方法及装置 |
EP3387809B1 (en) * | 2015-12-10 | 2021-04-21 | Nokia Technologies Oy | Schemes of homomorphic re-encryption |
CN107291741B (zh) * | 2016-03-31 | 2021-05-11 | 创新先进技术有限公司 | 通信方法和装置 |
CN107463453B (zh) * | 2017-08-10 | 2023-06-27 | 腾讯科技(深圳)有限公司 | 同一终端不同应用间通信的方法、装置、设备和存储介质 |
CN108334775B (zh) * | 2018-01-23 | 2022-09-23 | 创新先进技术有限公司 | 一种越狱插件检测方法及装置 |
-
2019
- 2019-12-26 CN CN202210864752.7A patent/CN115442027A/zh active Pending
- 2019-12-26 CN CN201911366998.6A patent/CN110912697B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156601A (zh) * | 2015-04-28 | 2016-11-23 | 高德软件有限公司 | iOS平台scheme传送方法、装置、服务器及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110912697A (zh) | 2020-03-24 |
CN115442027A (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9652610B1 (en) | Hierarchical data security measures for a mobile device | |
US10769628B2 (en) | Transaction messaging | |
US11258792B2 (en) | Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium | |
CN110086768B (zh) | 一种业务处理方法及装置 | |
JP6691262B2 (ja) | グラフィックコード情報を提供及び取得する方法及び装置並びに端末 | |
CN110245518B (zh) | 一种数据存储方法、装置及设备 | |
US10733594B1 (en) | Data security measures for mobile devices | |
CN113553572B (zh) | 资源信息获取方法、装置、计算机设备和存储介质 | |
CN111339536B (zh) | 一种基于安全执行环境的数据验证方法及装置 | |
CN108564363B (zh) | 一种交易处理方法、服务器、客户端及系统 | |
CN110661814A (zh) | 一种投标文件加解密方法、装置、设备和介质 | |
CN104199657A (zh) | 开放平台的调用方法及装置 | |
CN111538961A (zh) | 软件的激活方法、装置、设备和存储介质 | |
US20190042706A1 (en) | Display of protected content using trusted execution environment | |
CN112004201A (zh) | 一种短信的发送方法、装置及计算机系统 | |
US9756044B2 (en) | Establishment of communication connection between mobile device and secure element | |
CN110457959B (zh) | 一种基于Trust应用的信息传输方法及装置 | |
CN111182010B (zh) | 一种本地服务提供方法及装置 | |
CN110912697B (zh) | Scheme请求校验方法、装置及设备 | |
CN109995534B (zh) | 一种对应用程序进行安全认证的方法和装置 | |
CN107241341B (zh) | 访问控制方法及装置 | |
JP2007060581A (ja) | 情報管理システム及び方法 | |
CN110336772A (zh) | 基于加密验证服务器的网页数据自动取证方法以及设备 | |
CN113379418B (zh) | 基于安全插件的信息验证方法、设备、介质及程序产品 | |
KR102547682B1 (ko) | Puf기반 otp를 이용하여 사용자 인증을 지원하는 서버 및 그 동작 방법 |
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 |