概述:
ARP协议是网络通信中经常使用的一种协议,它是数据链路层的一种协议,但是ARP在设计之初,却存在着许多缺陷,从而被网络攻击者用来进行ARP欺骗或ARP劫持。小编今天给各位同学分析为什么网络通信需要ARP协议,然后了解ARP协议是如何工作的,也就是ARP的解析过程,最后讲讲ARP协议什么样的缺陷导致了它被攻击者所利用。
正文:
ARP指的是什么,为什么网络通信中需要ARP协议呢?
ARP是Address Resolution Protocol的缩写,也就是地址解析协议。
我们知道,网络中两台主机要通信,首先要知道彼此的IP地址,就像我们一百多个学生大一刚进入大学,分到一个学院,假设是一人一间宿舍,王大帅有一本书要交给张小胖,但他并不知道张小胖住在那间宿舍,因此,他要先得到张小胖的宿舍号,才能把书交给他。
其实这个过程和网络中的通信是相似的,当A知道B的IP地址后,还不够,IP相当于每个设备的代号,还需要知道B的具体位置,因为数据是在网络层的下一层数据链路层传递的,数据链路层需要自己特有的地址识别对方,这个地址叫做MAC地址,MAC地址就相当于房间号,假设B的MAC地址是MACB,ARP协议的作用就是把B的IP地址转化成它对应的MAC地址,也就相当于把名字转化成房间号。
ARP协议如何把IP地址转换为MAC地址呢?
虚线所示的部分是一个局域网,在这个局域网里,有A,B,C三台主机,B的IP地址是192.168.1.2,主机A是如何根据B的IP地址获得它的MAC地址呢,它会在该局域网内发送广播包,问“谁是192.168.1.2?你的MAC地址是什么?”。这网段内只有B收到该消息后会给A发送一个应答包,说:“我是192.168.1.2,我的MAC地址是MACB。”这样A就由B的IP地址得到了它的MAC地址。
ARP缓存表和老化机制又是什么呢?
可能有同学会问了,如果每次广播查询一遍MAC地址,岂不是太过麻烦,为什么不把这个信息记下来。ARP也有这样的功能,为了不用每次通信都查找对方的MAC地址,因此通过ARP协议得到MAC地址后,主机会将解析后的MAC地址存放在ARP缓存表里。下次再和该主机通信就不用在通过ARP协议查找MAC地址了。这个ARP缓存表就像人的大脑,能够存储信息。
ARP协议在实现过程中,由于很多主机的IP地址都是通过动态分配得到的,如果IP变化的话,路由表中的IP与MAC的对应关系就是错误的,为此,ARP协议采用了老化机制,也就是过一段时间(一般15到20分钟),如果B一直没和A通信,B的MAC地址就会从表中删除,下次通信时再通过ARP协议重新得到B的MAC地址。
ARP协议的缺陷有哪些?
经过上述的工作过程,ARP协议是不是就能够完(an)美(quan)的实现IP地址与MAC地址的对应呢?小编的回答是:“NO”。
ARP协议在局域网内发送广播包,询问谁是192.168.1.2?按照ARP协议的设想应该是主机B回复,如果这时候有一个攻击者C,它也向主机A发送ARP应答,说我就是192.168.1.2,收到假的应答包后,A本着谁都相信的原则,就认为C是192.168.1.2.这时A就上当了。这是由ARP协议的不验证引起的,它不验证对方是否是所声称IP地址的主机。
A还没有问谁是192.168.1.2,C就很主动的给A发送一个ARP应答包,说我是192.168.1.2,那么A就单纯的认为C就是192.168.1.2.这是由ARP协议的不判断造成的。
由于ARP协议是一种无状态协议,既不验证应答者的身份,也不判断是否发送过ARP请求,当收到一条ARP应答报文时,它就会更新ARP应答缓存表。这是ARP协议存在的严重缺陷,这样就可以通过伪造ARP应答报文更新目标主机缓存路由表,实现数据包重定向的攻击方式,从而导致攻击者可以利用该缺陷来展开ARP欺骗攻击。
讲到这里大家是不是特别想搞清楚ARP欺骗攻击是怎样的一个过程呢?我们下一篇来讲述。
来源:freebuf.com 2018-07-03 16:08:42 by: 360网络安全学院
请登录后发表评论
注册