ARP协议一原理

1、ARP协议介绍

  • 地址解析协议,即ARP(Address Resolution
    Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。

2、ARP协议工作原理(图片来源于网络)

这里写图片描述

  • 当主机10.0.0.1要发送数据给10.0.0.2数据,会首先去查本地的arp缓存表,如果有此IP地址和此主机对应的MAC地址,就可以直接传输数据。如果没有就主机10.0.0.1就会向局域网去广播,询问谁的IP地址是10.0.0.2.此时在本局域网中的所有主机都能够收到此广播包,但只有主机10.0.0.2才会回应这个广播包。会以单播的形式直接回复10.0.0.2说我的MAC地址为多少。此时10.0.0.1收到了此信息,那么两者之间就能够通过MAC地址进行通信了。并且将这个ARP和IP对应信息缓存到ARP缓存表里。

3、为什么要使用ARP协议

  • OSI模型把网路工作分为七层,彼此不直接打交道,需要通过接口。IP地址工作在OSI七层模型中的第三层,MAC地址工作在第二层,当协议发送数据表时,需要先封装第三层,第二层的报头,但协议只知道目的节点的ip地址,不知道其MAC地址,又不能跨第二、三层,所以得用ARP协议服务。

4、ARP欺骗原理及防范(转)


(来自:https://www.cnblogs.com/ichunqiu/p/5662832.html

  • 假设主机 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4; 网关 G 192.168.1.1; 在同一局域网,主机A和B通过网关G相互通信,就好比A和B两个人写信,由邮递员G送信,C永远都不会知道A和B之间说了些什么话。但是并不是想象中的那么安全,在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,原有的则会被替换。

  • 这样C就有了偷听A和B的谈话的可能,继续思考上面的例子:

  • C假扮邮递员,首先要告诉A说:“我就是邮递员” (C主机向A发送构造好的返回包,源IP为G 192.168.1.1,源MAC为C自己的MAC地址),愚蠢的A很轻易的相信了,直接把“C是邮递员”这个信息记在了脑子里;

  • C再假扮A,告诉邮递员:“我就是A” (C向网关G发送构造好的返回包,源IP为A 192.168.1.2,源MAC地址为自己的MAC地址),智商捉急的邮递员想都没想就相信了,以后就把B的来信送给了C,C当然就可以知道A和B之间聊了些什么

    • 上面ABCG的故事就是ARP双向欺骗的原理了

    • ARP单向欺骗就更好理解了,C只向A发送一个返回包,告诉A:G 192.168.1.1 的MAC地址为 5c-63-bf-79-1d-fa(一个错误的mac地址),A把这个信息记录在了缓存表中,而G的缓存表不变,也就是说,A把数据包给了C,而G的包还是给A,这样就是ARP单向欺骗了。


  • ARP欺骗防范:
    • 1.在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC
    • 2.在网关绑定主机MAC与IP地址
    • 3.使用ARP防火墙
        

猜你喜欢

转载自blog.csdn.net/liang_operations/article/details/82388449