APP下载

基于椭圆曲线密码系统的分簇WSNs节点身份认证机制*

2012-12-07巩思亮梁庆伟王营冠

传感器与微系统 2012年12期
关键词:非对称密码加密

巩思亮,邢 涛,梁庆伟,王营冠

(1.中国科学院上海微系统与信息技术研究所无线传感网与通信重点实验室,上海200050;2.中国科学院研究生院,北京100049;3.无锡物联网产业研究院,江苏 无锡214135)

0 引言

与传统网络不同,无线传感器网络(WSNs)的开放性自组织特征使得WSNs物理层到应用层都面临着来自网络外部和内部的潜在安全威胁和攻击。因此,出现了一系列针对WSNs安全的研究,如,针对WSNs的安全威胁与攻击[1]、信任机制[2]、密码管理[3]、节点身份认证[4,5]和安全路由机制[6]等研究。

认证是网络安全中的重要组成部分,是在网络中确认用户身份和消息来源的重要手段。认证分为身份认证和消息认证。在WSNs中,由于网络的开放性特征,需要为所有需要加入网络的合法传感器节点提供安全准入机制,也就是身份认证。

目前,针对WSNs认证的研究主要集中于基于非对称密码体制的认证和基于对称密码体制的认证2种方案。其中,基于非对称密码体制的认证方案大都是对现有Internet认证机制的成果进行改进和改造,使其适用于WSNs,其中,比较典型的是2004年提出的TinyPK方案[4]。TinyPK采用了低指数级RSA算法,较传统的RSA算法运算量小。但是TinyPK方案只实现了单向认证,不能解决网络中的认证方可能为非法的问题,并且在实际网络中被认证实体有可能是需要入网的节点,用来执行大运算量的操作并不合理。Benenson Z等人[7]在TinyPK 方案的基础上做了两点改进:1)使用总体损耗和密码长度都比低指数级RSA更小的椭圆曲线公钥算法代替RSA;2)使用多认证方认证代替单一认证。但是该方案需要大量的通信开销。与基于非对称密码体制的认证方案相比,基于对称密钥体制的认证方案最大的优势是计算简单。面向WSNs的SPINS安全框架协议[5]提出可以使用节点之间预共享通信密码和节点与基站之间预共享通信密码2种方式实现节点与节点之间、节点与基站之间简单而高效的身份认证。但该方案中密码的预分配工作必须在网络部署之前全部完成,不能随着网络规模的动态变化而变化,因此,方案的扩展性比较差。为了克服这一缺点,E-G方案[8]采用随机密码预分配的算法进行认证和密码管理,节点通过各种持有的密码进行匹配实现认证。使用该方案网络扩展能力会增强,但是由于密码匹配存在一定的概率性,当节点间不存在匹配的共享密码时,也不能证明节点为非法;另外,随着被捕获节点的增多,网络的安全性变差。

针对现有方案的缺陷,本文结合了现有基于非对称密码体制认证方案和基于对称密码体制认证方案二者的优点,提出了一种适用于簇结构传感器网络的认证方案,采用分级的思想将基于非对称密码的复杂运算放在簇头和网络管理者等计算能力强的节点上,而簇成员等计算能力差的普通传感器节点仅承担基于对称密码体制的简单操作,具有针对性和实用性。同时,方案中基于非对称密码的算法采用了椭圆曲线密码加密体制(elliptic curve cryptosystem,ECC)[9],在同等安全强度下进一步降低了计算复杂度和减小了密码长度。最后对方案的安全性和效率进行了分析。

1 网络模型

本文采用三层结构的簇状网络模型,假设每个节点在网络中都有唯一的地址标识符,图1给出了一种典型的单Sink三层传感网结构模型。本文使用的网络模型不限定簇的形成过程、簇头的选举方式、簇内的通信方式以及簇头间的路由方式等,因此,可以用于多种网络环境。

2 基于ECC的非对称密码技术

2.1 ECC加/解密算法

给定E是定义在有限域Fp上的椭圆曲线,G是E上选择的阶为 n(n为>160的素数)的基点。CA随机选择k(1≤k≤n-1)作为自己的私钥,并公开对应的公钥K=kG和椭圆曲线E的域参数。

假设实体b要安全地发送消息m给实体a,那么实体b需要使用实体a的公钥K对消息m进行加密。加密过程如下:

1)实体b获取实体a传送来的域参数信息,并产生随机数 j,1≤j≤n-1;

