郑月锋,董云鹏
(吉林师范大学 博达学院计算机与信息科学系,吉林 四平 136000)
无线传感器网络(WSNs)在军事与环境监控、地震与气候预测、地下、深水以及外层空间探索等许多方面有广泛的应用前景[1].但是,它的安全也面临着巨大的挑战,尤其是在安全性要求非常高的领域[2-3].多种点到点的通信安全方案被提出[4],用于阻止窃听和攻击.然而,由于节点的计算能力、通信能力、存储能力等方面的限制,使得这些节点无法依靠自身去决定安全算法,而要依靠安全密钥对和智能路由来传送安全信息.
文中的安全策略引入了风险、信任机制,确保节点之间在进行信息共享的时候可以做出关键性的决定.
近年来,无线传感器网中的密钥建立方式得到了广泛的研究:最简单的密钥建立方式是在网络中的每个节点都预置相同的密钥,并用此密钥在每对节点之间进行通信[4].然而,这种方式有一个致命的缺陷,一旦某节点被俘获,整个网络就处于瘫痪状态.比较简单的解决方法是使每一个节点都与可能和其发生通信的节点拥有相同的密钥,这样,某一节点被俘获不会影响网络中其它节点的安全.但是,随着网络规模的扩大,因为节点的存储能力有限,这种方法显然不适合无线传感器网络.
多种基于以上两种方案之间的方法被提出,例如基于组[5]和基于位置的[6],这些方法在大型网络中尤其突出.然而,这些方案都是使用对称密钥加密方法,忽略了非对称密钥的使用.普遍认为,计算能力上的限制使得非对称密钥无法应用于无线传感器网络.椭圆曲线应用到密码学上最早是由Neal Koblitz和Victor Miller在1985年分别独立提出的[7].它具有安全性高、密钥量小、灵活性好的特点,受到了国际上的广泛关注.可以得到证明,基于椭圆曲线的加密方案对密钥建立和密钥管理方案都是可行的.
当前,基于身份识别的加密算法来保证建立安全密钥被广泛采用.IBC[8](identity based cryptography)首先是由Shamir提出的,和传统的公共密钥加密算法相似,但加入了随机公钥生成器,能够保证使用唯一的字符串或其它的短代码做其公钥.IBC很好的解决了建立密钥信息过程中所占用存储空间的问题,一个16位的地址可以存储216=65536个ID值.
根据以上分析,本文使用了基于组的节点分布方式,分布后组内节点相对固定.组内每个节点都预置唯一的密钥信息.
有限域算术运算是椭圆曲线运算的基础[9],域是由一个集合以及定义在集合上的一些运算组成,如果集合F是有限集合,则称域为有限域.有限域元素的个数称为有限域的阶.
定义1.1
p是一个素数,存在一个q阶有限域F,当且仅q=pm,其中p称为域F的特征,m是一个正整数.
若m=1,则域F就称为素域.
若m≥2,则域F就称为扩域.如果q满足要求并且q确定了,实质上只存在一个q阶有限域.用符号Fq表示.
定义1.2
设p是一个素数,t是任意的一个整数,t mod p表示用t除p所得的余数w(0≤w≤p),所有的W构成的集合用符号Fp表示.
定义1.3
E Fp 椭圆曲线y2=x3+ax+b(mod p),这里p是素数,a和b为两个小于p的非负整数,它们满足:4a3+27b2(mod p)≠0其中,x,y,a,b∈Fp,则满足此式的点(x,y)和一个无穷点O就组成了椭圆曲线E.
G1,G2 表示在椭圆曲线E范围内的q阶子组;
ê G1x G1→G2;
H hash函数,G1中的加密函数;
h hash函数,公有的加密函数;
A,B,… 节点组;
x,y,… 独立节点;
IDAGA的ID值;
IDx节点x的ID值;
Kx:AGA与节点x通信时的密钥;
Kxy节点x与节点y通信时的共享密钥;
mAGA的主密钥.
椭圆曲线离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对Q=kP,在已知P、Q的情况下求出小于p的正整数k.可以证明,已知k和P计算Q比较容易,而由Q和P计算k则比较困难,至今没有有效的方法来解决这个问题,因此椭圆曲线加密算法安全性较高.e(P,Q)椭圆曲线上节点P、Q到某节点构成的节点对,通常P、Q线性独立,否则,e线性无关,且e(P,Q)=1.
椭圆曲线公钥系统是代替RSA强有力的竞争者.椭圆曲线加密方法与RSA方法相比,有如下的优点:
(1)安全性能更高,如160位ECC与1024位RSA、DSA有相同的安全强度;
(2)计算量小,处理速度快,在私钥的处理速度上(解密和签名),ECC远比RSA、DSA快得多;
(3)存储空间占用小,ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,所以占用的存储空间小得多,这一点非常适合用在无线传感器上;
(4)带宽要求低使得ECC具有广泛的应用前景.
ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法.比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法(见表1).
表1 ECC 与 RSA/DSA 安全强度比较
在某些场景中,人工或自动的设置节点,或者已知密钥节点的固定位置[5].本文中,假设节点在分布后无法移动,而且,不需要额外添加定位设备,每一个组使用的密钥信息都是唯一的.这样,含有Ga密钥信息的节点就可以与Ga内的节点建立对密钥.进而可以进行安全的信息传递.
(1)授权密钥和节点密钥的初始化.每一个组的所有节点都预置一个独立的授权密钥,每一个主授权密钥可以为每个授权密钥生成对密钥信息(包括p,E/Fp,G1,G2,ê).一组节点分布后,授权节点随机选择mA做为Ga的安全密钥.
在这个阶段,假设每个组都有唯一的身份值IDa,组内每个节点都有唯一的身份值IDx.授权节点能够提供给组内每个节点唯一的基于身份的密钥Kx:A(Kx:A=maH(IDx)).组内每个节点除拥有Kx:A外,还被预置组内的基本信息(p,E/Fp,G1,G2,ê,H,h,IDA).由于椭圆曲线离散算法的复杂性,使得俘获某一节点将不会得到组密钥mA.这是因为:E是定义在Fp上的椭圆曲线,P∈E(Fq).Q也是椭圆曲线上一点,很难找到一个整数d(0<=d<=n),使得Q=dP,也就是说,在已知Kx:A和IDx的情况下,很难找到ma,因为Kx:A=maH(IDx).
Ga中任意节点x预置和邻组Gb对应密钥Kx:AB,Kx:AB=mambH(IDx).节点当中预置邻组对应密钥的数量和网络规模需求有关,假如网络层数为i,那么节点预置邻组对应密钥的数量就为2i+2.见图1.
图1 传感器网络层组
(2)对密钥建立.相邻节点间的密钥对建立分为两种方式:第一,组内密钥对建立,建立对密钥的节点在同一组内;第二,组间密钥对建立,建立对密钥的两个节点在不同组内.密钥对ê(P,Q)需要在源节点预置私密钥信息Kx:A,公密钥信息IDy预置在目的节点.由于密钥对的对称性,目的节点的私密钥信息Ky:A和源节点的公密钥信息IDx将产生相同结果.
组内密钥对建立:节点x向外广播其身份值IDX,组身份值IDA和随机变量nx,并且等待一定范围内邻居节点的回应.节点y接到广播后,首先判断节点x是否与自己处在同一个组内.如果是在同一个组,节点y将自己的身份值IDy向外广播,并附带随机变量ny.计算并验证共享密钥值.因为组内通信,所以组身份值相同,可不用返回值.对于节点x通过公共密钥来计算两个节点间的信息是否相符,经验证,节点y可以与节点x建立密钥对.
组间密钥对建立:与组内建立密钥对相似,首先节点x向外广播IDx、IDA和nx.在另外一个组(GB)内的节点y在收到IDA后,获知节点x与其不同组,然后节点y检测是否存在与组A对应的密钥Ky:BA.如果有,则回应IDy、IDB、ny和一个验证共享密钥.节点x收到返回值后,检测是否有一个对应GB的密钥Kx:AB.如果有,返回对应验证信息.这样,节点x和节点y建立了组间密钥对.
现有安全算法大多集中在数据链路层、传输层、应用层上通过加密数据的方式来保证网络的安全性.文中采用了简单的、适用无线传感器网络的安全策略来保证安全.
本文提出的安全策略分为如下几部分:节点、组件、连接、传输.两个节点通过一个连接来建立安全通道,连接的过程通过传输来实现,各组件的性质用属性来表示.
(1)节点和组件.节点有两个属性:自身份和组身份.自身份值是在建立对密钥的过程中唯一确定一个节点,组身份值能唯一确定一个组.节点用小写字母表示,组身份值用下标表示,xA表示组A中的某个节点x.组件是一个传感器节点处理信息的一些部件,例如:内部时钟,运动传感器,温度计等.组件用一个大写字母连同一个数字表示,xAT1表示温度计T1在组A中节点x上.
(2)连接.一对节点通过不同方式可以有多条连接线路,本文使用方向和信任来描述连接.方向描述连接方式分为对称连接和非对称连接,对称连接表示节点可以向两个方向传输,即可以作发送者,也可以作接收者;非对称连接表示传输方向是唯一的,一个节点只能作为发送者或只能作为接收者.信任度表示节点在不被俘获的前提下完成传输任务的可信度.本文用带指向的箭头来表示方向,用带上标的大写字母来表示信任度.
(3)传输.传输用风险指数来描述,是一个0到1之间的数值,数值越高表示信息越重要.用α、β、γ…表示,后接上标显示风险指数.风险指数在网络分布初期就已经设置完成,但随着网络变化和安全策略变化,风险指数有可能发生变化.
经过上述说明,可作如下定义:组A中的节点x,与组B中的节点y进行α传输,风险指数为0.2,并且与J型方式信任度为0.4的连接方式进行传输.
本文中的安全策略对入侵检测的效果十分明显,假设一个入侵检测系统包含若干检测移动的节点,这些节点分布在不同的区域内.如果一个节点检测出移动,会发出警报信号,并识别出移动发生的区域,传递给基站.每一个区域都有一个基站.节点可以与相邻的区域内的节点进行直接通信,可以与不相邻区域内的节点进行间接通信.
基站可以规定区域内的安全策略,区域内所有节点组成一个组,节点的部件包括一个时钟(C1)和一个移动检测器(M1).基站包含一个时钟和移动检测接收器R1.传输包括低风险系数的同步时间操作α0.2和高风险系数的检测入侵操作β0.5.节点与组内基站的连接方式与节点之间的连接方式相同,都采用对称连接.为不失一般性,组间的信任级数不先做设定,统一规定为0.4.这就意味着组间距离为1时,BT(A,B)=1,允许的风险系数为0.41=0.4;当BT(A,B)=2时,最大风险系数值为0.42=0.16(见图2).
图2 各种数值计算的信任级别
入侵检测是一个高风险传输,入侵通告比获得节能路由更为重要,因为检测之前无法得知下一个组内是否有节点被俘获.节点A和基站Za之间通过连接J进行传输,例如信任级别是2.0,传输风险是0.5,因此,传输是可行的.同时,传输是非对称的,所以节点不需要接收任何来自传输的引入信息.
攻击者经常用俘获相邻组内某节点的方式来绕过入侵检测.例如,攻击者俘获距离节点x较近的节点m,用节点m从节点x处截取入侵检测信息.m在组B内是合法节点,x将对其进行认证后建立连接,但是t(A,B)=(fx)BT(A,B)=0.4.因为传输需要信任级别大于或等于0.5,所以不建立连接,攻击失败.
参考文献:
[1]Akyildiz F,Su W,Sankarasubramaniam Y,Cayirci E.Wireless sensor network:A survey[J].Computer Networks,2002,38(4):393-422.
[2]Carman DW,Kruus PS,Matt BJ.Constraints and approaches for distributed sensor security[R].Technical Report,000-010,NAI Laboratories,2000.
[3]Perrig A,Stankovic J,Wagner D.Security in wireless sensor networks.Communications of the ACM[J].Special Issue on Wireless Sensor Networks,2004,47(6):53-57.
[4]王福豹,史龙,任丰原.无线传感器网络中的自身定位系统和算法[J].软件学报,2005,16(5):857-868.
[5]苏忠,林闯,封富君,任丰原.无线传感器网络密钥管理的方案和协议[J].软件学报,2007,18(5):1218-1231.
[6]王魏,李平,韩波.无线传感器网络路由协议研究[J].工业控制计算机,2005,18(1):26-27.
[7]谷勇浩,刘勇.一种椭圆曲线参数生成的快速算法[C].第二十次全国计算机安全学术交流会论文集,2005-08.
[8]Zhang YC,Liu W,Lou WJ,Fang YG.Location-Based compromise-tolerant security mechanisms for wireless sensor networks[J].IEEE Journal on Selected Areas in Communications,2006,24(2):247-260.
[9]A.Cilardo,L.Coppolino,N.Mazzocca.Elliptic Curve Cryptography Engineering[J].Proceeding of the IEEE,2006,94(2):395-401.