攻击安全协议

关键词:

攻击安全协议(精选七篇)

攻击安全协议 篇1

在Ad Hoc网络中,随着节点移动,网络拓扑结构在不断变化。如何迅速准确地选择到达目的节点的路由,是Ad Hoc网络的一个重要和核心的问题。AODV(Ad Hoc网络基于距离矢量的按需路由协议)路由协议是广泛使用的一种Ad Hoc网络路由协议,这种协议在设计上没有考虑安全措施,因此容易遭受各类攻击。主要包括对路由消息关键字段的篡改攻击、路由消息伪造攻击等,使路由发现过程失败,或产生一条包括恶意节点的坏路由。

研究人员根据漏洞对协议进行修正,增加了数字签名和认证措施,保证了路由消息中的关键字段不被修改,一定程度上提高了路由的安全性。有代表性的协议包括ARAN安全路由协议和SAODV路由协议。

1安全认证路由协议简述

1.1认证路由协议ARAN

认证式路由协议(ARAN)利用数字证书和节点的认证来加强路由协议的安全。路由发现过程中,源节点需要广播路由发现报文(RDP),同时要求RDP顺利到达的目的节点回复源节点一个响应报文(REP),并且每一跳节点都需要对转发的路由信息进行验证,保证路由协议的安全。ARAN采用公钥密码技术为路由协议提供安全保障,包括证书申请、路由查找、路由维护及证书吊销等。

每个节点进入网络之前必须由同一个认证管理服务器T进行身份验证,获得一个数字证书。节点A获得T签发的数字证书,其格式如下:

T->A:certA=[IPA,KA,t,e]KT。

式中,IPA为A的IP地址;KA 为A的公钥;t为证书开始有效的时间戳;e为证书到期时间;KT为T的私钥。

认证路由协议采用和AODV、DSR协议类似的广播路由发现机制,源节点A要寻找到达目的节点X的路径,首先广播路由发现报文(RDP):

A->*:[RDP,IPX,certA,NA,t]KA。

每个中间节点接收到RDP报文后,首先验证路由请求报文的合法性;其次记录上一跳路由的地址;三是移走上一跳节点的证书和签名;四是附上自己的签名和证书继续广播路由请求报文。

目的节点接收到RDP后,需要经过反向路由向源节点回复响应报文REP,假定D首先收到X的REP:

X->D:[REP,IPA,certX,NA,T]KX。

由于节点记录了上一跳节点的地址,接到REP后,验证其合法性,附上自己的签名和证书向上一跳节点转发。D转发到C的REP报文如下:

D->C:[[REP,IPA,certX,NA,T]KX]KD,certD。

REP到达节点C后,同样验证合法性,移走D的签名和证书,附上自己的签名和证书,继续向上一条节点转发,直到源节点。

这种响应的验证方式能避免伪造X的响应信息而达到拒绝服务的目的。

1.2安全路由协议SAODV

SAODV安全路由协议首先假定有一个密钥管理子系统,使每个Ad Hoc节点获得网络中其他节点的公钥成为可能。而且每个Ad Hoc节点能够验证给定的节点与其公钥的关联关系是正确的。

为了保证AODV消息的安全,引入了2种机制:采用数字签名技术以对消息中不发生变动的内容进行认证;采用哈希链技术加强跳数信息(消息中唯一变动的信息)的安全。对于不变动的信息,采用端到端的认证机制。

1.2.1 SAODV哈希链

SAODV采用哈希链技术对RREQ和RREP的跳数进行认证,使每个接收到消息的节点确认跳数信息不曾被攻击者减少。哈希链应用一个单向函数重复对一个种子序列产生。

每次一个节点发起RREQ或RREP消息,该节点执行下列操作:

① 产生一个随机数(种子);

② 将Max-Hop-Count域设置为TimeToLive值,Max-Hop-Count=TimeToLive;

③ 将Hash域设置为seed值,Hash=seed;

④ 通过对seed执行Max-HopCount次的哈希运算,计算Top-Hash;

⑤ Top-Hash=hMax-Hop-Count(seed),其中h为哈希函数;hi(x)表示对x执行i次哈希运算;

⑥ 每个节点接收到RREQ或RREP消息,为了确认跳数正确,执行下列操作:

对Hash域的数值进行Max-Hop-Count-Hop-Count次的哈希运算,确认运算结果与Top-Hash字段的值相同,

Top-Hash==hMax-Hop-Count-Hop-Count(Hash);

在广播RREQ或转发RREP之前,节点对签名扩展域中的Hash值执行一次哈希运算,增加一跳,

Hash=h(Hash)。

1.2.2 数字签名

数字签名用于保护RREQ和RREP字段中不变动数据的完整性,即对除跳数之外的所有消息进行签名。中间节点在接收到RREQ后,首先验证签名的正确性。通过加密,保证了协议的安全。

SAODV协议通过采用这2种机制,增强了协议的安全性。

2针对安全路由协议的重放攻击技术

2.1基本思路

重放攻击是进行网络攻击的一种重要的方式,本文就是要利用重放方式,对ARAN和SAODV两种安全路由协议进行攻击。

ARAN、SAODV这2种安全路由协议是针对AODV路由协议的弱点,在原有协议标准格式的基础上,增加了认证和签名机制,阻止外部节点的攻击,增强了协议的安全性。

通过认真分析这2种协议的安全特点和路由建立过程,发现这2种协议都不能阻止抢先重放攻击。具体思路是:分布在网络中的恶意节点,不论是拥有密钥的内部节点,还是没有密钥的外部节点,在接收到某个节点发起或转发的路由请求广播消息后,马上进行抢先重放,把这条消息未经任何处理发送到更远的节点。更远的节点接收到抢先重放的消息后对其进行处理,把被重放消息的节点作为路由的上一跳节点,而剥夺了正常节点加入路由的机会,造成抢先重放攻击。

2.2基于ARAN的抢先重放攻击

如图1所示,网络中有S、A、B、C、D共5个正常节点和一个M恶意攻击节点,节点M布设在节点B附近,能够与节点A和节点C建立通信联系。下面描述节点M如何对节点B进行抢先重放攻击。

① 节点S需要建立与节点D的路由,因此发起路由建立请求RDP,节点A对此请求进行转发;

② 节点B和节点M可以同时接收到节点A的路由建立请求RDP;

③ 节点B在接收到后进行处理、检查证书,并进行数字签名,需要一定的计算时间才能够转发。恶意节点M在接收到节点A的寻呼路由消息后,不进行任何处理,直接进行转发;

④ 节点C首先收到恶意节点M的抢先重放信息,进行证书和认证检验都能够通过,因此进行处理并进一步转发;在接收到节点B转发的消息后,发现该RDP已经处理过,因此直接丢弃;

⑤ RDP到达目的节点D,节点D回送REP消息,发送给节点C;

⑥ 节点C向节点A回馈REP,节点M依然进行重放,节点A收到重放的消息后进一步转发;

⑦ REP消息到达源节点S,则形成一个S-A-C-D的路由链路,但这实际上并不是一条能够连通的链路。

从上面过程可以看到,尽管ARAN协议采用了时戳标记,但本次重放在当前路由建立的回合之内,重放的路由建立信息有效。

从处理时间上来看,节点B在接收到节点A广播的请求报文后,首先要验证合法性,然后移走A的证书和签名,附上自己的签名和证书继续广播;而节点M在收到请求后即进行重放转发,因此节点C将先收到恶意节点M发送的消息并进行处理,而不处理节点B广播的消息,因此节点B失去加入路由的机会。

通过这次重放过程,使路径中必须的节点B不能参与路由建立过程。源节点随后发送数据,恶意节点不再进行转发,形成灰洞攻击。

2.3针对SAODV安全路由协议

与对ARAN的抢先重放攻击类似,恶意节点在接收到的RREQ扩展字段消息后抢先重放给下一个节点,在时间上先于正常节点到达前方的节点,跳数上比正常节点少一跳以上,因此剥夺了正常节点加入路由的权利,造成了抢先重放攻击。

仍然采用图1所示的网络场景,描述进行抢先重放攻击的具体过程如下:

① 节点S需要建立与节点D的路由,因此发起带有数字签名和哈希跳数的RREQ请求,节点A对此请求进行转发;

② 节点B和节点M同时接收到节点A的路由建立请求RREQ;节点B在接收到请求后,将首先验证接收消息的合法性,即对数字签名进行验证,然后对Hash字段的值进行验证,在确认所有信息的合法性后,再对该消息增加一个跳数和哈希运算,转发到下一个节点。恶意节点M在接收到节点A的寻呼路由消息后,不进行任何处理,直接进行重放;

③ 节点C首先收到恶意节点M的抢先重放消息,合法性容易通过验证,且跳数比节点B广播的RREQ消息小一跳,因此节点C会把节点A作为上一跳节点,而把节点B排除在路由之外。在接收到节点B转发的消息后,直接丢弃;

④ RREQ消息到达目的节点D,该节点回送RREP消息,发送给节点C;

⑤ 节点C向节点A回馈RREP,节点M依然进行重放,节点A收到重放的消息后进一步转发;

⑥ RREP消息到达源节点S,则形成一个S-A-C-D的路由连路,但这并不是能够连通的链路。

从上述过程可以看到,采用抢先重放攻击,节点C先接收到恶意节点M重放节点A的消息,并且跳数比节点B少,形成一个不包含节点B的伪路由。

3结束语

根据抢先重放攻击采用的攻击原理,恶意节点在重放消息时,该消息也能到达被重放的节点,因此可以采用监听机制发现抢先重放攻击并做出响应。每个节点在完成路由消息广播后即转入监听状态,发现对自身传输消息的重放后,进行报警,告知整个网络。例如增加一个带节点本身数字签名的RREQ取消消息,向整个网络进行广播,接收到该消息的节点检查有无下一跳节点是该节点的路由,若有,则重新进行路由建立过程。

参考文献

[1] PERKINS C E,ROYER E M,DAS S.Ad hoc On-demand Distance Vector (AODV).RFC 3561[S],2003.

[2] NING P,SUN K.How to Misuse AODV: A Case Study of Insider Attacks Against Mobile Ad-hoc Routing Protocols[C].Information Assurance Workshop.IEEE Systems,Man and Cybernetics Society ,2003:60-67.

[3] HU Yih-chun,PERRIG A.A Survey of Secure Wireless Ad Hoc Routing[J].IEEE Security and Privacy,2004,2(3): 28-39.

