安装包签名方法及装置与流程

文档序号:11929695阅读:1296来源:国知局
安装包签名方法及装置与流程

本发明涉及信息技术领域,特别是涉及一种安装包签名方法及装置。



背景技术:

在移动终端操作系统中,软件安装包需要经过签名才能被系统识别安装。通过对软件安装包签名,能够保证信息传输的完整性、发送者的身份认证,防止交易中的抵赖行为发生。签名技术是指将文件的摘要信息用发送者的私钥加密,然后与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要信息,然后用哈希函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此签名能否验证信息的完整性。

目前,在对安装包进行签名时,通常直接对安装包中文件生成一次信息摘要,然后对安装包进行签名。然而,若对大量安装包进行签名,针对安装包中的文件生成一次信息摘要,会造成对大量重复文件重复生成信息摘要,造成生成信息摘要消费时间较多,从而导致安装包签名的时间消耗较多,进而导致安装包签名的效率较低。



技术实现要素:

有鉴于此,本发明提供一种安装包的签名方法及装置。主要目的在于能够提升安装包签名的效率。

依据本发明一个方面,提供了一种安装包的签名方法,包括:

加载待签名安装包;

确定所述待签名安装包中的文件是否已进行过信息摘要处理;

若确定已进行过信息摘要处理,则从所述安装包中获取信息摘要文件,所述信息摘要文件用于记录所述文件的信息摘要;

对所述信息摘要文件进行签名处理,得到签名文件;

将所述签名文件添加到所述待签名安装包中完成签名。

优选地,所述对所述信息摘要文件进行签名处理,得到签名文件包括:

加载密钥文件,所述密钥文件用于保存签名所需的私钥;

根据所述私钥和加密算法对所述信息摘要文件进行加密签名,得到签名文件。

优选地,所述根据所述私钥和加密算法对所述信息摘要文件进行加密签名,得到签名文件包括:

根据所述私钥和非对称加密算法对所述信息摘要文件进行加密签名,得到签名文件。

进一步地,所述确定所述待签名安装包中的文件是否已进行过信息摘要处理之后,所述方法还包括:

若确定未进行过信息摘要处理,则从所述待签名安装包中获取文件,并对所述文件进行信息摘要处理,生成信息摘要文件;

将所述信息摘要文件添加到所述待签名安装包中。

优选地,对所述文件进行信息摘要处理,生成信息摘要文件包括:

通过安全散列SHA-1信息摘要算法对所述文件进行信息摘要处理,生成信息摘要文件。

优选地,所述信息摘要文件为META-INF/MANIFEST.MF文件。

依据本发明另一个方面,提供了一种安装包的签名装置,包括:

加载单元,用于加载待签名安装包;

确定单元,用于确定所述加载单元加载的待签名安装包中的文件是否已进行过信息摘要处理;

获取单元,用于若所述确定单元确定已进行过信息摘要处理,则从所述安装包中获取信息摘要文件,所述信息摘要文件用于记录所述文件的信息摘要;

处理单元,用于对所述获取单元获取的信息摘要文件进行签名处理,得到签名文件;

签名单元,用于通过所述处理单元得到的签名文件添加到所述待签名安装包中完成签名。

优选地,所述处理单元包括:

加载模块,用于加载密钥文件,所述密钥文件用于保存签名所需的私钥;

加密模块,用于根据所述加载模块加载的私钥和加密算法对所述信息摘要文件进行加密签名,得到签名文件。

优选地,所述加密模块,具体用于根据所述私钥和非对称加密算法对所述信息摘要文件进行加密签名,得到签名文件。

进一步地,所述装置还包括:添加单元,

所述获取单元,还用于若确定未进行过信息摘要处理,则从所述待签名安装包中获取文件;

所述处理单元,还用于对所述获取单元获取的文件进行信息摘要处理,生成信息摘要文件;

所述添加单元,用于将所述处理单元处理后生成的信息摘要文件添加到所述待签名安装包中。

优选地,所述处理单元,具体用于通过安全散列SHA-1信息摘要算法对所述文件进行信息摘要处理,生成信息摘要文件。

优选地,所述信息摘要文件为META-INF/MANIFEST.MF文件。

