CN107301343A - 安全数据处理方法、装置及电子设备 - Google Patents

安全数据处理方法、装置及电子设备 Download PDF

Info

Publication number
CN107301343A
CN107301343A CN201710513031.0A CN201710513031A CN107301343A CN 107301343 A CN107301343 A CN 107301343A CN 201710513031 A CN201710513031 A CN 201710513031A CN 107301343 A CN107301343 A CN 107301343A
Authority
CN
China
Prior art keywords
data
installation package
package file
file
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710513031.0A
Other languages
English (en)
Other versions
CN107301343B (zh
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.)
Dalian Branch Of Software Co Ltd
Original Assignee
Dalian Branch Of Software Co Ltd
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 Dalian Branch Of Software Co Ltd filed Critical Dalian Branch Of Software Co Ltd
Publication of CN107301343A publication Critical patent/CN107301343A/zh
Application granted granted Critical
Publication of CN107301343B publication Critical patent/CN107301343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Abstract

本发明实施例公开了一种安全数据处理方法、装置及电子设备,涉及数据安全技术领域。本发明实施例的安全数据处理方法包括:获取具有压缩文件格式的安卓应用程序安装包文件;分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据;判断所述安装包文件中是否存在签名数据块;当所述安装包文件中存在签名数据块时,将所述来源标识数据添加到所述签名数据块中,并生成包含所述来源标识数据的安装包文件。此外,本发明实施例还公开了安全数据处理装置、电子设备。通过上述方案,能够确保软件兼容性的前提下,提高了应用程序安装的安全性。

Description

