CN109409034A - 应用程序的验证方法、平台、终端、***、介质和设备 - Google Patents

应用程序的验证方法、平台、终端、***、介质和设备 Download PDF

Info

Publication number
CN109409034A
CN109409034A CN201811083649.9A CN201811083649A CN109409034A CN 109409034 A CN109409034 A CN 109409034A CN 201811083649 A CN201811083649 A CN 201811083649A CN 109409034 A CN109409034 A CN 109409034A
Authority
CN
China
Prior art keywords
installation kit
identification code
target
file
target application
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
Application number
CN201811083649.9A
Other languages
English (en)
Inventor
徐家客
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Priority to CN201811083649.9A priority Critical patent/CN109409034A/zh
Publication of CN109409034A publication Critical patent/CN109409034A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

本公开涉及一种应用程序的验证方法、平台、终端、***、介质和设备,涉及终端技术领域,该方法应用于开发平台,包括:通过预设的加密算法对初始安装包中的签名证书的识别码进行加密,得到验证文件,初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的,将验证文件存入初始安装包,以获取中间安装包,对中间安装包进行签名打包,得到目标安装包,目标安装包能够使终端根据验证文件来确定目标应用是否被篡改。能够在终端本地实现对应用程序是否被篡改的验证,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。

Description

应用程序的验证方法、平台、终端、***、介质和设备
技术领域
本公开涉及终端技术领域,具体地,涉及一种应用程序的验证方法、平台、终端、***、介质和设备。
背景技术
随着计算机技术和软件开发技术的不断发展,终端所具备的功能越来越多样化,通过在终端上安装不同的应用程序(英文:Application,缩写:APP),可以实现用户的各种需求。由于终端在获取应用程序的过程中,可能存在第三方对应用程序进行重签名的风险,即第三方对应用程序的代码或资源进行篡改,例如:植入扣费代码、盗取用户信息、植入广告信息等,会造成用户的经济、隐私的损失,降低用户的使用体验。为了验证应用程序是否被篡改,终端在每次启动应用程序时,都需要向服务器请求签名证书的ID(英文:Identification),以验证终端上的签名证书的ID与服务器上备份的签名证书的ID是否匹配,因此终端需要和服务器保持连接,才能够向服务器请求签名证书的ID,这种验证方式受限于网络连接,不适用于无网络的环境,特别是无服务器支持的单机应用程序,并且,这种验证方式由于需要和服务器之间进行数据通信,会额外耗费网络资源。
发明内容
本公开的目的是提供一种应用程序的验证方法、平台、终端、***、介质和设备,用以解决在验证应用程序是否被篡改的过程中,受限于网络连接,且耗费网络资源的问题。
为了实现上述目的,根据本公开实施例的第一方面,提供一种应用程序的验证方法,应用于开发平台,所述方法包括:
通过预设的加密算法对所述初始安装包中的签名证书的识别码进行加密,得到验证文件,所述初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的;
将所述验证文件存入所述初始安装包,以获取中间安装包;
对所述中间安装包进行签名打包,得到目标安装包,所述目标安装包能够使终端根据所述验证文件来确定所述目标应用是否被篡改。
可选的,所述验证文件以预设的文件格式命名,并存储在所述初始安装包的根目录中,所述文件格式为图片格式、音频格式、视频格式中的任一种格式。
根据本公开实施例的第二方面,提供一种应用程序的验证方法,应用于终端,所述方法包括:
在目标应用被触发时,获取与所述目标应用对应的目标安装包中的签名证书的识别码和验证文件;其中,所述验证文件是开发平台通过预设的加密算法对所述目标应用的初始安装包中的签名证书的识别码进行加密后得到的,所述初始安装包是通过将所述目标应用对应的源代码和资源文件进行签名打包得到的;
通过预设的解密算法对所述验证文件进行解密,得到解密后的识别码;
根据从所述目标安装包中获取到的识别码与所述解密后的识别码验证所述目标应用是否被篡改。
可选的,所述根据从所述目标安装包中获取到的识别码与所述解密后的识别码验证所述目标应用是否被篡改,包括:
判断从所述目标安装包中获取到的识别码与所述解密后的识别码是否相同;
当所述获取到的识别码与所述解密后的识别码相同时,确定所述目标应用没有被篡改;或者,
当所述获取到的识别码与所述解密后的识别码不相同时,确定所述目标应用已被篡改。
可选的,所述在目标应用被触发时,获取与所述目标应用对应的目标安装包中的签名证书的识别码和验证文件,包括:
获取所述目标安装包的根目录中以预设文件格式命名的验证文件,所述预设文件格式为图片格式、音频格式、视频格式中的任一种格式。
可选的,所述方法还包括:
当确定所述目标应用已被篡改时,发送告警信息,和/或退出所述目标应用,所述告警信息用于提示用户,和/或所述开发平台所述目标应用已被篡改。
根据本公开实施例的第三方面,提供一种开发平台,所述开发平台包括:
加密模块,用于通过预设的加密算法对所述初始安装包中的签名证书的识别码进行加密,得到验证文件,所述初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的;
存储模块,用于将所述验证文件存入所述初始安装包,以获取中间安装包;
打包模块,用于对所述中间安装包进行签名打包,得到目标安装包,所述目标安装包能够使终端根据所述验证文件来确定所述目标应用是否被篡改。
可选的,所述验证文件以预设的文件格式命名,并存储在所述初始安装包的根目录中,所述文件格式为图片格式、音频格式、视频格式中的任一种格式。
根据本公开实施例的第四方面,提供一种终端,所述终端包括:
获取模块,用于在目标应用被触发时,获取与所述目标应用对应的目标安装包中的签名证书的识别码和验证文件;其中,所述验证文件是开发平台通过预设的加密算法对所述目标应用的初始安装包中的签名证书的识别码进行加密后得到的,所述初始安装包是通过将所述目标应用对应的源代码和资源文件进行签名打包得到的;
解密模块,用于通过预设的解密算法对所述验证文件进行解密,得到解密后的识别码;
验证模块,用于根据从所述目标安装包中获取到的识别码与所述解密后的识别码验证所述目标应用是否被篡改。
可选的,所述验证模块包括:
判断子模块,用于判断从所述目标安装包中获取到的识别码与所述解密后的识别码是否相同;
确定子模块,用于当所述获取到的识别码与所述解密后的识别码相同时,确定所述目标应用没有被篡改;或者,
所述确定子模块,还用于当所述获取到的识别码与所述解密后的识别码不相同时,确定所述目标应用已被篡改。
可选的,所述获取模块用于:
获取所述目标安装包的根目录中以预设文件格式命名的验证文件,所述预设文件格式为图片格式、音频格式、视频格式中的任一种格式。
可选的,所述终端还包括:
告警模块,用于当确定所述目标应用已被篡改时,发送告警信息,和/或退出所述目标应用,所述告警信息用于提示用户,和/或所述开发平台所述目标应用已被篡改。
根据本公开实施例的第五方面,提供一种应用程序的验证***,包括第三方面提供的任一种开发平台和第四方面提供的任一种终端,所述开发平台与所述终端交互。
根据本公开实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面提供的应用程序的验证方法的步骤。
根据本公开实施例的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第二方面提供的应用程序的验证方法的步骤。
根据本公开实施例的第八方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面提供的应用程序的验证方法的步骤。
根据本公开实施例的第九方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第二方面提供的应用程序的验证方法的步骤。
通过上述技术方案,本公开在开发平台侧,首先将目标应用对应的源代码和资源文件进行签名打包,以得到初始安装包,再读取初始安装包中的签名证书的识别码,对识别码按照预设的加密算法进行加密,以得到验证文件,再将验证文件存入初始安装包,以获取中间安装包,最后将中间安装包再进行签名打包,得到目标安装包。在终端侧,终端获取到目标安装包后,进行安装得到对应的目标应用,在目标应用被触发时,首先获取目标安装包中的签名证书的识别码和验证文件,再对验证文件按照预设的解密算法进行解密,得到解密后的识别码,从而根据从目标安装包中获取到的识别码和解密后的识别码来验证目标应用是否被篡改。上述技术方案中终端通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种应用程序的验证方法的流程图;
图2是根据一示例性实施例示出的一种应用程序的验证方法的流程图;
图3是根据一示例性实施例示出的另一种应用程序的验证方法的流程图;
图4是根据一示例性实施例示出的另一种应用程序的验证方法的流程图;
图5是根据一示例性实施例示出的一种开发平台的框图;
图6是根据一示例性实施例示出的一种终端的框图;
图7是根据一示例性实施例示出的另一种终端的框图;
图8是根据一示例性实施例示出的另一种终端的框图;
图9是根据一示例性实施例示出的一种电子设备的框图;
图10是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本公开提供的应用程序的验证方法、平台、终端、***、介质和设备之前,首先对本公开中各个实施例所涉及的应用场景进行介绍,该应用场景中包括开发平台和终端,其中,开发平台可以是基于不同操作***的开发平台,例如可以是Xcode平台(基于iOS***或Mac OS***)、安卓(英文:Android)平台(基于安卓***)、还可以是Windows Phone***、Windows***、Linux***等开发平台,开发平台将应用程序进行签名打包后,通过预设的渠道(例如:App Store、Google Play等平台)来发布应用程序对应的安装包,终端可以通过这些渠道的服务器来获取开发平台发布的安装包。其中,终端例如可以是智能手机、平板电脑、智能电视、智能手表、PDA(英文:Personal Digital Assistant,中文:个人数字助理)、便携计算机,也可以是台式计算机等固定终端。
开发平台将应用程序进行签名打包获得安装包,安装包中会包括原始数据(即源代码和资源文件)和数字签名,其中,数字签名是在开发平台上通过非对称加密技术对原始数据进行加密得到的。终端侧在接收到安装包后,对数字签名进行解密,以确认安装包中的原始数据是否被篡改。数字签名只能保证终端在安装应用程序的安装包时,安装包没有被篡改,原始文件是可信的。而在终端上每次触发应用程序时,要验证应用程序是否被篡改,都需要向服务器请求签名证书的识别码,以验证终端上的签名证书的识别码与服务器上备份的正确的签名证书的识别码是否匹配。
图1是根据一示例性实施例示出的一种应用程序的验证方法的流程图,如图1所示,该方法应用于开发平台,包括:
步骤101,通过预设的加密算法对初始安装包中的签名证书的识别码进行加密,得到验证文件,其中,初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的。
举例来说,开发人员在开发目标应用时,完成能够支持目标应用要实现功能的源代码和资源文件后,在开发平台上对源代码和资源文件进行签名打包,此时获得的安装包为初始安装包。需要说明的是,在开发平台上进行签名打包时,需要使用签名证书来生成数字签名,其中签名证书能够标识应用程序的来源以及应用程序开发者的真实身份,具有唯一的识别码。在获得初始安装包后,初始安装包中包含了签名证书,通过预设的加密算法对签名证书的识别码进行加密,得到加密后的识别码,例如可以是一个字符串。其中,签名证书的识别码可以是签名证书的ID,能够唯一标识签名证书。需要说明的是,本公开中对得到验证文件的方式不做限定,例如可以理解为,按照预设的规则(可以包括:命名规则、文件属性等)创建一个验证文件,将加密后的识别码写入该验证文件中,还可以理解为将加密后的识别码直接作为验证文件。其中,预设的加密算法可以是和终端侧约定的任一种加密算法,例如可以是:DES(英文:Data Encryption Standard,中文:数据加密标准)算法、AES(英文:Advanced Encryption Standard,中文:高级加密标准)算法、IDEA(英文:InternationalData Encryption Algorithm,中文:国际数据加密算法)等,本公开对加密算法的类型不做限定。
步骤102,将验证文件存入初始安装包,以获取中间安装包。
步骤103,对中间安装包进行签名打包,得到目标安装包,目标安装包能够使终端根据验证文件来确定目标应用是否被篡改。
举例来说,将验证文件存入初始安装包,以存入了验证文件的初始安装包作为中间安装包。对中间安装包再进行一次签名打包,得到目标安装包,其中,对应的签名证书是不变的。以便终端在获得目标安装包后,对目标安装包进行安装,得到目标应用。在终端上触发目标应用时,验证目标安装包中的签名证书的识别码,和验证文件中包含的识别码是否相同,来确定目标应用是否被篡改,当验证结果为相同时,确定目标应用没有被篡改,当验证结果为不相同时,确定目标应用已被篡改。
综上所述,本公开在开发平台侧,首先将目标应用对应的源代码和资源文件进行签名打包,以得到初始安装包,再读取初始安装包中的签名证书的识别码,对识别码按照预设的加密算法进行加密,以得到验证文件,再将验证文件存入初始安装包,以获取中间安装包,最后将中间安装包再进行签名打包,得到目标安装包。使得终端获取到目标安装包后,通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
可选的,验证文件可以按照预设的文件格式命名,并存储在初始安装包的根目录中,其中,文件格式可以包括:图片格式、音频格式、视频格式中的任一种格式。使得终端在目标应用被触发时,可以在根目录下查找以预设的文件格式命名的验证文件。
举例来说,验证文件可以按照与终端侧约定好的规则(可以包括:命名规则、文件属性等)来创建,例如可以规定验证文件的文件名,在创建验证文件时,以图片格式、音频格式、视频格式中的任一种格式来命名。还可以规定验证文件的文件属性(文件大小、版本号、作者名、标记等参数),例如可以将验证文件命名为icon.png,以避开恶意第三方的注意,从而起到保护验证文件的作用。在验证文件命名好之后,可以将验证文件存储在初始安装包的根目录中。使得终端在目标应用被触发时,在根目录下寻找以约定的文件格式命名的验证文件。
综上所述,本公开在开发平台侧,首先将目标应用对应的源代码和资源文件进行签名打包,以得到初始安装包,再读取初始安装包中的签名证书的识别码,对识别码按照预设的加密算法进行加密,以得到验证文件,再将验证文件存入初始安装包,以获取中间安装包,最后将中间安装包再进行签名打包,得到目标安装包。使得终端获取到目标安装包后,通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
图2是根据一示例性实施例示出的一种应用程序的验证方法的流程图,如图2所示,该方法应用于终端,包括:
步骤201,在目标应用被触发时,获取与目标应用对应的目标安装包中的签名证书的识别码和验证文件,其中,验证文件是开发平台通过预设的加密算法对目标应用的初始安装包中的签名证书的识别码进行加密后得到的,初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的。
举例来说,终端在获得目标安装包后,对目标安装包进行安装,在安装过程中,终端首先验证目标安装包中的数字签名,如果数字签名通过验证,那么可以正常安装目标安装包,如果数字签名没有通过验证,那么丢弃目标安装包。在目标安装包被正常安装后,得到目标应用。目标应用被触发时,先获取目标安装包中签名证书的识别码和验证文件。其中,验证文件是开发平台通过预设的加密算法对目标应用对应的初始安装包中的签名证书的识别码进行加密后得到的,其中,初始安装包是开发平台通过将目标应用对应的源代码和资源文件进行签名打包得到的。
步骤202,通过预设的解密算法对验证文件进行解密,得到解密后的识别码。
示例的,按照预设的解密算法对验证文件中的内容进行解密,其中,预设的解密算法是与开发平台侧对签名证书的识别码进行加密时使用的加密算法对应的解密算法。验证文件解密成功后,从验证文件中读取解密后的识别码。
步骤203,根据从目标安装包中获取到的识别码与解密后的识别码验证目标应用是否被篡改。
举例来说,如果目标应用没有被篡改过,那么从目标安装包中获取到的识别码应该与解密后的识别码(即目标应用原有的签名证书对应的识别码)应该相同。如果第三方篡改了目标应用中的资源(例如:植入用于扣费的代码、植入广告信息、篡改资源文件等),再将篡改后的资源签名打包进行发布,使用的签名证书与目标应用原有的签名证书肯定不同,而第三方不知道验证文件的存在,并且难以找到验证文件并对验证文件进行解密,所以篡改后的签名证书对应的识别码与验证文件中包含的识别码不相同,终端可以确定目标应用已被篡改。由于验证文件是存储在终端本地的,因此不需与服务器联网,不需要从服务器获取备份的签名证书的识别码,实现了在终端本地验证目标应用是否被篡改的目的,进一步的,由于终端不需要再向服务器请求签名证书的ID,还能够降低网络资源的消耗。
综上所述,本公开在终端获取到目标安装包后,进行安装得到对应的目标应用,在目标应用被触发时,首先获取目标安装包中的签名证书的识别码和验证文件,再对验证文件按照预设的解密算法进行解密,得到解密后的识别码,从而根据从目标安装包中获取到的识别码和解密后的识别码来验证目标应用是否被篡改。使得终端通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
图3是根据一示例性实施例示出的另一种应用程序的验证方法的流程图,如图3所示,步骤203可以包括以下步骤:
步骤2031,判断从目标安装包中获取到的识别码与解密后的识别码是否相同。
步骤2032,当获取到的识别码与解密后的识别码相同时,确定目标应用没有被篡改。或者,
步骤2033,当获取到的识别码与解密后的识别码不相同时,确定目标应用已被篡改。
举例来说,可以通过验证从目标安装包中获取到的识别码与解密后的识别码是否相同,来判断目标应用是否被篡改,例如,当获取到的识别码与解密后的识别码相同时,确定目标应用没有被篡改,当获取到的识别码与解密后的识别码不相同时,确定目标应用已被篡改。
可选的,步骤201可以通过以下方式来实现:
获取目标安装包的根目录中以预设文件格式命名的验证文件,预设文件格式为图片格式、音频格式、视频格式中的任一种格式。
示例的,开发平台按照与终端侧约定好的规则(可以包括:命名规则、文件属性等)来创建验证文件,并存储在根目录中。例如可以规定验证文件的文件名,在创建验证文件时,以图片格式、音频格式、视频格式中的任一种格式来命名。还可以规定验证文件的文件属性(文件大小、版本号、作者名、标记等参数),例如可以将验证文件命名为icon.png。对应的,终端在目标应用被触发时,在根目录下寻找以约定的文件格式命名的验证文件。
图4是根据一示例性实施例示出的另一种应用程序的验证方法的流程图,如图4所示,该方法还包括:
步骤204,当确定目标应用已被篡改时,发送告警信息,和/或退出目标应用,告警信息用于提示用户,和/或开发平台目标应用已被篡改。
举例来说,当确定目标应用已被篡改时,可以发送告警信息,在终端的显示界面上以弹窗等形式进行显示,以提示用户目标应用已被篡改,如果继续使用存在风险。可以由用户选择是否退出目标应用,也可以强制退出目标应用,以保证用户财产和信息的安全。同时,告警信息还可以发送至开发平台,例如以邮件或短信的形式将告警信息发送至开发平台,以告知目标应用的开发者,目标应用已被篡改,使开发者能够及时提出相应的措施,以避免用户财产和信息受到威胁。
综上所述,本公开在终端获取到目标安装包后,进行安装得到对应的目标应用,在目标应用被触发时,首先获取目标安装包中的签名证书的识别码和验证文件,再对验证文件按照预设的解密算法进行解密,得到解密后的识别码,从而根据从目标安装包中获取到的识别码和解密后的识别码来验证目标应用是否被篡改。使得终端通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
图5是根据一示例性实施例示出的一种开发平台的框图,如图5所示,该开发平台300包括:
加密模块301,用于通过预设的加密算法对初始安装包中的签名证书的识别码进行加密,得到验证文件,初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的。
存储模块302,用于将验证文件存入初始安装包,以获取中间安装包。
打包模块303,用于对中间安装包进行签名打包,得到目标安装包,目标安装包能够使终端根据验证文件来确定目标应用是否被篡改。
可选的,验证文件以预设的文件格式命名,并存储在初始安装包的根目录中,文件格式为图片格式、音频格式、视频格式中的任一种格式。
关于上述实施例中的开发平台,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开在开发平台侧,首先将目标应用对应的源代码和资源文件进行签名打包,以得到初始安装包,再读取初始安装包中的签名证书的识别码,对识别码按照预设的加密算法进行加密,以得到验证文件,再将验证文件存入初始安装包,以获取中间安装包,最后将中间安装包再进行签名打包,得到目标安装包。使得终端获取到目标安装包后,通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
图6是根据一示例性实施例示出的一种终端的框图,如图6所示,该终端400包括:
获取模块401,用于在目标应用被触发时,获取与目标应用对应的目标安装包中的签名证书的识别码和验证文件;其中验证文件是开发平台通过预设的加密算法对目标应用的初始安装包中的签名证书的识别码进行加密后得到的,初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的。
解密模块402,用于通过预设的解密算法对验证文件进行解密,得到解密后的识别码。
验证模块403,用于根据从目标安装包中获取到的识别码与解密后的识别码验证目标应用是否被篡改。
图7是根据一示例性实施例示出的另一种终端的框图,如图7所示,验证模块403包括:
判断子模块4031,用于判断从目标安装包中获取到的识别码与解密后的识别码是否相同。
确定子模块4032,用于当获取到的识别码与解密后的识别码相同时,确定目标应用没有被篡改。或者,
确定子模块4032,还用于当获取到的识别码与解密后的识别码不相同时,确定目标应用已被篡改。
可选的,获取模块401用于:
获取目标安装包的根目录中以预设文件格式命名的验证文件,预设文件格式为图片格式、音频格式、视频格式中的任一种格式。
图8是根据一示例性实施例示出的另一种终端的框图,如图8所示,该终端400还包括:
告警模块404,用于当确定目标应用已被篡改时,发送告警信息,和/或退出目标应用,告警信息用于提示用户,和/或开发平台目标应用已被篡改。
关于上述实施例中的终端,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开在终端获取到目标安装包后,进行安装得到对应的目标应用,在目标应用被触发时,首先获取目标安装包中的签名证书的识别码和验证文件,再对验证文件按照预设的解密算法进行解密,得到解密后的识别码,从而根据从目标安装包中获取到的识别码和解密后的识别码来验证目标应用是否被篡改。使得终端通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
在另一示例性实施例中,还提供了一种应用程序的验证***,该***中包括开发平台和终端,其中,开发平台可以用于执行上述的图1所示的应用程序的验证方法,终端可以用于执行上述的图2至图4所示的应用程序的验证方法。其中,开发平台与终端能够交互。
图9是根据一示例性实施例示出的一种电子设备500的框图。如图9所示,该电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括多媒体组件503,输入/输出(I/O)接口504,以及通信组件505中的一者或多者。
其中,处理器501用于控制该电子设备500的整体操作,以完成上述的图2至图4所示的应用程序的验证方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该电子设备500与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件505可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的图2至图4所示的应用程序的验证方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的图2至图4所示的应用程序的验证方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的图2至图4所示的应用程序的验证方法。
综上所述,本公开在终端获取到目标安装包后,进行安装得到对应的目标应用,在目标应用被触发时,首先获取目标安装包中的签名证书的识别码和验证文件,再对验证文件按照预设的解密算法进行解密,得到解密后的识别码,从而根据从目标安装包中获取到的识别码和解密后的识别码来验证目标应用是否被篡改。使得终端通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
图10是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以被提供为一服务器。参照图10,电子设备600包括处理器622,其数量可以为一个或多个,以及存储器632,用于存储可由处理器622执行的计算机程序。存储器632中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器622可以被配置为执行该计算机程序,以执行上述的图1所示的应用程序的验证方法。
另外,电子设备600还可以包括电源组件626和通信组件650,该电源组件626可以被配置为执行电子设备600的电源管理,该通信组件650可以被配置为实现电子设备600的通信,例如,有线或无线通信。此外,该电子设备600还可以包括输入/输出(I/O)接口658。电子设备600可以操作基于存储在存储器632的操作***,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的图1所示的应用程序的验证方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器632,上述程序指令可由电子设备600的处理器622执行以完成上述的图1所示的应用程序的验证方法。
综上所述,本公开在开发平台侧,首先将目标应用对应的源代码和资源文件进行签名打包,以得到初始安装包,再读取初始安装包中的签名证书的识别码,对识别码按照预设的加密算法进行加密,以得到验证文件,再将验证文件存入初始安装包,以获取中间安装包,最后将中间安装包再进行签名打包,得到目标安装包。使得终端获取到目标安装包后,通过将从目标安装包中获取的识别码,以及从验证文件中解密得到的识别码进行对比来确定目标应用是否被篡改,从而在终端本地实现对应用程序是否被篡改的验证,因此能够使得终端在进行应用程序的重签名验证时,不需要保持与服务器的网络连接,同时由于不需要再向服务器请求签名证书的ID,还能够节省网络资源。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种应用程序的验证方法,其特征在于,应用于开发平台,所述方法包括:
通过预设的加密算法对初始安装包中的签名证书的识别码进行加密,得到验证文件,所述初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的;
将所述验证文件存入所述初始安装包,以获取中间安装包;
对所述中间安装包进行签名打包,得到目标安装包,所述目标安装包能够使终端根据所述验证文件来确定所述目标应用是否被篡改。
2.一种应用程序的验证方法,其特征在于,应用于终端,所述方法包括:
在目标应用被触发时,获取与所述目标应用对应的目标安装包中的签名证书的识别码和验证文件;其中,所述验证文件是开发平台通过预设的加密算法对所述目标应用的初始安装包中的签名证书的识别码进行加密后得到的,所述初始安装包是通过将所述目标应用对应的源代码和资源文件进行签名打包得到的;
通过预设的解密算法对所述验证文件进行解密,得到解密后的识别码;
根据从所述目标安装包中获取到的识别码与所述解密后的识别码验证所述目标应用是否被篡改。
3.根据权利要求2所述的方法,其特征在于,所述根据从所述目标安装包中获取到的识别码与所述解密后的识别码验证所述目标应用是否被篡改,包括:
判断从所述目标安装包中获取到的识别码与所述解密后的识别码是否相同;
当所述获取到的识别码与所述解密后的识别码相同时,确定所述目标应用没有被篡改;或者,
当所述获取到的识别码与所述解密后的识别码不相同时,确定所述目标应用已被篡改。
4.一种开发平台,其特征在于,所述开发平台包括:
加密模块,用于通过预设的加密算法对初始安装包中的签名证书的识别码进行加密,得到验证文件,所述初始安装包是通过将目标应用对应的源代码和资源文件进行签名打包得到的;
存储模块,用于将所述验证文件存入所述初始安装包,以获取中间安装包;
打包模块,用于对所述中间安装包进行签名打包,得到目标安装包,所述目标安装包能够使终端根据所述验证文件来确定所述目标应用是否被篡改。
5.一种终端,其特征在于,所述终端包括:
获取模块,用于在目标应用被触发时,获取与所述目标应用对应的目标安装包中的签名证书的识别码和验证文件;其中,所述验证文件是开发平台通过预设的加密算法对所述目标应用的初始安装包中的签名证书的识别码进行加密后得到的,所述初始安装包是通过将所述目标应用对应的源代码和资源文件进行签名打包得到的;
解密模块,用于通过预设的解密算法对所述验证文件进行解密,得到解密后的识别码;
验证模块,用于根据从所述目标安装包中获取到的识别码与所述解密后的识别码验证所述目标应用是否被篡改。
6.一种应用程序的验证***,其特征在于,包括:如权利要求4所述的开发平台和如权利要求5任一所述的终端,所述开发平台与所述终端交互。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求2或3所述方法的步骤。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求2或3所述方法的步骤。
CN201811083649.9A 2018-09-17 2018-09-17 应用程序的验证方法、平台、终端、***、介质和设备 Pending CN109409034A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811083649.9A CN109409034A (zh) 2018-09-17 2018-09-17 应用程序的验证方法、平台、终端、***、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811083649.9A CN109409034A (zh) 2018-09-17 2018-09-17 应用程序的验证方法、平台、终端、***、介质和设备

