论文部分内容阅读
[摘要]ARP协议由于固有的缺陷,在接受APR数据包时,不要求认证,使得伪造ARP数据包进行ARP欺骗变得很容易。在校园网环境下,ARP欺骗(攻击)尤为明显,严重的影响了日常的网络使用。PPPoE是在标准PPP报文的前面加上以太网的报头,PPPoE在通讯过程中不涉及ARP协议,由此可以避免ARP欺骗。
[关键词]APR 欺骗 PPPoE
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0810038-01
一、前言
地址转换协议ARP(Address Resolution Protocol)是查询给定的IP地址所对应的网卡物理地址(MAC地址)的协议,它工作在网络层与数据链路层之间,在数据链路层和硬件接口联系,同时对网络层供服务。其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用。一般说来,在多路访问的广播网络环境下都是需要ARP协议的。IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。
二、ARP查询
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,查询到目标设备的MAC地址,以保证通信的顺利进行。在每台安装有TCP/IP协议的主机里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的:
假设主机A(192.168.191.11)向主机B(192.168.191.17)发送数据,主机A会在自己的ARP缓存表中寻找是否有主机B的IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF-FF-FF-FF-FF-FF”,这相当于向同一网段内的所有主机发出这样的询问:“192.168.191.17的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.191.17的MAC地址是00-16-d4-a2-0f-f9”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以减少ARP缓存表的长度,加快查询速度。
三、ARP欺骗
上边的是正常情况下的ARP查询,如果其他主机想要冒充主机B与主机A通讯,由于ARP没有验证机制,这种欺骗非常容易成功。首先假设主机A没有主机B的ARP缓存,于是发送一个广播,主机B收到这个广播后回应主机A自己的MAC地址00-16-d4-a2-0f-f9,正常情况下只有主机B会回应这个广播ARP请求包,但是将要进行ARP欺骗的主机C收到A的广播ARP请求包后,也向主机A回应:“192.168.191.17的MAC地址是50-78-1c-00-18-e9”,为了能够保证ARP欺骗成功,主机C在回应主机A的广播ARP请求包时,会持续发送多个数据包,保证主机A会收到错误的MAC地址。这样主机A就会得到一个错误的ARP信息,把本来要发往主机B(00-16-d4-a2-0f-f9)的数据,错误的发往了主机C(50-78-1c-00-18-e9),。对于另外一种情况,A主机已经有主机B的ARP缓存,在主机A需要和B通讯时,它将不会发送广播ARP请求包,主机C为了ARP的欺骗成功,它将会探测网段内的所有存在的主机,然后将自己的MAC地址发送给主机A,使主机A的缓存更新为C的MAC地址。
四、ARP欺骗的防御
ARP欺骗其实是由于ARP协议的天生缺陷造成的,主机在收到ARP包时没有认证机制,这使得ARP欺骗异常容易。针对这种情况,防御起来其实也很简单,只需要不接受错误的ARP包就可以了,也就是静态绑定。A主机与B主机(或者主机A与网关B)通讯,在A主机中做一条静态的ARP表,“192.168.191.17的MAC地址是00-16-d4-a2-0f-f9”,相应的在主机B中也做一条静态ARP表,“192.168.191.11的MAC地址是00-50-04-c0-8f-75”,这样主机A和B在通讯过程中都不会发送广播ARP请求包,并且对于主动发送给它们试图冒充A或者B的ARP数据包,属于动态更新,是不能更改静态的ARP缓存,避免了ARP欺骗。
五、PPPoE的先天免疫
作静态绑定适用于小规模,比较稳定的网络环境,例如网吧之类。对于校园网,由于主机接入数量较多,还有笔记本,无线网等移动用户等,使得静态MAC绑定不易实施。一般说来,校园网环境下的ARP欺骗更多的是针对网关,使得用户的在访问Internet时出现忽通忽断的情况,这种情况下PPPoE是一个可以考虑的解决方案。PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议,利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE(PPP over Ethernet)。它的实现机理是这样的:A要跟外界通信,首先A发一个PADI广播包,如果在这个以太网上有PPPoE服务器(即BRAS),那么回复一个PADO单播给A,然后A再发一个PADR给PPPoE服务器请求建立连接,服务器收到后,则回复一个PADS单播包,分配一个Session ID,PPPoE连接建立。PPPoE属于点到点链路,这种链路的特点是一端发送的数据总被另一端原顺序的接受到(即使两端的IP不在同一段上也能够收到)。里面有一个确定性:一定别对端收到;唯一性:一定被唯一的对端收到;顺序性:包不会乱续。这样的链路不需要MAC,不涉及ARP协议,也就没有ARP欺骗之类的问题。
六、结语
在校园网环境下,很多网络问题会表现出一些特别的性质,问题的解决也会有一些特殊,对于ARP欺骗的静态绑定,就不是十分适合校园网环境,这需要我们另辟蹊径,在工作和学习中不断的研究和发现,最终找到适合的方法来解决问题。
参考文献:
[1]W.Richard Stevens. TCP/IP详解 卷1:协议[M].机械工业出版社,2000.4.
[2]费根.TCP/IP协议族(第2版)[M].清华大学出版社,2003.11.
[3]Jeff Doyle,Jennifer Carroll.TCP/IP路由技术[M].人们邮电出版社,2007.1.
[4]谢希仁.计算机网络(第5版)[M].电子工业出版社,2008.1.
[关键词]APR 欺骗 PPPoE
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0810038-01
一、前言
地址转换协议ARP(Address Resolution Protocol)是查询给定的IP地址所对应的网卡物理地址(MAC地址)的协议,它工作在网络层与数据链路层之间,在数据链路层和硬件接口联系,同时对网络层供服务。其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用。一般说来,在多路访问的广播网络环境下都是需要ARP协议的。IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。
二、ARP查询
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,查询到目标设备的MAC地址,以保证通信的顺利进行。在每台安装有TCP/IP协议的主机里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的:
假设主机A(192.168.191.11)向主机B(192.168.191.17)发送数据,主机A会在自己的ARP缓存表中寻找是否有主机B的IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF-FF-FF-FF-FF-FF”,这相当于向同一网段内的所有主机发出这样的询问:“192.168.191.17的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.191.17的MAC地址是00-16-d4-a2-0f-f9”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以减少ARP缓存表的长度,加快查询速度。
三、ARP欺骗
上边的是正常情况下的ARP查询,如果其他主机想要冒充主机B与主机A通讯,由于ARP没有验证机制,这种欺骗非常容易成功。首先假设主机A没有主机B的ARP缓存,于是发送一个广播,主机B收到这个广播后回应主机A自己的MAC地址00-16-d4-a2-0f-f9,正常情况下只有主机B会回应这个广播ARP请求包,但是将要进行ARP欺骗的主机C收到A的广播ARP请求包后,也向主机A回应:“192.168.191.17的MAC地址是50-78-1c-00-18-e9”,为了能够保证ARP欺骗成功,主机C在回应主机A的广播ARP请求包时,会持续发送多个数据包,保证主机A会收到错误的MAC地址。这样主机A就会得到一个错误的ARP信息,把本来要发往主机B(00-16-d4-a2-0f-f9)的数据,错误的发往了主机C(50-78-1c-00-18-e9),。对于另外一种情况,A主机已经有主机B的ARP缓存,在主机A需要和B通讯时,它将不会发送广播ARP请求包,主机C为了ARP的欺骗成功,它将会探测网段内的所有存在的主机,然后将自己的MAC地址发送给主机A,使主机A的缓存更新为C的MAC地址。
四、ARP欺骗的防御
ARP欺骗其实是由于ARP协议的天生缺陷造成的,主机在收到ARP包时没有认证机制,这使得ARP欺骗异常容易。针对这种情况,防御起来其实也很简单,只需要不接受错误的ARP包就可以了,也就是静态绑定。A主机与B主机(或者主机A与网关B)通讯,在A主机中做一条静态的ARP表,“192.168.191.17的MAC地址是00-16-d4-a2-0f-f9”,相应的在主机B中也做一条静态ARP表,“192.168.191.11的MAC地址是00-50-04-c0-8f-75”,这样主机A和B在通讯过程中都不会发送广播ARP请求包,并且对于主动发送给它们试图冒充A或者B的ARP数据包,属于动态更新,是不能更改静态的ARP缓存,避免了ARP欺骗。
五、PPPoE的先天免疫
作静态绑定适用于小规模,比较稳定的网络环境,例如网吧之类。对于校园网,由于主机接入数量较多,还有笔记本,无线网等移动用户等,使得静态MAC绑定不易实施。一般说来,校园网环境下的ARP欺骗更多的是针对网关,使得用户的在访问Internet时出现忽通忽断的情况,这种情况下PPPoE是一个可以考虑的解决方案。PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议,利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE(PPP over Ethernet)。它的实现机理是这样的:A要跟外界通信,首先A发一个PADI广播包,如果在这个以太网上有PPPoE服务器(即BRAS),那么回复一个PADO单播给A,然后A再发一个PADR给PPPoE服务器请求建立连接,服务器收到后,则回复一个PADS单播包,分配一个Session ID,PPPoE连接建立。PPPoE属于点到点链路,这种链路的特点是一端发送的数据总被另一端原顺序的接受到(即使两端的IP不在同一段上也能够收到)。里面有一个确定性:一定别对端收到;唯一性:一定被唯一的对端收到;顺序性:包不会乱续。这样的链路不需要MAC,不涉及ARP协议,也就没有ARP欺骗之类的问题。
六、结语
在校园网环境下,很多网络问题会表现出一些特别的性质,问题的解决也会有一些特殊,对于ARP欺骗的静态绑定,就不是十分适合校园网环境,这需要我们另辟蹊径,在工作和学习中不断的研究和发现,最终找到适合的方法来解决问题。
参考文献:
[1]W.Richard Stevens. TCP/IP详解 卷1:协议[M].机械工业出版社,2000.4.
[2]费根.TCP/IP协议族(第2版)[M].清华大学出版社,2003.11.
[3]Jeff Doyle,Jennifer Carroll.TCP/IP路由技术[M].人们邮电出版社,2007.1.
[4]谢希仁.计算机网络(第5版)[M].电子工业出版社,2008.1.