为什么在IPv6中ARP被NDP取代?


49

ARP被NDP(邻居发现协议)所取代。但是我不知道确切的原因。

  • ARP是否存在安全性问题?
  • 为什么用NDP代替ARP?
  • ARP的优点是什么?

谁能用简单的术语解释一下?

Answers:


67

ARP是否存在安全性问题?

是。这里有一些:

  • ARP欺骗。

    错误的ARP消息是通过LAN发送的,导致攻击者的MAC地址与网络上合法计算机或服务器的IP地址链接。

    有关ARP欺骗/中毒的更多信息,请参见下文。

  • MAC泛洪。

    跟踪哪些MAC地址在哪些物理端口上的转换表的内存量有限。这样可以通过充斥转换表来利用开关。不知道如何处理多余数据的原始交换机将“无法打开”并将所有网络帧广播到所有端口。

  • MAC复制。

    在MAC复制攻击中,交换机会误以为两个端口具有相同的MAC地址。由于数据将被转发到两个端口,因此不需要IP转发。

TCP / IP地址解析协议(ARP)的安全性


为什么ARP被NDP取代?

它为IPv6提供了改进和附加功能。

有关NDP和协议地址解析协议[ARP],ICMP路由器发现[RDISC]和ICMP重定向[ICMPv4]的比较,请参见下文。


NDP如何防御ARP欺骗/中毒?

它使用安全邻居发现(SEND)协议。加密生成的地址可确保所要求的NDP消息源是所要求的地址的所有者。

IPv6邻居发现协议(NDP)的功能之一是将网络层(IP)地址解析为链路层(例如,以太网)地址,这是通过地址解析协议(ARP)在IPv4中执行的功能。安全邻居发现(SEND)协议可防止有权访问广播段的攻击者滥用NDP或ARP欺骗主机,以发送发往其他人的攻击者流量(一种称为ARP中毒的技术)。

为了防止ARP中毒和其他针对NDP功能的攻击,应在可能无法阻止访问广播网段的地方部署SEND。

SEND使用RSA密钥对来生成加密生成的地址,如RFC 3972“加密生成的地址(CGA)”中所定义。这样可以确保NDP消息的声明来源是声明地址的所有者。

配置安全IPv6邻居发现的


ARP欺骗如何工作?

ARP欺骗也称为ARP中毒路由(APR)或ARP缓存中毒。

ARP欺骗是一种攻击,恶意行为者通过局域网发送伪造的ARP(地址解析协议)消息。这导致攻击者的MAC地址与网络上合法计算机或服务器的IP地址链接。

攻击者的MAC地址连接到真实IP地址后,攻击者将开始接收该IP地址的所有数据。

ARP欺骗可以使恶意方拦截,修改甚至阻止传输中的数据。ARP欺骗攻击只能在使用地址解析协议的局域网上发生。

源Veracode ARP欺骗


ARP欺骗攻击如何工作?

ARP欺骗攻击的步骤通常包括:

  1. 攻击者打开ARP欺骗工具,并将工具的IP地址设置为与目标IP子网匹配。流行的ARP欺骗软件的示例包括Arpspoof,Cain&Abel,Arpoison和Ettercap。

  2. 攻击者使用ARP欺骗工具扫描目标子网中主机的IP和MAC地址。

  3. 攻击者选择其目标,然后开始通过LAN发送ARP数据包,其中包含攻击者的MAC地址和目标的IP地址。

  4. 当LAN上的其他主机缓存欺骗的ARP数据包时,这些主机发送给受害者的数据将转交给攻击者。从这里,攻击者可以窃取数据或发起更复杂的后续攻击。

源Veracode ARP欺骗

攻击者可能选择检查数据包(间谍),同时将流量转发到实际的默认网关以避免发现,在转发数据之前修改数据(中间人攻击),或者发起拒绝服务通过丢弃网络上的部分或全部数据包来进行攻击。

来源Wikipedia ARP欺骗


[NDP]与IPv4的比较

IPv6邻居发现协议对应于IPv4协议地址解析协议[ARP],ICMP路由器发现[RDISC]和ICMP重定向[ICMPv4]的组合。

在IPv4中,尽管主机要求文档[HR-CL]确实为死网关检测指定了一些可能的算法(邻居不可达检测解决的问题的子集),但是,关于邻居不可达检测的协议或机制并未达成共识。

