CN112333208B - 区块链可信验证方法、装置及区块链一体机 - Google Patents
区块链可信验证方法、装置及区块链一体机 Download PDFInfo
- Publication number
- CN112333208B CN112333208B CN202110000650.6A CN202110000650A CN112333208B CN 112333208 B CN112333208 B CN 112333208B CN 202110000650 A CN202110000650 A CN 202110000650A CN 112333208 B CN112333208 B CN 112333208B
- Authority
- CN
- China
- Prior art keywords
- verification
- program
- environment
- hash value
- block chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种区块链可信验证方法、装置及区块链一体机,所述方法包括:基于区块链节点上待运行程序的镜像文件,对镜像文件进行静态验证;在通过静态验证后,基于待运行程序的运行环境特征信息,对特征信息进行环境验证;在通过环境验证后,基于区块链节点的ID信息,对ID信息进行身份验证;在通过身份验证后,基于区块链节点运行待运行程序,并获取运行信息,并对运行信息进行动态验证。本发明在运行程序启动前进行静态验证、环境验证以及身份验证,从而确保待运行程序可以安全启动,并在待运行程序运行过程中进行动态验证,避免运行程序被攻击和篡改,进而保证运行过程中的安全可信。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链可信验证方法、装置及区块链一体机。
背景技术
区块链技术是一种去中心化的分布式数据库技术,具有公开透明、不可抵赖、防篡改、可追溯等特点。
目前,区块链技术可以保证区块链节点运行程序在运行过程中数据的完整性,但运行程序在启动和运行时也会存在安全风险。
发明内容
本发明提供一种区块链可信验证方法、装置及区块链一体机,用以解决现有技术中区块链在启动和运行时存在安全风险的缺陷。
本发明提供一种区块链可信验证方法,包括:
基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证;
在通过静态验证后,基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证;
在通过环境验证后,基于所述区块链节点的ID信息,对所述ID信息进行身份验证;
在通过身份验证后,基于所述区块链节点运行所述待运行程序,并获取运行信息,并对所述运行信息进行动态验证。
根据本发明提供的一种区块链可信验证方法,所述基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证,包括:
基于所述镜像文件的哈希值,确定所述哈希值对应的待验证签名值;
若所述待验证签名值与预设签名值相同,则通过静态验证,否则进行错误提示。
根据本发明提供的一种区块链可信验证方法,所述运行环境特征信息指用于执行所述待运行程序的硬件和软件的属性信息集合;
所述基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证,包括:
基于各硬件的属性信息,确定各硬件对应的硬件哈希值,以及基于各软件的属性信息,确定各软件对应的软件哈希值;
基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值;
若所述待验证环境哈希值与预设环境哈希值相同,则通过环境验证,否则进行错误提示。
根据本发明提供的一种区块链可信验证方法,所述基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值,包括:
以各硬件哈希值和各软件哈希值为节点,构建默克尔树;
基于所述默克尔树上各节点对应的哈希值,确定默克尔根哈希值,并以所述默克尔根哈希值作为所述待验证环境哈希值。
根据本发明提供的一种区块链可信验证方法,所述基于所述区块链节点的ID信息,对所述ID信息进行身份验证,包括:
若预设ID列表中存储有所述区块链节点的ID信息,则通过身份验证,否则进行错误提示。
根据本发明提供的一种区块链可信验证方法,所述对所述运行信息进行动态验证,包括:
基于所述运行信息,确定所述运行信息对应的验证摘要值;
若所述验证摘要值与预设摘要值相同,则通过动态验证,否则进行错误提示。
本发明还提供一种区块链可信验证装置,包括:
静态验证单元,用于基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证;
环境验证单元,用于在通过静态验证后,基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证;
身份验证单元,用于在通过环境验证后,基于所述区块链节点的ID信息,对所述ID信息进行身份验证;
动态验证单元,用于在通过身份验证后,基于所述区块链节点运行所述待运行程序,并获取运行信息,并对所述运行信息进行动态验证。
本发明还提供一种区块链一体机,包括:
计算机硬件、固件、操作系统以及可信验证系统;
其中,所述可信验证系统包括如上所述的区块链可信验证装置。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述区块链可信验证方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述区块链可信验证方法的步骤。
本发明提供的区块链可信验证方法、装置及区块链一体机,基于区块链节点上待运行程序的镜像文件,对镜像文件进行静态验证;在通过静态验证后,基于待运行程序的运行环境特征信息,对特征信息进行环境验证;在通过环境验证后,基于区块链节点的ID信息,对ID信息进行身份验证;在通过身份验证后,基于区块链节点运行待运行程序,并获取运行信息,并对运行信息进行动态验证。由此可见,本发明在运行程序启动前进行静态验证、环境验证以及身份验证,从而确保待运行程序可以安全启动,并在待运行程序运行过程中进行动态验证,避免运行程序被攻击和篡改,进而保证运行过程中的安全可信。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的区块链可信验证方法的流程示意图;
图2是本发明提供的运行环境验证的流程示意图;
图3是本发明提供的区块链进程动态验证的流程示意图;
图4是本发明提供的区块链可信验证装置的结构示意图;
图5是本发明提供的区块链一体机的结构示意图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链技术诞生于比特币项目,是利用块链式数据结构来验证与存储数据、利用分布式点对点节点共识算法来生成和更新数据、利用密码学算法和协议保证数据传输和访问的安全、利用图灵完备语言进行智能合约编程和数据操作的一种全新的分布式基础架构与计算范式,具有公开透明、不可抵赖、防篡改、可追溯等技术特点,是分布式信任和协作内在支撑技术。
目前,区块链技术虽然可以保证区块链节点运行程序在运行过程中数据的完整性,但运行程序在启动和运行时也会存在安全风险,例如运行程序所在区块链节点不是可信任节点,运行程序所处环境不是可信任环境等,从而区块链中的数据会存在安全风险。
对此,本发明提供一种区块链可信验证方法。图1是本申请提供的区块链可信验证方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤110、基于区块链节点上待运行程序的镜像文件,对镜像文件进行静态验证。
具体地,区块链节点上的待运行程序运行之前,需要在节点上安装对应的程序文件,若程序文件来源存在风险,则会影响区块链中的数据安全。其中,镜像文件包含有对应程序文件的来源信息,即通过验证镜像文件,就可获知程序文件的来源和内容是否可信,若是,则允许在节点上安装启动该程序。
由此可见,本发明实施例通过对镜像文件进行静态验证,实现在待运行程序的启动阶段进行安全验证,避免来源不可信的程序文件在区块链节点上安装启动带来的安全风险。
步骤120、在通过静态验证后,基于待运行程序的运行环境特征信息,对特征信息进行环境验证。
具体地,在通过静态验证后,表明程序文件的来源和内容是可信的,因此可以在节点上安装启动相应的程序文件,以便后续运行程序。待运行程序的运行环境与用于执行运行程序的硬件(如固件,存储设备)和软件(如操作系统)相关,若硬件或软件的来源不可信,同样会造成安全风险。因此,在执行运行程序之前,需要对运行环境进行验证,确保运行程序所处的运行环境安全可靠。
本发明实施例基于运行环境的特征信息,如硬件或软件的名称、厂家等,判断运行环境是否安全可靠,若是,则允许待运行程序在该运行环境下运行,保证区块链系统的运行安全。
步骤130、在通过环境验证后,基于区块链节点的ID信息,对ID信息进行身份验证。
具体地,区块链是个分布式系统,系统里有很多节点。对于像比特币这样的公有链,通过下载完整的区块链,参与交易和挖矿,才算是节点。然而,在现在的比特币里,矿工,完全节点,轻量节点,甚至普通用户,在不同的语境下都可能被称为节点。由此可见,区块链中会存在各种各样的节点,而某些节点可能是不被信任的,若在这些不被信任的节点上运行程序,则会造成安全风险。
因此,本发明实施例在通过环境验证后,基于区块链节点的ID信息进行身份验证,若区块链节点的ID信息通过身份验证,则表明该节点是安全可靠的,即可以在该节点上运行程序。
步骤140、在通过身份验证后,基于区块链节点运行待运行程序,并获取运行信息,并对运行信息进行动态验证。
具体地,在通过身份验证后,说明区块链的运行环境和节点均是安全可靠的,因此可以在区块链节点上运行待运行程序。在执行运行程序时,由于运行数据是从外界输入的,而由于各种原因会发生输入数据无效或错误信息。为了避免程序运行时存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息,本发明实施例基于待运行程序的运行信息,进行动态验证,从而保证运行程序数据的完整性,避免运行程序被攻击和篡改,进而保证运行过程中的安全可信。
本发明实施例提供的区块链可信验证方法,基于区块链节点上待运行程序的镜像文件,对镜像文件进行静态验证;在通过静态验证后,基于待运行程序的运行环境特征信息,对特征信息进行环境验证;在通过环境验证后,基于区块链节点的ID信息,对ID信息进行身份验证;在通过身份验证后,基于区块链节点运行待运行程序,并获取运行信息,并对运行信息进行动态验证。由此可见,本发明实施例在运行程序启动前进行静态验证、环境验证以及身份验证,从而确保待运行程序可以安全启动,并在待运行程序运行过程中进行动态验证,避免运行程序被攻击和篡改,进而保证运行过程中的安全可信。
基于上述实施例,基于区块链节点上待运行程序的镜像文件,对镜像文件进行静态验证,包括:
基于镜像文件的哈希值,确定哈希值对应的待验证签名值;
若待验证签名值与预设签名值相同,则通过静态验证,否则进行错误提示。
具体地,在待运行程序的启动阶段,通过计算区块链程序二进制镜像文件的哈希值,使用私钥(如SM2)对区块链二进制镜像文件哈希值进行签名,得到待验证签名值,将待验证签名值与预设签名值进行比对,如果计算得到的待验证签名值和预设签名值相同,则表明区块链程序文件来源可靠、内容可信,允许安装启动,否则拒绝区块链程序安装启动并给出错误信息提示。
其中,镜像文件的哈希值可以采用SM3算法获取,SM3算法对于任何一个给定的消息,都很容易就能运算出散列数值,并且难以由一个已知的散列数值,去推算出原始的消息,从而可以有效保证文件的安全性。
本发明实施例提供的区块链可信验证方法,基于镜像文件的哈希值,确定哈希值对应的待验证签名值,以及基于预设签名值,对镜像文件进行静态验证,实现在待运行程序的启动阶段进行安全验证,避免来源不可信的程序文件在区块链节点上安装启动带来的安全风险。
基于上述任一实施例,运行环境特征信息指用于执行运行程序的硬件和软件的属性信息集合;
基于待运行程序的运行环境特征信息,对特征信息进行环境验证,包括:
基于各硬件的属性信息,确定各硬件对应的硬件哈希值,以及基于各软件的属性信息,确定各软件对应的软件哈希值;
基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值;
若待验证环境哈希值与预设环境哈希值相同,则通过环境验证,否则进行错误提示。
具体地,待运行程序的运行环境与用于执行运行程序的硬件(如固件,存储设备)和软件(如操作系统)相关,若硬件或软件的来源不可信,同样会造成安全风险。因此,在执行运行程序之前,需要对运行环境进行验证,确保运行程序所处的运行环境安全可靠。
其中,运行环境特征信息指用于执行运行程序的硬件和软件的属性信息集合,如代表其身份的属性值集合:ID、名称、版本号、生产厂家、出厂日期等。基于各硬件的属性信息,可以采用SM3算法确定各硬件对应的硬件哈希值,以及基于各软件的属性信息,可以采用SM3算法确定各软件对应的软件哈希值。然后基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值,通过比对待验证环境哈希值与预设环境哈希值,若两者相同,则表明待运行程序的运行环境安全可信,通过环境验证,否则进行错误提示。其中,预设环境哈希值可以作为配置项预先写入区块链的创世区块进行存储,本实施例对此不作具体限定。
本发明实施例各硬件哈希值和各软件哈希值,确定待验证环境哈希值,以及基于待验证环境哈希值与预设环境哈希值,进行环境验证,从而实现验证运行环境的可信性,保证区块链系统的运行安全。
基于上述任一实施例,基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值,包括:
以各硬件哈希值和各软件哈希值为节点,构建默克尔树;
基于默克尔树上各节点对应的哈希值,确定默克尔根哈希值,并以默克尔根哈希值作为待验证环境哈希值。
具体地,默克尔树常见的结构是二叉树,但它也可以是多叉树,它具有树结构的全部特点。默克尔树是从下往上逐层计算的,就是说每个中间节点是根据相邻的两个叶子节点组合计算得出的,而根节点是根据两个中间节点组合计算得出的,所以叶子节点是基础。
因此,本发明实施例以各硬件哈希值和各软件哈希值为节点,构建默克尔树,相应地默克尔树上各节点对应的是各硬件哈希值或各软件哈希值,然后把相邻两个哈希值合并成一个字符串,运算这个字符串的哈希值,然后依次向上,最终得到默克尔根哈希值,将其作为待验证环境哈希值。可以理解的是,哈希值可以采用SM3算法获取。
基于上述任一实施例,基于区块链节点的ID信息,对ID信息进行身份验证,包括:
若预设ID列表中存储有区块链节点的ID信息,则通过身份验证,否则进行错误提示。
具体地,区块链中会存在各种各样的节点,而某些节点可能是不被信任的,若在这些不被信任的节点上运行程序,则会造成安全风险。因此,本发明实施例通过获取区块链节点的ID信息,将其与预设ID列表进行比对,若其存在于预设ID列表中,则表明该节点是安全可靠的,即可以在该节点上运行程序;若其不存在于预设ID列表中,则表明该节点不可信,即该节点的身份认证不通过,不允许在该节点运行程序。
本发明实施例在通过环境验证后,基于区块链节点的ID信息进行身份验证,从而实现待运行程序在可信的节点上运行,保证了区块链系统的数据安全。
基于上述任一实施例,对运行信息进行动态验证,包括:
基于运行信息,确定运行信息对应的验证摘要值;
若验证摘要值与预设摘要值相同,则通过动态验证,否则进行错误提示。
具体地,在通过身份验证后,说明区块链的运行环境和节点均是安全可靠的,因此可以在区块链节点上运行待运行程序。为了避免运行程序被攻击和篡改,本发明实施例基于运行信息,确定运行信息对应的验证摘要值,若验证摘要值与预设摘要值相同,则表明运行程序可信,在运行过程中数据没有被攻击或者篡改,因此可以继续运行程序。
本发明实施例提供的区块链可信验证方法,基于验证摘要值与预设摘要值进行动态验证,避免运行程序在运行过程中被攻击和篡改,进而保证运行过程中的安全可信。
基于上述任一实施例,区块链可信验证方法包括如下步骤:
首先,获取区块链节点上待运行程序对应程序文件的二进制镜像文件,并采用SM3算法获取镜像文件对应的哈希值,并基于SM2算法计算镜像文件哈希值对应的签名值,若与预设签名值相同,则表明文件来源可靠,可以在节点上安装待运行程序。
在节点上安装待运行程序之后,获取待运行程序的运行环境特征信息,并基于环境特征信息获取默克尔根哈希值,将其与区块链创世纪区块中的预设默克尔根哈希值进行比对,若相同,则表明运行环境安全可靠,可以在该运行环境执行待运行程序。如图2所示,运行环境特征信息包括国产处理器、国产固件以及国产操作系统的特征值,采用SM3哈希运算得到各特征值对应的哈希值,将上述计算出来的哈希值依次相邻合并成一个字符串后,再采用SM3算法计算该字符串的哈希值,依次向上计算出最终的默克尔根哈希值,并将默克尔根哈希值作为配置项写入区块链的创世区块中,区块链节点运行程序启动时,调用可信验证程序接口,获取运行时的国产化运行环境默克尔根哈希值;将计算所得的国产化运行环境默克尔根哈希值与创世区块中配置的预设国产化运行环境默克尔根哈希值进行比对,如果两者不相同,给出错误提示并退出启动。
在确认运行环境可信后,需要确认待运行程序所在的节点为可信节点后,才可执行待运行程序。若区块链节点的ID信息预设ID列表中,表明该节点安全可靠,因此可以在节点上执行待运行程序。
接着,在运行过程中,为了避免运行程序数据被攻击和篡改,通过提取区块链节点待运行程序的基本信息(如占用端口,引用文件等),使用SM3算法计算基本信息对应的摘要哈希值,并将其与预设哈希值进行比对,若相同,则表明运行程序数据没有被攻击或篡改,否则提示错误信息至管理员。如图3所示,获取区块链节点运行程序进程,并判断区块链节点运行程序进程是否存在,若不存在,提示错误信息并通知系统管理员;若存在,提取区块链节点运行程序进程的基本信息,使用SM3哈希算法计算出摘要值;将计算出的区块链节点运行程序进程的摘要值与通过智能卡接口读取的区块链节点运行程序预存摘要值进行比对;若两者不相等,提示错误信息提示并通知管理员;若两者相同,间隔定时循环检查区块链节点运行程序。
下面对本发明提供的区块链可信验证装置进行描述,下文描述的区块链可信验证装置与上文描述的区块链可信验证方法可相互对应参照。
基于上述任一实施例,本发明还提供一种区块链可信验证装置。如图4所示,该装置包括:
静态验证单元410,用于基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证;
环境验证单元420,用于在通过静态验证后,基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证;
身份验证单元430,用于在通过环境验证后,基于所述区块链节点的ID信息,对所述ID信息进行身份验证;
动态验证单元440,用于在通过身份验证后,基于所述区块链节点运行所述待运行程序,并获取运行信息,并对所述运行信息进行动态验证。
基于上述任一实施例,所述静态验证单元410包括:
签名值计算单元,用于基于所述镜像文件的哈希值,确定所述哈希值对应的待验证签名值;
静态验证子单元,用于若所述待验证签名值与预设签名值相同,则通过静态验证,否则进行错误提示。
基于上述任一实施例,所述运行环境特征信息指用于执行所述待运行程序的硬件和软件的属性信息集合;
所述环境验证单元420包括:
第一确定单元,用于基于各硬件的属性信息,确定各硬件对应的硬件哈希值,以及基于各软件的属性信息,确定各软件对应的软件哈希值;
第二确定单元,用于基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值;
环境验证子单元,用于若所述待验证环境哈希值与预设环境哈希值相同,则通过环境验证,否则进行错误提示。
所述第二确定单元包括:
构建单元,用于以各硬件哈希值和各软件哈希值为节点,构建默克尔树;
环境哈希值计算单元,用于基于所述默克尔树上各节点对应的哈希值,确定默克尔根哈希值,并以所述默克尔根哈希值作为所述待验证环境哈希值。
所述身份验证单元430,用于:
若预设ID列表中存储有所述区块链节点的ID信息,则通过身份验证,否则进行错误提示。
所述动态验证单元440,包括:
摘要值计算单元,用于基于所述运行信息,确定所述运行信息对应的验证摘要值;
动态验证子单元,用于若所述验证摘要值与预设摘要值相同,则通过动态验证,否则进行错误提示。
基于上述任一实施例,本发明还提供区块链一体机,包括:
计算机硬件、固件、操作系统以及可信验证系统;
其中,所述可信验证系统包括如上所述的区块链可信验证装置。
如图5所示,区块链一体机由国产处理器、国产固件、存储设备、通信设备、国产操作系统、区块链系统、可信智能卡设备、可信验证程序九个部分组成。
其中,国产处理器执行程序指令,可选的范围包括飞腾、龙芯和鲲鹏处理器。国产固件是符合BIOS或UEFI规范的规定程序,是底层硬件和上层操作系统之间的衔接。存储设备储存区块链系统的历史账本数据和状态数据。通信设备是区块链节点之间连接和组网的通信媒介。国产操作系统管理底层硬件资源,创建和运行区块链程序进程,可选的范围包括麒麟操作系统和通信UOS操作系统。区块链程序是区块链节点的运行程序。可信智能卡设备是支持PCIe或USB协议标准的智能芯片设备,具有密码计算和存储功能。可信验证程序是后台进程程序,验证区块链的可信运行环境和区块链进程动态变化。
安全可信区块链一体机是一个完整的体系,处理器、固件、操作系统和区块链系统是其中的基础,需要从体系架构和软硬件总体的角度考虑安全可信区块链一体机的设计,确保区块链一体机在启动和运行的过程中安全可信。
可信启动是指区块链一体机启动过程中所有被执行的代码及引入的数据都必须通过验签认证。区块链一体机的可信启动包括区块链运行环境的启动和区块链自身的启动两个环节。区块链运行环境的启动是分阶段,分步骤来完成,涉及处理器、固件和操作系统等基础器件,包括固件程序启动执行、系统自检程序执行、系统加载器运行、运行操作系统的初试化程序、运行操作系统的系统程序等。
国产处理器、国产固件、国产操作系统为区块链系统的运行提供底层硬件和基础软件,扩大区块链一体机的可信已知边界,简化区块链一体机的信任链验证环节。
区块链一体机在区块链程序启动和运行过程中可以建立一种信任及信任验证机制,保证区块链系统的自主可信,确保区块链账本数据的完整性,机密性和不可否认性。区块链系统可信验证包括启动验证和运行时验证两种部分。启动可信验证是区块链启动时对区块链二进制镜像文件进行安全性检查,验证其完整性,并对区块链程序的运行环境进行可信验证,确保区块链程序在启动时自身和运行环境都是安全可信的。运行时可信验证是区块链节点程序在运行过程中,对其运行进程进行动态的校验,防止其运行进程被攻击和篡改,保障运行期间和过程中的安全可信。
可信智能卡设备和可信验证程序共同组成区块链一体机的可信验证机制,以可信智能卡设备为可信根,在国产化的可信基础运行环境与自主区块链程序之间完成交叉相互验证。可信智能卡设备是支持PCIe或USB标准的智能卡设备,具有密码计算和存储功能。可信智能卡设备通过驱动程序及其接口供操作系统和区块链系统调用。在区块链一体机的启动阶段,可信智能卡设备通过密码计算单元计算区块链程序二进制镜像文件的SM3哈希值,使用SM2私钥对区块链二进制镜像文件哈希值进行签名,与可信智能卡设备预存的签名值进行比对,如果计算得到的签名和预存的签名相同,认定区块链程序文件来源可靠、内容可信,允许安装启动,否则拒绝区块链程序安装启动并给出错误信息提示。在国产化处理器、固件、操作系统提供的可信基上,从身份和完整性两个方面对区块链程序镜像文件进行可信验证,从底向上增加信任环节,完成区块链一体机的整体信任链传递和构建,解决区块链一体机中国产化运行环境对区块链运行程序的信任问题。可信智能卡设备的存储空间还灌入区块链节点ID列表,区块链程序安装启动的过程中,通过智能卡的驱动程序和接口调用,检查区块链节点ID是否存在区块链节点ID列表,如果存在,继续启动;否则停止启动并给出错误信息提示。
在完成区块链一体机中国产化运行环境对区块链程序的可信认证之后,在区块链程序的启动过程中,可信验证程序基于创世区块中可信运行环境默克尔根的配置,对国产化运行环境进行逆向可信验证以及区块链程序进程运行过程中的动态完整性验证,完成区块链一体机从启动到运行的自主、安全、可信验证,建立区块链一体机整体的信任关系。
区块链一体机由计算机硬件、固件、操作系统、智能卡和区块链应用程序五个部分组成。计算机硬件主要指国产处理器,可选的范围包括飞腾、龙芯、鲲鹏等;固件是国产的BIOS或者UEFI固件;操作系统主要指国产操作系统,可选的范围有麒麟操作系统和通信UOS操作系统;智能卡是内置智能芯片的设备,PCEi卡和USBKEY卡都可以。智能卡充当可信根,在硬件和总线的基础上,对固件、操作系统、区块链镜像文件的安全可信进行验证,并且智能卡存储了区块链节点身份列表,区块链节点通过身份验证之外才能参与组网。区块链节点的启动过程中植入了可信性验证接口,通过对比区块链创世区块中配置的运行环境身份与实际环境身份,做出对运行环境的信任决策。在国产硬件、固定器件、操作系统的自主基础上,依托智能卡设备和区块链的可信性验证接口,完成区块链一体机启动过程中的安全可信启动,构建硬件、固件、操作系统、区块链程序之间的可靠信任关系。
从软硬件一体化上解决了区块链技术及其应用的自主可信问题,符合我国网络安全法和密码法的规定,有效杜绝和防御区块链技术应用中的安全和威胁问题。
本发明实施例提供的区块链一体机在区块链及其配套基础软硬件上具有完全自主知识产权,从软硬件一体化上角度进行区块链技术的自主可控设计和建设,复合区块链分布式信任技术和可信计算技术,打造区块链信创可信技术体系,抵御和防范区块链技术应用中的安全威胁和攻击。本发明实施例提供的区块链一体机整体考虑区块链源代码程序及其区块链应用程序的运行环境,将区块链的自主可行贯穿到计算机硬件、基础固件、操作系统和区块链应用程序,利用智能卡加密装置,构建底层硬件、操作系统和区块链系统三者之间的信任关系,提高区块链系统的安全性和可信性,从软硬件一体化和可信验证机制两个方面解决区块链基础设施的自主可控。
此外,本发明实施例中的区块链一体机从计算机硬件、基础固件、操作系统和区块链应用程序等硬件、软件两个层面统一整体考虑安全机制和防护策略,攻克了区块链关键核心技术及其配置软硬件的自主可信问题,使得区块链运行系统的自主知识产权和可信安全一体化,从根源上规避安全隐患。
本发明实施例中的区块链一体机基于可信计算信任链技术和区块链分布式信任技术将信任关系扩展到整个计算系统。基于硬件的可信验证接口和基于区块链的可信验证接口,构建区块链一体机的可信安全体系结构,以硬件智能卡构建可信根,实现区块链一体机的可信安全启动功能,并通过区块链可信验证接口,确保区块链一体机运行时环境的可信以及进程的可信。
图6是本申请提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)610、通信接口(CommunicationsInterface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行区块链可信验证方法,该方法包括:基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证;在通过静态验证后,基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证;在通过环境验证后,基于所述区块链节点的ID信息,对所述ID信息进行身份验证;在通过身份验证后,基于所述区块链节点运行所述待运行程序,并获取运行信息,并对所述运行信息进行动态验证。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的区块链可信验证方法,该方法包括:基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证;在通过静态验证后,基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证;在通过环境验证后,基于所述区块链节点的ID信息,对所述ID信息进行身份验证;在通过身份验证后,基于所述区块链节点运行所述待运行程序,并获取运行信息,并对所述运行信息进行动态验证。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的区块链可信验证方法,该方法包括:基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证;在通过静态验证后,基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证;在通过环境验证后,基于所述区块链节点的ID信息,对所述ID信息进行身份验证;在通过身份验证后,基于所述区块链节点运行所述待运行程序,并获取运行信息,并对所述运行信息进行动态验证。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种区块链可信验证方法,其特征在于,包括:
基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证;
在通过静态验证后,基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证;
在通过环境验证后,基于所述区块链节点的ID信息,对所述ID信息进行身份验证;
在通过身份验证后,基于所述区块链节点运行所述待运行程序,并获取运行信息,并对所述运行信息进行动态验证;
所述运行环境特征信息指用于执行所述待运行程序的硬件和软件的属性信息集合;
所述基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证,包括:
基于各硬件的属性信息,确定各硬件对应的硬件哈希值,以及基于各软件的属性信息,确定各软件对应的软件哈希值;所述硬件哈希值和所述软件哈希值是基于SM3算法确定的;
基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值;
若所述待验证环境哈希值与预设环境哈希值相同,则通过环境验证,否则进行错误提示。
2.根据权利要求1所述的区块链可信验证方法,其特征在于,所述基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证,包括:
基于所述镜像文件的哈希值,确定所述哈希值对应的待验证签名值;
若所述待验证签名值与预设签名值相同,则通过静态验证,否则进行错误提示。
3.根据权利要求1所述的区块链可信验证方法,其特征在于,所述基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值,包括:
以各硬件哈希值和各软件哈希值为节点,构建默克尔树;
基于所述默克尔树上各节点对应的哈希值,确定默克尔根哈希值,并以所述默克尔根哈希值作为所述待验证环境哈希值。
4.根据权利要求1所述的区块链可信验证方法,其特征在于,所述基于所述区块链节点的ID信息,对所述ID信息进行身份验证,包括:
若预设ID列表中存储有所述区块链节点的ID信息,则通过身份验证,否则进行错误提示。
5.根据权利要求1所述的区块链可信验证方法,其特征在于,所述对所述运行信息进行动态验证,包括:
基于所述运行信息,确定所述运行信息对应的验证摘要值;
若所述验证摘要值与预设摘要值相同,则通过动态验证,否则进行错误提示。
6.一种区块链可信验证装置,其特征在于,包括:
静态验证单元,用于基于区块链节点上待运行程序的镜像文件,对所述镜像文件进行静态验证;
环境验证单元,用于在通过静态验证后,基于所述待运行程序的运行环境特征信息,对所述特征信息进行环境验证;
身份验证单元,用于在通过环境验证后,基于所述区块链节点的ID信息,对所述ID信息进行身份验证;
动态验证单元,用于在通过身份验证后,基于所述区块链节点运行所述待运行程序,并获取运行信息,并对所述运行信息进行动态验证;
所述运行环境特征信息指用于执行所述待运行程序的硬件和软件的属性信息集合;
所述环境验证单元,包括:
第一确定单元,用于基于各硬件的属性信息,确定各硬件对应的硬件哈希值,以及基于各软件的属性信息,确定各软件对应的软件哈希值;所述硬件哈希值和所述软件哈希值是基于SM3算法确定的;
第二确定单元,用于基于各硬件哈希值和各软件哈希值,确定待验证环境哈希值;
环境验证子单元,用于若所述待验证环境哈希值与预设环境哈希值相同,则通过环境验证,否则进行错误提示。
7.一种区块链一体机,其特征在于,包括:
计算机硬件、固件、操作系统以及可信验证系统;
其中,所述可信验证系统包括如权利要求6所述的区块链可信验证装置。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述区块链可信验证方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述区块链可信验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110000650.6A CN112333208B (zh) | 2021-01-04 | 2021-01-04 | 区块链可信验证方法、装置及区块链一体机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110000650.6A CN112333208B (zh) | 2021-01-04 | 2021-01-04 | 区块链可信验证方法、装置及区块链一体机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112333208A CN112333208A (zh) | 2021-02-05 |
CN112333208B true CN112333208B (zh) | 2021-03-30 |
Family
ID=74302401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110000650.6A Active CN112333208B (zh) | 2021-01-04 | 2021-01-04 | 区块链可信验证方法、装置及区块链一体机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112333208B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014387B (zh) * | 2021-04-09 | 2022-07-19 | 杭州云象网络技术有限公司 | 基于硬件加密机的多维加密接口的改进方法及加密装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101925057A (zh) * | 2010-08-20 | 2010-12-22 | 河南省电力公司 | 一种电力系统用手机终端安全加固系统 |
CN106327184A (zh) * | 2016-08-22 | 2017-01-11 | 中国科学院信息工程研究所 | 一种基于安全硬件隔离的移动智能终端支付系统及方法 |
CN111538996A (zh) * | 2020-07-08 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 区块链一体机的可信启动方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10999075B2 (en) * | 2019-06-17 | 2021-05-04 | Advanced New Technologies Co., Ltd. | Blockchain-based patrol inspection proof storage method, apparatus, and electronic device |
-
2021
- 2021-01-04 CN CN202110000650.6A patent/CN112333208B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101925057A (zh) * | 2010-08-20 | 2010-12-22 | 河南省电力公司 | 一种电力系统用手机终端安全加固系统 |
CN106327184A (zh) * | 2016-08-22 | 2017-01-11 | 中国科学院信息工程研究所 | 一种基于安全硬件隔离的移动智能终端支付系统及方法 |
CN111538996A (zh) * | 2020-07-08 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 区块链一体机的可信启动方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112333208A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106656502B (zh) | 计算机系统及安全执行的方法 | |
TWI770022B (zh) | 電腦實施之控制方法、系統及控制系統 | |
van Oorschot | Computer Security and the Internet | |
CN108399329B (zh) | 一种提高可信应用程序安全的方法 | |
JP6371919B2 (ja) | セキュアなソフトウェアの認証と検証 | |
CN112153040B (zh) | 一种区块链系统应用智能合约安装部署管理方法 | |
JP2020526811A (ja) | ブロックチェーンスクリプトにおける制御フロー | |
CN113014539B (zh) | 一种物联网设备安全保护系统及方法 | |
JP2004265026A (ja) | アプリケーション認証システムと装置 | |
KR101969481B1 (ko) | 다이나믹 보안모듈 생성방법 및 생성장치 | |
KR20170089859A (ko) | 애플리케이션 무결성의 검증을 제공하기 위한 방법 및 디바이스 | |
EP3343424B1 (en) | Control board secure start method, and software package upgrade method and device | |
JP2017538217A (ja) | アプリケーション整合性の検証を提供する方法及びデバイス | |
JP6387908B2 (ja) | 認証システム | |
CN111506327A (zh) | 区块链节点热升级方法及相关设备 | |
US9665711B1 (en) | Managing and classifying states | |
CN112333208B (zh) | 区块链可信验证方法、装置及区块链一体机 | |
CN114338054B (zh) | 区块链可信数据传输、验证和获取方法及装置 | |
CN115934194A (zh) | 一种控制器启动方法、装置、电子设备及储存介质 | |
Crowther et al. | Securing Over-the-Air Firmware Updates (FOTA) for Industrial Internet of Things (IIOT) Devices | |
CN112861137A (zh) | 安全固件 | |
CN115021995B (zh) | 多渠道登录方法、装置、设备及存储介质 | |
CN107689934B (zh) | 一种保障信息安全的方法、服务器及客户端 | |
Xu et al. | A symbolic model for systematically analyzing TEE-based protocols | |
Jyothi et al. | Tpm based secure boot in embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |