基于区块链技术的防火监测系统数据共享方案★

2023-02-18 12:14蒋世超胡志栋李星乐欧阳婧璇
山西建筑 2023年4期
关键词:私钥公钥哈希

寇 允,蒋世超,胡志栋,李星乐,欧阳婧璇,薛 伟

(东北林业大学工程技术学院,黑龙江 哈尔滨 150040)

传感器、无线网络等物联网技术被广泛的应用于环境的监测[1]。王霓虹等[2]应用无线传感网络等技术,研建了监测温湿度、雨量等多种环境因子的面向用户的交互式平台。颜建辉等[3]将多传感器集成到传感节点,优化了基于无线传感器网络的环境监测系统的林区通信距离短和监测参数不全等问题。通过分析环境监测数据,采用人为因素改变某片作业场地的小气候[4]环境可有效预防火灾;当小型火灾发生时,可及时发现火情并进行扑灭;火灾发生后,便于进行火灾原因科学分析并进行精准追责。张新等[5]深度研究了火灾监测系统的火焰探测模块,较好地解决火焰探测的灵敏度低的问题。但传统的建筑工地和林区作业场地等防火监测数据系统采用中心化数据存储方式,数据容易遗失或被恶意篡改。同时,各作业场地有独立的森林防火监测系统,在互联网开放性环境中进行数据共享会存在信息的安全性与真实性不足,不利于经营管理,难以实现火灾科学预防和火灾后精准追责。

区块链将数据生成为区块,并将数据区块按时间顺序进行排列,以交易的形式实现数据共享。区块链中联盟链具有交易速度相对较快、数据中心化程度相对较低的特点。代明睿[6]通过引用区块链技术避免了铁路数据泄露的风险,并且实现了铁路数据共享的目的。钟玮琦等[7]阐述了区块链技术在城市消防系统中的应用,利用其数据不可篡改的特点为火灾发生的责任归属问题提供了准确的数据保障。高利等[8]提出了全新的数字化古籍管理区块链体系模型,代替了传统中心化古籍数据库的管理形式,保证了数据存储安全及数据可追溯性。

因此,本文将联盟区块链技术融合于森林环境监测数据采集系统之中,构建了基于区块链技术的防火监测系统(Fire Prevention Monitoring System Based on Blockchain Technology,FMBC)的数据共享方案。该方案是通过联盟区块链技术,使元数据经非对称加密后上传至联盟链网络内,确保防火监测系统的数据真实性以及安全性;将防火监测数据上传至星际文件系统(IPFS),实现数据储存;利用智能合约设置相应访问条件,保证各个主体内部防火监测数据的精准交易;通过代理重加密算法[9-14]更改密文加密方式,实现联盟内各个节点间防火监测数据的安全共享。

1 基于区块链技术的防火监测系统架构

传统的防火监测系统主要由数据采集层、数据传输层和人机交互层组成。本文以传统防火监测系统为基础,基于区块链技术,研究应用于建材存放地、林区作业场地等情景的防火监测系统数据的安全共享方案,在数据传输层和人机交互层之间研设数据共享层。数据采集层由若干传感器节点(Sensor Node)建立传感器网络,对光照、温度、湿度、风向风速和CO2浓度等相关数据进行采集。数据传输层中传感器节点所采集各类防火监测数据通过多条路由传输至协调器(Co-ordinator),并由协调器发送至原野服务器。人机交互层由防火指挥中心(Command center)担任联盟区块链网络中的主节点,生成区块并监控各户外工地、建材存放地、林区作业场地的环境。

数据共享层由原野服务器[15](Wild Server)负责完成数据融合、元数据上传、数据储存并担任联盟区块链内从节点。IPFS(Inter Planetary File System)是一种基于分布式协议的文件存储系统,负责存储传感器节点所采集的具体数据信息。可信第三方作为监管中心(SC),内置证书授权服务器和代理重加密服务器,为系统节点颁发证书、生成用户公私钥以及实现代理重加密。

传感器所采集的数据经协调器发送至原野服务器,完成数据采集及上传,而后由若干个原野服务器节点、防火指挥中心以及监管中心所组成的联盟区块链网络实现采集数据的元数据存储及共享,IPFS完成具体数据存储。具体架构如图1所示。

