无线传感器网络安全问题要实现的目标是保持网内通信的认证性、保密性以及数据的完整性。无线传感器网络的各种不同类型的攻击集中利用有限的网络资源削弱以上三种参数中的一种,攻击者通过被动窃听的手段窃取网络内的通信,因此,节点感知的任何敏感信息将会被监听方获取。恶意节点往往通过向网内注入虚假数据包,使其他节点误以为是真实的信息。被捕获节点接收到网内数据包后,往往采取选择性转发攻击(selective forwarding attacks)手段,丢弃该数据包,而不是沿着数据包的实际路径进行转发。这种攻击手段往往也会削弱正常数据包的网络资源。攻击者也可能会篡改正常数据包的内容,从而破坏网络的认证性和数据的完整性。
大多数安全算法都运用了加密技术,先将数据进行编码,然后基站以及节点对数据进行解码。加密技术充分考虑到了网络内通信的认证性、安全性以及数据完整性。然而,如果攻击者也拥有正常节点使用的加密密钥,那么当一个或多个节点被捕获时,安全算法的效率往往会降低。因此,如果没有采取其他的安全措施,恶意节点将不能从正常节点中被鉴别出。各种类型的网络攻击利用网络的漏洞或缺陷对网络发起攻击,入侵检测系统的主要作用就是对网络攻击进行检测,无线传感器网络安全引入入侵检测系统的目的就在于此。
入侵检测技术可分为特征检测(misuse detection) 和异常检测(anomaly detection) 两种。特征检测通过一个已知的入侵用户图来标记入侵,其优点是能准确和有效地检测出已知的入侵,缺点是不能检测新出现的攻击。异常检测通过监测明显异于正常行为的活动来预测入侵。其主要优点是不需要入侵检测的前期知识,而且可以检测到新的入侵;最主要的缺点是它不能描述入侵的形式并且可能出现很高的差错率。概念上,一个入侵检测模型主要包括两个单元:一是特征(属性),用于描述典型活动的特性,例如“错误录入的尝试次数”,“命令访问的平均频率”;二是模型算法,也就是使用特征进行入检检测和抑制入侵的算法。
传感器节点往往部署在开放的环境中,容易受到物理攻击。一旦获取了节点的密钥信息,攻击者完全可以伪装成这些节点,向网络任意注入错误的信息。如果节点被捕获,那么该节点内的所有信息将会泄露。利用被捕获节点,攻击者在网络内发起内部攻击。基本的加密安全机制,比如认证和完整性保护等,都不能有效防范这些伪装攻击。如何解决这个问题,大多数技术对被捕获节点散布的错误信息集中采取的手段是检测和容忍,但是并不能够准确查明错误信息的源头和发起者。
目前仍然缺乏准确识别被捕获节点,并将它们永远排除在传感器网络之外的有效技术。针对被捕获节点的处理技术,集中体现在以下几种。
1. 基于报警的异常检测
这种检测依赖于特定应用的检测机制,使传感器节点能够监视附近节点的行为。一旦检测到异常行为,节点会向基站或其他节点发出警报,并由它们来对哪些节点被捕获做进一步判断。这类方式称为基于报警型,传感器网络的路由选择和定位中就会用到这类典型的方式。
节点通过警报能够查明被捕获节点,但是如何利用这些警报信息也是一大难题。发出的警报是否可信有时也难以判断,因为这些警报有可能是被捕获节点以误导基站为目的而发出的错误警报。被捕获节点可能会进一步形成一个局部的整体,共同密谋以提升在网络内的影响力。另外,这种基于报警型的方式针对的是某些特定的应用场合,难以延伸到其他领域。
识别被捕获节点与可诊断系统中的故障诊断有着某种相似性。实际上,在这些系统中,总是假定故障是永远存在的,这就意味着一个故障节点在测试中总会失效,因而会被鉴别为无故障节点。有些研究者把故障假定的条件进一步放宽,即故障的存在由永久性变成间断性,实际上这种改变是假定故障节点以某种概率不能通过测试。这样的假设在传感器网络不能成立,因为被捕获节点的行为有更大的随意性。
例如,被捕获节点有可能发布正确的感知数据,同时也发出错误的警报,这样的恶意行为并不能够被正常节点观测到。因此,不能把可自诊断系统所采用的技术直接应用到传感器网络的被捕获节点的识别上。
2. 基于定位的异常检测
许多无线传感器网络采用GPS系统来收集传感器节点的位置信息。在大型传感器网络中,如果每个节点都配备GPS系统,那么网络运行成本相当昂贵。因此,在实际应用中只给时间信标节点配备GPS 接收器,以降低网络运行成本。这些信标节点知道自身的位置,其他传感器节点根据信标节点的位置信息来获取在网络的位置信息。
文中阐述了一种检测恶意信标节点的方式。如果一个信标节点被捕获,那么它将不可避免地要发送具有错误位置信息的信标信号。这是因为,恶意信标节点发送的位置信息和信标信号一定是被篡改的。网络中的信标节点具有节点ID号以及密钥,从而能够与网络内的其他信标节点(表面看起来仍然是非信标节点)进行通信。恶意信标节点发送的预估位置信息不是以信标信号为依据,所以这些信息与真实值相比是不同的。一旦有效信标节点从恶意信标节点获取信标信号,那么该被捕获节点将会被检测出。由于被捕获信标节点难以获取相邻节点间每次通信的循环时间,因此,如果恶意节点采取基于本地信标信号的重放攻击(replayed attacks),那么它就会比较容易被发现。
3. 基于网络/ 邻居节点稳定性的异常检测
文献阐述了一种基于传感器节点特性(比如固定的相邻节点信息)的入侵检测系统。实验中网络间的通信采用多对一的方式,也就是说,节点将沿着相对固定的路径向某个固定节点发送信息。因此,整个网络运行期间并不需要节点用来识别相邻节点的HELLO 洪泛数据包。网络部署后,假设:①不会增加新节点,且节点是固定的;②节点的发送功率不会改变;③网络内的每个节点能够识别它的相邻节点;④每个节点使用相同的硬件以及运行相同的算法,节点上运行的时钟与其他节点不同步。
根据以上设定的稳定网络,节点知道能够从相邻节点获得的信息。为了进一步运用这个概念,需要选择两个传感器网络的运行参数,用来存储相邻节点的信息。选取的参数是:
①数据包到达率,即单位时间内到达的数据包;②平均接收功率,单位为dBm.算法定义了一个用来存储预定数量数据包的缓冲区。这些数据包用来计算数据包到达率以及后续数据包的接收功率这两个指标的可接受值的范围。如果这两个参数的值不在持续更新的范围之内,那么就认定网络发生了入侵。入侵检测系统依靠这些节点来通知其相邻节点,网络可能存在入侵者。如果某节点从其固定数量的相邻节点处获取入侵者信息,那么该节点将把这个可疑节点标注为被捕获节点。
4. 基于软件的面向嵌入式硬件的认证
检测被捕获节点的另一种不同方法是根据代码认证,来验证运行于传感器节点的实际程序代码。还有一种基于硬件的认证方法,这种硬件内含一个安全的协处理器,用来检测相关嵌入式设备存储器的内容。介绍了一种基于软件的认证技术(SoftWare-based ATTestation technique,SWATT),它是通过软件方式独立运行代码认证算法来实现的。
这些技术都是通过某种方式,在外部验证运行于嵌入式设备的代码的正确性,检验器的可信度是实现目标的关键因素。
恶意节点至少有一行代码与运行于正常节点的预期代码不同。
检验器有未被捕获传感器节点存储器内容的副本。检验器向节点发送某种特定信息,作为伪随机数生成器的输入,来创建随机存储器地址。给设备的每个存储器地址执行“ 校验和”
检验。校验器在本地运行相同的校验步骤,计算预期的校验和值,再将这个预期值与节点返回的值进行比较。
由于被捕获节点存储器的内容被改变,所以它必须确定由伪随机数生成器创建的每个存储器地址是否已经发生改变。
SWATT 技术目前已在无线传感器网络中使用,不过执行检测和运行验证步骤均需额外时间。作者在基于AVR studio V4.0的仿真器上进行了实验,结果表明,计算校验和的时间差异变得更加突出,这是因为被访问的存储器地址的数量在增加。
文中也对网络做了相同的假设,确定节点是否为被捕获节点的过程发生了变化。基站被假定为受信方,它在鉴定被捕获节点时起着很大作用。基站认为存在潜在的被捕获节点,采用代码认证方法来确认可能的威胁。SWATT 技术的思想是,一旦节点被捕获,那么它必将执行与正常节点不同的行为,这种思想在算法设计中是一种重要的概念。
无线传感器网络中,任何两个节点之间均可能发生交互。
如果某个节点提供的信息是错误的,或提供的服务不完备,那么其他的一些节点有可能检测到,并发出相应的负反馈。实际上,传感器节点之间的交互,受制于传感器网络的部署。对于某个节点来说,能够检测到它提供的信息或服务的,只是一组固定的节点。因此,对于被捕获节点来说,容易形成一个局部的整体。
一般来说,大多数分布式系统由自主实体所构成,往往最大化地追求自身效率,需要建立激励机制来鼓励实体发布(至少不阻止)其他实体的反馈信息。传感器网络本质上是一种分布式系统,由自主性节点构成,传感器节点之间通过相互协作来共同完成一个任务。因此,有可能设计出鉴别机制,实现既定目标的全局最优化。例如,为了应对错误的警报,可以根据警报的发起者和针对的目标来确定被捕获节点,只要有助于提高整个系统的安全性。
实际上,传感器网络独特的特性既带来了挑战,也带来了机遇,如何利用这些特性是精确识别被捕获节点的关键所在。
(转载)