安全数据处理方法、装置及电子设备
技术领域
本发明涉及数据安全技术领域,尤其涉及应用程序的安全及兼容性安装技术。
背景技术
安卓系统是一款基于Linux内核和Java虚拟机的移动设备操作系统,最初作为手机操作系统而生,但因其具有系统源码开放、硬件支持丰富、Google紧密参与且不间断维护、第三方软件开发方便等明显优势,近年间得到迅速发展,已经成为市场占有率最大的智能移动终端操作系统,而且除手机和平板电脑外,现已普及到智能电视、高端单反照相机、车载娱乐信息系统甚至个人电脑等非传统手持设备。
发明人在实现本发明的过程中发现,安卓对于应用程序安装包的验证方式主要是自签名方式,只要应用程序安装包文件完整没有被篡改,并且被发布者加上了签名,便认为应用程序安装包是合法的。这样的应用程序安装包验证机制无法避免一些不兼容当前系统甚至是恶意的应用程序安装包软件被安装到安卓系统上。如果说这个缺点对于安卓这样一个开发性的系统来说尚可容忍,那么对于车载安卓系统这样相对封闭,经常要在离线状态安装应用程序安装包的系统来说。应用程序安装包来源的识别机制就必不可少。
现有技术中,安卓设备中支持应用程序安装包来源识别两种可行的方案包括:(1)利用安卓在应用程序安装包原有签名基础上增加一个官方认证的签名(或者是直接替换掉原有签名)。具体做法是利用v1签名技术对应用程序安装包再进行一次签名,将生成的新签名添加到签名信息文件夹中,或者直接替换原有签名。这样应用程序安装包就具备了一个独一无二的数据标识,方便系统确定其来源。(2)利用Zip包文件尾部的数据段“目录结束标识结构”中有一段可扩展的注释内容,将来源认证等一些定制化信息添加到这里。这样定制化的安卓系统在安装应用程序安装包时,便可以通过检验Zip包文件尾部添加的定制化信息,来确定其来源。在上述现有技术方案中,方案(1)直接采用安卓原生技术,实现难度低。但是这种做法有两个缺陷:第一,无论替换或者增加应用程序安装包的签名文件,都对应用程序安装包原有的签名进行了更改,一些应用在启动后会检查自身签名的正确性,这时就会发现签名被篡改,弹出非正版应用的提示;第二,该方案只适用于Android N以前的v1签名,对v2签名无法兼容。方案(2)相比较方案(1)不会破坏应用程序安装包文件原有的签名,但是相对方案(1)实现也更为复杂。而且该方案只是针对v1的签名,无法支持v2签名机制
因此,如何在保证应用程序安装包与安卓系统兼容的情况下,能够快速、准确且安全的确定应用程序安装包的身份,是亟需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种安全数据处理方法、装置、电子设备、非暂态计算机可读存储介质及计算机程序,至少部分的解决现有技术中存在的问题。
第一方面,本发明实施例提供了一种安全数据处理方法,包括:
获取具有压缩文件格式的安卓应用程序安装包文件;
分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据;
判断所述安装包文件中是否存在签名数据块;
当所述安装包文件中存在签名数据块时,将所述来源标识数据添加到所述签名数据块中,并生成包含所述来源标识数据的安装包文件。
根据本发明实施例的一种具体实现方式,在所述判断所述安装包文件中是否存在签名数据块之后,所述方法还包括:
当所述安装包文件中不存在签名数据块时,将所述来源标识数据转化为能够添加到所述安装包文件中的签名数据块,并生成包含所述来源标识数据的安装包文件。
根据本发明实施例的一种具体实现方式,所述生成包含所述来源标识数据的安装包文件,包括:
将转化为签名数据块添加到所述安装包文件的压缩的文件内容源数据以及所述压缩的目录源数据数据段之间,形成包含所述来源标识数据的安装包文件。
根据本发明实施例的一种具体实现方式,所述分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据,包括:
采用数据摘要算法分别对所述压缩的文件内容源数据、所述压缩的目录源数据以及所述目录结束标识结构进行计算,生成数据摘要;
生成与所述安装包文件对应的唯一公钥私钥对;
利用所述私钥对所述数据摘要进行加密,得到加密数据摘要;
将所述数据摘要、加密数据摘要以及包含所述公钥信息的数字证书打包成数据段,形成所述来源标识数据。
根据本发明实施例的一种具体实现方式,所述方法还包括:
将包含所述来源标识数据的安装包文件在预设的应用程序分发平台进行分发。
第二方面,本发明实施例提供了一种安全数据处理方法,包括:
获取具有压缩文件格式的安卓应用程序安装包文件;
对所述安装包文件进行解析,获取所述安装包文件中的签名数据块;
基于所述签名数据块,提取所述安装包文件的来源消息数据,并判断所述来源消息数据是否为合法数据;
当所述来源消息数据为合法数据时,按照原生应用程序的安装程序安装包含来源消息数据的安装包文件。
根据本发明实施例的一种具体实现方式,在所述获取所述安装包文件中的签名数据块之前,该方法还包括:
判断所述安装包文件中是否含有签名数据块;
当所述安装包文件中不含有签名数据块时,拒绝所述安装包文件的安装操作。
根据本发明实施例的一种具体实现方式,在所述提取所述安装包文件的来源消息数据之前,该方法还包括:
判断所述安装包文件中是否含有来源消息数据;
当所述安装包文件中不含有来源消息数据时,拒绝所述安装包文件的安装操作。
根据本发明实施例的一种具体实现方式,在所述判断所述来源消息数据是否为合法数据之后,该方法还包括:
当所述来源消息数据为非法数据时,拒绝所述安装包文件的安装操作。
第三方面,本发明实施例提供了一种安全数据处理装置,包括:
第一获取模块,用于获取具有压缩文件格式的安卓应用程序安装包文件;
加密模块,用于分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据;
第一判断模块,用于判断所述安装包文件中是否存在签名数据块;
生成模块,用于当所述安装包文件中存在签名数据块时,将所述来源标识数据添加到所述签名数据块中,并生成包含所述来源标识数据的安装包文件。
根据本发明实施例的一种具体实现方式,所述生成模块还用于:
当所述安装包文件中不存在签名数据块时,将所述来源标识数据转化为能够添加到所述安装包文件中的签名数据块,并生成包含所述来源标识数据的安装包文件。
根据本发明实施例的一种具体实现方式,所述生成模块还用于:
将转化为签名数据块添加到所述安装包文件的压缩的文件内容源数据以及所述压缩的目录源数据数据段之间,形成包含所述来源标识数据的安装包文件。
根据本发明实施例的一种具体实现方式,所述加密模块还用于:
采用数据摘要算法分别对所述压缩的文件内容源数据、所述压缩的目录源数据以及所述目录结束标识结构进行计算,生成数据摘要;
生成与所述安装包文件对应的唯一公钥私钥对;
利用所述私钥对所述数据摘要进行加密,得到加密数据摘要;
将所述数据摘要、加密数据摘要以及包含所述公钥信息的数字证书打包成数据段,形成所述来源标识数据。
根据本发明实施例的一种具体实现方式,所述装置还包括:
分发模块,用于将包含所述来源标识数据的安装包文件在预设的应用程序分发平台进行分发。
第四方面,本发明实施例提供了一种安全数据处理装置,包括:
第二获取模块,用于获取具有压缩文件格式的安卓应用程序安装包文件;
第三获取模块,用于对所述安装包文件进行解析,获取所述安装包文件中的签名数据块;
执行模块,用于基于所述签名数据块,提取所述安装包文件的来源消息数据,并判断所述来源消息数据是否为合法数据;
安装模块,用于当所述来源消息数据为合法数据时,按照原生应用程序的安装程序安装包含来源消息数据的安装包文件。
根据本发明实施例的一种具体实现方式,所述第三获取模块,还包括:
第二判断模块,用于判断所述安装包文件中是否含有签名数据块;
第一拒绝模块,用于当所述安装包文件中不含有签名数据块时,拒绝所述安装包文件的安装操作。
根据本发明实施例的一种具体实现方式,所述执行模块,还包括:
第三判断模块,用于判断所述安装包文件中是否含有来源消息数据;
第二拒绝模块,用于当所述安装包文件中不含有来源消息数据时,拒绝所述安装包文件的安装操作。
根据本发明实施例的一种具体实现方式,所述装置还包括:
第三拒绝模块,用于当所述来源消息数据为非法数据时,拒绝所述安装包文件的安装操作。
第五方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任第一及第二方面或第一及第二方面的任一实现方式所述的安全数据处理方法。
第六方面,本发明实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行前述任第一及第二方面或第一及第二方面的任一实现方式所述的安全数据处理方法。
第七方面,本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行前述任第一及第二方面或第一及第二方面的任一实现方式所述的安全数据处理方法。
本发明实施例提供的安全数据处理方法、装置、电子设备、非暂态计算机可读存储介质及计算机程序,通过在应用程序安装包文件中增加来源信息标识;在安卓系统上部署一套安全装置,该装置能够根据应用程序安装包的来源信息标识判断其合法性,只有通过该安全装置检验的应用程序安装包才可以继续安装。而且添加的来源信息标识并不影响应用程序安装包在其他安卓系统上的兼容性。即使是以最新的Scheme v2签名格式进行签名的应用程序安装包,在按照本专利技术方案添加了来源信息标识后,仍可以安装到包括最新的安卓系统(Android N)在内的任意安卓系统兼容设备上,可以提供一套完整的、兼容目前所有安卓系统的、不依赖于网络的应用程序安装包来源识别方案。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种安全数据处理流程示意图;
图2为本发明实施例提供的另一种安全数据处理流程示意图;
图3为本发明实施例提供的一种形成来源标识数据的流程示意图;
图4为本发明实施例提供的另一种安全数据处理流程示意图;
图5为本发明实施例提供的另一种安全数据处理流程示意图;
图6为本发明实施例提供的一种安全数据处理装置结构示意图;
图7为本发明实施例提供的另一种安全数据处理装置结构示意图;
图8为本发明实施例提供的另一种安全数据处理装置结构示意图;
图9为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明的实施例的安全数据处理的流程示意图,如图1所示,本实施例的方法可以包括以下步骤:
S101,获取具有压缩文件格式的安卓应用程序安装包文件。
Android Package(APK),安卓应用的安装包文件,其常见形式为zip格式。由于zip格式的安装包文件具有特定的数据格式,便于对其中的内容进行分析。为此,在对安装包文件添加来源标识之前,需要获取符合格式要求的安装包文件。添加来源标识是指在应用程序安装包文件上增加能够标识其来源的数据信息,要求不能破坏应用程序安装包原有结构,且保证其可以兼容目前所有的安卓系统。这部分工作可以由第三方应用程序安装包的发布方来做,也可以由需要安装该应用程序安装包的安卓设备制造厂商来做。
S102,分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据。
zip文件由三部分组成:压缩的文件内容源数据、压缩的目录源数据、目录结束标识结构。其中,压缩的文件内容源数据记录着压缩的所有文件的内容信息,其数据组织结构是对于每个文件都由file header、file data、data descriptor三部分组成。对于待压缩的目录而言,每一个子目录对应一个压缩目录源数据,记录该目录的描述信息。压缩包中所有目录源数据连续存储在整个归档包的最后,这样便于向包中追加新的文件。目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束。
数据摘要算法是一个算法函数,通过该函数可以将一个很长的数据生成一个固定长度的摘要信息。数据摘要算法就是一种散列函数,常见的数据摘要算法有MD5、SHA、CRC32等。通过上述数据摘要算法对分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据。
S103,判断所述安装包文件中是否存在签名数据块。
签名数据块(signing block)是安卓v2签名的核心数据段,v2签名是对安卓应用安装包的三段数据都分别进行了签名加密,然后将得到的签名数据整合成一个数据段,命名为“Signing Block”,并添加到“文件内容源数据”和“压缩的目录源数据”之间,通过v2机制签名过的数据信息都存放在该数据段中。方案执行的过程中,需要检查应用程序安装包是否包含“Signing Block”(即v2签名应用程序安装包)。
S104,当所述安装包文件中存在签名数据块时,将所述来源标识数据添加到所述签名数据块中,并生成包含所述来源标识数据的安装包文件。
通过本实施例中的方法,在应用程序安装包文件中增加来源信息标识,在安卓系统上部署一套安全装置,该装置能够根据应用程序安装包的来源信息标识判断其合法性,只有通过该安全装置检验的应用程序安装包才可以继续安装。而且添加的来源信息标识并不影响应用程序安装包在其他安卓系统上的兼容性。
根据本发明另一实施例的方案,参见图2,除了执行图1所对应的实施例之外,可选择性的,安全数据处理方法还可以包括:
S201,当所述安装包文件中不存在签名数据块时,将所述来源标识数据转化为能够添加到所述安装包文件中的签名数据块,并生成包含所述来源标识数据的安装包文件。
在实际的应用中需要对安装应用包添加来源标识,参见图3,添加来源标识可以包括如下步骤:
S301:采用数据摘要算法分别对所述压缩的文件内容源数据、所述压缩的目录源数据以及所述目录结束标识结构进行计算,生成数据摘要。
具体的,可以对应用程序安装包文件进行解析,得到其“压缩的文件内容源数据”、“压缩的目录源数据”、“目录结束标识结构”三段内容。
S302:生成与所述安装包文件对应的唯一公钥私钥对。
具体的,对步骤S301中得到的这三段内容分别用数据摘要算法计算其数据摘要,生成独一无二的公钥私钥对,作为应用程序安装包来源验证的标识。
S303:利用所述私钥对所述数据摘要进行加密,得到加密数据摘要。
具体的,对步骤S302得到的数据摘要,使用私钥进行加密,得到加密后的数据摘要。
S304:将所述数据摘要、加密数据摘要以及包含所述公钥信息的数字证书打包成数据段,形成所述来源标识数据。
具体的,将步骤S302得到的数据摘要、步骤S303得到的加密后的数据摘要以及包含公钥信息的数字证书一起打包成一个数据段。
检查应用程序安装包是否包含“Signing Block”(即v2签名应用程序安装包),如果包含,则直接将步骤S304得到的数据段添加到这里。
如果检查发现应用程序安装包不包含“Signing Block”(即v1签名应用程序安装包),则将步骤S304得到的数据段参照v2的处理方式,转换成“Signing Block”,添加到“压缩的文件内容源数据”和“压缩的目录源数据”这两段数据之间。
通过对安装应用包添加来源标识,提高了应用安装包的兼容性。
可选的,参见图4,本发明实施例还提供了一种安全数据处理方法,用于在校验来源标识,校验来源标识是指在Android Framework中添加定制化框架,用来校验被安装的应用程序安装包的来源。要求不能改变安卓原生的应用程序安装包安装处理,这部分工作可以要求安卓系统的定制厂商来做。具体的,该方法包括:
S401,获取具有压缩文件格式的安卓应用程序安装包文件。
Android Package(APK),安卓应用的安装包文件,其常见形式为zip格式。由于zip格式的安装包文件具有特定的数据格式,便于对其中的内容进行分析。为此,在对安装包文件添加来源标识之前,需要获取符合格式要求的安装包文件。添加来源标识的应用程序安装包文件上增加能够标识其来源的数据信息,但不能破坏应用程序安装包原有结构,且保证其可以兼容目前所有的安卓系统。可以在Android Framework中添加定制化框架,用来校验被安装的应用程序安装包的来源
S402,对所述安装包文件进行解析,获取所述安装包文件中的签名数据块。
签名数据块(signing block)是安卓v2签名的核心数据段,v2签名是对安卓应用安装包的三段数据都分别进行了签名加密,然后将得到的签名数据整合成一个数据段,命名为“Signing Block”,并添加到“文件内容源数据”和“压缩的目录源数据”之间,通过v2机制签名过的数据信息都存放在该数据段中。方案执行的过程中,需要检查应用程序安装包是否包含“Signing Block”(即v2签名应用程序安装包),以及当应用程序安装包是否包含“Signing Block”时,提取所述安装包文件中的签名数据块。
S403,基于所述签名数据块,提取所述安装包文件的来源消息数据,并判断所述来源消息数据是否为合法数据。
具体的,可以提取消息来源数据中保存的签名数据,利用数据摘要、加密数据摘要以及包含所述公钥信息的数字证书来共同验证消息数据是否合法。
S404,当所述来源消息数据为合法数据时,按照原生应用程序的安装程序安装包含来源消息数据的安装包文件。
可选的,参见图5,本发明实施例还提供了另一种安全数据处理方法,包含如下步骤:
S401,获取具有压缩文件格式的安卓应用程序安装包文件。
S501,检验应用程序安装包文件中是否包含“Signing Block”,如果不包含,直接拒绝安装该应用程序安装包。
S502,对于通过步骤S501验证的应用程序安装包,验证其“Signing Block”中是否包含来源信息数据,如果不包含,直接拒绝安装该应用程序安装包。
S503,对于通过步骤S502验证的应用程序安装包,验证其来源信息数据的合法性。验证“Signing Block”中的签名信息,判断应用程序安装包文件有无被篡改;再判断该签名是否是信任来源供应商的签名。只有最终符合条件的应用程序安装包方可继续安装。。
与前述安全数据处理方法实施例相对应,本发明实施例还提供了一种安全数据处理装置,如图6所示,安全数据处理装置60,包括:
第一获取模块601,用于获取具有压缩文件格式的安卓应用程序安装包文件。
Android Package(APK),安卓应用的安装包文件,其常见形式为zip格式。由于zip格式的安装包文件具有特定的数据格式,便于对其中的内容进行分析。为此,在对安装包文件添加来源标识之前,需要获取符合格式要求的安装包文件。添加来源标识是指在应用程序安装包文件上增加能够标识其来源的数据信息,要求不能破坏应用程序安装包原有结构,且保证其可以兼容目前所有的安卓系统。这部分工作可以由第三方应用程序安装包的发布方来做,也可以由需要安装该应用程序安装包的安卓设备制造厂商来做。
加密模块602,用于分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据。
zip文件由三部分组成:压缩的文件内容源数据、压缩的目录源数据、目录结束标识结构。其中,压缩的文件内容源数据记录着压缩的所有文件的内容信息,其数据组织结构是对于每个文件都由file header、file data、data descriptor三部分组成。对于待压缩的目录而言,每一个子目录对应一个压缩目录源数据,记录该目录的描述信息。压缩包中所有目录源数据连续存储在整个归档包的最后,这样便于向包中追加新的文件。目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束。
数据摘要算法是一个算法函数,通过该函数可以将一个很长的数据生成一个固定长度的摘要信息。数据摘要算法就是一种散列函数,常见的数据摘要算法有MD5、SHA、CRC32等。通过上述数据摘要算法对分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据。
第一判断模块603,用于判断所述安装包文件中是否存在签名数据块。
签名数据块(signing block)是安卓v2签名的核心数据段,v2签名是对安卓应用安装包的三段数据都分别进行了签名加密,然后将得到的签名数据整合成一个数据段,命名为“Signing Block”,并添加到“文件内容源数据”和“压缩的目录源数据”之间,通过v2机制签名过的数据信息都存放在该数据段中。方案执行的过程中,需要检查应用程序安装包是否包含“Signing Block”(即v2签名应用程序安装包)。
生成模块604,用于当所述安装包文件中存在签名数据块时,将所述来源标识数据添加到所述签名数据块中,并生成包含所述来源标识数据的安装包文件。
通过本实施例中的装置,在应用程序安装包文件中增加来源信息标识,在安卓系统上部署一套安全装置,该装置能够根据应用程序安装包的来源信息标识判断其合法性,只有通过该安全装置检验的应用程序安装包才可以继续安装。而且添加的来源信息标识并不影响应用程序安装包在其他安卓系统上的兼容性。
参见图7,除了图6所示的结构之外,安全数据处理装置还可以包括分发模块701。
与前述安全数据处理方法实施例相对应,本发明实施例还提供了一种安全数据处理装置,如图8所示,安全数据处理装置80,包括:
第二获取模块801,用于获取具有压缩文件格式的安卓应用程序安装包文件。
Android Package(APK),安卓应用的安装包文件,其常见形式为zip格式。由于zip格式的安装包文件具有特定的数据格式,便于对其中的内容进行分析。为此,在对安装包文件添加来源标识之前,需要获取符合格式要求的安装包文件。添加来源标识的应用程序安装包文件上增加能够标识其来源的数据信息,但不能破坏应用程序安装包原有结构,且保证其可以兼容目前所有的安卓系统。可以在Android Framework中添加定制化框架,用来校验被安装的应用程序安装包的来源
第三获取模块802,用于对所述安装包文件进行解析,获取所述安装包文件中的签名数据块。
签名数据块(signing block)是安卓v2签名的核心数据段,v2签名是对安卓应用安装包的三段数据都分别进行了签名加密,然后将得到的签名数据整合成一个数据段,命名为“Signing Block”,并添加到“文件内容源数据”和“压缩的目录源数据”之间,通过v2机制签名过的数据信息都存放在该数据段中。方案执行的过程中,需要检查应用程序安装包是否包含“Signing Block”(即v2签名应用程序安装包),以及当应用程序安装包是否包含“Signing Block”时,提取所述安装包文件中的签名数据块。
执行模块803,用于基于所述签名数据块,提取所述安装包文件的来源消息数据,并判断所述来源消息数据是否为合法数据。
具体的,可以提取消息来源数据中保存的签名数据,利用数据摘要、加密数据摘要以及包含所述公钥信息的数字证书来共同验证消息数据是否合法。
安装模块804,用于当所述来源消息数据为合法数据时,按照原生应用程序的安装程序安装包含来源消息数据的安装包文件。
可选的,所述第三获取模块,还包括:
第二判断模块,用于判断所述安装包文件中是否含有签名数据块;
第一拒绝模块,用于当所述安装包文件中不含有签名数据块时,拒绝所述安装包文件的安装操作。
可选的,所述执行模块,还包括:
第三判断模块,用于判断所述安装包文件中是否含有来源消息数据;
第二拒绝模块,用于当所述安装包文件中不含有来源消息数据时,拒绝所述安装包文件的安装操作。
可选的,所述装置80还包括:
第三拒绝模块,用于当所述来源消息数据为非法数据时,拒绝所述安装包文件的安装操作。
上述实施例中各功能模块所执行的功能及内容与其对应的方法实施例一一对应,在此不再赘述。
图9示出了本发明实施例提供的电子设备90的结构示意图,电子设备90包括至少一个处理器901(例如CPU),至少一个输入输出接口904,存储器902,和至少一个通信总线903,用于实现这些部件之间的连接通信。至少一个处理器901用于执行存储器902中存储的可执行模块,例如计算机程序。存储器902为非暂态存储器(non-transitory memory),其可以包含易失性存储器,例如高速随机存取存储器(RAM:Random Access Memory),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个输入输出接口904(可以是有线或者无线通信接口)实现与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器902存储了程序9021,处理器901执行程序9021,用于执行前述任一安全数据处理方法的实施例。
该电子设备可以以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)特定服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将
一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些。
实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种安全数据处理方法,其特征在于,包括:
获取具有压缩文件格式的安卓应用程序安装包文件;
分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据;
判断所述安装包文件中是否存在签名数据块;
当所述安装包文件中存在签名数据块时,将所述来源标识数据添加到所述签名数据块中,并生成包含所述来源标识数据的安装包文件。
2.根据权利要求1所述的安全数据处理方法,其特征在于,在所述判断所述安装包文件中是否存在签名数据块之后,所述方法还包括:
当所述安装包文件中不存在签名数据块时,将所述来源标识数据转化为能够添加到所述安装包文件中的签名数据块,并生成包含所述来源标识数据的安装包文件。
3.根据权利要求2所述的安全数据处理方法,其特征在于,所述生成包含所述来源标识数据的安装包文件,包括:
将转化为签名数据块添加到所述安装包文件的压缩的文件内容源数据以及所述压缩的目录源数据数据段之间,形成包含所述来源标识数据的安装包文件。
4.根据权利要求1所述的安全数据处理方法,其特征在于,所述分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据,包括:
采用数据摘要算法分别对所述压缩的文件内容源数据、所述压缩的目录源数据以及所述目录结束标识结构进行计算,生成数据摘要;
生成与所述安装包文件对应的唯一公钥私钥对;
利用所述私钥对所述数据摘要进行加密,得到加密数据摘要;
将所述数据摘要、加密数据摘要以及包含所述公钥信息的数字证书打包成数据段,形成所述来源标识数据。
5.根据权利要求1所述的安全数据处理方法,其特征在于,所述方法还包括:
将包含所述来源标识数据的安装包文件在预设的应用程序分发平台进行分发。
6.一种安全数据处理方法,其特征在于,包括:
获取具有压缩文件格式的安卓应用程序安装包文件;
对所述安装包文件进行解析,获取所述安装包文件中的签名数据块;
基于所述签名数据块,提取所述安装包文件的来源消息数据,并判断所述来源消息数据是否为合法数据;
当所述来源消息数据为合法数据时,按照原生应用程序的安装程序安装包含来源消息数据的安装包文件。
7.根据权利要求6所述的安全数据处理方法,其特征在于,在所述获取所述安装包文件中的签名数据块之前,该方法还包括:
判断所述安装包文件中是否含有签名数据块;
当所述安装包文件中不含有签名数据块时,拒绝所述安装包文件的安装操作。
8.根据权利要求6所述的安全数据处理方法,其特征在于,在所述提取所述安装包文件的来源消息数据之前,该方法还包括:
判断所述安装包文件中是否含有来源消息数据;
当所述安装包文件中不含有来源消息数据时,拒绝所述安装包文件的安装操作。
9.根据权利要求6所述的安全数据处理方法,其特征在于,在所述判断所述来源消息数据是否为合法数据之后,该方法还包括:
当所述来源消息数据为非法数据时,拒绝所述安装包文件的安装操作。
10.一种安全数据处理装置,其特征在于,包括:
第一获取模块,用于获取具有压缩文件格式的安卓应用程序安装包文件;
加密模块,用于分别对所述安装包文件中的压缩的文件内容源数据、压缩的目录源数据以及目录结束标识结构进行签名加密,得到来源标识数据;
第一判断模块,用于判断所述安装包文件中是否存在签名数据块;
生成模块,用于当所述安装包文件中存在签名数据块时,将所述来源标识数据添加到所述签名数据块中,并生成包含所述来源标识数据的安装包文件。
CN201710513031.0A 2017-06-19 2017-06-28 安全数据处理方法、装置及电子设备 Active CN107301343B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710472509X 2017-06-19
CN201710472509 2017-06-19

