CN108173906A - 安装包下载方法、装置、存储介质及电子设备 - Google Patents
安装包下载方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN108173906A CN108173906A CN201711287859.5A CN201711287859A CN108173906A CN 108173906 A CN108173906 A CN 108173906A CN 201711287859 A CN201711287859 A CN 201711287859A CN 108173906 A CN108173906 A CN 108173906A
- Authority
- CN
- China
- Prior art keywords
- installation kit
- source data
- terminal
- catalogue
- target software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开涉及一种安装包下载方法、装置、存储介质及电子设备,该方法包括:通过获取被请求下载的目标软件的第一安装包,该第一安装包中包括第一内容源数据和第一目录源数据,其中第一内容源数据包括顺序打乱的多个压缩数据块,第一目录源数据用于恢复采用预设加密方式加密的多个压缩数据块的初始顺序;再将第一安装包发送给请求下载目标软件的终端。能够在降低加密以及解密时的计算压力的情况下,实现安装包防篡改的效果。
Description
技术领域
本公开涉及电子技术领域,具体地,涉及一种安装包下载方法、装置、存储介质及电子设备。
背景技术
随着科学技术的发展,智能终端十分普及,例如智能手机、平板电脑以及智能穿戴设备等,智能终端上可以运行多个软件(应用程序),用户可以通过应用程序商店根据需求进行下载和安装,而一个软件的代码想要在智能终端上运行,必须先进行编译,然后被打包成为一个被智能终端上的系统所能识别的文件才可以被运行,例如,安卓(Android)系统的软件安装包的文件格式是APK(英文:Application Package File,中文:应用程序包文件)。基于安卓系统的手机作为该智能终端,如果其浏览器被植入了后门,就能够通过该后门对APK文件的一部分进行提取作为指纹,例如根据该APK文件的一部分数据获取MD5(MessageDigest Algorithm,摘要算法第五版)指纹,从而可以识别出该APK的内容,进而将APK内的部分或者全部数据进行替换,例如是增加木马,或者彻底替换该安装包等,当用户下载并安装该做过更改的安装包,可能造成用户无法获取到正确的安全的软件,可能被加入一些恶意程序,比如广告,也可能植入用于获取用户信息的后门,木马等,容易导致信息泄露。因此,现有技术采用对整个APK进行加密的方式,防止APK文件被替换或者植入后门,但是对整个APK加密的方式会导致在解密时使智能终端的计算压力过大,并且对加密的APK文件可以通过安装的方式获取安装包的内容,依然可以提取其中的一部分作为指纹来识别APK,因此APK还是容易被恶意识别,所以不能完全实现防篡改的目的。
发明内容
本公开的目的是提供一种安装包下载方法、装置、存储介质及电子设备,能够克服对整个安装包加密造成的终端计算压力过大,以及难以防止安装包文件被篡改的问题。
为了实现上述目的,本公开提供一种安装包下载方法,所述方法包括:
获取被请求下载的目标软件的第一安装包,所述第一安装包中包括第一内容源数据和第一目录源数据,其中所述第一内容源数据包括顺序打乱的多个压缩数据块,所述第一目录源数据用于恢复采用预设加密方式加密的所述多个压缩数据块的初始顺序;
将所述第一安装包发送给请求下载所述目标软件的终端。
可选的,所述获取被请求下载的目标软件的第一安装包,包括:
获取所述目标软件的原始安装包;
通过将所述原始安装包解压缩,得到所述原始安装包中的第二内容源数据,所述第二内容源数据中包括具有所述初始顺序的多个压缩数据块;
对具有所述初始顺序的多个压缩数据块进行乱序处理,得到包含所述顺序打乱的多个压缩数据块的所述第一内容源数据,以及所述顺序打乱的多个压缩数据块对应的第二目录源数据;
按照所述预设加密方式对所述第二目录源数据进行加密处理,得到所述第一目录源数据,所述预设加密方式与所述终端的解密方式对应;
对所述第一内容源数据、所述第一目录源数据以及目录结束标识重新打包,得到所述第一安装包。
可选的,所述按照所述预设加密方式对所述第二目录源数据进行加密处理,得到所述第一目录源数据,所述预设加密方式与所述终端的解密方式对应,包括:
在预设的密钥库中按照预设规则选出第一密钥,所述第一密钥与所述终端用于解密的第二密钥相同或相应;
利用所述第一密钥对所述第二目录源数据进行加密处理,得到所述第一目录源数据。
可选的,所述方法还包括:
获取所述终端的网络状态信息,所述网络状态信息包括所述终端的下载速度、带宽中的至少一者;
根据所述终端的网络状态信息获取所述终端下载所述第一安装包的预估时间;
当所述终端下载所述第一安装包花费的第一时间与所述预估时间的差值大于预设阈值时,确定所述第一安装包异常;
按照预设的安全策略对所述第一安装包进行安全处理。
可选的,所述按照预设的安全策略对所述第一安装包进行安全处理,包括以下至少一者:
向所述终端发送用于通知所述第一安装包异常的提醒消息;
从所述目标软件的提供商重新获取所述目标软件的原始安装包,并根据所述原始安装包重新生成所述第一安装包;
对所述预设加密方式对应的密钥库进行更新。
本公开实施例的第二方面,提供一种安装包下载装置,所述装置包括:
获取模块,用于获取被请求下载的目标软件的第一安装包,所述第一安装包中包括第一内容源数据和第一目录源数据,其中所述第一内容源数据包括顺序打乱的多个压缩数据块,所述第一目录源数据用于恢复采用预设加密方式加密的所述多个压缩数据块的初始顺序;
发送模块,用于将所述第一安装包发送给请求下载所述目标软件的终端。
可选的,所述获取模块,包括:
获取子模块,用于获取所述目标软件的原始安装包;
解压缩子模块,用于通过将所述原始安装包解压缩,得到所述原始安装包中的第二内容源数据,所述第二内容源数据中包括具有所述初始顺序的多个压缩数据块;
乱序处理子模块,用于对具有所述初始顺序的多个压缩数据块进行乱序处理,得到包含所述顺序打乱的多个压缩数据块的所述第一内容源数据,以及所述顺序打乱的多个压缩数据块对应的第二目录源数据;
加密子模块,用于按照所述预设加密方式对所述第二目录源数据进行加密处理,得到所述第一目录源数据,所述预设加密方式与所述终端的解密方式对应;
打包子模块,用于对所述第一内容源数据、所述第一目录源数据以及目录结束标识重新打包,得到所述第一安装包。
可选的,所述加密子模块,包括:
密钥选择子模块,用于在预设的密钥库中按照预设规则选出第一密钥,所述第一密钥与所述终端用于解密的第二密钥相同或相应;
数据确定子模块,用于利用所述第一密钥对所述第二目录源数据进行加密处理,得到所述第一目录源数据。
可选的,所述装置还包括:
网络状态获取模块,用于获取所述终端的网络状态信息,所述网络状态信息包括所述终端的下载速度、带宽中的至少一者;
时间确定模块,用于根据所述终端的网络状态信息获取所述终端下载所述第一安装包的预估时间;
异常判断模块,用于当所述终端下载所述第一安装包花费的第一时间与所述预估时间的差值大于预设阈值时,确定所述第一安装包异常;
处理模块,用于按照预设的安全策略对所述第一安装包进行安全处理。
可选的,所述处理模块,用于进行以下至少一者的操作:
向所述终端发送用于通知所述第一安装包异常的提醒消息;
从所述目标软件的提供商重新获取所述目标软件的原始安装包,并根据所述原始安装包重新生成所述第一安装包;
对所述预设加密方式对应的密钥库进行更新。
本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述方法的步骤。
本公开实施例的第四方面,提供一种电子设备,包括:
第三方面所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的计算机程序。
本公开实施例提供的安装包下载方法、装置、存储介质及电子设备,首先通过获取被请求下载的目标软件的第一安装包,所述第一安装包中包括第一内容源数据和第一目录源数据,其中所述第一内容源数据包括顺序打乱的多个压缩数据块,所述第一目录源数据用于恢复采用预设加密方式加密的所述多个压缩数据块的初始顺序;再将所述第一安装包发送给请求下载所述目标软件的终端。因此,通过将安装包中的多个压缩数据块顺序打乱,能够防止通过提取安装包的一部分作为指纹来识别安装包内容,并且对目录源数据进行加密使得即使获取内容源数据中所有的压缩数据块也无法获取安装包内容,另外由于目录源数据的数据量小,因此能够简化加密/解密过程,降低服务器加密和终端的解密时的计算压力,从而可以在降低加密以及解密时的计算压力的情况下,实现安装包防篡改的效果。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种安装包下载方法的流程图;
图2是根据一示例性实施例示出的另一种安装包下载方法的流程图;
图3是根据一示例性实施例示出的又一种安装包下载方法的流程图;
图4是根据一示例性实施例示出的一种安装包下载装置的框图;
图5是根据一示例性实施例示出的一种获取模块的框图;
图6是根据一示例性实施例示出的一种加密子模块的框图;
图7是根据一示例性实施例示出的另一种安装包下载装置的框图;
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据一示例性实施例示出的一种安装包下载方法的流程图,如图1所示,包括以下步骤:
步骤101,获取被请求下载的目标软件的第一安装包。
其中,第一安装包中包括第一内容源数据和第一目录源数据,其中第一内容源数据包括顺序打乱的多个压缩数据块,第一目录源数据用于恢复采用预设加密方式加密的多个压缩数据块的初始顺序。
示例地,以安卓系统的软件安装包为例,即APK文件,实际为Zip(压缩)格式,其中可以包括三个部分:内容源数据、目录源数据(Central Directory,故也称为核心目录,)以及目录结束标识(End of Central Directory Record,故也称为EOCD记录)。其中内容源数据部分是由目标软件的多个压缩数据块组成的,每个压缩数据块中包括压缩文件头、文件数据以及数据描述符;而在压缩文件头的位置中标注有当前压缩数据块在目标软件的安装包中的顺序、当前压缩数据块的长度,从而能够根据该压缩文件头对该压缩数据块进行解压缩的还原;目录源数据部分记录了目录数据,该目录源数据用于描述内容源数据中每一个压缩数据块的压缩文件头相对于目标软件中第一个压缩数据块的压缩文件头的位移,从而为压缩数据块提供索引以及排序,以便能够按照其原始顺序还原内容源数据中所有压缩数据块的内容;最后的目录结束标识属于固定格式,目录结束标识存在于压缩文件(本实施例中就是APK文件)的结尾,用于对目录源数据部分提供结尾标识,即用于标记目录源数据的结束,每个压缩文件都会有一个目录结束标识。
其中,现有技术中APK内的内容源数据中多个压缩数据块是按照正常顺序排列的(即多个压缩数据块的数据内容是连续的),并且在加密的过程中是对整个APK文件进行加密。因此,本实施例中采用打乱的压缩数据块排列顺序的方式,从而能够解决现有技术中可能通过安装方式确定安装包的内容,或者针对内容源数据截取一小段作为指纹从而识别出的正确的内容源数据所导致的安全问题,并且为了能够简化终端解密过程,以降低对终端的计算压力,本公开采用部分(目录源数据)加密的方式,由于该目录源数据部分的数据量较小,因此能够降低在终端解密过程中的计算量,并且,由于只对目录源数据部分加密,因此也能够降低服务器在生成安装包时的计算压力。
步骤102,将第一安装包发送给请求下载目标软件的终端。
综上所述,本公开提供的安装包下载方法,通过获取被请求下载的目标软件的第一安装包,其中,第一安装包中包括第一内容源数据和第一目录源数据,第一内容源数据包括顺序打乱的多个压缩数据块,第一目录源数据用于恢复采用预设加密方式加密的多个压缩数据块的初始顺序;之后将第一安装包发送给请求下载目标软件的终端。通过将安装包中的多个压缩数据块顺序打乱,能够防止通过提取安装包的一部分作为指纹来识别安装包内容,并且对目录源数据进行加密使得即使获取内容源数据中所有的压缩数据块也无法获取安装包内容,另外由于目录源数据的数据量小,因此能够简化加密/解密过程,降低服务器加密和终端的解密时的计算压力,从而可以在降低加密以及解密时的计算压力的情况下,实现安装包防篡改的效果。
图2是根据一示例性实施例示出的另一种安装包下载方法的流程图,如图2所示,步骤101所述的获取被请求下载的目标软件的第一安装包,包括以下子步骤:
步骤1011,获取目标软件的原始安装包。
以安卓系统为例,该原始安装包即为原始APK,是指应用程序商店中可供用户下载安装的目标软件的安装包,该安装包是软件提供商提供的符合应用商店要求的正规安装包,针对同一个目标软件,用户下载的应是同一安装包,其具有如步骤101所述的格式,此处不再赘述。
步骤1012,通过将原始安装包解压缩,得到原始安装包中的第二内容源数据,其中,第二内容源数据中包括具有初始顺序的多个压缩数据块。
示例地,将依据原始安装包的Zip结构对其进行解压缩,获取到其中的内容源数据部分,也就是第二内容源数据,原始的第二内容源数据内的多个压缩数据块是按照初始顺序排列的,例如,第二内容源数据共包括5个压缩数据块,对应标号为0,1,2,3,4,其排序也为0,1,2,3,4。
步骤1013,对具有初始顺序的多个压缩数据块进行乱序处理,得到包含顺序打乱的多个压缩数据块的第一内容源数据,以及顺序打乱的多个压缩数据块对应的第二目录源数据。
实际上将原始安装包解压缩除了得到原始安装包中的第二内容源数据外,还有与第二内容源数据对应的目录源数据,以及还有目录结束标识,由于对具有初始顺序的多个压缩数据块进行乱序处理,所以需要对目录源数据也进行更新,因此在获取包含顺序打乱的多个压缩数据块的第一内容源数据的同时,也需要获取与顺序打乱的多个压缩数据块对应的第二目录源数据。
示例地,将上述按照0,1,2,3,4排序的压缩数据块进行打乱,例如采用0,2,1,3,4的顺序进行排列,并对应确定第二目录源数据,以便安装时根据第二目录源数据进行正确顺序0,1,2,3,4的恢复。可以在每次有终端请求下载是都进行这样的乱序处理,并且每次乱序都可随机地采用不同的顺序,从而能够增大安装包文件被恶意识别的难度,更加提高安全性。
步骤1014,按照预设加密方式对第二目录源数据进行加密处理,得到该第一目录源数据,其中,预设加密方式与终端的解密方式对应。
示例地,在本实施例中可以创建一个密钥库,其中可以包含多个密钥,相应的该步骤1014可以包括:首先在预设的密钥库中按照预设规则选出第一密钥,其中,第一密钥与终端用于解密的第二密钥相同或相应。也就是说,在密钥库中选出第一密钥作为此时密钥,该密钥是与终端在解密时所用的密钥对应,例如可以采用对称加密的方式,该加密方式是一种单密钥加密方法,即加密/解密双方采用相同的密钥,因此,此时客户端的密钥与第一密钥是相同的;或者还可以采用非对称加密的方式,该加密方式是一种加密/解密双方采用不同的密钥的加密方式,其中加密一方可以采用自己的私钥进行加密,解密方可以采用与该私钥对应的公钥进行解密,此时客户端的密钥与该第一密钥是相应的。
确定好该第一密钥后,通过该第一密钥对该第二目录源数据进行加密处理,得到该第一目录源数据,并重新打包生成该第一安装包,在终端获取到该第一安装包后通过该第一密钥或与其对应的密钥解密即可得到加密前的第二目录源数据,从而可以对乱序的多个压缩数据块进行恢复,进而得到该原始安装包。由此可见,进行加密的只有目录源数据部分,由于目录源数据部分仅包含安装包数据的目录数据,所占空间很小,因此加密或解密速度很快,能够有效降低终端和服务器端的计算压力。
步骤1015,对第一内容源数据、第一目录源数据以及目录结束标识重新打包,得到第一安装包。
也就是说,新生成的目标软件的第一安装包,是在原始安装包基础上对内容源数据中的压缩数据块进行打乱排序之后,对目录源数据利用密钥进行加密,再重新打包生成的新的安装包。这样不仅能够降低安装包加密/解密时的计算压力,同时还能够防止通过安装的方式对安装包进行还原,以及防止通过提取安装包的一部分作为指纹来识别安装包内容,并且对目录源数据进行加密使得即使获取内容源数据中所有的压缩数据块也无法获取安装包内容,能够实现防止安装包被篡改的目的,进而提高了用户信息的安全性。
图3是根据一示例性实施例示出的又一种安装包下载方法的流程图,如图3所示,图1的实施例还包括以下步骤:
步骤103,获取终端的网络状态信息,该网络状态信息包括终端的下载速度、带宽中的至少一者。
示例地,步骤101对内容源数据的压缩数据块打乱了顺序,因此无法通过截取其中一部分压缩数据包作为指纹,进行识别。如果有非法用户想要完整地恢复出目标软件所对应的APK,以进行篡改、替换,则需要把内容源数据中的全部压缩数据块或者大部分压缩数据块都截取到,并且获取了目录源数据的加密密钥才可能实现。而这样的篡改操作过程需要时间会远大于正常的APK的下载的时间,因此可以通过获取当前终端下载APK时的网络的状态信息,并根据步骤104-106所示的方法确定第一安装包是否存在异常,以及是否需要进行安全处理。
步骤104,根据终端的网络状态信息获取终端下载第一安装包的预估时间。
示例地,在根据步骤103确定了当前的网络状态信息,并结合第一安装包的信息,例如第一安装包的数据大小,可以确定下载该第一安装包所需的时间。
步骤105,当终端下载第一安装包花费的第一时间与预估时间的差值大于预设阈值时,确定第一安装包异常。
示例地,该预设阈值可以根据多次实验进行确定,由于网络状态会存在不稳定的情况,例如下载速率或者带宽的波动,从而造成预估时间与实际下载时间的差异,当第一时间与预估时间的差值小于或等于预设阈值时,说明属于正常情况,可能是网络状态波动导致的误差,因此可以认为不存在下载异常,终端在该第一安装包完成下载之后,可以进行该目标程序的安装,不存在安全隐患;而当第一时间与预估时间的差值大于预设阈值时,说明第一时间相对于预估时间具有较大差值,可以认为此时的第一安装包的下载可能存在异常,可以进行下一步的安全处理。
步骤106,按照预设的安全策略对第一安装包进行安全处理。
示例地,当根据步骤105中的预设阈值确定此时的第一安装包存在异常时,可以进行以下至少一者的操作:
第一种操作,向终端发送用于通知第一安装包异常的提醒消息。
示例的,发送提醒消息给终端告知用户,当前已经下载好的第一安装包有异常,例如通过利用文字提示:“该APK存在异常,不建议安装”,从而不推荐用户进行安装,以免该APK对用户的信息安全造成威胁。并且还可以向APK提供商,例如应用商店的服务器端的管理人员发出提示,表明该第一安装包存在安全隐患,并且系统也可能出现了安全漏洞,建议其及时进行修复和完善。
第二种操作,从目标软件的提供商重新获取目标软件的原始安装包,并根据原始安装包重新生成第一安装包。
也就是说,还可以进行该软件的原始安装包的重新下载,从而根据新下载的原始安装包生成新的第一安装包,以保证用户下载的安装包是安全的。
相应的,可以在利用第一种操作提醒用户之后,再与用户进行确认,是否要重新下载,当用户确定要重新下载之后,应用商店的服务器从目标软件的提供商重新获取目标软件的原始安装包,并且该服务器根据原始安装包重新生成第一安装包,而后重复步骤101以及后续步骤的操作,此处不做赘述。例如,应用程序商店的服务器从目标软件的官方网站重新获取目标软件的原始APK文件,然后根据该原始APK文件进行上述的步骤1011-1015所示的方法,从而重新生成乱序及加密后的APK文件,即该第一安装包,然后供终端重新下载。
另外,还可以将重新生成的第一安装包与之前存在异常的第一安装包的内容进行比对,确定存在的异常情况,找出漏洞,以便服务器安装包进行漏洞的修补。
第三种操作,对预设加密方式对应的密钥库进行更新。
当确定第一安装包的下载可能存在异常时,说明该预设的加密方式也可能被破解或泄露,因此可以对在步骤1014确定的密钥库进行更新。例如删除本次下载所采用的密钥,或者对该密钥进行异常标记,当该密钥具有多次异常标记时,确定该密钥不能够再使用,从而确保密钥库中的密钥具有较高的安全性,以保证之后安装包下载的安全性。或者,可以将当前所使用的密钥库中所有的密钥进行替换,从而进一步提高安全性。
综上所述,本公开提供的安装包下载方法,通过获取被请求下载的目标软件的第一安装包,其中,第一安装包中包括第一内容源数据和第一目录源数据,第一内容源数据包括顺序打乱的多个压缩数据块,第一目录源数据用于恢复采用预设加密方式加密的多个压缩数据块的初始顺序;之后将第一安装包发送给请求下载目标软件的终端。因此,通过将安装包中的多个压缩数据块顺序打乱,能够防止通过提取安装包的一部分作为指纹来识别安装包内容,并且对目录源数据进行加密使得即使获取内容源数据中所有的压缩数据块也无法获取安装包内容,另外由于目录源数据的数据量小,因此能够简化加密/解密过程,降低服务器加密和终端的解密时的计算压力,从而可以在降低加密以及解密时的计算压力的情况下,实现安装包防篡改的效果。
图4是根据一示例性实施例示出的一种安装包下载装置的框图,该装置400可以用于执行图1-图3任一所述的方法,参见图4,该装置400包括:
获取模块410,用于获取被请求下载的目标软件的第一安装包,第一安装包中包括第一内容源数据和第一目录源数据,其中内容源数据包括顺序打乱的多个压缩数据块,第一目录源数据用于恢复采用预设加密方式加密的多个压缩数据块的初始顺序。
发送模块420,用于将第一安装包发送给请求下载目标软件的终端。
图5是根据一示例性实施例示出的一种获取模块的框图,如图5所示,该获取模块410包括:
获取子模块411,用于获取目标软件的原始安装包。
解压缩子模块412,用于通过将原始安装包解压缩,得到原始安装包中的第二内容源数据,第二内容源数据中包括具有初始顺序的多个压缩数据块。
乱序处理子模块413,用于对具有初始顺序的多个压缩数据块进行乱序处理,得到包含顺序打乱的多个压缩数据块的第一内容源数据,以及顺序打乱的多个压缩数据块对应的第二目录源数据。
加密子模块414,用于按照预设加密方式对第二目录源数据进行加密处理,得到第一目录源数据,预设加密方式与终端的解密方式对应。
打包子模块415,用于对第一内容源数据、第一目录源数据以及目录结束标识重新打包,得到第一安装包。
图6是根据一示例性实施例示出的一种加密子模块的框图,如图6所示,该加密子模块414,包括:
密钥选择子模块4141,用于在预设的密钥库中按照预设规则选出第一密钥,第一密钥与终端用于解密的第二密钥相同或相应。
数据确定子模块4142,用于利用第一密钥对第二目录源数据进行加密处理,得到第一目录源数据。
图7是根据一示例性实施例示出的另一种安装包下载装置的框图,如图7所示,该装置400还包括:
网络状态获取模块430,用于获取终端的网络状态信息,网络状态信息包括终端的下载速度、带宽中的至少一者。
时间确定模块440,用于根据终端的网络状态信息获取终端下载第一安装包的预估时间。
异常判断模块450,用于当终端下载第一安装包花费的第一时间与预估时间的差值大于预设阈值时,确定第一安装包异常。
处理模块460,用于按照预设的安全策略对第一安装包进行安全处理。
可选的,该处理模块460,用于进行以下至少一者的操作:
向终端发送用于通知第一安装包异常的提醒消息。
从目标软件的提供商重新获取目标软件的原始安装包,并根据原始安装包重新生成第一安装包。
对预设加密方式对应的密钥库进行更新。
综上所述,本公开提供的安装包下载装置,通过获取被请求下载的目标软件的第一安装包,其中,第一安装包中包括第一内容源数据和第一目录源数据,第一内容源数据包括顺序打乱的多个压缩数据块,第一目录源数据用于恢复采用预设加密方式加密的多个压缩数据块的初始顺序;之后将第一安装包发送给请求下载目标软件的终端。因此,通过将安装包中的多个压缩数据块顺序打乱,能够防止通过提取安装包的一部分作为指纹来识别安装包内容,并且对目录源数据进行加密使得即使获取内容源数据中所有的压缩数据块也无法获取安装包内容,另外由于目录源数据的数据量小,因此能够简化加密/解密过程,降低服务器加密和终端的解密时的计算压力,从而可以在降低加密以及解密时的计算压力的情况下,实现安装包防篡改的效果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种电子设备800的框图。如图8所示,该电子设备800可以包括:处理器801,存储器802,多媒体组件803,输入/输出(I/O)接口804,以及通信组件805。
其中,处理器801用于控制该电子设备800的整体操作,以完成上述的安装包下载方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(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),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的安装包下载方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的安装包下载方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种安装包下载方法,其特征在于,所述方法包括:
获取被请求下载的目标软件的第一安装包,所述第一安装包中包括第一内容源数据和第一目录源数据,其中所述第一内容源数据包括顺序打乱的多个压缩数据块,所述第一目录源数据用于恢复采用预设加密方式加密的所述多个压缩数据块的初始顺序;
将所述第一安装包发送给请求下载所述目标软件的终端。
2.根据权利要求1所述的方法,其特征在于,所述获取被请求下载的目标软件的第一安装包,包括:
获取所述目标软件的原始安装包;
通过将所述原始安装包解压缩,得到所述原始安装包中的第二内容源数据,所述第二内容源数据中包括具有所述初始顺序的多个压缩数据块;
对具有所述初始顺序的多个压缩数据块进行乱序处理,得到包含所述顺序打乱的多个压缩数据块的所述第一内容源数据,以及所述顺序打乱的多个压缩数据块对应的第二目录源数据;
按照所述预设加密方式对所述第二目录源数据进行加密处理,得到所述第一目录源数据,所述预设加密方式与所述终端的解密方式对应;
对所述第一内容源数据、所述第一目录源数据以及目录结束标识重新打包,得到所述第一安装包。
3.根据权利要求2所述的方法,其特征在于,所述按照所述预设加密方式对所述第二目录源数据进行加密处理,得到所述第一目录源数据,所述预设加密方式与所述终端的解密方式对应,包括:
在预设的密钥库中按照预设规则选出第一密钥,所述第一密钥与所述终端用于解密的第二密钥相同或相应;
利用所述第一密钥对所述第二目录源数据进行加密处理,得到所述第一目录源数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述终端的网络状态信息,所述网络状态信息包括所述终端的下载速度、带宽中的至少一者;
根据所述终端的网络状态信息获取所述终端下载所述第一安装包的预估时间;
当所述终端下载所述第一安装包花费的第一时间与所述预估时间的差值大于预设阈值时,确定所述第一安装包异常;
按照预设的安全策略对所述第一安装包进行安全处理。
5.根据权利要求4所述的方法,其特征在于,所述按照预设的安全策略对所述第一安装包进行安全处理,包括以下至少一者:
向所述终端发送用于通知所述第一安装包异常的提醒消息;
从所述目标软件的提供商重新获取所述目标软件的原始安装包,并根据所述原始安装包重新生成所述第一安装包;
对所述预设加密方式对应的密钥库进行更新。
6.一种安装包下载装置,其特征在于,所述装置包括:
获取模块,用于获取被请求下载的目标软件的第一安装包,所述第一安装包中包括第一内容源数据和第一目录源数据,其中所述第一内容源数据包括顺序打乱的多个压缩数据块,所述第一目录源数据用于恢复采用预设加密方式加密的所述多个压缩数据块的初始顺序;
发送模块,用于将所述第一安装包发送给请求下载所述目标软件的终端。
7.根据权利要求6所述的装置,其特征在于,所述获取模块,包括:
获取子模块,用于获取所述目标软件的原始安装包;
解压缩子模块,用于通过将所述原始安装包解压缩,得到所述原始安装包中的第二内容源数据,所述第二内容源数据中包括具有所述初始顺序的多个压缩数据块;
乱序处理子模块,用于对具有所述初始顺序的多个压缩数据块进行乱序处理,得到包含所述顺序打乱的多个压缩数据块的所述第一内容源数据,以及所述顺序打乱的多个压缩数据块对应的第二目录源数据;
加密子模块,用于按照所述预设加密方式对所述第二目录源数据进行加密处理,得到所述第一目录源数据,所述预设加密方式与所述终端的解密方式对应;
打包子模块,用于对所述第一内容源数据、所述第一目录源数据以及目录结束标识重新打包,得到所述第一安装包。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
网络状态获取模块,用于获取所述终端的网络状态信息,所述网络状态信息包括所述终端的下载速度、带宽中的至少一者;
时间确定模块,用于根据所述终端的网络状态信息获取所述终端下载所述第一安装包的预估时间;
异常判断模块,用于当所述终端下载所述第一安装包花费的第一时间与所述预估时间的差值大于预设阈值时,确定所述第一安装包异常;
处理模块,用于按照预设的安全策略对所述第一安装包进行安全处理。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
权利要求9中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711287859.5A CN108173906A (zh) | 2017-12-07 | 2017-12-07 | 安装包下载方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711287859.5A CN108173906A (zh) | 2017-12-07 | 2017-12-07 | 安装包下载方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108173906A true CN108173906A (zh) | 2018-06-15 |
Family
ID=62524715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711287859.5A Pending CN108173906A (zh) | 2017-12-07 | 2017-12-07 | 安装包下载方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108173906A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086063A (zh) * | 2018-07-27 | 2018-12-25 | 中国联合网络通信集团有限公司 | 软件更新方法、文件加密方法、装置及存储介质 |
CN109739544A (zh) * | 2018-12-25 | 2019-05-10 | 北京三快在线科技有限公司 | 用于生成应用安装包的方法、装置及电子设备 |
CN111435911A (zh) * | 2019-01-14 | 2020-07-21 | 海南自贸区图灵区块链科技有限公司 | 一种在线多方安全数据处理方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355448A (zh) * | 2011-06-29 | 2012-02-15 | 北京原力创新科技有限公司 | 云流媒体数据传输方法及系统 |
CN102981879A (zh) * | 2012-12-03 | 2013-03-20 | 中国联合网络通信集团有限公司 | 应用软件安装包提供方法、获取方法、设备及处理系统 |
US20140337962A1 (en) * | 2008-02-28 | 2014-11-13 | Hob Gmbh & Co. Kg | Computer communication system for communication via public networks |
CN104216946A (zh) * | 2014-07-31 | 2014-12-17 | 百度在线网络技术(北京)有限公司 | 一种用于确定重打包应用程序的方法和装置 |
CN104320290A (zh) * | 2014-11-18 | 2015-01-28 | 成都远为天胜科技有限公司 | 一种宽带网络测速维护的方法 |
CN104683371A (zh) * | 2013-11-26 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 一种处理文件的方法及装置 |
CN106155753A (zh) * | 2016-08-22 | 2016-11-23 | 广东欧珀移动通信有限公司 | 一种应用程序安装方法、装置和终端 |
-
2017
- 2017-12-07 CN CN201711287859.5A patent/CN108173906A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140337962A1 (en) * | 2008-02-28 | 2014-11-13 | Hob Gmbh & Co. Kg | Computer communication system for communication via public networks |
CN102355448A (zh) * | 2011-06-29 | 2012-02-15 | 北京原力创新科技有限公司 | 云流媒体数据传输方法及系统 |
CN102981879A (zh) * | 2012-12-03 | 2013-03-20 | 中国联合网络通信集团有限公司 | 应用软件安装包提供方法、获取方法、设备及处理系统 |
CN104683371A (zh) * | 2013-11-26 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 一种处理文件的方法及装置 |
CN104216946A (zh) * | 2014-07-31 | 2014-12-17 | 百度在线网络技术(北京)有限公司 | 一种用于确定重打包应用程序的方法和装置 |
CN104320290A (zh) * | 2014-11-18 | 2015-01-28 | 成都远为天胜科技有限公司 | 一种宽带网络测速维护的方法 |
CN106155753A (zh) * | 2016-08-22 | 2016-11-23 | 广东欧珀移动通信有限公司 | 一种应用程序安装方法、装置和终端 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086063A (zh) * | 2018-07-27 | 2018-12-25 | 中国联合网络通信集团有限公司 | 软件更新方法、文件加密方法、装置及存储介质 |
CN109739544A (zh) * | 2018-12-25 | 2019-05-10 | 北京三快在线科技有限公司 | 用于生成应用安装包的方法、装置及电子设备 |
CN111435911A (zh) * | 2019-01-14 | 2020-07-21 | 海南自贸区图灵区块链科技有限公司 | 一种在线多方安全数据处理方法及装置 |
CN111435911B (zh) * | 2019-01-14 | 2023-02-17 | 海南自贸区图灵区块链科技有限公司 | 一种在线多方安全数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260668B (zh) | 一种文件加密方法及电子设备 | |
CN104184586B (zh) | 消息认证码生成方法,实现该方法的认证装置及认证请求装置 | |
US20160117518A1 (en) | File Encryption/Decryption Device And File Encryption/Decryption Method | |
US9608822B2 (en) | Method for generating an HTML document that contains encrypted files and the code necessary for decrypting them when a valid passphrase is provided | |
WO2015127737A1 (zh) | 一种数据加密解密方法、装置以及终端 | |
CN106067871B (zh) | 用于确保在网络中传送的数据的安全的方法和系统 | |
CN111385084A (zh) | 数字资产的密钥管理方法、装置及计算机可读存储介质 | |
CN103198261A (zh) | 保护文件内容安全的方法和系统 | |
WO2011023051A1 (zh) | 数据加密方法、解密方法及移动终端 | |
CN101815292B (zh) | 一种移动终端的数据保护装置及方法 | |
CN108173906A (zh) | 安装包下载方法、装置、存储介质及电子设备 | |
CN108170461B (zh) | 差分升级包生成方法、差分升级方法及装置 | |
CN101174941B (zh) | 一种移动终端文件离线数字版权保护方法及装置 | |
CN101916350A (zh) | 终端阅读内容的保护方法及系统 | |
CN105279447A (zh) | 数据加密方法、解密方法及装置 | |
KR20170022023A (ko) | 프로그램 실행 코드를 난독화하기 위한 장치 및 방법, 난독화된 프로그램 실행 코드를 복구하여 실행하기 위한 장치 및 방법 | |
KR102216869B1 (ko) | 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법 | |
CN107682335A (zh) | 数据传输方法、服务端以及计算机可读存储介质 | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
KR101329789B1 (ko) | 모바일 디바이스의 데이터베이스 암호화 방법 | |
CN115766244A (zh) | 车联网信息加密方法、装置、计算机设备和存储介质 | |
US20100241863A1 (en) | Device for reproducing digital content, secure electronic entity, system comprising said elements and method for reproducing digital content | |
CN112333699B (zh) | 一种物联网通信协议加密方法、设备及存储介质 | |
CN103491384A (zh) | 一种视频的加密方法和装置及解密方法和装置 | |
CN114329568A (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: 20180615 |