[4] SANZGIRI K.A Secure Routing Protocol for Ad Hoc Networks[C].Proc.10th IEEE Int’l Conf.Network Protocols (ICNP ’02),IEEE Press,2002:78-87.

攻击安全协议 篇2

提供相互身份验证是基于共享机密安全协议中的一个共同特点。沟通当事方在协议会话中证明其身份显示拥有共享的机密,如下所示:两个主管最初建立共享的秘密q,并存储在存储器中。当运行一个协议通信各方在挑战每个其他以证明持有共享秘密q通过发送基于q的消息。如果这两个主体是能够按时发出正确的信息,相互身份验证是成功的。如果任一主体没有发出正确的信息,相互身份验证失败。

身份验证基于静态的共享机密,是不在会话期间在线更新,意味着其长期性。然而,还有相关的潜在漏洞与静态的长期存储共享机密,如泄露过去和当前的会话键和身份披露。动态则可以使用共享的机密,在线更新,以避免与静态的共享机密相关的潜在漏洞。

(1)基于动态共享密钥身份验证

安全协议实现动态共享机密使用基础的联机机制来更新这些共享的机密。因此,一个序列使用共享的机密q1至qn,凡成功运行协议确保这两个主体的相互身份验证,由证明拥有当前共享秘密。初始的共享机密q1通常建立在脱机过程中。当运行时,相互主管彼此进行身份验证。同时,更新该议定书,下一步与主管机密实现共享。一般情况下,议定书的运行使用还确定了下一个共享机密。这项更新将在后续协议运行中使用共享的机密,其中还更新下次共享机密等等。随后的共享机密可以是无关的即是随机生成,也可以创建成相同的。在后一种情况那里,是连续值之间的功能关系和完全向上保密,需要寻地址,以避免攻击者可以在某种情况下预测未来共享秘密值。

基于动态共享身份验证过程中,机密需要共享秘密实例的同步性:双方应将共享同一个的实例保存在议定书中,然后进行运行,并使用相同的实例运行进行身份验证后续协议中彼此之间的机密。因此,成功在线更新机制里存储共享的机密,由两个主体同步后运行每个协议。

(2)一般结构控制与攻击

利用安全协议的成功运作,动态共享机密的这些同步存储共享机密是必需的。如果更新动态共享的机密失败,然后主管存储共享的机密的不同分析。

在协议运行过程中更新失败,凡是主要两个主管已更新为新的共享机密和两个主管结束运行具有不同值的议定书共享的机密。由其中主要一个下一次进行身份验证尝试,因为这是主要一个将基于共享机密齐当前的共享的机密。然而,作为主要的两个已更新至新的机密,主要一个请求将被拒绝,因为它不包含预期的共享机密。因此,相互身份验证将会失败,所请求的服务将被拒绝。下一步,如果安全协议没有被设计成应对失败的可能性更新机制,永久拒绝服务(Do S)将符合条件。

1 新的核查系统模型与共享密钥更新机制

正式的安全协议验证是当务之急,加强设计中的安全协议,其目的是证明已验证协议满足其安全,目标和证明议定书可装载。提出这项工作的做法旨在表明没有可装载SD攻击的情况。我们正式新的核查系统引入模型更新动态共享的机密,其中表达的机制主管,它们存储的共享机密战略行动与主管角色在不同类型中的更新机制。核查系统可以用于建立的SD攻击的安全协议。

一般情况下,身份验证协议使用动态共享秘密,启动初始化或向注册阶段建立初始的共享机密。随后,他们循环通过身份验证或更新阶段,跟数据交换阶段。同时更新机制的详细信息差别很大,一些常见的结构出现。我们将分类更新机制分为以下两类:

更新机制A:建立一个新的和每个身份验证/更新期间不可预知的秘密会话。

更新机制B:建立了一套预先确定的N共享的机密。N迭代后一套新的建立了共享的机密。

2 证明系统的检测规则

这个部分将介绍一套正式的规则来检测易受SD攻击的更新机制。在正式规则前首先介绍一个更新信息机制和第二个更新信息机制。每个更新机制规则的建立存在一个弱点,并攻击通信各方控制相应类型造成异步操作。这些规则的制定,生成一套完整的所有可能的配置启动器和与他们所有的可能组合特性,然后分析到这些配置评估SD攻击他们的存在。由此产生的核查系统是完整的,因此它是能够检测出所有可能的SD攻击。

3 无线协议在新核查制度下的应用

进行的证明至此显露未知数在HYS、广告安全协议的弱点。在这些证明协议的更新机制下,并且被介绍的侦查规则是应用查出现在协议的弱点。被攻击者怎么可能导致一个永久Do S情况下通过展开SD攻击这些协议。并且,对广告协议的校正是证明系统应用对被修正的广告协议,建立它对SD攻击进行免疫。

为了使用建议的核查系统和应用检测规则,正在审议的更新机制首先必须正规化。以下步骤是必需的,从一种安全协议中提取更新机制和使用我们正式的核查系统模型:

主要协议阶段的证明,例如初始化阶段,认证阶段,关键更新阶段等。

(1)任何秘密每个新的事例的初始化点。

(2)第一次每个秘密的用法点使用为认证目的。

(3)再实例化指向,其中所有秘密数据更新。

确定的内部安全更新机制计划-保障计划可以实现:

(1)作为一个独立的协议阶段的一个更新机制。

(2)在协议阶段中嵌入一个更新机制由两个以上的消息组成。

4 结论

本文论及了安全解决同步问题在网络上运用无线通信协议的更新机制。本文揭露当前安全协议更新机制设计中的漏洞与运用动态共有的秘密。展示了这个弱点是存在于各种各样的无线通信协议中。此外,新的攻击称为SD攻击,可以利用介绍的设计暴露出的弱点,影响对这些协议成功的进行SD攻击,是常驻到达时拒绝服务的情况,防止进一步各参与方之间的通信。

证明系统的有效率,被证实了通过运用它在对几个安全协议的分析为无线通信。每个被分析的协议进行简单介绍,然后重新塑造再次证明系统。对协议进行分析,执行了申请侦查控制对形式化的协议。

摘要:基于动态共享身份验证过程中,机密需要共享秘密实例的同步性:双方应将共享同一个的实例保存在议定书中,然后进行运行,并使用相同的实例运行进行身份验证后续协议中彼此之间的秘密。因此,在一个成功在线更新机制里存储共享的机密,由两个主体的演变同步后运行每个协议。

攻击安全协议 篇3

2011年美国明尼苏达大学的Max Schuhard首次提出了针对路由器BGP协议的CXPST攻击算法[1]。CXPST攻击算法一经提出即受到广泛关注, 因为这种攻击算法原理是运用运行BGP协议的骨干路由器之间数据包更新的原理开展攻击。由于BGP协议是目前骨干路由器中运行的最为典型的一种路由协议, 而且BGP协议一般是在骨干路由器下进行配置和应用, 因此在文献中所提出的CXPST攻击算法针对骨干路由器中的BGP协议进行攻击, 危害十分巨大, 能够直接影响骨干网络的通信, 甚至可能会导致整个骨干网甚至通信的瘫痪。针对骨干路由器路由协议安全性的相关研究此前也有很多, 比如侯春雨等对互联网域间路由振荡问题开展了研究和分析[2], 从此拉开对互联网域间路由振荡引起的各种安全问题研究的序幕。王洪君等人研究了BGP路由振荡的解决方案, 不过该方案在实现上具有较大的局限性, 不具有很强的推广性[3]。Max Schuchard等人提出的CXPST攻击算法更是定量分析了利用因特网域间路由振荡实现对因特网拒绝服务攻击的可能性。

但是, 当前针对骨干路由器路由协议的安全性研究表明:目前, 骨干路由器安全协议所存在的缺陷并不严重, 针对目前的骨干路由器以传统的方式攻击的话, 一般不足以导致整个网络上的骨干路由器瘫痪。因此, 在目前的因特网环境下, 一般都认为对整个互联网的数据通信基本上比较安全, 即便是目前非常常见的分布式拒绝服务攻击, 一般也只能够针对一个网站或者一个特定区域的小型网络开展攻击, 并导致攻击的目标处于瘫痪或无法提供正常的应用和服务[4,5,6]。而要对整个因特网进行攻击, 目前并没有可行的方案, 也缺乏相应的技术能导致整个因特网处于瘫痪。然而在2011年提出的CXPST攻击算法就为整个因特网的通信安全敲响了警钟, 根据文献中所描述的CXPST攻击算法, 其设计的原理是通过在因特网上对正常通信的数据流进行干扰或控制, 从而导致骨干网络中的路由器需要更新BGP数据包, 当攻击者构造足够精巧的攻击数据并在因特网中选取恰当的攻击位置, 则可能导致整个骨干网中需要更新的BGP通信数据量急剧增加[7], 最终超过骨干路由器的运算能力, 这种攻击过程实际上也是通过对路由器正常通信的数据进行攻击, 最终实现将攻击效果传递至路由器的控制层面, 因此在CXPST攻击算法的文献中也将这种攻击思路定义为从数据平面到控制平面的攻击过程。在该文献中, 仅仅是对CXPST攻击算法的原理进行了探讨和仿真, 并通过实验证明, 在一个由2.5万台PC计算机所组成的僵尸网络, 利用CXPST攻击算法发起攻击并产生的攻击效果, 足以导致整个因特网上的骨干路由器陷于瘫痪, 从而导致整个因持网陷入拒绝服务的攻击效果。然而在该文献中, 并没有对BGP协议的攻击过程开展深入的研究, 而且从该文献所得出的CXPST攻击算法的攻击过程和攻击范围都是不可控, 一旦这种攻击效果得以实现, 则可能会导致整个因特网数据通信的瘫痪, 然而通过深入的研究和分析, 本文认为, CXPST攻击算法具有改进的空间, 能够实现对攻击过程和攻击范围的控制[8]。为此本文提出了一种基于扩散衰减思想的可控CX-PST攻击算法。

1 BGP更新数据包扩散原理分析

如图1所示, 给出了BGP更新数据包扩散传播的原理, 从图中可以看出, 当一个路由器更新的BGP路由表之后, 所给出的路由表项将会封装成BGP路由数据包, 扩散至与之相邻的其他路由器, 其他路由器收到该更新数据包之后, 重新计算路由表, 并完成对路由表项的更新, 之后, 更新路由表现的路由表将再次将所更新的路由表项转发给其他路由器, 如此不断循环下去, 形成BGP路由数据包的扩散传播[9,10]。本文研究的骨干路由器上运行BGP协议的更新机制也采用如图1所示的扩散原理进行更新。

