1 引言
对“IP地址盗用”的解决方案绝大多数都是采取MAC与IP地址绑定策略,这种做法是十分危险的,本文将就这个问题进行探讨。在这里需要声明的是,本文是处于对对MAC与IP地址绑定策略安全的忧虑,不带有任何黑客性质。
1.1 为什么要绑定MAC与IP 地址
影响网络安全的因素很多,IP地址盗用或地址欺骗就是其中一个常见且危害极大的因素。现实中,许多网络应用是基于IP的,比如流量统计、账号控制等都将IP地址作为标志用户的一个重要的参数。如果有人盗用了合法地址并伪装成合法用户,网络上传输的数据就可能被破坏、窃听,甚至盗用,造成无法弥补的损失。
盗用外部网络的IP地址比较困难,因为路由器等网络互连设备一般都会设置通过各个端口的IP地址范围,不属于该IP地址范围的报文将无法通过这些互连设备。但如果盗用的是Ethernet内部合法用户的IP地址,这种网络互连设备显然无能为力了。“道高一尺,魔高一丈”,对于Ethernet内部的IP地址被盗用,当然也有相应的解决办法。绑定MAC地址与IP地址就是防止内部IP盗用的一个常用的、简单的、有效的措施。
1.2 MAC与IP 地址绑定原理
IP地址的修改非常容易,而MAC地址存储在网卡的EEPROM中,而且网卡的MAC地址是唯一确定的。因此,为了防止内部人员进行非法IP盗用(例如盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败:而且由于网卡MAC地址的唯一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。
目前,很多单位的内部网络,尤其是学校校园网都采用了MAC地址与IP地址的绑定技术。许多防火墙(硬件防火墙和软件防火墙)为了防止网络内部的IP地址被盗用,也都内置了MAC地址与IP地址的绑定功能。
从表面上看来,绑定MAC地址和IP地址可以防止内部IP地址被盗用,但实际上由于各层协议以及网卡驱动等实现技术,MAC地址与IP地址的绑定存在很大的缺陷,并不能真正防止内部IP地址被盗用。
2 破解MAC与IP地址绑定策略
2.1 IP地址和MAC地址简介
现行的TCP/IP网络是一个四层协议结构,从下往上依次为链路层、网络层、传输层和应用层。
Ethernet协议是链路层协议,使用的地址是MAC地址。MAC地址是Ethernet网卡在Ethernet中的硬件标志,网卡生产时将其存于网卡的EEPROM中。网卡的MAC地址各不相同,MAC地址可以唯一标志一块网卡。在Ethernet上传输的每个报文都含有发送该报文的网卡的MAC地址。
Ethernet根据Ethernet报文头中的源MAC地址和目的MAC来识别报文的发送端和接收端。IP协议应用于网络层,使用的地址为IP地址。使用IP协议进行通讯,每个IP报文头中必须含有源IP和目的IP地址,用以标志该IP报文的发送端和接收端。在Ethernet上使用IP协议传输报文时,IP报文作为Ethernet报文的数据。IP地址对于Ethernet交换机或处理器是透明的。用户可以根据实际网络的需要为网卡配置一个或多个IP地址。MAC地址和IP地址之间并不存在一一对应的关系。
MAC地址存储在网卡的EEPROM中并且唯一确定,但网卡驱动在发送Ethernet报文时,并不从EEPROM中读取MAC地址,而是在内存中来建立一块缓存区,Ethernet报文从中读取源MAC地址。而且,用户可以通过操作系统修改实际发送的Ethernet报文中的源MAC地址。既然MAC地址可以修改,那么MAC地址与IP地址的绑定也就失去了它原有的意义。