一种基于数字签名的已安装应用程序防篡改方法及系统转让专利

申请号 : CN201711214003.5

文献号 : CN107729746B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐洪英

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明提供一种基于数字签名的已安装应用程序防篡改方法,属于计算机安全技术领域。为防止应用程序安装包在网络传播时被篡改,本方法采用的技术方案为:首先,从CA认证机构申请数字证书,并将其加入到CA认证机构发布的数字证书库;然后,进行软件安装包的数字签名验证,在安装目录下对数字签名验证不通过或没有数字签名的可执行文件和库文件用自己的数字证书进行数字签名,在程序运行过程中对要加载运行的文件进行实时数字签名验证,只有通过数字签名验证的文件才允许加载运行。本方法一共进行了三次签名验证,避免已安装程序被篡改。本发明还提供一种基于数字签名的已安装应用程序防篡改系统,其同样通过三次签名验证来预防已安装程序的被篡改。

权利要求 :

1.一种基于数字签名的已安装应用程序防篡改方法,其特征在于,所述方法包括以下内容:

1)CA认证机构发布的数字证书库;

2)从CA认证机构申请数字证书,并将其加入到步骤1)所述数字证书库;

3)进行软件安装包的数字签名验证;

4)安装目录下,安装文件数字签名验证,对数字签名验证不通过或没有数字签名的可执行文件和库文件转步骤5),数字签名验证通过的文件则结束安装,转步骤6);

5)安装目录下,对不存在数字签名或数字签名验证不通过的可执行文件和库文件,用自己的数字证书进行数字签名;

6)程序运行时,对要加载运行的文件进行实时数字签名验证,只有通过数字签名验证的文件才允许加载运行。

2.根据权利要求1所述的一种基于数字签名的已安装应用程序防篡改方法,其特征在于,所述步骤3)的具体操作为:安装一个软件包时,需要验证安装包的数字签名,包括软件签名者证书是否在步骤1)所述数字证书库和软件Hash值是否与数字签名中Hash值是否一致,如果数字签名验证不通过,则提醒用户安装包已被篡改,并阻止安装。

3.根据权利要求1或2所述的一种基于数字签名的已安装应用程序防篡改方法,其特征在于,所述数字签名的验证可以采用windows提供的API进行验证。

4.一种基于数字签名的已安装应用程序防篡改系统,其特征在于,该系统包括:数字证书库,用于存放CA认证机构发布的数字证书;

申请导入模块,用于从CA认证机构申请数字证书,并将申请的数字证书导入所述数字证书库;

签名验证模块一,用于进行软件安装包的数字签名验证;

签名验证模块二,用于使用自己的数字证书对安装目录下不存在数字签名或数字签名验证不通过的可执行文件和库文件进行数字签名;

签名验证模块三,用于加载运行通过实时数字签名验证的文件。

5.根据权利要求4所述的一种基于数字签名的已安装应用程序防篡改系统,其特征在于,所述签名验证模块一对软件安装包进行数字签名验证的具体操作为:安装一个软件包时,需要验证安装包的数字签名,包括软件签名者证书是否在步骤1)所述数字证书库和软件Hash值是否与数字签名中Hash值是否一致,如果数字签名验证不通过,则提醒用户安装包已被篡改,并阻止安装。

6.根据权利要求4或5所述的一种基于数字签名的已安装应用程序防篡改系统,其特征在于,所述签名验证模块一采用windows提供的API进行软件安装包的数字签名验证。

7.一种计算机设备,其特征在于,包括:

至少一个处理器;

存储有程序指令的存储器,所述程序指令包括如权利要求4-6中任一项所述的一种基于数字签名的已安装应用程序防篡改系统,所述处理器被配置为适于根据所述存储器中存储的一种基于数字签名的已安装应用程序防篡改系统执行如权利要求1-3中任一项所述的一种基于数字签名的已安装应用程序防篡改方法。

说明书 :

一种基于数字签名的已安装应用程序防篡改方法及系统

技术领域

[0001] 本发明涉及计算机安全技术领域,具体地说是一种基于数字签名的已安装应用程序防篡改方法及系统。

背景技术