图1 典型的单Sink三层传感网结构模型Fig 1 Typical three-layer structure model with single Sink

2.2 ECC签名与验证算法

假设实体a要对消息m进行签名,过程如下:

1)实体 a 产生随机数 j,1≤j≤n-1;

2)实体 a 计算 jG=(x1,y1);

3)实体a计算r=x1mod n,若r为0,则返回步骤(1);

4)实体a计算e=hash(m);

5)实体a计算s=j-1(e+rk)mod n;

6)实体a对m的签名为(s,r)

记实体a对消息m的签名(s,r)为SigECCa(m)。

拥有实体a公钥K的实体b对签名SigECCa(m)的验证过程如下:

1)实体b计算e=hash(m);

2)实体b计算u=s-1mod n;

3)实体b计算v1=ew mod n和v2=rw mod n;

4)实体 b计算(x1,y1)=v1G+v2K;

5)实体b判断r是否等于x1mod n,若相等,则签名有效;若不相等,则签名无效。

3 认证方案

方案分为网络初始化、节点注册、节点与簇头的双向认证和节点的簇间漫游4个主要阶段。

3.1 网络初始化

网络管理者(NM)选择安全的椭圆曲线域参数,并生成自己的密码对(PrKNM,PuKNM),H是使用 SHA—1算法的安全散列函数。椭圆曲线域参数和NM的公钥PuKNM是全网公开的,网络中的簇头CH1,CH2,…,CHn使用相同的椭圆曲线域参数生成各自的密码对(PrKCH1,PuKCH1),(PrKCH2,PuKCH2),…,(PrKCHn,PuKCHn),其中,私钥为各自私有,公钥对外公开。

3.2 节点注册

节点i在加入网络之前,NM会检验和确认节点i的身份。身份确认之后,NM为节点i在合法节点列表中建立索引项并将相关索引信息发送给节点i。若该过程发生在网络已经部署完成之后且NM与节点i之间不存在物理安全信道,则需要使用加密信息完成该注册流程。步骤如下:

1)身份确认之后,节点i随机选择对称密码Keyi0作为原始密码,然后发送密文C=EnECCPuKNM(Keyi0)给NM;

2)NM计算DeECCK(C)得到Keyi0,然后为节点i在合法节点列表中添加索引项,索引项至少应包括索引编号Index(i)、有效期TLi节点i的原始密码Keyi0三项;

3)NM构造消息 m={Index(i),SigECCNM(Index(i)),TLi},并发送EnKeyi0(m)给节点i;

4)节点i使用Keyi0对消息进行解密后得到Index(i),

通过该步骤,节点i与NM之间共享了初始密码Keyi0。

3.3 节点与簇头的双向认证步骤

1)节点i获取当前时戳T1并存储,向簇头CHj发起入簇申请,申请消息为 m1={Index(i),T1,TLi,EnKeyi0(Ti)};

2)CHj收到申请消息m1后,若T1新鲜,则获取当前时戳 T2,构造消息 m2={Index(i),T1,EnKeyi0(T1),T2},发送{m2,SigECCCHj(m2)}给NM;

3)NM收到m2以后,首先验证签名SigECCCHj(m2)来自于簇头CHj。若签名有效,则在合法节点列表中查找Index(i),找到对应的密码Keyi0和有效期TLi。列表中无此项或者有效期已过,则直接回复CHj节点i为非法。若有此项且有效期未过,计算DeKeyi0(EnKeyi0(T1))得到T1并与数据包中的T1进行比较,若不相等,则回复CHj节点i为非法;若相等,NM获取当前时戳T3,随机选择Keyi1作为节点i的临时密码,构造消息m3={EnECCPuKCHj(Keyi1),T3,EnKeyi0({T1,Keyi1})},发送{m3,SigECCNM(m3)}给 CHj;

4)CHj验证签名 SigECCNM(m3),并检验 T1,T2,T3的合理性,从而验证m3来自于NM。CHj用自身的私钥PrK解密)得到与节点i的临时对称密码Keyi1,然后发送消息m4=EnKeyi0({T1,Keyi1})给节点i;

5)节点i收到消息m4之后,计算DeKeyi0(m)得到T1和Keyi1。若T1正确且整个过程在合理的延时范围之内,则确认CHj为合法的簇头,并与CHj成功建立安全的对称密码Keyi1。

3.4 节点的簇间漫游