为了对BGP路由协议更新数据包的扩散过程进行深入的研究和分析, 本文对BGP协议更新数据包的扩散原理进行了如下假设:

(1) 当路由器收到一条BGP更新路由表项时, 路由器会对所收到的路由表项立刻进行处理。通过对路由器中当前路由表项进行分析, 重新计算所收到新的路由表项对当前路由表的影响, 并计算深层的新路由表。

(2) 路由器收到BGP更新数据包之后, 通过对路由表项的重新计算, 会导致路由表中部分路由表项更新, 在对BGP路由协议更新扩散传播过程建模分析时, 假设路由器收到一条BGP更新路由表项之后, 会导致路由器中的部分路由表项更新, 更新的路由表项占路由表中所有表项的a倍 (0≤a≤1) 。

(3) 路由器根据收到的更新路由表项, 重新计算其路由表之后, 针对新生成的路由表项, 会形成路由表更新数据包, 形成路由表更新数据包时, 以每一条路由表项形成一个更新数据包, 并将所形成的更新数据包全部转发至其他相邻的路由器[11,12]。

(4) 路由器向其他相邻路由器转发BGP更新数据包时, 假设每个更新数据包到达其他路由器的时间是相同的, 但由于路由器转发BGP更新数据包时, 是按次序先后进行转发, 因此其他路由器也将先后收到更新数据包, 其中, 路由器每收到一个更新数据包之后, 即立刻进行路由表项的重新计算, 待所有路由表项重新计算完成之后, 才处理下一个BGP更新数据包[13]。因此, 路由器在计算更新路由表项时, 其缓存往往会保存一系列待更新的BGP路由表项。

(5) 路由器产生更新路由表项之后, 将会向与其相邻的所有路由器进行BGP更新数据包的转发, 而不会根据路由表的转发路径有选择地向其相邻的路由器进行转发。因此本文研究的BGP更新数据包的传播扩散过程, 是一个完全广播式的扩散过程。

(6) BGP更新数据包在广播扩散传播过程中, 不会形成扩散传播的环路。由于在BGP更新数据包扩散传播时, 如果传播路径上出现环路, 将有可能导致BGP更新数据包陷入广播风暴的现象。BGP更新数据包在实际传播的过程中, 也会通过路由协议, 来自动控制传播过程中不会沿着环路传播[14]。

(7) 路由器在进行路由表项更新时, 需要消耗的计算量用待更新的路由表项来衡量。由于路由器更新路由表项时的计算量与待更新的记录条数是成正比的, 因此, 以路由器收到的待更新BGP路由表项来衡量路由器的计算负荷是基本准确的。

2 基于衰减扩散的可控模型设计

定义1扩散度

扩散度是指骨干网络中发生BGP更新路由包振荡的数据在路由器M上扩散程度, 用系数αM表示。

当路由器M收到的BGP路由更新数据包数量为T (M) , 该路由器的扩散度为αM, 则从该路由器转发出去的BGP路由更新数据包数量为:

定义2扩散路径

扩散路径是指从发生BGP路由更新振荡的节点Z开始, BGP更新数据包扩散传递到目标路由器M所经历的传播路径, 记为L (ZM) 。

当路由器Z到M之间的网络拓扑存在多种不同连接路径时, L (ZM) 将是所有不同路径的集合。

若路由器Z到M之间存在一条扩散路径各个中间路由器的扩散度记为αMi, i=1, 2, 3, 路由器Z上产生的BGP更新数据包量为S (Z) , 则路由器M上转发出去的BGP更新数据包量为S (M) 。

对于给定的振荡路径扩散路径L1, 如果路径上各个中间路由器在处理转发的BGP数据包时, 会根据路由表和网络拓扑结构对BGP更新数据进行综合处理, 减少路由器向外转发的BGP更新数据包。同时, 还可以通过外界控制各个路由器转发BGP更新数据包的比率, 以减少路由器向外扩散传递BGP更新数据包的量。其减少的比率由衰减因子描述。

定义3衰减因子

衰减因子是指路由器M收到转发的的BGP更新数据包后, 其在正常转发的BGP更新数据包基础上, 减少转发数据量的比率, 用γM表示。

根据所定义的扩散度和衰减因子的定义, 可以得到路由器X在经过足够长的时间 (BGP更新数据包完成充分的扩散) 后, 其收到的待更新BGP数据包的数量为D (A) 。

其中L=ZM1M2…MnA, L (ZA) 代表从振荡源节点Z到目标节点的所有路径, 其中T (Mi) 可以通过式 (2) -式 (5) 进行计算。

路由器的计算能力CP统一用可处理的BGP更新数据包量的衡量, 若路由器收到的待更新BGP数据包数量超过该路由器的计算能力CP, 则认为该路由器无法完成当前的处理任务, 进入崩溃状态。在进行分析时, 可以将各个路由器的扩散度αM和衰减因子γM分别设定为统一的值, 以简化模型的处理。

3 仿真与测试

为了对本文设计的基于衰减扩散的可控模型的性能进行分析, 本文建立了仿真环境, 对设计的衰减扩散模型进行了测试与分析。

如图2所示, 给出的是衰减扩散模型中, 通过调节不同的衰减因子, 测量到目标网络中单台负荷最重的路由器其负荷量随时间的变化情况。从图中可以看出, 当衰减因子设置为0.6以上时, 被测量的路由器其计算负荷随时间的增加总体呈上升趋势。当时间达到一定程度时, 路由器的计算负荷达到其最大负荷量, 之后路由器将陷入崩溃的状态, 而且当衰减因子设置为0.9时, 可以看出, 路由器的计算量随时间的增长基本呈现指数级的增长关系, 这表明, 当衰减因子设置为0.9时, 对路由器收到的待更新BGP数据包衰减量还不够, 以至于该路由器等待处理的BGP更新数据包急剧增长。当衰减因子设置为较低的数字时, 如图中设置为0.4的时候, 路由器待更新BGP计算量随时间的增加, 不仅没有急剧上升, 反而在测试的后期计算量有所下降, 这是由于整个网络中, 各路由器已经能够完全及时地处理产生的各种BGP更新数据包。因此, 路由器的计算负荷在系统进入稳定之后还会略微下降。

图3给出的是路由器中的计算负荷在不同的更新因子条件下, 其计算负荷随时间的变化图, 从图中可以看出, 当路由器的更新因子设置为大于0.4的时候, 路由器待更新的数据量随时间增长十分明显, 因为根据更新因子的定义, 可以知道, 更新因子越大, 意味着路由器收到一条更新路由表项之后, 所需要更新的路由表项则越多, 而根据路由表项的扩散传播原理, 一台路由器更新的路由表项越多, 向其他路由器转发的更新表项也就越多, 从而导致网络中出现的BGP更新数据包呈指数级的增长, 因此会导致被测试的路由器的计算负荷随时间增长急剧增加。

图4给出的是针对一个给定的骨干网络拓扑图, 从骨干网络拓扑图中选取6个路由器作为可控攻击范围的边界路由器, 通过模拟CXPST攻击算法对该区域网络进行攻击, 通过设置该区域内路由器的实现对该区域的可控攻击, 图3给出是对该区域网络6个边界路由器的最大计算量统计曲线图, 从图中可以看出, 在测试过程中, 更新因子设置为0.3, 衰减因子设置为0.6, 通过测试可以发现, 被测的6个路由器中, 最大的计算负荷为0.78, 它意味着, 该路由器在处理BGP更新数据包时, 最大的负荷量也只达到了其78%的计算能力, 因此, 确保该路由器不至于陷入崩溃, 而根据对可控攻击范围的设定, 边界路由器与周围的其他路由器进行BGP更新数据包转发时, 其对外的转发量将逐渐减少, 因此只要在边界路由器上不会导致路由器崩溃, 则边界路由器之外的区域也不会出现路由器崩溃的现象, 从而可以确保将攻击的范围被限制在可控的区域内。

4 结语

CXPST攻击算法事实上已经对整个因特网的通信安全敲响了警钟。而鉴于BGP协议在骨干路由器中被广泛使用, 因此, CXPST攻击算法及危害是极其明显的。然而在最初提出CXPST攻击算法的文献中并没有分析CXPST攻击算法的可控特性, 本文通过研究并设计了基于扩散衰减的可控CXPST攻击算法, 在理论上给出了一种可行的开展CXPST攻击算法的实现过程, 并最终能够将攻击效果控制在某一特定区域内, 而且仿真结果也验证了这一结论。通过本文的研究结果, 事实上, 对CX-PST攻击算法的危害及可能的变种提前进行了研究, 为寻找CXPST攻击算法的应对措施提前做好准备。

摘要:2011年出现的CXPST攻击算法能够对运行BGP协议的骨干路由器发起大规模的拒绝服务攻击。针对该算法攻击范围和攻击过程均不可控的现状, 通过对骨干网络拓扑结构和BGP协议数据扩散路径的建模分析, 提出基于衰减扩散的可控BGP协议的攻击算法。仿真实验表明, 按衰减扩散的攻击策略, 可以实现对局部区域的可控CXPST攻击。

攻击安全协议 篇4

Arp (Address Resolution Interface,地址解析协议) 是TCP/IP协议族中的关键成员之一,是联系网络层协议 (IP) 与数据链路层 (含介质访问控制子层) 协议 (如以太网,IEEE802.I) 的桥梁。

1.1 Arp数据包格式

以太网首部:

48比特:目的以太网地址,全1的地址表示为广播地址。

48比特:发送方以太网地址

16比特:帧类型,对于Arp请求来说,该值为0X0806

以太网数据包:

16比特: (ar$hrd) 硬件类型 (例如:以太网、令牌网) 它的值为1即表示以太网地址。

16比特: (ar$pro) 协议类型。协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示I P地址。

8比特: (ar$hln) 硬件地址长度

8比特: (ar$pln) 协议地址长度

16比特: (ar$op) 包类型。Arp请求(值为1)、Arp应答(值为2)、RArp请求(值为3)和RArp应答(值为4)。

N比特: (ar$sha) 发方硬件地址, 长度n取决于ar$hln。以太网中,n=48。