Publications (1)

Publication Number Publication Date
CN109409034A true CN109409034A (zh) 2019-03-01

Family

ID=65465001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811083649.9A Pending CN109409034A (zh) 2018-09-17 2018-09-17 应用程序的验证方法、平台、终端、***、介质和设备

Country Status (1)

Country Link
CN (1) CN109409034A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992955A (zh) * 2019-04-11 2019-07-09 深圳前海微众银行股份有限公司 非法安装包的检测拦截方法、装置、***、设备及介质
CN110139230A (zh) * 2019-05-28 2019-08-16 北京小米移动软件有限公司 转发短信的方法、装置及智能设备
CN110597534A (zh) * 2019-08-26 2019-12-20 珠海格力电器股份有限公司 智能设备及应用程序更新方法、更新辅助方法和装置
CN110609789A (zh) * 2019-08-29 2019-12-24 烽火通信科技股份有限公司 一种用于软件License校验的方法和***
CN110990073A (zh) * 2019-11-13 2020-04-10 北京城市网邻信息技术有限公司 一种验证应用程序的定制需求的方法及装置
CN111274459A (zh) * 2020-01-19 2020-06-12 福建天晴在线互动科技有限公司 一种防止ipa安装包重签名的方法及其终端
CN112398654A (zh) * 2019-08-13 2021-02-23 腾讯科技(深圳)有限公司 一种支持抓包的方法、装置、设备及介质
CN114629658A (zh) * 2022-03-30 2022-06-14 杭州海康威视***技术有限公司 一种应用签名方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191940A1 (en) * 2002-04-03 2003-10-09 Saurabh Sinha Integrity ordainment and ascertainment of computer-executable instructions with consideration for execution context
CN104123491A (zh) * 2014-07-18 2014-10-29 广州金山网络科技有限公司 一种检测应用程序安装包是否被篡改的方法及装置
CN104123481A (zh) * 2013-04-24 2014-10-29 贝壳网际(北京)安全技术有限公司 防止应用程序被篡改的方法及装置
CN107403089A (zh) * 2017-07-10 2017-11-28 东软集团股份有限公司 基于应用程序的资源篡改识别方法和装置
CN107463806A (zh) * 2017-06-20 2017-12-12 国家计算机网络与信息安全管理中心 一种Android应用程序安装包的签名和验签方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191940A1 (en) * 2002-04-03 2003-10-09 Saurabh Sinha Integrity ordainment and ascertainment of computer-executable instructions with consideration for execution context
CN104123481A (zh) * 2013-04-24 2014-10-29 贝壳网际(北京)安全技术有限公司 防止应用程序被篡改的方法及装置
CN104123491A (zh) * 2014-07-18 2014-10-29 广州金山网络科技有限公司 一种检测应用程序安装包是否被篡改的方法及装置
CN107463806A (zh) * 2017-06-20 2017-12-12 国家计算机网络与信息安全管理中心 一种Android应用程序安装包的签名和验签方法
CN107403089A (zh) * 2017-07-10 2017-11-28 东软集团股份有限公司 基于应用程序的资源篡改识别方法和装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992955A (zh) * 2019-04-11 2019-07-09 深圳前海微众银行股份有限公司 非法安装包的检测拦截方法、装置、***、设备及介质
CN110139230A (zh) * 2019-05-28 2019-08-16 北京小米移动软件有限公司 转发短信的方法、装置及智能设备
CN110139230B (zh) * 2019-05-28 2021-11-09 北京小米移动软件有限公司 转发短信的方法、装置及智能设备
CN112398654A (zh) * 2019-08-13 2021-02-23 腾讯科技(深圳)有限公司 一种支持抓包的方法、装置、设备及介质
CN112398654B (zh) * 2019-08-13 2022-05-20 腾讯科技(深圳)有限公司 一种支持抓包的方法、装置、设备及介质
CN110597534A (zh) * 2019-08-26 2019-12-20 珠海格力电器股份有限公司 智能设备及应用程序更新方法、更新辅助方法和装置
CN110609789A (zh) * 2019-08-29 2019-12-24 烽火通信科技股份有限公司 一种用于软件License校验的方法和***
CN110990073A (zh) * 2019-11-13 2020-04-10 北京城市网邻信息技术有限公司 一种验证应用程序的定制需求的方法及装置
CN110990073B (zh) * 2019-11-13 2023-09-29 北京城市网邻信息技术有限公司 一种验证应用程序的定制需求的方法及装置
CN111274459A (zh) * 2020-01-19 2020-06-12 福建天晴在线互动科技有限公司 一种防止ipa安装包重签名的方法及其终端
CN111274459B (zh) * 2020-01-19 2022-08-09 福建天晴在线互动科技有限公司 一种防止ipa安装包重签名的方法及其终端
CN114629658A (zh) * 2022-03-30 2022-06-14 杭州海康威视***技术有限公司 一种应用签名方法、装置、设备及存储介质
CN114629658B (zh) * 2022-03-30 2024-06-07 杭州海康威视***技术有限公司 一种应用签名方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN109409034A (zh) 应用程序的验证方法、平台、终端、***、介质和设备
US10735427B2 (en) Method and apparatus for managing program of electronic device
KR102546601B1 (ko) 정적 바이너리 계측을 사용하여 커널 제어-흐름 무결성을 보호하기 위한 방법 및 장치
CN103886246B (zh) 支持认证装置安全引导的动态改变的方法和设备
EP2210174B1 (en) Progressive boot for a wireless device
CN107743115B (zh) 一种终端应用的身份认证方法、装置和***
CN108363580A (zh) 应用程序安装方法、装置、计算机设备和存储介质
CN107870793B (zh) 一种应用程序中加载so文件的方法及装置
CN110362990A (zh) 应用安装的安全处理方法、装置及***
CN106161336A (zh) 一种信息更新方法、装置及***
CN106096418B (zh) 基于SELinux的开机安全等级选择方法、装置及终端设备
CN108229144B (zh) 一种应用程序的验证方法、终端设备及存储介质
US20160321450A1 (en) Method and Apparatus for Managing Super User Password on Smart Mobile Terminal
CN108197469B (zh) 校验应用程序的方法、装置和存储介质以及电子设备
CN102024124A (zh) 移动微件处理方法、装置、***及客户端
CN106060050B (zh) 身份验证方法及终端设备
CN113127844A (zh) 一种变量访问方法、装置、***、设备和介质
CN110545542A (zh) 基于非对称加密算法的主控密钥下载方法、装置和计算机设备
CN109582238A (zh) 一种硬盘绑定、匹配方法、***及电子设备和存储介质
CN107748838A (zh) 安装包生成的方法、装置和存储介质以及电子设备
KR20160063793A (ko) 전자 장치 및 전자 장치에서의 정보 송신 및 수신 방법
CN111400771A (zh) 目标分区的校验方法及装置、存储介质、计算机设备
KR102133251B1 (ko) 애플리케이션 프로그램 보호 방법 및 장치
CN110618967B (zh) 应用程序运行方法、安装包生成方法、装置、设备及介质
CN113660100B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190301