ARP协议

1、地址解析协议(ARP协议)

   地址解析协议是指通过IP地址来获取主机所对应物理地址的协议。在TCP/IP协议的数据传送过程中,物理层和数据链路层的设备,只知道所对应主机的物理地址(网卡所对应的地址)。所以主机将数据发送到对方的电脑时,就需要知道对方的物理地址,这样才能将数据以比特流的方式发送给对方,同样的交换机也是一样。
   在网络传输数据的过程中,使用的是IP地址,只知道IP地址是无法实现主机之间的数据传输的,所以使用ARP协议就可以实现IP地址和主机物理地址之间的映射。
   从实现过程来看,ARP协议是以广播的形式发送目标主机的IP地址到网络上的所有主机,这些主机接收到相应的ARP广播消息后,这些主机就判断自己的IP地址是否为广播的地址。是则将自己的mac地址发送给发送ARP广播的主机。

   如果每一次通信都需要广播来寻找IP所对应的物理地址,则会有非常大的开销。所以ARP引进了缓存机制。

2、地址解析协议缓存机制

   当完成一次ARP请求和响应后,主机会将该过程中所得到 IP地址和MAC地址之间的映射保存在本地。 执行ARP协议前,先查询本地ARP缓存中是否有目标IP地址和MAC地址之间 的映射关系。如果本地ARP缓存中不存在该IP地址和MAC地址之间的映射关系数据时,才需要在网络上广播ARP请求消息。

   主机本地ARP缓存表
在这里插入图片描述

  • 类型为动态表示该IP地址与物理地址的映射是通过ARP协议动态建立的;
  • 类型为静态表示该IP地址与物理地址的映射是通过人工或自动等方式静态添加的;
  • 物理地址为“FF-FF-FF-FF-FF-FF”表示广播地址。

ARP协议消息构成
   一个ARP协议的完整过程包括ARP请求和ARP响应。
    • ARP请求:当需要进行IP地址和MAC地址之间的解析时,发起者以广播的形式在网络中发送包含目标IP地址的ARP请求。
    • ARP响应:网络中收到ARP请求且发现ARP所请求的IP地址与自己的IP地址匹配时,发送包含自己MAC地址的ARP响应消息。
  ARP请求消息和ARP响应消息实现了ARP请求的所有功能。
  首先包含了发送方和目的方的协议地址和目的方的硬件地址。其中消息类型确定了是ARP请求消息和ARP响应消息。

  ARP报文字段总共有28个字节。
在这里插入图片描述

  • Hardware type : 硬件类型,识别链路层协议
  • Protocol type : 协议类型,标识网络层协议
  • Hardware size : 硬件地址大小,标识MAC地址长度,这里是6个字节(48bit)
  • Protocol size : 协议地址大小,标识IP地址长度,这里是4个字节(32bit)
  • Opcode : 操作类型,标识ARP数据包类型,1表示请求,2表示回应
  • Sender MAC address : 发送者的MAC
  • Sender IP address : 发送者的IP
  • Target MAC address : 目标的MAC,此处全0表示在请求
  • Target IP address : 目标的IP

  在ARP操作中,有效数据的长度为28个字节,不足以太网的最小长度46字节长度,需要填充字节,所以填充字节最小长度为18个字节。

3、ARP协议执行过程

   在这样一个拓扑结构中,如果地址为192.168.1.101的主机需要知道192.168.1.103主机所对应的物理地址,前者可以在网络上发送一个ARP的广播消息,此时只有后者知道自己的物理地址是多少,该主机通过ARP应答告诉前者自己的物理地址,于是就将IP地址和Mac地址的对应关系缓存到ARP缓存表中。同样的,ARP请求方发送的广播信息中也包含着发送方的IP和MAC地址,所以应答方接受到消息的时候也就知道了请求方的信息,也将IP地址和MAC的映射关系保存在了本地的缓存表中。
在这里插入图片描述

4、ARP协议可能存在的安全隐患

