System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于联盟链的软件完整性远程快速验证方法与系统技术方案_技高网
当前位置: 首页 > 专利查询>北京大学专利>正文

基于联盟链的软件完整性远程快速验证方法与系统技术方案

技术编号:40560135 阅读:9 留言:0更新日期:2024-03-05 19:22
本发明专利技术公布了一种基于联盟链的软件完整性远程快速验证方法与系统,对开发完成的待验证软件进行完整性度量,产生软件文件哈希值列表并发布,确定寻找地址方式;将寻址方式和哈希值存入版本列表;更新联盟链中的版本列表的哈希值;将联盟链作为软件系统的信任根,建立证据链;将软件的存储和管理成本高的版本列表与软件文件哈希值列表存储在外部设备上,并且保证其完整性。采用本发明专利技术提供的技术方案,能够实现高效、安全、全面的软件完整性远程验证。

【技术实现步骤摘要】

本专利技术属于计算机软件安全,涉及软件完整性验证技术,尤其涉及一种基于联盟链的软件完整性远程快速验证方法与系统


技术介绍

1、软件完整性验证技术。数字签名是一种软件完整性验证技术,软件发布者在发布的时候对应用进行签名,系统验证签名通过的时候,才可以成功安装应用。如windows需要对驱动签名进行认证,如果签名不通过,驱动就不能正常运行。但是这种机制需要安全中心自主收集公钥验证,厂商并没有形成联合机制。并且此种机制对安装后的软件文件缺乏验证,在软件安装后释放多个动态链接库文件,这些文件在软件运行前也需要进行验证。dpkg包管理程序同样具有验证功能,可以对安装后的软件文件进行完整性验证,但是它的哈希列表存储在本地,容易遭到篡改。因此这种方法主要是验证网络传输过程中软件文件没有被损坏,而不是防范恶意篡改。可信计算模块,如ima会度量软件文件的完整性,并验证存储在本地系统中的签名,但是这种方式的完整性状态时来自于系统的某一时刻,系统管理员无法判断此时系统完整性状态。

2、完整性度量技术。完整性度量是可信计算的一部分,以linux的完整性度量架构(ima)为例,会动态度量打开的软件文件的完整性,形成度量列表。远程度量技术,即通过可信计算的签名,将系统的软件文件的度量列表发送到远程机器中,同时保证度量列表的完整性,这一机制保证度量列表没有在传输中,或者发送前被篡改。完整性度量技术提供了软件文件的度量值,但是缺乏文件的正确完整性哈希值,因此需要用户自主收集文件的权威完整性哈希值,并和度量值进行对比,获得验证结果。

3、联盟链技术。联盟链技术是区块链技术的一种,它的每一个参与者都是明确了身份的,并且由pki机制进行身份鉴别。以hyperledger fabric为例,联盟链产生的交易需要签名来验证身份,需要系统中的参与者的有效签名。在联盟链中实现了数据库,可以存储相关的数据,在hyperledger fabric中是goleveldb或者couchdb。联盟链中实现了智能合约,可以处理读写的逻辑。联盟链中的智能合约是图灵完备的,可以实现各种逻辑的代码,实现身份鉴别和多种安全机制。因此联盟链技术特别适合多方协作的场景,可以方便地进行身份识别和相关的管理。但是联盟链技术的性能比较差,它的交易吞吐量始终是业务应用瓶颈,并且它的存储成本也过高。因此联盟链技术在参与者过多的情况下,需要突破性能瓶颈,实现轻量级的机制。目前的技术存在验证过程不安全,软件正确哈希值获取困难,验证效率低等缺点。


技术实现思路

1、针对上述现有技术存在的问题,本专利技术提供一种基于联盟链的软件完整性远程快速验证方法与系统,将联盟链作为整个软件系统的信任根,建立证据链,将软件的版本列表、软件文件哈希值列表等等存储成本、管理成本较高的部分存储在外部设备上,并且保证其完整性。

2、本专利技术中的联盟链主要和可信计算中可信链有关。可信链通常存在一个信任根,信任根的安全性一般由硬件可信芯片保证,在可信根的基础上,一级信任一级,最终建立起来一个可信链,从而保证整个系统的可信状态。在整个系统中,可信根最为重要,保证了整个系统的可信状态。本专利技术将联盟链作为整个系统的信任根,建立证据链。

