一种基于共识机制的软件版本状态保护方法技术

技术编号:27742629 阅读:10 留言:0更新日期:2021-03-19 13:36
本发明专利技术提出一种基于共识机制的软件版本状态保护方法,其特征在于,所述方法包括如下步骤:定义共识机制,确定软件流转链上的共识群体中的共识人;为定版软件生成软件状态码,对定版软件中经常会发生改变的文件、按照文件夹、路径进行标识;根据软件流转中共识群体涉及的共识人,分别校验共识人公钥证书的有效性;为软件状态码添加共识人的公钥证书,形成共识文件;根据定版软件流转中的流转顺序,软件研制单位将定版软件和共识文件通过混合加密的方式发送给一个或多个共识人,并由所述一个或多个共识人按照流转顺序对其中已有的软件状态码的数字签名进行校验,如果校验通过,则为共识文件添加多重数字签名。

【技术实现步骤摘要】
一种基于共识机制的软件版本状态保护方法
本专利技术属软件保护
,涉及一种防止软件流转过程中被篡改的方法。
技术介绍
目前,对于软件版本状态管理的工具有SVN、Git等,这些工具在软件的研发阶段能够非常好的管理软件版本,甚至能够对比不同版本之间的不同。然而,在软件测评、试验、使用阶段,SVN、Git等工具将失去管理能力。例如,测试过程中发现问题,产生软件修改,往往没有工具证明其是否被修改。军方管理软件工具,常用的便是三库管理,同样在软件版本录入受控库时并没有办法验证其状态是否发生变化。同时,即使采用了SVN、配置管理工具软件,在软件的全生命周期软件状态一致性仍有如下问题:(1)软件研发过程版本太多太乱,导致某些版本没有记录或者假装被记录;(2)软件试验单位或使用单位,获取软件安装使用,无法验证软件版本是否正确或已被修改;(3)软件传递使用过程,没有办法验证软件状态是否变化;(4)配置管理工具,只能做到三库管理,没有方法验证出入库时,软件版本是否正确。
技术实现思路
为解决上述技术问题,本专利技术提出了一种基于共识机制的软件版本状态保护方法,其特征在于,所述方法包括如下步骤:S1:定义共识机制,确定软件流转链上的共识群体中的共识人;基于RSA算法,根据大素数原理生成代表不同成员身份的公私钥信息,以密钥证书文件的形式分发给一个或多个共识人;S2:为定版软件生成软件状态码,具体包括:对定版软件中经常会发生改变的文件、按照文件夹、路径进行标识;对于未被标识的文件,首先进行散列计算,通过字符串压缩算法对经过散列的字符串文件进行压缩,获取软件文件信息指纹;对软件文件信息指纹进行数字签名后,使用Base64编码技术编码生成定长的共识标识即为软件状态码;S3:根据软件流转中共识群体涉及的共识人,分别校验共识人公钥证书的有效性;为软件状态码添加共识人的公钥证书,形成共识文件;S4:根据软件流转中的流转顺序,将所述定版软件和共识文件通过混合加密的方式发送给其他所述一个或多个共识人,并由所述一个或多个共识人按照流转顺序对其中已有的软件状态码的数字签名进行校验,如果校验通过,则为共识文件添加多重数字签名。特别地,所述方法还包括:所述定版软件发布后,通过软件状态码对所述定版软件进行检测,确定其中文件是否被修改。特别地,其中一个共识人将所述定版软件和共识文件通过对称加密算法和非对称加密算法混合的加密的方式发送给其他一个或多个共识人包括:一个共识人与另一个共识人之间进行密钥协商,所述一个共识人和所述另一个公识人各自生成隧道加密密钥的生成因子;所述一个共识人采用所述另一个共识人的公钥加密其生成的隧道加密密钥的生成因子,并发送给所述另一个共识人;相应的,所述另一个共识人采用所述一个共识人的公钥加密其生成的隧道加密密钥的生成因子,并发送给所述一个共识人;双方各自用自己的私钥对加密信息解密后,各自都得到了对方的隧道加密密钥生成因子;各自按照事先约定的算法生成隧道加密密钥;并且所述一个共识人使用上述隧道加密密钥利用对称加密算法对所述定版软件和共识文件进行加密后发送给所述另一个共识人;所述另一个共识人可相应使用隧道加密密钥解密得到所述定版软件和共识文件。特别地,所述共识群体中的各个共识人包括:软件研制单位,军代表机构、测试机构和部队使用者。特别地,所述流转顺序为:软件研制单位将所述定版软件和共识文件,发送给军代表机构,由军代表机构在共识文件上使用其私钥签署自己的数字签名以示确认;随后,将所述定版软件和共识文件提交给测试机构;所述测试机构从军代表机构接收所述定版软件和共识文件,在验证了共识文件中研制单位和军代表机构的数字签名均有效之后,也用其私钥在共识文件签上自己的数字签名以示确认;然后所述测试机构开展测评业务,在软件测评完成后,就将所述定版软件和共识文件,交付所述军代表机构;所述军代表机构从测试机构接收所述定版软件和共识文件,在验证了所有签名者的数字签名有效之后,即办理入库,准备发布。特别地,所述软件状态码为12位,并以二维码图形的形式,随所述定版软件一起保存到装备软件系统中。特别地,所述校验共识人公钥证书的有效性,包括:校验共识人具有的权限信息,并可分为离线校验和在线校验;对于所述在线校验,通过账号和密码验证合法即可;对于所述离线校验,则通过绑定所述定版软件的机器码或者发放一个序列号对用户拥有的权限或者相应功能信息加密后存放在license文件中,在所述定版软件加载时校验。附图说明图1为本专利技术提出的共识文件生成原理的示意图;图2为本专利技术提出的对软件状态码进行验证的原理示意图;图3为本专利技术提出的生成共识文件的流程示意图;图4为本专利技术提出的通过共识文件验证文件状态的过程示意图。具体实施方式以下结合附图对本专利技术的具体实施方式作出详细说明。本专利技术涉及一种基于共识机制的软件版本状态保护方法,包括如下步骤:S1:软件研制单位定义共识机制,确定共识群体,并为共识群体成员分发证书;本专利技术中,应用于军用装备软件定型阶段,首先需要定义共识机制,根据共识机制,需要确定什么人能够生成、修改共识文件相关信息,什么人只能够进行信息的验证和再记录。只有需要传递软件版本时创建人能够生成、修改共识文件,而创建人指定的共识人只能够进行验证和再记录共识文件列表信息。确定共识群体,本技术主要用于软件流转过程中软件状态的管理,因此共识群体便是软件流转链上的各个成员,例如:研制总体定版软件后,需交付军代表,军代表收到软件后则首先交于测评单位测试通过后,再转交到试验部队,那么这一流程过程的共识群体便是软件研制单位、军代表、测试机构和试验部队。首先,基于RSA算法,根据大素数原理生成代表不同用户身份的公私钥信息,以密钥证书文件的形式分发给共识群体中的各种身份的用户;本专利技术该实施例中的共识群体的成员(或称为不同身份的用户)包括软件研制单位,军代表机构、测试机构和部队使用者。S2:为定版软件生成软件状态码,主要包括如下步骤:S21:对定版软件中的软件文件,按照文件夹、路径进行标识;软件产品软件研制单位负责研发软件产品,其研发的软件产品在定版后,都是由文件夹、子文件夹及大量源文件或编译后二进制文件构成;软件研发单位对定版软件中的部分内容进行标识,一个确定的定版软件,代表着基本所有文件的文件属性、文件内容、文件路径等不可发生改变,只有少量的配置文件内容可以进行修改,对于这种类似可以修改内容的软件文件,不需要进行状态信息生成和验证,软件研发单位对包含可修改内容的软件文件按软件文件目录路径列表方式进行标识;S22:对于未被标识的软件文件,首先进行散列计算,通过字符串压缩算法对经过散列的字符串文件进行压缩,获取软件文件信息指纹;对软件文件信息指纹进行数字签名后,使用Base64编码技术编码生成定长的共识标识;本实施例中采用的散列算法可以是MD5算法,SHA1本文档来自技高网...

