赵 刚,刘 涛,李世兴,张 宾
(1.北方自动控制技术研究所,太原 030006;2.驻北京地区军代局,北京 100072;3.北京军代局驻太原地区第二军代室,太原 030006)
区块链技术拥有的去中心化、去信任化、可扩展和安全可靠等技术特点,可以很好地克服集中式数据管理平台的缺陷。基于区块链技术构建的有人/无人装备集群管理平台,通过分布式数据存储系统的应用方以及监管方共同参与数据管理,不仅能够确保数据完整性,而且能够让监管方及时识别数据篡改风险。作为分布式、可信任的数据基础设施,区块链所构建的信任生态系统可以在信息不对称、不确定的环境下生存,可以提高数据防篡改和安全可靠能力。因此,需要建立基于区块链的去中心化的数据共识机制,提升武器装备安全等级。
分布式存储技术是解决目前有人/无人集群下的武器系统存储问题的常用方法[1],通常利用冗余维护技术,通过分散在赛博空间网络上大量存储节点之前的协作,实现可靠的数据存储服务。但在武器系统分布式存储系统中,某些节点可能会暂时或永久失效,通常通过附加冗余数据来保证存储系统的可靠性和可用性[2]。为保证系统的可信度,近些年来,基于TPM 安全芯片的可信存储,逐步成为解决单武器平台的授权和可信问题的有效手段[3]。通常在可信计算平台上存储信息,是经过硬件BIOS中的信息认证,数据的存储是通过一个可信信任源开始,依次经过BIOS、操作系统再到应用程序,从而保证了数据存储的可信度。但是可信存储要求可信的认证过程来自于经过认证的可信源,在实际的武器系统中,通常是使用基于TPM 安全芯片来保障源头的可信性。但是这种机制存在两个明显的弊端:1)信息源头节点易面临集中式恶意攻击,从而导致单点失效,造成数据丢失;2)信息源头节点存储的数据可能会被恶意篡改酿成严重的后果[4]。
为解决过于依赖单一源头和中心化的安全机制,去中心化的区块链技术逐步在安全领域推广应用。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法,来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约,来编程和操作数据的一种全新分布式基础架构与计算范式[5]。该技术已经成为全球创新领域最受关注的话题。目前在虚拟货币、金融证券、公共治理等领域开展了探索应用[6],在军事领域只是启动了相关预研工作,还没有典型的军事应用实例。
军委科技委主任刘国治认为“人机混合智能将是未来智能的最高形式”,有无人协同作为混合增强智能发展的一个重要方向,成为未来高动态、强对抗、不确定任务等复杂战场环境克敌制胜的关键。随着信息技术、人工智能技术的加快发展,无人巡逻车、侦打一体无人车开始进入实用阶段,由于其作战效率高、可长期值守、即使平台损毁也无人员伤亡等特点,在军事领域呈现出广阔的应用前景[7]。美军已经开始利用已有的有无人协同技术构建“系统族群”,进行低开支、低风险、高效率的开发,无人系统族群由远程指挥系统指挥操控,多平台合力完成复杂作战任务,以一种颠覆性的新型作战模式主导未来战场[8]。俄军在叙利亚利用“仙女座-D”自动化指挥系统,指挥了一场以战斗机器人为主、人为辅的攻坚作战。我国有无人协同系统研究启动较晚,兵器xx 所等多家单位通过开展“陆用多智能体协同的控制与优化基础研究”项目,基本突破了有关可变自主遥操作、时延补偿控制、多通道人机交互、多智能体协同控制、无人平台指挥控制的多项理论与关键技术,初步构建了有无人战车协同编队、协同侦察、协同引导、协同火力打击的体系结构与指挥控制模式。然而,由于有无人协同之后数据多源、异构、可信问题尤为突出,对于数据的可信存储需求较为强烈。
有无人作战系统武器装备包括了有无人战车、侦查车、无人机等各型武器系统。各型武器系统通过立体互联的赛博空间网络,进行编队、态势、控制指令和协同信息等数据的实时接入、共享与管理。这些武器装备的敏感数据包括:有无人设备位置、实时态势信息、航迹信息、火力分配与控制、协同打击、人机交互等关键数据,是各型武器作战的核心。为实现战场信息的快速、实时、可靠存储,在有无人系统中,需要建立去中心化的共识机制,以及通过有线/ 无线多级通信节点组成的立体赛博空间网络,因此,采用区块链技术解决武器装备敏感数据的可信存储问题,是一个有效的技术途径。
在武器装备系统领域,区别于其他商用领域,敏感信息具有如下几个特点:
1)节点输出的数据难以验证。由于应用场景的特殊性,网络中的节点可能不具备对其他节点输出的数据进行验证的能力,如前方的探测数据在后方难以验证,指挥中心发出的指挥信息对于被指挥节点也难以验证。
2)节点是否有权限进行验证。部分武器装备的敏感数据,由于其特殊性不能像普通区块链数据一样进行广播,不同的武器装备之间敏感数据由于特性不同或者权限不同难以进行共享验证。
为解决上述问题,本文中设计了一种基于分类权限的多节点容错共识机制设计。
整个共识机制的建立基于如下模型:首先将系统中的节点按照权限关系进行集合划分,同一个集合内的信息能够互相进行共享,且同一个集合内依照投票机制进行主节点选取,当主节点出现后,其余节点都成为副节点;当某个节点有数据需要传递时会首先向主节点发起服务请求,主节点将请求分发给所有副节点,副节点处理完成后再回馈给起始节点,起始节点只要收到f+1(f 为有效阈值)节点回馈的相同结果,即认为该次数据传输完毕。
节点之间的关系进行分类分组,同组划分的依据表示着同组节点能够且需要互相进行验证,如节点ABC 同属探测节点中的同一组,那么ABC 之间将存在数据互相验证的义务,验证完毕后的数据会对其可信程度进行加权处理,例如节点A 发出的探测数据,节点B 在接收到后会进行验证,验证完毕后会将原探测信息中的可信置位加权,然后再次广播,后方节点先接收到A 的探测数据,然后接收到B 的数据后,会得知该条探测信息被证真或证伪,证真/伪次数超过阈值后,会对数据进行相应处理。如图1 所示。
图1 节点之间共识关系原理框图
整个共识机制的运行流程如下:
整个系统内的节点存储了对系统每个节点划分的集合以及分组信息,同时在每个节点内部维护消息日志用于记录该节点接收到消息。当主节点p收到请求m 时,主节点会将该请求向其所在集合内的所有副节点进行广播,为加速消息传输以及数据处理,整个传输分为3 个阶段:
1)预准备阶段
预准备阶段,主节点分配一个序列号n 给收到的请求,然后向所有副节点群发预备消息,预备消息的格式为<<PRE-PREPARE,v,n,d>,m>,其中v 表示集合编号,n 表示请求序列号,d 表示消息的摘要。在这一步时,消息的传输并不包含具体的数据信息,而是仅仅用于在整个系统内将拥有权限、能够验证的节点进行组织,同时序列号的添加使得数据更改可以追溯;而副节点收到预备消息后,首先会进行校验,只有满足如下条件时,才会接收此消息。
①请求和预备信息的数字签名正确,且摘要信息无误;
②与本节点所在的集合相同;
③本节点从未接收过序号为n 但摘要不同的信息(用于防范泛洪攻击);
④预备消息的序号在合理范围内。
满足上述条件后,传输进入下一阶段。
2)准备阶段
准备阶段时,初始节点会将信息发往所有符合要求的副节点,<PREPARE,g,n,d,i>,副节点通过分组信息,确认对该消息本节点是否具备验证资质,同时所有收到的副节点都将预备消息以及准备消息记录到本节点的消息记录中。
3)确认阶段
当副节点对请求信息进行确认之后,确认的流程条件为:
①数字签名正确;
②消息验证加权为正值;
③消息序号合法。
基于此种确认机制,副节点在确认完毕后会回复committed(m,v,n)消息表示其对消息确认完毕。当有f+1 个节点确认消息到达主节点时,表示该条消息被确认的次数超过了阈值,集合内所有节点同步更新该条记录。
上述的共识机制设计是一种静态共识,对于军事系统中的应用而言,通过分类权限、集合划分的形式,能够降低节点的同步共识需求,在节点数量相对固定、节点性质较为稳定的情况下,此种共识机制较为高效,当有节点退出或加入网络时,所有节点均需要更新自身的集合分组列表。
将区块链应用至武器装备存储体系中时,数据的传输大多数是在不同的节点之间进行。在所有节点初始化完毕构成一个闭合网络后,节点之间的数据传输通过之前设计的共识机制,以及安全监管机制的方式进行通信时,能够保证整个分布式系统的数据安全性甚至离线节点的安全性。但当系统内的数据想要导出亦或是外部的数据想要输入到系统中时,就难以避免会遇到数据可信接入的问题——如何确定外部拥有数据导出的权限?以及如何确定外部导入数据的可信程度?这两个问题如果没有一个合适的机制进行保证,那么之前设计的机制就无法得到安全保证。
为解决链外数据可信接入问题,本方案拟通过如下几种方式对链外数据接入进行控制:
1)专用接口硬件加密KEY 认证机制;
2)节点控制信息与存储信息的隔离机制;
3)数据输入输出的多节点记录认证机制。
2.3.1 专用接口硬件加密KEY 认证机制
针对有链外数据接入需求的节点,在节点上增加接口硬件加密KEY 部件(USB 或者网络接口),每套硬件KEY 为互相匹配的KEY-P 与KEY-N 两部分,每套硬件KEY 运行同样的加解密算法,只有外部设备使用与节点相匹配的硬件KEY,才能够与链内节点相连接,如图2 所示。
图2 专用接口硬件加密认证示意
基于此种专用的硬件加密KEY 认证机制,能够有效防止外部设备在没有合法KEY 的情况下进行数据接入,从物理层面上实现对数据链路的隔离控制,保证基础的接入安全。
2.3.2 节点控制信息与存储数据的隔离机制
链内节点在进行数据传输及验证时,需要对本身所拥有的权限,以及所有连接的节点信息进行验证,此部分信息存储在节点的控制信息表内,由节点本身进行维护。由于此部分数据较为敏感,如果外部节点获取到此部分信息,能够针对性地对系统内的其他节点进行攻击,或者更改节点控制信息,对网络内传输到本节点的数据进行伪造式攻击。因此,本方案拟对节点上的数据采用控制信息与存储数据隔离存放的机制,在进行链外数据输入输出时,只允许链外设备读取/写入存储数据,而控制信息仅仅允许链内节点进行更新修改。
2.3.3 数据输入输出的多节点记录认证机制
在上述两种链外数据可信接入机制之外,本方案还设计了数据输入输出的多节点记录认证机制。该种机制的工作方式如下:在外部设备通过上述两种认证方式接入之后,其所连接的节点会针对修改的内容生成文件变动记录,并将文件变动记录同步发送至集合内相关节点,相关节点会对文件变动记录进行记录,防止原节点的文件记录被篡改;源节点也会将导出的数据进行记录,同时将导出记录发送至集合内相关节点,进行多节点备份记录。
通过该种机制,系统内的节点能够对链外数据的接入进行冗余备份,实现对系统内输入输出数据的多节点共同记录,保证记录的可靠性,实现链外数据修改的可追溯性。
针对武器装备系统中的数据种类多样、数量冗杂的特点,为在多个节点之间对数据存储达成共识,本文设计了一种基于分类权限的多节点容错共识机制。基于此种共识机制,整个分布式系统能够对数据有效验证,同时分类权限也保证了敏感数据在有限范围内的传播,能够满足武器装备敏感数据存储体系的需求。同时,为解决链外数据接入带来的安全可信问题,本文对链外数据可信接入使用专用硬件加密通信接口、节点控制信息与存储数据隔离,以及数据输入输出的多节点记录机制,来解决链外数据可信接入问题。