肖 希 金 亮
(1.海装重庆局 绵阳 621000)(2.海装电子部 北京 100021)
Ad Hoc网络(Mobile Ad Hoc Network,简称 MANET)是由一组无线用户(节点)组成的自治集合。它不需要固定基站支持,无中心管理,可临时组织,并且具有高度移动性,可广泛应用于军事战术通信、应急通信、临时通信、传感器网络,以及其他需要快速布署、动态组网的通信场合。然而,由于其本身固有的特性(如开放式介质、动态拓扑及分布式合作等),移动自组网也很容易受到各种攻击[1]。
密钥管理在移动自组网中是一种重要的安全管理手段,也是当前研究的一个热点和难点。由于在Ad Hoc网络中缺乏集中控制,使得传统网络中密钥管理十分困难。传统网络中往往有一个服务器作为密钥管理中心,基于PKI的方法需要一个全局可信任的权威证书(CA,certificate authority)给每个节点提供证书,同时证书可以通过CA的公钥进行证明[2]。而在Ad Hoc网络中因为节点都在运动,所以缺乏这样一个密钥管理中心,每个节点是平等的,有线网络中公钥PKI方法在Ad Hoc中并不适用,很低的资源可用率使得不能使用很复杂的认证和编码算法,而且移动节点往往依赖电池,因而限制了计算能力,传统的基于PKI的方法的认证和编码机制在无线网络中产生和认证数字签名的开销都很大;对称密钥方法由于其很小的计算复杂度在移动网络中应该更有效,但由于通讯方要有各自的私钥,存在一个问题就是如何在第一个位置产生共享的密钥。所以在Ad Hoc网络中需要使用分布式密钥管理方法[3]。
开发一个新的适合于Ad Hoc网络的有效的认证和加密算法是十分具有挑战性的。本文介绍了一种新的移动自组网络中分布式密钥管理和认证的方法,该方法基于身份验证,密钥由多个节点共同产生和验证,而不需要一个可信的第三方。
基于身份加密思想就是采用共知的信息(如IP地址,e-mail地址或身份)作为其公钥,这样就不用通过网络传播共知的信息。
采用基于身份的加密方法有四个步骤:设置,抽取,加密,解密。
·设置:产生主公/私钥对和普通的参数。
·抽取:给定任意字符串作为公钥,并产生相应的私钥。
·加密:取消息并用其公钥进行加密。
·解密:使用相应的私钥进行解密。
传统的基于身份的加密,所有的私钥是由一个可信任的密钥产生器 PKG(private key generator)而产生的[4~5]。PKG拥有一个主密钥,用于计算私密钥,也就是说,没有主钥,任何私钥不可能被计算。和其他基于中心的方法类似,基于身份加密系统的PKG中的主密钥也容易暴露,因而不能满足Ad Hoc网络分布式密钥管理的需要,可以使用门限方案来提高网络的容错能力。
首先假定:1)Ad Hoc网络中的每个节点只有唯一的身份号或IP地址;2)每个节点运动的节点可以发现它的一跳邻居,并可以得到网络中其他节点的身份。
假定一个Ad Hoc网络在初始阶段有n个节点。网络有一个公/私钥对,称为主钥〈PK,SK〉,用于产生网络节点中的所有密钥。主钥对由密钥产生部件产生,其中主钥PK让网络中的所有节点知道,主私钥SK则由网络中的n个节点分享。每个节点拥有主私钥SK的一部分,每个节点依据其本身的信息不能重建主私钥。任意k个节点可以重建主私钥,但任意少于k-1个节点的信息不能重建。当一个节点加入网络时,每个节点拥有一个唯一的身份或IP地址。网络中每个节点的公钥就是它的身份标志,对应其身份,每个节点可获得其私钥,在利用网络服务之前要注册身份。获得私钥的方式至少对k个邻居节点提出私钥产生(PKG)服务请求。
认证步骤包括以下几个方面:主公/私钥产生,分布式密钥产生,新的主私钥创建和认证过程。
1)主钥产生
设计的分布式密钥产生机制不同于基本的(k,n)门限方案,它不需要一个可信的第三方来计算主钥,并将其分成很多片并分配到各个节点中去。主私钥不是在一个单节点中构建,主钥对是由网络中最初节点合作产生的。
2)分布式私钥产生
使用基于身份的机密,移动节点的公钥是字符串。在我们的方法中,公钥计算公式为:QID=H(ID‖生存时间),其中H()代表身份加密中定义的哈希功能,ID代表节点的身份,生存时间是保护私钥丢失的一个印戳。当一个公钥过期后,节点需要获得一个新的公钥及其相应的私钥。
为了利用网络服务并使用其公钥QID来解密从其他节点而来的加密的消息包,节点同样需要获得它相应的私钥。获得私钥至少要联系k个邻居节点,表示身份并请求私钥产生PKG(request private key generation)服务,拥有主钥分享的节点可以是PKG服务节点。由于网络中所有节点分享了主私钥,因而网络中的任何一个节点都可以是PKG服务节点。
k个PKG服务节点中的任何一个产生一个新的私钥sk并将其发送到请求节点。为了保证产生的分享值能安全地传输,当发出传送请求时,请求节点同样提出它自己产生的临时公钥。每一个PKG服务节点使用请求节点的临时公钥pk-temp发送加密的分享值到请求的节点。新密钥sk分享的产生过程可以表示为:ski=SiQID,其中Si(i=1,…,k)是服务节点的主私钥的分享值,ID是请求节点的身份,QID是它的公钥,ski表示对请求节点产生的私钥分享。
总之,任意k个分享主密钥的节点能够对其他节点完成PKG服务,只要被攻击的个数少于k个,就不会知道节点的私钥。在分布式密钥产生阶段,网络中的每个节点获得其公/私密钥对,同时注册它的NID。它丢弃它的临时公/私密钥对,同时保持新的密钥对为以后的认证和通讯使用。由于PKG为一个特定的节点只组织一次,因而攻击者不能够复制在网络中存在的身份。一种可能就是需要PKG服务的节点不能得到k个可达到的邻居,但移动可以解决这个问题,请求节点为了获得k个节点的门限值,需不停地在网络中运动,以发现更多的节点。
3)节点新主钥的创建
4)基于身份的认证
认证用于保证每个移动节点都有独一无二的身份,没有一个攻击者能够获得非授权的信息从而伪造一个节点,我们的方法使用基于身份的认证提供点对点的认证。假如源节点S想向节点D发送一个认证消息,源节点S能使用它的私钥签署消息,使用目标节点的身份(公钥)来加密并发送到目标节点。只有节点D才能解密。而且,节点D能够保证消息是否真的从源节点S发送而来。源节点S只是使用它的私钥签署消息,使用目标节点的身份(公钥)来加密,同时发送到目标节点。当目标节点接受到这个加密的消息,它首先用它的私钥解密,然后使用源节点的公钥。如果验证过程成功,目标节点接收包,作为一个有效的消息。以上的认证方法是一个加密和签名的方法,数字签名用于消息的认证,加密是用于消息的机密性。同时,通过稍微修改基于身份的密码系统,通讯节点可以不需要额外的密钥交换在双方产生一个共享的密钥:在源节点这边,共享的密钥是通过使用源节点的私钥和目的节点的公钥产生,同时目的节点通过使用它们的私钥和源节点的公钥计算出这个私钥。产生的共享密钥可以作为对称密钥来加密和认证,而且使用对称密钥可以节省大量的带宽,而且该方法不像很多协议需要握手机制,这样可以大大减少通讯开销。
可用性保证在有攻击时网络的生存能力。在我们的方法中,(k,n)门限的算法中n个节点中任意k个节点共同工作用于密钥产生和密钥管理。我们的安全措施是容忍k-1个节点,即攻击方已经让k-1个节点中断了密钥的产生和管理。
机密性保证特定的信息不会暴露给未授权的实体。完整性保证消息不会因为传输失败而中断。在本文的方法中,机密性和完整性通过基于身份的加密机制完成。基于身份的加密是在两个节点一次通讯完成。在这个过程中,他们计算和交换一个对称性密钥,这个对称密钥还可用于之后的通讯。
认证性保证每个通讯节点的身份,以致没有攻击者能伪造一个节点,未获得授权而访问资源。在我们的方法中,获得一个安全的认证是基于身份的加密。非认可机制保证最初的消息不能否认发送了消息。非认可机制还可用于检测和隔离已被攻击的节点。当节点A从节点B接受到一个错误的消息,非认可机制允许节点A使用消息通知其他节点,节点B已经受到攻击。
比较传统的PKI的方法,本文的方法只有很低的通讯开销。公/私钥对产生于PKG服务节点,而公钥来源于节点的身份,是一个公共的信息。因此没有必要进行证书产生、传播和存储的过程。同时常规的PKI密钥管理的方法假定每个节点的公/私钥对是自主产生的,公钥在网络中传播,为了确定每个节点的身份,公钥必须由一个可信任的认证中心产生(CA)。证书同样需要在网络中传播,以致于每个节点能够得到其他节点的证书,传播这些公钥和证书要消耗大量的带宽,同时导致了大量的网络延迟。在本文的方法中,公钥是基于每个节点的身份,而且长度很短,使用较短的公/私钥对并且不用传播很长的证书大大降低了计算的消耗和通讯开销,此外在传统的PKI方法中,缓冲存储这些公钥和证书要增加相当可观的本地开销。
在我们的方法中,通讯开销主钥产生在密钥产生阶段,在网络初始阶段,n个节点需要共同产生主钥对,这增加了网络设置时间。此外,每个节点需要广播一个密钥产生要求到它的邻居上,而且每个PKG服务节点需答复它的分密钥给要求的节点,所以在网络初始阶段的PKG服务同样会带来很多通讯开销,但它是安全和通讯开销的一个权衡,我们使用门限来提高网络的容错能力,同时给网络带来更多的通讯开销。
我们的方法中主钥计算量来自密钥产生和密钥操作,例如:加密、解密、签名和认证。主钥产生使用门限密钥分享,计算复杂度依赖于门限的数量。基于身份的签名产生和认证的复杂度和传统方法一样,基于身份的加密由于密钥长度较短,消耗的计算量较小。
本文介绍了一种在移动自组网中基于身份认证的密钥管理方法。比较基于PKI的认证方法,该方法使用一个自组织的方法提供密钥的产生和分配,而不用一个可信的第三方。而且,建议的认证机制提供了点对点的安全机制,并且使用了较少的通讯开销和资源消耗。
[1]RAMANATHAN R,REDI Jason.A brief overview of mobile Ad Hoc networks:Challenges and Directions[J].IEEE Communications Magazine 50th anniversary commemoratives issue,2002-05:20-26.
[2]L Buttyan,J P Hubaux.Report on a working session on security in wireless Ad Hoc networks[J].Mobile Computing and Communications Review,2003,7(1):74-94.
[3]Lidong Zhou,Zygmunt J Haas.Securing ad hoc networks[J].IEEE Networks Special Issue on Network Security,2003,13(6):24-30.
[4]Seung Yi,Robin Kravets.MOCA:Mobile certificate authority for wireless Ad Hoc Networks[C]//Proc of 2nd Annual PKI Research Workshop Program(PKI 03).Gaithersburg,Maryland,2003,4:65-79.
[5]P.Papadimitratos,Z.Haas.Secure Routing for Mobile Ad Hoc Networks[C]//Proceedings of the SCS Communication Networks and Distributed Systems Modeling and Simulation Conference,2002,1:98-101.
[6]K.Paul,S.Bandyopadhyay,D.Saha,et al.Communication-Aware Mobile Hosts in Ad-hoc Wireless Network[C]//Proc.of the IEEE International Conference on Personal Wireless Communication,Jaipur,India,2003,2:125-138.
[7]D.Bonh,M.Franklin.Identity-Based Encryption from Weil Pairing.Advances in Cryptology,CRYPTO 2001,Lecture Notes in Computer Science,Springer Verlag,2001,2139:213-229.
[8]J.Kong,P.Zerfos,H.Luo,et al.Providing Robust and U-biquitous Security Support for Mobile Ad-Hoc Networks[C]//Proceedings of the IEEE 9thInternational Conference on Network Protocols(ICNP'01),2001.
[9]A.Shamir.How to Share a Secret[J].Communications of the ACM,2004,22(11):612-613.
[10]孙昕,王鑫.一种改进的无线传感器网络动态密钥管理方案[J].计算机与数字工程,2011,39(10).
[11]张浩,王培东,王岩.邻位异或算法在WEP协议密钥更换中的应用[J].计算机与数字工程,2010,38(3).
[12]T.P.Pederson.Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing.Lecture Notes in Computer Science,1992:129-140.