, 胡昌振 1 , 赵小林 1 1. 北京理工大学 软件学院, 软件安全工程技术北京市重点实验室, 北京 100081;
2. 中国信息通信研究院 技术与标准研究所, 互联网中心, 北京 100191
收稿日期:2016-12-17
基金项目:国家重点研发计划项目(2016YFB0800700)
作者简介:马锐(1972-), 女, 副教授
通信作者:马科, 高级工程师, E-mail:make@caict.ac.cn
摘要:在无线传感网络中,现有的节点复制攻击检测方法存在检测率低、通信消耗高、存储消耗高等问题。该文提出一种基于单证人节点的分布式节点复制攻击检测(single-witness-based distributed detection,SWDD)方法。SWDD方法分为选择证人节点、生成声明信息、发送声明信息、验证证人节点和检测复制节点5个步骤。SWDD方法中引入单证人节点选择机制,采用随机数作为位置声明信息,利用多重映射机制进行证人节点验证,并由最终证人节点完成对复制节点的检测。在OMNeT++平台上进行仿真实验,结果表明:SWDD方法在检测率、通信消耗和存储消耗方面均优于SDC(single deterministic cell)和P-MPC(parallel multiple probabilistic cells)方法。
关键词:无线传感网络节点复制攻击分布式检测单证人节点多重映射机制
Single-witness-based distributed detection for node replication attack
MA Rui1, ZHU Tianbao1, MA Ke2

