﻿ 无线传感网络恶意节点识别算法
 计算机系统应用  2020, Vol. 29 Issue (2): 175-180 PDF

Malicious Node Recognition Algorithm in Wireless Sensor Networks
ZHOU Wen-Xiong, LIN Sui
School of Computer Science and Technology, Guangdong University of Technology, Guangzhou 510006, China
Foundation item: Science and Technology Plan of Guangzhou Municipality (2017010160012)
Abstract: In order to improve the security and credibility of wireless networks, a novel algorithm based on node trust value is proposed based on the random parallel cluster head selection algorithm. With the distributed strategy, the algorithm can select, identify, and delete cluster head nodes fairly and evenly. Simulation results show that the improved algorithm is more effective than the traditional algorithm in preventing malicious nodes from participating in data communication, and can make wireless network communication more secure and reliable.
Key words: cluster elections     node trust value     malicious nodes     security control

1 算法设计 1.1 簇头节点的可信选举

 图 1 无线传感网层次路由的拓扑结构

 ${\rm{Max}}\left( {{{TH}}{{{S}}_{{p}}}} \right) = {{\omega }} * {{\alpha }} * {{OT}} + {{\beta }} * {{{C}}_{{P}}} - {{\gamma }} * {{D}}$ (1)

 ${\rm{Max}}\left( {{{TH}}{{{S}}_{{p}}}} \right) = {{\varpi }} * {{\alpha }} * \left( {{{m}}\left( {{T}} \right)} \right){{ + \lambda }} * {{M}}\left( {{{T, - T}}} \right) + {{\beta }} * {{{C}}_{{P}}} - {{\gamma }} * {{D}}$ (2)

 ${p^ * } = f\left( {\alpha ,\beta ,\gamma } \right)$ (3)

1.2 算法优化

① HRBNT之运行过程呈周期性, 其可分为数次循环. 如簇头的能量小于一定阈值或该轮运行操作即将结束时, 当前簇头发布重新选择信息, 进入后面的循环运行操作, 并选举新的簇头.