本发明提供了一种安装包的签名方法及装置。与目前在进行安装包进行签名时,通常直接对安装包中文件生成一次信息摘要,然后对安装包进行签名相比,本发明通过在确定待签名安装包中的文件已进行过信息摘要处理时,直接对从所述安装包中的信息摘要文件进行签名处理,避免了对重复文件重复生成信息摘要,节省了生成信息摘要所消耗的时间,从而缩短了安装包签名所消耗的整体时间,进而提升了安装包签名的效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种安装包的签名方法流程图;

图2示出了本发明实施例提供的另一种安装包的签名方法流程图;

图3示出了本发明实施例提供的一种安装包的签名装置结构示意图;

图4示出了本发明实施例提供的另一种安装包的签名装置结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供了一种安装包的签名方法,如图1所示,所述方法包括:

101、加载待签名安装包。

一般来说在操作系统中,任何应用的安装包在安装时都需要拥有签名才能被系统识别安装,通过签名可以确保信息传输的完整性。通常情况下,为了保证信息传输完整性、判断信息传输过程中是否被篡改,应用程序的安装包一般都会添加一个签名。

因此,在本实施例中,若要对待签名的安装包进行签名,则需要首先进行本步骤的操作,即对待签名的安装包进行加载,然后再进行其他的后续操作。

102、确定所述待签名安装包中的文件是否已进行过信息摘要处理。

通常情况下,在安装包中会存在一个信息摘要文件,所述信息摘要文件主要是用来作为记录安装包中信息摘要的文件。其中,信息摘要主要是用来介绍和表征安装包内每一个文件具体信息的数据,通常意义上的信息摘要处理可以理解为对安装包内的全部文件的具体信息进行记录的行为。

在本发明实施例中,由于需要对待签名的文件进行签名,而签名文件的生成过程中,需要通过安装包中的信息摘要文件进行。因此,在本发明实施例中需要进行判断当前待签名安装包内的文件是否进行过信息摘要处理的步骤。

103、若确定已进行过信息摘要处理,则从所述安装包中获取信息摘要文件。

其中,所述信息摘要文件用于记录所述文件的信息摘要。

如步骤102中所述,信息摘要文件主要用于记录文件的信息摘要。因此在确定所述安装包进行过信息摘要处理后,可以从其搜索出对应的信息摘要文件,并获取所述信息摘要文件。

例如,所述待签名的安装包可以为安卓安装包(Android Package,APK)。其中,所述APK的文件格式和签名过的jar的文件格式是一致的。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。若所述待签名的安装包为APK安装包时,则在本步骤中,确定已进行了信息摘要处理后,获取的信息摘要文件可以为META-INF/MANIFEST.MF文件和META-INF/CERT.SF文件。

104、对所述信息摘要文件进行签名处理,得到签名文件。

对于本发明实例,可以通过私钥和加密算法对所述信息摘要文件进行加密签名,得到签名文件。所述加密算法可以根据用户需求进行获取,本发明实施例不做限定。

例如,当所述待签名安装包为APK安装包时,所述信息摘要文件可以为META-INF/MANIFEST.MF文件,通过私钥对META-INF/MANIFEST.MF文件进行签名处理,可以得到CERT.RSA文件,所述CERT.RSA文件即为签名文件。

105、将所述签名文件添加到所述待签名安装包中完成签名。

如步骤101中所述,由于安装包在安装的过程中需要系统对安装包的签名进行确认,因此,在步骤104中得到签名文件后,需要通过签名文件对待签名安装包进行签名以确保安装包能够被系统识别并安装。

例如,在生成的签名文件为CERT.RSA文件时,查找与之对应的APK安装包,并通过CERT.RSA文件对相对应的APK安装包进行签名。

本发明实施例提供的一种安装包的签名方法。与目前在进行安装包进行签名时,通常直接对安装包中文件生成一次信息摘要,然后对安装包进行签名相比,本发明通过在确定待签名安装包中的文件已进行过信息摘要处理时,直接对从所述安装包中的信息摘要文件进行签名处理,避免了对重复文件重复生成信息摘要,节省了生成信息摘要所消耗的时间,从而缩短了安装包签名所消耗的整体时间,进而提升了安装包签名的效率。

本发明实施例提供了另一种安装包的签名方法,如图2所示,所述方法包括:

201、加载待签名安装包。

202、确定所述待签名安装包中的文件是否已进行过信息摘要处理。若是,则执行步骤203;若否,则执行步骤206。

