集线器、交换机、ARP欺骗原理以及概述
本篇文章主要在讲解完一些基础网络通信的知识之后介绍ARP网络欺骗的相关内容,仅供学习交流。
引子
假如现在有两台电脑,如图所示:
我们知道,如果想让这两台电脑连接起来,那么我们就拿两根网线将两台电脑连接在一起就可以了但前提是要设置好IP地址以及子网掩码。
那如果我们现在有三台以及更多的电脑呢?难道也用网线连接在一起吗?就像连灯泡一样?当我们按照如此的方法连接在一起的时候我们会发现原本能正常连接的两台电脑现在三台电脑互不相连。
我们知道,电线之所以可以将多个电学器件连接在一起是因为电线可以导电,电流可以使器件通电工作。
但是网线不一样,网线传输的是数据信号,当两台电脑连接的时候数据信号的传输是稳定的,此时可以正常连接工作。但是如果三台及以上的电脑连接的话,A原本给B发送的数据很有可能就会被C给B发送的数据而打乱,导致数据传输不稳定。
基础知识
集线器
集线器(“Hub”),“Hub”是“中心”的意思。它是一种用于计算机网络的设备,它用于连接多个网络设备,如计算机、打印机等,并传输数据。它是网络中最简单的设备之一。比如我们日常使用的USB扩展坞就是一个hub
集线器的工作原理是将所有连接到它的设备组成一个共享的传输介质,当一个设备发送数据时,集线器会将数据广播到所有连接的设备上。这意味着所有连接到集线器的设备都可以看到发送的数据包,但只有目标设备会接收并处理该数据包。
当“计算机1”给“计算机6”发送数据的时候,首先A1会将数据连带源mac地址和目的mac以及源IP和目的IP地址进行广播,其他的计算机接收到该广播数据之后发现目的mac地址和ip不是自己就会自动处理掉数据包,而当“计算机6”收到该广播数据之后发现目的mac和IP与自身相吻合就会接收并处理数据包。
交换机
由于集线器的广播形式让数据没有隐私可言,这个时候交换机出现了。
交换机(Switch)是一种网络设备,用于连接不同的网络节点,在它们之间转发数据包。交换机在网络中起着非常重要的作用,它可以提高网络的性能和可靠性。交换机的工作原理是根据数据包的目的地址(mac地址、ip地址)来决定将数据包转发到哪个端口。
-
交换机的端口数表示它可以连接多少个网络节点。
-
交换容量表示交换机可以处理的数据包数量。
-
交换速率表示交换机可以处理的数据包的速度。
以上就是一个简单的交换机网络示意图。
当PC1要给PC2发送数据的时候,PC1首先会将数据发送至交换机,交换机再将数据单播发送至PC2,当PC2收到数据的时候,再将PC1需要的数据发送至交换机,然后交换机再将数据单播发送至PC1。
我们再详细的来讲一讲PC1与PC2进行数据传输的过程:
如果想让PC1和PC2进行数据传输,假如PC1是发起数据的一方。那么PC1就必须要知道PC2的目的ip地址信息、和目的mac地址信息。因为,如果想要让PC2得到PC1传输的数据就必须要经过网络传输四层协议:网卡链路层、网络层、传输层、应用层。在链路层的时候,会检测mac地址是否为本身目的mac地址,在网络层的时候会检测ip地址是否为本身目的ip地址。单其中有一层协议不满足则会将数据包丢弃。我们知道,获取一台目的设备的ip地址是非常容易的,那么获取目的mac地址却好像并没有那么简单。
在PC1与PC2进行数据传输的时候,PC1会在本机的arp缓存区里寻找PC2ip地址对应的mac地址,当找到了PC2的mac地址的时候,便会直接将数据连带源ip地址、mac地址和目的ip地址、目的mac地址一并发送至交换机。由交换机通过目的ip找到PC2发送至PC2,PC2再经过四层协议的筛选最终得到数据,如果需要给PC1回数据,就把PC1给的ip地址和mac地址加上数据一并发送至交换机,由交换机发送至PC1。
那如果PC1的arp缓存区没有PC2ip地址对应的mac地址呢?
ARP协议简介
ARP协议(Address Resolution Protocol)是用于在局域网中将IP地址转换为MAC地址的协议。它使用ARP请求和ARP响应消息来查找目标主机的MAC地址。
当PC1的arp缓存区没有PC2ip地址对应的mac地址,那么PC1将会发送一个广播ARP请求消息,其中包含目的ip地址,当然肯定也要有一个目的mac地址,这个目的mac地址实则上我们可以称它为“通用目的mac地址”这个通用的目的mac为:FF:FF:FF:FF:FF:FF
,此时所有主机都会收到广播ARP请求消息,如果有主机的ip地址与目的ip地址匹配,该主机在数据过了IP层之后发现下一层是arp协议层则会发送一个ARP响应消息,这个响应消息里就包含了真实的目的mac地址。当PC2将arp响应消息发给了PC1,PC1将pc2的mac存储到arp缓存区中,此时就可以传输正常的数据信息了。
ARP欺骗
我们经常会听到什么中间人攻击,ARP攻击,其实就是指ARP欺骗(ARP spoofing)。ARP攻击的原理其实就是利用了ARP协议进行网络攻击的一种手段。攻击者通过伪造ARP响应消息,将自己的MAC地址替换为目标主机的MAC地址,从而欺骗目标主机将数据发送到攻击者的计算机。
ARP欺骗可以用于窃听网络数据、中断网络通信、修改网络数据等。
从上图分析ARP欺骗原理:
因为PC1在发数据的时候现在arp缓存区中找PC2的缓存,找到了之后才能填PC2的目的mac地址。如果没有PC2的缓存则会发起广播,来请求mac地址。
假如PC0是一名黑客,这个时候,还没等PC1给PC2发数据,PC0就事先给PC1发送数据信息,其数据是告诉PC1主机PC2的mac地址是一串mac(这个mac就是PC0的mac地址);然后再给PC2发送数据信息,其数据是告诉PC2主机PC1的mac地址是一串mac(这个mac就是PC0的mac地址)。那么此时当PC1给PC2发送数据的时候,会从arp缓存区里提取PC2的ip对应的mac地址,然而这个mac地址是PC0的,当PC1尝试给PC2发送数据的时候,交换机会根据PC1提供的mac地址找到对应的主机PC0并将数据给到PC0,PC0将数据再转发给PC2,由于PC2的arp缓存区对应PC1的ip的mac地址也是PC0的,所以PC2并不会发现这是PC0发个他的,所以当PC2尝试给PC1回的数据也就给到的PC0,PC0再将数据转发给PC1,PC1也就收到了PC2的数据。那么PC0也就充当了中间人这个角色,实现了数据信息的窃取转发。
那么以上就简单的介绍了ARP欺骗的原理概述,当然如果想要防御这种攻击,我们可以:使用动态ARP检测工具、使用静态ARP表、使用ARP防火墙等等