② 每一次运行过程中, 各个节点会依据本身的运行状态考虑是否成为候选簇头: 每一个节点会生成一个[0, 1]间的随机数, 假设阈值T(n)大于随机数, 那么此节点可选作候选簇头, 然后邻居节点会收到它选作候选节点的广播. 在每一次循环过程中, 若节点曾经被选取为簇头, 则需要设置T(n)为0, 如此当选过簇头的节点就不会再一次成为簇头, 从而实现提高其他节点当选概率的目标; 在当选过簇头的节点个数逐渐增多时, 其他节点当选为簇头的阈值T(n)也会增长, 节点生成比T(n)小的随机数的概率随之提高, 因此其他节点当选的概率就会增大. T(n)的基本计算式(4)如下:

 {{T}}\left( {{n}} \right)= \left\{ {\begin{aligned} & {\frac{{{P}}}{{1 - {{p}}\left[ {{{r}}\;od \left( {\dfrac{1}{{{p}}}} \right)} \right]}}\frac{{{{er}}}}{{{{ei}}}}}\\ & 0 \end{aligned}} \right. (4)

③ 若节点生成的随机数大于T(n)或者其已被选作簇头, 那么可作为成员节点, 等候接收候选簇头的广播讯息. 如果此节点接收到了若干候选簇头节点的广播讯息, 那么就查找本地相关的纪录, 对拥有较低信任值的节点进行排除, 收集信任值较高的节点. 成员节点在选择加入某簇结构之后会发送相应的请求包, 告知该候选簇头. 候选簇头的选举过程如图2所示, 其中的1、2和3号节点为候选簇头节点, 4号节点为成员节点, 虚线表示成员节点的通信半径. 4号节点排除信任值较低的2号节点, 计算1号节点和3号节点的簇头选举函数, 并向选举值最大的1号节点发送请求包, 请求加入该簇.

 图 2 实际网络联机情形

④ 候选簇头发送广播消息后, 等候接收其他节点的请求包. 在簇头接收到来源于全部节点发出的加入申请之后, 它就会对本地的信任纪录加以运用, 对具有恶意节点的请求进行排除, 从而确保簇的全部成员是安全可信的. 同时, 经过等待接收簇头的考察, 仅行为良好的节点才能和簇头节点连接, 预防恶意节点频繁的加入簇导致过多消耗簇头能量. 簇结构的形成过程如图3所示, 其中4、5和6号节点为成员节点, 都向1号候选簇头发送请求包, 虚线圆表示簇头节点的通信半径. 由于6号节点信任值较低, 所以只接受4和5号节点的请求, 且信任值最大的5号为影子簇头节点[13].

 图 3 簇结构的形成过程

⑤ 簇头首先利用TDMA时分复用给其余节点提供方案, 通过广播把方案信息转发给簇结构中的全部节点, 以告诉节点什么时隙可以发送数据, 杜绝节点间互相共谋或者互相影响. 簇组员收到TDMA信息时, 立刻为对应的时隙转发消息. 全部簇节点的信息传送完成之后, 数据信息会被融合转化为其它信号, 再次发给其它簇头和基站. 节点间的数据通信可选用最短路径、泛洪广播和列分层级等不同协议, 实现形式须依据现实情况、网络功能和规格等确定, 在此不做深入讨论[14,15].

1.3 阈值的确定

 ${{E}}\left[ {{{CH}}} \right] = \sum\limits_{{{i}} = 1}^{{N}} {{{T}}\left( {{n}} \right)} * 1 = {{k}}$ (5)

 $1 * {{T}}\left( {{n}} \right) * \left[ {{{N}} - {{k}} * {{r}} * od \left( {\frac{{{N}}}{{{k}}}} \right)} \right] + 0 * {{k}} * {{r}} * od \left( {\frac{{{N}}}{{{k}}}} \right) = {{k}}$ (6)

 ${{E}}\left[ {\sum\limits_{{{i}} = 1}^{{N}} {{{{C}}_{{i}}}} \left( {{{r}} + 1} \right)} \right] = {{N}} - {{k}} * \left( {{{r}} * od \frac{{{N}}}{{{k}}}} \right)$ (7)

 \begin{aligned} {{E}}\left[ {{{CH}}} \right] &= \sum\limits_{{{i}} = 1}^{{N}} {{{T}}\left( {{n}} \right)} * 1 \\ &=\left( {{{N}} - {{k}} * \left( {{{r}} * od \frac{{{N}}}{{{k}}}} \right)} \right) * \frac{{{k}}}{{{{N}} - {{k}} * \left( {{{r}} * od \dfrac{{{N}}}{{{k}}}} \right)}} = {k} \end{aligned} (8)

 {{T}}\left( {{n}} \right) = \left\{ {\begin{aligned} & {\frac{{{k}}}{{{{N}} - {{k}}\left[ {{{r}}od \left( {\dfrac{{{N}}}{{{k}}}} \right)} \right]}}\frac{{{{er}}}}{{{{ei}}}}}\\ & 0 \end{aligned}} \right. = \left\{ {\begin{aligned} & {\frac{{{k}}}{{{{N}} - {{k}}\left[ {{{r}}od \left( {\dfrac{1}{{{p}}}} \right)} \right]}}\frac{{{{er}}}}{{{{ei}}}}}\\ & 0 \end{aligned}} \right. (9)

 ${{T}}\left( {{n}} \right) = \frac{{{P}}}{{1 - {{P}}\left[ {{{r}}od \left( {\frac{1}{{{P}}}} \right)} \right]}}\left[ {\frac{{{{er}}}}{{{{ei}}}} + \left( {{{{r}}_{{s}}}{\rm{div}}\frac{1}{{{P}}}} \right)\left( {1 - \frac{{{{er}}}}{{{{ei}}}}} \right)} \right]$ (10)

2 算法实验与结果分析

 图 4 HRBNT算法在网络攻击下的簇结构

 图 5 改进算法在网络攻击下的簇结构

3 结语

 [1] 祝凯捷, 蔡权伟, 林璟锵, 等. 密钥安全及其在虚拟化技术下的新发展. 密码学报, 2016, 3(1): 12-21. [2] 王栋, 熊金波, 张晓颖. 面向云数据安全自毁的分布式哈希表网络节点信任评估机制. 计算机应用, 2016, 36(10): 2715-2722. DOI:10.11772/j.issn.1001-9081.2016.10.2715 [3] 李明明, 乐光学, 代绍庆, 等. 无线mesh网络中可信协同信道资源分配策略. 电信科学, 2017, 33(5): 62-74. [4] 刘志锋, 陈凯, 李雷, 等. 一种多种攻击并发下的WSN生存性评估模型. 计算机科学, 2017, 44(8): 129-133, 161. DOI:10.11896/j.issn.1002-137X.2017.08.023 [5] Awad A, German R, Dressler F. Exploiting virtual coordinates for improved routing performance in sensor networks. IEEE Transactions on Mobile Computing, 2011, 10(9): 1214-1226. DOI:10.1109/TMC.2010.218 [6] Alajmi N, Elleithy K. Multi-layer approach for the detection of selective forwarding attacks. Sensors (Basel), 2015, 15(11): 29332-29345. DOI:10.3390/s151129332 [7] 段正飞, 冯军焕. 一种抵御虫洞攻击的安全定位方法. 传感器与微系统, 2019, 38(4): 51-54. [8] 付翔燕, 李平, 吴佳英. 无线传感器网络选择性传递攻击的检测和防御机制. 计算机应用, 2012, 32(10): 2711-2715, 2718. [9] 齐全, 王可人, 杜奕航. 基于信誉机制的认知Ad hoc网络分簇协作频谱感知. 计算机科学, 2017, 44(10): 103-108. DOI:10.11896/j.issn.1002-137X.2017.10.020 [10] 金鑫, 胡平. 无线传感器网络入侵检测系统模型. 传感器与微系统, 2016, 35(5): 46-48, 59. [11] 闫海云, 吴韶波. 基于能量和节点密集度的WSN路由算法. 物联网技术, 2015, 5(7): 42-45. DOI:10.3969/j.issn.2095-1302.2015.07.018 [12] 徐世武. 无线传感器网络分级成簇路由算法. 计算机系统应用, 2017, 26(2): 129-133. DOI:10.15888/j.cnki.csa.005569 [13] 吴银锋, 周翔, 冯仁剑, 等. 基于节点信任值的无线传感器网络安全路由. 仪器仪表学报, 2012, 33(1): 221-228. DOI:10.3969/j.issn.0254-3087.2012.01.033 [14] 刘金鑫. 无线传感器网络信任评估模型与方法研究[硕士学位论文]. 北京: 北京交通大学, 2015. [15] 胡向东, 蔡东强. 无线传感器网络安全加密成簇算法的设计及研究. 重庆邮电大学学报(自然科学版), 2009, 21(3): 421-424.