CN110414190B - 应用安装包的签名方法、相关装置、存储介质及电子设备 - Google Patents
应用安装包的签名方法、相关装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN110414190B CN110414190B CN201910694252.1A CN201910694252A CN110414190B CN 110414190 B CN110414190 B CN 110414190B CN 201910694252 A CN201910694252 A CN 201910694252A CN 110414190 B CN110414190 B CN 110414190B
- Authority
- CN
- China
- Prior art keywords
- installation package
- application installation
- original application
- digital signature
- copyright information
- 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
- 238000009434 installation Methods 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000012795 verification Methods 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 23
- 238000004806 packaging method and process Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 7
- 238000009826 distribution Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种应用安装包的签名方法、装置、存储介质及电子设备,属于网络安全领域。本申请实施例的签名方法包括:获取原始应用安装包和所述原始应用安装包的第一数字签名;其中,所述原始应用安装包携带版权信息;在根据第一公钥验证所述第一数字签名通过且验证所述版权信息正确时,为所述原始应用安装包分配第二私钥;使用第二私钥对所述原始应用安装包进行签名得到第二数字签名;基于所述第二数字签名和所述原始应用安装包打包成标准应用安装包,本申请实施例把应用程序的电子版权与数字签名结合起来,提高应用程序的安全性。
Description
技术领域
本申请涉及安全保护领域,尤其涉及一种应用安装包的签名方法、相关装置、存储介质和电子设备。
背景技术
近年来,随着移动互联网的蓬勃发展,移动终端已成为企业开展网络服务、个人进行网络交流的主要载体,相较于移动互联网的迅猛发展,现在的移动应用APP存在盗版、仿冒和篡改等风险,由于JAVA的解释性运行环境,导致安全性大为降低,为保证自有APP来源可信,为解决移动互联网领域移动APP电子的版权保护与网络安全需求,特别急需一种依托电子版权认证签名的方式,把APP电子版权与安全验证结合起来,从而弥补以前的解决方案的缺陷。
发明内容
本申请实施例提供了的应用安装包的签名方法,可以实现对应用安装包的版权的有效保护,对应用安装包的版权进行有效确权。所述技术方案如下:
第一方面,本申请实施例提供了一种应用安装包的签名方法,所述方法包括:
获取原始应用安装包和原始应用安装包的第一数字签名,原始应用安装包携带版权信息;在根据第一公钥验证第一数字签名通过且验证版权信息正确时,为原始应用安装包分配第二私钥;使用第二私钥对原始应用安装包进行签名得到第二数字签名。
第二方面,本申请实施例提供了一种应用安装包的签名装置,所述应用安装包的签名装置包括:
获取单元,用于获取原始应用安装包和所述原始应用安装包的第一数字签名;其中,所述原始应用安装包携带版权信息;
分配单元,用于在根据第一公钥验证所述第一数字签名通过且验证所述版权信息正确时,为所述原始应用安装包分配第二私钥;
签名单元,用于使用第二私钥对所述原始应用安装包进行签名得到第二数字签名;
打包单元,用于基于所述第二数字签名和所述原始应用安装包打包成标准应用安装包。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在验证第三方为原始应用安装包生成的第一数字签名通过后,且原始应用安装包中的版权信息正确时,为原始应用安装包分配私钥,利用分配的私钥再次对原始应用安装包进行签名,然后基于重新生成的签名和原始应用安装包打包成标准应用安装包。通过对原始应用安装包进行二次签名,然后再打包成标准的应用安全包,避免只使用第三方的数字签名造成的安全性不高的问题,本申请实施例把应用程序的电子版权与数字签名结合起来,提高应用程序的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种版权保护系统的网络架构图;
图2是本申请实施例提供的应用安装包的签名方法的流程示意图;
图3是本申请实施例提供的应用安装包的签名方法的另一流程示意图;
图4是本申请实施例提供的一种装置的结构示意图;
图5是本申请提供的一种装置的另一结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
图1示出了可以应用于本申请的应用安装包的签名方法或应用安装包的处理装置的示例性的版权保护系统100。
如图1所示,版权保护系统100可以包括:开发者终端100、版权服务器101、应用市场服务器102和消费者终端103。开发者终端100和版权服务器101之间通过通信链路进行通信,版权服务器101和应用市场服务器102之间通过通信链路进行通信,应用市场服务器102和消费者终端103之间通过通信链路通信通信。上述的通信链路可以是无线通信链路或有线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(WIreless-FIdelity,Wi-Fi)通信链路或微波通信链路等。版权服务器101和应用市场服务器102之间通过通过有线通信链路进行通信。
其中,开发者终端100和消费者终端103上可以安装有各种通信客户端应用,例如:视频录制应用、视频播放应用、语音交互应用、搜索类应用、及时通信工具、邮箱客户端、社交平台软件等。
其中,开发者终端100和消费者终端103可以是硬件,也可以是软件。当开发者终端101和消费者终端103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等等。当开发者终端100和消费者终端103为软件时,可以是安装上上述所列举的电子设备中。其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
当开发者终端100和消费者终端103为硬件时,其上还可以安装有显示设备和摄像头,显示设备显示可以是各种能实现显示功能的设备,摄像头用于采集视频流;例如:显示设备可以是阴极射线管显示器(Cathode ray tubedisplay,简称CR)、发光二极管显示器(Light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(Liquid crystaldisplay,简称LCD)、等离子显示面板(Plasma displaypanel,简称PDP)等。用户可以利用开发者终端100和消费者终端103上的显示设备,来查看显示的文字、图片、视频等信息。
版权服务器101和应用市场服务器102可以是提供各种服务的服务器,版权服务器101和应用市场服务器102可以是硬件,也可以是软件。当版权服务器101和应用市场服务器102为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当版权服务器101和应用市场服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。其中,版权服务器101和应用市场服务器102可以是物理服务器,也可以虚拟服务器。
应理解,图1中的终端设备、网络和服务器的数目仅是示意性的。根据实现需要,可以是任意数量的终端设备、网络和服务器。
下面将结合附图2-附图5,对本申请实施例提供的应用安装包的签名方法进行详细介绍。其中,本申请实施例中的应用安装包的签名装置可以是图2-图5所示的版权服务器。
请参见图2,为本申请实施例提供了一种应用安装包的签名方法的流程示意图。如图2所示,本申请实施例的所述方法可以包括以下步骤:
S201、获取原始应用安装包和原始应用安装包的第一数字签名。
其中,版权服务器可以从开发者终端获取原始应用安装包以及原始应用安装包的第一数字签名,也可以从应用市场服务器中获取原始应用安装包以及原始应用安装包的第一数字签名。原始应用安装包预先配置或预存储有数字证书,该数字证书是第三方的CA中心发放的,第一数字签名是基于第一私钥生成的,第一私钥和第一私钥关联的第一公钥是公开的,
S202、在根据第一公钥验证第一数字签名通过且验证版权信息正确时,为原始应用安装包分配第二私钥。
其中,版权服务器可以首先验证原始应用安装包的第一数字签名是否正确,在第一数字签名正确的情况下,验证原始应用安装包中的版权信息是否正确,然后为原始应用安装包生成第二私钥和第二公钥。
在一个或多个实施例中,版权服务器验证第一数字签名是否正确的过程包括:
版权服务器使用预先的消息摘要算法对原始应用安装包进行处理得到第一消息摘要,然后版权服务器获取第一公钥对原始消息中携带的第一数字签名进行解密得到第二消息摘要,比较第一消息摘要和第二消息摘要是否相同,若相同,则验证第一数字签名是正确的。
在一个或多个实施例中,为原始应用安装包生成第二私钥和第二公钥的方法可以包括:
版权服务器根据预设的随机算法生成第二公钥,接收输入的用户密码,基于用户密码和第二公钥进行哈希运算得到第二私钥。
例如:版权服务器根据预设的随机算法生成的第二公钥为public-key2,接收输入的用户密码为code,则第二私钥private-key2=hash(code,public-key2)。
在一个或多个实施例中,为原始应用安装包生成第二私钥和第二公钥的方法包括:
版权服务器接收输入的用户密码,基于哈希算法对用户密码进行哈希运算得到第二私钥,对第二私钥进行哈希运算后得到第二公钥。
例如:版权服务器接收输入的用户密码为code,则第二私钥为private-key2=hash1(code),第二公钥为public-key2=hash2(private-key2)。
S203、使用第二私钥对原始应用安装包进行签名得到第二数字签名。
在一个或多个实施例中,生成第二数字签名的方法包括:
版权服务器根据预设的消息摘要算法对原始应用安装包进行运算后得到消息摘要,使用第二私钥对消息摘要进行加密得到第二数字签名,将第二数字签名添加到原始应用安装包的包头中。
S204、基于第二数字签名和原始应用安装包打包成标准应用安装包。
在一个或多个实施例中,在安卓操作系统中,打包的过程包括:打包资源文件,生成R.java文件,处理AIDL(Android Interface Definition Language,安卓接口定义语言)文件,生成对应的.java文件,编译Java文件,生成对应的.class文件;把.class文件转化成DavikVM支持的.dex文件;将第二数字签名作为.apk文件的数字签名;对签名后的.apk文件进行对齐处理,将第二数字签名添加到对齐处理后的.apk文件中的包头中得到标准应用安装包。
本申请实施例的方案在执行时,在验证第三方为原始应用安装包生成的第一数字签名通过后,且原始应用安装包中的版权信息正确时,为原始应用安装包分配私钥,利用分配的私钥再次对原始应用安装包进行签名,然后基于重新生成的签名和原始应用安装包打包成标准应用安装包。通过对原始应用安装包进行二次签名,然后再打包成标准的应用安全包,避免只使用第三方的数字签名造成的安全性不高的问题,本申请实施例把应用程序的电子版权与数字签名结合起来,提高应用程序的安全性。
请参见图3,为本申请实施例提供了一种应用安装包的签名方法的流程示意图,应用安装包的签名方法可以包括以下步骤:
S301、获取原始应用安装包和原始应用安装包的第一数字签名。
其中,原始应用安装包是完成应用程序开发后生成的初始的应用安装包,原始应用程序的安装包根据操作系统的不同,可以具有不同的格式。例如:在安卓操作系统中,原始应用安装包的格式为APK;在评估操作系统中,原始应用安装包的格式为IPA;在微软的视窗操作系统中,原始应用安装包的格式为exe。原始应用安装包关联有一个第一数字签名,第一数字签名可以携带在原始应用安装包中,例如:第一数字签名位于原始应用安装包的包头中。第一数字签名也可以独立于原始应用安装包,和原始应用安装包一起传输。
在一个或多个实施例中,第一数字签名是对原始应用安装包进行签名后得到的,第三方服务器根据开发者终端的请求,为原始应用安装包分配数字证书,数字证书包括第一公钥,第三方服务器将数字证书发送给开发者终端,第三方服务器区别于本申请实施例的版权服务器,开发者终端接收到数字证书,解析数字证书中携带的第一公钥,根据第一公钥生成第一私钥,然后开发者终端根据预设的消息摘要算法对原始应用安装包进行处理得到消息摘要,利用第一私钥对消息摘要进行加密得到第一数字签名,然后开发者终端利用第一公钥对原始应用安装包和第一数字签名进行加密,将加密后的密文发送给版权服务器,版权服务器利用第一私钥对密文进行解密得到应用安装包和第一数字签名。
S302、基于消息摘要算法对原始应用安装包进行运算得到第一消息摘要。
其中,版权服务器基于预设的消息摘要算法对原始应用安装包进行运算得到第一消息摘要,原始应用安装包经过消息摘要算法的处理后得到一个固定长度的字符串,该字符串为第一消息摘要
S303、使用第一公钥对第一数字签名进行解密得到第二消息摘要。
其中,第一私钥和第一公钥为一个密钥对,第一私钥可以是基于输入的用户密码和第一公钥生成的,第一公钥是第三方服务器分配的,第三方服务器采用公开的方式发布包括第一公钥的数字证书。版权服务器可以从第三方服务器下载该数字证书,然后解析数字证书中存在的第一公钥,版权服务器利用第一公钥对第一数字签名进行加密得到第二消息摘要。
S304、判断第一消息摘要和第二消息摘要是否相同。
其中,版权服务器判断第一消息摘要和第二消息摘要中的字符串是否相同,若相同,执行S306;若不相同,执行S305。
S305、生成错误提示信息。错误提示音用于表示原始应用安装包中的第一数字签名验证失败。
S306、解析原始应用安装包中携带的应用程序标识。
其中,版权服务器在确定第一消息摘要和第二消息摘要中的字符串相同时,确定来自开发者的原始应用安装包是正确的,即原始应用安装包未发生篡改。应用安装包包括包头和包体,应用安装包的包头中携带有应用程序标识,应用程序标识用于唯一标识该应用程序的标识,不同的应用程序具有不同的应用程序标识。
S307、根据预设的映射关系查询与应用程序标识关联的注册版权信息。
其中,版权服务器上预先存储有标识应用程序标识和注册版权信息的映射关系,开发者终端在完成原始应用程序的开发之后,在版权服务器上进行登记版权信息,版权信息包括但不限于:开发者名称、开发者标识、应用程序类型、版权标识好和版权有效期中的一种或多种。版权服务器存储完成登记的应用安装包的版权信息和该应用安装包的应用程序标识。存储在版权服务器上的版权信息本申请实施例称为“注册版权信息”。版权服务器根据S305中解析得到的应用程序标识在映射关系中查询关联的注册版权信息。
S308、判断原始应用安装包中携带的版权信息和注册版权信息是否相同。
其中,原始应用安装包的包头中还携带有版权信息,版权信息包括开发者名称、开发者标识、版权标识版权有效期中的一种或多种。版权服务器判断原始应用安装包中携带的版权信息和预存储的注册版权信息是否相同,若相同,执行S310;若不相同,执行S309。
S309、生成错误提示信息。错误提示信息表示原始应用安装中的版权信息验证不通过。
S310、为原始应用程序安装包生成第二公钥和第二私钥。
其中,在验证原始应用安装包的第一数字签名和版权信息正确后,版权服务器为应用程序安装包生成第二公钥和第二私钥。
在一个或多个实施例中,为原始应用安装包生成第二私钥和第二公钥的方法包括:
接收输入的用户密码,基于第一哈希算法对用户密码进行哈希运算得到第二私钥,然后在基于第二哈希算法对第二私钥进行哈希运算得到第二公钥。
例如:版权服务器接收输入的用户密码为code,则第二私钥private-key2=hash1(code),hash1表示第一哈希算法,第二公钥public-key2=hash2(private-key2),hash2为第二哈希算法。
在一个或多个实施例中,为原始应用安装包生成第二私钥和第二公钥的方法包括:
根据预设的随机算法生成第二公钥,版权服务器接收输入的用户密码,基于哈希算法对第二公钥和用户密码进行哈希运算后得到第二私钥。
S311、根据第二私钥对原始应用安装包签名得到第二数字签名。
其中,版权服务器根据预设的消息摘要算法对原始应用安装包进行处理得到消息摘要,版权服务器根据生成的第二私钥对消息摘要进行加密得到第二数字签名。
S312、对原始应用安装包进行加固处理。
在一个或多个实施例中,在安卓操作系统中,打包的过程包括:打包资源文件,生成R.java文件,处理AIDL(Android Interface Definition Language,安卓接口定义语言)文件,生成对应的.java文件,编译Java文件,生成对应的.class文件;把.class文件转化成DavikVM支持的.dex文件;将第二数字签名作为.apk文件的数字签名;对签名后的.apk文件进行对齐处理,将第二数字签名添加到对齐处理后的.apk文件中的包头中得到标准应用安装包。
S313、基于第二数字签名和加固处理后的原始应用安装包打包成标准应用安装包。
其中,版权服务器可以将第二数字签名添加在标准应用安装包中的包头中。
在一个或多个实施例中,版权服务器可以使用第二公钥对第二私钥进行加密,然后将加密后的密文添加到标准应用安装包的包头中,以实现第二私钥的安全传输。
实施本申请的实施例,在验证第三方为原始应用安装包生成的第一数字签名通过后,且原始应用安装包中的版权信息正确时,为原始应用安装包分配私钥,利用分配的私钥再次对原始应用安装包进行签名,然后基于重新生成的签名和原始应用安装包打包成标准应用安装包。通过对原始应用安装包进行二次签名,然后再打包成标准的应用安全包,避免只使用第三方的数字签名造成的安全性不高的问题,本申请实施例把应用程序的电子版权与数字签名结合起来,提高应用程序的安全性。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图4,其示出了本申请一个示例性实施例提供的应用安装包的签名装置的结构示意图。以下简称装置4,装置4可以通过软件、硬件或者两者的结合实现成为版权服务器的全部或一部分。装置4包括获取单元401、分配单元402、签名单元403和打包单元404。
获取单元401,用于获取原始应用安装包和所述原始应用安装包的第一数字签名;其中,所述原始应用安装包携带版权信息;
分配单元402,用于在根据第一公钥验证所述第一数字签名通过且验证所述版权信息正确时,为所述原始应用安装包分配第二私钥;
签名单元403,用于使用第二私钥对所述原始应用安装包进行签名得到第二数字签名;
打包单元404,用于基于所述第二数字签名和所述原始应用安装包打包成标准应用安装包。
在一个或多个实施例中,装置4还包括:
确定单元,用于基于预设的消息摘要算法对所述原始应用安装包进行处理得到第一消息摘要;
使用所述第一公钥对所述第一数字签名进行解密得到第二消息摘要;
确定所述第一消息摘要和所述第二消息摘要相同。
在一个或多个实施例中,所述原始应用安装包还携带应用程序标识,其中,确定单元还用于:
解析所述原始应用安装包中携带的应用程序标识;
根据预设的映射关系查询与所述应用程序标识关联的注册版权信息;
在注册版权信息和所述原始应用安装包中携带的版权信息相同时,确定原始应用安装包中的版权信息是正确的。
在一个或多个实施例中,分配单元402具体用于:
根据预设的随机算法生成第二公钥;
接收输入的用户密码;
基于哈希算法对所述用户密码和所述第二公钥进行哈希运算得到第二私钥。
在一个或多个实施例中,分配单元402具体用于:
接收输入的用户密码;
基于哈希算法对用户密码进行哈希运算得到第二私钥,以及基于所述哈希算法对所述第二私钥进行哈希运算得到第二公钥。
在一个或多个实施例中,打包单元404具体用于:
提取所述原始应用安装包的可执行文件;
解析所述可执行文件,并在解析后的可执行文件中添加安全代码;
将插入所述安全代码后的可执行文件重新打包;
将打包后的应用程序安装包和所述第二数字签名生成标准应用安装包。
在一个或多个实施例中,所述第二数字签名位于所述标准应用安装包的包头中。
需要说明的是,上述实施例提供的装置4在执行应用安装包的签名方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用安装包的签名方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请的装置4在验证第三方为原始应用安装包生成的第一数字签名通过后,且原始应用安装包中的版权信息正确时,为原始应用安装包分配私钥,利用分配的私钥再次对原始应用安装包进行签名,然后基于重新生成的签名和原始应用安装包打包成标准应用安装包。通过对原始应用安装包进行二次签名,然后再打包成标准的应用安全包,避免只使用第三方的数字签名造成的安全性不高的问题,本申请实施例把应用程序的电子版权与数字签名结合起来,提高应用程序的安全性。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图2-图3所示实施例的方法步骤,具体执行过程可以参见图2-图3所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用安装包的签名方法。
图5为本申请实施例提供的一种应用安装包的签名装置的结构示意图,以下简称装置5,装置5可以集成于前述的版权服务器,如图5所示,该装置包括:存储器502、处理器501、输入装置503、输出装置504和通信接口。
存储器502可以是独立的物理单元,与处理器501、输入装置503和输出装置504可以通过总线连接。存储器502、处理器501、输入装置503和输出装置504也可以集成在一起,通过硬件实现等。
存储器502用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器501调用该程序,执行以下操作:
获取原始应用安装包和所述原始应用安装包的第一数字签名;其中,所述原始应用安装包携带版权信息;
在根据第一公钥验证所述第一数字签名通过且验证所述版权信息正确时,为所述原始应用安装包分配第二私钥;
使用第二私钥对所述原始应用安装包进行签名得到第二数字签名;
基于所述第二数字签名和所述原始应用安装包打包成标准应用安装包。
在一个或多个实施例中,处理器501还用于执行:
基于预设的消息摘要算法对所述原始应用安装包进行处理得到第一消息摘要;
使用所述第一公钥对所述第一数字签名进行解密得到第二消息摘要;
确定所述第一消息摘要和所述第二消息摘要相同。
在一个或多个实施例中,所述原始应用安装包还携带应用程序标识,其中,处理器501还用于执行:
解析所述原始应用安装包中携带的应用程序标识;
根据预设的映射关系查询与所述应用程序标识关联的注册版权信息;
在注册版权信息和所述原始应用安装包中携带的版权信息相同时,确定原始应用安装包中的版权信息是正确的。
在一个或多个实施例中,处理器501执行所述为所述原始应用安装包分配第二私钥,包括:
根据预设的随机算法生成第二公钥;
接收输入的用户密码;
基于哈希算法对所述用户密码和所述第二公钥进行哈希运算得到第二私钥。
在一个或多个实施例中,处理器501执行所述为所述原始应用安装包分配第二私钥,包括:
接收输入的用户密码;
基于哈希算法对用户密码进行哈希运算得到第二私钥,以及基于所述哈希算法对所述第二私钥进行哈希运算得到第二公钥。
在一个或多个实施例中,处理器501执行所述基于所述第二数字签名和所述原始应用安装包打包成标准应用安装包,包括:
提取所述原始应用安装包的可执行文件;
解析所述可执行文件,并在解析后的可执行文件中添加安全代码;
将插入所述安全代码后的可执行文件重新打包;
将打包后的应用程序安装包和所述第二数字签名生成标准应用安装包。
输入装置502包括但不限于键盘、鼠标、触摸面板、摄像头和麦克风;输出装置包括但限于显示屏。
通信接口用于收发各种类型的消息,通信接口包括但不限于无线接口或有线接口。
可选地,当上述实施例的分布式任务调度方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器可以是中央处理器(central processing unit,CPU),网络处理器(networkprocessor,NP)或者CPU和NP的组合。
处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器可以包括易失性存储器(volatile memory),例如存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flashmemory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序用于执行上述实施例提供的应用安装包的签名方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的应用安装包的签名方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (9)
1.一种应用安装包的签名方法,其特征在于,所述方法包括:
获取原始应用安装包和所述原始应用安装包的第一数字签名;其中,所述原始应用安装包携带版权信息;
在根据第一公钥验证所述第一数字签名通过且验证所述版权信息正确时,为所述原始应用安装包分配第二私钥;
使用第二私钥对所述原始应用安装包进行签名得到第二数字签名;
基于所述第二数字签名和所述原始应用安装包打包成标准应用安装包;
所述原始应用安装包还携带应用程序标识;
所述在根据第一公钥验证所述第一数字签名通过且验证所述版权信息正确时之前,还包括:
解析所述原始应用安装包中携带的应用程序标识;
根据预设的映射关系查询与所述应用程序标识关联的注册版权信息;
在注册版权信息和所述原始应用安装包中携带的版权信息相同时,确定原始应用安装包中的版权信息是正确的。
2.根据权利要求1所述的方法,其特征在于,所述在根据第一公钥验证所述第一数字签名通过且验证所述版权信息正确时之前,还包括:
基于预设的消息摘要算法对所述原始应用安装包进行处理得到第一消息摘要;
使用所述第一公钥对所述第一数字签名进行解密得到第二消息摘要;
确定所述第一消息摘要和所述第二消息摘要相同。
3.根据权利要求1至2任意一项所述的方法,其特征在于,所述为所述原始应用安装包分配第二私钥,包括:
根据预设的随机算法生成第二公钥;
接收输入的用户密码;
基于哈希算法对所述用户密码和所述第二公钥进行哈希运算得到第二私钥。
4.根据权利要求1至2任意一项所述的方法,其特征在于,所述为所述原始应用安装包分配第二私钥,包括:
接收输入的用户密码;
基于哈希算法对用户密码进行哈希运算得到第二私钥,以及基于所述哈希算法对所述第二私钥进行哈希运算得到第二公钥。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第二数字签名和所述原始应用安装包打包成标准应用安装包,包括:
提取所述原始应用安装包的可执行文件;
解析所述可执行文件,并在解析后的可执行文件中添加安全代码;
将插入所述安全代码后的可执行文件重新打包;
将打包后的应用程序安装包和所述第二数字签名生成标准应用安装包。
6.根据权利要求5所述的方法,其特征在于,所述第二数字签名位于所述标准应用安装包的包头中。
7.一种应用安装包的签名装置,其特征在于,包括:
获取单元,用于获取原始应用安装包和所述原始应用安装包的第一数字签名;其中,所述原始应用安装包携带版权信息;
分配单元,用于在根据第一公钥验证所述第一数字签名通过且验证所述版权信息正确时,为所述原始应用安装包分配第二私钥;
签名单元,用于使用第二私钥对所述原始应用安装包进行签名得到第二数字签名;
打包单元,用于基于所述第二数字签名和所述原始应用安装包打包成标准应用安装包;
确定单元,用于解析所述原始应用安装包中携带的应用程序标识;根据预设的映射关系查询与所述应用程序标识关联的注册版权信息;在注册版权信息和所述原始应用安装包中携带的版权信息相同时,确定原始应用安装包中的版权信息是正确的。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~6任意一项的方法步骤。
9.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~6任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910694252.1A CN110414190B (zh) | 2019-07-30 | 2019-07-30 | 应用安装包的签名方法、相关装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910694252.1A CN110414190B (zh) | 2019-07-30 | 2019-07-30 | 应用安装包的签名方法、相关装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110414190A CN110414190A (zh) | 2019-11-05 |
CN110414190B true CN110414190B (zh) | 2023-06-27 |
Family
ID=68364283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910694252.1A Active CN110414190B (zh) | 2019-07-30 | 2019-07-30 | 应用安装包的签名方法、相关装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110414190B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110891061B (zh) * | 2019-11-26 | 2021-08-06 | 中国银联股份有限公司 | 数据的加解密方法、装置、存储介质及加密文件 |
CN111708990A (zh) * | 2020-05-15 | 2020-09-25 | 支付宝(杭州)信息技术有限公司 | 小程序启动方法、签名方法、装置、服务器及介质 |
CN111814136A (zh) * | 2020-06-30 | 2020-10-23 | 中国信息通信研究院 | 安卓应用程序签名及验签方法、装置、以及签名验签系统 |
CN112115425B (zh) * | 2020-09-21 | 2024-05-24 | 北京指掌易科技有限公司 | 软件授权许可方法、装置及电子设备 |
CN114285581B (zh) * | 2021-12-07 | 2024-05-14 | 西安广和通无线通信有限公司 | 应用管理方法及相关产品 |
CN117077090B (zh) * | 2023-10-16 | 2024-01-23 | 武汉星纪魅族科技有限公司 | 应用签名方法、装置、设备及存储介质 |
CN117335988B (zh) * | 2023-11-30 | 2024-03-12 | 中国信息通信研究院 | App的电子标识生成、标注、安全校验方法及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015161682A1 (zh) * | 2014-04-23 | 2015-10-29 | 福建联迪商用设备有限公司 | 一种多方授权的apk签名方法及系统 |
CN108334753A (zh) * | 2018-01-04 | 2018-07-27 | 中国银行股份有限公司 | 盗版应用验证方法和分布式服务器节点 |
-
2019
- 2019-07-30 CN CN201910694252.1A patent/CN110414190B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015161682A1 (zh) * | 2014-04-23 | 2015-10-29 | 福建联迪商用设备有限公司 | 一种多方授权的apk签名方法及系统 |
CN108334753A (zh) * | 2018-01-04 | 2018-07-27 | 中国银行股份有限公司 | 盗版应用验证方法和分布式服务器节点 |
Non-Patent Citations (2)
Title |
---|
基于数字证书的自有APP签名保护方案;邱勤等;《电信工程技术与标准化》;20161230(第12期);8-11 * |
移动智能终端应用程序第三方数字签名技术研究;逄淑宁;《电信网技术》;20170228(第02期);22-26 * |
Also Published As
Publication number | Publication date |
---|---|
CN110414190A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414190B (zh) | 应用安装包的签名方法、相关装置、存储介质及电子设备 | |
CN110401677B (zh) | 数字版权密钥的获取方法、装置、存储介质及电子设备 | |
US8417640B2 (en) | Secure license key method and system | |
CN102024127A (zh) | 应用软件控制平台、使用者终端、分发系统及方法 | |
CN108923925B (zh) | 应用于区块链的数据存储方法和装置 | |
CN112422287B (zh) | 基于密码学的多层级角色权限控制方法和装置 | |
EP1785901B1 (en) | Secure License Key Method and System | |
CN113055182B (zh) | 认证方法及系统、终端、服务器、计算机系统和介质 | |
CN109460247B (zh) | 软件包升级方法、软件客户端、存储介质及装置 | |
CN113610526A (zh) | 一种数据信任方法、装置、电子设备及存储介质 | |
CN111030827A (zh) | 信息交互方法、装置、电子设备、及存储介质 | |
CN111324912B (zh) | 文件校验方法、系统及计算机可读存储介质 | |
JP2005100347A (ja) | プログラム製作装置 | |
CN110414269B (zh) | 应用安装包的处理方法、相关装置、存储介质及系统 | |
CN113282951B (zh) | 一种应用程序的安全校验方法、装置及设备 | |
CN115296807B (zh) | 用于预防工控网络病毒的密钥生成方法、装置、设备 | |
CN114172923B (zh) | 数据传输方法、通信系统及通信装置 | |
CN116361833A (zh) | 校验方法、装置及终端设备 | |
CN112994882B (zh) | 基于区块链的鉴权方法、装置、介质及设备 | |
WO2022073336A1 (zh) | 安全支付方法、装置、电子设备及存储介质 | |
CN114117388A (zh) | 设备注册方法、设备注册装置、电子设备以及存储介质 | |
CN112819469A (zh) | 支付方法及系统、终端、服务器、计算机系统和介质 | |
CN113723897A (zh) | 基于区块链的oa审批方法、装置、设备及存储介质 | |
CN113987469B (zh) | 应用于车机系统的进程保护方法、装置、电子设备 | |
CN117850846B (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 |