3、本专利技术提供一种基于联盟链的软件完整性远程快速验证方法,对开发完成的软件(待验证软件)进行完整性度量,产生软件文件哈希值列表并发布,确定寻找地址方式;将寻址方式和哈希值存入版本列表;更新联盟链中的版本列表的哈希值;远程快速验证方法包括如下步骤:

4、1)获取待验证软件的名称和版本号。待验证软件的正确哈希值已经被发布。

5、2)读取远程待验证软件的度量日志,获取待验证软件的度量值,并通过可信签名和验证机制保证度量日志的正确性;

6、3)如果本地存在对应证据链缓存,读取本地证据链缓存,并从查询交易开始验证证据链的正确性。本专利技术的验证方法是逐级验证,通过联盟链的签名机制验证版本列表的正确性。版本列表中包含软件文件哈希值列表的寻址方式和哈希值,用于验证软件文件哈希值列表的完整性;如果联盟链签名机制验签通过,并且重新计算软件文件哈希值列表的哈希值,与版本列表中的哈希值一致则通过验证进入步骤6),如果不通过则进入步骤4)。

7、4)读取远程服务器的缓存,并且验证。

8、如果远程服务器存在对应的证据链的缓存,就进行验证,验证方法同步骤3,如果通过认证则进入步骤6),如果不通过则进入步骤5)。

9、5)以验证者的身份登录联盟链,查询软件的版本列表地址和哈希值,逐级访问验证,形成证据链,获取软件列表的完整性哈希值。

10、6)采用哈希值对比验证方法对比验证软件的度量值,得到验证结果。前面的步骤中,已经得到待验证软件的度量值以及发布者发布的完整性哈希值列表,两者一致则通过验证,不一致则不通过验证。

11、具体实施时,本专利技术实现了一种基于联盟链的软件完整性远程快速验证系统,包括外部存储系统、联盟链系统、度量验证系统三个子系统。

12、第一个子系统是外部存储系统,用于存储软件的版本列表和软件完整性哈希值列表,是具体存储系统。

13、软件在安装后会产生多个二进制文件,这些文件在软件启动运行的过程中应该是没有经过篡改的。软件发布者在一个版本的软件开发完成后,对软件文件进行度量(动态链接库等等可执行文件),形成此版本的软件文件的哈希值列表。软件发布者即可将该列表发布。在软件的版本列表中添加新版本的软件文件哈希值列表信息,至少包括软件文件哈希值列表的寻找方式及其完整性哈希值。

14、在一个可能实施方案中,软件文件哈希值列表包括该软件的所有的不可篡改的文件的标识及其哈希值。为考虑兼容性,文件标识可以使用安装时文件的默认绝对路径。版本列表中存储该版本软件文件哈希值列表的地址,及其完整性哈希值。

15、在外部存储系统中,可以根据版本列表中的软件文件哈希值列表的哈希值,保证软件文件哈希值列表的安全性,保证获取的软件文件哈希值列表是未经篡改的。

16、第二个子系统是联盟链系统,用于权限控制,联盟链系统的成员包括软件验证者以及发布者,他们的权限不同。联盟链系统存储软件版本列表的地址和哈希值,通过逐级验证的方法,保证外部存储系统存储内容的正确性。

17、联盟链系统具有多方协作、身份鉴别、不易篡改等等特性,是快速验证系统的信任根。对一个联盟链系统,新的用户加入需要联盟链中的成员同意,并且给予身份标识。在本专利技术中,联盟链的用户即软件发布者以及验证者。软件发布者需要在联盟链中写入软件相关的信息,至少包括版本列表的寻址方式以及版本列表的完整性哈希值。验证者需要读取软件的信息,但是不能写入。联盟链系统至少包括软件发布者的身份识别、权限管理以及存储软件相关信息的能力。

18、一般情况下,联盟链系统的交易需要多个成员进行签名,并且区块等数据需要多个节点进行存储。这导致联盟链系统在交易吞吐量,在本专利技术中体现为写入和查询能力比较低,难以满足本文档来自技高网...

【技术保护点】

1.一种基于联盟链的软件完整性远程快速验证方法,其特征是,对开发完成的待验证软件进行完整性度量,产生软件文件哈希值列表并发布,确定寻找地址方式;将寻址方式和哈希值存入版本列表;更新联盟链中的版本列表的哈希值;将联盟链作为整个系统的信任根,建立证据链;将软件的存储和管理成本高的版本列表与软件文件哈希值列表存储在外部设备上,且保证其完整性;

2.如权利要求1所述基于联盟链的软件完整性远程快速验证方法,其特征是,发布过程包括:

