ARP
地址解析协议
尝试解决的问题:假设有两台电脑A和B,A持有IP(B),希望查询到MAC(B),A和B可以通过一次交换机S相互抵达(它们在同一个局域网中)
地址簿
每台电脑会维护一个地址簿BOOK(⋅),里面存放了IP(itemi) MAC(itemi)等一系列数据项,如果IP(B)存在于BOOK(A)中,那MAC(B)自然也就能被查到了,如果不能,我们使用ARP协议来解决这个问题
解决方案
A→(IP(A),MAC(A),IP(B))S
Sbroadcast→(IP(A),MAC(A),IP(B))∀C∈ADJ(S)
∀C∈ADJ(S),insert(IP(A),MAC(A)) into BOOK(C)
for B,IP(B)=IP(mine),B→(IP(A),MAC(A),IP(B),MAC(B))S
S→(IP(A),MAC(A),IP(B),MAC(B))A
insert(IP(B),MAC(B)) into BOOK(A)
ARP欺骗
本来BOOK(A)中希望存放一条IP(B) MAC(B)的记录,现在欺骗A存放IP(B) MAC(another),让它随后发信息时,以为它正在往B电脑发送信息,但是实际上信息全部到another电脑上去了
ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表