软件签名植入方法、验证方法、装置、电子设备及介质与流程

文档序号:29922299发布日期:2022-05-07 09:24阅读:167来源:国知局
软件签名植入方法、验证方法、装置、电子设备及介质与流程

1.本发明涉及信息处理技术领域,尤其涉及一种软件签名植入方法、验证方法、装置、电子设备及介质。


背景技术:

2.当前it技术发展迅速,在软件发布之前,往往需要通过一些措施去保护软件的安全,避免软件发布后出现被人恶意篡改软件信息的问题。
3.在软件安装包中加入签名文件是一种保护软件安全的良好做法,而目前在软件安装包中加入签名文件的常用做法是对软件包打入签名文件后再进行重新打包,基于此过程完成对签名文件的添加,但这会导致多家签名无法并存;具体表现为:a机构对软件签名后,b机构如对a机构签过名的软件再次签名,会导致a机构签名验证失效。


技术实现要素:

4.本发明提供一种软件签名植入方法、验证方法、装置、电子设备及介质,用于解决现有技术中存在的技术问题。
5.本发明提供一种软件签名植入方法,包括:
6.利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串;
7.将所述第一字符串和所述第二字符串写入签名文件,并将所述签名文件植入软件安装包中。
8.根据本发明提供的软件签名植入方法,在执行所述利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串之前,所述方法还包括:
9.提取所述软件安装包中的第二控制文件和第二数据文件,分别解压得到所述第一控制文件和所述第一数据文件。
10.根据本发明提供的软件签名植入方法,所述加密算法为非对称加密算法。
11.根据本发明提供的软件签名植入方法,所述利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串,具体包括:
12.分别计算第一控制文件和第一数据文件的哈希值;
13.利用加密算法对所述第一控制文件的哈希值进行加密处理得到第一字符串,对所述第一数据文件的哈希值进行加密处理得到第二字符串。
14.本发明还提供一种软件签名验证方法,包括:
15.读取软件安装包中的第一字符串和第二字符串;
16.通过密钥对所述第一字符串和所述第二字符串进行验证。
17.根据本发明提供的软件签名验证方法,所述通过密钥对所述第一字符串和所述第二字符串进行验证,具体包括:
18.通过密钥分别获取与所述第一字符串对应的第一控制文件的哈希值,与所述第二字符串对应的第一数据文件的哈希值,将所述第一控制文件的哈希值与所述第一数据文件的哈希值分别和预设哈希值进行比对,基于比对结果完成验证过程。
19.根据本发明提供的软件签名验证方法,所述密钥包括公钥和私钥;相应的,
20.当利用私钥执行加密处理得到所述字符串时,则利用公钥对所述字符串进行验证;
21.当利用公钥执行加密处理得到所述字符串时,则利用私钥对所述字符串进行验证。
22.本发明还提供一种软件签名植入装置,包括:
23.加密模块,用于利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串;
24.植入模块,用于将所述第一字符串和所述第二字符串写入签名文件,并将所述签名文件植入软件安装包中。
25.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述软件签名植入方法的步骤或软件签名验证方法的步骤。
26.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述软件签名植入方法的步骤或软件签名验证方法的步骤。
27.本发明还提供一种计算机程序产品,所计算机程序产品包括有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述软件签名植入方法的步骤或软件签名验证方法的步骤。
28.本发明提供的软件签名植入方法、验证方法、装置、电子设备及介质,通过分别对软件安装包中的控制文件和数据文件进行加密处理得到两个字符串,然后利用linux ar命令将由两个字符串组成的签名文件植入到软件安装包中,基于上述过程实现了对软件安装包中签名内容的设置,并且该过程可以多次重复执行,实现多个不同签名文件的共存,相互之间互不干扰;基于前述对软件签名的植入过程,在对软件安装包进行签名验证时,可以实现多机构签名验证过程,提升签名验证效率和软件安装包的安全性。
附图说明
29.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1是本发明提供的软件签名植入方法的流程示意图之一;
31.图2是本发明提供的软件安装包内部结构示意图;
32.图3是本发明提供的软件签名验证方法的流程示意图;
33.图4是本发明提供的软件签名植入方法的流程示意图之二;
34.图5是本发明提供的软件签名植入装置的结构示意图;
35.图6是本发明提供的软件签名验证装置的结构示意图;
36.图7是本发明提供的电子设备的结构示意图。
具体实施方式
37.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.图1是本发明提供的软件签名植入方法的流程示意图之一,如图1所示,所述方法包括:
39.s110,利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串;
40.s110,将所述第一字符串和所述第二字符串写入签名文件,并将所述签名文件植入软件安装包中。
41.需要说明的是,此处软件安装包指的是deb安装包,deb安装包是linux系统下的安装包,主要由三部分组成,包括:数据文件,用于存放实际安装的程序数据,文件名为data.tar.xxx;控制文件,用于存放deb安装包的安装说明、标识、脚本等,文件名为control.tar.xxx;deb安装包的二进制文件,存在文件头信息等。上述数据文件data.tar.xxx与控制文件control.tar.xxx均以压缩文件状态存在于deb安装包中,将数据文件data.tar.xxx与控制文件control.tar.xxx分别进行解压缩即得到第一数据文件data.tar和第一控制文件control.tar。
42.利用加密算法分别对第一控制文件和第一数据文件进行加密处理,得到第一字符串和第二字符串,该过程实际上是一种数据加密处理,而数据加密的基本过程是对原来为明文的文件或数据按某种加密算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。
43.将经过加密处理得到的第一字符串和第二字符串写入签名文件,并通过linux的ar命令将上述签名文件植入deb安装包中,进而实现对deb安装包的签名设置过程;在该过程中,不同的机构对应不同的签名文件,对于同一个deb安装包可以进行多个签名文件的植入,且基于ar命令的特点,多个签名文件之间均保有原来的属性和权限,相互之间不产生干扰。
44.图2是本发明提供的软件安装包内部结构示意图,如图2所示,从左至右依次为未包含签名的deb安装包、包含一家机构签名的deb安装包以及包含多家机构签名的deb安装包;其中a.sig和b.sig代表不同机构的签名文件。
45.本发明提供的软件签名植入方法,通过分别对软件安装包中的控制文件和数据文件进行加密处理得到两个字符串,然后利用linux ar命令将由两个字符串组成的签名文件植入到软件安装包中,基于上述过程实现了对软件安装包中签名内容的设置,并且该过程可以多次重复执行,实现多个不同签名文件的共存,相互之间互不干扰,有效克服了现有技术中多个签名无法并存使用的问题。
46.根据本发明提供的软件签名植入方法,在本发明中,在执行所述利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串之前,所述方法还包括:
47.提取所述软件安装包中的第二控制文件和第二数据文件,分别解压得到所述第一控制文件和所述第一数据文件。
48.如前所述,deb安装包中的控制文件与数据文件是以压缩文件的状态存在的,即第二控制文件与第二数据文件均为压缩文件,第二控制文件具体包括control.tar.xz和control.tar.gz,第二数据文件具体包括data.tar.xz和data.tar.gz,即对于第二控制文件和第二数据文件均存在两种不同的数据格式,对第二控制文件与第二数据文件进行解压缩处理后分别得到第一控制文件control.tar和第一数据文件data.tar。
49.本发明提供的软件签名植入方法,通过对deb安装包中的第二控制文件和第二数据文件分别进行解压缩处理得到第一控制文件和第一数据文件,基于该解压缩处理实现了对控制文件以及数据文件在格式上的统一化,在此基础上进行后续的签名植入处理和签名验证处理有利于提高处理效率和处理准确性。
50.根据本发明提供的软件签名植入方法,在本发明中,所述加密算法为非对称加密算法。
51.需要说明的是,加密算法分为对称加密算法和非对称加密算法,对称加密算法指的是在对数据进行加密处理和解密处理两个过程中所使用的密钥是一样的,常见的对称加密算法有:des、3des、tdea、blowfish、rc2、rc4、rc5、idea、skipjack等;而非对称加密算法指的是存在两个密钥,具体为公钥和私钥,利用公钥和私钥分别执行加密处理过程和解密处理过程,常见的非对称加密算法有rsa、dsa、ecdsa等。
52.本发明提供的软件签名植入方法,通过利用非对称加密算法对第一控制文件和第一数据文件进行加密处理以及对应的解密处理,提高了数据传输中的安全性和可靠性。
53.根据本发明提供的软件签名植入方法,在本发明中,所述利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串,具体包括:
54.分别计算第一控制文件和第一数据文件的哈希值;
55.利用加密算法对所述第一控制文件的哈希值进行加密处理得到第一字符串,对所述第一数据文件的哈希值进行加密处理得到第二字符串。
56.需要说明的是,哈希值,又称为散列函数(或散列算法,又称哈希函数,英语:hash function)是一种从任何一种数据中创建小的数字"指纹"的方法,散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。在本发明中,分别计算第一控制文件和第一数据文件的哈希值,然后利用加密算法对得到的哈希值进行加密处理,最终分别得到第一字符串和第二字符串。
57.本发明提供的软件签名植入方法,通过哈希计算分别求得第一控制文件和第一数据文件的哈希值,基于得到的哈希值进行后续的加密处理过程,基于此减小了待加密数据的数据量,提高了加密过程的处理效率。
58.图3是本发明提供的软件签名验证方法的流程示意图,如图3所示,所述方法包括:
59.s310,读取软件安装包中的第一字符串和第二字符串;
60.s320,通过密钥对所述第一字符串和所述第二字符串进行验证。
61.需要说明的是,在利用前述软件签名植入方法对deb安装包完成签名设置后,当对完成签名设置的安装包进行签名验证时,存在以下过程:读取deb安装包中具有签名辨识作用的第一字符串和第二字符串,通过密钥对读取的第一字符串和第二字符串进行比对验证,当读取的第一字符串与第二字符串与预设字符串均一致时,则验证通过,即签名验证通过。
62.当加密算法为对称加密算法时,加密时和解密时所利用的密钥是相同的,当加密算法为非对称加密算法时,加密时和解密时所利用的密钥是不同的;此处对于具体选择哪种加密算法不做限定。
63.本发明提供的软件签名验证方法,通过对读取deb安装包得到的第一字符串和第二字符串进行验证,实现了对软件的签名验证过程,上述过程在确保验证效率的前提下提高了验证准确率。
64.根据本发明提供的软件签名验证方法,在本发明中,所述通过密钥对所述第一字符串和所述第二字符串进行验证,具体包括:
65.通过密钥分别获取与所述第一字符串对应的第一控制文件的哈希值,与所述第二字符串对应的第一数据文件的哈希值,将所述第一控制文件的哈希值与所述第一数据文件的哈希值分别和预设哈希值进行比对,基于比对结果完成验证过程。
66.需要说明的是,首先通过密钥验证获取与第一字符串对应的第一控制文件的哈希值,与第二字符串对应的第一数据文件的哈希值,将得到的两个哈希值分别与预设哈希值进行比对,此处预设哈希值有多个,并且只有当第一控制文件的哈希值和第一数据文件的哈希值均与预设哈希值存在对应关系时,则验证通过。
67.本发明提供的软件签名验证方法,通过先利用密钥对第一字符串和第二字符串进行解密分别得到第一控制文件的哈希值和第一数据文件的哈希值,然后将得到的两个哈希值分别与预设哈希值进行比对验证,即上述过程实现了先后两次验证过程,在确保签名验证准确率的前提下有效提高了签名的验证可靠性。
68.根据本发明提供的软件签名验证方法,在本发明中,所述密钥包括公钥和私钥;相应的,当利用私钥执行加密处理得到所述字符串时,则利用公钥对所述字符串进行验证;当利用公钥执行加密处理得到所述字符串时,则利用私钥对所述字符串进行验证。
69.需要说明的是,采用非对称加密算法分别对第一控制文件和第一数据文件进行加密处理得到第一字符串和第二字符串,在此基础上对deb安装包进行签名验证时,需要采用与非对称加密算法对应的验证过程,即验证时密钥包括公钥和私钥;对应的,具体处理过程是:
70.当利用私钥分别对第一控制文件和第一数据文件进行加密处理得到第一字符串和第二字符串时,则利用对应的公钥对上述两个字符串进行验证;当利用公钥分别对第一控制文件和第一数据文件进行加密处理得到第一字符串和第二字符串时,则利用对应的私钥对上述两个字符串进行验证。
71.本发明提供的软件签名验证方法,通过利用非对称加密算法实现对第一控制文件和第一数据文件的加密处理,然后以加密过程中所使用的密钥类型为依据,在签名验证过程中选取对应的密钥类型实现对数据的解密处理,基于此,确保了签名验证过程的准确运
行。
72.图4是本发明提供的软件签名植入方法的流程示意图之二,如图4所示,所述方法包括:
73.step1,上传待签名的安装包;
74.step2,提取control.tar.xz文件和data.tar.xz文件;
75.step3,对control.tar.xz文件和data.tar.xz文件分别解压缩得到control.tar和data.tar;
76.step4,计算control.tar.xz文件的hash值,计算data.tar.xz文件的hash值;
77.step5,分别对得到的两个hash值进行加密计算并写入签名文件,可选加密方式有多种,可以选择对称加密算法,也可以选择非对称加密算法。
78.step6,将得到的签名文件追加到原deb安装包中。
79.图5是本发明提供的软件签名植入装置的结构示意图,如图5所示,所述装置包括:
80.加密模块510,用于利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串;
81.植入模块520,用于将所述第一字符串和所述第二字符串写入签名文件,并将所述签名文件植入软件安装包中。
82.本发明提供的软件签名植入装置,通过分别对软件安装包中的控制文件和数据文件进行加密处理得到两个字符串,然后利用linux ar命令将由两个字符串组成的签名文件植入到软件安装包中,基于上述过程实现了对软件安装包中签名内容的设置,并且该过程可以多次重复执行,实现多个不同签名文件的共存,相互之间互不干扰,有效克服了现有技术中多个签名无法并存使用的问题。
83.根据本发明提供的软件签名植入装置,在本发明中,所述装置还包括解压缩模块,在执行所述利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串之前,用于提取所述软件安装包中的第二控制文件和第二数据文件,分别解压得到所述第一控制文件和所述第一数据文件。
84.本发明提供的软件签名植入装置,通过对deb安装包中的第二控制文件和第二数据文件分别进行解压缩处理得到第一控制文件和第一数据文件,基于该解压缩处理实现了对控制文件以及数据文件在格式上的统一化,在此基础上进行后续的签名植入处理和签名验证处理有利于提高处理效率和处理准确性。
85.根据本发明提供的软件签名植入装置,在本发明中,所述加密算法为非对称加密算法。
86.本发明提供的软件签名植入装置,通过利用非对称加密算法对第一控制文件和第一数据文件进行加密处理以及对应的解密处理,提高了数据传输中的安全性和可靠性。
87.根据本发明提供的软件签名植入装置,在本发明中,加密模块510在用于利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串时,具体用于:分别计算第一控制文件和第一数据文件的哈希值;利用加密算法对所述第一控制文件的哈希值进行加密处理得到第一字符串,对所述第一数据文件的哈希值进行加密处理得到第二字符串。
88.本发明提供的软件签名植入装置,通过哈希计算分别求得第一控制文件和第一数
据文件的哈希值,基于得到的哈希值进行后续的加密处理过程,基于此减小了待加密数据的数据量,提高了加密过程的处理效率。
89.图6是本发明提供的软件签名验证装置的结构示意图,如图6所示,所述装置包括:
90.读取模块610,用于读取软件安装包中的第一字符串和第二字符串;
91.验证模块620,用于通过密钥对所述第一字符串和所述第二字符串进行验证。
92.本发明提供的软件签名验证装置,通过对读取deb安装包得到的第一字符串和第二字符串进行验证,实现了对软件的签名验证过程,上述过程在确保验证效率的前提下提高了验证准确率。
93.根据本发明提供的软件签名验证装置,在本发明中,验证模块620在用于通过密钥对所述第一字符串和所述第二字符串进行验证时,具体用于:通过密钥分别获取与所述第一字符串对应的第一控制文件的哈希值,与所述第二字符串对应的第一数据文件的哈希值,将所述第一控制文件的哈希值与所述第一数据文件的哈希值分别和预设哈希值进行比对,基于比对结果完成验证过程。
94.本发明提供的软件签名验证方法,通过先利用密钥对第一字符串和第二字符串进行解密分别得到第一控制文件的哈希值和第一数据文件的哈希值,然后将得到的两个哈希值分别与预设哈希值进行比对验证,即上述过程实现了先后两次验证过程,在确保签名验证准确率的前提下有效提高了签名的验证可靠性。
95.根据本发明提供的软件签名验证装置,在本发明中,所述密钥包括公钥和私钥;相应的,
96.当利用私钥执行加密处理得到所述字符串时,则利用公钥对所述字符串进行验证;
97.当利用公钥执行加密处理得到所述字符串时,则利用私钥对所述字符串进行验证。
98.本发明提供的软件签名验证装置,通过利用非对称加密算法实现对第一控制文件和第一数据文件的加密处理,然后以加密过程中所使用的密钥类型为依据,在签名验证过程中选取对应的密钥类型实现对数据的解密处理,基于此,确保了签名验证过程的准确运行。
99.图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communications interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行软件签名植入方法,该方法包括:利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串;将所述第一字符串和所述第二字符串写入签名文件,并将所述签名文件植入软件安装包中。
100.或执行软件签名验证方法,该方法包括:读取软件安装包中的第一字符串和第二字符串;通过密钥对所述第一字符串和所述第二字符串进行验证。
101.此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以
软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
102.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的软件签名植入方法,该方法包括:利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串;将所述第一字符串和所述第二字符串写入签名文件,并将所述签名文件植入软件安装包中。
103.或执行软件签名验证方法,该方法包括:读取软件安装包中的第一字符串和第二字符串;通过密钥对所述第一字符串和所述第二字符串进行验证。
104.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的软件签名植入方法,该方法包括:利用加密算法对第一控制文件进行加密处理得到第一字符串,对第一数据文件进行加密处理得到第二字符串;将所述第一字符串和所述第二字符串写入签名文件,并将所述签名文件植入软件安装包中。
105.或执行软件签名验证方法,该方法包括:读取软件安装包中的第一字符串和第二字符串;通过密钥对所述第一字符串和所述第二字符串进行验证。
106.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
107.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
108.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1