ARP窃听
   从ARP的协议过程来看,ARP请求消息将通过交换机或集线器以广播形式进行发送,因此网络上所有主 机均可以收到ARP请求消息。针对ARP协议最简单的攻击就是ARP窃听。
   对于恶意攻击者来说,可以被动的收集到这些主机的IP地址和MAC地址,从而实现窃听的目的,而掌握网络中各节点IP地址、MAC地址、是否在线等信息之后,就可以为进一步发动其他攻击(如网络拓扑绘制、拒绝服务等)提供信息。

ARP欺骗
   使IP地址个物理地址之间的关系不是正确的映射关系,而是一个虚假错误的映射,从ARP的原理来看,无论节点收到ARP请求还是响应,该节点均会更新其ARP表。 如果无对应的表项,则添加该表项;反之,则更新对应的表项。
   如果某个ARP消息中的IP-MAC对是不真实的,则造成ARP欺骗攻击(ARP Spoofing),或称为ARP污染攻击(ARP Poisoning)。

  • 攻击者故意发送不正确的MAC-IP映射ARP响应报文,导致发送ARP请求的主机得到不正确的IP地址和MAC地址映射关系。
  • 如果该欺骗包的目的MAC地址为广播地址(即FF-FF-FF-FF-FF-FF),则网络中所有节点均会收到该包,从而更新各自的ARP表。
  • 如果欺骗包的目的MAC地址对应的节点不存在,这些包将没有无节点接收,形成所谓的“黑洞 攻击” 。

   例如:

   如果图中的A1想要知道网关的MAC地址。则会在网络上进行广播,正常情况下之后网关会发送ARP的响应信息,如果此时存在一个恶意的攻击者A2,他抢在网关回送正确的mac地址之前回送一个错误的MAC地址给A1,A1会将A2的MAC地址与网关的IP地址进行映射,此时A2就将自己的身份伪装成了网关的身份,之后所有要发送给网关的数据都会发送给A2。除此之外,A2还有可能会将内部所得到的数据重定向到外部,则外部攻击者进行更大面积的数据窃听。

在这里插入图片描述

GARP滥用攻击
   攻击者利用GARP技术,主动发送虚假的GARP请求消息(即伪造的IP地址和MAC地址的映射) 。

  • 如果GARP欺骗包的目的IP地址和MAC地址是某个特定节点的MAC地址,则所造成的攻击仅针对该节点。
  • 如果GARP欺骗包的IP地址和MAC地址是网络中所有主机,会导致所有主机的本地ARP映射表发生混乱,严重干扰整个网络通信出现故障。

在这里插入图片描述

5、ARP协议安全隐患防御技术

采用静态绑定的方式防止ARP欺骗
   ARP欺骗的最终是导致主机的本地ARP表出现错误的IP地址和MAC地址映射。

  • 如果能够有一种方法确保ARP表中信息的真实性,则可以有效防止ARP欺骗攻击。
     • 可以通过添加静态ARP表项到ARP表中,从而手工绑定IP-MAC映射。
     • 由于静态ARP表项的生命期是永久的(直至网卡重新激活),因此不会因ARP欺骗 包而改变这种映射关系。
     • Windows和Linux平台均可以通过arp命令完成静态表项的添加。

采用ARP代理服务器

  ARP欺骗之所以能够成功,从根源来看是缺少认证机制,即ARP请求者和ARP响应者均无法确认对方的身份。

  • 可以引入可信的ARP代理服务器(Proxy ARP),对本网络中或跨网段的ARP请求提供服务。
     • 即当主机需要进行ARP请求时,不是广播发送ARP请求消息
     • 而是向可信的ARP服务器发送该ARP请求消息。

在网络设备上对ARP消息进行检测和控制

  • 交换机:通过端口绑定的方式,只允许满足特定条件的ARP请求和ARP响应数据 包通过
  • 路由器:仅允许已经建立了IP地址和MAC地址绑定的数据包通过。 不会通过学习的方式来更新自己的ARP表。
  • 防火墙:通过发送可信GARP请求消息来防止ARP欺骗。
  • 在发现ARP欺骗时,主动发送GARP请求包,强制主机更新自己本地ARP缓存。

禁用GARP功能
  针对攻击者通过发送恶意GARP请求消息

  • 可以禁用GARP功能达到防御ARP欺骗的目的。
  • 主机也可以选择忽略GARP消息,从而避免更新错误的IP地址和MAC地址映 射信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值