安全管理包含了安全体系建立(即安全引导)和安全体系变更(即安全维护)两个部分。安全体系建立表示一个传感器网络从一堆分立的结点,或者说一个完全裸露的网络,如何通过一些共有的知识和协议过程,逐渐形成一个具有坚实安全外壳保护的网络。安全体系变更主要是指在实际运行中,原始的安全平衡因为内部或者外部的因素被打破,传感器网络识别并去除这些异构的恶意结点,重新恢复安全防护的过程。这种平衡的破坏可能是由敌方在某一个范围内进行拥塞攻击形成的路由空洞造成的,也可能是由敌方俘获合法的无线传感器结点造成的。还有一种变更的情况是增加新的结点到现有网络中以延长网络生命期的网络变更。
SPINS安全框架对安全管理没有做过多的描述,只是假定了结点之间以及结点和基站之间的各种安全密钥已经存在。在基本安全外壳已经具备的情况下,去实现机密性、完整性、新鲜度、认证等安全通信机制。对于传感器网络来说,这是不够的。试想一个由上万结点组成的传感器网络随机部署在一个未知的区域内,没有结点知道自己周围的结点会是谁。在这种情况下,要想预先为整个网络设置好所有可能的安全密钥是非常困难的,除非对环境因素和部署过程进行严格控制。
安全管理最核心的问题就是安全密钥的建立过程(Bootstrap)。传统解决密钥协商过程的主要方法有信任服务器模型、自增强模型和密钥预分配模型。信任服务器模型使用专门的服务器来完成结点之间的密钥协商过程,如Kerberos协议。而自增强模型需要非对称密码学的支持,而非对称密码学的很多算法,如Diffie-Hellman(DH)密钥协商算法,都无法在计算能力非常有限的传感器网络中实现。密钥预分配模型在系统部署之前就完成了大部分的安全基础的建立,系统运行后的协商工作只需要很简单的协议过程就能完成,所以特别适合传感器网络的安全引导。对随机密钥模型的各个算法可以从下面几个方面进行评价和比较:
(1)计算复杂度评价。
(2)引导过程的安全度评价。
(3)安全引导的成功概率。
(4)结点被俘后,网络的恢复力评价。
(5)结点被复制后或者不合法结点被插入到现有网络中,网络对异构结点的抵抗力。
(6)支持的网络规模评价。
在介绍安全引导模型之前,首先要引入一个概念,即安全连通性。安全连通性是相对于通信连通性而言的。通信连通性主要指在无线通信环境下,各个结点与网络之间的数据互通性。安全连通性主要指网络建立在安全通道上的连通性。在通信连通的基础上,结点之间要进行安全初始化的建立,或者说各个结点要根据预共享知识建立安全通道。如果建立的安全通道能够把所有结点都连接成一个网络,则认为该网络是安全连通的。图5-6所示为安全连通和通信连通的关系。
图5-6 安全连通和通信连通对比
图中所有结点是通信连通的,但不全是安全连通的,因为结点4以及结点对9和13无法与它们周围通信的结点建立安全通道。有的安全引导模型从设计之初就同时保证了网络的通信连通性和安全连通性,如预共享密钥模型。而另一些安全引导模型则不能同时保证通信连通性和安全连通性。有一点可以确定,安全连通的网络一定是通信连通的,反过来则不一定成立。
1)预共享密钥模型
预共享密钥是最简单的一种密钥建立过程,SPINS使用的就是这种建立过程。预共享密钥有两种主要模式。
(1)每对结点之间都共享一个主密钥,以保证每对结点之间的通信都可以直接使用这个预共享密钥衍生出来的密钥进行加密。该模式要求每个结点都存放与其他所有结点的共享密钥。这种模式的优点包括不依赖于基站,计算复杂度低,引导成功率为100%,任何两个结点之间的密钥都是独享的,而其他结点不知道,所以一个结点被俘不会泄露非直接建立的任何安全通道。但这种模式的缺点也很多,包括扩展性不好,无法加入新的结点,除非重建网络,对复制结点没有任何防御力,网络的免疫力很低,一旦有结点被俘,敌人将很容易通过该结点获得与所有结点之间的秘密并通过这些秘密攻破整个网络。另外,其支持的网络规模小,假设结点之间使用64位即8个字节的主共享密钥,那么1 000个结点规模的网络就需要每个结点有8 000字节的主密钥的存储空间。如果要考虑各种衍生密钥的存储,整个用于密钥存储的空间大小就是一个非常庞大的数字。一个合理的网络规模为几十个到上百个结点。
(2)每个普通结点与基站之间都共享一对主密钥,参考SPINS协议的描述。这样,每个结点需要的密钥存储空间将非常小,计算和存储的压力全部都集中在基站上。该模式的优点包括如下几个:
①计算复杂度低,对普通结点的资源和计算能力要求不高。
②引导成功率高,只要结点能够连接到基站就能够进行安全通信。
③支持的网络规模取决于基站的能力,可以支持上千个结点。
④对于异构结点的基站可以进行识别,并及时将其排除在网络之外。
缺点包括如下几个:
①过分依赖基站,结点被俘后,就会暴露与基站的共享秘密,而基站被俘则整个网络就会被攻破,所以要求基站被布置在物理安全的位置。
②整个网络的通信或多或少都要通过基站,基站可能成为通信瓶颈。
③只有基站可以动态更新的时候,网络才能够扩展新的结点,否则将无法扩展。
这种模式的模型对于收集型网络比较有效,因为所有结点都是与基站或汇聚结点直接联系的。而对于协同型网络,如用于目标跟踪型应用网络,则效率会比较低。在协同型网络的应用中,数据要安全地在各个结点之间通信,一种方法是通过基站,但会造成数据拥塞,而另一种方法则要通过基站建立点到点的安全通道。在通信对象变化不大的情况中,建立点到点安全通道的方式还能够正常运行。如果通信对象切换频繁,安全通道的建立过程也会严重影响网络运行效率。最后一个问题就是在多跳网络环境下,这种协议对于DoS攻击没有任何防御能力。在结点与基站之间通信的过程中,中间转发结点没有办法对信息包进行任何的认证判断,只能进行透明的转发。恶意结点可以利用这一点伪造各种错误数据包并发送给基站,因为中间结点是透明传送的,所以数据包只能在到达基站以后才被识别出来。基站会因此而不能提供正常的服务,这是相当危险的。
预共享密钥引导模型虽然有很多不尽如人意的地方,但因其实现简单,所以在一些网络规模不大的应用中可以得到有效的实施。
2)随机密钥预分配模型
(1)基本随机密钥预分配方案
随机密钥预分配方案是由Eschenauer和Gligor最早提出的。它的主要思想是根据经典的随机图理论,控制结点间共享密钥的概率,并在结点被捕获之后撤销该结点的密钥链且更新结点间的共享密钥。随机密钥预分配方案的具体实施过程如下。
①密钥预分配阶段。部署前,部署服务器首先生成一个密钥总数为S的大密钥池及密钥标识,每个结点从密钥池里随机选取K个不同密钥以及密钥对应的标识存入结点的存储器内,这K个密钥被称为结点的密钥链,K值的选择应保证每两个结点间至少拥有1个共享密钥的概率大于预先设定的概率。
②共享密钥发现阶段。随机部署后,每个结点都广播自己密钥链中所有的密钥标识,周围的邻居结点收到信息后查看自己的密钥链,如有相同密钥标识则存在共享密钥,就随机选取其中的一个作为双方的对密钥(Pairwise Key);否则,进入到下一阶段。
③密钥路径建立阶段。当结点与邻居结点没有共享密钥时,结点通过与其他存在共享密钥的邻居结点经过若干跳后建立双方的一条密钥路径。
④当检测到一个结点被捕获时,为了保证网络中其他未被捕获结点之间的通信安全,必须删除被捕获结点中密钥链的密钥。因此,控制结点广播被捕获结点密钥链中的所有密钥标识,其他结点收到信息后删除自己密钥链中含有相同密钥标识的对应密钥,与删除密钥相关的密钥连接将会消失,因此受影响的结点需要重新进入第②或第③阶段。
随机密钥预分配方案存在着一个概率问题,即有可能存在着一些结点与周围邻居结点没有共享密钥,也没有密钥路径,所以不能保证网络的密钥连接性。影响网络的密钥连接性的因素包括网络的部署密度、目标区域的状况、密钥池S的大小以及结点密钥链的大小K。K/S越大,邻居结点之间存在共享密钥的概率就会越大。但K/S太大会导致网络的安全性变得脆弱,因为K值太大会占用结点的太多资源,S值太小会容易让攻击者通过捕获少量结点就可以获得大部分密钥池中的密钥,进而危及网络安全。
根据经典的随机图理论,结点的度d与网络结点总数n存在以下关系:
其中,pc为全网连通概率。对于一个给定密度的无线传感器网络,假设n′是结点通信半径内邻居结点个数的期望值,则相邻两个结点共享一个密钥的概率p′如下:
该方案有三个优点:一是结点仅存储少量密钥就可以使网络获得较高的安全连通概率,计算复杂度低;二是密钥预分配时不需要结点的任何先验信息,如结点的位置信息和连通关系等;三是密钥管理具有良好的分布特性。
(2)q-Composite随机密钥预分配方案
Chan等人在Eschenauer和Gligor的方案基础上,提出了q-Composite随机密钥预分配方案[5]。该方案要求相邻结点间至少有q个共享密钥,通过提高q值来提高网络的抗毁性。q-Composite随机密钥预分配方案的具体实施过程如下:
①密钥预分配阶段。部署服务器首先生成一个密钥总数为S的大密钥池及密钥标识,每个结点从密钥池里随机选取k个不同密钥以及密钥对应的标识存入结点的存储器内,这k个密钥被称为结点的密钥链,k值的选择应保证每两个结点间至少拥有q个共享密钥的概率大于预先设定的概率。
②共享密钥发现阶段。和基本随机密钥预分配方案类似,结点广播自己密钥链中的密钥标识,找出位于自己通信半径内与自己有共享密钥的结点。
③共享密钥发现完成后。每个结点都确定与自己的邻居结点有t个共享密钥,t>q,则可以使用单向散列函数建立通信密钥K=hash(k1||k2||…||kt)。
该方案的网络连通性概率也是基于概率论和随机图理论来计算的:
其中,p(i)为从S个密钥中抽取k个预存储的密钥给结点时,两个邻居结点有i个公共密钥的概率。根据全概率公式,任意两个相邻结点能够直接建立共享密钥的概率如下:
网络中的所有结点都从同一个密钥池中抽取密钥,所以未被捕获的结点间可能使用被捕获结点泄露的密钥通信,这会对网络安全构成重大威胁。使用量化指标与“x结点被捕获时,一对未被捕获的结点间的共享密钥泄露的概率”来评估方案的抗攻击能力,该值也等价于“x个结点被捕获时,剩余网络不安全部分的比例”。在Eschenauer和Gligor的随机密钥预分配方案中,各个结点携带任意一个预分配密钥的概率为K/S,x个结点被捕获时,任意一对未被捕获的结点间的共享密钥泄露的概率如下:
在该方案中,抗攻击能力的计算与Eschenauer和Gligor提出的方案类似,但不同之处在于要考虑k-q+1种可能性。由全概率公式可知,x个结点被捕获时,任意一对未被捕获的结点间的共享密钥泄露的概率如下:
该方案的优点是,相对基本随机密钥预分配方案,其网络的抗毁性比较好,少量结点被捕获不会影响网络中其他结点间的通信。缺点是,要想网络中相邻结点间至少有q个共享密钥的概率达到预先设定的概率,就必须缩小整个密钥池的大小,增加结点间共享密钥的重叠度,从而限制了网络的可扩展性,攻击者捕获少量结点就能获得密钥池中大部分密钥。(www.xing528.com)
3)基于分簇的密钥管理
(1)低能耗密钥管理方案
低能耗密钥管理方案是由Jolly等人提出的。它假定基站有入侵检测机制,可以检测出恶意结点并能触发删除结点的操作。但是,它对传感器结点不做任何信任的假设,簇头之间可以通过广播或单播与结点进行通信,该方案具体实施步骤如下:
①预分配阶段。每个结点预先存储两个密钥和两个ID(标识符),其中一个密钥是与某个簇头共享的,另一个密钥是与基站共享的,两个ID分别表示该簇头和结点自身的ID。由于结点是不可信任的且结点的存储空间有限,所以在结点存储少量密钥不仅可以节省结点的存储空间,而且能提高网络的安全性。另外,所有簇头都共享一个密钥用于簇头间的广播通信,且每个簇头还被分配一个与基站共享的密钥并随机选择|S|/|G|个传感器结点的密钥,其中|S|表示传感器结点的个数,|G|表示簇头的个数,而基站则要存储所有的密钥|S|+|G|。
②初始化阶段。
a)首先结点广播自己的信息,格式如下:
b)簇头接收到信息后,找出与自己没有结点密钥的所有结点的ID并在簇头间广播,格式如下:
c)每个簇头接收到信息后,在自己存储的密钥中查找与信息中结点ID对应的密钥,然后将密钥信息发送回源簇头,格式如下:
d)最后,簇头发送信息给结点,指定结点的归属,格式如下:
③加入新结点阶段。加入新结点时,基站首先随机选择一个簇头,将新结点的密钥发送到该簇头,格式如下:
然后通过第②步的初始化阶段,新结点就可以加入网络。
该方案的优点是,结点只要预存两个密钥和两个ID,对结点的存储空间要求不高,且计算复杂度低,网络的抗毁能力强。其缺点是,网络的扩展性差,通信依赖于簇头,如果多个相邻簇头都被捕获,则整个网络就会瘫痪。而且,当簇头被捕获时,该方案会重新指定一个新的簇头来代替旧的簇头,然后把该簇内的所有结点都分配给新簇头。但是这在实际应用中是不可行的,因为不能保证新簇头正好部署在旧簇头的位置上,所以也就不能保证新簇头能包含所有旧簇内的结点。
(2)LEAP密钥管理方案
2003年Zhu等人提出的LEAP(Localized Encryption and Authentication Protocol,局部加密和认证协议)是一个既能支持网内处理(In-Network Processing),又具有较好抗捕获性的密钥管理协议。这种协议支持4类密钥的生成和管理,提供了较好的低能耗的密钥建立和更新方案,同时还提供了基于单向密钥链的网内结点认证方案,并在不丢失网内处理功能和被动参与(Passive Participation)的情况下支持源认证操作。
Zhu等人认为应该在网络结点中设立多种密钥以适应不同的需要,因此在LEAP中建立了4种类型的密钥,包括个体密钥(Personal Key)、组密钥(Group Key)、簇密钥(Cluster Key)、对密钥(Pairwise Key)。每种密钥都有不同的作用,建立个体密钥、对密钥、簇密钥、组密钥的具体步骤如下:
①个体密钥。个体密钥是结点与基站所共享的密钥,由结点在部署前通过预分配的主密钥Km和伪随机函数f生成,用于结点向基站发送秘密信息。结点u的个体密钥的产生式如下:
②对密钥。对密钥是相邻结点间单独共享的密钥,用于结点间单独交换秘密信息,是通过交换其标识符及使用预分配的主密钥和单向散列函数计算得到的。其具体产生步骤如下:
a)密钥预分配。管理结点产生一个初始化密钥KI,每个结点预存KI并按式(5-14)计算出结点自身的主密钥:
b)邻居发现。部署后,结点广播自己的标识符,邻居结点接收到信息后回复源结点,格式如下:
c)对密钥建立。结点收到邻居结点的回复后就可以计算对密钥了,按下式计算:
d)撤销密钥。对密钥建立周期过后,每个结点都撤销KI及所有Kv。
③簇密钥。簇密钥为同一簇内相邻结点所共享,由簇头产生一个随机密钥作为簇密钥,然后使用与邻居结点的对密钥逐一地把簇密钥加密后发送给邻居结点,邻居结点把簇密钥解密后保存下来。
④组密钥。组密钥是基站与所有结点共享的通信密钥。基站首先对组密钥使用与其子结点共享的簇密钥加密后广播给子结点,子结点获取最新的组密钥后,用与其下一级子结点共事的簇密钥加密组密钥并广播给其子结点。以此类推,直到所有结点都获取到最新的组密钥为止。
LEAP方案的优点是,任何结点的受损都不会影响其他结点的安全。其缺点是,结点部署后,在一个特定的时间内必须保留全网通用的主密钥。主密钥一旦被暴露,整个网络的安全都会受到威胁。此外,在对密钥的生成阶段,因为只有单向认证,所以还存在Hello洪泛攻击,即当攻击者f假冒除v外的网络中任何结点向结点v广播协商请求时,按照协议结点v将生成对所有结点的对密钥。
4)基于本地协作的组密钥分配方案
基于本地协作的组密钥分配方案(Group Key Distribution via Local Collaboration)的基本思想是,网络生存时间被划分为许多时间间隔,称之为会话(Session),每个会话阶段都由基站发起组密钥更新。组密钥更新时,基站向全组进行广播,合法结点可以通过预置的密钥信息和广播消息包获得一个私有密钥信息,结点通过和一定数目的邻居结点进行协作,利用私有密钥信息计算获得新的组密钥。一个会话阶段的组密钥更新过程如下:
(1)初始化
基站随机选择一个度数为2t的隐藏多项式h(x)=a0+a1x+…+a2tx2t和一个度数为t的加密多项式l(x),并为每个结点i预置密钥信息h(i)和l(i)。
(2)广播组密钥信息
集合R={ri},|R|=w≤t代表基站知道的被捕获结点的个数。基站向外广播的消息包B为B={R}∪{w(x)=g(x)f(x)+h(x)}。其中,f(x)为度数为t的私有密钥多项式,g(x)=(x-r1)(x-r2)…(x-rω)为剔除多项式。
(3)获得私有密钥
合法结点i收到广播信息包B后,将其结点ID代入广播多项式w(x),能够计算出其私有密钥为f(x)=(w(i)-h(i))/g(i)。相反,任意被捕获结点j均不能获得私有密钥,因为g(x)=0,其ID代入w(x)后只能得到其本身存储的密钥信息h(x)。
(4)本地协作
为了获得新的组密钥,结点需要同至少t个邻居结点进行协作。结点向其邻居结点广播私有密钥请求,邻居结点收到请求信息后,如果信任该结点,则将其加密后的私有密钥s(i)=f(i)+l(i)发送给请求结点。
(5)生成组密钥
结点获得至少t个结点的s(i)后,加上其自身存储的s(i),结点可获得t+1个加密后的私有密钥。结点利用该t+1个信息通过Lagrange插值,可获得一个组密钥多项式s(x)=f(x)+l(x)。从而,结点可计算出新的组密钥K=s(0)。
该方案使得只有组中的合法结点才能获得私有密钥f(i),以及只有被一定数目的邻居结点信任的结点才能够通过本地协作的方式获得新的组密钥。网络有多个会话阶段,结点需要存储所有会话阶段的hj(i)和一个固定的lj(i),hj(i)和lj(i)代表第j次会话用到的密钥信息。
该方案的优点如下:
①实现比较简单,只需在结点部署之前给每个传感器结点预置所有会话阶段的密钥信息即可进行组密钥更新。
②安全性较好,能很好地抵制部分结点被捕获时对其他结点的安全通信造成的影响。
③支持网络的动态变化,加入结点只需预置目前传感器网络所处阶段的组密钥及之后阶段的密钥信息即可参与网络协同操作。
其缺点如下:
①存在着孤立结点以及计算开销较大的问题。
②存储开销较大,因为每个结点都需要存储所有阶段的密钥信息,而网络的会话次数一般很多。
③通信开销较大,因为组密钥更新是通过广播方式实现的,同时每个结点都需要和一定数目的邻居结点进行本地协作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。