文章编号:1009-8119(2005)07-0046-03一种新的adhoc网络会话密钥建立方案姚静(北京理工大学电子工程系,北京100081)摘要针对adhoc网络密钥管理中存在的实际问题,提出一种适合于adhoc网络安全的会话密钥建立方案。当网络初始化完成后,adhoc网络内的各节点不需要可信第三方的参与,可安全的完成相互认证并同时产生共享会话密钥。关键词adhoc网络,安全,认证,会话密钥建立AnovelsessionkeyestablishmentschemeforadhocnetworksYaoJing(Dept.ofElectronicEngineering,BeijingInstituteofTechnology,Beijing100081)AbstractTotheactualsecurityquestionintheadhocnetwork’skeymanagement,asecureauthenticatedkeyestablishmentschemeisproposedinthispaper.Afterthesecurenetworksystemissetup,communicatingpartiesachievemutualauthenticationandsessionkeyestablishmentwithoutthetrustedthirdparty.KeywordsAdhocnetwork,security,authentication,sessionkeyestablishment1引言Adhoc网络是一种新型的无线自组织网络,它能够在事先没有建立网络基础设施的环境下,由无线终端(如笔记本电脑、移动电话或PDA等)临时组成。由于其支持节点间的多跳通信,并且采用无中心的分布式控制方式,因此在adhoc网络上如何成功建立会话密钥成为一个亟待解决的问题。目前提出的一些关于adhoc网络密钥管理方案中,最具代表的是文献[1]和文献[2]提出的基于阈值CA的密钥管理策略,这个安全策略将对一个可信实体(CA)的信任分散到对若干个节点的共同信任,并采用门限密码方案[3]通过秘密共享解决了信任分散的问题。文献[1]和文献[2]所提方案的区别就在于所采用的公钥密码体制不同。这两个方案都需要信任组中的节点存储其他网络节点的公钥证书,并且存在有余力的节点提供这项服务,对于各种资源极其有限的adhoc网络节点来说,在有些情况下甚至是不可能做到的。文献[4]则提出完全分布式认证方案,虽然能够提供良好的强壮性和可用性,但要求每个节点都要存在k个邻节点,并能够检测一跳节点的行为,在实际过程中这种条件过于苛刻,不容易满足。并且以上几种方案都要求整个网络同步。2Adhoc所面临的安全问题由于adhoc网络自身的特点使得它面临如下安全性问题:(1)必须实现双向的身份认证。由于移动adhoc网络是没有中心机构的特殊网络,与传统的移动通信系统相比有很大不同,网络中每个节点地位相等,因此需要认证彼此双方的身份。节点之间必须验证彼此身份的有效性之后才能协商会话密钥,这是安全通信最基本的安全需求。(2)通信双方共同控制会话密钥的协商。节点之间通过协商确定会话密钥,不能单独由一方确定,防止由于通信一方指定会话密钥产生的安全隐患。(3)会话密钥采用一次一密的原则。由于adhoc网络节点本身的物理安全性无法保证,使用同样会话密钥进行多次通信,将会造成安全隐患。节点每次协商密钥时使用的随机数不同,以保证每次得到的会话密钥不同,防止由于旧的会话密钥泄露引发的重放攻击。(4)由于adhoc网络节点的移动性,移动节点经常不在目的节点的通信范围内,因此需要通过多个中间节点的转发,恶意的中间节点可以很轻易地篡改信息,故必须警防中间人攻击。3一种新的adhoc网络会话密钥建立方案通过对adhoc网络特点及安全性分析,本文基于Shieh[5]提出的基于ID的身份认证和密钥分配协议,又鉴于Yen[6]所指出该协议存在的漏洞,提出一个安全的、适合adhoc网络的、基于身份ID会话密钥建立方案。用户可以选择他们的名字和网络地址,或者是名字、社会保障号、地址、办公室号以及电话号码的一个组合作为他们的ID,这样就可使用户具有一个独一无二的身份标识。3.1网络初始化网络初始化由离线状态下密钥生成中心来完成,它唯一的任务就是在新节点申请加入时,发给它们各自所需的智能卡。这个智能卡中包含一个微处理器、I/O端口、RAM、存有私钥的ROM以及运行协议所需要的一些程序。具体过程如下:1)密钥生成中心选择两个大素数p和q,使得qpn2)通过下式产生仅有KDC(keydistributingcenter密钥生成中心)所知的秘密信息d1))1()1(mod(3qpd(1)3)找到一个整数g使它既是GF(p)也是GF(q)的本原根4)用IDi来表示用户i的身份标识,用单向函数计算用户i的iEID(扩展身份标示),其中N代表的是iEID的比特长度()iiEIDfID(mod2)N(2)5)计算完iEID后,计算用户的密钥信息iS(mod)diiSEIDn(3)很容易得到:3(mod)iiEIDSn(4)6)将(n、g、f(·)、Si)存入发给用户智能卡中,iS为用户的私钥,(n、g、f(·))为公开信息。当有新用户加入网络时,密钥生产中心只需重复4-6这几个步骤为新用户生成相应的信息。3.2认证过程第一步:Alice产生的随机数ar、aN(为防止重放攻击而产生的一次随机数)、iID(公钥),计算如下整数:3(mod)araXgn(5)'()aaXfX(6)将'(,,)aaaXIDN发送给Bob。第二步:Bob产生随机数br、bN,计算'1baNN,得到如下整数:3(mod)brbXgn(7)2'(mod)brbbbYSNgn(8)'()bbXfX(9)'()bbYfY(10)将''(,,,)bbbbXYIDN发送给Alice,其中bID为身份标示符。第三步:Alice在收到Bob的信息,计算'1abNN,'aY的值:2'(mod)araaaYSNgn(11)'()aaYfY(12)将'(,)aaYID发送给Bob。第四步:Bob收到Alice发送的信息,将(,,)bbbXYID发送给Alice。第五步:Alice收到信息后,计算()bbfIDEID验证是否有下列等式成立:'()bbXfX(13)'()bbYfY(14)32(1)babbEIDNYX(15)如果等式均成立,Alice将确认Bob的身份,并将(,,)aaaXYID发送给Bob。第六步:Bob收到信息后,计算()aafIDEID,验证以下三个等式是否成立:'()aaXfX(16)'()aaYfY(17)32(1)abaaEIDNYX(18)如果等式均成立,则Bob可以确认Alice的身份。经过以上步骤,完成了彼此的身份认证。3.3会话密钥建立1、在Alice和Bob相互验证了对方的身份后,Alice计算会话密钥如下:3aabrrrabbKXg(19)2、Bob计算与Alice通话的会话密钥为:3babrrrbaaKXg(20)3、Alice和Bob就使用abbaKK作为他们这次通信的会话密钥加密通信消息。在该协议中,用户使用自己的ID作为公钥,不需要用户自己产生公钥在网络上传输。这样不但极大减少了用户加入网络时所需的计算量、带宽,而且也不需要存储其他用户的公钥,节省了存储空间。对于安全性要求较严格的军事用途中,该ID值也可以是由某种特殊硬件产生的标识。4安全性分析针对上文提到的adhoc网络所面临的安全问题,本文采用攻击检验法,对协议进行如下安全性分析:1、实现了节点之间的双向认证,具有较强的抗假冒攻击能力。(1)一个攻击者为了伪装成Alice,他必须找到两个整数x和y满足下面的等式:32aaaaEIDNYX,虽然只是使用了小的指数运算,但是并没有降低破解),(yx的难度,非常适合计算能力相对较弱的移动设备。攻击者虽然很容易得到),(32yx,但必须求解模n的平方根和立方根,在不知道大数n的素因子分解情况下,在有限时间内是很难成功的。(2)即使合法用户知道其自身的私钥信息和EID,要求解密钥生产中心的秘密信息d在计算上是不可行的,因为求解d是离散对数问题。无法知道密钥生成中心的秘密信息d也就无法伪装成其他用户。(3)根据(7)式,其他用户虽然可以通过单向函数计算得到EID和公开指数信息3,但要计算Alice的私钥Sa由于计算离散对数的困难性无法实现。2、实现了抗重放攻击。在已有的许多安全协议中,人们常采用同步认证方式,即需要各认证实体之间严格保持一个同步时钟。文献[3]中就使用时间戳来防止重放攻击,在某些网络环境下,保持这样的同步时钟并不困难,但在adhoc网络环境就相对难以实现。为了不给网络及其节点造成更大的压力,在本协议中采用一次随机数来替代时间戳。协议中每次认证所需的随机数都是由参与认证的对方随机产生,即使攻击者截获了原来的信息,由于每次所使用的随机数不同也无法实施重放攻击。3、有效地抵抗中间人攻击。Alice和Bob在发送认证信息的时候均是先发送信息的单向函数值,这样避免了文献[5]中将时间戳替换而伪造认证信息的威胁。由于通过单向函数值求解原始数值在有限时间内是不可行的,所以如果Trent(攻击者)将前三步中截获到的认证信息篡改,则无法在第五和第六步中发送其正确的原始值。用户发现等式不成立,则会觉察到攻击者的存在,放弃此次认证。4、防止由通信一方产生会话密钥而造成的安全隐患。由协议可知,会话密钥的生成实际上是利用了Diffie-Hellman密钥交换算法,这个算法可以使得两个用户安全地交换一个密钥以便用于报文加密。Diffie-Hellman密钥交换算法的安全性依赖于下列事实:虽然计算模一个素数的指数相对容易,计算离散对数却很困难。对于大的素数,后一种计算是不可行的。并且每次参与密钥分配的随机数r都是随机产生的,实现了一次一密的原则。5、节点双方对会话密钥的确认是在协议的最后两步。通信一方使用自己计算的会话密钥加密特定信息,由对方用其计算的会话密钥进行解密,从而验证两者是否拥有相同的会话密钥。5结论本文提出了一种新的移动adhoc网络会话密钥建立方案,使用户能够先通过身份认证,再安全地完成会话密钥的建立。本文提出的协议采用用户标识符作为自身的公钥,运用低的指数运算,以及无需第三方介入的身份认证过程,并且也不存在文献[6]所提的安全漏洞。这些特点都非常适合于adhoc资源有限、动态拓扑、路由多跳、低带宽的特点,计算量较小,高效实用。参考文献1ZhouL,ZygmuntJH.SecuringAdHocnetworks[J].IEEENetwork,1999;13(6):24~302KhaliliA,KatzJ,ArbaughWA.TowardSecureKeyDistributioninTrulyAd-HocNetwork[A].Proceedingsof2003SymposiumonApplicationsandtheInternetWorkshops[C].2003:342~346.3ShamirA.Howtoshareasecret[J].CommunACM,1979;22:612~613.4HaiyunLuo,ZerfosP,JiejunKongetal.Self-securingadhocwirelessnetworks[A].ProceedingsofSeventhIEEESymposiumonComputersandCommunications(ISCC).2002:567~574.5ShiehSP,YangWH,SunHM.Anauthenticationprotocolwithouttrustedthirdparty.IEEECommunicationLetters,May1997;