摘 要:随着无线通信技术和电子器件技术的快速发展,低成本、低功耗、多功能的无线传感器网络的开发和广泛应用成为可能。大多数应用环境中,用户对无线传感器网络的安全性有较高的要求,而无线传感器网络自身的特性使得传统的安全机制和安全协议难以直接应用,因此面临着比 传统网络更大的安全挑战。文章探讨了无线传感器网络协议栈各层所面临的安全问题,对解决这些安全问题的关键技术进行了讨论。
Abstract: Recent advancement in wireless commuNIcations and electronics has enabled the development and application of low- cost, energy efficient and multi- function wireless sensor networks (WSN). Since most sensor network applications have strict security requirements, security is a critical issue in wireless sensor networks. Most traditional security standards and protocols are unavailable for wireless sensor networks due to their characteristics, thus wireless sensor networks are facing more challenges of security than traditional networks. This paper analyzes the security problems faced by each layer of the protocol stack of WSN, and discusses the key techniques to solve these problems.
Key words: wireless sensor networks; protocol; attack; security
0 引言
无线传感器网络(WSN,Wireless Sensor Network)是一种自组织网络,由大量具有无线通信、数据采集和处理、协同合作等功能的节点协同组织构成。WSN在军事、环境、工控和交通等方面有着广阔的应用前景。由于大多数用户对WSN的安全性有较高要求,而WSN有着与传统的 Ad hoc网络不同的特点,大多数传统的安全机制和安全协议难以直接应用于WSN,因此有必要设计适合WSN的安全性方案。
无线传感器网络与传统的ad hoc网络相比有如下独有的特点[1]:
(1) 传感器节点数量巨大,网络规模庞大;
(2) 节点密集分布在目标区域;
(3) 节点的能量、存储空间及计算能力受限,容易失效;
(4) 动态的网络拓扑结构;
(5) 通常节点不具有统一的身份(ID)。
1 WSN的安全性问题
WSN中,最小的资源消耗和最大的安全性能之间的矛盾,是传感器网络安全性的首要问题。通常两者之间的平衡需要考虑到有限的能量、有限的存储空间、有限的计算能力、有限的通信带宽和通信距离这五个方面的问题。
WSN在空间上的开放性,使得攻击者可以很容易地窃听、拦截、篡改、重播数据包。网络中的节点能量有限,使得WSN易受到资源消耗型攻击。而且由于节点部署区域的特殊性,攻击者可能捕获节点并对节点本身进行破坏或破解。
另外,WSN是以数据通信为中心的,将相邻节点采集到的相同或相近的数据发送至基站前要进行数据融合,中间节点要能访问数据包的内容,因此不适合使用传统端到端的安全机制。通常采用链路层的安全机制来满足WSN的要求。
2 常见的攻击和解决方案
在WSN协议栈的不同层次上,会受到不同的攻击,需要不同的防御措施和安全机制。
2.1 物理层
物理层完成频率选择、载波生成、信号检测和数据加密的功能。所受到的攻击通常有:
1)拥塞攻击:攻击节点在WSN的工作频段上不断的发送无用信号,可以使在攻击节点通信半径内的节点不能正常工作。如这种攻击节点达到一定的密度,整个网络将面临瘫痪。
拥塞攻击对单频点无线通信网络影响很大,采用扩频和跳频的方法可很好地解决它。
2)物理破坏:WSN节点分布在一个很大的区域内,很难保证每个节点都是物理安全的。攻击者可能俘获一些节点,对它进行物理上的分析和修改,并利用它干扰网络的正常功能。甚至可以通过分析其内部敏感信息和上层协议机制,破坏网络的安全性。
对抗物理破坏可在节点设计时采用抗窜改硬件,同时增加物理损害感知机制。另外,可对敏感信息采用轻量级的对称加密算法进行加密存储。
2.2 MAC层
MAC层为相邻节点提供可靠的通信通道。MAC协议分3类:确定性分配、竞争占用和随机访问。其中随机访问模式比较适合无线传感网络的节能要求。
随机访问模式中,节点通过载波监听的方式来确定自身是否能访问信道,因此易遭到拒绝服务攻击(Distributed Denial of Service,DOS)[2]。一旦信道发生冲突,节点使用二进指数倒退算法确定重发数据的时机。攻击者只需产生一个字节的冲突就可以破坏整个数据包的发送,这时接收者回送数据冲突的应答ACK,发送节点则倒退并重新选择发送时机。如此这般反复冲突,节点不断倒退,导致信道阻塞,且很快耗尽节点有限的能量。
目前对抗这种DOS攻击没有很好的解决方案,可采用信道监听机制降低冲突率。若攻击者只是瞬间攻击,只影响个别数据位,可采用纠错码来对抗这种攻击。
如MAC层协议采用时分多路复用算法为每个节点分配传输时间片,不需要在数据传输前进行协商,可避免冲突,但也会受到DOS攻击。恶意节点会利 用MAC协议的交互特性来实施攻击。例如,基于IEEE 802.11的MAC协议用RTS、CTS和DATA ACK消息来预定信道、传输数据。如果恶意节点向某节点持续地用RTS消息来申请信道,则目的节点不断地CTS回应。这种持续不断的请求最终导致目的节点能量耗尽。
访问控制可对抗这种攻击。让节点自动忽略过多的请求,不必应答每个请求。同时在协议中添加策略,对过度频繁的请求不予理睬,或限制同一数据包的重传次数。
2.3 网络层
路由协议在网络层实现。WSN中的路由协议有很多种,主要可以分为3类,分别是以数据为中心的路由协议、层次式路由协议以及基于地理位置的路由协议[3]。而大多数路由协议都没有考虑安全的需求,使得这些路由协议都易遭到攻击,从而使整个WSN崩溃。在网络层WSN受到的主要攻击有:
1. 虚假路由信息
恶意节点在接收到一个数据包后,除了丢弃该数据包外,还可能通过修改源和目的地址,选择一条错误的路径发送出去,从而导致网络的路由的混乱。如果恶意的节点将收到的数据包全部转向网络中的某一个固定节点,该节点可能会通信阻塞和能量耗尽而失效。
这种攻击方式与网络层协议相关。对于层次式路由协议,可以使用输出过滤的方法,即对源路由进行认证,确认一个数据包是否是从它的合法子节点发送过来的,直接丢弃不能认证的数据包。
2. 选择性转发/不转发
恶意节点在转发数据包过程中丢弃部分或全部数据包,使得数据包不能到达目的节点。另外恶意节点也可能将自己的数据包以很高的优先级发送,破坏网络通信秩序。
通常采用多径路由来解决这个问题。即使恶意节点丢弃了数据包,数据包仍然可以通过其它的路径到达到目的节点。虽然多径路由方式增加了数据传输的可靠性,但是也引入了新的安全问题。
3. 贪婪转发
即黑洞(sinkhole)攻击。攻击者利用收发能力强的特点吸引一个特定区域的几乎所有流量,创建一个以攻击者为中心的槽洞。基于距离向量的路由机制通过计算路径长短进行路由选择,这样收发能力强的恶意节点通过发送0距离(表明自己到达目标节点的距离为0)公告,吸引周围节点所有的数据包,在 网络中形成一个路由黑洞,使数据包不能到达正确的目标节点。
黑洞攻击破坏性大,但较易被感知。通过认证、多路径路由等方法可以抵御黑洞攻击。
4. Sybil攻击[4]
在Sybil攻击中,一个节点以多个身份出现在网络中的其它节点面前,使其更易于成为路由路径中的节点,然后与其他攻击方法结合达到攻击目的。 Sybil攻击能够明显地降低路由方案对于诸如分布式存储、分散和多路径路由、拓扑结构保持的容错能力。它对于基于位置信息的路由协议构成很大的威胁。这类位置敏感的路由为了高效地为用地理地址标识的包选路,通常要求节点与它们的邻居交换坐标信息。一个节点对于相邻节点来说应该只有唯一的一组合理坐标,但 攻击者可以同时处在不同的坐标上。
对抗Sybil攻击,通常采用基于密钥分配、加密和身份认证等方法。
5. Wormholes攻击
Wormholes攻击通常需要两个恶意节点互相串通,合谋攻击。一个恶意节点在基站附近,另一个离基站较远。较远的节点声称自己和基站附近的节点可以建立低时延高带宽的链路,吸引周围节点的数据包。Wormholes攻击很可能与选择性转发或Sybil攻击相结合。当它与Sybil攻击相结合 的时候,通常很难探测出。
在路由设计中加入安全等级策略可对抗wormholes攻击。文献[5]中给出了Ad hoc网络路由设计中添加安全等级的方法,可对之稍作改 进,采用基站来完成监听和检测下一个节点信道的任务。改进后的路由协议可对抗sinkhole和wormhole攻击。基于地理位置类的路由协议,如 Greedy Perimeter Stateless Routing[6],通过定期广播探测帧来检测黑洞区域,可有效地发现和抵御sinkhole 攻击和wormholes攻击。
6. HELLO flood
很多路由协议需要节点定时发送HELLO包,以声明自己是其他节点的邻居节点。攻击者用足够大的发射功率广播HELLO包,使得网络中所有节点认为其是邻居节点,实际上却相距甚远。如其他节点以普通的发射功率向它发送数据包,则根本到达不了目的地,从而造成网络混乱。
在路由设计中加入广播半径的限制可对抗HELLO flood。限制节点的数据发送半径,使它只能对