邻居发现协议对IPv4协议集提供了许多改进:

  • 路由器发现是基本协议集的一部分;主机无需“窥探”路由协议。

  • 路由器公告带有链路层地址;无需额外的数据包交换即可解决路由器的链路层地址。

  • 路由器广告带有链接的前缀。无需使用单独的机制来配置“网络掩码”。

  • 路由器公告启用地址自动配置。

  • 路由器可以通告主机要在链路上使用的MTU,以确保所有节点在缺少明确定义的MTU的链路上使用相同的MTU值。

  • 地址解析多播“传播”了超过1600万(2 ^ 24)个多播地址,大大减少了目标以外节点上与地址解析相关的中断。此外,完全不应该中断非IPv6的计算机。

  • 重定向包含新的第一跳的链路层地址;接收到重定向后,不需要单独的地址解析。

  • 多个前缀可以与同一链接关联。默认情况下,主机从路由器广告学习所有链接前缀。但是,可以将路由器配置为省略路由器广告中的某些或所有前缀。在这种情况下,主机会认为目标是脱机的,并将流量发送到路由器。然后,路由器可以根据需要发出重定向。

  • 与IPv4不同,IPv6重定向的收件人假定新的下一跳处于链接状态。在IPv4中,主机会忽略重定向,从而根据链接的网络掩码指定不在链接上的下一跳。IPv6重定向机制类似于[SH-MEDIA]中指定的XRedirect工具。预期它在非广播和共享媒体链接上很有用,在这种情况下,节点不希望或不可能知道链接目标的所有前缀。

  • 邻居不可达性检测是基础的一部分,在存在故障路由器,部分故障或分区链路或更改其链路层地址的节点的情况下,此功能大大提高了数据包传递的稳定性。例如,由于过时的ARP缓存,移动节点可以移出链接而不会丢失任何连接。

  • 与ARP不同,邻居发现(使用邻居不可达性检测)检测半链路故障,并避免将流量发送到没有双向连接的邻居。

  • 与IPv4路由器发现中的路由器不同,路由器公告消息不包含首选项字段。不需要优先字段来处理具有不同“稳定性”的路由器。Neighbor Unreachability Detection将检测死路由器并切换到可用路由器。

  • 使用本地链接地址来唯一标识路由器(用于路由器广告和重定向消息),使主机可以在站点重新编号以使用新的全局前缀的情况下维护路由器关联。

  • 通过将“跳数限制”设置为255,邻居发现不受意外或有意发送ND消息的脱机发送者的影响。在IPv4中,脱链发件人可以发送ICMP重定向消息和路由器广告消息。

  • 将地址解析放置在ICMP层上可使该协议比ARP更加独立于媒体,并且可以酌情使用通用IP层身份验证和安全性机制。

IPv6中的RFC 4861邻居发现


进一步阅读


NDP如何防御反对中毒?
grawity

@grawity好问题!它使用安全邻居发现(SEND)协议。答案已更新。
DavidPostill

2
嗯,实际上有多少操作系统实际使用了SEND
grawity

2
@DavidPostill不,IPsec与ARP / NDP在不同的层上工作。它需要一个有效的通信渠道来建立其安全功能。
scai 2015年

4
@DavidPostill好帖子。但是,您的帖子具有误导性,因为它表明SeND是(a)NDP的组成部分,并且(b)是通用解决方案。这是不是如此-派是一个附加的,并且没有发送的实现除了实验的。而且,SeND有其自身的缺点,并为拒绝服务攻击提供了可能性。最后,可以合理地假设SeND将永远不会消失(至少不会以当前形式出现),因此不应大声提出。
反模式

9

NDPARP具有更多功能,包括:

  • 通过NDP,网络上的设备可以确定MAC /链路层地址(与ARP具有相同的功能)。

  • 使用NDP,网络上的设备可以找到到达外部网络中另一设备的路径,从而找到到达目标设备的最佳路由器。

  • NDP启用IPv6地址的自动配置。

与ARP相比,其机制有所不同:

ARP使用广播消息,而NDP使用多播ICMPv6消息。

设备发送称为“邻居请求ICMP消息”或NS的多播消息。目标设备以“邻居广告ICMP消息”或NA响应。

NS消息使用一个称为请求节点多播地址的特殊多播目标地址,该地址代表所有主机的IPv6地址具有相同的后24位。使用多播代替广播可以减少网络上不必要的流量。


5

引入NDP代替ARP的主要原因是希望合并围绕IP的控制协议。IPv4享有多种控制协议,例如ICMP,IGMP和ARP / RARP。使用IPv6,将NDP(ARP的后继者)和MLD(IGMP的后继者)设计为ICMPv6的子协议,因此只有一个控制协议。这样做没有安全原因,ND与ARP一样容易受到欺骗,并且ND并非为安全而设计。

在IPv6的发展初期的IPsec被视为通用安全措施,因此是强制性的。但是,此要求已被降级为建议(RFC 6434,我认为主要是由于嵌入式设备和物联网,它们根本无法执行公钥计算,而且它们会解决各种PKI问题) ,无论如何),并且在保护ND方面效果不佳(礼貌地说)。引入SeND是为了将安全性附加到ND上,但是几乎所有以前的追溯安全性软件设计尝试都无法达到理想的效果。由于尚没有实验性的实现,因此还没有SeND的实现,因此出于所有实际目的,SeND都不存在。此外,我们有理由相信,至少以目前的形式,SeND永远不会成功。

相比之下,SAVI看起来更有希望,但需要更改交换基础架构,而且具有SAVI功能的设备价格也不是太便宜,因此它也不会迅速普及。SAVI的工作原理是,在站点内应该“知道”硬件地址(即MAC地址)和IP地址之间的哪个映射是合法的,因此应该可以识别和删除虚假的NDP消息。

最好的方法是最简单的方法,但经常被忽略:将大型LAN分成较小的方法,因为ARP和ND欺骗仅适用于同一LAN中的目标。因此,仅将不可靠的设备放入其自己的LAN网段(无需防火墙/过滤规则)将大大减少攻击面。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.