Publications (2)

Publication Number Publication Date
CN107301343A true CN107301343A (zh) 2017-10-27
CN107301343B CN107301343B (zh) 2021-03-26

Family

ID=60135996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710513031.0A Active CN107301343B (zh) 2017-06-19 2017-06-28 安全数据处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN107301343B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768662A (zh) * 2018-05-30 2018-11-06 格尔软件股份有限公司 一种对Android APK增加自定义签名的方法
CN109120594A (zh) * 2018-07-13 2019-01-01 北京三快在线科技有限公司 流量劫持检测方法及装置
CN109409039A (zh) * 2018-10-24 2019-03-01 北京奇虎科技有限公司 针对包含资源文件的数据压缩包进行加固的方法及装置
CN109450883A (zh) * 2018-10-26 2019-03-08 北京梆梆安全科技有限公司 一种数字证书的破解风险检测方法及装置
CN109740305A (zh) * 2018-12-26 2019-05-10 深圳市优博讯科技股份有限公司 一种应用程序安装包签名方法、安装方法及电子设备
CN112506878A (zh) * 2020-12-17 2021-03-16 深圳市欢太科技有限公司 文件处理方法、装置、存储介质及电子设备
CN113779513A (zh) * 2021-09-15 2021-12-10 广州易方信息科技股份有限公司 Zip文件的标识插入方法、装置、计算机设备和存储介质
CN113840136A (zh) * 2021-09-03 2021-12-24 大连中科创达软件有限公司 一种相机安装精度的检测方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756432B1 (en) * 2012-05-22 2014-06-17 Symantec Corporation Systems and methods for detecting malicious digitally-signed applications
CN103886260A (zh) * 2014-04-16 2014-06-25 中国科学院信息工程研究所 一种基于二次签名验签技术的应用程序管控方法
CN104090946A (zh) * 2014-06-30 2014-10-08 广州华多网络科技有限公司 应用安装包中添加信息的方法及装置
CN104092544A (zh) * 2014-06-26 2014-10-08 工业和信息化部计算机与微电子发展研究中心(中国软件评测中心) 兼容安卓应用的服务签名方法与装置
CN104156638A (zh) * 2014-06-06 2014-11-19 国家计算机网络与信息安全管理中心 一种面向安卓系统软件的扩展签名的实现方法
US20150200784A1 (en) * 2014-01-13 2015-07-16 Samsung Electronics Co., Ltd. Device and method for re-signing application package, and terminal device for running application package
US20150235042A1 (en) * 2014-02-14 2015-08-20 Symantec Corporation Systems and methods for authenticating an application
CN105391717A (zh) * 2015-11-13 2016-03-09 福建联迪商用设备有限公司 一种apk签名认证方法及其系统
CN105873030A (zh) * 2015-01-22 2016-08-17 卓望数码技术(深圳)有限公司 一种对终端应用进行副署签名的方法
CN106209379A (zh) * 2016-07-04 2016-12-07 江苏先安科技有限公司 一种Android APK副署签名验证方法
CN106656513A (zh) * 2017-02-24 2017-05-10 福建魔方电子科技有限公司 安卓平台上apk文件的二次打包签名验证方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756432B1 (en) * 2012-05-22 2014-06-17 Symantec Corporation Systems and methods for detecting malicious digitally-signed applications
US20150200784A1 (en) * 2014-01-13 2015-07-16 Samsung Electronics Co., Ltd. Device and method for re-signing application package, and terminal device for running application package
US20150235042A1 (en) * 2014-02-14 2015-08-20 Symantec Corporation Systems and methods for authenticating an application
CN103886260A (zh) * 2014-04-16 2014-06-25 中国科学院信息工程研究所 一种基于二次签名验签技术的应用程序管控方法
CN104156638A (zh) * 2014-06-06 2014-11-19 国家计算机网络与信息安全管理中心 一种面向安卓系统软件的扩展签名的实现方法
CN104092544A (zh) * 2014-06-26 2014-10-08 工业和信息化部计算机与微电子发展研究中心(中国软件评测中心) 兼容安卓应用的服务签名方法与装置
CN104090946A (zh) * 2014-06-30 2014-10-08 广州华多网络科技有限公司 应用安装包中添加信息的方法及装置
CN105873030A (zh) * 2015-01-22 2016-08-17 卓望数码技术(深圳)有限公司 一种对终端应用进行副署签名的方法
CN105391717A (zh) * 2015-11-13 2016-03-09 福建联迪商用设备有限公司 一种apk签名认证方法及其系统
CN106209379A (zh) * 2016-07-04 2016-12-07 江苏先安科技有限公司 一种Android APK副署签名验证方法
CN106656513A (zh) * 2017-02-24 2017-05-10 福建魔方电子科技有限公司 安卓平台上apk文件的二次打包签名验证方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
佚名: "APK Signature Scheme v2学习", 《HTTPS://WWW.JIANSHU.COM/P/A82758475FF5》 *
建帅 陈潼: "新一代开源Android渠道包生成工具Walle", 《HTTPS://TECH.MEITUAN.COM/2017/01/13/ANDROID-APK-V2-SIGNATURE-SCHEME.HTML》 *
李涛: "Android 新一代多渠道打包神器", 《HTTPS://MP.WEIXIN.QQ.COM/S/TQMEPQUQZ0LMQO7UKAUCKA》 *
许艳萍等: "Android智能终端安全综述", 《通信学报》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768662B (zh) * 2018-05-30 2021-05-07 格尔软件股份有限公司 一种对Android APK增加自定义签名的方法
CN108768662A (zh) * 2018-05-30 2018-11-06 格尔软件股份有限公司 一种对Android APK增加自定义签名的方法
CN109120594A (zh) * 2018-07-13 2019-01-01 北京三快在线科技有限公司 流量劫持检测方法及装置
CN109120594B (zh) * 2018-07-13 2021-08-13 北京三快在线科技有限公司 流量劫持检测方法及装置
CN109409039A (zh) * 2018-10-24 2019-03-01 北京奇虎科技有限公司 针对包含资源文件的数据压缩包进行加固的方法及装置
CN109450883A (zh) * 2018-10-26 2019-03-08 北京梆梆安全科技有限公司 一种数字证书的破解风险检测方法及装置
CN109450883B (zh) * 2018-10-26 2021-08-27 北京梆梆安全科技有限公司 一种数字证书的破解风险检测方法及装置
CN109740305A (zh) * 2018-12-26 2019-05-10 深圳市优博讯科技股份有限公司 一种应用程序安装包签名方法、安装方法及电子设备
CN109740305B (zh) * 2018-12-26 2022-03-18 深圳市优博讯科技股份有限公司 一种应用程序安装包签名方法、安装方法及电子设备
CN112506878A (zh) * 2020-12-17 2021-03-16 深圳市欢太科技有限公司 文件处理方法、装置、存储介质及电子设备
CN113840136A (zh) * 2021-09-03 2021-12-24 大连中科创达软件有限公司 一种相机安装精度的检测方法和装置
CN113840136B (zh) * 2021-09-03 2023-12-01 大连中科创达软件有限公司 一种相机安装精度的检测方法和装置
CN113779513A (zh) * 2021-09-15 2021-12-10 广州易方信息科技股份有限公司 Zip文件的标识插入方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN107301343B (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN107301343A (zh) 安全数据处理方法、装置及电子设备
CN105391717B (zh) 一种apk签名认证方法及其系统
CN107463806B (zh) 一种Android应用程序安装包的签名和验签方法
CN104426658B (zh) 对移动终端上的应用进行身份验证的方法及装置
CN103368987B (zh) 云服务器、应用程序的审核认证及管理系统和方法
CN109741063A (zh) 基于区块链的数字签名方法和装置
CN109960903A (zh) 一种应用加固的方法、装置、电子设备及存储介质
CN111314172B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN104092544B (zh) 兼容安卓应用的服务签名方法与装置
CN107980132A (zh) 一种apk签名认证方法及系统
CN109831301A (zh) Pdf文件的电子签名方法及该电子签名的验签方法
CN107196761B (zh) 一种保护应用程序中的核心函数的方法
CN110190963A (zh) 一种针对授时证书生成请求的监控方法、装置及设备
KR20170089352A (ko) 가상화 시스템에서 수행하는 무결성 검증 방법
CN109358859A (zh) 在区块链网络中安装智能合约的方法、装置及存储介质
CN107171808B (zh) 一种电子档案真实性的验证方法及装置
CN104104650B (zh) 数据文件访问方法及终端设备
CN105873044A (zh) 基于安卓平台的应用程序发布方法、开发者追溯方法和装置
CN108170461A (zh) 差分升级包生成方法、差分升级方法及装置
CN106888094B (zh) 一种签名方法及服务器
CN106685945A (zh) 业务请求处理方法、业务办理号码的验证方法及其终端
CN103685259B (zh) 账户登录的方法及其装置
CN110347678B (zh) 一种金融数据的存储方法、系统、装置及设备
CN111400771A (zh) 目标分区的校验方法及装置、存储介质、计算机设备
CN110221972A (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