2 防火监测系统的数据共享方案与运行

2.1 无线传感器网络搭建

FMBC系统通过采集并分析林地温度、湿度、风向风速等数据,采用人为干扰的方式改变区域小气候环境,从而规避因自然因素引发的火灾。本文以林区作业场地为试验场地,采用非定位观测法[16]选取平均气温大于15 ℃,空气相对湿度小于40%,平均风速在6 m/s左右且地被物普遍干燥的林区作业场地进行传感器网络搭建。林区需要监控的范围较大,对传感器网络内部节点的时效性有较高的要求,因此必须选择尽可能低功耗的网络通信协议。综合上述要求,采用Zigbee网络拓扑结构中的簇树结构[17],具体结构如图2所示。

2.2 系统初始化

协调器节点、原野服务器节点以及防火指挥中心均需要在监管中心进行用户注册,并获取各自的数字证书及公私钥对,具体过程如下所述:

2)协调器节点选取私钥SKCS*并生成公钥PKCS*。协调器将(SKCS*,PKCS*)打包发送至监管中心SC,其利用自身私钥SKSC为其生成数字证书CertCS*。

3)原野服务器节点选取私钥SKWS*并生成公钥PKWS*。原野服务器将(SKWS*,PKWS*)打包发送至监管中心SC,其利用自身私钥SKSC为其生成数字证书CertWS*。

4)防火指挥中心选取私钥SKcommandcenter并生成公钥PKcommandcenter,将(PKcommandcenter,SKcommandcenter)发送至SC,其利用自身私钥SKSC为其生成数字证书Certcommandcenter。

2.3 采集数据上传及数据IPFS存储

2.3.1 采集数据上传

采集数据的符号含义如表1所示。

表1 符号含义

无线传感器网络中传感器节点Si将采集的datarad,datatem,datahum,datawin和dataCO2发送至协调器CSi,由其打包所有采集数据,记为数据集DATA。同时协调器生成数据集的哈希摘要,并利用协调器私钥对数据集进行签名,记为SgSignCSi;利用原野服务器节点公钥通过椭圆曲线加密算法加密该数字签名,记为EPKWSi(SgSignCSi),每隔3 min将数据集DATA与加密后的数字签名整合发送至原野服务器节点WSi中。WSi收到数据后,首先通过自身私钥解密获取数字签名,再利用协调器节点公钥进行数据来源性验证,最终得到一份数据哈希值。同时采用哈希算法对上传的数据集DATA进行运算得到另一个哈希值,记为Hash_DATA2。对比分析两者的哈希值,若不一致,则废弃数据;若一致,则备份哈希值用于后续元数据上传。考虑到非对称加密算法对大数据的加密时间较长,我们采取代理重加密算法以平衡系统的安全性与效率,即原野服务器节点WSi采用对称加密算法加密数据包DATA。将对称加密密钥Ek、经协调器节点CSi私钥签名的数据摘要SgSignCSi、原野服务器自身数字证书CertWSi、时间戳Timestamp整合打包后使用自身公钥PKWSi对其进行非对称加密生成基础数据信息包,记为Information,并与DATAEWSi整合生成为Message数据包发送至IPFS,具体过程如下:

CSi:(datarad,datatem,datahum,datawin,dataCO2)=DATA,H(DATA)=Hash_DATA,

SgSignCSi=SignSKCSi(Hash_DATA),EPKWSi(SgSignCSi),

WSi:DESKWSi[EPKWSi(SgSignCSi)]=SgSignCSi,DEPKCSi(SgSignCSi)=Hash_DATA,H(DATA)=Hash_DATA2;

判断:Hash_DATA=?Hash_DATA2,

DATAEWSi=EK(DATA‖Timestamp),

Information=EPKWSi(EK‖CertWSi‖SgsignCSi‖Timestamp)Message={(Information)+DATAEwsi},

2.3.2 数据IPFS存储

采用IPFS存储数据可解决区块链不适用于大数据存储的问题,同时可实现数据精简存储。