WSNs中的节点可以是能够自由移动的节点,当节点i从一个簇移动到另一个簇时,就产生了节点的簇间漫游问题。当节点i在簇间漫游过程中需要向漫游地簇头CHk申请认证时,需要重复3.3小节所述的认证流程。不同的是之前临时的对称密码Keyi1会被抛弃,而由NM为节点i和簇头CHk重新生成一个新的随机密码Keyi2。CHk与节点i随后的通信将通过Keyi2进行加密和解密。

4 方案分析

4.1 安全性分析

1)双向认证分析

在3.3小节新加入节点i与簇头CHj的认证过程中,实现了二者的双向认证。

CHj对i的认证:簇头CHj对节点i认证的安全性主要基于2个要素:网络管理者NM的可信性和NM对节点i的认证。其中,NM的可信性是通过对签名SigECCNM(m3)的验证来保证的。NM根据合法节点列表中的索引项和有效期限认证节点i。只有真正的节点i才拥有Keyi0,因此,只要解密得到的T1正确,就可以确认节点i身份的真实性。

i对CHj的认证:节点i对簇头CHj的认证取决于NM对簇头CHj的认证。在双向认证的步骤(3)中,NM验证签名SigECCCHj(m2)的有效性。由于NM只能通过CHj与节点i进行通信,为了防止CHj伪造验证结果,NM使用只有NM和节点i持有的对称密码Keyi0加密包含申请时间戳T1的数据包通过CHj转发给节点i。由于每次申请时的时间戳T1不同并且CHj不具有密码Keyi0,因此,CHj无法伪造验证结果。节点i通过解密转发的数据包得到时间戳T1与当时存储的时间戳T1进行比较,如果相等,则验证了CHj的合法性。

2)安全的会话密钥建立和更新分析

在节点i与簇头CHj的认证过程中,节点i与簇头CHj可以建立安全的会话密码Keyi1。Keyi1是由NM随机生成的,并且通过2个安全信道分别传给节点i和簇头CHj:

安全信道NM节点i:NM向节点i传递消息m'的安全路径为

在传递过程中,虽然经过簇头CHj转发,但是消息经过NM和节点i共享的Keyi0加密,CHj无法篡改该消息,因此,该信道是安全的。

安全信道NM→CHj:在该方案中,NM与簇头CHj之间的通信采用了基于非对称密码的加密方式,保证了二者通信过程中的安全性。在整个过程中,i与CHj的会话密码Keyi1由NM随机生成,并且分别通过安全信道传送给节点i与簇头CHj,因此,会话密钥Keyi1的建立是安全的。

3)通信安全性分析

认证过程中,NM和簇头的保密内容通信均使用基于ECC的算法进行加密和签名,保证了消息的安全性和完整性,发送的消息添加了时间戳以保证消息的新鲜性,可以防止重放攻击。认证过程完成之后,簇头CHj和节点i建立了安全的共享密码Keyi1,后续的通信都使用Keyi1进行加密,保证了通信内容的安全。在节点i的认证有效期内,节点如果在各簇间漫游,那么,每次都会产生不同的对称会话密码,实现了一次一密。由于会话密码由可信的NM随机产生并通过安全信道传输,任何一方不能单独产生会话密码,保证了会话密码的公正性。

4.2 效率分析

表1对本方案与 E-G 认证方案[8]、TinyPK 方案[4]、Benenson方案[7]在认证方式上进行了效率比较。

表1 效率比较Tab 1 Comparisons of efficiency

表中SK表示对称密码,由于对称密钥算法的计算复杂度要远远小于非对称密码算法,因此,E-G认证方案的计算复杂度最小。但E-G方案安全性差、认证成功率低、可扩展性差,不适应大规模的WSNs应用。而相比Benenson方案,本方案和传感器节点相关的操作都使用了基于对称密码的算法,在计算量方面占有绝对优势。因此,下文主要将本方案与TinyPK方案进行比较。考虑到163位的ECC算法与1024位的RSA的安全性相当[10],此处 TinyPK采用 RSA—1024算法,密码长度为1024 bit,本方案采用160位的ECC算法,密码长度为160 bit。

4.2.1 计算开销

1)认证方的计算开销

