论文部分内容阅读
摘 要:中间人攻击是网络攻击的重要手段之一,而利用ARP欺骗是比较容易实施此类攻击的。文章对基于ARP欺骗的中间人攻击进行了分析,根据ARP本身的缺陷,即完全相信所有消息,对消息不加以任何认证的特点,提出了一种利用非对称加密来抵御中间人攻击的方法,并重点描述了消息认证的过程和密钥的生成及管理。
关键词:ARP协议;ARP欺骗;中间人攻击;非对称加密
0 引言
中间人攻击m在网络安全领域是一个比较典型的主动攻击方式。在网络交易逐渐增多的时代,中间人攻击越来越受到更多的关注。在中间人攻击中,攻击者相当于会话双方之间—个透明的代理,能改变正常的通讯流,从而得到一切想知道的信息。
1 基于ARP欺骗技术的中间人攻击
1.1 ARP工作原理
ARP(Address Resolution Protocol,即地址解析协议)是常用的TCP/IP底层协议,用来实现IP地址与本地网络认知的物理地址(以太网MAC地址)之间的映射。以太网中的ARP报文格式如表1所示:
表1 ARP报文格式
在—个TCP/IP网络中,从一台主机A发送数据给另一台主机B时,必须把信息分割、封装成包,并附上目的主机B的IP地址与MAC地址。然而,当这两台主机第一次通信时,源主机A不一定知道目的主机B的MAC地址,根据ARP协议,A就要发送一个ARP请求,以寻找IP地址到实际MAC地址的映射。而B在收到这个包含其IP地址的请求后,就会返回A一个ARP响应,告知A其MAC地址。最后,协议栈将IP包封装到以太网帧中进行传送。
为了避免不必要的ARP报文查询,每台主机的操作系统都维护着一个ARP高速缓存ARP Cache,记录着同一链路上其它主机的IP地址到MAC地址的映射关系。ARP高速缓存通常是动态的,由系统在一定的时间间隔后进行刷新,并可以手工添加静态条目。为节省ARP缓冲区的内存,被解析过的ARP条目的寿命都是有限的,如果一段时间内该条目没有被引用过,则条目被自动删除。一般,在工作站PC的Windows环境中,ARP条目的寿命是2分钟;在大部分Cisco交换机中,该值是5分钟。
1.2 ARP欺骗原理
ARP协议虽然是一个高效的数据链路层协议,但同时也是一个“无状态”协议,存在着以下一些缺陷:ARP协议没有连接的概念,任意主机即使在没有ARP请求的时候也可以做出应答,这就导致了任何主机都可以向被攻击者发送假冒的ARP应答包;ARP协议没有认证机制,对数据的发送及接收方都不做任何认证,只要接收到的协议包是有效的,主机就无条件地根据协议包的内容刷新本机APE缓存。因此攻击者可以随时发送虚假ARP包更新被攻击主机上的AR.P缓存,进行地址欺骗或拒绝服务攻击。
ARP欺骗的核心就是向被攻击者发送伪造的IP—MAC映射。假设主机c为实施ARP欺骗的攻击者,其目的是截获主机B和主机A之间的通信数据,且主机C在实施ARP欺骗前已知道A和B的IP地址。这时c先发送ARP包获得主机B的MAC地址,然后向B发送ARP应答包,其中源IP地址为A的IP地址,但是源MAC地址却是主机c的MAC地址。主机B收到该ARP应答后,将根据新的IP地址与MAC映射对更新ARP缓存。这以后当B给A发送数据包时,目标MAC地址将使用C的MAC地址,因此交换机根据C的MAC地址就将数据包转发到攻击者c所在的端口。同理,攻击者C发送ARP应答使主机A确信主机B的MAC地址为c的MAC地址。在间歇的发送虚假ARP应答的同时,攻击者c打开本地主机的路由功能,将被劫持的数据包转发到正确的目的主机,这时攻击者对主机A和B来说是完全透明的,通信不会出现异常,但实际上数据包却被C非法截获,攻击者C成为了“中间人”。
1.3现有的解决方法及分析
目前,针对ARP欺骗的抵御可以采用静态ARP表,即在目标主机的ARP缓存中设置静态地址映射记录。这些记录不会被动态更新,只能由管理员手工更改,但其缺点是若改变了网内主机的IP,就需要重新设置ARP缓存,因此需要管理员付出大量的工作来维持记录的及时更新,所以应用不广。另外,对于Windows操作系统,即使设置了ARP静态缓存,在收到ARP应答时,系统也会更新缓存。
可以对网络中的ARP报文进行被动检测或主动发送ARP查询报文,当发现一个IP地址对应两个MAC地址时,就存在欺骗攻击的可能性。但是,这种检测方式检测出的异常情况很多时候是非恶意的操作失误,如用户错配了IP地址。
2 采用非对称加密抵御基于ARP欺骗的中间人攻击
产生ARP欺骗的主要原因是ARP是建立在一个可信的网络基础之上的,接收方对ARP应答的内容总是无条件地信任。因此我们可以采用非对称加密来验证ARP应答的真实性和完整性,以抵御ARP欺骗。
2.1 方法概述
利用非对称加密来验证ARP应答消息的真实性和完整性,就必须要求每台主机有自己的一个公钥/私钥对。同时,因为在一个网络中,每台机器的IP地址是惟一的,因此可用IP地址来惟一标识网络中的每台主机。另外,在每个子网中,有一台可信任的主机来存储该网络中所有主机的IP地址、MAC地址和公钥/私钥对。在解析地址的过程中,每台主机所发送的reply应答包都由主机的私钥加密,接收方收到应答包后,再用发送方的公钥解密,以保证信息不被攻击者恶意利用。
为了避免重放攻击,可信任主机上还会发布时间值,要求网络内的所有主机保持同步。若没有时间戳,攻击者在截获一个Reply,得到被攻击者的IP和MAC后,会等待到被冒充主机离线以后再向被攻击者重放所存储的Reply包。在主机不能完全同步的情况下,管理员可以根据本地网络的情况设置一个时间差,以避免重放攻击。
2.2密钥的生成与管理
上述方法中,主机密钥是和IP地址绑定的,而且,主机密钥的分发和管理均由可信任主机来实施。姑且称这台可信任主机为密钥分发主机KA(Key Administrator)。我们所要做的第一步就是选择一台主机作为KA,并通过安全的渠道将KA的公钥和MAC地址发布给子网中的每一台主机。为保证信息发布的安全性,这些操作可能需要手工执行。当一台主机H要加入到一个网络中时,管理员首先手工给这台主机分发KA的公钥以及MAC地址。这些操作只在主机第一次加入的时候需要。
当主机H拥有了KA的公钥以及MAC地址后,H利用非对称加密算法,如DSA等,生成自身的公钥,并将其公钥以及lP地址经KA的公钥签名后发送给KA。然后,由管理员来确认信息的可靠性,一旦确认,便将H的公钥与IP地址存放到KA的库中。这样,KA便拥有了H的公钥,因此,以后H与KA的 通信可以用H自身的私钥来加密。
如果主机H要更新自己的密钥,它可以用旧的私钥加密包含新的密钥信息的消息,并将消息发送给KA。KA确认后,自动更新本地数据库中的密钥信息。
2.3应答消息的认证过程
消息的认证过程如图1所示:
当两台主机进行通信时,所发送的Reply应答包都是用自身的私钥加密的。当一台主机H1收到主机H2发送的一个Reply应答时,因为H1已知发送方H2的IP地址,就会查看本地是否保存有与此IP地址相对应的公钥。这些IP/Public Key对都是先前由主机向KA请求得到的。若在本地找到了与之对应的公钥,则用公钥解密Reply;若未找到,主机Hl则向KA发送请求,请求主机H2的公钥。同样,如果本地保存的公钥错误或过期而不能解密Reply时,也向KA发送请求。KA收到请求以后,将包含有H2的公钥的消息用自身的公钥加密发送给H1,一起发送的还有KA本地的时间值。H1收到KA发送的加密数据包后,会用KA的公钥解密,得到H2的公钥,用H2的公钥解密Reply包,并将H2的公钥存储在本地。若H1接收的公钥仍然无法解密Reply包,则在规定的时间间隔内,H1不断地向KA发送请求,直至超时,或者解密成功。若请求最终超时,该Reply包将被丢弃。
图1消息认证的过程
2.4方法的缺陷
所述方法存在的主要缺陷就是整个网络的安全都依赖于可信任主机的安全,一旦可信任主机被攻击,攻击者获得了整个网络中所有主机的IP和公钥,就可以随意地实施攻击。因此如何保障可信任主机的安全是这个方法的关键,还有待考虑。
另外,在消息传输的过程中,要进行加密解密操作,必然会导致网络的传输有一定的延时,因此合理选择加解密算法也是该方法的关键。
3 结束语
在IP网络中,ARP实现了IP地址到MAC地址的转换,是不可缺少的一个网络协议。但是ARP本身的缺陷,如缺少消息的认证,导致一个网络内的任意一台主机都可以发送伪造的消息而去冒充其它的主机,从而引发了一系列的安全问题,如中间人攻击,拒绝服务攻击DoS等。本文提出了一种基于非对称加密的方法,可以有效地抵御基于ARP欺骗的中间人攻击。在这种方法下,就算主机间的通话被偷听或者劫持,但攻击者无法对通话进行解密,也就无法实施中间人攻击。
当然利用ARP欺骗也可以很好地服务于网络的管理,如利用网络上未用的IP来诱骗攻击者等。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:ARP协议;ARP欺骗;中间人攻击;非对称加密
0 引言
中间人攻击m在网络安全领域是一个比较典型的主动攻击方式。在网络交易逐渐增多的时代,中间人攻击越来越受到更多的关注。在中间人攻击中,攻击者相当于会话双方之间—个透明的代理,能改变正常的通讯流,从而得到一切想知道的信息。
1 基于ARP欺骗技术的中间人攻击
1.1 ARP工作原理
ARP(Address Resolution Protocol,即地址解析协议)是常用的TCP/IP底层协议,用来实现IP地址与本地网络认知的物理地址(以太网MAC地址)之间的映射。以太网中的ARP报文格式如表1所示:
表1 ARP报文格式
在—个TCP/IP网络中,从一台主机A发送数据给另一台主机B时,必须把信息分割、封装成包,并附上目的主机B的IP地址与MAC地址。然而,当这两台主机第一次通信时,源主机A不一定知道目的主机B的MAC地址,根据ARP协议,A就要发送一个ARP请求,以寻找IP地址到实际MAC地址的映射。而B在收到这个包含其IP地址的请求后,就会返回A一个ARP响应,告知A其MAC地址。最后,协议栈将IP包封装到以太网帧中进行传送。
为了避免不必要的ARP报文查询,每台主机的操作系统都维护着一个ARP高速缓存ARP Cache,记录着同一链路上其它主机的IP地址到MAC地址的映射关系。ARP高速缓存通常是动态的,由系统在一定的时间间隔后进行刷新,并可以手工添加静态条目。为节省ARP缓冲区的内存,被解析过的ARP条目的寿命都是有限的,如果一段时间内该条目没有被引用过,则条目被自动删除。一般,在工作站PC的Windows环境中,ARP条目的寿命是2分钟;在大部分Cisco交换机中,该值是5分钟。
1.2 ARP欺骗原理
ARP协议虽然是一个高效的数据链路层协议,但同时也是一个“无状态”协议,存在着以下一些缺陷:ARP协议没有连接的概念,任意主机即使在没有ARP请求的时候也可以做出应答,这就导致了任何主机都可以向被攻击者发送假冒的ARP应答包;ARP协议没有认证机制,对数据的发送及接收方都不做任何认证,只要接收到的协议包是有效的,主机就无条件地根据协议包的内容刷新本机APE缓存。因此攻击者可以随时发送虚假ARP包更新被攻击主机上的AR.P缓存,进行地址欺骗或拒绝服务攻击。
ARP欺骗的核心就是向被攻击者发送伪造的IP—MAC映射。假设主机c为实施ARP欺骗的攻击者,其目的是截获主机B和主机A之间的通信数据,且主机C在实施ARP欺骗前已知道A和B的IP地址。这时c先发送ARP包获得主机B的MAC地址,然后向B发送ARP应答包,其中源IP地址为A的IP地址,但是源MAC地址却是主机c的MAC地址。主机B收到该ARP应答后,将根据新的IP地址与MAC映射对更新ARP缓存。这以后当B给A发送数据包时,目标MAC地址将使用C的MAC地址,因此交换机根据C的MAC地址就将数据包转发到攻击者c所在的端口。同理,攻击者C发送ARP应答使主机A确信主机B的MAC地址为c的MAC地址。在间歇的发送虚假ARP应答的同时,攻击者c打开本地主机的路由功能,将被劫持的数据包转发到正确的目的主机,这时攻击者对主机A和B来说是完全透明的,通信不会出现异常,但实际上数据包却被C非法截获,攻击者C成为了“中间人”。
1.3现有的解决方法及分析
目前,针对ARP欺骗的抵御可以采用静态ARP表,即在目标主机的ARP缓存中设置静态地址映射记录。这些记录不会被动态更新,只能由管理员手工更改,但其缺点是若改变了网内主机的IP,就需要重新设置ARP缓存,因此需要管理员付出大量的工作来维持记录的及时更新,所以应用不广。另外,对于Windows操作系统,即使设置了ARP静态缓存,在收到ARP应答时,系统也会更新缓存。
可以对网络中的ARP报文进行被动检测或主动发送ARP查询报文,当发现一个IP地址对应两个MAC地址时,就存在欺骗攻击的可能性。但是,这种检测方式检测出的异常情况很多时候是非恶意的操作失误,如用户错配了IP地址。
2 采用非对称加密抵御基于ARP欺骗的中间人攻击
产生ARP欺骗的主要原因是ARP是建立在一个可信的网络基础之上的,接收方对ARP应答的内容总是无条件地信任。因此我们可以采用非对称加密来验证ARP应答的真实性和完整性,以抵御ARP欺骗。
2.1 方法概述
利用非对称加密来验证ARP应答消息的真实性和完整性,就必须要求每台主机有自己的一个公钥/私钥对。同时,因为在一个网络中,每台机器的IP地址是惟一的,因此可用IP地址来惟一标识网络中的每台主机。另外,在每个子网中,有一台可信任的主机来存储该网络中所有主机的IP地址、MAC地址和公钥/私钥对。在解析地址的过程中,每台主机所发送的reply应答包都由主机的私钥加密,接收方收到应答包后,再用发送方的公钥解密,以保证信息不被攻击者恶意利用。
为了避免重放攻击,可信任主机上还会发布时间值,要求网络内的所有主机保持同步。若没有时间戳,攻击者在截获一个Reply,得到被攻击者的IP和MAC后,会等待到被冒充主机离线以后再向被攻击者重放所存储的Reply包。在主机不能完全同步的情况下,管理员可以根据本地网络的情况设置一个时间差,以避免重放攻击。
2.2密钥的生成与管理
上述方法中,主机密钥是和IP地址绑定的,而且,主机密钥的分发和管理均由可信任主机来实施。姑且称这台可信任主机为密钥分发主机KA(Key Administrator)。我们所要做的第一步就是选择一台主机作为KA,并通过安全的渠道将KA的公钥和MAC地址发布给子网中的每一台主机。为保证信息发布的安全性,这些操作可能需要手工执行。当一台主机H要加入到一个网络中时,管理员首先手工给这台主机分发KA的公钥以及MAC地址。这些操作只在主机第一次加入的时候需要。
当主机H拥有了KA的公钥以及MAC地址后,H利用非对称加密算法,如DSA等,生成自身的公钥,并将其公钥以及lP地址经KA的公钥签名后发送给KA。然后,由管理员来确认信息的可靠性,一旦确认,便将H的公钥与IP地址存放到KA的库中。这样,KA便拥有了H的公钥,因此,以后H与KA的 通信可以用H自身的私钥来加密。
如果主机H要更新自己的密钥,它可以用旧的私钥加密包含新的密钥信息的消息,并将消息发送给KA。KA确认后,自动更新本地数据库中的密钥信息。
2.3应答消息的认证过程
消息的认证过程如图1所示:
当两台主机进行通信时,所发送的Reply应答包都是用自身的私钥加密的。当一台主机H1收到主机H2发送的一个Reply应答时,因为H1已知发送方H2的IP地址,就会查看本地是否保存有与此IP地址相对应的公钥。这些IP/Public Key对都是先前由主机向KA请求得到的。若在本地找到了与之对应的公钥,则用公钥解密Reply;若未找到,主机Hl则向KA发送请求,请求主机H2的公钥。同样,如果本地保存的公钥错误或过期而不能解密Reply时,也向KA发送请求。KA收到请求以后,将包含有H2的公钥的消息用自身的公钥加密发送给H1,一起发送的还有KA本地的时间值。H1收到KA发送的加密数据包后,会用KA的公钥解密,得到H2的公钥,用H2的公钥解密Reply包,并将H2的公钥存储在本地。若H1接收的公钥仍然无法解密Reply包,则在规定的时间间隔内,H1不断地向KA发送请求,直至超时,或者解密成功。若请求最终超时,该Reply包将被丢弃。
图1消息认证的过程
2.4方法的缺陷
所述方法存在的主要缺陷就是整个网络的安全都依赖于可信任主机的安全,一旦可信任主机被攻击,攻击者获得了整个网络中所有主机的IP和公钥,就可以随意地实施攻击。因此如何保障可信任主机的安全是这个方法的关键,还有待考虑。
另外,在消息传输的过程中,要进行加密解密操作,必然会导致网络的传输有一定的延时,因此合理选择加解密算法也是该方法的关键。
3 结束语
在IP网络中,ARP实现了IP地址到MAC地址的转换,是不可缺少的一个网络协议。但是ARP本身的缺陷,如缺少消息的认证,导致一个网络内的任意一台主机都可以发送伪造的消息而去冒充其它的主机,从而引发了一系列的安全问题,如中间人攻击,拒绝服务攻击DoS等。本文提出了一种基于非对称加密的方法,可以有效地抵御基于ARP欺骗的中间人攻击。在这种方法下,就算主机间的通话被偷听或者劫持,但攻击者无法对通话进行解密,也就无法实施中间人攻击。
当然利用ARP欺骗也可以很好地服务于网络的管理,如利用网络上未用的IP来诱骗攻击者等。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。