APP下载

基于区块链的航空导弹业务数据安全研究∗

2020-08-06丛林虎邓建球杨珍波

舰船电子工程 2020年6期
关键词:数字证书私钥公钥

方 轶 丛林虎 邓建球 杨珍波

(1.海军航空大学 烟台 264001)(2.92349部队 淄博 255100)

1 引言

航空导弹业务是航空导弹装备管理中的一项重要的经常性工作,覆盖了航空导弹的管理、维护、使用、运输等多个方面,其中涉及到需要登记记录的数据项多,数据量较大[1]。

部队普遍使用的仍然是纸质记录、存储方式,这种方式已经越来越不适合于部队信息化建设的要求,存在着许多弊端:人员在进行数据记录时往往会因为字迹潦草导致无法辨别;纸质材料容易被污染,通常集中存储于专门的档案室且无备份,存在着数据丢失、恶意篡改或销毁等隐患;许多相同的数据项填写占用了大量的工作,降低了工作效率;负责人签字时经常发生代签的情况,需要追责时导致责任划分不清;记录格式不规范,会存在笔误的情况,降低了数据的可信度;使用计算机进行数据分析时需要先将纸质记录的数据输入计算机,为工作带来不便。

虽然有些部队已经配备了数字化数据记录软件,能一定程度上解决上述传统记录、存储方式的弊端,但这只是完成了记录、存储形式的改变,基本没有考虑数据的可信度以及数据可溯源的问题。数据存储方式虽然变成了数字化存储,但仍然属于集中式存储,没用从根本上改变存储方式。

2008年,中本聪在其论文《Bitcoin:A Peer-to-Peer Electronic Cash System》[2]中首次提出了比特币,而区块链作为比特币的核心技术,对比特币系统的正常运转起到了至关重要的作用。区块链是一种基于密码学的分布式数据存储技术,它能够保证数据的可追溯性,并使数据难以被恶意篡改,同时实现了去中心化,具有匿名性、数据可信度高等特点[3]。区块链在我国的研究及应用才刚刚起步,主要用于物流[4]、医疗数据[5]、身份认证[6],商品追溯等领域[7],然而针对军事领域具体某个应用场景的研究非常少,且大多数研究都是在系统层面的研究[8]。

针对以上存在的问题,本文在考虑了航空导弹业务数据访问、记录以及存储等方面的基础上,应用区块链技术,以比特币数据结构为原型,根据航空导弹业务实际情况进行研究、改进与设计,旨在提出一种专门针对于航空导弹业务数据的专用数据模型,以实现数据分布式存储,提高数据的可信度,实现数据的可追溯。

2 区块链技术

2.1 区块数据结构

区块链最简单的定义就是将数据打包成一个个区块(Block),并使用某些密码学原理将区块连接起来组成一条由多个数据区块组成链条,即区块链[9]。区块中记录的并不只有需要存储的数据,还有许多用于安全验证的信息以及各种数字签名[10]。一个典型的比特币区块数据结构如图1所示,主要包括:块编号,前一个区块头的哈希值、一个用于证明工作量难度的随机数和难度目标、时间戳、用于验证区块体交易的一个总的哈希Merkle根。区块体主要包含该区块(账本)中的所有交易信息以及所有交易信息的Merkle根。

在典型区块数据结构中,版本号指当前区块链应用的版本;前区块Hash值是引用该区块链中前一个区块的Hash值;Merkle根是指该区块体中存储的交易数据的Merkle根Hash值;时间戳是该区块产生的近似时间;随机数是比特币系统中特有的用于工作量证明算法的计数器。其中Merkle根是区块链实现防篡改与数据追溯的重要保证,Merkle树是一棵二叉树,图2是一棵包含了4个交易数据的Merkle树,可以看出只要某个交易数据被篡改,根据Hash算法的杂凑算法特性,最后Merkle根的值就会出现非常大的变化,同时根据Merkle根还能够证明交易列表中的某笔交易是否存在[11]。同时Merkle根结构还能通过验证Hash值来确定被篡改交易数据的具体位置。

图1 典型区块数据结构

图2 简易Merkle树

2.2 区块链中的密码学

区块链是一种基于密码学原理及加密算法的保护数据安全的技术,密码学原理与加密算法对于区块链的重要性不言而喻。对所有区块链应用而言,最基础的密码学原理与加密算法是非对称加密算法以及Hash算法。

