对人们撒谎,即所谓的“社会工程”,还包含了策略(已获罪的黑客Kevin Mitnick有具体实施),例如假扮成一个公司的雇员这样就可以和真正的雇员交换公司机密。要骗过计算机则包括许多不同的技术,一个常用的是——ARP缓存中毒(ARP Cache Poisoning)——这是本文的核心。ARP中毒能让局域网内的黑客在其网内造成巨大的网络破坏。由于它通常是“不可治愈”的,因此每一个网络管理员都应该明白这种攻击究竟是如何进行的。
回顾ARP
在“计算机网络基础:什么是NIC, MAC和ARP?” ( 参见译者的这篇译文 ) 一文中,我们解释了地址解析协议 (ARP, Address Resolution Protocol) 是如何将网络设备的MAC地址和其IP地址关联起来的,这样在同一个局域网内的设备就能相互知道彼此的存在。ARP基本上就是一种网络上的点名。
ARP,一个十分简单的协议,仅仅只包含了4种消息类型:
1. ARP请求。计算机A询问整个局域网,“Who has this IP address?” (“谁的IP地址是这个?”,英文为本来报文里的ASCII码消息,译者注)
2. ARP响应。计算机B告诉计算机A,“I have that IP. My MAC address is [whatever it is].” (我的IP地址是那个。我的MAC地址是[XX:XX:XX:XX:XX:XX])
4. 反向ARP请求。和ARP请求的概念一样,但是计算机A询问,“Who has this MAC address?” (谁的MAC地址是这个?)
4. 反向ARP响应。计算机B告诉计算机A,“I have that MAC. My IP address is [whatever it is]” (我的MAC地址是那个。我的IP地址是XXX. XXX. XXX. XXX)
所有的网络设备都有一个ARP映射表,就是内存里的一小段存储着目前该设备已经匹配的IP地址和MAC地址对。ARP映射表确保该设备不会向它已经通讯过的设备重复发送ARP请求。