◆杨 钢
(辽宁大学信息学院 辽宁 110036)
无线传感器网络是由一系列具有感知、计算、通信功能的传感器节点组成,由于其低成本、分布式部署方式、实时监测和自组织等特点,能够满足信息获取所需的时效性和准确性而广泛应用于生活中的各行业之中[1]。但在无线传感网中因为需要把传感器节点布置在野外环境中,传感器节点容易受到攻击,传感器节点会因为大量的攻击数据包而严重消耗有限的资源,最终导致整个网络瘫痪[2]。因此设计一种能够追踪到攻击节点的追踪方法具有十分重要的意义。在现有的溯源追踪方法中,概率包标记技术由于其占用的资源较少以及不影响网络的正常通信,并能够满足不同协议的要求等特点[3],从而最为适用于传感器网络中进行溯源追踪,从而使得概率包标记技术成为该领域研究的一大热点。
基本的概率包标记策略中由于下游节点的标记容易覆盖上游节点的标记,从而导致该策略的溯源追踪效率低,汇聚节点需收集到足够多的数据包,才能重构溯源路径。基于邻居节点信息的溯源追踪策略虽然改进了溯源追踪的效率,但仍采用逐级定位的方法进行溯源追踪,这就要求在溯源过程中需要途中节点的参与,导致溯源的效率仍然较低和消耗的能量较多。
假定无线传感器网络中节点分布不均匀且密集,网络拓扑结构可动态变化,汇聚节点布置后就不再移动,且具有不会被俘获、资源不受限制和安全性强的特点。与现有的安全问题研究假设基本相同,但在本网络中还需假设源节点不受攻击以及不会出现连续节点受到攻击的情况。
攻击模型,如图1所示。在该模型中存在着多条攻击路径,模型中的一条攻击路径为:P={S0,S1,S2,…,Sn,Sink}。其中S0为源节点,Si(0≤i≤n)为中间节点,攻击路径长度为n+1。
图1 多重攻击路径图
部署前,每个节点都有一个唯一的 ID 标识,个人密钥生成公式,全局的单向链生成函数H(x)以及与汇聚节点共享的密钥。假设在网络初始化过程中,每个节点都是安全的。个人密钥生成公式如式(1):
f是随机函数,ksm是该节点与汇聚节点的私钥,且这个密钥由汇聚节点发送。由于使用哈希函数可能会出现冲突现象,本方法中使用开放定址法对哈希函数进行处理,如下式:
其中H(x)为哈希函数;di为增量序列,取di=1,2,…,m-1,称为线性探测再散列;m为哈希表表长。
因此单向链密钥生成函数如公式(3)。
当节点部署在某区域后,每个节点如 V利用式(1)生成密钥kvm,然后通过公式(3)生成每个节点对应的m+1 个单向链密钥〈kv0,kv1, … … ,kvm〉。每个节点存储间隔为d的若干密钥,其余密钥由相邻密钥利用密钥生成算式生成。之后每个节点向邻居节点广播自身与邻居节点的共享密钥,邻居节点将这个密钥记录下来,以此类推,每个节点就都记录了其与下一跳邻居节点的共享密钥,同时每个中间转发节点还记录了其与上一跳邻居节点的共享密钥。
本文中用双重密文的方式进行信息的传递,确保信息的安全传输。为了防止传输信息被恶意节点篡改,本文采用以下措施进行保护:
将每个节点的真实 ID 隐藏起来:
其中是由汇聚节点发送的节点 V和汇聚节点的私钥,|| 为连接操作。
采用与密文相关的 MAC 认证:
其中E为加密算法,data为要传输的消息,ki为两相邻节点的共享密钥,C为 MAC 算法,为源节点与汇聚节点的私钥。
当某一传感器节点收到至少 T 个传感器节点发送的感知信息时,就向其邻居节点声明自己是簇头节点。之后簇头节点将收集到的感知信息进行数据融合处理,形成数据包发送给下一跳节点,然后经过中间节点进行转发,最后发送到汇聚节点。本文中数据包格式如下所示:
第一步:源节点首先将收集到的信息进行数据融合处理,形成初始的数据包,源节点再将该数据包转发给下一跳节点。
第二步:中间转发节点接收到数据包后,首先利用两通信节点的共享密钥解密双重密文Mi得到初级密文,然后该节点将得到的初级密文与数据包中保存的E(data)进行比较,若比较结果相同,则进行第三步;反之,则进行第四步。
第三步:若 MAC 认证成功,则该节点先利用其与下一跳节点的共享密钥和 MAC 算法对E(data)进行加密得到新的双重密文Mi,再将更新好的数据包传输给下一跳节点后直接进入第五步。
第四步:若 MAC 认证未成功,则该节点记录其上一跳节点的隐藏 ID 到攻击节点 ID 域IDA′中,然后根据数据包中的E(data),与下一跳节点共享的密钥以及MAC 算法重新生成一个双重密文Mi;最后将更新的数据包转发给下一跳节点后进行第五步。
第五步:当下一跳节点接收到数据包后,验证当前节点是否为汇聚节点,若为汇聚节点,则数据包不再进行转发;若不为汇聚节点,则进入第二步。
当网络中各通信路径上的数据包传递到汇聚节点后:
第一步:汇聚节点首先检查数据包中的攻击节点域的值,若其值为空,则表示该数据包代表的通信路径是安全的路径;若其值不为空,则表明该通信路径为攻击路径。
本文提出的基于双重密文的攻击节点追踪方法,汇聚节点不需要收集大量的数据包和利用“边”思想进行定位便可追踪到攻击节点。而且还可以追踪到网络 上的所有攻击节点,并不局限于只追踪攻击源,但该方法不能够有效的处理网络中出现的合谋攻击,因此还需对网络上出现的合谋攻击的情况进行深一步的研究。