, HU Changzhen1, ZHAO Xiaolin11.Beijing Key Laboratory of Software Security Engineering Technology, School of Software, Beijing Institute of Technology, Beijing 100081, China;
2.Internet Center, Institute of Communication Standard Research, China Academy of Information and Communication Technology, Beijing 100191, China
Abstract: Existing approaches for detecting node replication attacks in wireless sensor networks have low detection rates, high communication costs and high memory costs. This paper presents a single-witness-based distributed detection (SWDD) method to node replication attacks. This method consists of 5 steps:selecting a witness node, generating the declaration information, sending the declaration information, verifying the witness nodes, and detecting the replication node. The method has a single witness node selection mechanism, uses random numbers to describe the node location, verifies the witness nodes using a multiple mapping mechanism and finally detects the replication nodes by the ultimate witness node. Simulations on OMNeT++ comparing this method with the single deterministic cell (SDC) and parallel multiple probabilistic cells (P-MPC) methods show that the SWDD method has a better detection rate, less communications and less energy consumption.
Key words: wireless sensor networknode replication attackdistributed detectionsingle witness nodemultiple mapping mechanism
无线传感网络(wireless sensor network,WSN)可以实时收集数据[1],给人们带来极大便利,但同时也带来了DoS攻击、Sinkhole攻击等安全问题[2]。大部分攻击都可以采用基于密钥管理的加密机制解决,但仍有一些攻击,例如节点复制攻击,难以检测。
节点复制攻击中,攻击者通过技术手段俘获WSN中的一个或多个节点,从而获取这些节点的全部信息。同时,攻击者使用获取的信息重新制作一个或多个复制节点,并将复制节点安插在WSN中。通过控制这些复制节点,攻击者可以窃取敏感数据、篡改关键数据、破坏网络连通性、加速WSN通信消耗等[3-6],给WSN带来严重危害。
检测节点复制攻击遵循的主要思想是“检验WSN中是否存在多个ID相同、位置信息不同的传感节点,若存在,即存在复制节点”[7]。检测工作可以由基站节点或部分传感节点完成,由此可以将检测方法分为集中式检测和分布式检测2大类。
集中式检测中,WSN的所有传感节点将其位置声明信息发送到基站,由基站对所有传感节点位置声明信息进行统一验证、处理和判断,查看是否存在复制节点。现有的集中式检测方法包括Parno等[8]提出的直接检测协议、Choi等[9]提出的分簇检测协议及周晖等[10]对其进行的改进、Brooks等[11]提出的基于随机配对密钥检测机制的检测协议、Xing等[12]提出的基于区域节点身份验证的检测协议以及Ho等[13]提出的针对动态WSN的基于节点速度验证的检测协议等。集中式检测能够保证检测率达到100%,但存在安全性差、检测效率低、对基站计算能力要求高、WSN能耗不均衡等缺点。
与集中式检测不同,分布式检测在WSN中随机选取部分传感节点(证人节点)完成复制节点验证任务。现有的分布式检测方法包括Bekara等[14]提出的随机多播检测协议及直线多播检测协议、Conti等[15]提出的一种随机高效的检测协议、Zhu等[16]提出的基于单元格的检测协议以及周豫萍等[17]在此基础上提出的线选多播单元格验证方法等。分布式检测在保证WSN安全性、降低基站计算压力、均衡WSN能耗等方面进行了改进,但检测率下降,同时为了防止攻击者预测到证人节点而进行二次攻击,需要随机选择证人节点来提高检测率,这增加了检测过程中的通信消耗和存储消耗。
针对现有检测方法存在的问题,本文提出一种基于单证人节点的分布式节点复制攻击检测(single-witness-based distributed detection, SWDD)方法。该方法保证每个传感节点在检测过程中仅选择一个证人节点,且相同ID的多个节点选择到同一证人节点,从而提高复制节点检测率;而减少证人节点的选择数量,也降低了通信消耗和存储消耗。
1 SWDD方法1.1 SWDD方法概述SWDD方法本质上是一种集中式和分布式相结合的检测方法,可以概括如下:
步骤1??选择证人节点。WSN中的传感节点随机选择证人节点,并且ID相同的多个传感节点会选择到同一证人节点。
步骤2??生成声明信息。传感节点生成自己的位置声明信息。
步骤3??发送声明信息。传感节点将自己的ID和位置声明信息发送至证人节点。
步骤4??验证证人节点。在信息发送过程中,会经过多个证人节点(中间证人节点),但复制节点的检测必须由最终证人节点完成,因此每个中间证人节点在接收到来自其他节点的位置声明信息后,要基于多重映射机制,采用证人节点验证算法判断自己是否是传感节点的最终证人节点。
步骤5??检测复制节点。最终证人节点接收到所有位置声明信息后,通过比对信息中是否存在冲突,来检测是否存在复制节点。若存在2个或2个以上ID相同但位置信息不同的节点,则存在复制节点。最终证人节点将复制节点ID发送给基站,由基站统计复制节点数量,并向整个传感网络广播复制节点信息。
其中“选择证人节点” “生成声明信息”和“验证证人节点”是SWDD方法中的关键步骤。
1.2 单证人节点选择为了防止攻击者预测证人节点而进行二次攻击,降低复制节点检测过程中的通信消耗和存储消耗,同时提高复制节点检测率,需要保证每个传感节点都随机选取且仅选取一个证人节点,并且相同ID的传感节点会选择同一证人节点。基于上述目的,在文[15]提出的证人节点选择方法基础上,SWDD方法提出了单证人节点选择方法。
首先,在每轮检测开始前,由基站生成随机数R,R∈(0, n],n为WSN中的节点个数;随后将R广播至整个WSN中的所有传感节点。
其次,传感节点根据自己的节点ID和随机数R,按式(1) 计算自己的证人节点ID,以保证ID相同的多个传感节点可以选择到同一证人节点。
| $\text{I}{{\text{D}}_{\text{witness}}}\text{=I}{{\text{D}}_{\text{node}}}\text{ }\!\!\times\!\!\text{ }R\text{ %}n\text{.}$ | (1) |
为避免出现传感节点本身就是自己证人节点的情况,需判断计算得到的证人节点ID与自身节点ID是否相同,即判断是否存在IDwitness==IDnode,若存在,则传感节点按式(2) 重新计算自己的证人节点ID。
| $\text{I}{{\text{D}}_{\text{witness}}}\text{=(I}{{\text{D}}_{\text{witness}}}\text{+1) } \text{ %}n\text{.}$ | (2) |
1) 每个传感节点在每轮检测过程中仅选择一个证人节点,可以降低检测过程中的通信消耗和存储消耗;
2) 在不同轮次的检测过程中,随机数R保证了证人节点选择的随机性,从而可以防止攻击者预测到证人节点而进行二次攻击,提高了检测过程的安全性;
3) 由于每轮检测过程中R都是随机的,而节点ID固定不变,因此能够保证同一轮检测过程中,相同ID的节点具有同一证人节点,即保证了被俘获节点和复制节点选择到同一证人节点,从而可以提高复制节点的检测率。
1.3 节点位置声明在现有的复制节点检测方法中,通常使用传感节点的实际位置坐标或邻居节点列表等信息作为传感节点的位置声明信息。使用节点实际位置坐标作为位置声明信息需要配备全球定位系统(global positioning system,GPS),会增加节点的能量消耗,而使用邻居节点列表作为节点位置信息,可以保证节点无需配备GPS设备,达到降低能耗的目的。因此, SWDD方法在使用邻居节点列表作为声明节点位置信息的基础上进行了改进,提出使用随机数作为位置声明信息,即传感节点收到基站随机数R后,生成随机数p作为自己的位置声明信息,p∈[0, 65 535]。
与邻居节点列表方法相比,由于随机数p占用的存储空间小,因此SWDD方法可以降低通信消耗和存储消耗。
1.4 验证证人节点为了将WSN中所有节点的位置声明信息准确发送至其最终证人节点,保证单证人节点机制的正确执行,本文提出多重映射机制。
多重映射机制是指证人节点在接收到来自其他传感节点的位置声明信息后,通过证人节点验证算法判断自己是否是传感节点的最终证人节点,若是,则保存该位置声明信息;若不是,则将该位置声明信息转发至下一个中间证人节点。新的中间证人节点在接收到该位置声明信息后重复执行该步骤,直至中间证人节点验证自己是最终证人节点。其中证人节点验证算法描述如下:
步骤1??证人节点接收到来自其他传感节点的位置声明信息后,根据声明信息中的传感节点ID、随机数R和式(3) 计算中间节点的ID值IDmid。
| $\text{I}{{\text{D}}_{\text{mid}}}\text{=I}{{\text{D}}_{\text{node}}}\text{ }\!\!\times\!\!\text{ }R\text{ %} \text{ }n\text{.}$ | (3) |
步骤3??重新计算IDmid。
| $\text{I}{{\text{D}}_{\text{mid}}}\text{=(I}{{\text{D}}_{\text{mid}}}\text{+1) } \text{% }n.$ | (4) |
在多重映射机制下,无论攻击者如何修改复制节点中证人节点的计算代码,一旦声明信息从复制节点发出,WSN中其他节点的证人节点计算代码并未被攻击者修改,接收到复制节点声明信息的传感节点就可以按照原有的计算机制对该声明节点的证人节点重新进行计算和验证,从而得到真正的证人节点ID,进而将声明信息发送至其真正的证人节点。
2 实验分析SWDD方法主要针对现有分布式检测方法中存在的检测率较低、通信消耗高和能量消耗高问题进行改进,所以本文基于OMNeT++仿真工具对SWDD方法进行仿真实验,验证SWDD方法的有效性。
2.1 检测率分析参考文[18]提出的复制节点检测率测量方案,在WSN中部署了200个节点,包括10个复制节点,对其中2个复制节点的证人节点映射代码进行修改,并使用SWDD方法进行6轮检测。
若以Nr记录实验中部署的复制节点总数,以Ndr记录实验中检测到的复制节点总数,则复制节点检测率为
| $\eta ={{N}_{\text{r}}}/{{N}_{\text{dr}}}\times 100\text{%}.$ | (5) |
进一步对比SWDD方法与文[18]中的2种检测方法SDC(single deterministic cell)和P-MPC(parallel multiple probabilistic cells)的检测率(见图 1),可知SWDD方法的检测率均高于SDC和P-MPC方法的,且SWDD方法的检测率更加稳定。
|
| 图 1 复制节点检测率对比 |
| 图选项 |
2.2 通信消耗分析为了验证SWDD方法的通信消耗,首先记录给定网络规模下每轮检测中WSN所有节点收发包的总量,用该数值表示SWDD方法的通信消耗;其次分别从通信消耗随网络规模的变化和通信消耗随时间的变化两方面进行分析。
1) SWDD的通信消耗与网络规模。
参考文[10]提出的通信消耗测量方案,依次设置网络规模为50、60、70、80、90、200个节点,使用SWDD方法进行15轮检测,取每轮所有节点收发包数量作为该轮通信消耗。在每种网络规模下,取通信消耗最高的一轮为该网络规模下SWDD方法的通信消耗,具体通信消耗见表 1。
表 1 不同网络规模下的SWDD通信消耗
| 网络节点数 | 收发包数 |
| 50 | 2 011 |
| 60 | 3 027 |
| 70 | 3 695 |
| 80 | 4 569 |
| 90 | 5 608 |
| 200 | 24 312 |
表选项
可以看出,随着网络规模的增长,通信消耗呈现线性增长趋势且增长趋势稳定,不会出现通信消耗骤增的情况。
进一步对比了SWDD方法与SDC和P-MPC在不同网络规模下的通信消耗(见图 2),可知SWDD方法的通信消耗均低于SDC和P-MPC方法,并且随着网络规模增长,SWDD方法的通信消耗增长速度也低于SDC和P-MPC方法。
|
| 图 2 不同网络规模下通信消耗对比 |
| 图选项 |
2) SWDD的通信消耗与仿真时间。
参考文[18]提出的通信消耗测量方案,设置网络规模为200个节点,其中10个节点是复制节点,每隔500 s运行一次SWDD方法,记录其通信消耗,具体通信消耗见表 2。
表 2 不同时间节点下的SWDD通信消耗
| 时间/s | 收发包数 |
| 0.04 | 10 286 |
| 500.07 | 20 198 |
| 1 000.10 | 29 933 |
| 1 500.13 | 41 147 |
| 2 000.26 | 51 710 |
| 2 500.19 | 62 377 |
| 3 000.22 | 72 097 |
表选项
可以看出,随着仿真时间增加,通信消耗呈现线性增长趋势且增长趋势稳定,不会出现通信消耗骤增的情况。
进一步对比了SWDD方法与SDC和P-MPC的通信消耗(见图 3),可知SWDD方法的通信消耗在各个时间点下均低于SDC和P-MPC方法,且通信消耗增长率也均低于SDC和P-MPC方法。与SDC和P-MPC方法相比,SWDD方法能明显优化通信消耗。
|
| 图 3 不同时间节点下通信消耗对比 |
| 图选项 |
2.3 能量消耗分析设置网络规模为200个节点,其中10个节点是复制节点,每隔500 s运行一次SWDD方法;同时,参考文[10]提出的能量消耗测量方案,设置节点初始能量为0.5 J,电路能量消耗为50 nJ/b,短距离传输能量消耗为0.001 3 pJ/(b·m2),长距离传输能量消耗为10 nJ/(b·m2)。
若以E表示节点能量消耗,C表示电路能量消耗,S表示短距离传输能量消耗,L表示长距离传输能量消耗,则计算能量消耗时,待计算能量消耗节点根据目的节点距离自己的远近程度选择计算方法,若目的节点离自己距离较近,则
| $E=C+S;$ | (6) |
| $E=C+L.$ | (7) |
表 3 不同时间节点下的SWDD能量消耗
| 时间/s | 总能量消耗/pJ | 本轮能量消耗/pJ |
| 0.04 | 22.336 9 | 22.336 9 |
| 500.07 | 46.632 9 | 24.296 0 |
| 1 000.10 | 69.571 2 | 22.938 3 |
| 1 500.13 | 92.718 9 | 23.147 7 |
| 2 000.26 | 116.178 0 | 23.459 1 |
| 2 500.19 | 139.317 9 | 23.139 9 |
| 3 000.22 | 162.338 7 | 23.020 8 |
表选项
可以看出,在网络规模为200的情况下,每一轮检测平均能量消耗为23.191 pJ,每个节点在一轮检测中的平均能量消耗为0.116 pJ。与每个节点初始能量0.5 J相比较,执行一轮检测的能量消耗可忽略不计。
3 结论本文提出了SWDD检测方法,该方法在选择证人节点过程中引入单证人节点选择机制,保证在同一轮检测过程中,相同ID的多个传感节点能够随机选择到同一证人节点;在证人节点验证过程中引入多重映射机制,通过证人节点验证算法,最终确保复制节点即使在证人节点选择代码被修改的情况下,仍然能够将其声明信息发送至最终证人节点处,从而提高了检测率;同时,由于严格控制了证人节点选择的数量为1,也降低了检测过程中的通信消耗和能量消耗。
目前SWDD方法还存在一些问题,例如攻击者可以直接控制复制节点计算得到WSN中不存在的证人节点;在复制节点不输出任何声明信息的情况下无法检测到该复制节点。下一步将通过提出一种验证机制保证每个节点都能够输出声明信息,来进一步完善SWDD方法。
参考文献
| [1] | 任丰原, 黄海宁, 林闯. 无线传感器网络[J]. 软件学报, 2003, 14(7): 1282–1291.REN Fengyuan, HUANG Haining, LIN Chuang. Wireless sensor networks[J]. Journal of Software, 2003, 14(7): 1282–1291. (in Chinese) |
| [2] | Akyildiz I F, Su W, Sankarasubramaniam Y, et al. A survey on sensor networks[J]. IEEE Communication Magazine, 2002, 40(8): 102–114. DOI:10.1109/MCOM.2002.1024422 |
| [3] | Alwan H, Agarwal A. A survey on fault tolerant routing techniques in wireless sensor networks[C]//Sensor Technologies and Applications. Athens, Greece:IEEE Press, 2009:366-371. |
| [4] | Jiang C, Yuan D, Zhao Y. Towards clustering algorithms in wireless sensor networks-A survey[C]//Wireless Communication and Networking Conference. Budapest, Hungary:IEEE Press, 2009:1-6. |
| [5] | 徐军. 无线传感器网络恶意节点攻击若干问题研究[D]. 合肥: 中国科技技术大学, 2012. XU Jun. Research on Malicious Node Attacks in Wireless Sensor Networks[D]. Hefei:University of Science and Technology of China, 2012.(in Chinese) http://cdmd.cnki.com.cn/Article/CDMD-10358-1012324249.htm |
| [6] | Becher A, Benenson Z, Dornseif M. Tampering with motes:Real-world physical attacks on wireless sensor networks[C]//Security in Pervasive Computing. New York, NY, USA:Springer Berlin Heidelberg, 2006:104-118. |
| [7] | Sathish R, Kumar D R. Proficient algorithms for replication attack detection in wireless sensor networks-A survey[C]//Emerging Trends in Computing, Communication and Nanotechnology. Chennai, India:IEEE Press, 2013:2336-2341. |
| [8] | Parno B, Perrig A, Gligor V. Distributed detection of node replication attacks in sensor networks[C]//Symposium on Security & Privacy. Oakland, CA, USA:IEEE Press, 2005:49-63. |
| [9] | Choi H, Zhu S, La Porta T F. SET:Detecting node clones in sensor networks[C]//Security and Privacy in Communications Networks and the Workshops. Nice, France:IEEE Press, 2007:341-350. |
| [10] | 周晖, 朱立庆, 杨振, 等. 基于分簇的节点复制攻击入侵检测方法[J]. 传感器与微系统, 2014, 33(5): 129–131.ZHOU Hui, ZHU Liqing, YANG Zhen, et al. Cluster-based detection method against node replication attack[J]. Transducer and Microsystem Technologies, 2014, 33(5): 129–131. (in Chinese) |
| [11] | Brooks R, Govindaraju P Y, Pirretti M, et al. On the detection of clones in sensor networks using random key predistribution[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 2007, 37(6): 1246–1258. DOI:10.1109/TSMCC.2007.905824 |
| [12] | Xing K, Liu F, Cheng X, et al. Real-time detection of clone attacks in wireless sensor networks[C]//Distributed Computing Systems. Beijing, China:IEEE Press, 2008:3-10. |
| [13] | Ho J W, Wright M, Das S K. Fast detection of replica node attacks in mobile sensor networks using sequential analysis[C]//Computer Communications. Rio de Aneiro, Brazil:IEEE Press, 2009:1773-1781. |
| [14] | Bekara C, Laurent-Maknavicius M. A new protocol for securing wireless sensors networks against nodes replication attacks[C]//Wireless and Mobile Computing Networking and Communications. New York, NY, USA:IEEE Press, 2007:59-65. |
| [15] | Conti M, Pietro R D, Mancini L V, et al. A randomized, efficient, and distributed protocol for the detection of node replication attacks in wireless sensor networks[C]//ACM International Symposium on Mobile Ad Hoc Networking and Computing. Montreal, Quebec, Canada:ACM, 2007:80-89. |
| [16] | Zhu B, Addada V G K, Setia S, et al. Efficient distributed detection of node replication attacks in sensor networks[C]//Computer Security Applications Conference. Miami Beach, FL, USA:IEEE Press, 2007:257-267. |
| [17] | 周豫萍, 黄振杰, 王娟, 等. 一类新的分布式随机验证无线传感网络节点克隆攻击检测[J]. 传感技术学报, 2014, 27(4): 544–550.ZHOU Yuping, HUANG Zhenjie, WANG Juan, et al. Node clone attacks detection based on distributed random verification in wireless sensor networks[J]. Chinese Journal of Sensors and Actuators, 2014, 27(4): 544–550. (in Chinese) |
| [18] | Meng X, Lin K, Li K. A node-based randomized and distributed protocol for detecting node replication attacks in wireless sensor networks[C]//Algorithms and Architectures for Parallel Processing. Busan, Korea:Springer Berlin Heidelberg, 2010:559-570. |