3.如权利要求2所述基于联盟链的软件完整性远程快速验证方法,其特征是,步骤2中的版本列表具体采用json的形式实现,外部存储系统使用ftp的匿名服务;在版本列表中包括软件文件哈希值列表的寻找方式即ftp服务器的地址,以及软件文件列表的哈希值。

4.如权利要求2所述基于联盟链的软件完整性远程快速验证方法,其特征是,步骤3中的联盟链具体是使用Hyperledger Fabric;在联盟链中,链码实现权限管理、身份鉴别以及读出写入操作;在参与者发起交易请求时,进行签名并附带自己的证书;链码读取参与者的证书,完成参与者的身份读取;软件信息中包括的拥有者字段对软件发布者的身份进行标识,只有软件发布者可对该软件进行写入或删除操作。

5.如权利要求1所述基于联盟链的软件完整性远程快速验证方法,其特征是,步骤3)中,具体是通过Linux的完整性度量模块IMA进行度量;远程传输具体使用远程度量值获取ACS方法;ACS将目标机器的度量值传输到本地,使用寄存器验证度量列表的正确性;在IMA度量的过程中,每个度量文件的哈希值和寄存器的哈希值进行拼接,再次进行哈希值计算,重新写入寄存器中;通过度量列表重建寄存器的值,并通过两者对比判断度量列表的完整性。

6.如权利要求5所述基于联盟链的软件完整性远程快速验证方法,其特征是,寄存器具体采用PCR10寄存器。

7.一种采用权利要求1所述基于联盟链的软件完整性远程快速验证方法的系统,其特征是,该系统的子系统包括:外部存储系统、联盟链系统、度量验证系统;其中:

8.如权利要求7所述的系统,其特征是,外部存储系统中的软件文件哈希值列表包括该软件的所有不可篡改的文件的标识及其哈希值;文件标识使用安装时文件的默认绝对路径;版本列表中存储该版本软件文件哈希值列表的地址及其完整性哈希值。

9.如权利要求8所述的系统,其特征是,联盟链系统包括身份鉴别、权限管理、版本列表信息的写入和读出;身份鉴别采用联盟链的公钥基础设施PKI机制;联盟链中实现链码,读取交易发起者的身份,包括查询和写入的交易;基于身份鉴别实现权限管理;联盟链系统中存储软件版本列表的地址和哈希值,保证版本列表的完整性。

10.如权利要求9所述的系统,其特征是,度量验证系统包括度量值获取、软件文件哈希值列表获取、对比验证;度量值获取具体是通过可信度量模块,获取远程机器的待验证软件的度量值;软件文件哈希值列表可在缓存中获取,或通过查询联盟链获取;获取的过程即形成证据链的过程。

...

【技术特征摘要】

1.一种基于联盟链的软件完整性远程快速验证方法,其特征是,对开发完成的待验证软件进行完整性度量,产生软件文件哈希值列表并发布,确定寻找地址方式;将寻址方式和哈希值存入版本列表;更新联盟链中的版本列表的哈希值;将联盟链作为整个系统的信任根,建立证据链;将软件的存储和管理成本高的版本列表与软件文件哈希值列表存储在外部设备上,且保证其完整性;

2.如权利要求1所述基于联盟链的软件完整性远程快速验证方法,其特征是,发布过程包括:

3.如权利要求2所述基于联盟链的软件完整性远程快速验证方法,其特征是,步骤2中的版本列表具体采用json的形式实现,外部存储系统使用ftp的匿名服务;在版本列表中包括软件文件哈希值列表的寻找方式即ftp服务器的地址,以及软件文件列表的哈希值。

4.如权利要求2所述基于联盟链的软件完整性远程快速验证方法,其特征是,步骤3中的联盟链具体是使用hyperledger fabric;在联盟链中,链码实现权限管理、身份鉴别以及读出写入操作;在参与者发起交易请求时,进行签名并附带自己的证书;链码读取参与者的证书,完成参与者的身份读取;软件信息中包括的拥有者字段对软件发布者的身份进行标识,只有软件发布者可对该软件进行写入或删除操作。

5.如权利要求1所述基于联盟链的软件完整性远程快速验证方法,其特征是,步骤3)中,具体是通过linux的完整性度量模块ima进行度量;远程传输具体使用远程度量值获取acs方法;acs将目标机器的度量值传...

【专利技术属性】
技术研发人员:文伟平王康张庆峰尹昊唐源
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1