原野服务器节点WSi发送Message数据包至IPFS,IPFS将数据包分割为定量的数据储存块,利用哈希算法计算各个数据块的哈希值并将数据区块发送至相应储存节点,将各个区块哈希值整合再进行一次哈希运算,生成最终的文件哈希索引,记为hash(索引)。IPFS将文件hash(索引)发送至原野服务器节点完成数据IPFS存储。数据储存过程如图3所示。

2.4 元数据联盟链上传

原野服务器节点在接收到hash(索引)后,进行元数据上传操作。将备份的数据摘要Hash_DATA,IPFS反馈的哈希索引地址hash(索引)、原野服务器节点数字证书CertWSi、传感器节点位置Location整合打包生成元数据,记为metadata。利用原野服务器节点私钥对元数据进行数字签名后,通过调用智能合约将其上传至联盟区块链网络内,待联盟区块链网络验证其身份后实现进一步数据共识操作。元数据上传格式如下:

metadata={Hash_DATA‖hash(索引)‖CertWSi‖Location‖Timestamp};上传格式ESKWSi(metadata)。

本文FMBC系统的智能合约集成开发环境采用Remix-IDE,这是由以太坊组织开源的一款第一方针对以太坊协议(Ethereum protocol)的集成开放环。

2.5 数据区块共识

FMBC系统采用实用拜占庭容错共识算法来解决联盟链中数据区块的一致性问题。默认防火指挥中心为主节点,部署在瞭望台上的原野服务器为从节点,具体共识过程如下所述:

步骤1:各从节点上传的元数据信息由主节点收集并整合为一个区块,记为Set_(metadata)。为了便于后续查验,主节点将Set_(metadata)附上数据区块的哈希值以及主节点的数字签名和数字证书,发送至各个从节点。具体格式如下所示:

metadata1+metadata2+…+metadatan=Set_(metadata)
H{Set_(metadata)‖Timestamp}=
Hash_[Set_(metadata)]
SignSKcommandcenter{Set_(metadata)‖Hash_[Set_(metadata)]}=
Sgsigncommandcentercommandcenter⟹WS1→n:{Set_(metadata)‖
Hash_[Set_(metadata)]‖
Sgsigncommandcenter‖Timestamp}

步骤2:从节点收到数据区块后,验证其格式合法性,并且利用自身私钥对审核结果进行数字签名,将带有审核结果的数据区块发送给其他各个从节点,完成从节点相互核验。

步骤3:从节点收集并结合其他各个从节点的审核结果,在对比分析后将对比反馈信息发送给主节点。反馈信息包括该节点自身审核结果、收集的其他节点审核结果以及对比分析结果三,并附上该节点数字签名。

步骤4:主节点接收到所有从节点发送的反馈数据信息并逐个查验,如果从节点均赞同该数据区块上链储存,则主节点将数据区块、审核该数据区块的从节点数字证书、数字签名整合打包发送给所有从节点进行备份完成数据区块共识。若有部分从节点否定,则主节点向该部分从节点再次发送前述数据区块。该部分从节点审核后,反馈至主节点。主节点整合审核结果,若否定数量小于总节点数量的1/3则认为该数据区块合法,主节点发送数据区块至各个从节点完成数据区块共识。具体过程如图4所示。

2.6 联盟链节点数据共享

联盟区块链内节点采用点对点模式,各节点间可直接进行数据传输。数据上传者用自身私钥对区块进行签名,并利用智能合约设置公开访问的时间以及数据范围,限制条件部署在联盟区块链网络中的各个节点,数据访问者需遵循条件访问数据。原野服务器节点WSi将采集数据上传至IPFS系统中,元数据储存于联盟区块链网络中并且将访问限制条件部署于联盟内各节点。原野服务器节点WSk若想访问其数据,首先节点WSk向节点WSi发送数据访问申请,包括节点WSk的数字证书、公钥以及待请求信息的IPFS哈希索引地址,待其验证成功后节点WSi根据哈希地址在IPFS中下载完整数据。节点WSi使用自身私钥以及节点WSk的公钥生成重加密密钥rkWSi→WSj。将Information数据包以及rkWSi→WSj打包,并利用代理服务器节点公钥加密后进行发送。代理服务器节点在接收到数据包后利用自身私钥解密获取信息并使用重加密密钥rkWSi→WSk生成重加密密文Ck,并将其发送至节点WSk完成数据共享。具体传输过程如下所述:

