一种基于数字证书的软件多层签名方法及系统技术方案

技术编号:32817755 阅读:9 留言:0更新日期:2022-03-26 20:14
本发明专利技术公开了一种基于数字证书的软件多层签名方法及系统,包括在软件包内设置证书分区和签名分区,所述证书分区用于存储数字证书,所述签名分区用于存储数字签名,所述数字证书和所述数字签名一一配套;对待签名数字证书进行签名后,在所述证书分区已有的数字证书末尾添加新的数字证书,在所述签名分区已有的数字签名末尾添加新的数字签名。实现过程简单,签名稳定速度快,实施成本低;能支持不同组织的证书多层签名,解决了因本次签名导致的上层签名失效的问题;能有效的保证软件包来源的可靠性;能有效的保证软件包在安装之前的完整性和一致性。性和一致性。性和一致性。

【技术实现步骤摘要】
一种基于数字证书的软件多层签名方法及系统


[0001]本申请涉及计算机安全
,尤其涉及一种基于数字证书的软件多层签名方法及系统。

技术介绍

[0002]软件包在传输过程中,容易受到攻击而使软件包内容被替换、篡改或者损坏,因此有必要确保软件包从发布到安装过程中的信息完整性,及软件包开发者与软件包之间不可抵赖的对应关系,常用且较成熟的软件包安全防护措施是利用数字证书签名技术对软件包进行签名验签。在实际的操作过程中,经常需要软件开发者对软件签一次名,软件厂商签一次名,发布到软件商店前软件商店开发厂商再签一次名,这种多层次的签名需求非常常见。
[0003]为了满足这种多层的软件签名需求,CN100505621提出了一种数字签名锁定域的方法,该方法将数字证书签名对象的一部分内容与用户指定的数字签名控件进行绑定。用户的签名只针对锁定域的部分,第二个用户可以在同一个数字证书签名对象中非锁定域内操作,且不影响第一个人的签名的有效性,依此该数字证书签名对象可以支持多层签名;CN111523889A提出一种基于交易秘钥对和多签模板的方式,首先生成参与交易秘钥对,创建多签模板,返回多签模板地址,根据多签模板创建交易,并返回待签名数据,对待签名数据进行签名,返回签名后的签名数据和布尔值。如果布尔值不满足权重条件,则将签名后的签名数据作为新的签名对象,并使用参与多签模板立定的公钥对应的私钥继续签名判断,直到布尔值满足权重条件,以实现多层签名;CN107632932A提出了一种针对软件仓库的可靠性检测方法,该方法基于多层签名和加密的多级校验技术,支持对软件仓库涉及的源代码软件包、二进制软件包目录、软件仓库摘要文件、软件仓库摘要文件进行可靠性检测。
[0004]但是现有技术仍然存在一些缺点。CN100505621提出的锁定域的实现方式非常的复杂,只有处理好了锁定域的内容、锁定域之间的关系和算法、锁定域与整个数字证书签名对象之间的关系和算法问题,才能解决多层签名的功能。这么苛刻的实现条件,导致开发成本较高,不利于该方法的普及化,且该方法只能保证锁定域内数据的完整性,不能保证整个签名对象的完整性;CN111523889A提出的方法需要人为的定义布尔值满足的条件,主观性较强,且出现了迭代性的签名过程,签名效果不稳定;CN107632932A提出的多层证书签名是对源代码软件包、二进制软件包目录、软件仓库摘要文件、软件仓库摘要文件进行逐级签名,并不支持不同组织对同一对象的多层证书签名。

技术实现思路