[0002] 数字证书,作为Internet上通信双方身份验证的一种方式,由权威CA认证机构发行,保证信息的安全性,被广泛应用于计算机领域以保证数据的安全、可靠性。
[0003] 为了防止应用程序安装包在Internet网络传播时被篡改,软件制作者通常会在软件发布前,为其进行数字签名。但是,许多软件仅仅只对软件安装包生成了数字签名,而没有对安装后生成的可执行文件及库文件生成相应的数字签名,这就导致安装程序存在被篡改的漏洞。

发明内容

[0004] 本发明的技术任务是解决现有技术的不足,提供一种基于数字签名的已安装应用程序防篡改方法。
[0005] 本发明的技术方案是按以下方式实现的:
[0006] 一种基于数字签名的已安装应用程序防篡改方法,该方法包括以下内容:
[0007] 1)CA认证机构发布的数字证书库;
[0008] 2)从CA认证机构申请数字证书,并将其加入到步骤1)所述数字证书库;
[0009] 3)进行软件安装包的数字签名验证;
[0010] 4)安装目录下,安装文件数字签名验证,对数字签名验证不通过或没有数字签名的可执行文件和库文件转步骤5),数字签名验证通过的文件则结束安装,转步骤6);
[0011] 5)安装目录下,对不存在数字签名或数字签名验证不通过的可执行文件和库文件,用自己的数字证书进行数字签名;
[0012] 6)程序运行时,对要加载运行的文件进行实时数字签名验证,只有通过数字签名验证的文件才允许加载运行。
[0013] 所涉及步骤3)的具体操作为:
[0014] 安装一个软件包时,需要验证安装包的数字签名,包括软件签名者证书是否在步骤1)所述数字证书库和软件Hash值是否与数字签名中Hash值是否一致,如果数字签名验证不通过,则提醒用户安装包已被篡改,并阻止安装。
[0015] 所涉及数字签名的验证可以采用windows提供的API进行验证。
[0016] 基于上述方法,本发明还提供一种基于数字签名的已安装应用程序防篡改系统,该系统包括:
[0017] 数字证书库,用于存放CA认证机构发布的数字证书;
[0018] 申请导入模块,用于从CA认证机构申请数字证书,并将申请的数字证书导入所述数字证书库;
[0019] 签名验证模块一,用于进行软件安装包的数字签名验证;
[0020] 签名验证模块二,用于使用自己的数字证书对安装目录下不存在数字签名或数字签名验证不通过的可执行文件和库文件进行数字签名;
[0021] 签名验证模块三,用于加载运行通过实时数字签名验证的文件。
[0022] 所涉及签名验证模块一对软件安装包进行数字签名验证的具体操作为:
[0023] 安装一个软件包时,需要验证安装包的数字签名,包括软件签名者证书是否在步骤1)所述数字证书库和软件Hash值是否与数字签名中Hash值是否一致,如果数字签名验证不通过,则提醒用户安装包已被篡改,并阻止安装。
[0024] 所涉及签名验证模块一采用windows提供的API进行软件安装包的数字签名验证。
[0025] 基于上述方法和系统,本发明还提供一种计算机设备,该包括:
[0026] 至少一个处理器;
[0027] 存储有程序指令的存储器,所涉及程序指令包括上述一种基于数字签名的已安装应用程序防篡改系统,所涉及处理器被配置为适于根据所涉及存储器中存储的一种基于数字签名的已安装应用程序防篡改系统执行一种基于数字签名的已安装应用程序防篡改方法。
[0028] 本发明的一种基于数字签名的已安装应用程序防篡改方法及系统与现有技术相比所产生的有益效果是:
[0029] 1)本发明的方法进行了三次签名验证,通过依次验证应用程序安装包数字签名的一致性、并对安装目录下数字签名不可验证和没有数字签名的文件重新进行数字签名、在运行时对加载文件进行实时数字签名验证,保证了已安装程序的不被篡改性;
[0030] 2)本发明的系统与所述方法相同,通过三个签名验证模块依次进行了三次签名验证,保证了已安装程序的不被篡改性。

附图说明

[0031] 附图1是本发明的方法流程框图;
[0032] 附图2是本发明的系统框架结构连接图。
[0033] 附图中的标记分别表示:
[0034] 1、数字证书库,2、申请导入模块,3、签名验证模块一,
[0035] 4、签名验证模块二,5、签名验证模块三。

