CN108875385B - 应用间通信的方法及装置 - Google Patents
应用间通信的方法及装置 Download PDFInfo
- Publication number
- CN108875385B CN108875385B CN201810427627.3A CN201810427627A CN108875385B CN 108875385 B CN108875385 B CN 108875385B CN 201810427627 A CN201810427627 A CN 201810427627A CN 108875385 B CN108875385 B CN 108875385B
- Authority
- CN
- China
- Prior art keywords
- application
- information
- verification
- related information
- target picture
- 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
-
- 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/606—Protecting data by securing the transmission between two devices or processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Telephone Function (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种应用间通信的方法及装置,应用于安卓系统的终端设备,通信的第一应用和第二应用安装在同一终端设备上,方法包括:当第一应用处于运行状态时,第一应用从第二应用的资源文件中读取目标图片;该目标图片中嵌入有第二应用用于通信的相关信息,及相关信息的验证信息;第一应用从目标图片中提取相关信息和验证信息;第一应用基于验证信息对相关信息进行验证;若通过,第一应用基于相关信息与第二应用进行通信。本申请中,将相关信息及验证信息携带在资源文件的图片中,使得相关信息及验证信息的隐蔽性高,不容易被攻击者发现,从而使得非法应用不容易伪造该信息,并且对相关信息进行验证的可靠性高,提高了应用间通信安全性。
Description
技术领域
本申请涉及通信领域,尤其涉及一种应用间通信的方法及装置。
背景技术
随着科学技术的快速发展,终端设备在人们的生活、工作中得到了广泛的应用,并且,可以安装在终端设备上的应用也越来越多。在某些情况下,安装在同一个终端设备上的不同的应用之间会进行通信。一般的,终端设备上的应用只会与其信任的应用进行通信,因此,当某一个应用在于同一终端上的其他应用之间在进行通信时,需要验证对方应用是否为可信任的应用。
现有技术中,在与同一终端设备上的其他应用进行通信时,一般通过检测对方应用是否支持预先约定某个固定名字的服务,对对方应用的可信性进行验证;或者,通过检测预先建立的可信任的应用名单中是否存在对应应用的包名的方式,对对方应用的可信性进行检测。
但是,若是采用约定固定名字的服务的方式,则很容易被攻击者观察总结出约定的服务的名字,从而研究出破解方案,从而伪造应用,导致通信出现安全隐患;若是采用建立可信任的应用的名单的方式,可能会出现伪造包名的情况,从而可靠性也难以保证,出现安全隐患。
综上所述,现有技术中同一终端设备上的应用在进行通信时,验证通信对方是否为可信应用的可靠性较差,导致通信的安全性较差,容易出现安全隐患。
发明内容
本申请实施例的目的是提供一种应用间通信的方法,以解决现有技术中同一终端设备上的应用在进行通信时,验证通信对方是否为可信应用的可靠性较差,导致通信的安全性较差,容易出现安全隐患的问题。
为解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供了一种应用间通信的方法,该方法应用于安卓系统的终端设备,所述设备上安装有第一应用和第二应用,所述方法包括:
当所述第一应用处于运行状态时,所述第一应用从所述第二应用的资源文件中读取目标图片;其中,所述目标图片中嵌入有所述第二应用用于通信的相关信息,以及所述相关信息的验证信息;
所述第一应用从所述目标图片中提取所述相关信息和所述验证信息;
所述第一应用基于所述验证信息对所述相关信息的安全性进行验证;
若验证通过,则所述第一应用基于所述相关信息与所述第二应用进行通信。
本申请还实施例提供了一种装置,应用于安卓系统的终端设备,所述终端设备上安装有第一应用和第二应用,所述装置包括:
读取模块,用于当所述第一应用处于运行状态时,从所述第二应用的资源文件中读取目标图片;其中,所述目标图片中嵌入有所述第二应用用于通信的相关信息,以及所述相关信息的验证信息;
提取模块,用于从所述目标图片中提取所述相关信息和所述验证信息;
验证模块,用于基于所述验证信息对所述相关信息的安全性进行验证;
通信模块,用于若验证通过,则基于所述相关信息与所述第二应用进行通信。
本申请实施例还提供了一种应用间通信的设备,应用于安卓系统的终端设备,所述终端设备上安装有第一应用和第二应用,所述可信任应用的验证设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述第一方面所述的应用间通信的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,应用于安卓系统的终端设备,所述终端设备上安装有第一应用和第二应用,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的应用间通信的方法的步骤。
本申请实施例中的应用间通信的方法及装置,将第二应用上用于通信的相关信息以及相关信息的验证信息携带在第二应用的资源文件的图片中,这样,安装在同一终端设备上的第一应用在与第二应用进行通信时,第一应用从第二应用的资源文件中读取目标图片,然后从目标图片中提取相关信息和验证信息;并基于上述验证信息对该相关信息的安全性进行验证;若是验证通过,则第一应用基于上述相关信息与第二应用进行通信。在本申请实施例中,将相关信息以及相关信息的验证信息携带在资源文件的图片中,使得相关信息及验证信息的隐蔽性高,不容易被攻击者发现,从而使得非法应用不容易伪造该信息,并且对相关信息进行验证的可靠性高,提高了应用间通信安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基于安卓系统的终端设备上的第一应用与第二应用间通信的场景示意图。
图2为本申请实施例提供的应用间通信的方法的第一种方法流程图;
图3为本申请实施例提供的应用间通信的方法中,对相关信息进行验证的方法流程图;
图4为本申请实施例提供的应用间通信的方法中,对第一应用和第二应用进行处理的过程示意图;
图5为本申请实施例提供的应用间通信的方法的第二种方法流程图;
图6为本申请实施例提供的应用间通信的方法的过程示意图;
图7为本申请实施例提供的应用间通信装置的模块组成示意图;
图8为本申请实施例提供的应用间通信设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例的思想在于,将应用中用于通信的相关信息以及该相关信息的验证信息嵌入在该应用的资源文件的图片中,利用图片格式的隐蔽性,确保了该应用的相关信息以及验证信息的隐蔽性,不容易被攻击者发现,可靠性较高,从而提高了应用间通信的安全性。基于此思想,本申请实施例提供了一种应用间通信的方法,该方法应用于安卓系统的终端设备。一般的,具有安卓系统的终端设备上的应用可以互相读取对应的资源文件。其中,该资源文件指的是各个应用的安装文件,上述终端设备可以是计算机、手机、平板电脑等。
其中,在本申请实施例中所出现的应用均指的是应用程序。
图1为本申请实施例提供的应用间通信的场景示意图,在图1所示的场景中,需要通信的为第一应用和第二应用,第一应用和第二应用为安装在同一个终端设备上,且该终端设备为基于安卓系统的终端设备。图1所示,在某一个基于安卓系统的终端设备上,第一应用和第二应用可以进行通信,其中,第一应用和第二应用为终端设备上任意两个可以进行通信的应用。
图2为本申请实施例提供的应用间通信的方法的第一种方法流程图,图2所示的方法,至少包括如下步骤:
步骤202,当第一应用处于运行状态时,第一应用从第二应用的资源文件中读取目标图片;其中,目标图片中嵌入有第二应用用于通信的相关信息,以及相关信息的验证信息。
其中,上述第二应用为第一应用需要进行通信的任意一个应用。为便于理解,下述将举例进行说明。
例如,在一种具体实施方式中,上述第一应用为安装在终端上设备上的微信应用,当用户在使用微信时,需要从终端设备的图片库中获取某张图片,这时,微信应用需要与图片库应用进行通信,即在该种情况下,微信应用为第一应用,图片库应用为第二应用。
在本申请实施例中,上述目标图片可以为资源文件中具有其他功能的图片,例如,可以是第二应用的应用图标。在该种情况下,为了不影响目标图片的正常显示功能,在本申请实施例中,上述相关信息以及验证信息可以嵌入在目标图片的数据中的附加数据中;
其中,上述附加数据为目标图片的数据中非用于显示的数据。
一般的,图片都是由数据构成的,在一个图片对应的数据中,包括用于显示的数据以及非用于显示的数据,若是在非用于显示的数据中添加数据,不会对图片的显示效果产生影响,因此,本申请实施例将上述相关信息以及验证信息添加在这部分数据中,既实现了目标图片的正常显示,同时还实现了相关信息以及验证信息的嵌入。为便于理解,下述将举例进行说明。
例如,上述目标图片为可移植网络图片格式(Portable Network GraphicFormat,PNG)的图片,在该PNG格式的图片数据中存在一部分文本(text)格式的数据,而text格式的部分数据属于PNG图片的数据中的附加数据,这部分数据为PNG图片中不用于显示的数据,在这部分数据中添加其它数据不会影响整个图片的显示效果,因此,可以将上述相关信息以及相关信息的验证信息添加在这部分数据中。
当然,除了上述介绍的使用资源文件中具有其他功能的图片携带通信相关信息以及相关信息的验证信息外,还可以在资源文件中添加一张只用于携带上述通信相关信息以及验证信息的图片。在这种情况下,该图片只是用于携带通信相关信息以及验证信息,这时,上述相关信息以及验证信息可以嵌入在该图片的附加数据中,也可以嵌入在其他部分数据中。
在本申请实施例中,不管是使用资源文件中具有其它功能的图片,还是资源文件中只是用于嵌入通信相关信息以及验证信息的图片,都需要将目标图片的标识告知第一应用,以便第一应用在与第二应用进行通信时,清楚知道从第二应用的资源文件中读取哪张图片。
在本申请实施例中,通过将第二应用用于通信的相关信息以及该相关信息的验证信息嵌入在第二应用的资源文件的目标图片中,利用了图片的隐蔽性,使得第二应用的相关信息以及验证信息的隐蔽性较高,不容易被攻击者发现,因此,不容易被篡改或者伪造,提高了上述信息的可靠性以及通信的安全性。
另外,上述第二应用用于通信的相关信息指的是,第一应用与第二应用进行通信时所需要知道的第二应用的相关信息,其中,上述相关信息包括以下信息中的一种或者多种:
包名信息、服务接口信息、通信协议信息、应用版本信息以及各个服务的访问限制信息。
其中,上述各个服务的访问限制信息指的当第一应用访问第二应用上的各个服务时,第二应用上的每个服务对第一应用的版本等的要求,上述各个服务指的是第二应用上的各种功能。
上述验证信息指的是用于对上述相关信息的安全性、有效性进行验证的信息。
步骤204,第一应用从目标图片中提取上述相关信息和验证信息。
在本申请实施例中,为了便于第一应用从目标图片中提取上述相关信息和验证信息,在将上述信息嵌入目标图片中时,可以设置上述信息的标识,将上述相关信息和验证信息与其对应的标识对应的嵌入目标图片。这样,当第一应用从目标图片中提取上述相关信息和验证信息时,可以直接根据该标识在目标图片的数据中查找上述相关信息和验证信息。
其中,上述标识可以是相关信息和验证信息的名称等。
步骤206,第一应用基于上述验证信息对上述相关信息进行验证。
具体的,为了提高上述验证过程的可靠性,提高第一应用和第二应用间通信的安全性,在本申请实施例中,上述验证信息为使用数字证书的私钥对上述相关信息的摘要信息进行签名所生成的。
其中,上述摘要信息为采用预设算法对上述相关信息进行计算得到的,该预设算法可以为哈希算法等,例如,采用哈希值为256位的哈希算法计算相关信息的摘要信息。
相应的,上述步骤206中,第一应用基于上述验证信息对上述相关信息进行验证,具体包括如下步骤(1)和步骤(2);
步骤(1)、第一应用使用数字证书的公钥对上述验证信息进行解签,得到上述验证信息对应的第一摘要信息;
其中,上述第一应用中携带有上述公钥。
步骤(2)、第一应用基于上述第一摘要信息对上述相关信息进行验证。
在一种具体实施方式中,第一应用中携带有与对第一应用的相关信息进行签名的私钥对应的公钥,因此,当第一应用从目标图片中提取了上述相关信息和验证信息后,首先使用上述公钥对该验证信息进行解签,得到上述相关信息对应的摘要信息,将该摘要信息记为第一摘要信息。
具体的,在上述步骤(2)中,对上述相关信息进行验证的具体过程包括:第一应用采用与对上述相关信息进行签名时计算相关信息的摘要信息相同的算法计算出相关信息的摘要信息,将通过该算法计算出的摘要信息记为第二摘要信息。例如,在对上述相关信息进行签名时,采用哈希值为256位的哈希算法计算上述相关信息的摘要信息,则在上述步骤(2)中,仍采用哈希值为256的哈希算法计算该相关信息的摘要信息。
由于针对相同的相关信息,采用不同的算法生成的摘要信息不同,因此,为了消除该算法产生的影响,提高上述验证过程的准确性,在上述步骤(2)中,则采用与签名时相同的算法生成摘要信息。
在上述步骤(2)中,当生成第二摘要信息后,将上述解签得到的第一摘要信息与生成的第二摘要信息进行比对,以验证第一摘要信息和第二摘要信息是否相同。若是验证结果为第一摘要信息和第二摘要信息相同,则说明上述相关信息并没有被篡改或者伪造,即第二应用提供的相关信息为安全信息,以及第二应用为可信任应用。
为便于理解,下述将具体进行说明。图3示出了上述第一应用对相关信息进行验证的一种流程示意图,在图3所示的流程图中,至少包括如下步骤:
步骤302,第一应用使用数字证书的私钥对上述验证信息进行解签,得到验证信息对应的第一摘要信息。
具体的,在本申请实施例中,在第一应用中嵌入有上述数字证书的公钥,该数字证书指的是对第二应用中的相关信息进行签名所使用的数字证书。
步骤304,第一应用采用预设算法生成上述相关信息对应的第二摘要信息。
其中,上述预设算法为对相关信息进行签名时生成相关信息的摘要信息相同的算法。
步骤306,验证上述第一摘要信息和第二摘要信息是否一致;若是一致,则执行步骤308;
在本申请实施例中,通过比对上述两种方式得到的摘要信息是否一致,可以验证从第二应用获取的相关信息是否为篡改,即验证该相关信息的可靠性、安全性等。
步骤308,上述相关信息验证通过。
在本申请实施例中,采用数字签名的方式对相关信息的有效性进行验证,由于数字签名的安全性、可靠性较高,并且具有不可伪造性,因此,可以进一步提高对相关信息的有效性的验证结果的可靠性,从而确保了上述相关信息的有效性,提高了应用间进行通信的安全性。
通常,当用于通信的相关信息数据量较大时,通过生成相关信息的摘要信息,再对该摘要信息进行签名,能够有效较少需要嵌入图片中的数据量。因此,上述实施例中所列举的实现方式在相关信息的数据量较大的应用场景中,具有很好的效果,不仅能够进一步提高对相关信息的有效性的验证结果的可靠性,还可以减少嵌入在目标图片中的数据量。
此外,在某些特殊场景下,应用之间仅需要很少数据量的相关信息进行就能进行通信,在此场景下,可以直接使用数字证书的私钥对该相关信息进行签名,得到相关信息的验证信息,将该验证信息及相关信息嵌入在目标图片中;相应的,在进行验证时,使用数字证书的公钥对上述验证信息进行解签,得到该验证信息对应的相关信息,记为第一相关信息,并将该第一相关信息与上述提取的相关信息的一致性进行验证。因此,这种实现方式在相关信息数据量较小的应用场景中,可以减少生成摘要信息的步骤,还能够节省验证过程的计算量,从而提高验证效率。
因此,本领域技术人员可以根据具体应用场景和需求,从上述两种实现方式中灵活选择最适用的方式。
步骤208,若上述相关信息验证通过,则第一应用基于上述相关信息与第二应用进行通信。
在本申请实施例中,当上述相关信息验证通过后,则说明该相关信息未被篡改和修改,为有效信息,以及第二应用为可信任应用,这时,第一应用可以与第二应用进行通信。
由于上述相关信息为第二应用用于通信的相关信息,因此,在对上述相关信息的安全性验证通过后,第一应用可以根据上述相关信息与第二应用进行通信。
另外,在本申请实施例中,在第二应用发布前,第二应用的资源文件的目标图片中被嵌入上述相关信息,以及上述验证信息;其中,上述验证信息为使用数字证书的私钥对上述相关信息的摘要信息进行签名所生成的;
在第一应用发布前,第一应用中被嵌入上述数字证书的公钥。
为便于理解,下述将详细介绍在第一应用和第二应用发布前,对第一应用和第二应用进行处理的具体过程。
具体的,在第一应用和第二应用在发布之前,具体可以通过如下步骤(A)、步骤(B)、步骤(C)和步骤(D)在第一应用和第二应用中嵌入信息,以使得第一应用和第二应用能够实现采用本发明实施例提供的方法进行通信;
步骤(A)、生成相关信息的摘要信息;
步骤(B)、使用数字证书的私钥对上述摘要信息进行签名,生成验证信息;
步骤(C)、将上述相关信息和验证信息嵌入目标图片;
步骤(D)将上述数字证书的公钥添加至第一应用。
其中,在步骤(A)中,上述相关信息指的是第二应用用于通信的相关信息,可以为以下中的一种或者多种:第二应用的包名信息、第二应用的服务接口信息、第二应用的通信协议信息、第二应用的应用版本信息以及第二应用上各个服务的访问限制信息。
具体的,在步骤(A)中,可以采用哈希算法等生成相关信息的摘要信息。例如,可以采用哈希值为256位的哈希算法计算相关信息的摘要信息。
其中,在上述步骤(C)中,可以是将上述相关信息和验证信息嵌入目标图片的数据中的附加数据中。另外,为了使得第一应用在与第二应用进行通信时,能够对第二应用进行验证,因此,上述数字证书的公钥需要添加至第一应用中。
为便于理解在第一应用和第二应用发布前,对第一应用和第二应用进行处理的过程,下述将结合处理示意图进行说明。
图4示出了本申请实施例中,在第一应用和第二应用进行发布前,对第一应用和第二应用进行处理的一种过程示意图。
在图4所示中,首先生成第二应用的相关信息的摘要信息,然后使用数字证书的私钥对该摘要信息进行签名,得到被签名的信息,也即本申请实施例中的验证信息;选取第二应用的资源文件中的任意一种图片,作为目标图片,将上述验证信息以及相关信息嵌入目标图片中,得到嵌入了信息的图片,并将该数字证书的公钥也嵌入到第二应用中,得到待发布的第二应用;另外,由于第一应用需要与第二应用进行通信,因此,将上述数字证书的公钥也嵌入第一应用中,得到待发布的第一应用。
当然,在图4所示的过程中,只是针对第一应用与第二应用进行通信这种情况,介绍对第一应用和第二应用进行处理的过程,除此之外,还可以在第二应用中嵌入对其他应用进行签名的私钥对应的公钥;并且,也可以在第一应用中嵌入第一应用用于通信的相关信息以及验证信息等。
因此,当第一应用需要与多个应用进行通信时,在第一应用中需要嵌入多个应用对应的公钥,因此,当第一应用于各个应用进行通信时,为了便于第一应用查找到各个应用对应的公钥,在本申请实施例中,第一应用中被嵌入有数字证书的公钥与第二应用的标识的对应关系。
例如,在一种具体实施方式中,在第一应用中可以以表1所示的形式嵌入有多个应用对应的公钥。
例如,当第一应用需要与应用A进行通信时,则在其嵌入的数字证书的公钥中,查找应用A对应的公钥,用于对应用A的相关信息进行验证。
表1
公钥 | 应用标识 |
公钥1 | 应用A |
公钥2 | 应用B |
公钥3 | 应用C |
但是,若是采用一个应用使用一种数字证书进行签名的方式,在每个应用中都需要嵌入多个数字证书的公钥,不便于管理。因此,为了便于各个应用对其嵌入的公钥进行管理,在本申请实施例中,针对同一个公司或者同一个合作联盟的应用使用一个数字证书进行签名,并将该数字证书的公钥放置于各个应用中,这样,若是与某个应用进行通信的应用都属于同一个公司或者合作联盟,这样,在该应用中只需要嵌入一个数字证书即可,大大的方便了应用对数字证书的管理。
为便于理解本申请实施例提供的应用间通信的方法,下述将以安装在同一个安卓系统的终端设备上的应用A和应用B为例,介绍本申请实施例提供的应用间通信的方法。
图5为本申请实施例提供的应用间通信的第二种方法流程图,图5所示的方法至少包括如下步骤:
步骤502,当应用A处于运行状态时,应用A从应用B的资源文件中读取目标图片。
其中,在上述目标图片的数据中的附加数据中嵌入有应用B用于通信的相关信息,以及该相关信息的验证信息。
具体的,该验证信息为使用数字证书的私钥对该相关信息的摘要信息进行签名所生成的。
步骤504,应用A从上述目标图片中提取出上述相关信息和验证信息。
其中,为了便于应用A从目标图片中找到上述相关信息和验证信息,在本申请实施例中,将相关信息、验证信息以及该信息的标识的对应关系嵌入到目标图片中。
步骤506,应用A使用数字证书的公钥对上述验证信息进行解签,得到该验证信息对应的摘要信息,记为第一摘要信息。
在该步骤中,对上述验证信息进行解签的过程实际上是在验证应用B的身份信息的过程。
其中,在应用A中嵌入有应用B对应的公钥,使用应用B对应的公钥对该验证信息进行解签。
步骤508,应用A使用预算法生成上述相关信息的摘要信息,记为第二摘要信息。
其中,该预设算法为对上述相关信息进行签名时,生成该相关信息的摘要信息所使用的算法相同的算法。
步骤510,应用A验证第一摘要信息和第二摘要信息是否完全一致;若是则执行步骤512;否则,结束。
在该步骤中,验证第一摘要信息和第二摘要信息是否完全一致的目标,是为了验证从应用B中得到的相关信息是否为篡改或者修改。
步骤512,应用A基于上述相关信息与应用B进行通信。
为便于理解上述流程,图6示出了为与图5所示的流程相对应的过程示意图。
本申请实施例提供的应用间通信的方法,将第二应用上用于通信的相关信息以及相关信息的验证信息携带在第二应用的资源文件的图片中,这样,安装在同一终端设备上的第一应用在与第二应用进行通信时,第一应用从第二应用的资源文件中读取目标图片,然后从目标图片中提取相关信息和验证信息;并基于上述验证信息对该相关信息的安全性进行验证;若是验证通过,则第一应用基于上述相关信息与第二应用进行通信。在本申请实施例中,将相关信息以及相关信息的验证信息携带在资源文件的图片中,使得相关信息及验证信息的隐蔽性高,不容易被攻击者发现,可靠性较高,从而使得非法应用不容易伪造该信息,提高了应用间通信安全性。
对应上述应用间通信的方法,本申请实施例还提供了一种应用间通信的装置,图7为本申请一实施例提供的应用间通信的装置的模块组成示意图,该装置应用于安卓系统的终端设备,该终端设备上安装有第一应用和第二应用,如图7所示,该装置包括:
读取模块71,用于当上述第一应用处于运行状态时,从上述第二应用的资源文件中读取目标图片;其中,上述目标图片中嵌入有上述第二应用用于通信的相关信息,以及上述相关信息的验证信息;
提取模块72,用于从上述目标图片中提取上述相关信息和上述验证信息;
验证模块73,用于基于上述验证信息对上述相关信息的安全性进行验证;
通信模块74,用于若验证通过,则基于上述相关信息与上述第二应用进行通信。
可选的,上述验证信息为使用数字证书的私钥对上述相关信息的摘要信息进行签名所生成;
相应的,上述验证模块73,具体用于:
使用数字证书的公钥对上述验证信息进行解签,得到上述验证信息对应的第一摘要信息;其中,第一应用中携带有上述公钥;基于上述第一摘要信息对上述相关信息进行验证。
可选地,上述相关信息包括以下信息中的一种或者多种:
包名信息、服务接口信息、通信协议信息、应用版本信息以及各个服务的访问限制信息。
可选地,上述相关信息及验证信息嵌入在目标图片的数据中的附加数据中;
其中,上述附加数据为目标图片的数据中非用于显示的数据。
可选地,在上述第二应用发布前,第二应用的资源文件的目标图片中被嵌入上述相关信息,以及上述验证信息;其中,上述验证信息为使用数字证书的私钥对上述相关信息的摘要信息进行签名所生成的;
在上述第一应用发布前,上述第一应用中被嵌入上述数字证书的公钥。
可选地,上述第一应用中被嵌入上述数字证书的公钥与上述第二应用的标识的对应关系。
本申请实施例提供的应用间通信的装置,将第二应用上用于通信的相关信息以及相关信息的验证信息携带在第二应用的资源文件的图片中,这样,安装在同一终端设备上的第一应用在与第二应用进行通信时,第一应用从第二应用的资源文件中读取目标图片,然后从目标图片中提取相关信息和验证信息;并基于上述验证信息对该相关信息的安全性进行验证;若是验证通过,则第一应用基于上述相关信息与第二应用进行通信。在本申请实施例中,将相关信息以及相关信息的验证信息携带在资源文件的图片中,使得相关信息及验证信息的隐蔽性高,不容易被攻击者发现,可靠性较高,从而使得非法应用不容易伪造该信息,提高了应用间通信安全性。
进一步地,基于上述的方法,本申请实施例还提供了一种应用间通信的设备,该设备应用于安卓系统的终端设备,该终端设备上安装有第一应用和第二应用。图8为本申请实施例提供的应用间通信的设备的结构示意图。
如图8所示,应用间通信的设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器801和存储器802,存储器802中可以存储有一个或一个以上存储应用程序或数据。其中,存储器802可以是短暂存储或持久存储。存储在存储器802的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对应用间通信的设备中的一系列计算机可执行指令。更进一步地,处理器801可以设置为与存储器802通信,在应用间通信的设备上执行存储器802中的一系列计算机可执行指令。应用间通信的设备还可以包括一个或一个以上电源803,一个或一个以上有线或无线网络接口804,一个或一个以上输入输出接口805,一个或一个以上键盘806等。
在一个具体的实施例中,应用间通信的设备包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述应用间的通信方法实施例的各个过程,具体包括以下步骤:
当上述第一应用处于运行状态时,上述第一应用从上述第二应用的资源文件中读取目标图片;其中,上述目标图片中嵌入有上述第二应用用于通信的相关信息,以及上述相关信息的验证信息;
上述第一应用从上述目标图片中提取上述相关信息和上述验证信息;
上述第一应用基于上述验证信息对上述相关信息进行验证;
若验证通过,则上述第一应用基于上述相关信息与上述第二应用进行通信。
可选地,计算机可执行指令在被执行时,上述验证信息为使用数字证书的私钥对上述相关信息的摘要信息进行签名所生成;
上述第一应用基于上述验证信息对上述相关信息进行验证,包括:
上述第一应用使用上述数字证书的公钥对上述验证信息进行解签,得到上述验证信息对应的第一摘要信息;其中,上述第一应用中携带有上述公钥;
上述第一应用基于上述第一摘要信息对上述相关信息进行验证。
可选地,计算机可执行指令在被执行时,上述相关信息包括以下信息中的一种或者多种:
包名信息、服务接口信息、通信协议信息、应用版本信息以及各个服务的访问限制信息。
可选地,计算机可执行指令在被执行时,上述相关信息及上述验证信息嵌入在上述目标图片的数据中的附加数据中;
其中,上述附加数据为上述目标图片的数据中非用于显示的数据。
可选地,计算机可执行指令在被执行时,在上述第二应用发布前,上述第二应用的资源文件的目标图片中被嵌入上述相关信息,以及上述验证信息;其中,上述验证信息为使用数字证书的私钥对上述相关信息的摘要信息进行签名所生成的;
在上述第一应用发布前,上述第一应用中被嵌入上述数字证书的公钥。
可选地,计算机可执行指令在被执行时,上述第一应用中被嵌入上述数字证书的公钥与上述第二应用的标识的对应关系。
本申请实施例提供的应用间通信的设备,将第二应用上用于通信的相关信息以及相关信息的验证信息携带在第二应用的资源文件的图片中,这样,安装在同一终端设备上的第一应用在与第二应用进行通信时,第一应用从第二应用的资源文件中读取目标图片,然后从目标图片中提取相关信息和验证信息;并基于上述验证信息对该相关信息的安全性进行验证;若是验证通过,则第一应用基于上述相关信息与第二应用进行通信。在本申请实施例中,将相关信息以及相关信息的验证信息携带在资源文件的图片中,使得相关信息及验证信息的隐蔽性高,不容易被攻击者发现,可靠性较高,从而使得非法应用不容易伪造该信息,提高了应用间通信安全性。
进一步地,基于上述的应用间通信的方法,本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
当上述第一应用处于运行状态时,上述第一应用从上述第二应用的资源文件中读取目标图片;其中,上述目标图片中嵌入有上述第二应用用于通信的相关信息,以及上述相关信息的验证信息;
上述第一应用从上述目标图片中提取上述相关信息和上述验证信息;
上述第一应用基于上述验证信息对上述相关信息进行验证;
若验证通过,则上述第一应用基于上述相关信息与上述第二应用进行通信。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,上述验证信息为使用数字证书的私钥对上述相关信息的摘要信息进行签名所生成;
上述第一应用基于上述验证信息对上述相关信息进行验证,包括:
上述第一应用使用上述数字证书的公钥对上述验证信息进行解签,得到上述验证信息对应的第一摘要信息;其中,上述第一应用中携带有上述公钥;
上述第一应用基于上述第一摘要信息对上述相关信息进行验证。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,上述相关信息包括以下信息中的一种或者多种:
包名信息、服务接口信息、通信协议信息、应用版本信息以及各个服务的访问限制信息。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,上述相关信息及上述验证信息嵌入在上述目标图片的数据中的附加数据中;
其中,上述附加数据为上述目标图片的数据中非用于显示的数据。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,在上述第二应用发布前,上述第二应用的资源文件的目标图片中被嵌入上述相关信息,以及上述验证信息;其中,上述验证信息为使用数字证书的私钥对上述相关信息的摘要信息进行签名所生成的;
在上述第一应用发布前,上述第一应用中被嵌入上述数字证书的公钥。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,上述第一应用中被嵌入上述数字证书的公钥与上述第二应用的标识的对应关系。
本申请实施例提供的存储介质存储的计算机可执行指令在被处理器执行时,将第二应用上用于通信的相关信息以及相关信息的验证信息携带在第二应用的资源文件的图片中,这样,安装在同一终端设备上的第一应用在与第二应用进行通信时,第一应用从第二应用的资源文件中读取目标图片,然后从目标图片中提取相关信息和验证信息;并基于上述验证信息对该相关信息的安全性进行验证;若是验证通过,则第一应用基于上述相关信息与第二应用进行通信。在本申请实施例中,将相关信息以及相关信息的验证信息携带在资源文件的图片中,使得相关信息及验证信息的隐蔽性高,不容易被攻击者发现,可靠性较高,从而使得非法应用不容易伪造该信息,提高了应用间通信安全性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种应用间通信的方法,其特征在于,应用于安卓系统的终端设备,所述终端设备上安装有第一应用和第二应用,所述方法包括:
当所述第一应用处于运行状态时,所述第一应用从所述第二应用的资源文件中读取目标图片;其中,所述目标图片中嵌入有所述第二应用用于通信的相关信息,以及所述相关信息的验证信息;所述验证信息为使用数字证书的私钥对所述相关信息的摘要信息进行签名所生成;
所述第一应用从所述目标图片中提取所述相关信息和所述验证信息;
所述第一应用使用所述数字证书的公钥对所述验证信息进行解签,得到所述验证信息对应的第一摘要信息;其中,所述第一应用中携带有所述公钥;
所述第一应用基于所述第一摘要信息对所述相关信息进行验证;
若验证通过,则所述第一应用基于所述相关信息与所述第二应用进行通信。
2.如权利要求1所述的方法,其特征在于,所述相关信息包括以下信息中的一种或者多种:
包名信息、服务接口信息、通信协议信息、应用版本信息以及各个服务的访问限制信息。
3.如权利要求1所述的方法,其特征在于,所述相关信息及所述验证信息嵌入在所述目标图片的数据中的附加数据中;
其中,所述附加数据为所述目标图片的数据中非用于显示的数据。
4.如权利要求1所述的方法,其特征在于,
在所述第二应用发布前,所述第二应用的资源文件的目标图片中被嵌入所述相关信息,以及所述验证信息;其中,所述验证信息为使用数字证书的私钥对所述相关信息的摘要信息进行签名所生成的;
在所述第一应用发布前,所述第一应用中被嵌入所述数字证书的公钥。
5.如权利要求1所述的方法,其特征在于,所述第一应用中被嵌入所述数字证书的公钥与所述第二应用的标识的对应关系。
6.一种应用间通信的装置,其特征在于,应用于安卓系统的终端设备,所述终端设备上安装有第一应用和第二应用,所述装置包括:
读取模块,用于当所述第一应用处于运行状态时,从所述第二应用的资源文件中读取目标图片;其中,所述目标图片中嵌入有所述第二应用用于通信的相关信息,以及所述相关信息的验证信息;所述验证信息为使用数字证书的私钥对所述相关信息的摘要信息进行签名所生成;
提取模块,用于从所述目标图片中提取所述相关信息和所述验证信息;
验证模块,具体用于:使用所述数字证书的公钥对所述验证信息进行解签,得到所述验证信息对应的第一摘要信息;其中,所述第一应用中携带有所述公钥;基于所述第一摘要信息对所述相关信息进行验证;
通信模块,用于若验证通过,则基于所述相关信息与所述第二应用进行通信。
7.如权利要求6所述的装置,其特征在于,所述相关信息包括以下信息中的一种或者多种:
包名信息、服务接口信息、通信协议信息、应用版本信息以及各个服务的访问限制信息。
8.如权利要求6所述的装置,其特征在于,所述相关信息及所述验证信息嵌入在所述目标图片的数据中的附加数据中;
其中,所述附加数据为所述目标图片的数据中非用于显示的数据。
9.如权利要求6所述的装置,其特征在于,
在所述第二应用在发布前,所述第二应用的资源文件的目标图片中被嵌入所述相关信息,以及所述验证信息;其中,所述验证信息为使用数字证书的私钥对所述相关信息的摘要信息进行签名所生成的;
在所述第一应用发布前,所述第一应用中被嵌入所述数字证书的公钥。
10.如权利要求9所述的装置,其特征在于,
所述第一应用中被嵌入所述数字证书的公钥与所述第二应用的标识的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810427627.3A CN108875385B (zh) | 2018-05-07 | 2018-05-07 | 应用间通信的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810427627.3A CN108875385B (zh) | 2018-05-07 | 2018-05-07 | 应用间通信的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108875385A CN108875385A (zh) | 2018-11-23 |
CN108875385B true CN108875385B (zh) | 2021-09-17 |
Family
ID=64327323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810427627.3A Active CN108875385B (zh) | 2018-05-07 | 2018-05-07 | 应用间通信的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108875385B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259387B (zh) * | 2018-12-03 | 2021-06-15 | 上海掌门科技有限公司 | 一种检测被篡改的应用的方法及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2761437A4 (en) * | 2011-09-30 | 2015-11-11 | Nokia Technologies Oy | METHOD AND APPARATUS FOR FACILITATING COMMUNICATIONS BETWEEN WIDGETS |
KR20150049571A (ko) * | 2013-10-30 | 2015-05-08 | 한국전자통신연구원 | 객체검증장치 및 그 무결성인증방법 |
CN106330812B (zh) * | 2015-06-15 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 文件安全性识别方法及装置 |
CN105117920B (zh) * | 2015-08-25 | 2017-03-08 | 福建博思软件股份有限公司 | 一种图片电子凭证的防伪方法及装置 |
CN105591750B (zh) * | 2015-10-30 | 2018-12-25 | 中国银联股份有限公司 | 电子签名生成方法及系统 |
CN105550576B (zh) * | 2015-12-11 | 2018-09-11 | 华为技术服务有限公司 | 容器间通信的方法与装置 |
CN107092816B (zh) * | 2017-02-27 | 2020-07-28 | 广东工业大学 | 一种Android应用程序加固方法 |
-
2018
- 2018-05-07 CN CN201810427627.3A patent/CN108875385B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108875385A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9563764B2 (en) | Method and apparatus for performing authentication between applications | |
CN110798315B (zh) | 基于区块链的数据处理方法、装置及终端 | |
CN108377272B (zh) | 一种管理物联网终端的方法及系统 | |
WO2015169158A1 (zh) | 信息保护的方法和系统 | |
CN106778283A (zh) | 一种系统分区关键数据的保护方法及系统 | |
CN112801663B (zh) | 区块链存证方法、装置、系统、设备和介质 | |
US20230034169A1 (en) | Non-fungible token authentication | |
CN104156638A (zh) | 一种面向安卓系统软件的扩展签名的实现方法 | |
CN104123488A (zh) | 应用程序的验证方法和装置 | |
EP2547135A2 (en) | Apparatus and method for preventing copying of terminal unique information in portable terminal | |
CN103699823A (zh) | 基于用户行为模式的身份认证系统及其方法 | |
CN112199644A (zh) | 移动终端应用程序安全检测方法、系统、终端及存储介质 | |
CN105187357A (zh) | 二维码认证方法和系统 | |
CN114238874A (zh) | 数字签章验证方法、装置、计算机设备和存储介质 | |
CN111740824B (zh) | 可信应用管理方法及装置 | |
KR20170089352A (ko) | 가상화 시스템에서 수행하는 무결성 검증 방법 | |
CN111585995B (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN108875385B (zh) | 应用间通信的方法及装置 | |
CN111970122B (zh) | 识别官方app的方法、移动终端及应用服务器 | |
CN111652720B (zh) | 云取证方法、装置、计算机设备及存储介质 | |
CN113434882A (zh) | 应用程序的通讯保护方法、装置、计算机设备及存储介质 | |
CN107730432B (zh) | 图片处理方法及应用服务器 | |
CN113395281B (zh) | 可验证声明的验证方法、装置和电子设备 | |
CN111046440B (zh) | 一种安全区域内容的篡改验证方法及系统 | |
CN106161365B (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 |