非对称加密是相对于对称加密而言的,传统的对称加解密方法是使用同一个秘钥加密,使明文变为密文,密文经过传输后再用同一个秘钥解密,将密文变为明文。对称加密的实现比较简单,但风险也很高,因为传输密文的同时秘钥也需要传输,增加了密文被破解的概率。在非对称加密中,将秘钥分为公钥和私钥,公钥用来加密,私钥用来解密,并且公钥公开,私钥不公开,私钥一般通过随机数生成算法得到,公钥根据得到的私钥计算得到,而且从私钥得到公钥的过程是不可逆的,因此基本不可能从公钥反推回私钥。这样即使公钥在传输过程中被他人获取,仍然不能对密文进行解密,相比对称加密算法,非对称加密算法的安全程度更高。现在流行的非对称加密算法主要有RSA算法、ElGamal算法、椭圆曲线加密算法等[12]。

Hash算法属于密码学三大类算法中的一类,或被称为“密码杂凑算法”或“散列算法”,它能将任意长度的二进制明文串映射为定长的二进制串,并且不同的明文几乎不可能映射为相同的二进制串[13]。Hash算法的作用相当于给数据赋予了独一无二的“数字指纹”,通常称之为摘要。Hash算法通常用来验证数据完整性,例如x是一个任意长的数据,摘要y由Hash算法生成,即y=h(x)。需要验证x是否完整时,假设待检验的x′,则摘要y′=h(x′)。若y=y′证明数据完整且无误,反之则说明数据中出现了改动。常用的Hash算法有MD5算法、SHA-1算法、SHA-256算法等,我国国家密码管理局也提出了国家商用密码杂凑算法SM3算法。王小云等人对SM3算法进行了分析,证明其性能在某些条件下优于其他Hash算法[14]。

数字签名技术在区块链中应用非常广泛,主要用来进行身份鉴别以及数据验证,其技术基础是非对称加密算法与Hash算法。数字签名过程如图3所示。

为了确保公钥的真实性,区块链中还引入了数字证书机制。数字证书是由证书认证机构(Certification Authority,CA)颁发给有资格进行数字签名的节点,使用X.509证书规范。证书中主要记录了签名对象信息、序列号、签发者、被签发者、签发的公钥等,确保了用户拥有公钥的合法性。一般证书认证机构采用DigiCert、GlobalSign等,也可以根据情况自行搭建本地CA系统。

图3 数字签名及验证流程

2.3 区块链中的数据同步

区块链的本质是一个基于P2P网络的分布式数据存储系统,每个节点都保存着一份共同维护的账本。分布式存储中最核心的问题在于如何保持网络中各个节点之间数据的同步性,同时还要容忍网络中存在的一些错误。在区块链中,保证数据同步的是共识算法。在区块链中常用的共识算法有PoW、PoS、DPoS、PBFT等[15],共识算法的目的都是为了满足在某些节点发生错误时,仍然能够保证分布式存储系统的一致性。

3 基于区块链的航空导弹数据安全存储系统设计

3.1 区块链中的数据同步

区块链系统网络范围,可以划分为公有链、私有链和联盟链[16]。公有链是对外完全开放,任何人都可以加入并使用的,没有权限设定、身份认证等功能,而且数据对任何人都可见;私有链则与公有链相反,私有链不对外公开,成员固定,数据对外完全不可见;联盟链介于私有链与公有链之间,可以有多个成员角色,成员加入时需要进行身份认证,且可以设置数据可见的成员权限。在三类区块链网络中,最符合航空导弹业务数据存储场景的是联盟链。基于联盟链的特点以及航空导弹业务数据存储场景,存储系统的主要组成如表1所示。

表1 系统主要组成

这五种组成部分指的是区块链网络中各个节点的角色,同一个节点可以同时兼任多种角色,但是CA节点和排序节点不能兼任,需要由特定成员完成。其中通信节点在需要进行通信时才设置,否则可以不用设置通信节点。以一个组织为例,数据存储系统网络结构如图4所示,图中的箭头指向表示数据传输方向。

3.2 航空导弹数据安全存储系统工作流程

为了更清楚描述系统的工作流程,规定如表2所示的符号使用规则。

图4 数据存储系统网络结构

表2 符号使用说明

以网络中各个节点集群的某一个节点为例,工作流程如图5所示,其中数字代表执行过程的顺序。

图5 系统工作流程

