收稿日期:2024-01-23
基金项目:2022—2023年兰州职业技术学院校级科研项目(2022XY-21)
DOI:10.19850/j.cnki.2096-4706.2024.06.014
摘 要:水下无线传感器网络具有开放共享和自组织的特点,导致其面临各种各样的威胁和攻击。针对现有检测方法存在的不公平性和不可溯源等问题,提出一种基于区块链的恶意节点检测方法。该方法利用区块链存储网络的节点数据,使用智能合约检测网络中的恶意节点,通过共识算法保证数据的一致性。实验结果表明,该方法不仅可以检测网络中的恶意节点,还能保证检测过程的公平性和可溯源性。
关键词:无线传感器网络;恶意节点检测;区块链
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2024)06-0062-04
Blockchain-based Malicious Node Detection Mechanism for Underwater Wireless Sensor Networks
CUI Yuan
(School of Information Engineering, Lanzhou Vocational Technical College, Lanzhou 730070, China)
Abstract: Underwater wireless sensor networks have the characteristics of open sharing and self-organization, which causes them to face various threats and attacks. In view of the unfairness and non-traceability problems of existing detection methods, a malicious node detection method based on blockchain is proposed. This method uses the blockchain to store the node data of the network, uses smart contracts to detect malicious nodes in the network, and ensures the consistency of the data through the consensus algorithm. Experiment results show that this method can not only detect malicious nodes in the network, but also ensure that the detection process is fair and traceable.
Keywords: wireless sensor network; malicious node detection; blockchain
0 引 言
作为占据地球表面积70%以上的海洋,不仅为世界各国贸易提供了低廉便利的通道,还蕴含着丰富的海洋资源,是现代经济社会发展不可或缺的关键要素之一。在国家海洋战略中,水下无线传感器网络(Underwater Wireless Sensor Network, UWSN)充当着关键角色,它通过实时监测海洋环境、收集海洋数据和提供水下通信,为保护海洋安全、推动海洋经济发展以及实现海洋环境保护与可持续发展等目标提供了重要支持[1]。这一先进技术在国防、科研和资源管理等方面的应用,使其成为促使国家海洋战略目标全面实现的重要工具。UWSN采用水声通信,本身就具有开放性、共享性、高误码率等特性。同时,UWSN的大部分节点部署在海洋中,由于存在洋流及潮汐等现象,网络拓扑时常会出现动态变化,UWSN多采用动态认证以便节点接入网络。更重要的是,UWSN的节点部署范围广,监控有困难,一旦有管理节点出现故障或被故意破坏,UWSN的安全性就很難得到保证,需要采取严密的防护措施来抵御可能出现的危险。
区块链作为一种去中心化的分布式数据库,具有透明性、匿名性、不可篡改、交易可溯源等特点[2],当已制定的规则被触发后,数据将自动执行和自我验证,该过程无须人工干预,区块链的这种特性与UWSN的安全验证完美契合。针对UWSN的特点,结合区块链的基础架构,构建基于分簇网络拓扑结构的UWSN区块链模型。由基站、成员节点等共同构建联盟区块链网络,并在此基础上提出了基于联盟链的恶意节点检测方法。该方法构建用于UWSN恶意节点检测的区块链数据结构和UWSN智能合约,利用区块链存储簇内各成员节点的数据,然后使用智能合约的共识算法检测各节点中数据的一致性,为UWSN中恶意节点的检测提供可溯源和可复现的检测过程。该机制可避免恶意节点对网络结构造成危害,还可防止恶意节点获取有效的网络数据,保证检测过程的公开透明,降低恶意节点检测的难度。
1 基于分簇网络拓扑结构的UWSN区块链模型
UWSN具有分布范围广、节点数量多等特点,为了便于管理UWSN的节点,需要对网络节点进行分簇。簇头节点负责收集簇内成员节点收集的数据,同时将收集的数据进行融合,统一发送给基站[3],最后由基站转发到地面站。簇头节点不仅负责收集数据,还负责簇内节点的管理。UWSN的拓扑结构决定了簇头节点一旦被入侵,整个网络的通信安全将无法得到保证,因此需要引入相应的安全机制来保证簇内所有节点的安全。
针对UWSN的这种特点,结合区块链的基本架构,参考分级管理制度,将UWSN划分为基站、簇头节点及簇内成员节点三级联盟区块链网络,共同负责区块链的管理,如图1所示。在联盟区块链中,只有获得授权的节点才能接入网络,其中,簇内成员节点负责采集数据并将数据发送给簇头节点;簇头节点负责收集簇内节点的数据并进行融合转发,同时对簇内节点进行管理,如成员节点的加入退出、节点的授权和验权;基站负责对簇头节点和簇内成员节点的认证和管理,同时将认证后的簇内成员节点信息发送给簇头节点,并将所有认证信息分布式存储在联盟链中。
图1 基于分簇拓扑结构的UWSN区块链模型
在该模型中,所有节点(包括基站、簇头节点和簇内节点)通过P2P实现数据传输[4],联盟链网络中不存在中心服务器或权威授权机构,因此联盟链之间由多个节点共同参与记账,同时维护各节点之间的通信安全。在联盟链中,单个节点失效并不会影响整个网络的功能运作,数据永久存储在各个节点上,以此保证数据的安全。
2 基于智能合约的恶意节点检测机制
2.1 恶意节点检测模型
为了更好地表示检测模型,我们将UWSN的运行框架与联盟链网络相互映射。在USWN中,sn表示簇内成员节点,cn表示簇头节点,bs表示基站,对应联盟链中的普通节点——ca节点、验证节点、合约执行节点,如图2所示。
图2 模型整体框架
在恶意节点检测模型中,sn表示普通节点,仅负责数据的采集和传输,并不参与联盟链的记账行为;bs表示合约执行节点,负责执行智能合约,对sn节点和cn节点进行认证,并将认证信息存储在联盟链中;cn节点担任ca节点或验证节点;验证节点由候选的cn节点担任,负责为簇内节点提供数字签名认证等功能,并对sn节点数据进行融合和转发。基于上述特点提出了水下恶意节点检测模型(Underwater Malicious Node Detection Model, UMND),其整体结构可以表示为:
(1)
其中,bs = {bsi|i ∈ N+},cn = {cnj | j ∈ N+},sn = {snk | k ∈ N+},Cmndb表示用于恶意节点检测的联盟链,sc表示联盟链Cmndb的智能合约,Transaction={tn | tn ∈ sn×cn×cn×bs,n ∈ N+}表示由各个节点之间的交易组合而成的有限集合,sn×cn是sn和cn组成的有限集合,sn×bs是sn和bs组合的有限集合;a表示sn与cn到Cmndb映射的函数;β表示每个sn组成的节点位置列表,表示其位置和ID。
为了更好地描述UMND,需要重新定义Cmndb,如图3所示,Cmndb中包含区块头和区块体两个部分,其中区块头包含有时间戳、随机数、区块头hash、前置区块hash、难度指标、Merkelroot等[5,6]信息;区块体包含区块生成过程中所有节点采集的数据,具体包括节点状态、节点ID、DT、FR、RT、NS、Nf等。
图3 Cmndb的数据结构
D1到Dn是存储在区块链中的节点采集数据,hash(1)表示簇D1内所有成员节点交易数据的hash值,hash(1,…,n)表示D1到Dn所有簇内成员节点交易数据的hash值。通过逐层计算hash值的方式,将最终的hash值存储在Merkleroot中。由于联盟链采用链式的数据结构,任何一个节点的交易发生变化,最终都可以直观地反应在Merkleroot中,从而保证数据不会被恶意篡改。该联盟链中所有簇内节点将采集到的数据在网络中广播,每个节点都计算hash值,参与记账并维护整个网络的数据安全,同时还需要对其他节点发送的消息进行验证,防止数据被恶意篡改。
2.2 UWSN的智能合约
智能合约是运行在区块链上的程序,相对于普通程序,智能合约能够保证在区块链每个节点上运行的结果完全相同,且一旦满足指定规则的条件,智能合约将自动运行,这一过程完全自动,不需要人工干预[7]。Cmndb的智能合约可以表示为:
(2)
其中,Cmndb(sc)表示智能合约,bs表示智能合约的发布者,cn表示需要bs授权的汇聚节点,sn表示可能出现的恶意節点,Cmndb表示如前所述的联盟链数据结构,δ表示是否为恶意节点的评价指标,nci表示区块链中各节点的信用值,QM表示定位簇内成员节点的具体方法。节点的信用值nci可以表示为:
(3)
其中,nci-init表示各节点的初始信用值,tcur表示当前区块创建的时间,tpre表示前一区块创建的时间,T(i)表示该节点在一段时间内收到的奖励或惩罚次数,rp(i)表示节点获得的奖励或惩罚值。联盟链中恶意节点的检测步骤如下:
1)bs发布智能合约Cmndb(sc)。
2)bs对cn授权,同时将cn指定为智能合约Cmndb(sc)的执行者和投票者。
3)簇头节点cn利用簇内成员节点定位方法QM获取所有sn,且sn中节点的位置与ID相对应,因此很容易定位簇内成员节点列表。
4)利用共识算法判断簇头节点cn所在簇所有成员节点的状态。
5)如果簇内所有成员节点的状态是正常的,则对所采集的簇内成员节点相关信息进行计算,同时计算各节点存储数据时的处理延迟DT、数据转发率FR,以及对数据采集的响应时间RT。
6)将簇内所有成员节点计算的结果(包括处理延迟DT、数据转发率FR、对数据采集的响应时间RT等)发送到节点通信函数[8]中,然后计算得到节点的通信质量Qtrans。
7)利用节点的通信质量计算各节点通信成功的次数SUCC和失败的次数FAIL。
8)利用节点通信成功的次数和失败的次数计算节点的信用值nci。
9)簇头节点cn利用节点sn的信用值,并使用vote()函数对簇内所有成员节点sn的ID进行投票,同时设定一个阈值ε,簇头节点cn判断簇内所有节点sn的信用值nci是否在阈值ε范围内,如果节点的信用值nci小于阈值ε,则判定该节点为恶意节点,同时输出该节点的ID,反之则判定该节点为正常节点。
10)通过ID来定位sn的位置。
2.3 基于智能合约的恶意节点检测方法
严格来说,恶意节点的定义存在一定的主观性,鉴于水下无线传感器网络所处的严苛环境,传感器网络节点很容易发生故障,相对于被攻击的节点,发生故障的恶意节点也可称之为恶意节点,也就是说,恶意节点的判断标准不应该是是否被攻击,而是采集的结果是否符合实际情况。因此在本文中,以信用值来判断节点是否为恶意节点。节点的信用值取决于节点的状态state、数据处理延时DT、数据转发率FR、节点响应时间RT等因素。在水下无线传感器网络中,为了保证网络的安全性,一部分节点作为备份节点处于待机状态,因此在恶意节点检测中需要将该类节点全部删除。对于正常工作的节点,需要额外采集节点的以下三类信息:
1)数据处理延时DT。指节点在一定时间T1内将采集的数据包存储转发处理所需的时间Tid,因此DT的取值范围为:
(4)
2)数据转发率FR。指节点的下一跳是否正确转发源节点采集的数据,该数据的主要目的是防止被恶意转发,FR的取值范围为:
(5)
3)节点响应时间RT。指在指定的时间间隔Titval内,节点cn从发出请求到收到节点sn有效回应的响应时间,并计算该时间间隔占指定时间间隔Titval的比例,因此有:
(6)
其中,bitpacket表示每个数据包中数据的长度,bw表示两个节点之间的无线传感器网络带宽,Pdist表示数据的传输距离,Pspeed表示数据的传播速度,Ptime表示数据的处理时间。
综上所述,可以计算簇内成员节点的一次数据传输的质量Qtrans,可以表示为:
(7)
其中,α、β、χ分别表示数据处理延时DT、数据转发率FR以及节点响应时间RT在数据传输中所占的权重,且α + β + χ = 1。
为了更好地计算节点的信用值,可以给定一个阈值k,当Qtrans≤k时,节点通信成功次数可以增加1,表示该簇内成员节点的信用值增加,反之通信失败的次数加1,簇内成员节点的信用值降低。同样增加一个新的阈值ω,当节点的信用值低于阈值ω时,就可以判定该簇内的该成员节点为恶意节点。
3 仿真实验与分析
3.1 实验环境
在仿真实验环境中,使用Truffle开发框架编写和测试实验环境。Truffle框架具有项目管理、智能合约编译、迁移测试等功能,同时还具有区块链网络管理功能[9],较为适宜水下较为复杂的无线传感器网络。在本次仿真实验中,模拟了类似图1的水下无线传感器网络,有9个cn节点、326个sn节点、2个bs节点,其中113个节点处于备用状态,每个cn节点负责20~28个sn节点,每个cn节点的通信范围如表1所示。
表1 cn節点负责的sn节点列表(部分)
cnID sn列表 sn数量
cn1 1,3,5,6,7,8,10,11,13,14,16,18,19,21,23,
24,25,26,28,30,31 20
cn2 32,34,35,36,37,38,39,40,41,43,44,45,46,48,49,51,52,54,55,57,58,59,60 23
cn3 62,67,68,66,67,68,69,70,71,76,77,78,76,78,79,81,82,87,88,87,88 21
3.2 恶意节点检测模型的可行性分析
在恶意节点检测过程中,cn节点将采集到的数据(如节点状态state、处理延时DT、转发率FR、响应时间RT等数据)写入联盟链Cmndb中,然后计算节点的数据传输质量Qtrans和信用值,接下来所有cn节点根据信用值对其所在簇的sn节点进行投票,从而检测出恶意节点,同时记录所有节点的交易信息,如本实验中1号cn节点的服务质量和信用值如表2所示。
在表2中,State表示当前节点的状态信息以及执行命令的结果;Hash表示节点交易结果的hash值;From表示交易发送方,即合约部署者的地址;To表示交易接收方,即合约地址;Input字段的值由vote()函数的ABI码和输入参数拼接而成;Output字段表示节点sn1计算所得的数据,其结果由两部分构成,第一部分表示执行结果成功的次数,第二部分表示每次交易的结果[10]。其中“1”表示通信范围内所有sn1的信用值,节点的信用值越高表明该节点为恶意节点的可能性越低,当某节点的信用值小于阈值ε时,则可以认为该节点为恶意节点。
表2 cn1簇内节点sn1的服务质量和信用值
项目 值
State Truemined&executionSucceed
Hash 4E5D6ADB26C7B785F37CBB920642AF23
From 27583A69CB23Fce8E564BA352ABA8423867B
To Cn1:7DC822373D99aF9f244bd89A324fC4dDE52A
Input 43BdcD02Dabfe
Output “3”:“1,0,0,1,1,0”
4 结 论
水流或其他原因导致网络拓扑发生动态变化,而水下无线传感器网络由于具备自组织特性且缺乏可信任的第三方,因此提出了基于区块链的水下无线传感器网络恶意节点检测机制。该检测机制的原理是利用区块链存储网络的节点数据,使用智能合约检测网络中的恶意节点,通过共识算法保证数据的一致性,从而保证检测过程的公平性和溯源性。
参考文献:
[1] 王采薇,杜秀娟.水下无线传感器网络节点定位的定点神经网络算法研究 [J].信息技术与信息化,2020(5):231-233.
[2] 赵庆华,胡超凡.基于区块链技术的全过程工程咨询研究 [J].工程管理学报,2023,37(6):41-45.
[3] 苏毅珊,张贺贺,张瑞,等.水下无线传感器网络安全研究综述 [J].电子与信息学报,2023,45(3):1121-1133.
[4] 倪雪莉,马卓,王群.区块链P2P网络及安全研究 [J/OL].计算机工程与应用:1-15[2023-12-25].http://kns.cnki.net/kcms/detail/11.2127.TP.20231020.1100.004.html.
[5] 冯春波,阿不都热衣木江·阿白,葛翔,等.联盟链环境下物联网轻量级网关研究 [J].计算机技术与发展,2023,(33):128-135.
[6] 王海超.多域环境下基于区块链的访问控制关键技术研究 [D].郑州:战略支援部队信息工程大学,2023.
[7] 唐阳雨.无线传感器网络访问控制研究 [D].广州:华南理工大学,2021.
[8] 叶正旺.分簇无线传感器网络内部安全关键技术研究 [D].沈阳:东北大学,2022.
[9] 王胤禛.基于区块链的安全高效溯源方案研究 [D].西安:西安邮电大学,2023.
[10] 黄豪杰,吴晓晓,李刚强.基于区块链智能合约的物联网恶意节点检测和定位 [J].物联网学报,2020,4(2):58-69.
作者簡介:崔远(1980—),女,汉族,山东平度人,讲师,硕士,研究方向:物联网应用技术、人工智能技术研究。