M比特: (ar$spa) 发方协议地址, 长度n取决于ar$hln。IP中,m=48。

N比特: (ar$tha) 接收方硬件地址。

M比特: (ar$tpa) 接收方协议地址。

Arp高效运行的关键是由于每个主机上都有一个Arp地址转换表。这个地址转换表存放了最近应用协议地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为2 0分钟,起始时间从被创建时开始算起。我们可以用Arp–a命令来检查Arp缓存表中的内容。参数-a的意思是显示高速缓存中所有的内容。

2 Arp扫描原理

Arp扫描是指利用Arp协议对内网主机在线情况进行扫描探测的方式。当主机接收到对本机的Arp地址请求包后,将会发送本机的硬件地址到源主机。这样我们就可以编程模拟此通信过程,以是否能够获得目标主机的Arp回复包作为主机在线的判断标准,对主机进行在线状态探测。如果要对内网中的所有主机进行扫描,则须进行内网主机扫描遍历。对单个主机的扫描过程描述如下:

由于从数据请求包的发出到接收到目标主机的Arp回复包需要一定的时间延迟, 所以应当设置一个时间阀值来定义超时。

需要注意的是Arp请求包的发送过程, 需要自己构造以太网包头, 以太网包头内的目的MAC地址可以填写广播地址 (全1) , 也可以填写目标主机的真实MAC地址。并且这个检测流程仅可以对内网主机进行探测, 在对同一网段外的主机发送Arp请求时, 将会收到交换机发来的Arp回复包, 而非目的主机的Arp回复。

Arp扫描仅可以用于对主机的存活性检测。

2.1 Arp扫描耗时分析

在这里我们从时间角度去分析Arp扫描的性能,分析方法采用了环境试验测试的方法,程序实现了Arp扫描,通过监听网络数据包,测算出精确耗时,测试网络环境中采用单线程方式进行扫描测试。实验所用环境是一个通过Cisco Catalyst 3560交换机进行互联的内网,抓包软件选用wireshark 1.0.0版本。

1) 单包分析

对主机15.39.31.8的Arp请求报文在2.526355时刻发出,回复报文在时刻2.526516收到,整个过程耗时161微秒。如图2。

2) 单线程扫描分析

模拟程序对15.39.31.*网段内主机进行Arp扫描,耗时84毫秒。共探测到在线主机56台。

2.2 Arp扫描准确度分析

Arp协议是局域网通信中的基础协议,关闭Arp协议或者不支持Arp协议的网络仅能通过网关静态Arp地址表的方式进行网络通信,也就是说在不使用静态Arp地址表的局域网中,Arp协议是不可被禁止的。在这种情况下,使用Arp协议来扫描存活主机能够得到正确的结果。由于在当前的网络应用中,仅有极少数网络完全使用静态Arp地址表进行通信,因此我们的分析限定在基于动态Arp协议获取的网络内。

分析扫描的准确度包括两个方面,一方面是正确认定存活主机,另一方面是正确认定不存活的主机。目前的网络安全产品对正常的Arp协议并不进行过滤,因此理论上讲,使用Arp协议对内网主机存活性的认定正确率能达到100%。

3 Arp欺骗技术

Arp欺骗,又称Arp缓存欺骗,是对内网远程主机Arp地址表进行攻击的一种手段,在前几章我们讲到,一台主机如果需要和另外一台主机通信,需要两个地址的对应关系,一个是IP地址,另一个是MAC地址。Arp协议正式提供了这两种地址之间的转换功能,根据Arp地址协议,当主机收到Arp请求包时,主机将保存下请求包内的地址对应关系到本地缓存表中。Arp欺骗技术正是利用协议的这个漏洞,通过构造错误的对应关系报文来对主机进行Arp欺骗。主机收到包含错误对应关系的Arp请求报文后,更新本地Arp地址缓存表,之后的通信受错误地址对应关系影响,发往错误的MAC地址设备。如图3。

受到Arp欺骗的主机A中,错误的保存了主机B的MAC地址对应,导致本应发要发给主机B的数据将被网络发至主机Attacker。如果再对主机B实施Arp欺骗,通过构造错误的Arp包,更改主机B的Arp缓存表中的主机A的MAC地址纬Attacker的MAC地址,那么就实现了Attacker主机对主机A和主机B的通信欺骗和通信监听。

对主机A和B讲,并没有发现自己的通信异常,但是Attacker主机此时已经实现了对两者的通信监听。下面我们讨论下Arp欺骗具体的实现手段。

首先定义如下名称:

1) Target:Arp欺骗的目标主机

2) Attacker:攻击者主机

3) aIP, bIP:主机A和B的ip地址

4) aMAC, bMAC:主机A和B的MAC地址

5) TargetMAC:目标主机的MAC地址

6) TargetIP:目标主机的IP地址

7) AttackerMAC:攻击主机的MAC地址

8) AttackerIP:攻击主机的IP地址

9) Arprequest:A--->B with (aIP, aMAC, bIP, bMAC) :从主机A发往主机B的Arp地址请求报文, 该报文使用 (aIP, aMAC, bIP, bMAC) 构造。

10) Arpreply:A--->B with (aIP, aMAC, bIP, bMAC) :A到B的Arp回复报文。

a进行Arp欺骗

报文格式:

(1) Arprequest:Attacker--->Target with (aIP, AttackerMAC, TargetIP, TargetMAC)

(2) Arpreply:Attacker--->Target with (aIP, AttackerMAC, TargetIP, TargetMAC)

Arp请求报文包含了错误的主机A的MAC地址,目标主机收到该报文后,认定A主机的MAC地址是AttackerMAC,并保存aIP到AttackerMAC的地址转换关系,因此所有本应发往主机A的数据包被发给主机Attacker。

Arp回复报文用来维持Arp欺骗,同样的,目的主机在Arp缓存表中保存了aIP到AttackerMac的错误对应关系,发往主机A的数据包被错误的发给了Attacker。

b认定网络中存在相同IP地址

报文格式:

(1) Arpreply:Attacker--->Target with (TargetIP, aMAC, TargetIP, TargetMAC)

(2) Arprequest:Attacker--->Target with (TargetIP, a MAC, TargetIP, TargetMAC)

如果发送上面两种报文到目的主机,则目的主机认为在网络中存在一个与本地IP地址相同的主机,目的主机操作系统将会提示“IP地址冲突”。

c恢复Arp欺骗

报文格式:

Arpreply:Attacker--->Target with (aIP, a MAC, TargetIP, TargetMAC)

包含正确信息的Arp请求报文,能够恢复目的主机的Arp缓存表。

4 Arp攻击技术

Arp攻击是指应用Arp欺骗技术手段,以瘫痪对方主机和网络为目的的行为。在内网环境下,根据攻击范围的不同,攻击手段区分为两种,一种是全通信攻击,另一种是半通信攻击。全通信攻击是指向目标主机发送对内网所有主机的Arp欺骗报文,从而导至目标主机所有的对外通信中断。全通信攻击方式发送的报文量大,极易导致网络流量异常,特别是对整个网络实施攻击时,猛增的网络流量易被安防系统发现并阻止。半通信攻击仅向目标主机实施对网关的欺骗报文,影响主机对外网的通信。这种方式报文量小,但不能干扰主机在网内的通信。对网络实施Arp攻击的伪代码如下:

在实际的应用中,需要不断地重复上述代码来维持攻击效果,每次重复攻击之间需留有一定的时间间隔来避免网络流量的激增。间隔的设置可以根据实际的攻击需要和网络容量的大小来进行设定。

5 小结

Arp协议的应用性非常广,并且目前大多数网络设备并不屏蔽正常的Arp协议数据流,因此利用Arp进行网络渗透攻击不失一种较好的手段,通过本文的讨论,可以将此技术应用在军事网络战、军事技术情报获取、网络安全侦察等多个领域。

参考文献

[1]W.Richard Stevens.TCP/IP详解卷1:协议[M].北京:机械工业出版社, 2006.

[2]周贺, 彭婧, 冯光焰.Arp协议的安全问题及其解决方案[J].计算机与网络, 2007 (23) :33-35.

[3]杨杨, 房超, 刘辉.Arp欺骗及ICMP重定向攻击技术研究[J].计算机工程, 2008, 1 (34) :103-104.

攻击安全协议 篇5

由于人们倾向于使用较为简单的密码, 安全协议利用它们很容易进行猜测攻击[1]。我们来考虑下面这个协议:

Msg1. a→s:a

Msg2. s→a:ns

Msg3. a→s:{ns}passwd (a, s)

(用户a的目的是向服务器s验证自己的正确性) 。

现在, 攻击者通过观察这些主体之间的通信就可以通过猜测用户的密码来发起一个猜测攻击。例如, 如果协议的使用者是本文作者之一的话, 他可能会猜想"zzuzhou"作为密码。这时他就可以对ns进行加密得到{ns}zzuzhou, 并将其和第三条消息相比较从而得到消息{ns}passwd (a, s) 。比较表明, 发生的概率较高的就很可能是用户的密码。过去仅仅考虑了协议在独立执行的时候遭受到的攻击, 实际上, 安全协议很少是独立执行的, 它还要和其他的安全协议发生相互作用即对协议进行混合操作。

对此, 我们着重研究的几个问题是:

(1) 两个协议混合构成的混合协议能否发现协议在单独执行时所不能发现的新的攻击?

(2) 单独的一个协议很容易分析。但是, 当这些协议混合起来组成了一个复杂的运行环境的时候, 我们该怎样对协议进行分析?

(3) 在哪些情况下一个协议可以安全地执行而不必担心被其他协议中的混合信息所攻击?

在本文中, 我们引入一种新的攻击称为“多协议猜测攻击”。首先, 我们概括地说明一下串空间模型的形式化分析方法;然后根据这种方法去分析协议在一个复杂的环境中执行的时候仍然是安全的即不会遭受到多协议猜测攻击。最后我们做一下总结, 并提出下一步工作展望。

1串空间模型

在本节中, 我们主要来说明一下串空间和串空间模型的概念[2,3,4]。

1.1项和子项

项表示协议参与者可能交换的消息, 一个协议的所有参与者可能交换的消息集合称为项集合A。原子项分为文本项 (包含身份标识和随机数等) 和密钥项 (参与者的密钥集合) , 分别属于文本项集合T和密钥项集合K。项可以由原子项经过连接和加密得到。文本项集合T和密钥项集合K都是项集合A的子项, 并且T∩K=ϕ。

定义1 符号项是一个有序对〈σ, t〉, t∈A, σ为+或–, 记作+t或–t;+t表示发出项t, –t表示接收到项t。 (±A) *是符号项的有限序列的集合。

定义2 项a是项b的子项, 即a⊂b。子项的关系定义如下:

(1) 若a⊂b, b∈T, 则要求b=a;

(2) 若a⊂b, b∈K, 则要求b=a;

(3) 若a⊂{g}K, 则要求a⊂g或者a={g}K;

(4) 若b=g·h, 则要求a⊂g或者a⊂h或者a=gh。

1.2串空间和丛

定义3 一个串空间是指一个集合Σ以及在该集合上的迹映射:tr:Σ→ (±A) *。集合Σ中的元素称为串。

这里的tr表示由Σ到A中元素组成的序列的一个映射, 称之为迹映射, 映射的像称为原像的迹。通常把像的代表元记作<<σ1, a1>, …, <σn, an>>。通常省略掉迹映射, 只用∑表示一个串空间。迹映射可以不是单射。

定义 4 C= (Nc, Ec) 是有向图 (N, E) 的子图, 其中Ec⊆E是边的集合, Ec⊆E是与Ec中的边相关联的结点的集合。如果下列条件满足, 那么C是Bundle:

(1) C是有限的无环图;

(2) 若n2∈Nc, 且term (n2) 为负, 则存在唯一的结点n1, 使得n1 →c n2 ;

(3) 若n2∈Nc, 且n1⇒n2, 则n1 →c n2 。

因为Bundle是一个图, 所以在边→和⇒下, 结点的关系形成偏序关系, 表示为⪯C。C的任何非空结点子集在⪯C下都有最小元。

1.3攻击者模型

定义5 攻击者用它已知的信息或截取的消息来产生新的消息, 这些行为可以用攻击者角色来表示:

(1) M[t] 产生原子文本消息:<+t> (t∈T) ;

(2) F[g]接收消息:<-g>;

(3) T[g] 接收并多次发送消息:<-g, +g, +g>;

(4) C[g, h] 级连收到的消息:<-g, -h, +g·h>;

(5) S[g, h]分割收到的消息:<- g·h , +g, +h>;

(6) K[k] 发送密钥:<+k>, k∈Keyp.Keyp=Ki∪Kp-1∪Kpx;

(7) E[k, h]加密消息:<-h, +{h}k>, k∈Keyp;

(8) D[k, h] 解密消息:<-{h}k , +h>, k-1∈Keyp。

定义6 一个混合的串空间是由几个不同的协议合并组成的。一些特殊的串在串空间里被称为主串, 其他的我们需要考虑的串称为次要串。对于集合I∈Fact的入口点如果不依赖于次要串, 那么在一个串空间里I是不被服务的。同样, 如果在集合I内没有起源于次要串的元素, 那么I也是不被服务的。

1.4分析方法举例说明

现在我们以GONG提出的论证协议为例, 来说明一下我们所使用的分析方法。

LOWE分析了这个协议, 没有发现攻击。为了阐明我们的分析方法, 我们假设服务器不能发现重放攻击。

用init, resp和serv分别表示协议里面的正则串a, b和s。在阐述的过程中, 我们去掉一些冗余的步骤, 因为由对称性我们可以明显地看到:a和b在消息格式上有4条消息是一样的。

步骤1 首先我们要确认出那些意想不到的服务是由serv提供的:从协议中我们可以发现消息1和3是无用的, 例如, 任何一个意想不到的服务都可以使用重放法去欺骗主体a或b。因此, 串serv在不同的时间使用不同的密钥传递消息{na1, na2⊕k}passwd (a) 来抵抗重放攻击。

步骤2 在协议里可以被猜测的是passwd (a) 或passwd (b) 。

步骤3 攻击者P所知道的初始信息是a, b, s, Ks, {a, b, na1, na2, ca, {ta}Ka}Ks, {b, a, nb1, nb2, cb, {tb}Kb}Ks, {na1, na2⊕k}Ka, {nb1, nb2⊕k}Kb, {ra}k, {f1 (ra) , rb}k和{f2 (rb) }k。

步骤4 通过考虑攻击者P的所有交互 (a, b) , (Pa, b) , (a, P) , (Pa, P) 我们将列举出一些可推导的事实。由于协议的对称性, 我们没有必要考虑其他的事实可能性。从组合 (a, b) 和 (Pa, P) 和服务者串给出的两个实例{na1, na2⊕k}Ka攻击者P就可以获得下述信息:{na1, na2⊕k}Ka和{na1, na2⊕k′}Ka。此时k≠k′。

步骤5 现在我们使用集合G (信息能够被猜测的集合) 中的元素去获得一切可索取的事实, 它们是{na1, na2⊕k}, {nb1, nb2⊕k}。当然, 攻击者也可以获得消息na2, 在组合 (a, P) 的第四步, 由于攻击者P知道密钥K因此它可以从na2⊕k获得na。

步骤6 我们现在考虑集合V (能够被验证的集合) , 从第四步使用集合D (攻击者能够获得的信息集合) , 通过猜测出密码passwd (a) , 并使用它进行加密, 攻击者P可以在{na1, na2⊕k}passwd (a) 和{na1, na2⊕k′}passwd (b) 中比较消息na1。例如:如果g是猜测出的密码, 那么它可以做如下操作: ({{na1, na2k}passwd (a) }g-1) 1 ({{na1, na2k}passwd (a) }g-1) 1

步骤7 下面将说明我们如何发现本协议的另一个攻击以及在本协议中ca和cb的重要性。我们将设法找出攻击者P利用它在先前的步骤中或一些记录信息里所拥有的知识建立一个攻击的事实。首先, 从消息1里移除ca, 那么消息剩余的部分包含a, b, na1, na2, 它们都能被攻击者所获得。时间戳ts是任意的, 因此可以在第五步用对消息4解密的密钥对消息进行加密。结合本协议就可以构建一条和消息1形式相同的消息使用Ks进行加密并和原来的实际记录值相比较。

这里ca的重要性很明显, 并且要注意到攻击者P不可以通过先前步骤或信息获取ca。因此, 如果ca在目前的消息1里, 它就可以阻止猜测攻击, 以防止攻击者P可以构建类似信息去核实猜测。对于cb的分析是类似的情况。

2混合协议验证分析

2.1混合协议的脆弱性分析

文献[5,6]的作者已经分析了多协议攻击, 并提出几种技术以确保协议在一个复杂的环境中仍然是安全的。在这篇文章中, 我们在多协议攻击的基础上, 考虑到一些针对低熵密码进行的猜测攻击, 将他们进行混合, 进而对多协议攻击做进一步的论证。Guttman对此作了一些实用证明, 但是Guttman证明的结论并不总是适合于所有的多协议攻击。我们使用EKE协议来说明多协议猜测攻击是如何进行的。首先我们根据文章的分析需要对猜测攻击做两个假设:

(1) 能够被猜测的密码通常都是一些低熵密码。与此相对的一些像机器产生的高熵密码通常都有一个很大的密钥选择空间, 那么猜测攻击就很难实现。

(2) 核实一个猜测并不需要和其他部分在线交互。在本文中, 我们只考虑完全离线的猜测攻击。

现在我们来看一下由Mellovin和Berritt提出的EKE协议[7]:

主体a和b试图对共享会话密钥k达成一致, a的不对称密钥passwd (a, b) 代表a与b和pka共享的密码, Lowe[8]使用FDR分析了这个协议没有发现攻击。

我们再考虑另外一个由GONG提出的协议[1]:

Msg1. a→b:{c, n}k1

Msg2. b→a:{f (n) }passwd (a)

K1是a的公开密钥, c是一个用于阻止攻击的多余的随机数。n是一个任意数, f是一个公开的函数。这个协议在单独执行的时候也没有发现攻击的存在。然而, 如果这个协议和EKE组合在一起, 形成了一个混合的环境, 那么下述攻击就会出现:

攻击1 用p1代表EKE协议, p2代表GONG提出的协议。攻击者起初可以猜测出p1的密码passwd (a) 并用它加密消息1进而得到pka, 攻击者可以猜测p2的密码passwd (a) 从而得到f (n) 。从攻击者得到的这些信息它就可以得到数据值n, 并用从p1得到的密码passwd (a) 对n进行加密。最后, 它可以将获得的值与它在消息1中的记录值进行比较去证实它的猜测。

现在我们考虑另外一个和在文献[1]中提出的协议类似的认证协议, 协议描述如下:

Msg1. a→s:a, s

Msg2. b→a:ns

Msg3. b→a:{{a, ns}pva}passwd (a)

将这个协议作为p3。这里用户a的目的是向服务器S认证自己的正确性。如果相应的a的公钥pka对于攻击者来说是未知的, 那么这个协议也是安全的。然而, 当协议与p1混合在一起使用的时候, 由于其他原因, 下述攻击就会出现:

攻击2 起初, 攻击者通过猜测密码passwd (a, b) 并且在p1中解密消息1得到pka。接下来攻击者又可以猜测密码passwd (a) 并且解密消息3进而得到{a, ns}pva.最后, 攻击者使用pka解密消息{a, ns}pva, 并将p1中的信息ns与它发送消息2里的信息ns相比较匹配, 从而证实他的猜测。

在现有的协议里都可以发现类似的攻击。协议p1, p2, p3在独立的环境中执行都是安全的情况下这些攻击也可能发生。

2.2混合协议的健壮性验证

在本节中, 我们以EKE协议为例, 从2.1节提到的多协议猜测攻击的脆弱性分析中获得一些关键信息, 通过这些信息, 我们对多协议猜测攻击附加一些限制条件, 从而保证了多协议运行的安全性。并对多协议的安全性做了形式化的验证。EKE协议如图1所示。

步骤1这里意想不到的服务仅仅是主体b的, 对应{pk}passwd (a, b) , b给出了{{k}pk}passwd (a, b) 。

步骤2 G={passwd (a, b) }。

步骤3 MP={{pka}passwd (a, b) , {{k}pk}passwd (a, b) , {na}k, {na, nb}k, {nb}k}。

步骤4 可能的交互有以下五个: (a, b) , (a, P) , (a, Pb) , (P, b) , (Pa, b) 。通过 (a, P) 交互, 攻击者P可以得到消息PK′a。因此D={PK′a}。

步骤5 通过猜测获得的Facts为O={PKa, {k}PKa}。