【技术保护点】
1.一种基于共识机制的软件版本状态保护方法,其特征在于,所述方法包括如下步骤:/nS1:定义共识机制,确定软件流转链上的共识群体中的共识人;基于RSA算法,根据大素数原理生成代表不同成员身份的公私钥信息,以密钥证书文件的形式分发给一个或多个共识人;/nS2:为定版软件生成软件状态码,具体包括:对定版软件中经常会发生改变的软件文件,按照文件夹、路径进行标识;对于未被标识的软件文件,首先进行散列计算,通过字符串压缩算法对经过散列的字符串文件进行压缩,获取软件文件信息指纹,即软件状态码;对软件文件信息指纹进行数字签名后,编码生成定长的共识标识;/nS3:根据软件流转中共识群体涉及的共识人,分别校验共识人公钥证书的有效性;为软件状态码添加共识人的公钥证书,形成共识文件;/nS4:根据软件流转中的流转顺序,将所述定版软件和共识文件通过混合加密的方式发送给其他所述一个或多个共识人,并由所述一个或多个共识人按照流转顺序对其中已有的软件状态码的数字签名进行校验,如果校验通过,则为共识文件添加多重数字签名。/n

【技术特征摘要】
1.一种基于共识机制的软件版本状态保护方法,其特征在于,所述方法包括如下步骤:
S1:定义共识机制,确定软件流转链上的共识群体中的共识人;基于RSA算法,根据大素数原理生成代表不同成员身份的公私钥信息,以密钥证书文件的形式分发给一个或多个共识人;
S2:为定版软件生成软件状态码,具体包括:对定版软件中经常会发生改变的软件文件,按照文件夹、路径进行标识;对于未被标识的软件文件,首先进行散列计算,通过字符串压缩算法对经过散列的字符串文件进行压缩,获取软件文件信息指纹,即软件状态码;对软件文件信息指纹进行数字签名后,编码生成定长的共识标识;
S3:根据软件流转中共识群体涉及的共识人,分别校验共识人公钥证书的有效性;为软件状态码添加共识人的公钥证书,形成共识文件;
S4:根据软件流转中的流转顺序,将所述定版软件和共识文件通过混合加密的方式发送给其他所述一个或多个共识人,并由所述一个或多个共识人按照流转顺序对其中已有的软件状态码的数字签名进行校验,如果校验通过,则为共识文件添加多重数字签名。


2.根据权利要求1中所述的一种基于共识机制的软件版本状态保护方法,其特征在于:所述方法还包括:所述定版软件发布后,通过软件状态码对所述定版软件进行检测,确定其中文件是否被修改。


3.根据权利要求1中所述的一种基于共识机制的软件版本状态保护方法,其特征在于:将所述定版软件和共识文件通过混合加密的方式发送给其他所述一个或多个共识人包括:一个共识人与另一个共识人之间进行密钥协商,所述一个共识人和所述另一个公识人各自生成隧道加密密钥的生成因子;所述一个共识人采用所述另一个共识人的公钥加密其生成的隧道加密密钥的生成因子,并发送给所述另一个共识人;相应的,所述另一个共识人采用所述一个共识人的公钥加密其生成的隧道加密密钥的生成因子,并发送给所述一个共识人;双方各自用自己的私钥对加密信息解密后,各自都得到了对方的隧道...

【专利技术属性】
技术研发人员:柴关华张幼春卢云玲焦雯孟崎闫卫杰
申请(专利权)人:北京关键科技股份有限公司
类型:发明
国别省市:北京;11

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

1