概述
地址解析协议,即 ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址的一个TCP/IP 协议。
-
发送 ARP 请求的以太网数据帧 广播 到以太网上的每个主机,ARP 请求帧中包含了目的主机的 IP 地址。
-
目的主机收到了该 ARP 请求之后,会发送一个 ARP 应答,里面包含了目的主机的 MAC 地址。
ARP 协议工作原理
-
每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
-
主机(网络接口)新加入网络时(也可能只是 mac 地址发生变化,接口重启等), 会发送免费 ARP 报文把自己 IP 地址与 Mac 地址的映射关系广播给其他主机。
-
网络上的主机接收到免费 ARP 报文时,会更新自己的 ARP 缓冲区。将新的映射关系更新到自己的 ARP 表中。
-
某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
当本网络的所有主机收到该 ARP 数据包时:
-
首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。
-
如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。
-
然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC地址。
源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。ARP 高速缓存(即 ARP 表)是 ARP 地址解析协议能够高效运行的关键
如何防范ARP攻击
1、 MAC地址绑定
使网络中每一台计算机的IP地址与硬件地址一一对应,不可更改。
2、使用静态ARP缓存
用手工方法更新缓存中的记录,使ARP欺骗无法进行。
3、使用ARP服务器
通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
4、使用ARP欺骗防护软件:
如ARP防火墙
5、及时发现正在进行ARP欺骗的主机并将其隔离
6、使用最新版本 DNS服务器 软件并及时安装补丁
7、关闭DNS服务器的递归功能
DNS服务器利用缓存中的记录信息回答查询请求或是DNS服务器通过查询其它服务器获得查询信息并将它发送给客户机,这两种查询方式称为递归查询,这种查询方式容易导致DNS欺骗。
8、限制区域传输范围
限制域名服务器做出响应的地址、限制域名服务器做出响应的递归请求地址、限制发出请求的地址。
9、限制动态更新
10、采用分层的DNS体系结构
11、检查源代码
如果发生了URL重定向,就一定会发现。不过,检查用户连接的每一个页面的源代码对普通用户来说是不切实际的想法。
12、确保应用有效和能适当地跟踪用户
无论是使用cookie还是会话ID,都应该确保要尽可能的长和随机。