步骤6 可以验证下述信息:facts (V) :V=ϕ;不管怎样, 通过第四步和第五步, 攻击者就可以进行下面的操作:pk′a={{pka}passwd (a, b) }g-1 (攻击者P首先要猜测出g)

步骤7 一个可行的事实是C=ϕ。因为在MP∪D∪O中找不到一个可以用来建造一条记录值进行验证的项。从上述的分析结果来看更详细一点, 从第六步和第七步来看, 只要下述条件满足, 那么协议仍然是安全的,

1) pka不是从其他的串得到的;

2) 没有用pva进行加密的项 (其中pva=pka-1) ;

3) 要确保没有用pka加密的项。

现在我们在一个混合的环境中来描述这些情况, 此时EKE协议作为主要的协议, 其他的协议都作为次要的协议。

定义7 Σ是一个串空间,

(1) Init[pka, passwd (a, b) , k, na, nb]是在Σ中的一个串空间集合, 它的迹是:

<+{pka}passwd (a, b) , -{{k}pk}passwd (a, b) , +{na}k, -{na, nb}k, +{nb}k> (Σinit是发起者串) ;

(2) Resp[pk, passwd (a, b) , k, na, nb]是在Σ中的一个串空间集合, 它的迹是:

<-{pka}passwd (a, b) , +{{k}pk}passwd (a, b) , -{na}k, +{na, nb}k, -{nb}k> (Σresp是响应者串) 。

Σinit, Σresp是一对不相交的串, 它们形成了串空间Σ的主串, 记作ΣP (=Σinit∪Σresp) Σ中其余的串都是次要串记作ΣΣP (ΣΣP是一个集合的不同操作者) 。

定义8 对L0和ID作如下定义:

L0表示所有项的集合, 例如对于:

1) ∀pk∈PK, ∃f ∈MP ∪ D∪ O pk⊂f

2) ID=Ik[D], k =PVa∪PKa

使用上述的程序分析方法和串空间分析方法, 我们对上述的情况进行建模。我们的主要定理表明:只要串空间模型满足下列条件, 那么一个把EKE协议作为主要协议的混合协议环境在遭受到猜测攻击的时候仍然是安全的。

定理1 Σ代表一个混合的串空间, EKE协议代表混合协议环境中的主串, C代表Σ中的一个丛。如果下列条件满足, 那么在丛C中就不会遭受到猜测攻击:

1) pka在Σ中是不被服务的;

2) ID 在Σ中是肯定不被服务的。

证明:我们先来做一个分析。首先, 通过观察我们知道, 使用集合V或C来做验证如果能成功的话, 那么一个猜测攻击就是可行的。因此, 我们使用上述的条件考虑这些集合以证明这套在上述条件满足的情况下永远是NULL的情况。

1) pka是不被服务的。从第五步来看, 如果 (D∪MP∪KP) ∩O≠ϕ, 那么验证任何g∈G是可能的。在这种情况下, 通过我们的分析可知, 当且仅当pka=pk′a的时候 (D∪MP∪KP) ∩O= (pka) 。然而, 根据定理1的条件, pka在串空间模型Σ中是不被服务的, 例如:如果pka源于 (=Σinit∪Σresp) , 那么对于任意的pk′a源于ΣΣP, 并且pka≠pk′a, 因此, (D∪MP∪KP) ∩O≠ϕ。

2) 为了做验证, 再注意到因为O={pka, {k}pka}, 并且k∉ (D∪MP∪KP) , 我们必须保证pka是可验证的。这一分析过程表明pka在攻击者串P中是不可验证的。第一部分的内容表明如果在串空间Σ中pka是不被服务的, 那么在串空间Σ中pka是不可验证的。如果用pka或者pka-1加密的f∈ΣΣP是可验证的, 那么一个验证是可行的。然而, 矛盾的是:条件2要求ID在串空间Σ中是肯定不被服务的。否则也就不会有源于次要串的项。因此, 只要该条件成立那么一个验证尝试是不可行的[9], 从而保证了混合协议的健壮性要求。

3结论及下一步计划

在这篇文章中, 我们介绍了一种新型的攻击称为基于低熵密码的多协议猜测攻击。我们使用一种系统化的程序分析方法分析了多协议的脆弱性。接下来我们使用串空间模型的方法证明了只要在我们分析出的条件满足的情况下, 那么一个协议就不会遭受到多协议猜测攻击。此时, 有一些点值得提一下:当我们仅仅考虑攻击者的知识能力, 或者仅仅考虑固定攻击者的能力的时候, 我们的协议分析方法相对来说更健壮。我们分析方法的独特性在于当一个协议在一个混合的环境中运行的时候它允许存在脆弱性, 但是根据我们限定的条件, 它禁止再出现其它新的脆弱性, 那么我们去更具体地设计一个协议是可能的。

这项工作的下一步计划是自动化程序, 我们已用来探测可能的猜测攻击。另外一个可能的计划是找到一个普遍的实用性的技术去阻止多协议猜测攻击。

摘要:对安全协议进行猜测攻击, 如果攻击者不能正确猜测用户秘密, 那么他就会设法使用其他的信息来验证这种猜测。过去仅考虑了协议在独立执行的时候所遭受到的攻击。现引入一种新类型攻击称为多协议猜测攻击, 它可以存在于混合协议中。接着, 采用程序化分析方法对协议可能遭受到的猜测攻击进行了分析即协议的脆弱性分析。最后, 加入一定的限制条件并使用串空间建模, 进而保证了协议的安全性即协议的健壮性验证。

关键词:多协议猜测攻击,串空间,程序化分析,形式化分析

参考文献

[1]Li Gong, T Mark A Lomas, Roger M Needham, et al.Protecting poorlychosen secrets from guessing attacks.IEEE Journal on Selected Areasin Communications, 1993, 11 (5) :648-656.

[2]Thayer F′abrega F J, Herzog J C, Guttman J D.Why is a security protocolcorrect?IEEE Computer Symposium on Security and Privacy, 1998.

[3]Thayer F′abrega F J, Herzog J C, Guttman J D.Strand spaces:Provingsecurity protocols correct.Journal of Computer Security, 1999, 7 (2/3) :191-230.

[4]Javier Thayer F′abrega, Jonathan F, Herzog C, et al.Mixed StrandSpaces.In Proceedings of the 12th IEEE Computer Security Founda-tions Workshop, volume 27 (2) .IEEE Computer Society Press, June1999:10-14.

[5]Alves-Foss J.Multi-Protocol Attacks and the Public Key Infrastructure.In proc.National Information System Security Conference, October1998:566-576.

[6]Alves-Foss J.Cryptograpyhic Protocol Engineering:Building Securityfrom the Ground Up.In Proceedings of International Conference on In-ternet Computing, June 2000.

[7]Bellovin S M, Merritt M.Encrypted key exchange:Password-based pro-tocols secure against dictionary attacks.In Proceedings of the 1992IEEE Computer Security Conference on Research in Privacy, 1992:72-84.

[8]Gavin Lowe.Analyzing protocols subject to guessing attacks.Workshopon Issues in the Theory of Security (WITS’02) , January 2002.

[9]Joshua D, Guttman, Javier F.Thayer.Protocol Independence through Dis-joint Encryption.13th IEEE Computer Security Foundations Workshop, 2000:24-34.

攻击安全协议 篇6

1.1 ARP协议原理

随着计算机的发展,人们的生活和工作越来越依赖于计算机网络,相应的网络安全问题也越发引起人们的关注。而在局域网安全中,针对ARP协议的攻击是一个相当重要的内容,因此,对ARP协议进行分析和改进具有相当重要的意义。

ARP协议,全称为地址解析协议(Address Resolution Protocol)。通过遵循该协议,只要知道了某台机器的IP地址,即可以知道其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。

如图1所示,假设主机A和主机B通信,但是A不知道B的MAC地址。首先A会发出一个ARP请求的广播报文,寻找主机B的IP对应的MAC地址是多少。局域网里的主机都会受到ARP请求报文,并查看自己的IP是否是B的IP,如是则响应,返回ARP应答报文,报文中包含有主机B的MAC地址。

1.2 ARP协议的漏洞

通过分析ARP工作原理,可以发现局域网中的主机在发ARP响应时,不需要一定要先收到ARP请求报文,而且局域网中任意主机都可以向其它主机通告自己的IP地址和MAC地址的对应关系,因此,ARP具有广播性、无连接性、无序性、无认证字段、无关性和动态性等安全漏洞,这就给攻击者带来可乘之机。

2 ARP攻击

ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。常见的攻击方式有:中间人攻击、拒绝服务式攻击和克隆攻击。

2.1 中间人攻击

所谓中间人攻击是指攻击者插入通信双方的连接中,截获并转发双方的数据包的行为。通过这种行为,攻击者可以探测到机密的信息,甚至篡改信息的内容。假设主机A与主机B进行通信,攻击主机C分别向A和B发送伪造的ARP应答报文。其中,发给A的ARP应答报文的地址对应关系是“MAC C-IP B”,而给B的报文中地址对应关系为“MAC C-IP A”。这样A和B的通信变成了A和C、C和B通信。从而攻击主机C以“中间人”的身份,成功地监听了主机A和主机B的数据通信。

如果攻击者对一个目标主机与他所在局域网的路由器实施中间人攻击,那么攻击者就可以截取Internet与这个目标主机之间的全部通信。

2.2 拒绝服务式攻击

所谓拒绝服务式攻击是指使目标主机不能响应外界请求,从而不能对外提供服务的攻击方法。攻击者不断向目标主机发送带有错误MAC地址的ARP包,将目标主机的ARP缓存中的MAC地址全部改为根本不存在的MAC地址,使得目标主机向外发送的所有以太网数据帧会丢失,这样上层应用将忙于处理这种异常而无法响应外来请求,从而导致目标主机产生拒绝服务。这种攻击方式同样对交换机适用,使其无法正常转发数据包。

2.3 克隆攻击

攻击者首先要对目标主机实施拒绝服务式攻击,使其不能对外界作出反应,而后将自己的IP地址和MAC地址修改成目标主机的IP地址和MAC地址,这样,攻击者的主机就变成了与目标主机一样的“克隆”。

3 ARP攻击防范方法

由于ARP欺骗是基于网络协议自身缺陷而产生的,因此,最根本的解决办法就是从协议本身出发,通过对协议运行机制的改进,弥补协议的漏洞。