表2对认证方的运算进行了比较,通过文献[9]可知,160位的ECC非对称密码算法与RSA—1024的算法复杂度在同一数量级。因此,2种方案中认证方的计算开销相差不大。但本方案所使用的ECC密码长度为160 bit,相比TinyPK使用的1024 bit密码长度,大大减少了密码存储所需要的空间。同时,在TinyPK中,认证方为计算能力较弱的传感器节点,而本方案中的认证方为计算能力较强的簇头,因此,本方案更具有实用性。另外,随着网络对安全要求的提高,ECC低计算开销的优势还会更加明显的展现出来。

表2 认证过程中认证方的计算开销比较Tab 2 Comparisons of the authenticators’computational pay expenses during the authenticational process

2)被认证方的计算开销

表3对被认证方的运算进行了比较,相比TinyPK方案,本方案主要使用对称密码加密,计算量相对可以忽略。

表3 认证过程中被认证方的计算开销比较Tab 3 Comparisons of the computational pay expenses of the parties to be authenticated during the authentication process

4.2.2 通信开销

对于每次成功认证,TinyPK仅需要2次通信,而本方案需要4次通信。从通信开销上看,TinyPK方案要优于本方案。但是由于TinyPK方案只实现了单向认证,不能解决认证方可能为非法的问题;而本方案实现了双向认证,认证双方的任意一方为非法实体都无法通过。另外,由于TinyPK方案的认证是分布式的,并不能解决证书的撤销问题;而本方案由NM统一对所有节点的认证信息进行管理,可以根据实际情况对证书进行撤销,即本方案通过增加通信开销提高了网络安全性。

5 结束语

针对基于非对称密码认证方案计算量大、基于对称密码认证方案安全性差的缺陷,本文提出了一种基于ECC的分簇传感器网络节点身份认证机制。该机制的核心思想是将基于非对称密钥的复杂运算放在簇头和网络管理者等计算能力强的节点上,而簇成员等计算能力差的普通传感器节点仅承担基于对称密码体制的简单操作,从而降低了普通传感器节点的计算量,具有针对性和实用性。同时,方案引入ECC密码系统用于进一步降低计算量和减少密码长度,具有安全性高、计算量小、扩展性好的优势。

[1]Perrig A,Stankovic J,Wagner D.Security in wireless sensor networks[J].Communications of the ACM,2004,47(6):53-57.

[2]Bankovic Z,Fraga D,JoséM,et al.Detecting and confining sybil attack in wireless sensor networks based on reputation systems coupled with self-organizing maps[J].IFIPAdvances in Information and Communication Technology,2010,339:311-318.

[3]Canh N T,Truc PT H,Hai T H,et al.Enhanced group-based key management scheme for wireless sensor networks using deployment knowledge[C]∥The 6th Annual IEEE Consumer Communications and Networking Conference,Las Vegas,Nevada,USA,2009:1-5.

[4]Watro R,Kong D,Cuti S,et al.TinyPK:Securing sensor networks with public technology[C]∥Proceedings of the 2nd ACM Workshop on Security of Ad Hoc Networks and Sensor Networks,Washington DC,2004:59-64.

[5]Perrig A,Szewczyk R,Tygar J D,et al.SPINS:Security protocols for sensor networks[J].Wireless Networks,2002,8(5):521-534.

[6]章国安,周 超.基于名誉机制的无线传感器网络安全路由协议[J].传感器与微系统,2010,29(10):75-79.

[7]Benenson Z,Gedicke N,Raivio O.Realizing robust user authentication in sensor networks[C]∥Proceedings of Int’l Conf on Real-World Wireless Sensor Networks,Stockholm,2005:135-142.

[8]Eschenauer L,Gligor V D.A key-management scheme for distributed sensor networks[C]∥Proceedings of the 9th ACM Conference on Computer and Communications Security,New York,USA,2002:41-47.

[9]Koblitz N.Elliptic curve cryptosystems[J].Mathematics of computation,1987,48(177):203-209.

[10]Gura N,Patel A,Wander A,et al.Comparing elliptic curve cryptography and RSA on 8-bit CPUs[C]∥Proceedings of Int’l Conf on Cryptography Hardware and Embedded Systems,Cambridge,2004:925-943.

猜你喜欢

非对称密码加密
密码里的爱
密码疲劳
一种基于熵的混沌加密小波变换水印算法
非对称Orlicz差体
密码藏在何处
点数不超过20的旗传递非对称2-设计
认证加密的研究进展
夺命密码
非对称负载下矩阵变换器改进型PI重复控制
基于ECC加密的电子商务系统