目前,在任何一款的安装包中,都会有一个信息摘要文件,其中信息摘要文件为记录信息摘要的文件。而信息摘要可以理解为对安装包内全部文件进行简要介绍的表述性文件。通过信息摘要可以了解当前的安装包中所包含的是有什么文件以及文件的相关用途。并且安装包中的签名文件往往由信息摘要文件进行一定的操作和处理得到的。

因此,若想对待签名安装包进行签名,则首先需要生成签名文件。若要生成签名文件则需要先获得信息摘要文件。故此在本步骤中,需对待签名安装包进行检测,判断所述安装包内是否经过信息摘要处理。

203、从所述安装包中获取信息摘要文件,所述信息摘要文件用于记录所述文件的信息摘要。

当确定了当前的安装包已进行过摘要处理,则需要将所述安装包进行查询。当查询到所述安装包的信息摘要文件后进行获取。

其中,所述信息摘要文件如同步骤202中所述,信息摘要文件可以做为对安装包内各个文件的介绍文件和生成签名文件的必要文件。

例如,当所述待签名安装包为APK安装包时,由于该类安装包的信息摘要文件一般保存在META-INF/MANIFEST.MF文件中,因此在本步骤中需要获取的信息摘要文件则为META-INF/MANIFEST.MF和META-INF/CERT.SF文件。所述MANIFEST.MF文件可以如下所示:

所述CERT.SF文件可以如下所示:

204、对信息摘要文件进行签名处理,得到签名文件。

对于本发明实施例,步骤204具体可以包括:加载密钥文件,所述密钥文件用于保存签名所需的私钥;根据所述私钥和加密算法对所述信息摘要文件进行加密签名,得到签名文件。其中,私钥为数字签名领域中常见的一种加密方式,对应的还有公钥。公钥与私钥往往成对出现。前者私钥通常为信息的发送者或创建者用于加密所使用的。后者公钥通常为信息的接收者用于解密所使用。

需要说明的是,所述根据所述私钥和加密算法对所述信息摘要文件进行加密签名,得到签名文件的步骤具体可以为:根据所述私钥和非对称加密算法对所述信息摘要文件进行加密签名,得到签名文件。其中,所述非对称加密算法可以为RSA算法。该算法由由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法是一种常用的非对称加密算法,常用于加密和数字签名。

例如,若待签名安装包为APK安装包时,所述信息摘要文件则为META-INF/MANIFEST.MF文件,则根据私钥和RSA非对称加密算法,可以得到CERT.RSA文件,此CERT.RSA文件则为签名文件。需要说明的是,所述非对称加密算法和私钥可以根据需要进行选取,在此不做具体的限定。

205、通过所述签名文件对所述待签名安装包进行签名。

例如,若待签名安装包为APK安装包,根据步骤204生成的签名文件为CERT.RSA文件后。根据本步骤的方法,可以将当前生成的CERT.RSA添加到对应的待签名APK安装包中。完成该步骤后,即完成了对待签名安装包进行签名的操作。

206、从所述待签名安装包中获取文件,并对所述文件进行信息摘要处理,生成信息摘要文件。

其中,所述对所述文件进行信息摘要处理,生成信息摘要文件,具体可以通过安全散列SHA-1信息摘要算法对所述文件进行信息摘要处理,生成信息摘要文件。

因此,本步骤具体的可以为:在确定了待签名安装包中为进行摘要处理后,则对所述安装包中的全部文件进行获取,并通过SHA-1摘要算法,对当前获取的安装包全部文件进行摘要处理,并生成对应的信息摘要文件。

207、将所述信息摘文件添加到所述待签名安装包中。

在生成了所述信息摘要文件后,如前述步骤所述,由于信息摘要文件是生成对应签名文件的必要文件,因此需要将当前生成的信息摘要文件添加到对应的待签名安装包中,用以后续的相关操作。

本发明提供了另一种安装包的签名方法。与目前在进行安装包进行签名时,通常直接对安装包中文件生成一次信息摘要,然后对安装包进行签名相比,本发明通过在确定待签名安装包中的文件已进行过信息摘要处理时,直接对从所述安装包中的信息摘要文件进行签名处理,避免了对重复文件重复生成信息摘要,节省了生成信息摘要所消耗的时间,从而缩短了安装包签名所消耗的整体时间,进而提升了安装包签名的效率。并且,当确定了待签名安装包没有进行信息摘要处理时,从待签名安装包中获取文件,并通过SHA-1信息摘要算法对文件进行摘要处理,将得到的摘要文件添加到所述待签名安装包中,进一步完善了当前安装包的签名方法。并进一步地,通过加载密钥文件来获得对应的私钥,并用过私钥和非对称加密算法对摘要文件进行加密签名,确保了签名文件的安全性。