针对ARP协议的漏洞和当前常见的ARP攻击,设计了一种算法,对ARP协议进行改进,能够有效的防御现在常见的ARP攻击,并具有一定的检测功能。

3.1 防御算法的主要思路

首先,规定接受ARP报文的顺序是先发送请求后接受应答,拒绝无请求型应答。

其次,规定在接收到主动ARP请求报文时,发送ARP应答报文的同时还要向源主机发送被动ARP请求报文。这样源主机就可以对目标主机的IP地址和MAC地址进行认证检测,拒绝未通过检测的报文。

最后,及时预警,一旦认证中出现异常,即发出ARP攻击警报。

3.2 防御算法的详细设计

(1)该算法首先需要建立两个表:

①处理列表。该列表创建于源主机中,用于记录发出的主动ARP请求。

②IP地址和MAC地址映射表。该表创建于源主机中,用于记录目标主机的MAC地址和IP地址。

(2)该算法需要对ARP请求包进行修改,在原有的基础上增加一个标示符,用于表明该ARP请求包是主动请求还是被动请求。

(3)该算法主要由三个模块组成:ARP请求发送模块、ARP请求接收模块和ARP应答接收模块。

①ARP请求发送处理模块流程如图2所示。

该模块主要用于发送主动ARP请求和被动ARP请求,并建立处理列表。

②ARP请求接收处理模块流程如图3所示。

该模块用于处理接收到的ARP请求,并对异常情况进行报警。

③ARP应答接收模块处理过程如图4所示。

该模块用于处理接收到的ARP应答,并对异常情况进行报警。

这个算法主要考虑的是安全性,因此引入了复杂的处理过程,例如,原ARP协议收到应答即更新ARP缓存,而更改后的协议需要验证是否是对本机ARP请求的应答,并且需要在收到ARP主动请求后还要发送ARP被动请求用于认证身份等。这些处理过程的引进,必然使得协议的执行效率受到影响,因此,本算法的应用,需要综合考虑安全和效率两个方面。

4 结束语

ARP协议被广泛应用于基于TCP/IP的网络中,但是因协议本身存在安全漏洞,ARP攻击会给网络运行和网络用户带来严重的安全隐患。通过剖析ARP协议的漏洞、ARP攻击原理及主要方式,针对性地对协议进行改进,从而从根本上解决了ARP攻击问题。由于引入了复杂的处理过程,这种改进协议的执行效率有所降低,但是鉴于这种改进协议的高安全性,对于一些安全性要求比较高的网络,具有一定的实用价值。

参考文献

[1]Stevens W R.TCP/IP Illustrated Volume 1:The Protocols[M].北京:机械工业出版社,2000.

[2]Bronson J.Protecting Your Network from ARP Spoofing-Based At-tacks.http://www.foundstone.com2004.

[3]TanenbaumAS.Computer Networks[M].3rd ed.北京:清华大学出版社,2001.

[4]王奇.以太网中ARP欺骗原理与解决办法[J].网络安全技术与应用,2007.

[5]赵均,陈克非.ARP协议安全漏洞分析及其防御方法[J].信息安全与通信保密,2006(8):72-77.

攻击安全协议 篇7

灰洞攻击或选择性黑洞攻击是特殊类型的黑洞攻击, 容易在反应式路由协议如DSR和AODV上形成。黑洞攻击中, 恶意节点谎称自己拥有到目的节点的最短路由, 吸引周边节点通过它转发数据包。而灰洞攻击中, 恶意节点能正常参与寻找和建立路由的过程, 然而, 恶意节点一旦被选择为路由中的转发节点, 在转发过程中, 它们将会选择性丢弃数据包。正是因为它们仅丢弃部分数据包, 所以灰洞攻击比黑洞攻击更难检测。

灰洞攻击对反应式路由协议造成严重威胁, 为此, 学者提出了多种安全路由协议来缓解单一或协作式灰洞攻击。文献[2]提出一种方案, 在转发路由上随机选择部分中间节点作为检查节点, 负责对每个接收到的数据包进行确认, 如果检测到可疑行为, 将产生报警数据包并发送到源节点。然而, 此算法对网络流量的消耗很大。文献[3]提出一种检测并隔离灰洞节点的方法, 将数据转发部分涉及的所有节点创建一个接收数据包证明, 当源节点怀疑某些节点有恶意行为时, 启动检查算法验证中间节点。文献[4]提出一种方案, 源节点在发送任意数据块之前, 会发送消息给目的节点来提醒它, 传输结束后, 目的节点将接收到的数据包回发给源节点, 如果数据丢失超出容许范围, 则通过聚合网络中源路由邻居节点的响应检测并移除所有恶意节点。但是, 这种方法使源路由节点周围的所有节点形成混乱模式, 即使没有攻击时, 也会造成各个节点的能量损失。文献[5]提出一种基于信任的方法, 改进了MANETs的搜索性能和可靠性, 其中节点基于信任关系紧密连接, 通过任意两个节点之间的合作来计算信任值。文献[6]提出了一种抵抗黑洞机制 (ABM) , ABM根据节点传输的路由请求 (RREQ) 和路由应答 (RREP) 之间的异常差值评估节点的可疑性。这种方法中如果一个节点发送了RREP但是没有转发对应的RREQ包, 则怀疑它们是恶意节点, 如果可疑值超过阈值, 则隔离它们。但是灰洞节点能正常参与路由建立过程, 能够转发RREQ包到任意目的节点, 所以这种方法不能检测灰洞节点。文献[7]提出一种上下文自适应入侵检测系统 (intrusion detection system, IDS) , 能够使给定节点动态适应环境, 如剩余能量、潜在安全威胁和能量负载, 协调并检查接收的数据包, 然而, 这种入侵检测系统不能有效处理灰洞攻击。

现提出一种非加密的改进动态源路由协议 (MDSR) , 通过监控和分析无线节点的转发行为来检测灰洞攻击。目的节点依据源节点发送的数据包数目和它实际接收到的数据包数目的显著差异, 来检测路由中灰洞攻击的存在性, 然后将可疑节点信息发送给IDS节点, IDS节点会在网络中对发起灰洞攻击的恶意节点进行隔离。动态源路由 (DSR) 协议是最常用的反应式路由协议[1], 本文是对DSR协议的改进, 并在MANETs上评估提出方法的有效性。

1 动态源路由协议

动态源路由 (dynamic source routing, DSR) [8]有两个主要功能:路由发现和路由维护[8]。路由发现:通过广播路由请求 (RREQ) 来发现和建立路由。源节点广播一个RREQ数据包, 当目的节点, 或某个中间节点且该节点具有到达目的节点的路由信息, 接收到RREQ数据包后, 会发送一个包含完整路由信息的路由应答 (RREP) 数据包给源节点, 源节点会根据接收到的完整路由信息建立路由。路由维护:当数据包转发过程中的中间节点和邻居节点的距离超出传输范围时, 则会导致链路中断, 此时, 它会发回一个路由错误 (RERR) 信息给源节点, 源节点将会尝试启用另一条可用路由或者重新寻找和建立路由。

2 改进方案提出

IDS模型建立环境假设如下: (1) 所有节点具有相同物理特性, 如果节点A在节点B的传输范围内, 则节点B也在节点A的传输范围内; (2) 所有节点都是被授权的节点; (3) 源节点、目的节点和IDS节点默认为信任节点; (4) 仅当需要时设置所有IDS节点为混杂模式, IDS节点周边总有一个其他IDS节点作为邻居; (5) 由于从源节点到目的节点有多个路由, 所以源节点须缓存其他路由信息, 缓解新路由发现过程中的能量消耗。

2.1 协议描述

根据DSR协议, 源节点必须广播RREQ包来寻找到达目的节点的路由, 所请求目的节点或任何拥有路由的中间节点接收到RREQ包后将发送应答给源节点[9]。如图1 (a) 所示, 具有灰洞攻击能力的恶意节点能正常参与路由的建立过程, 它们像其它正常DSR节点一样转发RREQ包, 当源节点选择了经过这个恶意节点到达目的节点的路由时, 它将会选择性的丢弃数据包[10], 如图1 (b) 所示。为了缓解灰洞攻击, 当目的节点从源节点接收到数据包时, 将会检测路由中灰洞节点存在可能性。当源节点需发送数据包到目的节点时, 将会把要传输的数据划分成多个子块, 一次发送一个数据块到目的节点, 且在实际传输数据之前使用不同路由 (到达目的节点的第二最短路由) 发送一个块中数据包的数目信息到目的节点。

设定源节点S发送给目的节点D的一个数据块的数据包数目为Ns, 令节点a0, a1, a2, a3, …, an表示源节点S到目的节点D之间的数据转发路由, 路由上的任意节点ai必须将它转发到下一个节点ai+1的数据包数目计数, 即NFPai, ai+1。当目的节点接收来自源节点的数据包时, 对块中接收到的数据包数目计数。令ND为目的节点接收到的数据包, 则目的节点接收到的数据包概率计算如下。

如果PD>TPL, 则目的节点检测路由上是否存在任意恶意节点, 如果不存在, 则目的节点发回确认信息给源节点[11]。这里TPL是数据包丢失阈值, 其值范围在0~0.2。本文方法中, 当数据包丢失超过源节点发送的总数据包的20%时, 目的节点启动灰洞检测过程。仅当源节点接收到从目的节点发回的肯定回复或从邻居IDS节点接收到ALARM数据包之后, 源节点才开始转发数据的下一个子块。程序1表明了数据包转发和接收过程。

2.2 灰洞攻击检测过程

当目的节点发现它从前一个节点接收到的实际数据包数目显著低于源节点发送的数据包数目时, 将会启动灰洞节点检测过程[12]。首先目的节点发送查询请求 (QREQ) 数据包到源路由 (数据转发路由) 上距它两跳距离的节点, 如果S, a0, a1, a2, a3, …, an-3, an-2, an-1, an, D代表源路由, 则节点D发送QREQ包到距节点D两跳距离的节点an-1。QREQ用于查询节点转发到其下一跳节点的数据包数目, 节点an-1发回查询应答 (QREP) 包到目的节点D, QREP包含了节点转发到其源路由上下一跳邻居上的数据包数目信息。根据接收的QREP, 目的节点验证是否它的前一跳邻居 (节点an) 正确转发了其从前一跳节点 (an-1节点) 接收到的所有数据包, 如果不正确, 目的节点将移动节点an-1和an到可疑列表, 如果正确, 则说明这两个节点正确转发了数据。然后, 目的节点再次发送新QREQ到源路由上距an-1节点两跳的节点an-3, 根据接收到的QREP, 以同样的方法, 目的节点判断这两个节点an-3和an-2是否正确转发了它们接收到的所有数据包。这个过程持续到在源路由上不存在距其两跳距离的那个节点为止。检测过程如程序2所示。