Data Request: EPKWSi[CertWSk,PKWSk,hash(索引)]

WSi:DESKWSi{EPKWSi[CertWSk,PKWSk,hash(索引)]}⟹hash(索引)

SC:

WSk:

DESKWSk(Ck)⟹Ek
DEEk(DATAEWSi)⟹DATA

其中,Re KeyGen()为重加密密钥生成算法,Re Enc()为重加密密文生成算法。

上述步骤实现了节点WSi的数据共享,整个过程通过调用智能合约以交易的形式实现并将该过程保存在联盟区块链网络中。

3 系统分析

3.1 数据存储角度分析

安全角度:FMBC系统将数据信息经过对称加密后储存于IPFS系统,密钥采用了椭圆曲线非对称加密存储,这有效避免了防火监测数据的泄露。数据共享的过程中所有的数据均经接受方的公钥或等效公钥加密,私钥全部保存在各节点服务器本地,有效保证了传输过程的可信性。基于实用拜占庭容错共识的审核机制最大限度地保证了操作的合法性,可以有效避免非法节点上传的非法数据对链上已有数据的影响,保证了防火监测数据的真实性,能够为防火指挥工作提供可靠数据支撑。

效率角度:FMBC使用对称加密算法和基于实用拜占庭容错共识的审核机制,能够在毫秒级内完成节点数据的审核上链操作,有效满足防火监测数据存取实时性,能够及时发现火情,并关注火灾时事动向进行科学扑灭。

3.2 系统鲁棒性分析

该系统各分支节点具有较强的延展兼容性。当其中一个节点损坏时,不会对整个系统的运转产生影响,数据会自动负载均衡至其他正常节点。可根据实际情况,在满足技术要件的前提下有序增减,同时不影响现有数据。

3.3 与其他方案比较分析

将FMBC系统与部分数据存储共享系统在数据存储技术和感知能力等方面进行对比分析,如表2所示。文献[20]主要应用Hadoop分布式数据存储技术来储存数据,其在存取性能侧有其固有优势,但其安全性策略相比FMBC存在较大不足,存在泄密风险。文献[21]中其上链所需的时延相比FMBC系统也大幅延长到了分钟级,难以满足系统的实时性要求,存在环节风险。与文献[22]相比FMBC系统采用了代理重加密算法,在不需要共享数据拥有者私钥的前提下实现数据共享提高了系统安全性能。FMBC系统通过搭建无线传感器网络实现林区数据采集,并结合区块链技术和IPFS完成了数据上链与存储,通过调用智能合约以交易的形式进行森林环境监测数据的传输,并利用代理重加密技术在无需数据上传者私钥的情况下实现数据共享,既保证数据的真实、安全和可靠性,又实现毫秒级传输,为防火灭火提供实时数据支撑。

表2 方案分析表

4 结语

针对应用于户外工地、建材存放地、林区作业场地的传统防火监测系统数据易篡改、难共享的问题,本文所提出的基于区块链技术的防火监测数据共享方案,在传统防火监测系统的基础上,将采集数据加密储存于分布式文件存储系统元数据存于联盟区块链网络中,有效地防止数据遗失及恶意篡改,并通过调用智能合约以交易的形式实现数据共享。利用代理重加密算法规避了数据拥有者私钥泄露的风险,进一步提高安全性能,为土木工程、森林工程经营管理、火灾预防以及火灾追责的高效化和精准化提供安全可靠的依据。本方案还可做进一步改进,可增节点数量将气象部门与科研机构填入其中,进一步扩大数据共享范围。

猜你喜欢
私钥公钥哈希
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
哈希值处理 功能全面更易用
文件哈希值处理一条龙
一种基于混沌的公钥加密方案
一种基于虚拟私钥的OpenSSL与CSP交互方案
P2X7 receptor antagonism in amyotrophic lateral sclerosis
HES:一种更小公钥的同态加密算法
基于OpenCV与均值哈希算法的人脸相似识别系统