进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种安装包的签名装置,如图3所示,该装置包括:加载单元31、确定单元32、获取单元33、处理单元34、签名单元35,其中

加载单元31,可以用于加载待签名安装包。

确定单元32,可以用于确定所述加载单元31加载的待签名安装包中的文件是否已进行过信息摘要处理。

获取单元33,可以用于若所述确定单元32确定已进行过信息摘要处理,则从所述安装包中获取信息摘要文件,所述信息摘要文件用于记录所述文件的信息摘要。

处理单元34,可以用于对所述获取单元33获取的信息摘要文件进行签名处理,得到签名文件。

签名单元35,可以用于通过所述处理单元34得到的签名文件对所述待签名安装包进行签名。

本发明提供的一种安装包的签名装置。所述装置包括:加载单元、确定单元、获取单元、处理单元、签名单元。与目前在进行安装包进行签名时,通常直接对安装包中文件生成一次信息摘要,然后对安装包进行签名相比,本发明通过在确定述待签名安装包中的文件已进行过信息摘要处理时,直接对从所述安装包中的信息摘要文件进行签名处理,避免了对重复文件重复生成信息摘要,节省了生成信息摘要所消耗的时间,从而缩短了安装包签名所消耗的整体时间,进而提升了安装包签名的效率。

进一步的,作为对上述图2所示方法的实现,本发明实施例提供了一种安装包的批量生成装置,如图4所示,该装置包括:加载单元41、确定单元42、获取单元43、处理单元44、签名单元45,其中

加载单元41,可以用于加载待签名安装包。

确定单元42,可以用于确定所述加载单元41加载的待签名安装包中的文件是否已进行过信息摘要处理。

获取单元43,可以用于若所述确定单元42确定已进行过信息摘要处理,则从所述安装包中获取信息摘要文件,所述信息摘要文件用于记录所述文件的信息摘要。

处理单元44,可以用于对所述获取单元43获取的信息摘要文件进行签名处理,得到签名文件。

签名单元45,可以用于通过所述处理单元44得到的签名文件对所述待签名安装包进行签名。

进一步的,所述处理单元44包括:加载模块4401和加密模块4402,

所述加载模块4401,可以用于加载密钥文件,所述密钥文件用于保存签名所需的私钥。

所述加密模块4402,可以用于根据所述加载模块4401加载的私钥和加密算法对所述信息摘要文件进行加密签名,得到签名文件。

进一步的,所述加密模块4402,可以具体用于根据所述私钥和非对称加密算法对所述信息摘要文件进行加密签名,得到签名文件。

进一步的,所述签名单元45,可以具体用于将所述签名文件添加到所述安装包中。

进一步的,所述装置还包括:添加单元46,

所述获取单元43,还可以用于若确定未进行过信息摘要处理,则从所述待签名安装包中获取文件;

所述处理单元44,还可以用于对所述获取单元43获取的文件进行信息摘要处理,生成信息摘要文件;

添加单元46,可以用于将所述处理单元44处理后生成的信息摘要文件添加到所述待签名安装包中。

进一步的,所述处理单元44,可以具体用于通过安全散列SHA-1信息摘要算法对所述文件进行信息摘要处理,生成信息摘要文件。

本发明提供了另一种安装包的签名装置。所述装置包括:加载单元,确定单元,获取单元,处理单元,签名单元与添加单元。与目前在进行安装包进行签名时,通常直接对安装包中文件生成一次信息摘要,然后对安装包进行签名相比,本发明通过在确定待签名安装包中的文件已进行过信息摘要处理时,直接对从所述安装包中的信息摘要文件进行签名处理,避免了对重复文件重复生成信息摘要,节省了生成信息摘要所消耗的时间,从而缩短了安装包签名所消耗的整体时间,进而提升了安装包签名的效率。并且,当确定了待签名安装包没有进行信息摘要处理时,从待签名安装包中获取文件,并通过SHA-1信息摘要算法对文件进行摘要处理,将得到的摘要文件添加到所述待签名安装包中,进一步完善了当前安装包的签名方法。并进一步地,通过加载密钥文件来获得对应的私钥,并用过私钥和非对称加密算法对摘要文件进行加密签名,以生成签名文件,确保了签名文件的安全性。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的安装包的签名装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1