刘 芬,叶明全,郭鸿飞,陈 希,孙成浩,王培培
(1.皖南医学院弋矶山医院医学信息中心,安徽芜湖241001;皖南医学院2.医学信息学院;3.健康大数据挖掘与应用研究中心,安徽芜湖241002)
无线传感器网络(WSN)作为物联网的重要组成部分,在环境监测、医疗卫生、智能家居、国防军事等领域具有广泛的应用前景。WSN通常由大量廉价的微型无线传感器节点组成,与传统的网络相比,WSN节点在计算能力、存储空间、带宽大小、通信能力等方面受限。这些节点通常部署在无人值守和极易受到威胁的环境,通过自组织方式采集、监控管理区域的信息,因而其安全性备受关注。WSN的安全性可基于密钥的管理上,传统的WSN密钥管理方案大多是基于对称密钥密码体制,如E-G[1],q-Composite[2],HIDS[3]。对称密钥密码体制有固有的弱点,因而近年来公钥密码体制在WSN中得到了广泛的研究。公钥密码体制使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制[4],与对称密码体制相比,它具有众多独特优势,但加解密计算量较大。目前,针对WSN已出现多种基于公钥密码体制的协议,它们各具特点。Perrig等提出的SPINS协议中[5],任何节点配对密钥的生成、数据包的认证都必须通过Sink来完成,一旦Sink受损,整个网络的安全都会受到威胁,Sink成为SPINS协议的瓶颈,该协议不适合在大规模的网络中应用。在Zhu提出的LEAP协议[6]中,任何节点被捕获都不会影响其他节点的安全性,但如果主密钥暴露,则整个网络的机密信息都会暴露。Shamir等提出了基于身份密码体制(IBC)的密钥预分配方案[7],在该方案中节点的公钥是由公开信息直接推导获得,无须对公钥进行认证,降低了计算和通信开销,比较适用于WSN特性,且具有很强的容错能力,任何节点被捕获都不会暴露其他节点的机密信息;但若主密钥暴露,则整个网络的安全都会受到威胁;此外,使用IBC部署的网络,节点位置相对固定,不适用于动态WSN。公钥密码体制中,椭圆密码体制(ECC)具有更优的性能,基于ECC的密钥预分配方案[8],安全强度在计算意义上要远远高于传统的基于对称密钥的密钥管理方案。Huang等提出ECC与对称密钥密码体制相混合的密钥管理协议[9]来解决异构传感网(HWSN)中节点之间公钥的认证问题,在该协议中,ECC所产生的计算和通信开销主要集中于FFD节点,通过这种协议可以延长网络的寿命。Jiang等[10]提出了基于ECC的密钥管理方案,此方案主要采用了身份认证和ECC两种技术,连通性能达到100%,并且支持节点的动态加入和撤销,但是没有很好地解决簇头的选择问题,容易导致节点能量的耗尽。Kishore等[11]提出了一种基于ECC的密钥预分配技术,相对于其他的密钥共享技术如Blom和E-G方案,此方案在内存使用、能量消耗等方面做了改进,但连通性较差。本文在上述研究的基础上,提出基于公钥体制的轻量级密钥管理方案(LWKM),保证网络的安全通信。
对WSN隐私数据带来威胁的攻击方式分为外部攻击和内部攻击两种模型[12]。WSN中节点间采用无线通信方式进行数据传输,攻击者通过链路层窃听可获取敏感数据,这种攻击方式称为外部攻击。攻击者对捕获的节点进行分析,能够获取被捕获节点的所有数据,掌握相应的安全信息,并成为网络的参与者,从网络内部发起有针对性的恶意攻击,这种攻击方式称为内部攻击,如图1所示。节点捕获攻击与节点复制攻击是典型的内部攻击方式。进行节点捕获攻击时,攻击者捕获传感器节点,并对节点中代码和数据进行分析从而获得其ID(记为I)信息与密钥信息;进行节点复制攻击时,攻击者复制出大量相同的节点,这些节点被部署在网络中实施各种攻击和破坏。
本文对整个网络做如下假定:(1)本文是基于三层传感器网络模型,它是由少量资源丰富的高资源节点和大量资源受限的传感器节点(SN)组成,高资源节点作为汇聚结点(SINK),SINK节点负责数据收集和数据融合。资源受限的传感器节点之间构成下层网络,将感知数据传送至簇头(CH)节点。CH节点与SINK节点之间通过低速无线链路进行短距离低速率通信,形成中层网络。SINK节点与基站(BS)之间通过高速无线链路进行长距离高速率通信,形成上层网络。(2)网络中的节点是静止的,部署以后,不具备自主移动能力,且每个节点都有一个标识其身份的I号。(3)根据地理位置的远近,网络被划分为许多簇,即物理位置上邻近的节点为一个簇,几个相邻的簇和同一个SINK节点相连。(4)CH节点的产生采用LEACH[13]协议。(5)网络中的节点部署后通过各种定位方法可获得每个节点的近似位置pi。(6)BS是安全的,不能被攻击者捕获。网络模型如图2所示。
本方案由两个阶段组成,其中部署前阶段选取适当的椭圆曲线参数a,b和p确定一个唯一的椭圆曲线,在椭圆曲线上选取若干点构造一个密钥池,每一个节点的种子密钥在密钥池中选取,并将簇密钥K分别存储到SINKi节点与BS。部署阶段SINK节点广播簇密钥K到相应的CH节点,CH节点广播簇密钥K到相应的SN节点,然后进行节点之间会话密钥的建立。当有成员节点加入或离开网络时更新K与会话密钥。
图1 内部攻击模型
图2 网络模型示意图
(1)配对密钥生成。根据椭圆曲线参数a,b和p,确定一个唯一的椭圆曲线,其中,Fp是有限阈,p为质素,a,b为满足4a3+27b2≠0(mod p)且小于p的非负整数。密钥分配采用协商方式,分为SINK与BS之间会话密钥的建立、CH与SINK之间会话密钥的建立、SN与CH之间会话密钥的建立以及SN与SN之间会话密钥的建立。
(2)会话密钥建立。BS使用ECC方法为每一个SINK节点产生配对的公钥和私钥。在网络部署前,BS将相应节点的公钥、私钥通过安全接口预先载入节点中。SINK节点与BS之间采用的是非对称加密,双方通过握手方式分别获得对方的公钥。SINK计算:KSINK-BS=SKSINKPKBS=SKSINKSKBSP;BS计算:KBS-SINK=SKBSPKSINK=SKSINKSKBSP,KSINK-BS或KBS-SINK为SINK与BS进行通信的会话密钥。CH节点与SINK节点、SN节点与CH节点、SN节点与SN节点之间采用的是对称加密,在椭圆曲线上选取若干点作为每个节点的种子密钥,密钥分配采用协商方式。
(i)CH和SINK之间会话密钥的建立。
(ii)SN和CH之间会话密钥的建立。
(iii)SN和SN之间会话密钥的建立。
其中‘+’表示ECC中点的加法,(x,y)SINK为汇聚节点的种子密钥,(x,y)CH为簇头节点的种子密钥,(x,y)SN为普通传感器节点的种子密钥。(x,y)CH-SINK或者(x,y)SINK-CH表示CH节点和SINK节点之间的会话密钥,(x,y)SN-CH或者(x,y)CH-SN表示SN节点和CH节点之间的会话密钥,(x,y)SNi-SNj或者(x,y)SNj-SNi表示SN节点和SN节点之间的会话密钥,当两个节点通信时用会话密钥对消息进行加密处理。
K是在密钥分配阶段使用的密钥,满足K∈Fp,其作用是在密钥分配阶段对消息进行加密处理。K的产生和更新过程:BS作为网络管理者负责K的分发和更新操作,各个SINK节点都是BS的登记用户,且与BS通过ECC密钥互换算法(ECDH)建立会话密钥KSINKi-BS,对于有N个SINK节点的WSN,BS拥有N+1个密钥,其中有一个是K,另外N个是BS与各个SINK节点的会话密钥(用于加密BS与各SINK的个别通信)。
(3)密钥更新
(i)密钥K更新过程。当有节点加入或离开网络时,为了保证前向和后向安全性,BS产生新的簇密钥分发给各SINK节点,各SINK节点将簇密钥分发给各个簇,其中密钥更新报文为,其中表示用密钥K对x进行加密。
(ii)会话密钥更新过程。当有节点加入或离开网络时,簇密钥进行更新,进而进入会话密钥建立阶段,更新网络中所有CH节点与SINK节点、SN节点与CH节点、SN节点与SN节点之间的会话密钥。
本方案通过密钥协商方式建立节点间的会话密钥,SINK节点与BS、CH节点与SINK节点、SN节点与CH节点、SN节点与SN节点之间都建立了会话密钥,故网络连通性近似等于1。本方案是基于三层传感器网络模型,具有较好的网络可扩展性。
节点的资源开销包括计算开销、通信开销和存储开销。计算开销是节点生成会话密钥时计算所消耗的能量,本方案主要是密钥协商时种子密钥间的点加开销与点乘开销,两个会话节点建立会话密钥的开销为O(1),整个网络会话密钥的建立共需要O(n)的时间开销,适合于WSN节点计算能力有限的特点。节点的通信开销是节点生成会话密钥时发送和接受消息所消耗的能量,该方案的通信开销主要是簇密钥更新时的开销,而簇密钥的分发采用广播的方式,有效地解决了通信开销问题。存储开销即为建立会话密钥所需的存储空间,这里选取椭圆曲线上的点作为最初的种子密钥,由阿贝尔(Abel)加法群的性质可知通过密钥协商建立的会话密钥仍然是椭圆曲线上一点,降低了存储开销。表1通过计算开销、通信开销、存储开销对LWKM方案与E-G、q-Composite、HIDS方案进行对比分析。可知LWKM方案会话密钥建立过程使用密钥协商方式虽然增加了椭圆曲线上的点加运算与点乘运算,计算时间有所增加,但因为在WSN中通信成本要远远高于计算成本,运行一次点乘运算的能耗不超过1.5m J[14]。LWKM方案大大降低了传输的信息量,所以与其他方案相比其运行效率更高,能耗也最少。
表1 密钥管理方案的性能比较
本文采用逐跳加密方式(hop-by-hop encryption)可以有效地应对外部攻击,通过会话密钥建立过程,网络中相互通信的节点之间知道对方的I信息。当相同I号的节点离开网络,又加入网络时,其所连接的上层节点将此节点的I号以及时间戳发送给BS,BS判断缺席时间,如果缺席时间ΔT大于时间域值T′,则该节点被判定为捕获节点。若T′取值过大,则检测灵敏度下降,容易漏检;若T′取值过小,正常节点会被误判为捕获节点,造成误检。这两种情况都会影响网络的正常通信,故T′的选取非常重要。本文假设网络部署初期是安全的,由BS统计所有相同I号的节点离开网络后又加入网络的缺省时间ΔT,时间阈值T′的取值为T′>max(ΔT)。BS删除网络中具有此ID号的所有节点,如图3所示。
节点离开或加入网络时,网络都进行会话密钥更新,故复制节点不可能以原来的会话密钥进行通信,必须作为新加入节点进行会话密钥协商。若有多个相同I号的节点与当前节点进行会话密钥协商,当前节点将此I号发送给BS,由BS删除网络中的这些复制节点。网络中复制节点检测场景为一个矩形监测区域被划分为m个小区域,有n个复制节点,n个复制节点随机散布在m个小区域中。网络中检测复制节点的概率模型满足贝努利概型,同一个小区域至少有2个复制节点的概率(检测到复制节点的概率)为,其中。可知随着复制节点个数n的增加,检测到复制节点的概率越大。网络中检测不到复制节点是在任意两个复制节点均不处于同一个小区域,如图4所示。但由于复制节点分散在每个小区域中,BS可检测到相同I号的节点处于不同的区域,故判定为复制节点,进而删除网络中具有此I号的所有节点。
图3 捕获节点检测示意图
图4 复制节点检测示意图
本文采用NS-2进行仿真,传感器节点部署在1000m×1000m的区域中,整个网络有2个SINK节点,簇的半径为400m,初始能量为10 J,采用无线信道,路由协议采用LEACH协议,MAC层协议使用的是IEEE 802.15.4,数据包大小为512 bits。对E-G,q-Composite,HIDS在网络连通性、可扩展性、资源开销和安全性上进行对比实验。
(1)网络连通性。WSN的网络连通性是指在随机图G(Q,p)中相邻节点间建立安全链路的概率,Q为全网络的节点数,p为建立安全链路的概率值。如果每个节点与足够的邻居节点共享通信密钥,则G(Q,p)可构成全连通图。图5为网络连通性与邻居节点个数之间的关系,可以看出使用LWKM方案的网络,网络连通性高于E-G、q-Composite两种方案。由于本文方案的网络连通性近似等于1,而q-Composite方案是一种基于概率的模型,并不能保证所有的节点都能找到彼此的会话密钥,因此连通性受到一定限制,其密钥连通概率为其中S为密钥池,m为选取的密钥个数,q为共享密钥阈值。E-G方案是q-Composite方案中当q=1时的情况,其密钥连通概率为其中k为密钥环的大小,P为密钥池的大小。
(2)网络可扩展性。WSN的节点规模少则十几个或几十个,多则成千上万。随着规模的扩大,密钥协商所需的计算、存储和通信开销都会随之增大,密钥管理方案必须能够适应不同规模的WSN。图6反映了在不同网络规模下使用4种方案的网络总数据量。从仿真结果可以看出,相对于E-G、q-Composite、HIDS方案,在不同的网络规模下,LWKM方案网络中节点发送且被成功接收的总数据量(最终BS收到的数据量)都高于其他方案,即比其他方案具有更好的可扩展性,体现了LWKM方案采用三层传感器网络模型能够适应不同规模网络的特性。
(3)资源开销。网络的资源开销过大会导致网络寿命缩短,影响网络监测任务的实施。图7为网络中分别使用LWKM、HIDS、E-G、q-Composite 4种方案的仿真时间与剩余能量关系,可以看出LWKM、HIDS、E-G、q-Composite4种方案的资源消耗率分别为16%、17%、20%、22%,LWKM方案相对于其他方案具有更低的资源消耗率。由于LWKM方案中簇密钥的分发采用广播方式,有效地解决了通信开销问题,并且最初的种子密钥是椭圆曲线上一点,最终建立的会话密钥仍然是曲线上一点,降低了存储开销。
(4)安全性。网络的安全性是指抵御恶意节点攻击的能力。图8为网络中检测到恶意节点个数与仿真时间的关系,可以看出LWKM方案较HIDS、E-G、q-Composite 3种方案具有较好的安全性能。由于应用逐跳加密方式有效地解决了外部攻击,且通过引入簇密钥K,使得当有新成员节点加入或成员节点离开时会话密钥都进行了更新,有效地避免了节点捕获攻击、节点复制攻击。
图5 网络连通性
图6 网络总数据量
图7 网络剩余能量
图8 入侵节点个数
设计有效的密钥管理方案实现WSN的安全保护,目前已经成为研究热点。密钥管理往往是在安全性和通信开销中取得一个折中,本方案中簇密钥的分发采用广播的方式有效地降低密钥更新时的通信开销。运用椭圆曲线上点的加法的可交换性,在密钥分配阶段通过密钥协商方式建立了BS与SINK节点、SINK节点与CH节点、CH节点与SN节点以及SN节点与SN节点之间的会话密钥。引入簇密钥K,实现密钥的实时更新,保证了通信的安全性。旁路攻击、Sybil攻击、节点合谋攻击、中间人攻击等问题,将是下一步工作研究的重点。