第5章无线传感器网络安全 目前,传感器网络在各个领域得到了广泛使用,经常用来采集一些敏感性数据或在敌对无人值守环境下工作。针对具体应用,在传感网的系统设计初期就应解决它的安全问题。然而传感网的资源有限,如有限的带宽资源、有限的存储能力和计算能力以及有限的能量,给传感器网络的安全带来了不同的挑战,传统的安全技术不能用于解决传感器网络的安全问题。目前针对传感器网络的安全研究主要集中在认证技术、密钥管理、安全路由、安全定位、隐私保护等方面。 5.1无线传感器网络概述 无线传感器网络(WSN)近年来获得了广泛的关注,微机电系统的发展促进了智能传感器的产生,这些传感器体积小,具有有限处理能力和计算资源。相比传统的传感器,这类传感器不仅价格低廉,而且传感器节点可以感知、测量、收集数据,将经过决策的数据最终传给用户。每个传感器节点由传感器模块、处理器模块、无线通信模块和能量供应模块组成。传感器模块主要负责信息采集、数据转换等; 处理器模块负责控制整个传感器节点的操作以及对节点采集和转发的数据进行处理; 无线通信模块负责无线通信、交换控制信息和收发采集数据; 能量供应模块为传感器节点提供运行所需的能量,电池是目前传感器的主电源。 无线传感器网的部署过程是通过人工、机械、飞机空投等方式完成的。节点随机部署在被监测区域内,以自组织的形式构成网络,因此无线传感器网络通常有很少或根本没有基础设施。根据具体应用不同,传感器节点的数量从几十个到几千个不等,这些传感节点共同工作,对周围环境中的数据进行收集,每一个传感器节点在网络中既充当数据采集者,又要对数据进行转发。和传统网络节点相比,它兼有终端和路由器的双重功能。无线传感器网络主要分为结构化和非结构化两种。非结构化的WSN中包含大量分布密集的传感节点,这些节点可以以Ad Hoc的方式进行部署。部署成功之后,因为节点数目较多,导致网络维护较困难,传感器节点只能在无人看管的状态下对数据进行监控。在结构化的WSN中,所有的或部分的传感器节点是以预先布置方式工作的,节点数目较少,因此网络的维护和管理较容易,如图5.1所示。传感器节点监测的数据通过其他节点以多跳中继的方式传送到汇聚节点,最后通过互联网或卫星到达管理节点。用户通过管理节点对无线传感器网络进行配置和管理、发布监测任务以及收集监测数据。 图5.1无线传感器网络的体系结构 5.1.1无线传感器网络的特点 相比传统的计算机网络,无线传感器网络是一种特殊的网络,它的自身特点决定了它无法使用基于传统网络的安全机制。无线传感器网络具有如下特点。 (1) 有限的存储空间。传感器是一个微小的装置,只有少量的内存和存储空间用于存放代码,因此在设计一个有效的安全协议时,必须限制安全性算法的代码大小。例如,一个普通类型的传感器(TelosB)只有一个8MHz的16位RISC CPU、10KB的内存、48KB程序存储器和1024KB的闪存存储空间。基于这样的限制,传感器中内置的软件部分也必须相当小,如TinyOS的总编码空间大约为4KB,核心调度器只占用178B,因此与安全相关的代码也必须很少。 (2) 有限的电源能量。能量问题是传感器的最大限制,目前传感器节点的能量供应大多还是依靠电池供电的方式,其他的能量供应方式如依靠太阳能、振动、温差等方式还不成熟。在传感器的应用中,必须考虑到单个传感器的能源消耗以及传感网的整体能耗。设计安全协议时,必须考虑该协议对传感器寿命的影响,以及加密、解密、签名等安全操作均会导致传感器节点消耗额外的功率,对一些密钥资料的存储也会带来额外的能量开销。 (3) 有限的计算能力。传感器网络节点是一种微型嵌入式设备,价格低,功耗小,有限的存储空间和电池能量必然导致其计算能力比普通的处理器功能弱得多,这就要求在传感器节点上运行的软件与算法不能过于复杂。 (4) 不可靠的信道。传感器网络中节点之间传输数据无须事先建立连接,但信道误码率较高导致了数据传输的不可靠性。同时由于节点能量的变化以及受高山、建筑物、障碍物等地势地貌和风雨雷电等自然环境的影响,传感器节点间的通信断接频繁,经常导致通信失败。 (5) 使用广播式信道。由于无线传感网采用广播式的链路类型,即使是可靠的信道,节点之间也会产生碰撞,即冲突。冲突的存在会导致信号传输失败,信道利用率降低。在密集型的传感网中,这是个尤为重要的问题。 (6) 延迟的存在。传感网属于多跳无线网络,网络的拥塞和节点对包的处理均会导致网络中的延时,从而使其难以实现传感器节点之间的同步。如果安全机制依赖对关键事件的报告和加密密钥分发,同步问题将成为传感器网络安全中至关重要的问题。 (7) 易受物理袭击。传感器可以部署在任何公开环境下,时常伴有雨、雾、霾等恶劣天气。在这样的环境中,较放置在安全地点(如机房等地)的台式机而言,更容易遭受物理攻击。 (8) 采用远程监控。传感器节点数量大,分布范围广,往往有成千上万的节点部署到某区域进行检测; 同时传感器节点可以分布在很广泛的地理区域,这使得网络的维护十分困难,只能采用远程监控方式。但远程监控无法检测到物理篡改等攻击方式。因此传感器节点的软、硬件必须具有高强壮性和容错性。 (9) 缺乏第三方的管理。无线传感器是自组织的网络,不需要依赖于任何预设的网络设施,传感器节点能够自动进行配置和管理,自组织形成多跳无线网络。无线传感器网络是一个动态的网络,一个节点可能会因为能量耗尽或其他故障而退出网络,新的节点也会被添加到网络中,网络的拓扑结构随时会发生变化。 (10) 应用系统多样化。传感器网络用来感知客观物理世界,获取物理世界的信息量。不同的传感器网络应用关心不同的物理量,因此对传感器网络的应用系统有多种多样的要求,其硬件平台、软件系统和网络协议必然会有很大差别。 5.1.2无线传感器网络面临的安全威胁 1. 被动攻击和主动攻击 同有线网络类似,传感网面临的安全威胁也主要分成两大类,即被动攻击和主动攻击。在被动攻击中,攻击者不会干扰用户之间的通信,目的是获得网络中传递的数据内容,典型攻击方式有窃听、流量分析、流量监控。在主动攻击中,攻击者会破坏用户之间的通信,对消息进行中断、篡改、伪造、重放以及拒绝服务攻击等。 (1) 窃听。窃听是指攻击者通过监控数据的传输进行被动攻击,对数据进行监听。例如,放置在屋外的无线接收器可能监听到屋内传感网所检测到的光照和温度数据,从而推断出主人的一些日常习惯。加密技术可以部分抵抗窃听攻击,但是需要设计一个鲁棒的密钥交换和分发协议。只根据几个捕获到的节点,无法推断出网络内其他节点的密钥信息。由于传感器的计算能力有限,密钥协议必须简单可行。此外,传感器存储空间的有限性导致端到端加密不太可行,因为每个节点可能没有足够空间用于存储大量其他节点的信息,只能存储周围邻居节点的密钥信息。传感网主要支持数据链路层的加密技术。 (2) 流量分析。流量分析是指对消息进行拦截和检查,目的在于根据消息通信模式推断出消息内容。 (3) 拒绝服务攻击/分布式拒绝服务攻击。拒绝服务攻击是指攻击者通过耗尽目标节点的资源,令目标节点无法正常采集或者转发数据。 (4) 重放攻击。重放攻击也称为中间人攻击,是指即使攻击者不知道密钥,无法对以前窃听到的消息进行解密,但仍会把以前截获到的消息,重复发送给目标节点。 (5) 外部攻击和内部攻击。外部攻击是该攻击者不属于域内节点。内部攻击来源于域内节点,主要是指一些受损节点对网络内部进行主动攻击或者被动攻击。内部攻击和外部攻击相比更严重,因为内部攻击者知道更多的机密信息,具有更多的访问权限。 2. 协议栈攻击 按照TCP/IP模型,传感网的安全威胁还可以分为物理层、数据链路层、网络层、传输层和应用层的威胁,表5.1列出了每一层的安全威胁。 表5.1每层对应的安全威胁 层次安 全 威 胁 应用层抵赖、数据损坏 传输层会话劫持、洪泛攻击 网络层虫洞、黑洞、拜占庭、洪水、资源消耗、位置隐私泄露 数据链路层流量分析、流量监控、MAC破坏 物理层干扰、拦截、窃听 多层攻击DoS、伪造、重放、中间人攻击 (1) 物理层威胁。由于无线网络的广播特性,通信信号在物理空间上是暴露的。任何设备只要调制方法、频率、振幅、相位和发送信号匹配就能获得完整的通信信号,从而成功进行窃听攻击,同时还可以发送假消息进入网络。无线环境是一个开放的环境,所有无线设备共享一个开放空间,所以若有两个节点发射的信号在一个频段上,或者是频点很接近,就会因为彼此的干扰而不能够正常通信。如果攻击者拥有强大的发射器,产生的信号强度足以超过目标的信号,那么正常通信将被扰乱。最常见的干扰信号是随机噪声和脉冲。 (2) 数据链路层威胁。无线网络的广播特性会导致多个用户使用信道时发生冲突,因此每个节点只能工作在半双工的工作模式下。数据链路层的MAC协议负责进行信道资源的分配,解决信道竞争,尽力避免冲突。无线传感网中主要采用CSMA/CA技术解决多个站点使用信道的情况,MAC协议假定多个站点能够自动按照CSMA/CA标准协调自己的行为,但是一些自私节点或者恶意节点会不按照正常的协议流程去工作。例如,自私节点可能会中断数据的传输; 恶意节点可能在转发的数据中恶意改变一些比特位的信息; 不断发送高优先级的数据包占据通信信道,使其他节点在通信过程中处于劣势; 不断发送信息与其他用户的信号产生碰撞,破坏网络的正常通信; 利用链路层的错包重传机制,使受害者不断重复发送上一个数据包,最终耗尽节点的资源。 (3) 网络层威胁。攻击者的目的在于吸收网络流量; 让自己加入到源到目的的路径上,从而控制网络流量; 让数据包在非最优路径上转发,从而增加延迟; 将数据包转发到一条不存在路径上,使其不能到达目的地; 产生路由环从而带来网络拥塞。恶意节点在冒充数据转发节点的过程中,可以随机地丢掉其中的一些数据包,即丢弃破坏; 也可以将数据包以很高的优先级发送,从而破坏网络的通信秩序; 还有可能修改源和目的地址,选择一条错误的路径发送出去,从而导致网络的路由混乱。如果恶意节点将收集到的数据包全部转向网络中的某一固定节点,该节点必然会因为通信阻塞和能量耗尽而失效; 如果多个站点联合,会让其他节点误以为通过它们只需要一两跳就可以到达基站,从而把大量的数据信息通过它们进行传输,形成路由黑洞。网络层威胁包括虚假路由协议、选择性转发、槽洞(sinkhole)攻击、女巫(sybil)攻击、虫洞(wormhole)攻击、问候洪泛(hello flood)攻击、伪装应答、关键点攻击等。 (4) 传输层威胁。传感网中采用传输层TCP协议建立端到端的可靠连接,类似于有线网络,传感节点容易遭受到SYN泛洪攻击、会话劫持攻击。TCP协议无法确定其原因,如拥塞、校验失败或恶意节点的袭击而造成。TCP只会不断降低其拥塞窗口,从而使信道吞吐量减小,网络性能下降。会话劫持攻击发生在TCP建立连接之后,攻击者采用拒绝服务等方式对受害节点进行攻击,然后冒充受害节点身份(如IP地址),同目的节点进行通信。会话劫持攻击在UDP中较容易,因为不需要猜测报文的序列号。 (5) 应用层威胁。应用层袭击对攻击者有很大的吸引力,因为攻击者所搜寻的信息最终驻留在应用程序中。应用层威胁主要分为抵赖攻击和恶意代码的攻击,病毒、蠕虫、间谍软件、木马等恶意代码可以攻击操作系统和用户应用程序,并自行传播通过网络,导致整个传感网的速度减慢甚至崩溃。 (6) 多层威胁。多层威胁是指攻击者对网络的攻击发生在多个层次上,如拒绝服务攻击、中间人攻击等。 5.1.3无线传感器网络的安全目标 为了抵御各种安全攻击和威胁,保证任务执行的机密性、数据产生的可靠性、数据融合的正确性以及数据传输的安全性等,无线传感器网络的安全目标主要包含以下几方面。 (1) 机密性。机密性是网络安全中最基本的特性。机密性主要体现在以下两个阶段: 密钥派生阶段,节点的身份信息以及部分密钥材料需要保密传输; 派生阶段后,节点通信需要用会话密钥进行加密。 (2) 完整性。机密性防止信息被窃听,但无法保证信息是否被修改,而消息的完整性能够让接收者验证消息内容是否被篡改。 (3) 新鲜性。两个节点间共享一个对称密钥,密钥的更新需要时间,在这段时间内攻击者可能重传以前的数据。为了抵抗重放攻击,必须保证消息的新鲜性,一般通过附加时间戳或者随机数加以实现。 (4) 可用性。与传统的网络安全可用性不同,传感器的资源有限,过多的通信量或计算量均会带来能量的过多消耗,单个传感器的消亡可能引起整个网络的瘫痪。传统的加密算法不适应无线传感器网络,必须设计轻量级的安全协议。 (5) 自治性。无线传感器网络不采用第三方架构进行网络管理,节点之间采用自组织方式进行组网。某个节点失效时,节点会自治愈重新组网,因此无线传感网属于动态网络。几种经典的密钥预分配方案并不适于传感网,节点间必须自组织进行密钥管理和信任关系的建立。 (6) 时钟同步。无线传感器网络的很多应用依赖于节点的时钟同步,因此需要一个可靠的时钟同步机制。如为了节省能量,传感器节点需要定时休眠; 有时需要计算出端到端延迟,进行拥塞控制; 为了对应用程序进行跟踪,需要组内的传感器节点整体达到时钟同步。 (7) 安全定位。通常情况下,一个传感器网络的有效使用依赖于它能够准确地对网络中的每个传感器进行自动定位。为了查到出错的传感器位置,负责故障定位的传感器网络需要节点的精确位置信息。攻击者通过报告虚假信号强度或者重放攻击等,可以伪造或篡改定位信息。 (8) 认证。为了保证通信双方身份的真实可靠性,节点之间必须进行认证,包括点到点认证和组播/广播认证。在点到点认证过程中,两个节点进行身份确认,会派生出单一会话密钥。组播/广播认证解决的是单一节点和一组节点或者所有节点进行认证的问题,此时需要维护的是组播/广播密钥。 (9) 访问控制。用户通过认证后,访问控制决定了谁能够访问系统、访问系统的何种资源以及如何使用这些资源。访问控制可以防止权限的滥用。 5.2无线传感器网络安全路由协议 无线传感器网络自身的特点导致其无法直接采用传统的路由协议。另外,在路由的安全性方面,也需要重点关注。无线传感器网络中节点的能量资源、计算能力、通信带宽、存储容量都非常有限,而且无线传感器网络通常由大量密集的传感器节点构成,这就决定了无线传感器网络协议栈各层的设计都必须以能源有效性为首要设计要素。在无线传感器网络中,大多数节点无法直接与网关通信,需要通过中间节点进行多跳路由。因此无线传感器网络中的路由协议作为一项关键技术,在传感网络中占据重要地位。 5.2.1安全路由概述 在无线传感器网络中,路由协议主要包括两方面的功能: 在保证能量优先的前提下,寻找源节点和目的节点间的优化路径; 根据找到的路径将数据分组正确地转发。对于现今的无线传感器网络,各国都提出过很多种路由算法,这些算法将传感器网络有限的能量和计算能力作为首要问题来解决,但对于安全问题的考虑相对较少。如果在网络协议的设计阶段没有给予安全问题足够的重视,而是通过后续的更新来补充安全机制,那么这款协议所消耗的人力物力将是巨大的。 大部分无线传感器网络路由协议在设计时没有考虑安全问题,针对这些路由协议的攻击常见的有以下几种。 (1) 涂改、伪造或重放路由信息。对路由协议最直接的攻击是针对两个节点交换的信息。基于涂改伪造或重放路由信息这种方法,攻击者可能会建立路由环线,攻击或击退网络流量,扩展或缩小源路由,产生虚假错误信息,造成网络分割,增加端到端延迟。 (2) 选择性转发。多跳网络通常假设参加的节点会诚实地转发接收到的消息。在一个选择性转发的攻击中,恶意节点会拒绝转发某些消息而仅仅是删掉它们,确定它们没有被传播得更远。在这种攻击中,恶意节点就像一个黑洞,拒绝转发它看到的一切包。但是这种攻击的冒险之处就是邻居节点会断定它失败了继而去寻找另一个路由。这种攻击通常在攻击者已经明确被包括在一个数据流的路径之内时是最有效的。我们相信,攻击者发射一个选择性转发袭击很可能会沿着阻力最小的路径并且试图把自己包括进真实的数据流之中。 (3) 天坑攻击。在无线传感器网络中,有些路由方案是依据链路质量和传输延迟来选路的。在这种情况下,某些恶意节点会利用诸如笔记本电脑这种拥有很强通信能力的终端混入正常的通信网络中,将自身伪装成一个通信质量很高的节点,以此欺骗环境中的其他节点,将大部分的通信流量吸引过来,对接收到的数据进行处理之后再选择性转发。 (4) sybil攻击。在sybil攻击中,一个节点对于网络中其他节点呈现多种身份。sybil攻击可以明显减少容错方案的有效性,如分布式存储、分散和多路径路由、拓扑维护等。副本、存储分区或者路由都是能够用一个攻击者呈现多个身份的相交节点。sybil攻击也对地理路由协议造成了重大攻击威胁。 (5) wormhole攻击。虫洞攻击是指两个以上的恶意节点共同发动攻击,两个处于不同位置的恶意节点会互相把收到的绕路信息经由私有路径传给另一个恶意节点,使这两个节点之间仿佛只有一步之隔。如图5.2所示,图中恶意节点之间存在一条高质量、低延迟的通信链路,左侧的恶意节点临近基站,这样较远处的恶意节点可以使周围节点相信自己有一条到达基站的高效路由,通过此方法就能将周围的通信流量吸引过来。 图5.2wormhole 攻击 (6) hello flood攻击。hello flood攻击是针对传感网的新型攻击,许多协议需要节点广播hello包向它们的邻居告知自己。接收这样hello包的节点也许会认为它是在发射频率范围内的正常发送方。一个笔记本电脑级别的攻击者用足够大的发射能量广播路由或者hello数据包,会使网络中的每个节点信服攻击者就是它的邻居。通常用洪水来表示消息像疫情一样通过每一个节点迅速传播,因此起名为hello flood攻击。 (7) 确认欺骗攻击。确认欺骗攻击的前提是该协议运用了链路层确认模式。无线传感器网络中的通信方式都是广播通信,恶意节点可以利用这个特征伪造一个确认包,并将其发送给消息源节点,从而使正常的消息发送节点错将一条低质量链路或者一个失效节点当成一条可成功送达的目的地,并向其不断传输数据,这样恶意节点就可以利用此漏洞发动攻击了。 5.2.2典型路由协议及安全性分析 通过对无线传感器网络路由协议的研究,本文选取了一些相对比较重要和有代表性的路由协议,对其核心路由机制、特点和优缺点进行了介绍,重点分析了这些路由协议的安全特性和抗攻击能力。 1. Directed Diffusion协议 Directed Diffusion是一个典型的以数据为中心、查询驱动的路由协议,路由机制包含兴趣扩散、初始梯度建立以及路径加强三个阶段,如图5.3所示。 图5.3Directed Diffusion协议的三个阶段 在兴趣扩散阶段,由汇聚节点周期性地广播兴趣消息到其邻居节点上,兴趣消息包含对象类型、目标区域、数据发送时间间隔、持续时间等四个部分。当节点收到邻居节点的兴趣消息时,如果该消息的参数类型不存在于节点的兴趣列表中,那么就建立一个新表项存储该消息; 如果节点中存在与该消息的某些参数相同的表项,则对该表项中的数据进行更新; 如果该消息和刚刚转发的某条消息一样,则直接丢弃。初始梯度建立和兴趣扩散同时进行。在兴趣扩散过程中,节点在创建兴趣列表时,记录中已经包含了邻居节点指定的数据发送率即梯度。当节点具有与兴趣消息相匹配的数据项时,就把兴趣消息发送到梯度上的邻居节点,并以梯度上的数据传输速率为参照标准对传感器模块采集数据的速率进行设定。鉴于自身有多个邻居节点在网络环境中进行广播兴趣消息,汇聚节点有可能在这个阶段通过不同的路径接收到相同的数据。汇聚节点通过多个节点从源节点收到数据之后,将这条路径建立为加强路径,以保证接下来的数据能通过这条加强路径以较高的速率进行传输。大多数路径加强是以类似于链路质量、传输延迟等数据为标准进行选择的,这里我们以传输延迟为例进行概述。汇聚节点会最先选定最近发来数据的邻居节点作为这条加强路径的下一跳,并向该邻居节点发送相应的路径加强信息,以确保其及时对自身的兴趣列表进行更新; 接下来该邻居节点会重复上面的步骤来确定自己的下一跳,这样的步骤会持续进行,直至路径加强信息传至源节点。 Directed Diffusion具有一些新特点: 以数据为中心的传输,基于强化适应性的经验最优路径,以及网络内数据汇聚和高速缓存。由于缺乏必要的安全防护,即使拥有这些优越的特性以及很好的健壮性,Directed Diffusion仍然承受不了攻击者的攻击。基于Directed Diffusion的特点,攻击者可以对其造成如下的威胁: ①攻击者将自己伪装成一个基站,广播兴趣消息。当节点接收到此信息并转发时,攻击者可以对目标数据进行监听; ②攻击者可以利用不真实的加强或减弱路径以及假冒的匹配数据,以达到影响数据传输的目的; ③攻击者通过向上游节点发送欺骗性的低延迟、高速率的数据来发动sinkhole或wormhole攻击; ④攻击者通过对sink节点发动sybil攻击,可以阻止sink节点获取任何有效信息。 2. LEACH协议 LEACH(low energy adaptive clustering hierarchy)是一种低能耗、自适应的基于聚类的协议,它利用随机旋转的本地簇基站来均分网络中传感器的能量负荷。LEACH使用本地化的协作来启用动态网络的可扩展性和鲁棒性,并采用数据融合的路由协议来减少必须发送到基站的数据量。LEACH的主要特点包括三方面: ①对于簇设置和操作的本地化协调与控制。②簇基站或簇头以及相应簇的随机旋转。③用于减少全局通信量的本地压缩。 接下来简述LEACH筛选簇头节点的过程: 一个节点自身随机生成一个0和1之间的数字,一旦这个随机生成数小于阈值T(n),则广播自身成为簇头节点的消息; 之后在每一次循环中,簇头节点都会将自身阈值重置为0,以保证自身不会再次成为簇头节点; 随着循环的不断进行,其余未当选过簇头节点的节点成为簇头时的阈值也渐渐增大。阈值T(n)的计算公式为 T(n)=p1-p[r mod (1/p)],n∈G 0,其他 其中p是所需的簇头百分比(如p=0.05); r是当前轮次; G是这一轮中没有成为过簇头节点的集合。 当簇头被选出以后,它开始向整个网络广播信息,网络中的非簇头节点根据接收到的广播信号的强弱来判读自身属于哪个簇,并向自己所属的那个簇的簇头节点发出相应的反馈信息。当整个网络正常工作以后,节点将自身收集到的数据发送给簇头节点,再由簇头节点将这些数据进行融合,进一步发送给汇聚节点。 利用大多数节点发射距离小的优点,我们设计了能够发送数据到基站的簇模式,只需要少数节点向基站发送长距离。LEACH优于经典的聚类算法,利用自适应簇和旋转簇头,使系统的能源需求分布到所有的传感器。此外,LEACH能够在每个簇中执行本地计算,以减少必须发送到基站的数据量,大幅度地减少了能量消耗。 鉴于网络中各个非簇头节点选择自己属于哪个簇是通过信号强弱来判定的,这就给了攻击者机会,使那些恶意节点可以通过增大自身信号强度来吸引那些非簇头节点,让节点们误以为它就是簇头节点,导致遭受选择性转发或天坑攻击。由于LEACH在设计过程中令所有节点都能与BS通信,这就保证自身对于虚假路由和sybil攻击有一定的抵御能力。 3. GPSR协议 GPSR是一种对于无线数据报网络的新型路由协议,协议设计每个节点可以利用贪心算法依据邻居与自身位置信息转发数据。算法的大致流程是当节点接收到数据以后,便开始以该数据为标准对本身存储的邻居节点列表进行处理。一旦自身到基站的距离大于列表中的邻居节点,那么节点就会将这个数据转发给它的邻居节点。 但是在实际的网络环境中,转发过程经常会出现“空洞”现象。如图5.4所示,在这个拓扑结构中,X到基站BS的距离要小于W和Y。根据贪心算法的转发机制,X不会将W和Y作为自身转发列表中的下一跳。面对空洞问题时,我们可以利用右手法则来解决。当节点接收到通过右手法则转发过来的数据时,节点本身开始进行比较。只有自己到基站的距离大于邻居节点到基站的距离,才启用贪心算法对数据进行转发。 另外,GPSR也有可能遭受到位置攻击,如图5.5所示。攻击者通过虚假信息将节点B的错误位置信息告知节点C,让C误以为节点B在(2,1),于是将数据转发给B。而真实的节点B又会根据贪心算法将数据再发还给节点C,如此下去就会导致整个网络因死循环而陷入瘫痪。 图5.4GPSR 中的空洞问题 图5.5利用位置信息的攻击 5.3无线传感器网络密钥管理 由于无线传感器网络的特点,很多成熟的有线或无线网络的密钥管理方案不能直接应用于无线传感器网络。对于无线传感器网络安全解决方案,加密技术是基础的安全技术,用于满足无线传感器网络的身份验证、保密性、不可抵赖性、完整性通过加密的安全性要求。对于加密技术,密钥管理是一个关键问题。通信安全性有四种类型的键: 关键节点和基站之间的通信、该节点的节点密钥、基站和通信密钥中所有节点的组密钥在无线传感器网络之间的通信过程、更多的邻居节点。下面具体分析无线传感器网络及相关密钥管理方案。 5.3.1密钥管理的评估指标 对于一个传统的网络,通过对密钥管理方案的分析就可以评估其优缺点,但这在无线传感器网络中是不够的。由于无线传感器资源约束的特点,无线传感器网络比传统的网络安全问题面临更多的挑战。因此,无线传感器网络的安全标准和传统网络不同。由于无线传感器网络自身的特点和局限性,无线传感器网络密钥管理方案的考核指标有以下几点: (1) 安全性。不论是传统网络还是无线传感器网络,密钥管理的安全性都是至关重要的,它是所有解决方案的前提因素,包括保密性、完整性、可用性等。 (2) 对攻击的抵抗性。无线传感器网络中的传感器节点体积小,结构脆弱,很容易遭受物理攻击,导致网络信息被泄露。对攻击的抵抗性指的就是当网络中的某些节点被恶意俘获后对剩余网络部分中节点间正常安全通信造成的影响程度。理想状况下,当一个网络拓扑失去部分节点后,其他节点仍然可以正常地安全地通信。 (3) 负载。无线传感器网络中一共包含三种负载: 通信负载、计算负载和内存负载。对于传感器网络中的节点来说,密钥管理方案必须要低耗能。而且节点之间广播通信时所消耗的能量远大于其自身的计算耗能,所以密钥管理的通信负载要尽可能小。由于节点有限的计算能力,传统网络中所采用的复杂的加密算法不适用于传感器网络,因此密钥管理方案要尽可能设计得简单些。由于节点的存储空间有限,不会保存过多密钥信息,因此合适的密钥管理方案要使每个节点预分配的信息尽可能减少。 (4) 可认证性。认证在无线传感器网络安全问题上是一个至关重要的步骤,网络中的节点可以通过认证机制抵御如节点冒充这样的攻击方式。因此,节点间的认证机制是否完善也成为密钥管理方案评估的一项重要指标。 (5) 扩展性。在现实的传感器网络环境中,会部署成千上万的传感器节点,这就要求一个好的密钥管理方案要能支持大规模的网络拓扑。另外,它也要兼顾传感器网络的动态变化,如节点的加入和离开。当有的节点因遭受外界攻击或自身能源耗尽而不能正常工作时,密钥管理方案应该能够保证网络的后向安全性; 当网络拓扑需要增加新的节点时,密钥管理方案应该能够保证网络的前向安全性。 (6) 密钥连接性。密钥连接性指节点之间直接建立通信密钥的概率。要想使无线传感器网络正常工作,就必须保持一个足够高的密钥连接概率。由于传感器网络中的节点很难与较远的节点相互直连通信,所以这一种情况是可以忽略的,不用考虑。密钥连接性只需确保邻居节点间建立通信密钥的概率足够高。 综上所述,在无线传感器网络中,要设计出一个适用于整个网络中可能出现的所有状况的密钥管理方案是很困难的,所以无线传感器网络安全问题的核心就是建立一个完备的安全密钥管理方案。 5.3.2密钥管理分类 通常情况下,传感器节点的能耗、密钥管理方案所能支持的最大网络规模、整个网络可建立安全通信的连通概率、整个网络的抗攻击能力都是设计无线传感器网络密钥管理方案的必要要求,方案必须满足这些要求。下面我们依据这些方案和协议的特点对密钥管理方案进行适当的分类。 1. 对称密钥管理与非对称密钥管理 基于使用的密码机制,无线传感器网络密钥管理可以分为对称密钥管理和非对称密钥管理两类。在对称密钥管理之中,节点间通信使用相同的密钥和加密算法来对传输的数据进行加密解密。对称密钥管理具有相对较短的密钥长度、相对较小的计算通信和存储开销,这也是无线传感器网络密钥管理的主要研究方向。对于非对称密钥管理,节点使用不同的加密解密密钥。鉴于非对称密钥管理使用了多种加密算法,所以它对于传感器节点的计算存储通信能力要求较高。如果不加修改,难以运用到无线传感器网络中。一些研究认为优化之后的非对称密钥管理也适用于无线传感器网络,但是从安全级别的方向考虑,非对称密钥管理机制的安全性要远高于对称密钥管理机制。 2. 分布式密钥管理和层次式密钥管理 根据网络拓扑结构的不同,无线传感器网络密钥管理可以分为分布式密钥管理和层次式密钥管理两类。在分布式密钥管理中,传感器节点具有相同的通信与计算能力,节点自身密钥的协商、更新通过使用其预分配的密钥以及与周边节点的相互协作来完成。而在层次式密钥管理中,传感器节点被分配到不同的簇中,每个簇的簇头节点负责处理普通节点的密钥分配、协商与更新等。分布式密钥管理的优点是邻居节点间协同作用强,分布特性很好; 层次式密钥管理的优点是大部分计算集中在簇头节点,降低了对普通节点计算和存储能力的需求。 3. 静态密钥管理与动态密钥管理 依据传感器网络中节点在部署完毕后密钥是否再次更新,可将无线传感器网络分为静态密钥管理和动态密钥管理两类。在静态密钥管理中,传感器节点在部署到特定区域之前会对其预分配一定的密钥,部署后通过数据交流来生成新的通信密钥。该通信密钥的生存周期为整个网络运行时期,其间不会发生改变。在动态密钥管理中,网络中的密钥需要周期性地进行分配、更新、撤回等操作。静态密钥管理具有通信密钥无须多次更新的特点,保证了计算和通信的开销不会过高。可一旦某些节点受损,该网络就会面临安全威胁。而动态密钥管理则会周期性地更新通信密钥,使攻击者不会轻易地通过捕获节点来盗取通信密钥,确保了网络运行的安全性。但是这种周期性的更新操作会产生大量的计算和通信开销,大幅度增加了整个网络系统的能源消耗。 4. 随机密钥管理与确定密钥管理 由传感器节点密钥分配方案的不同,可以将无线传感器网络密钥管理分为随机密钥管理和确定密钥管理两类。在随机密钥管理中,传感器节点获取密钥的方式犹如从一个或多个巨大的密钥数据库中随机抽取一定数量的密钥,节点间的密钥连通率介于0和1之间。而在确定密钥管理中,节点是通过位置信息、对称多项式等固定的方法获取密钥的,节点间的密钥连通率一直为1。随机密钥管理具有分配方式简单、节点部署自由等优点,缺点是分配方案具有一定的盲目性,容易导致节点存贮空间的浪费。而确定密钥管理对于节点的密钥分配具有很强的针对性,能够高效地利用节点的存储空间,方便地在节点间建立连接,但是部署方式的局限性以及节点间通信和计算的高耗能也成为了这种方案的弊端。 5. 组密钥管理 1) 组密钥管理概述 还有一种与以上分类都不同的管理方案,即组密钥管理方案。组密钥是所有组成员都知道的密钥,用来对组播报文进行加密/解密、认证等操作,以满足保密、组成员认证、完整性等需求。相比对单播的密钥管理,前向私密性、后向私密性和同谋破解是组密钥管理特有的问题。 前向私密性主要是针对网络中出现节点退出现象后的反映。这种现象发生后,前向私密性就会禁止退出的节点(包括主动退出的节点或被强制退出的节点)再次参与组通信,而剔除这些节点之后新生成的组密钥同样能够实现向前加密。后向私密性则要求网络中新加入的节点不能完成对其加入前组播报文的破解。 组密钥管理是一个负责的管理机制,既要预防单个节点的攻击,也要兼顾多个节点的联合攻击。一旦多个节点掌握了足够的信息联合起来对整个系统进行破解,那么无论密钥更新得多频繁,攻击者也会实时掌握最新的密钥,进而导致组密钥管理机制的失败,前向私密性和后向私密性都无法实现,使整个系统被完全破解,这就达到了同谋破解的目的。因此在设计组密钥管理机制的时候要避免同谋破解。 2) 组密钥管理的影响因素 除了上述这三个问题以外,组密钥管理还会受到下面这些因素的影响: (1) 差异性。组密钥管理涵盖很多通信节点,这些节点之间存在着各种各样的差异,如安全级别、功能、通信带宽、计算能力、服务类型等。为了适应这些差异,在设计组密钥管理方案时要统筹兼顾。 (2) 可扩展性。传感器网络的拓扑并不是固定不变的。随着规模的不断扩大,密钥的数量也会不断增多,所需的计算量、传输带宽、更新时间也会大幅增加。 (3) 健壮性。点对点通信时,一方失效整个通信则会终止。但是对于大规模的组通信来说,即使部分节点失效也不应该给整个网络的会话造成严重影响。 (4) 可靠性。可靠性是确保组密钥管理机制能够有效工作的重要性能。组播传输通常是不可靠的,乱序、丢包、重复信息等情况经常发生。如果设计的组密钥管理没有足够好的可靠性,将无法保证组成员在网络中的正常通信。 3) 设计组密钥管理时应考虑的因素 综上所述,设计一个完善的组密钥管理方案需要考虑的因素如下所示。 (1) 前向私密性: 组内节点退出后将无法再次参与到组播通信中。 (2) 后向私密性: 新加入的节点无法破译其加入之前的组播报文。 (3) 抗同谋破解性: 防止多个攻击者节点联合起来破解组密钥。 (4) 生成密钥的计算量: 由于能源有限,要考虑更新密钥时的计算量给节点带来的负担。 (5) 发布密钥占用带宽: 不能让发布密钥过多占用有限的传输带宽。 (6) 发布密钥的延迟: 降低延迟以确保组内节点及时获取最新密钥。 (7) 健壮性: 即使一些节点失效也不会影响整个网络的正常通信。 (8) 可靠性: 确保密钥的发布和更新操作能顺利进行。 5.3.3密钥管理典型案例 1. LEAP密钥管理方案 LEAP(localized encryption and authentication protocol)是一个密钥管理的安全框架协议。为了确保网络的安全,总共需要4种密钥: ①独占密钥: 每个传感器节点与基站的共享密钥; ②对密钥: 每个节点与其他传感器节点通信的共享密钥; ③簇密钥: 同一通信群组内的节点所共用的加密密钥; ④群组密钥: 整个网络中所有节点共享的密钥。 1) 独占密钥 独占密钥用于保证单个传感器节点与基站的安全通信,传感器节点可使用这个密钥计算出感知信息的消息论证码(MAC)以供基站验证消息来源的可靠性,也可以用这个密钥来举报它周围存在的恶意节点或者它所发现的邻居节点的不正常行为给基站。基站可使用这个密钥给传感器节点发布指令。 这个密钥是在节点布置之前预置到节点中的。节点u的独占密钥Kum可用一个伪随机函数f来生成Kum=fKm(u),Km是密钥生成者用于生成独占密钥的主密钥。密钥生成者只需要存储Km,在需要与节点u通信的时候再用伪随机函数计算出它们之间的通信密钥。 2) 对密钥 对密钥是指每个节点与它的一跳邻居节点的共享密钥,用于加密需要保密的通信信息或者用于源认证,既可以在节点布置之前预置,也可以在节点布置以后通过相互通信进行协商。协议假设整个网络的初始化时间Tmin内攻击者不会对节点造成威胁,并且在Test时间内新加入网络的节点可以与邻居节点协商好共同密钥(Tmin>Test),新入网的节点u与其邻居节点建立起对密钥的过程如下: (1) 初始状态时,密钥生成者给节点u初始化密钥K1,每个节点计算出自己的独占密钥Ku=fK1(u)。 (2) 节点u被散布到目标区域后,广播自己的身份信息u给它的邻居节点v; 收到广播信息的节点回复自己的身份v给节点u,并且附加一个对自己身份证明的MAC(Kv,u|v)信息。节点u可对v回送的身份信息进行验证,并用K1以及伪随机函数f计算出v的主密钥Kv,Kv=fK1(u)。 (3) u通过伪随机函数f计算得到与v的对密钥Kuv=fKv(u),节点v可采用相同的计算方式得到与u的对密钥。 3) 簇密钥 簇密钥是一个节点与它通信范围内的邻居节点所共享的密钥,用于加密本地广播通信,可用于网络内部的数据聚合或者新节点的加入,在对密钥建立以后协商建立。簇密钥的生成过程为: 由节点u生成一个随机密钥Kuc,用v1,v2,v3,…,vm与邻居的对密钥Kuv加密Kuc广播给所有邻居节点,邻居节点v在收到节点u的簇密钥后,回送自己的簇密钥给节点u。如果节点u的一个邻居节点被撤销了,节点u可以生成新的簇密钥并且广播给它的合法邻居节点v。 4) 群组密钥 群组密钥指基站与所有传感器节点共用的密钥,用于基站广播加密信息给整个网络中的节点。生成群组密钥最简单的方式是在节点散布到目标区域之前给所有的节点置入一个相同的、与基站通信的密钥。由于全网使用相同的群组密钥,当有节点被撤销时必须更新这个密钥,以防被撤销节点还能监听基站与每个节点的广播通信,可采用uTESLA协议更新网络的群组密钥。 2. Eschenauer随机密钥预分配方案 Eschenauer和Gligor在WSN中最先提出随机密钥预分配方案(简称EG方案)。该方案由3个阶段组成: 第1阶段为密钥预分配阶段。部署前,部署服务器首先生成一个密钥总数为P的大密钥池及密钥标识,每一节点从密钥池里随机选取k(kP)个不同密钥。这种随机预分配方式使得任意两个节点都能够以一定的概率拥有共享密钥。第2阶段为共享密钥发现阶段。随机部署后,两个相邻节点若存在共享密钥,就随机选取其中一个作为双方的配对密钥,否则进入到第3阶段。第3阶段为密钥路径建立阶段。节点通过与其他存在共享密钥的邻居节点经过若干跳后建立双方的一条密钥路径。 根据经典的随机图理论,节点的度d与网络节点总数n存在以下关系: d=n-1n[lnn-ln(-lnPc)] 其中,Pc为全网连通概率。 若节点的期望邻居节点数为n′(n′n),则两个相邻节点共享一个密钥的概率P′=d/(n′-1)。在给定P′的情况下,P和k之间的关系可以表示如下: P=1-[(P-k)!]2/[(P-2k)!P!] EG方案在以下3方面满足和符合WSN的特点: 一是节点仅存储少量密钥就可以使网络获得较高的安全连通概率。例如,要保证节点数为10000的WSN保持连通,每个节点仅需从密钥总数为100000的密钥池随机选取250个密钥即可满足要求。二是密钥预分配时不需要节点的任何先验信息,如节点的位置信息、连通关系等。三是部署后节点间的密钥协商无须Sink的参与,使得密钥管理具有良好的分布特性。 3. 基于组合论的密钥预分配方案 Camtepe用组合设计理论(combinatorial design theory)来设计WSN的密钥预分配方案。假设网络的节点总数为N,用n阶有限射影空间(finite projective plane)(n为满足n2+n+1≥N的素数)生成一个参数为(n2+n+1,n+1,1)的对称BIBD(balanced incomplete block design,平衡不完全区组设计),支持的网络节点数为n2+n+1,密钥池的大小为n2+n+1,能够生成n2+n+1个大小为n+1的密钥环,任意两个密钥环至少存在一个公共密钥,并且每一密钥出现在n+1个密钥环里。可见,任意两个节点的密钥连通概率为1。但素数n不能支持任意的网络规模。例如,当N>n2+n+1时,n必须是下一个新的素数,而过大的素数则会导致密钥环急剧增大,突破节点的存储空间,导致不适用于WSN。使用广义四边形(generalized quadrilateral,GQ)可以更好地支持大规模网络,如GQ(n,n),GQ(n,n2)和GQ(n2,n3)分别支持的网络规模达到O(n3)、O(n5)和O(n8),但也存在着素数n不容易生成的问题。 为此,Camtepe提出了对称BIBD与GQ相结合的混合密钥预分配方案: 使用对称BIBD或GQ生成b个(b值大小由BIBD或GQ决定,b