目的节点根据QREP包对源路由上中间节点数据转发行为进行第一级检测, 如果任意两个中间节点之间转发的数据包数差超过监测阈值, 则目的节点同时标记这两个中间节点为可疑节点。任意两个节点之间可疑行为的概率Pmb计算如下。

式 (2) 中NFPan-2, an-1指的是节点an-2转发到节点an-1的数据包数目, 如果Pmb>Tm, 则节点an-2或者an-1为恶意节点, Tm是监测阈值, 其值范围在0~0.2。

图2 (a) 中, 节点1转发一个数据块到目的节点8之后, 目的节点验证它实际接收的数据包数目, 这里节点1在开始实际数据包传输过程之前提示它在一个块中转发到目的节点的数据包数, 若节点8接收到的数据包明显低于源节点所发总数, 则节点8启动检测过程。

如图2 (a) 所示, 目的节点发送QREQ包到距目的节点两跳距离的节点GN, 恶意节点GN可能会谎报它转发到下一个节点的真实数据包数目信息[13]。例如, 如果源节点发送100个数据包到节点GN用于转发, 节点GN选择性丢弃了30个数据包并转发了剩余数据包, 它可能在QREP中谎报它转发到目的节点的真实数据包数目。在这种情况下, 源节点将会指定节点GN的前一跳节点接收的数据包数目100, 节点GN发回包含它转发到下一个节点的数据包数目的QREP, 当目的节点接收到QREP, 验证它从前一跳节点接收到的数据包数目是否为QREP中指定的数目, 如果目的节点从节点7接收到的实际数据包数目为70, 与指定的数目不同, 则目的节点会同时怀疑节点7和GN, 将他们移到其可疑列表。

图2 (b) 中, 节点1和节点6分别为源和目的节点。例如, 如果源节点发送100个数据包, 如果目的节点仅接收到其中的60个数据包, 则目的节点发送QREQ包到节点4, 节点4回复包含其转发到下一个节点5的数据包数目的QREP包, 节点5接收到QREP, 转发它到目的节点6, 节点6验证它从节点5接收到的数据包数目是否与QREP中的数目相同。但是根据QREP包, 目的节点发现节点4转发了源节点发送的100个数据包中的60个数据包, 因此它将节点4移动到可疑节点列表。然后目的节点再发送QREQ包到距节点4两跳距离的节点2, 节点2发回包含它转发到下一个节点GN的数据包数目的QREP, 节点GN接收到QREP并转发它到目的节点。恶意节点GN不能修改QREP包, 因为消息与一个消息认证码 (MAC) 相连, 它会产生节点的私钥 (节点2) 和一个临时随机数, 防止被篡改。如果目的节点根据接收QREP包得知节点2发送到节点GN的数目为100, 而节点4实际转发了60个数据包, 因此可能是节点2或节点GN丢弃了数据包, 所以目的节点也将节点2和节点GN移动到可疑列表。

2.3 入侵检测

目的节点将可疑节点请求 (MNREQ) 包发给其附近IDS节点, IDS节点转发MNREQ包到所有IDS节点, 以此公告在源路由中的可疑节点信息。当所有IDS节点接收到MNREQ后, 源节点邻近的IDS节点发送报警 (ALARM) 包到源节点, 提示源节点注意路由上存在的攻击者并让其发送下一个数据块。

源节点发送下一个数据块时, 与可疑节点相邻的IDS节点会转成混杂模式, 监听可疑节点是否转发和丢弃数据包, 如果发现可疑节点故意丢弃数据包, 则移动它到恶意节点列表, 然后通过IDS节点发送阻塞消息给所有附近节点, 接收到阻塞消息的IDS节点将广播给其邻近节点。阻塞消息只能通过IDS节点转发到网络, 任意接收到阻塞消息的正常节点将获知恶意节点信息。一旦确定了恶意节点, 所有节点将从它们路由中移除涉及恶意节点的任何路由信息, 不再接收恶意节点的RREP包。

3 实验

利用Glomosim仿真工具来评估提出方法对检测和隔离灰洞节点的有效性, 在1 000 m×1 000 m区域内, 随机分布50个正常节点执行MDSR路由协议, 随机定位一组恶意节点选择性执行灰洞攻击, 固定分布多个IDS节点[14]。随机选择20对节点用于数据通信, 每组发送5 kb UDP-CBR/s。以随机点模型方式移动所有正常节点, 移动速度范围在0~20m/s。此外, 设定正常节点的四类暂停时间:0 s、5s、10 s和15 s, 暂停时间指的是可移动节点能在一个位置上维持不动的时间。例如, 在暂停时间为0的情况下, 则表示所有节点连续移动, 没有任何停留, 暂停时间表示网络拓扑变化的频率。Glomsim实验的主要参数列于表1, 所有实验数据是10个实验结果的平均值。

将本文方法与文献[7]提出的现有方法进行了比较, 文献[7]中源节点以数据块方式发送数据, 通过源路由的邻近节点实现检测, 而且没有采用加密方法, 与本文方法相似。

利用下列指标来评估方法的性能[15]。

(1) 丢包率:恶意节点丢弃或由于阻塞损失的数据包总数与发送数据包总数的比率。

(2) 流量消耗 (bit/s) :为了检测和处理恶意节点而消耗的流量。

(3) 端到端传输延迟 (s) :指的是源节点发送一个比特数据与目的节点接收到这个比特数据的时间间隔。

3.1 丢包率

图3显示了各种协议在存在灰洞节点网络中的丢包率。在有攻击情况下DSR的丢包率约为75%, 而MDSR的丢包率约为11%, 减少了64%, 文献[7]方法的丢包率约为15%, 相比本文方法MDSR增加了4%。

3.2 流量消耗

图4显示了存在灰洞节点时各种协议产生的路由消耗。MDSR的路由流量消耗较高, 是因为检测攻击时需要传输QREQ、QREP、MNREQ和ALARM包。MDSR的控制包流量消耗率近似50%, 相比与DSR高了8%。然而, 文献[7]的控制包流量消耗率约58%, 相比与本文方法高了8%。

3.3 端到端传输延迟

本文方法中源节点发送数据包到目的节点的端到端延迟优于文献[7]的方法, 如图5所示。如果源路由中没有任何恶意节点, 则转发数据包的端到端延迟最小, 因为检查是否存在攻击者不影响数据传输时间。当源路由包含灰洞节点, 通过源路由中某些中间节点合作就可以定位它们, 能够快速检测并隔离攻击者。因此本文方法即使在存在攻击者情况下, 转发数据包的端到端延迟也较少。

3.4 不同IDS节点下数据包传输率

图6显示了存在5个灰洞节点时本文方法的数据包传输率, 首先获得覆盖整个网络区域的9个IDS节点的数据包传输率, 然后将IDS节点数减少到4, 使它不足以覆盖整个网络区域, 随着IDS节点数的减少, 一些灰洞节点不能被有效的检测出来, 这导致了较低的数据包传输率。

3.5 比较及分析

为了更好地评估本文方法, 将其与其他几种灰洞攻击方法进行三方面的比较, 包括丢包率、控制包额外流量消耗率及端到端时延, 比较方法包括文献[2, 4, 6, 7]提出的方法, 针对各个方法, 自己进行了实验, 利用Glomosim仿真工具, Glomosim参数设置参照表1, 节点移动速度取0、5 m/s、10 m/s、15m/s、20 m/s, 结果取平均值, IDS节点数设置为9, 各方法的参数设置分别参照各自所在文献, 实验结果见表2。

从表2可以看出, 本文方法的丢包率明显低于其他几种方法, 其中, 低于文献[4]方法近5%, 这是因为MDSR协议中, 目的节点在源路由上一些中间节点的帮助下, 利用QREQ和QREP包来启动灰洞检测, 首先定位可疑的攻击者节点, IDS节点仅对可疑节点进行监控, 因此能够快速的隔离攻击者, 显著减少了丢包率。

在端到端时延方面, 本文方法也明显低于其他几种方法, 这是因为该方法仅当源路由中存在恶意节点时才启动灰洞处理过程, 因此, 相比其它几种方法, 可以节省更多的时间, 效率更高。

在额外流量消耗方面, 本文方法高于文献[4]和文献[6]方法, 主要由于检测攻击时需要传输QREQ、QREP、MNREQ和ALARM包, 耗费了一定的网络流量, 然而, 该方法的流量消耗低于文献[2]和文献[7]方法, 其中, 比文献[2]方法低出了10.3%。

综上可知, 虽然本文方法在额外流量消耗方面略高于文献[4]和文献[6]提出的方法, 但是在丢包率及端到端时延方面均未最低, 由此可见该方法的优越性。

4 结论

提出一种改进DSR协议来检测MANET中灰洞节点, 目的节点检测源路由中恶意节点, 利用入侵检测系统从网络中隔离恶意节点。其中IDS节点仅在有可疑节点时转成混杂模式, 减少了能量损耗。仿真结果表明本文提出的方法在存在多个灰洞节点的网络中, 相比于其他方法具有丢包率低、流量消耗少且传输延时时间短等优势。

未来会将本文方法应用于其他的灰洞攻击环境, 改变初始参数设置, 进行大量实验, 进一步降低丢包率、流量消耗及传输时延。

摘要:针对移动自组网络易遭受灰洞攻击的问题, 提出一种改进动态源路由协议来检测和缓解灰洞攻击。首先, 建立一种入侵检测系统 (IDS) , IDS节点仅当检测到灰洞节点时才设置为混杂模式;然后, 通过检测节点转发数据包数目的异常差来检测恶意节点, 当检测到异常时, 附近的IDS节点广播阻塞消息, 通知网络上的节点共同隔离恶意节点;最后, 利用Glomosim工具进行的仿真实验验证了所提方法的有效性, 该方法的平均丢包率仅为12.5%, 端到端传输延时仅为0.116 s, 比较表明, 所提方法优于其他几种现有灰洞攻击检测方法。

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:塔机安全协议 下一篇:保密安全协议