在系统工作之前,首先CA节点要为系统中的成员颁发数字证书,表明成员身份。共识节点需要根据CA节点颁发的证书Cert,使用证书中规定的随机数生成算法生成私钥PRK,根据PRK再生成公钥PUK,最后将PUK传递至排序节点,用来验证数字签名。

下面进行流程以及原理分析:

过程①指操作人员完成数据记录后,向网络中的记录节点提交需要存储的数据及Hash值,过程表述为

客户端→Any A:Data=data0∥Hash(data0)

客户端可以是单独的计算机,也可以是安装在记录节点上的客户端界面。客户端的作用是为操作者提供一个人机交互界面。这个过程只是将数据传送至记录节点,并提出操作请求。

过程②是记录节点将数据加盖时间戳,使用Hash算法生成摘要,再使用私钥加密进行记录节点的数字签名,提交至排序节点,排序节点验证记录节点的证书,判断数据来源是否为网络中的合法成员,过程表述为

若数字证书验证通过,执行过程③和④,排序节点将数据广播至所有共识节点,共识节点根据共识算法对数据进行审计,并验证签名。若审计结果与验证结果都通过,则对数据摘要使用私钥加密进行共识节点的数字签名,过程表述为

执行过程⑤时,排序节点收到共识节点发送的数据,对共识节点的数字签名进行有效性验证,并判断有效签名数量n是否满足共识算法中要求的有效数字签名数量N。若满足,则将该数据打包成区块并向全网广播,全网节点接收到该区块后存储在各自的存储器中,过程表述为:

在排序节点广播的数据Data中包含了区块数据结构中的基本数据项:data0是最初录入的数据,Ts是提交录入数据时加盖的时间戳,Hash(data0)是根据Hash算法生成的data0的摘要,用来生成Merkle根结构并作为下一个区块中的前区块Hash值。

4 安全性分析

4.1 人员身份认证

在系统设计中引入了CA节点,引入了X.509格式的数字证书,只有用户拥有数字证书才会被系统判定为可信任节点。可以设置不同种类的数字证书用来辨别身份,区分记录节点、共识节点以及排序节点。没有数字证书的用户没有资格加入该系统,记录节点不能参与共识节点的数字签名,为各个节点分发秘钥等都是通过颁发数字证书实现的。同时也可以通过数字证书限定用户的操作,实现对数据可见性、可操作性的控制。

4.2 数据传输安全性

在数据存储过程中需要在各个节点间通过P2P网络传输多次,虽然P2P网络的安全性比公开网络安全性更高,但也存在着受到外界攻击数据被篡改的风险。在该系统中使用了两次数字签名、数字签名验证以及多次Hash值计算,下面对上文所述的五个数据传输过程分别进行分析:如果在过程①中数据被篡改,在过程①完成后记录节点会发现数据与其Hash值不匹配,判定数据无效;如果在过程②、③和④中数据被篡改,在签名认证的时候会因为进行签名的Hash值改变导致签名认证失败,将判定数据无效;在过程⑤中数据被篡改,也会导致Hash值改变,当这个Hash值作为下一个区块中的前区块Hash值时,会导致各个节点之间区块数据不同步,系统会将发生错误的前区块作废,并重新进行数据同步。

4.3 数据存储安全性

对存储完成后的数据恶意篡改时,如果被篡改的数据块处于区块链的中部时,会导致Hash值改变导致下一个区块的前区块哈希值与该区块哈希值无法匹配,导致区块链断裂,数据将在下一次新区块加入时重新同步;如果被篡改的数据块处于区块链尾部,则将在下一个新区块加入时发现并重新同步数据。

5 结语

航空导弹业务数据量大,数据项多,重要程度高,实现数字化分布式存储时必然要求,区块链技术的去中心化存储、数据防篡改、可追溯等特点使其能解决诸多航空导弹业务数据记录、存储中的安全问题及隐患。本文提出的航空导弹业务数据安全存储系统,将区块链技术应用于航空导弹业务数据记录、存储场景,采用了典型区块数据结构、加密算法及安全防护措施。安全性分析表明本文设计的系统在人员角色管理、数据安全性以及真实性方面能够满足数据安全存储要求,在区块链军事应用方面具有一定应用前景。

猜你喜欢

数字证书私钥公钥
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序员把7500枚比特币扔掉损失巨大
神奇的公钥密码
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
PKI技术在SSLVPN中的应用
数字签名保护Word文档
一种公开密钥RSA算法的实现