PPPoE
,在安全的边缘徘徊
声明:撰写本文的目的在于让大家明白某些地区PPPoE(PPP Over Ethernet,基于以太网的 PPP协议)应用所存在的安全问题,并尽快找到弥补的方法。如果有谁利用本文提到的理论方法进行实际攻击,所造成的一切后果自负。
一
前言
宽带网的老用户肯定都知道,在几年前,我们去ISP(Internet Service Provider,因特网服务提供商)的营业厅开通网络的时候,他们会给我们一个IP地址,一个网关地址,回家来设好地址,插好网线,开机就可以上网了。而现在我们得到的是一个用户名和一个密码,开机后,先拨号,再上网,这就是PPPoE拨号。
PPPoE给网络提供商和用户都带来了很多好处,它的验证功能很好的解决了以前应用中非法用户私接线路上网的问题,也很好的完成了用户管理,流量统计等任务。随着管理水平的提高,用户的计费方式也更加灵活,包月、包时、包流量等计费方式满足了不同用户的需求。
然而,在PPPoE实施以来,安全问题一直没有得到重视。在某些地区,用户计算机仍旧处于一个快速以太网的环境当中,很容易受到攻击,但ISP在保证了经济效益的情况下并没有提供任何措施来保障用户在目前网络环境中的安全。在很多用户看来,账号和密码就代表着安全,其实不然,它们并不会给用户带来额外的保护,它们保证的是ISP的效益。
在快速以太网环境(以下简称网络)中,用户计算机会不可避免的泄露某些信息,比如机器的MAC地址,IP地址,广播报文所携带的其它信息等。这些信息有可能被攻击者利用,并对用户的网络安全造成威胁,损害用户的利益。
为了方便大家理解,用图1来简单的表示用户所处的网络环境。在实际应用中,网络拓扑会更加的复杂,然而它们的原理都是相同的。
二
. PPPoE
验证过程简述
此部分不是本文的重点,大家知道以下几点就可以:
1. PPPoE的验证过程是由用户计算机的PADI(PPPoE Active Discovery Initiation)数据包开始的,PADI广播发送,它的作用是询问网络上有没有提供服务的PPPoE验证服务器,服务器会以一个单播发送的PADO(PPPoE Active Discovery Offer)做为回应,之后两者之间的所有数据包都是单播发送的。
2.如果网络上存在多台验证服务器,用户计算机会与最先收到的PADO所对应的服务器进行后续的验证过程,而不再向其它服务器发送任何数据。
3.验证过程中,计算机会在一个数据包中以明文发送用户名和密码,因为是单播发送,所以只有验证服务器会收到。
4.验证成功后,用户就可以正常上网了。验证服务器会定时向用户发送Echo-Request数据包,用户则会回应一个Echo-Reply数据包,它们的作用是测试连接是否正常&#