[0005]为解决上述现有技术所存在的问题,本专利技术提出了一种基于数字证书的软件多层签名方法及系统,支持两层及两层以上不同组织的证书签名,该技术实现简单、安全、成本低。
[0006]为实现上述目的,本专利技术提供了一种基于数字证书的软件多层签名方法,包括如下步骤:
在软件包内设置证书分区和签名分区,所述证书分区用于存储数字证书,所述签名分区用于存储数字签名,所述数字证书和所述数字签名一一配套;对待签名数字证书进行签名后,在所述证书分区已有的数字证书末尾添加新的数字证书,在所述签名分区已有的数字签名末尾添加新的数字签名。
[0007]可选地,在添加新的数字证书和数字签名之前,先在所述证书分区已有的数字证书末尾和所述签名分区已有的数字签名末尾添加分隔符。
[0008]可选地,对待签名数字证书进行签名时还包括:判断待签名数字证书的组织是否已签名,若已签名则阻止签名,若未签名则进行签名。
[0009]可选地,判断待签名数字证书的组织是否已签名,若已签名则阻止签名,若未签名则进行签名包括:判断软件包中是否存在所述数字证书和所述数字签名,若不存在,则正常签名,若存在,则读取待签名数字证书的组织,然后分割所述证书分区中存储的所述数字证书,读取储存的所述数字证书的组织和证书序号,将待签名数字证书的组织和储存的所述数字证书的组织逐个匹配,若匹配成功,则返回证书序号并阻止签名,若匹配不成功,则正常签名。
[0010]可选地,还包括多证书验证,所述多证书验证包括:判断软件包是否存在多个所述数字证书和所述数字签名,若存在,则定位所述数字证书字段,并对多个所述数字证书进行切割,逐个验证所述数字证书的合法性,读取所述数字证书配套的所述数字签名,并验证所述数字签名的合法性,返回验证结果。
[0011]可选地,还包括指定证书验证,所述指定证书验证包括:获取软件包的路径和指定组织名,判断软件包中是否存在指定组织的数字证书,如果存在,则返回指定组织的数字证书及其证书序号,验证指定组织的数字证书的合法性,根据返回的证书序号截取配套的指定组织的数字签名,验证截取的所述数字签名的合法性,返回验证结果;如果不存在,则验证终止。
[0012]本专利技术还提供了一种基于数字证书的软件多层签名系统,包括:设置在软件包内的证书分区和签名分区,所述证书分区用于存储数字证书,所述签名分区用于存储数字签名,所述数字证书和所述数字签名一一配套;多层证书签名模块,用于对待签名数字证书进行签名后,在所述证书分区已有的数字证书末尾添加新的数字证书,在所述签名分区已有的数字签名末尾添加新的数字签名。
[0013]从以上技术方案可以看出,本专利技术的技术方案具有以下优点:1、实现过程简单,签名稳定速度快,实施成本低;2、能支持不同组织的证书多层签名,解决了因本次签名导致的上层签名失效的问题;3、能有效的保证软件包来源的可靠性;4、能有效的保证软件包在安装之前的完整性和一致性。
附图说明
[0014]为了更清楚地表达说明本专利技术实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1为本专利技术实施例中软件多层签名方法的总体框架示意图;图2为本专利技术实施例中避免证书重复签名流程图;图3为本专利技术实施例中多层证书签名流程图;图4为本专利技术实施例中多证书验证流程图;图5为本专利技术实施例中指定证书验证流程图。
具体实施方式
[0016]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0017]本专利技术利用数据分区技术,实现了一种基于数字证书的软件多层签名方法。该方法支持不同组织证书的多层签名和多证书验证,通过上述方法能避免数字证书的重复签名,并能对指定证书的验证。参见图1,本专利技术分为避免证书重复签名、多层证书签名、多证书验证、指定证书验证四个子模块,各子模块涉及的技术方案如下。
[0018]1、避免证书重复签名避免证书重复签名模块通过组织名匹配实现了避免证书重复签名功能和待签名数字证书存在性验证功能。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数字证书的软件多层签名方法,其特征在于,包括如下步骤:在软件包内设置证书分区和签名分区,所述证书分区用于存储数字证书,所述签名分区用于存储数字签名,所述数字证书和所述数字签名一一配套;对待签名数字证书进行签名后,在所述证书分区已有的数字证书末尾添加新的数字证书,在所述签名分区已有的数字签名末尾添加新的数字签名。2.根据权利要求1所述的基于数字证书的软件多层签名方法,其特征在于,在添加新的数字证书和数字签名之前,先在所述证书分区已有的数字证书末尾和所述签名分区已有的数字签名末尾添加分隔符。3.根据权利要求1所述的基于数字证书的软件多层签名方法,其特征在于,对待签名数字证书进行签名时还包括:判断待签名数字证书的组织是否已签名,若已签名则阻止签名,若未签名则进行签名。4.根据权利要求3所述的基于数字证书的软件多层签名方法,其特征在于,判断待签名数字证书的组织是否已签名,若已签名则阻止签名,若未签名则进行签名包括:判断软件包中是否存在所述数字证书和所述数字签名,若不存在,则正常签名,若存在,则读取待签名数字证书的组织,然后分割所述证书分区中存储的所述数字证书,读取存储的所述数字证书的组织和证书序号,将待签名数字证书的组织和存储的所述数字证书的组织逐个匹配,若匹配成功,则返回证书...

【专利技术属性】
技术研发人员:蒋杏松王玉成康昱孟圆姬一文杨诏钧魏立峰孔金珠谌志华
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

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

1