冯海滨 刘红
航空工业网络中心作为行业内信息共享的公共平台,与其互联的网络越来越多,带来了很大的边界安全管理风险。在实际管理中,由于网络边界的行政管理职责划分要求,航空工业网络中心不能真实了解到接入网络内部的具体安全情况,因此存在接入网络为了避免因安全问题遭到网络中心断网,假意宣称本接入网络是安全的等不信任现象。再者,网络中心要对接入网络实行断网等操作没有切实有力的数据依据,多网路连接的环境下,如发生安全事件,各网络为维护自身利益,各执己见,难以追踪事件发生的源头等情况均存在。
本文基于比特币区块链的技术特点和实现方式,主要借鉴区块链共享式存储、去中心化、數据不可篡改等特点,分析研究其对上述问题的解决方案,以期提升系统安全性的目标。
区块链是分布式数据存储、共识机制、加密算法等计算机技术的新型应用模式。区块链的本质是一个分布式的公共账本,使用分布式集体运作的方式,实现一套不可篡改的,可信任的数据库技术方案。任何人都可以对这个超级账本进行核查,但不存在一个单一的用户可以对它进行控制。在区块链系统中的参与者们,会共同维持账本的更新,且只能按照严格的规则和共识来进行修改。
(一)总体思路
针对本文提出的问题,结合问题场景,采用私有链的解决思路,以下对本次设计的多网络安全管理方案统一称为“安全值区块链”。
该方案通过在每个接入航空网络中心的节点上安装客户端程序,读取每个节点当前的运行状态(预先进行定义,比如是否安装杀毒软件,杀毒软件是否启用等等),并对状态进行自动检查打分,然后将该节点(以下简称发送方)的运行状态广播到其他节点(以下简称接收方),接收方经过验证,确认该广播信息有效后,对发送方节点的运行状态信息以一定的格式添加到“安全值区块链”中,保证该节点安全运行状态的原始数据真实有效,且不可被篡改。另外借鉴比特币中“钱包”功能对完整安全值区块链的数据进行提取和计算,获取每个节点在某一个周期内的安全得分值,从而为航空网络中心管理员采取安全措施(比如断网等操作)提供客观依据。最后还有一个运行在服务端的程序主要用于对客户端节点运行状态进行监控以及对安全值计分表模板的更新等。
(二)功能设计
该系统的实现需要设计一套分布式的计分系统,由服务器端和客户端构成。客户端程序主要有四个功能:
(1) 网络路由:统计节点安全运行状态信息,基于最新《安全值计分表》对节点当前运行状态进行计分从而形成多条记录,并将这些记录打包,连同本节点的数字签名信息广播给其他节点。
(2)验证:类比于比特币节点的“挖矿”功能,接收方对广播信息进行验证和判断,如果确认信息由发送方发出,则将该节点的安全运行状态信息装入区块,并连接到区块链中,否则丢弃该节点的发包信息。
(3)完整区块链:接收方对经过验证的数据包进行封装形成区块,并连接到本地管理的完整区块链中,如果遇到分叉,则以最长的区块链为准。
(4)查分:类比于比特币区块链中的“钱包”功能,能够基于本地的完整区块链记录,实现某一周期内全网任意节点的安全值得分查询。
服务端程序主要有五个功能:
(1)对客户端程序和《安全值计分表》模板等进行更新和维护。
(2)监控全网中所有客户端程序的运行状态。
(3)维护全网中所有节点编号、主机名、IP地址、MAC地址的对应关系。
(4)控制客户端程序功能的启用或关闭。
(5)为所有终端、服务器提供客户端程序web下载服务。
(三)详细设计
1、安全值区块链网络
全网络中所有客户端、服务器等设备安装的客户端程序都应启用网络路由功能,仅启用该功能的节点称为轻节点。查分、完整区块链、验证功能应当依据设备负载情况适当开启,四个功能都启用的节点成为全节点。轻节点应至少与周围1~2个全节点连通,所有全节点应当连通,服务器节点应当与所有轻节点、全节点保持连通。安全值区块链网络拓扑结构和节点功能示意图,如图1所示。
图1 安全值区块链网络拓扑结构和节点功能示意图
2、安全值计分表
《安全值计分表》是各个节点进行安全状态检查并进行打分的的依据,主要由各种安全运行状态条目组成。其中常见的主机审计、瑞星、三合一等安全软件的运行状态是重要评分标准。具体模板如表1(取名aqzjf_ v1)所示。
该表中的条目、分值等内容可以在服务端进行增加、删除和修改,每次变更后应更新表名称后的版本号,并及时推送给客户端节点。
3、节点安全运行状态记录
客户端程序应及时从服务端下载最新版本的《安全值计分表》,以确保本节点收集到的安全运行状态计分值正确有效。节点安全运行状态记录格式如表2所示。
各节点应当按照最新《安全值计分表》中的每个安全运行状态条目进行信息收集并计分,所有的条目得分信息收集完毕后,该节点通过客户端程序将这些记录加密处理然后广播给其他具有验证功能的节点,所有节点都需发送给本网络中的全节点,全节点自身首先发送给自己。
4、安全运行状态记录加密
发送方首先将本节点的安全状态得分记录信息通过哈希值加密算法SHA256进行哈希运算,得到本节点得分记录的摘要信息①,然后通过本节点私钥(客户端程序安装后会为该节点自动生成一个私钥)进行加密,得到一个数字签名;发送方客户端程序将得分记录和数字签名一同广播发送出去。
5、接收方验证
接收方接收到广播信息后对其进行验证。首先将发送方发出的得分记录信息使用同样的哈希函数SHA256进行计算,得到摘要信息②,然后接收方使用公钥对数字签名进行解密,获取摘要信息①,最后比对两个摘要信息是否相同,如果相同,则证明接收到的得分记录是发送方发出,否则丢弃。
6、安全值区块链构建
接收方验证成功后,即可将发送方的得分记录信息进行封装,形成区块,并在该区块头部写入上一个区块的哈希散列值和发送方节点设备编号哈希散列值,这样一个新的区块完成并且被加入区块链(全节点的验证的区块加入完整区块链,轻节点验证的区块加入区块子链中)。如果其他全節点同时验证成功一个区块,则会产生分叉。由于分别认可两条分叉区块链后面的节点算力不同,所以经过一段时间后,总会产生一长一短两条链,那么拥有较短区块链的节点自动抛弃当前的链,把更长的链中新的区块全部复制过来,然后在这条链的基础上继续验证新的节点得分记录信息。
7、节点得分查询
基于全节点中保存的完整区块链,查分功能可以通过设备编号查看某一周期内各节点的安全状态所得总分情况,根据得分情况可以对某不符合要求的节点采取报警提醒、网络切断等措施。
(四)安装实施
每台终端通过访问服务器web服务下载安装客户端程序后,直接安装即可。安装完成后客户端会自动生成一个256位的随机数,该随机数默认为该终端或服务器的私钥,应当严格保密,外泄可能会导致客户端发出的本地安全状态统计信息被修改。客户端程序重装后私钥会发生变化,轻节点无影响,全节点需要同步完整区块链记录和初始化查分功能后方可重新验证区块和查分。
本文主要借鉴区块链共享式存储、去中心化、数据不可篡改等特点,设计了一个基于区块链的网络互联安全信任管理方案,通过设置安全值计分表规则,实施节点安全运行状态记录,并采用秘钥加密和区块链的数据存储方式记录节点安全运行状态,达到数据不可篡改、安全事实客观可信的目的,从而解决了不同网络互联后安全管理互不信任的问题。