基于区块链的军事数据云存储共享方案
2020-07-18张先洪劳宪银谭仁杨
◆张先洪 劳宪银 谭仁杨 梁 海
( 1.桂林长海发展有限责任公司 广西 541001; 2.桂林电子科技大学计算机与信息安全学院 广西 541004 )
信息化战争是信息时代的基本战争形态, 信息成为继物质、能源之后的一种新的战略资源,争夺信息优势成为战场决胜的非常重要因素之一,而这对信息的处理能力提出了更高的要求。云计算拥有强大的计算能力,为获取信息优势提供有力的保障,并且完全能够满足战场信息处理的实时性。云计算技术的发展极大地推动了传统领域技术在云计算平台下的新的应用。文献[1]中研究者利用云计算强大的计算能力和低廉的成本为诸如地球科学、生物信息科学、粒子物理学等电子科学提供科学计算能力,文献[2]中学者利用云计算的应用特性把海量的数据存储在云计算端,通过高速带宽传输,进行分布式数据处理计算挖掘。
尽管云计算技术在军事领域应用优势突出,但在云环境下数据安全存储仍旧面领着诸多问题。其中最突出的问题就是相关云数据的安全共享问题。在“军事云”服务中,每一个作战单元都可看作是云中的一台物理机,当作战单元遭受攻击或是毁坏后,可被理解成云中的一台服务器出现了“宕机”的现象,为了确保其他的作战单元可正常的运行服务,需要将正在工作的进程迁移到其他服务器上;为了让整体作战系统的独立单元无法感觉到“宕机”的发生,迁移的过程必须高速进行;为了进程能够在新加入的作战单元恢复运行,必须确保数据的完整性;另外如果当前进程处理的是机密数据或是关键的作战指令,必须确保这些数据能够及时地在每个作战单元之间共享,数据的迁移过程是安全可信的,不能发生任何数据的丢失或篡改现象。
区块链具有中心化、数据强一致性、传输安全、稳定的特点,在确保数据安全隐私方面,具有较为突出的优势。文献[3]为防止智能电网中的中心服务器遭受敌手的攻击、存储数据被恶意篡改的现象发生,通过选取多个基站组成智能电网中的联盟链存储网络系统,保证了智能电网中的信息可以安全存储。由于架构和资源的约束,物联网技术不能友好地适应多种安全技术,文献[4]将区块链与物联网相结合,不仅增强了物联网中物与物之间的联系,而且也为物联网系统的正常运行提供了安全的技术保障。
区块链作为分布式公开存储账本,本质上解决了数据共享各方的信任建立问题。而在区块链分布式环境下,大文件的保密安全分发需要借助IPFS技术。作为一种分布式分发协议,IPFS 的设计集成了DHT、BitTorrent、自认证文件系统 SFS 和 Git 的优点,提供了永久的去中心化存储文件的方法[5]。
针对“军事云”服务中的数据安全共享问题,军事业务系统间数据同步、交换的安全性和真实性问题,本文提供了一种基于区块链的数据同步解决方案,借助区块链去中心化、数据强一致性、传输安全、稳定的特性,采用了超级账本(Hyperledger Fabric)技术;在保证数据一致性的同时,确保了数据的真实可信。
1 背景技术
1.1 区块链
区块链技术起源于 2008年由化名为“中本聪”(Satoshi nakamoto)的学者在密码学邮件组发表的奠基性论文《比特币:一种点对点电子现金系统》[6]。伴随着比特币等数字加密货币的日益普及而逐渐兴起,区块链作为一种全新的去中心化基础架构与分布式计算范式,目前已经引起政府部门、金融机构、科技企业和资本市场的高度重视与广泛关注。区块链技术具有去中心化、时序数据、集体维护、可编程和安全可信等特点,特别适合构建可编程的货币系统、金融系统乃至宏观社会系统[7]。
区块链技术应用广泛,在众多领域发挥着关键作用,包括金融行业,商品溯源等。文献[8]将区块链的技术与金融证券业的登记、清算、结算等业务流程相结合,推动了证券金融业的发展。在电子商务存在安全隐患的大环境下,文献[9]将区块链技术运用到电商产品的溯源防伪、存储物流、商品存储等方面,在一定程度上规范了电子商务市场。
1.2 公钥加密为基础的密码学技术
使用包括软硬件、策略和规程集合的公钥基础设施为本方案密码学方案的基础。基于公钥基础设施中对公钥密码体质的密钥和证书的产生、管理、存储、分发等功能,规范底层区块链系统中各个功能节点之间的通信数据格式[10]。为保护用户的身份隐私,在区块链的网络环境下设计出基于 PKI的一次性身份认证模式[11]。系统中的用户会具有多个一次性信息,每次用户使用一次性身份进行交易时,系统设定其他的用户只需要验证交易用户身份的合法性而不能交易用户的身份信息。其他用户通过零知识证明与承诺的结合,能够实现这一目标并且保证了交易双方身份的隐私性。
1.3 IPFS
星际文件系统IPFS,是一种P2P拓扑结构的分布式超媒体文件分发协议[12],利用分布式哈希表解决数据的传输和定位问题。相比HTTP协议,IPFS采用基于内容的寻址方式而非基于域名;其分布式存储的特点使得 IPFS网络的运行效率、安全性高于HTTP网络,存储成本更低。信息存储到IPFS的节点中时,IPFS网络会根据该信息,利用哈希函数生成一个与该信息唯一对应的哈希。当使用该哈希在IPFS中搜寻文件时,星际文件系统会调用一个分布式散列表查找到文件所在节点,取回并验证文件数据。
2 基于区块链的数据云存储共享方案
2.1 方案整体架构
本方案主要由两部分构成:IPFS和Hyperledger Fabric区块链网络;两者的拓扑结构均由以下5种节点联结而成:即情报搜集节点、中心指挥节点、情报交换节点、审核部门节点以及监管部门节点。IPFS负责存储经过加密的大文件信息,将生成的哈希作为索引。Fabric网络建立各个节点之间的共识机制,通过执行智能合约将其他隐私信息写入区块链数据库。系统整体架构如图1所示(图中黑色实心箭头为情报数据流向)。
在方案中,搜集部门节点间先搜集情报数据上链并传递给所属的中心指挥节点;中心指挥节点获取情报数据后,接受并记录情报信息。情报数据经过非交互式零知识证明方式核验通过后,将情报核验数据上链;审核部门节点此时会按照一定的审核机制对情报进行抽检并将抽检结果上链;然后通过情报传递部门节点,经情报加密,合理分配密码技术。最后,监管部门节点实现对中心指挥节点、情报传递部门节点以及审核部门节点的监管,并进行责任公示。
图1 基于区块链的数据云存储共享系统结构
2.2 区块链底层设计
在该方案中,设计利用 Hyperledger Fabric作为主干区块链存储架构。作为联盟区块链的开源框架,Hyperledger Fabric在设计上包含了联盟链架构的主要特性。首先,Fabric系统中各部分以组织为单位,通常对各个组织进行联盟式管理,即系统初始化后,需要将生成的各个组织的相关证书全部提供给其他相关组织,或者这些证书由相关的组织自行生成,以后这些证书由所属组织独立维护。此时,所有参与的组织之间是对等的,可以共同参与整个联盟链的管理[13];其次,Fabric联盟链某种程度上只属于联盟内部的成员所有,只有通过成员服务提供(Membership Service Provider,MSP)完成注册的组织成员才能参与共识机制。因此,Fabric联盟链节点数相对于公有链较少,因此达成共识的速度较快。
Fabric架构的核心主要包括四部分:身份管理、智能合约、账本、交易。其架构如图2所示。
图2 区块链底层结构
身份管理,即决定某个网络实体是否加入该联盟链的机制。Fabric考虑到商业应用对安全、隐私、监管、审计、性能的需求,提高了准入门槛,组织成员必须通过MSP提供的服务完成认证,才能加入网络。通过公钥基础设施(Public Key Infrastructure,PKI)和去中心化共识机制,Fabric成员管理服务为整个联盟链网络提供身份管理、隐私保护以及可审计的服务。
账本是Fabric的另一核心组件,包含了区块连成的链和状态数据库,链用于记录历史交易,而状态数据库用于记录账本的最新状态。同时,Fabric使用P2P协议来管理这样的分布式账本,采取可插拔的方式来根据具体需求来设置共识协议。
智能合约即Fabric中的成员间的业务逻辑,实现该逻辑的代码被称为链码(Chaincode);相较于以太坊,Fabric中的Chaincode与底层账本分离,不存储在账本的状态数据库中,实现了逻辑和数据的相互独立。Chaincode通常通过Docker容器来运行,当容器启动时,该容器就会通过gRPC接口[14]与启动chaincode的Peer节点连接。
交易,在fabric中就是对智能合约的操作,通常分为部署交易和调用交易两种交易模式。执行部署交易,可以将 Chaincode部署到 peer节点上,使其能被调用;执行调用交易,则会调用chaincode中的相应函数,对账本中的状态数据库进行读写。
此外,Fabric为平台应用提供封装好的SDK,支持JavaScript、Java、Go编程,使得应用层可以通过SDK访问联盟链中的核心资源(包括账本、交易、智能合约等)。GRPC协议为超级账本底层的各种节点提供彼此交互的通道,使节点相互连接组成 P2P网络,并且节点之间的通信遵循分布式网络的 Gossip 协议。
2.3 数据隐私保护方案设计
系统用户间的情报指挥信息都必须要通过其他所有节点验证才能够上链,为保证系统中行为合法有效,需要对系统中所有的作战单元进行验证,而在验证过程中为保证隐私又不希望验证者看到待验证的真实内容,因此需要设计参数,通过验证交易参数间接验证上述各情报传递中的作战单元身份信息及情报数据的真实性、有效性。
在本文中,采用了非交互式零知识证明方案[15]来达到这一目的。其中,非交互零知识证明技术采用scipr-lab实验室的libsnark,以构建实现情报传递所需要的证明的约束系统,生成用于证明构建和验证的公共参数。以中心指挥节点对情报搜集节点的核验过程为例,在中心指挥节点对情报搜集节点进行数据核验的阶段,情报搜集节点作为证明者、数据审核节点作为验证者,将PKI作为可信第三方来进行非交互式零知识证明。整个核验过程如图3所示,PKI生成系统公共参数com,分发给情报搜集节点和中心指挥节点,情报搜集节点运行证明生成算法 Prove,生成证明。该算法的形式化描述为:
其中p为生成的证明,tran为情报搜集节点提供的交易参数,之后情报搜集节点将证明p和辅助验证参数a提供给中心情报节点。
中心情报节点接收到p和a,便可通过校验算法Verify进行校验。该算法的形式化描述为:
其中r为验证结果,该值为一个布尔值,表示验证是否通过。只有根据情报信息生成的证明信息通过了所有节点的认证,情报信息才能够上链。而该认证过程是使用证明信息而非实际的情报信息进行的,在保证数据隐私的前提下,验证了情报数据的真实性和有效性。
图3 非交互式零知识证明过程
2.4 星际文件系统存储方案设计
为保证情报文件在分布式系统环境下,能够安全、高速传输,本课题采用星际文件系统与密码学加密技术解决大文件在区块链分布式环境下的保密安全分发。作为一种新型分布式文件系统,IPFS结合加密技术能够将文件分块保密存储在各个分布式节点中。
在本方案中,以各个作战单元为中介,各个作战单元会将情报信息中的大文件经过公钥加密后请求存入IPFS,存储成功后获得该文件的哈希。在通过非交互式零知识证明方法完成核验后,通过执行智能合约,各联盟链节点达成共识后,该哈希值便完成上链,实现不可篡改的目标。当某个作战单元需要取出该文件时,使用目标哈希向IPFS搜索加密后的文件,获得加密文件后,使用作战单元自带的私钥进行解密,即可完成查询。整个文件存取过程如图4所示。
相比较于单独使用区块链存储敏感信息的方式,IPFS+区块链方式优势更加明显。首先,该方案中文件主要存储在IPFS中,而区块链网络上只是存储了文件的哈希,这样可以防止区块链的账本存储占用增长过快;其次,由于IPFS的分布式存储,可以避免系统因为其中的某个节点离线而导致数据无法访问的问题,新加入的节点可以快速地同步数据并投入使用,提高的作战指挥效率。
图4 文件存取示意图
3 方案实现简析
该方案在轻量级应用场景下,能够实现模拟战争环境对各个作战单元数据的实时同步还原,系统的吞吐量较高,延迟较小;并且当动态新增或剔除作战单元时,能够保证数据的完整性和安全性不收影响;同时,在军事数据云存储共享系统中通信传输时能够实现情报和指令数据的加密,保障了数据的不可逆性和持久化存储。通过前端能够实现节点网络可视化,展示节点数量、状态、负载情况。区块链系统运行过程中出现意外情况,包括节点程序崩溃、动态加入/退出、恶意节点伪造数据请求时,系统仍然能够完成数据的上链与查询。
4 结束语
军事领域的数据安全共享是军事信息安全方面的一个重要问题,如果在各个作战单元之间无法实时、安全的同步共享数据,则会给军事指挥作战体系带来很大的隐患。
本文提出的基于区块链的军事数据云存储共享方案,使用Hyperledger Fabric技术搭建了军事联盟链,将每个独立作战单元作为组织成员加入区块链网络,实现了作战信息去中心化式的存储与交互。其次,在信息核验过程中使用了非交互式零知识证明等关键密码学技术,通过验证交易参数间接验证各个作战单元身份信息及情报数据的真实性、有效性,保障了关键数据系统的隐私性。在此基础上结合IPFS分布式文件存储技术及公钥加密技术,解决了大文件在区块链分布式环境下的保密安全分发问题,在保证系统安全稳定运行的基础上,提高了军事数据云存储共享系统的扩展性,实现了军事指挥作战体系的效率化、安全化、隐蔽化。