应用软件的签名方法、验签方法和装置制造方法及图纸

技术编号:20118491 阅读:21 留言:0更新日期:2019-01-16 12:11
本发明专利技术提供了一种应用软件的签名方法、验签方法和装置,其中,该签名方法应用于应用软件的开发端,方法包括:解析目标应用软件的APK文件夹,得到多个待签名文件;分别对多个待签名文件进行签名处理,得到每个待签名文件对应的第一摘要值;多个待签名文件对应的第一摘要值形成摘要值组合;对摘要值组合进行再次签名处理,得到第二摘要值;对第二摘要值进行加密和压缩处理,得到目标应用软件的APK签名文件。本发明专利技术对应用软件进行二次签名,签名耗时短,效率较高,同时也提高了应用软件的安全性。

Signature Method, Verification Method and Device of Application Software

The invention provides a signature method, a signature verification method and a device for an application software, in which the signature method is applied to the development end of the application software. The method includes: parsing the APK folder of the target application software, obtaining a plurality of documents to be signed, signing a plurality of documents to be signed, obtaining the first Digest value corresponding to each document to be signed, and multiple documents to be signed. The first digest value of the object forms the digest value combination; the second digest value is obtained by re-signing the digest value combination; the second digest value is encrypted and compressed to obtain the APK signature file of the target application software. The invention carries out the second signature for the application software, which consumes less time and has higher efficiency, and also improves the security of the application software.

【技术实现步骤摘要】
应用软件的签名方法、验签方法和装置
本专利技术涉及软件安全领域,尤其是涉及一种应用软件的签名方法、验签方法和装置。
技术介绍
现有Android应用程序采用自签名的方式对应用软件进行签名,需要对应用软件的所有文件进行消息摘要的计算,耗时较长、效率较低;不需要监管机构的签名认证,攻击者可对应用软件进行反编译,篡改应用软件的源代码生成恶意应用,并使用自生成的数字证书进行签名,从而变为更新版本,发布到互联网中传播,对原始应用开发者的版权造成侵害,对用户财产造成损失、隐私造成安全威胁。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种应用软件的签名方法、验签方法和装置,以提高签名效率,同时提高应用软件的安全性。第一方面,本专利技术实施例提供了一种应用软件的签名方法,该方法应用于应用软件的开发端,方法包括:解析目标应用软件的APK文件夹,得到多个待签名文件;分别对多个待签名文件进行签名处理,得到每个待签名文件对应的第一摘要值;多个待签名文件对应的第一摘要值形成摘要值组合;对摘要值组合进行再次签名处理,得到第二摘要值;对第二摘要值进行加密和压缩处理,得到目标应用软件的APK签名文件。进一步地,上述待签名文件包括:MANIFEST.MF、CERT.SF和CERT.RSA。进一步地,上述分别对多个待签名文件进行签名处理,得到每个待签名文件对应的第一摘要值的步骤,包括:通过MD5算法或SHA1算法,对MANIFEST.MF、CERT.SF和CERT.RSA分别进行哈希计算,得到对应的第一摘要值;上述方法还包括:对MANIFEST.MF、CERT.SF和CERT.RSA的第一摘要值进行组装,得到摘要值组合。进一步地,上述对第二摘要值进行加密和压缩处理,得到目标应用软件的APK签名文件的步骤,包括:通过预设的私钥,对第二摘要值进行加密处理,得到加密文件;将加密文件和证书文件进行压缩处理的,得到目标应用软件的APK签名文件;证书文件包括私钥对应的公钥和签名机构信息。第二方面,本专利技术实施例提供了一种应用软件的验签方法,该方法应用于应用软件的供应端,方法包括:解析目标应用软件的APK签名文件,得到多个加密文件及证书文件;分别对多个加密文件进行解密处理,得到每个加密文件对应的第一摘要值;多个加密文件对应的第一摘要值形成摘要值组合;对摘要值组合进行再次解密处理,得到第二摘要值;通过预设的公钥对证书文件进行解密处理,得到第三摘要值;判断第二摘要值与第三摘要值是否相同,如果是,则验签成功。进一步地,上述应用软件的验签方法还包括:如果验签失败,确定目标应用软件为恶意应用。进一步地,上述加密文件包括:MANIFEST.MF、CERT.SF和CERT.RSA。进一步地,上述分别对多个加密文件进行解密处理,得到每个解密文件对应的第一摘要值的步骤,包括:通过MD5算法或SHA1算法,对MANIFEST.MF、CERT.SF和CERT.RSA分别进行哈希计算,得到对应的第一摘要值;上述方法还包括:对MANIFEST.MF、CERT.SF和CERT.RSA的第一摘要值进行组装,得到摘要值组合。第三方面,本专利技术实施例提供一种应用软件的签名装置,该装置设置于应用软件的开发端,装置包括:第一解析模块,用于解析目标应用软件的APK文件夹,得到多个待签名文件;第一次签名模块,用于分别对多个待签名文件进行签名处理,得到每个待签名文件对应的第一摘要值;多个待签名文件对应的第一摘要值形成摘要值组合;第二次签名模块,用于对摘要值组合进行再次签名处理,得到第二摘要值;加密和压缩模块,用于对第二摘要值进行加密和压缩处理,得到目标应用软件的APK签名文件。第四方面,本专利技术实施例提供了一种应用软件的验签装置,该装置设置于应用软件的供应端,装置包括:第二解析模块,用于解析目标应用软件的APK签名文件,得到多个加密文件及证书文件;第一次解密模块,用于分别对多个加密文件进行解密处理,得到每个加密文件对应的第一摘要值;多个加密文件对应的第一摘要值形成摘要值组合;第二次解密模块,用于对摘要值组合进行第二次解密处理,得到第二摘要值;公钥解密模块,用于通过预设的公钥对证书文件进行解密处理,得到第三摘要值;判别模块,用于判断第二摘要值与第三摘要值是否相同,如果是,则验签成功。本专利技术实施例带来了以下有益效果:本专利技术提供了一种应用软件的签名方法、验签方法和装置,通过解析目标应用软件的APK文件夹,可以得到多个待签名文件;分别对多个待签名文件进行签名处理,得到每个待签名文件对应的第一摘要值;再对多个待签名文件对应的第一摘要值形成的摘要值组合进行再次签名处理,得到第二摘要值;对该第二摘要值进行加密和压缩处理,最终得到目标应用软件的APK签名文件。该方式对应用软件进行二次签名,签名耗时短,效率较高,同时也提高了应用软件的安全性。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种应用软件的签名方法的流程图;图2为本专利技术实施例提供的另一种应用软件的签名方法的流程图;图3为本专利技术实施例提供的一种应用软件签名方法的数据流向示意图;图4为本专利技术实施例提供的一种应用软件的验签方法的流程图;图5为本专利技术实施例提供的一种应用软件验签方法的数据流向示意图;图6为本专利技术实施例提供的一种上述应用软件的签名方法和验签方法的应用场景示意图;图7为本专利技术实施例提供的一种应用软件的签名装置的结构示意图;图8为本专利技术实施例提供的一种应用软件的验签装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。Android应用程序通常需要经过数字签名才能够安装到Android系统中。目前对移动应用的自签名的方式都是在原始APK文件的基础上,通过使用数字签名相关算法进行消息摘要的计算和加密来实现的。这种自签名方式需要对META-INF目录之外的文件进行消息摘要的计算,并将计算结果存储在MANIFEST.MF文件中,然后再对包括MANIFEST.MF文件在内的所有文件进行消息摘要计算及加密,并将加密之后的结果存储于CERT.SF文件中,最后,用CERT.RSA算法存储公钥信息和发布机构信息。近年来,应用商店所维护的移动应用逐年递增,应用总数已达百万级,2016年第一季度累计下载数量已达数十亿次。然而在海量应用的背景下,自签名方法的低效率、耗时长问题便凸显了出来,这种本文档来自技高网...

