Ad Hoc网络中身份认证与地址分配研究.docx
《Ad Hoc网络中身份认证与地址分配研究.docx》由会员分享,可在线阅读,更多相关《Ad Hoc网络中身份认证与地址分配研究.docx(15页珍藏版)》请在冰豆网上搜索。
AdHoc网络中身份认证与地址分配研究
AdHoc网络中身份认证与地址分配研究
姓名:
090609013李经纬
年级专业:
09级计算机网络技术
班级:
09计算机网络
指导老师:
任国恒
院系:
信息工程学院
提交日期:
2012年3月9日
目录
摘要3
一.adhoc网络简介4
adhoc网络中的安全隐患4
2身份认证和地址分配方案5
2.1相关假设5
2.2身份认证阶段5
3安全性及效率分析9
3.1安全性分析9
3.2效率分析10
4安全性分析11
5结论11
6结束语12
摘要
现有adhoc网络协议都是假设节点进入网络时已经分配了IP地址,而且在节点进入网络时假设节点之间无条件信任,这种缺乏对安全性的考虑是无法在实际战场环境下使用的。
该文提出一种新的安全的解决方案,它由建立路由前的节点间的相互身份认证和安全地址分配(公钥散列产生节点地址)两个部分组成。
方案可以有效地防止各种相关的攻击,最后还进行了方案的效率分析。
关键词:
Adhoc;身份认证;地址分配;网络安全
一.adhoc网络简介
adhoc网络是一种由移动节点组成的临时性自治系统。
作为一种无线移动网络,adhoc网络和传统的移动网络有着许多不同,其中一个主要的区别就是adhoc网络不依赖于任何固定的网络设施,每个终端既可以充当路由器也可以是一个节点。
目前adhoc网络主要应用于军方和相对安全敏感的环境中,以及一些需要紧急组网的情况。
同时adhoc网络也正逐步应用于商业环境中,比如传感器网络、虚拟教室和家庭网络等。
adhoc网络的移动、多跳、自组织等特性与传统
网络有很大的不同,其中安全、路由、地址自动配置等技术都是adhoc网络走向实用化的关键技术,特别是安全的地址自动配置技术近来越来越受到重视。
近期的一些关于安全路由协议的研究,如ARIADNE[1]、SEAD[2]、ARAN[3],这些路由协议全部都是在网络层,没有一个协议保证了在建立路由前,如节点进入网络前的安全性。
同时,一部分学者提出了IP地址自动分配的方案,无状态
(Stateless)地址自动分配包括MANETconf[4]、Prophet[5]和状态(Stateful)地址自动分配如WeakDAD[6],但在地址分配时节点之间都是无条件信任的,这样恶意节点可以轻松地通过地址欺骗和地址冲突攻击威胁到整个网络安全。
作为adhoc网络实用化的第1步,本文提出了一种新的身份认证和地址分配方案。
adhoc网络中的安全隐患
现有的攻击手段针对身份认证和地址分配的攻击如下所示,其他的攻击,如安全路由攻击、剥夺睡眠攻击,不在本文的讨论范围之内。
(1)地址欺骗攻击:
如果没有身份认证,入侵节点可以伪装成任意节点的地址,使得此节点的通信陷入瘫痪或者把此节点的通信数据全部截获。
(2)地址冲突攻击:
入侵节点故意传播一个假的地址冲突消息,用来占用某一个节点地址或欺骗其他节点,导致接收者无法确认此消息的有效性,只有放弃本身的地址,然后重新寻找一个新的地址。
(3)地址耗尽攻击(重放攻击):
攻击者窃听到地址请求消息,使用这个消息重复地申请尽可能多的地址,如果所有的地址都分配完了,其他新节点就没有办法申请新地址。
(4)否定认证攻击:
以前的一些协议当新节点加入网络的时候,需要所有的相邻节点都同意,如果相邻节点中有一个是恶意节点,总是不同意新节点加入网络,那么就使得新节点始终加入不到网络里。
以下论证可以看出新的身份认证和地址分配方案可以有效地防止各种adhoc网络相关的安全隐患。
2身份认证和地址分配方案
2.1相关假设
事先存在一个CA给每个节点颁发离线数字证书,每个节点都有一对公钥和私钥,私钥不可能被别的节点获取,证书颁发的过程是安全的。
所有的地址空间都可以用来分配地址,如IPv4,就可以用32位来分配地址空间,IPv6则有128
位可以分配。
2.2身份认证阶段
一个移动节点需要通过认证来确保和它通信的另一端就是真正的通信对端,也就是说要确认通信对端的身份。
如果没有认证,那么网络攻击者就可以假冒网络中的某个节点和其他的节点进行通信,进而获得那些未被授权的资源和敏感信息,并以此威胁整个网络的安全。
以下就是身份认证的几个阶段。
(1)新节点想要加入adhoc网络
开始必须产生一个Authentication_Request请求认证消息,消息里包括了请求者的身份、离线数字证书(可以让相邻节点者取得公钥,然后进行认证)、私钥签名的身份和请求消息(ReqAuth)。
用私钥签名为了证明这个消息确实来自请求节
点。
同时,启动请求定时器,如果定时器超时,就重新发布请求消息,然后对相邻的节点进行广播,如图下所示。
1.*:
{,(){,}}AAACertAAReqAuthK−→ABi或*1
2.:
{,,{(),{,}}}iiiBiBiABABACertBBNKK−
→
3.:
{,,{,}}iiBiABiA→BABANNK1
4.:
{,,{,{,}}}iiAiBiABABANBAuthKK−
→
1*
5.*:
{,{,{,}}}iBiA→AABAuthK−K
6.:
{,,{{,e}1}}iiiBiAB→ABABAllowAddressRqK−K
A:
请求身份认证节点Bi:
任意一个相邻节点Cert(*):
*的离线数字证书*:
所有相邻节点NA,NB:
节点产生的随机数KA,KB,K*:
节点公钥
11:
节点私钥ABiK-K−1。
(2)相邻的节点收到请求消息当相邻的节点收到请求时,都必须回复该请求消息。
每个相邻节点随机产生一个16位的随机数,启动验证定时器,如果相邻节点的验证定时器超时,可以丢弃这次请求,然后用自己的私钥签名随机数和自己的身份(可以用自己相应的公钥解密,保证了签发者的不可否认性),接着附加上自己的离线数字证书。
再用请求者的公钥(从请求者的离线数字证书里取得)加密自己的私钥签名和证书,用请求者的公钥加密可以确保只有请求者才能够解密。
最后,加入自己的身份和请求者的身份,这里由于没有给请求者分配地址,用MAC地。
址作为请求者的临时身份。
请求者监听网络上包含自己身份的消息,并接收消息。
(3)请求者接收到多个返回消息当请求者接收到了多个返回消息后,看请求定时器是否超时(保证消息的可用性),用私钥对每个消息进行解密,获得相邻节点的证书(获得相邻节点的公钥),然后用公钥解密出相应的身份和随机数。
假设A为请求节点,Bi为其中一个相邻节点,先用A的私钥解密消息(解密成功说明Bi已经获得A的证书,并用A的公钥加密消息),得到Bi的证书和用Bi的私钥加密的身份和随机数,然后用Bi证书里公钥解密被自己的私钥加密过的消息,如果用Bi的公钥解密出的身份Bi与证书Cert(Bi)一致,就说明确实是Bi发出的返回消息。
到这里,身份认证的第1个阶段完成。
第2阶段证明请求者确实是收到了相邻节点发出的返回消息。
请求节点生成一个16位随机数,然后用相邻节点的公钥加密自己的身份、相邻节点生成的随机数和自己生成的16位随机数。
并与相应节点身份封装成消息,请求节点把这个
消息发给相邻节点。
(4)相邻节点再次收到消息相邻节点收到消息后,看验证定时器是否超时,用私钥解密,如果发现消息里面相邻节点的随机数与自己发出的随机数不相等,就把消息丢弃。
此外,产生一个Auth(Authorization),说明请求者获得此节点的认证。
然后用相邻节点的私钥加密自己的身份和Auth,再用请求节点的公钥加密请求者产生的随机数和用自己私钥加密的内容,附带身份一起发给A。
(5)请求者给相邻节点发送相互认证信息为了验证每个请求者是否被几个相邻节点所认证,必须给每个节点都发送相邻节点传过来的用相应节点私钥加密的身份和Auth,例如请求者A给每个相邻节点发送B已经认证过的消息Auth,直接把上个步骤的用B的私钥加密的内容{,}1}iBiAuthKB−用目的节点的公钥K*加密,这样,目的节点可以用自己的私钥解密消息,然后再用B证书里的公钥解密,得到Auth,当给每个相邻节点都发送了这个消息后,每个相邻节点就知道A已经通过B的认证,同样方法,相邻节点就可以验证请求者是否达到足够数量的Auth,也就是是否能达到某个阈值,如图1式5所示。
(6)请求者获得认证
当每个相邻节点发现Auth达到某个阈值的时候,它就会发送一个AllowAddressReq消息给请求者,请求者通过身份认证。
此方案安全级别由请求节点有多少个相邻节点所决定。
2.3地址分配阶段
当节点通过了身份认证,得到AllowAddressReq消息后,紧接着就进入到了地址分配阶段。
(1)新节点请求地址分配
请求者对公钥使用32位(IPv4)或128位(IPv6)Hash函数,得出的数值作为节点的临时IP地址,就是用公钥绑定IP地址,由于公钥的生成重复的几率比较小,因此用公钥散列出来的IP地址冲突的几率也会很小,这样就保证了节点地址分配的有效性。
然后启动定时器(timeout),节点广播Address_Request消息。
消息由请求者IP地址、离线数字证书和私钥加密的序列号和公钥组成,如下所示:
A:
请求地址分配的节点
Bi:
任意一个相邻节点
IP:
请求地址
K*:
*节点公钥
t*:
*节点的时间戳
1{*}
KAE−:
用A的私钥加密*
Address_Request:
1*:
{,(),{0,}}
AAKAIPCertAK−→
(2)相邻节点收到地址分配请求
如果相邻节点收到地址分配请求,发现请求的地址与本
—137—
身的地址一样,先要用请求节点的数字证书里公钥解密,并
验证数字签名,检测用公钥解密的请求者公钥是否与数字证
书里公钥相等(防止在身份认证后,地址分配前被恶意节点地
址欺骗攻击),然后用请求节点的公钥算Hash值,如果发现
Hash值与Address_Request里的一样,再看请求者的公钥是
否等于相邻节点的公钥,如果都相等,则相邻节点就发出地
址冲突Address_Conflict消息,序列号加1,其他的则丢弃该
消息。
Address_Conflict消息由冲突IP地址、Bi的离线数字
证书、时间戳、冲突相邻节点私钥加密的序列号、公钥组成。
1Address_Conflict:
:
{,(),,{1,,}}ii
iBi
BB
iiBKBAIPCertBtEKt−→
(3)新节点获得地址
如果定时器(timeout)走完之前还没有收到
Address_Conflict消息,则新节点使用发出的临时地址作为自
己的永久地址。
如果请求节点收到Address_Conflict消息,首
先用B的公钥解密,对比KB和B的离线数字证书里公钥及
时间戳是否相等,确定是否是B发来的消息,再检测序列号
是否大于前一次发出的地址请求消息的序列号(防止地址耗
尽攻击),然后检验消息里的冲突节点公钥的Hash值(IP值),
看是否等于自身的Hash值,经过以上安全性检查,最后还要
判断fail_cnt(重试次数,每检测一次自减1)是否为0,如果为
0则标志着所有的请求地址都被别的节点占用了,如果以上
几个都成立,则新节点相信自身的IP临时地址重复,使IP
地址自加,重复以上地址申请过程。
地址分配的流程如图2
所示。
收到AllowAddressReq消息,开始地址分配
(1)分配IP=H(KA)
(2)产生临时地址请求消息Address_request
(3)启动定时器
Timeout
(4)发送
Address_Request消息
(5)等待定时器耗尽
(6)收到
address_confilict
消息
(7)安全性检查
(8)节点地址分配(9)结束
安全性检查
重试次数
Fail_cnt--
Fail_cnt==0?
(1')分配IP++
(2')产生临时地址请求
Address_Request
开始
NO
YES
NO
YES
NO
YES
NO
YES
当两个网络发生合并的时候,也会出现地址冲突的现象,可以按照WeakDAD(DuplicateAddressDetection)方法发现地址冲突,当地址重复的两个节点收到Address_Conflict消息后,为了防止两个节点同时改变自己的地址,每个节点会用自己发出的地址冲突消息里的时间戳与接收到的地址冲突消息里的时间戳相对比,如果发现收到的时间戳小于自己的时间戳,说明对方先发现自己,那么就要重新选择地址。
3安全性及效率分析
3.1安全性分析
本方案能有效防止adhoc网络里的各种相关安全隐患,分别从以下几个方面进行分析。
(1)地址欺骗攻击和地址冲突攻击
在身份验证阶段,由于恶意节点无法得到节点的私钥和合法的数字证书,每个收到请求身份认证的节点都会用证书里的公钥来检查数字签名,用来验证发送者的真实身份。
恶意节点就没有机会伪装其他节点的地址或发出假的地址冲突消息。
在地址分配阶段,也会用节点数字证书来验证数字签名,这样可以在节点通过了身份认证后,地址分配前的时间段内有效地防止被恶意节点使用地址欺骗攻击和地址冲突攻击。
(2)防止地址耗尽攻击
地址分配过程中,因为消息是加密的,恶意节点无法看到消息里面封装序列号和时间戳,无法猜测出下一个包的序列号是多少,也可以通过判断定时器是否超时,有效地防止了地址耗尽攻击。
(3)防止否认认证攻击
由于每个相邻节点都会收到请求节点发过来的所有节点的认证信息,达到一定阈值的时候,相邻节点认为请求者通过身份认证,这时只有少数的恶意节点是不能阻止申请者通过身份认证的,网络最大可容纳的恶意节点数目由预定的阈值所决定。
3.2效率分析
(1)身份认证资源问题
建立一次身份认证和地址分配的开销比较大。
密钥的注册和证书颁发,每个相邻节点对消息进行认证和RSA计算的过程,以及计算散列函数,都需要大量的开销。
要做到adhoc网络的安全,这种开销几乎是不可避免的。
(2)地址冲突的可能性
在地址分配阶段,采用了对请求者的公钥进行哈希散列生成IP地址的方法,在IPv4的空间里,当节点个数达到500个的时候,经生日判定(birthdayparadox)计算,冲突的几率只有1.0E-05,而在IPv6的空间里,几率则会更小,这样小的冲突几率完全可以满足实际的需要。
实体间的双向认证。
具体认证过程描述如下:
用户A作为消息源端的情况:
(1)A<−>UA:
AtempSHARE(K)
(2)UA<−>CA:
TAGET(PARAM)
(3)UA<−>UB:
AUTH(MESSAGE)
(4)UB<−>B:
BtempSHARE(K)
其中,步骤
(1)、步骤(4)用于在用户和相应的代理之间产生信任关系,使得用户代理可以在一定时间和一定范围内代表用户进行认证和交流。
这两步采用的具体协议如3.2节所示。
步骤
(2)是认证完成的核心步骤,主要采用2.1节所描述
的协议,使得代理UA能够理解DomainB的系统参数,在UA和UB之间统一认证方式,采用基于身份认证的认证方式进行认证。
步骤(3)是认证实施的实际过程,在主动网环境中,需要从端到端和逐跳两个层面来考虑。
UA利用自己的私钥对信息不可变部分进行签名,利用UB的公钥进行加密,并根据ANEP协议构建主动包的相应域,便可以实现双方的端到端认证。
逐跳认证则主要利用ID-PKI的签密机制进行UA、UB的相互认证,具体实施细节可参见文献[5]中关于不同信任域间的双向实体认证的协议设计部分。
下面接着讨论用户B作为消息源端的情况:
(1)B<−>UB:
BtempSHARE(K)
(2)UB<−>TA:
UAGET(CERT)
(3)UB<−>UA:
AUTH(MESSAGE)
(4)UA<−>A:
AtempSHARE(K)
步骤
(1)、步骤(4)用于在用户和相应的代理之间产生信任关系,过程与用户A作为消息源端的情况类似。
步骤
(2)是认证的必要前提,主要采用2.2节所描述的协议,使代理UB能够构造至代理UA的证书链,从而得到UA的证书并获取UA的公钥。
步骤(3)将不同类型信任域间的双向认证简化成基于证书的跨域认证,这部分技术已经相当成熟。
主要采用Cert-PKI机制中关于签名和加密的技术,利用证书和Hash算法等来保证信息的机密性、完整性和可用性等,完成端到端认证和逐
跳认证。
4安全性分析
该认证模型的安全性主要基于2点:
(1)模型所依赖的Cert-PKI和ID-PKI的安全性,
(2)本文所设计的各种协议的安全性。
本文中所使用的Cert-PKI系统的安全性在实际的应用中已得到证明和认可,ID-PKI的安全性决定于底层ID-PKC算法安全和运营安全,这些不在本文的讨论范围内,本文假定其总是安全的。
至此只考虑本文认证协议的安全性。
本文认证协议的目标是实现密钥协商和双向实体认证,如下分析
该协议的安全性:
(1)考虑密钥协商部分。
利用IKE协议来实现用户和用户代理之间的认证。
IKE利用ISAKMP语言来定义密钥交换,是对安全服务进行协商的手段。
IKE交换的最终结果是一个通过验证的密钥以及建立在双方同意基础上的安全服务,即所谓的“IPSec安全联盟(IPSecSA)”。
(2)考虑参数交换部分。
该部分分为2种情况:
1)基于证书认证的用户或用户代理索取TA的系统参数,该部分的安全性要依赖证书认证协议的安全性和交叉证书的正确颁发。
2)基于身份认证的用户或用户代理索取UA的公钥,用户或用户代理通过构建证书链,可以安全地依次获取证书链上每个实体的证书和公钥。
(3)讨论认证过程的协议。
端到端认证主要依靠源端的全局唯一性标识和数字签名来验证源端以及防止数据被篡改,保障主动包的安全。
逐跳认证需要从两个方向来讨论,当A作为消息源端时,采用基于身份认证的协议,它的安全性在文献中作了充分的说明;当B作为消息源端时,协议的安全主要依靠信息安全中的加密和签名技术,以及主动包中关于保障逐跳安全的选项的设计。
5结论
本文提出了一种具有身份认证与地址分配,并能有效防止各类相关攻击的adhoc网络接入方案,为adhoc网络实用化打下坚实基础。
在本方案中,首先提出一个安全的身份认证场景,新加入节点发出认证请求,经过它与相邻节点的相互认证,最终使新节点通过身份认证。
其次就是提出一个安全的地址分配场景,即当新节点通过身份认证后,用散列函数把自己的私钥生成请求地址,经过地址冲突和安全检测后,最终加入网络。
本方案有效地防止了恶意节点对消息的截取、修改、伪造。
6结束语
本文分析了主动网认证的特点和研究现状,在已有的Cert-PKI和ID-PKI的基础上,设计了一个在不同类型的多信任域间实现跨域认证的模型,并为该模型的安全实施设计了一套认证协议。
该模型能够在不同类型的信任域间提供安全
的双向认证,比以往的在单一信任域中和同种类型的多信任域间工作的认证框架更符合主动网的实际应用需要。
参考文献
1王晓宁,顾国飞,朱斌,等.主动网络授权和认证研究[J].计算
机工程与应用,2003,36(12):
166-169.
2唐寅.基于授权的主动网络安全防护技术研究[D].成都:
电子
科技大学,2003-06.
3FosterI,KesselmanC,TsudikG.ASecurityArchitecturefor
ComputationalGrid[C]//Proceedingsofthe5thACMConferenceon
ComputerandCommunicationsSecurity.NewYork:
ACMPress,
1998:
83-92.
4PriceG,MitchellCJ.InteroperationBetweenaConventionalPKIand
anID-basedInfrastructure[C]//Proceedingsofthe2ndEuropeanPKI
Workshop:
ResearchandApplications.Berlin:
Springer-Verlag,2005:
73-85.
5路晓明,冯登国.一种基于身份的多信任域网格认证模型[J].电
子学报,2006,34(4):
577-581.