具体实施方式

[0036] 为了更好的说明本发明,现结合具体实施例以及说明书附图对技术方案做进一步的说明。虽然实施例中记载了这些具体的实施方式,然其并非用以限定本发明,任何所述技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动和润饰,故本发明的保护范围当视权利要求书所界定者为准。
[0037] 实施例一:
[0038] 如附图1所示,本发明的一种基于数字签名的已安装应用程序防篡改方法,该方法包括以下内容:
[0039] S10:CA认证机构发布的数字证书库;
[0040] S20:从CA认证机构申请数字证书,并将其加入到步骤S10所述数字证书库;
[0041] S30:进行软件安装包的数字签名验证;
[0042] S40:安装目录下,安装文件数字签名验证,对数字签名验证不通过或没有数字签名的可执行文件和库文件转步骤S50,数字签名验证通过的文件则结束安装,转步骤S60;
[0043] S50:安装目录下,对不存在数字签名或数字签名验证不通过的可执行文件和库文件,用自己的数字证书进行数字签名;
[0044] S60:程序运行时,对要加载运行的文件进行实时数字签名验证,只有通过数字签名验证的文件才允许加载运行。
[0045] 所涉及步骤S30的具体操作为:
[0046] 安装一个软件包时,需要验证安装包的数字签名,包括软件签名者证书是否在步骤S10所述数字证书库和软件Hash值是否与数字签名中Hash值是否一致,如果数字签名验证不通过,则提醒用户安装包已被篡改,并阻止安装。
[0047] 所涉及数字签名的验证可以采用windows提供的API进行验证。
[0048] 本发明的方法进行了三次签名验证,依次验证应用程序安装包数字签名的一致性、对安装目录下数字签名不可验证和没有数字签名的文件重新进行数字签名、在运行时对加载文件进行实时数字签名验证,由此保证了已安装程序的不被篡改性。
[0049] 实施例二:
[0050] 基于上述方法,如附图2所示,本发明还提供一种基于数字签名的已安装应用程序防篡改系统,该系统包括:
[0051] 数字证书库1,用于存放CA认证机构发布的数字证书;
[0052] 申请导入模块2,用于从CA认证机构申请数字证书,并将申请的数字证书导入所述数字证书库1;
[0053] 签名验证模块一3,用于进行软件安装包的数字签名验证;
[0054] 签名验证模块二4,用于使用自己的数字证书对安装目录下不存在数字签名或数字签名验证不通过的可执行文件和库文件进行数字签名;
[0055] 签名验证模块三5,用于加载运行通过实时数字签名验证的文件。
[0056] 所涉及签名验证模块一3对软件安装包进行数字签名验证的具体操作为:
[0057] 安装一个软件包时,需要验证安装包的数字签名,包括软件签名者证书是否在步骤1)所述数字证书库和软件Hash值是否与数字签名中Hash值是否一致,如果数字签名验证不通过,则提醒用户安装包已被篡改,并阻止安装。
[0058] 所涉及签名验证模块一3采用windows提供的API进行软件安装包的数字签名验证。
[0059] 本发明的系统进行了三次签名验证,签名验证模块一3验证应用程序安装包数字签名的一致性、签名验证模块二4对安装目录下数字签名不可验证和没有数字签名的文件重新进行数字签名、签名验证模块三5对运行时的加载文件进行实时数字签名验证,由此保证了已安装程序的不被篡改性。
[0060] 实施例三:
[0061] 基于上述方法和系统,本发明还提供一种计算机设备,该包括:
[0062] 至少一个处理器;
[0063] 存储有程序指令的存储器,所涉及程序指令包括上述一种基于数字签名的已安装应用程序防篡改系统,所涉及处理器被配置为适于根据所涉及存储器中存储的一种基于数字签名的已安装应用程序防篡改系统执行一种基于数字签名的已安装应用程序防篡改方法。
[0064] 尽管根据有限数量的实施例描述了本发明,但是,受益于上面的描述,本技术领域的技术人员应该明白,在由此描述的本发明的范围内,可以设想其他实施例。
[0065] 此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说,许多修改和变更都是显而易见的。对于本发明的范围,本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。