【技术保护点】
1.一种应用软件的签名方法,其特征在于,所述方法应用于应用软件的开发端,所述方法包括:解析目标应用软件的APK文件夹,得到多个待签名文件;分别对多个所述待签名文件进行签名处理,得到每个所述待签名文件对应的第一摘要值;多个所述待签名文件对应的第一摘要值形成摘要值组合;对所述摘要值组合进行再次签名处理,得到第二摘要值;对所述第二摘要值进行加密和压缩处理,得到目标应用软件的APK签名文件。

【技术特征摘要】
2018.08.10 CN 20181090839681.一种应用软件的签名方法,其特征在于,所述方法应用于应用软件的开发端,所述方法包括:解析目标应用软件的APK文件夹,得到多个待签名文件;分别对多个所述待签名文件进行签名处理,得到每个所述待签名文件对应的第一摘要值;多个所述待签名文件对应的第一摘要值形成摘要值组合;对所述摘要值组合进行再次签名处理,得到第二摘要值;对所述第二摘要值进行加密和压缩处理,得到目标应用软件的APK签名文件。2.根据权利要求1的方法,其特征在于,所述待签名文件包括:MANIFEST.MF、CERT.SF和CERT.RSA。3.根据权利要求2的方法,其特征在于,所述分别对多个所述待签名文件进行签名处理,得到每个所述待签名文件对应的第一摘要值的步骤,包括:通过MD5算法或SHA1算法,对MANIFEST.MF、CERT.SF和CERT.RSA分别进行哈希计算,得到对应的所述第一摘要值;所述方法还包括:对MANIFEST.MF、CERT.SF和CERT.RSA的第一摘要值进行组装,得到摘要值组合。4.根据权利要求2的方法,其特征在于,所述对第二摘要值进行加密和压缩处理,得到目标应用软件的APK签名文件的步骤,包括:通过预设的私钥,对所述第二摘要值进行加密处理,得到加密文件;将所述加密文件和证书文件进行压缩处理的,得到所述目标应用软件的APK签名文件;所述证书文件包括私钥对应的公钥和签名机构信息。5.一种应用软件的验签方法,其特征在于,该方法应用于应用软件的供应端,所述方法包括:解析目标应用软件的APK签名文件,得到多个加密文件及证书文件;分别对多个所述加密文件进行解密处理,得到每个所述加密文件对应的第一摘要值;多个所述加密文件对应的第一摘要值形成摘要值组合;对所述摘要值组合进行再次解密处理,得到第二摘要值;通过预设的公钥对证书文件进行解密处理,...

【专利技术属性】
技术研发人员:郭燕慧余冰涛张淼徐国爱
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1