发布时间:2011-06-26 04:25:18作者:知识屋
一、前言
近年来,网络数据业务发展迅速,宽带用户呈爆炸式的增长,运营商在 采用xDSL,LAN,HFC,无线等多种接入方式的同时,为了构建一个可运营、可管理、可盈利的宽带网络,十分关心如何有效地完成用户的管 理,PPPoE(PPP over Ethernet)就是随之出现的多种认证技术中的一种。
1、PPP over Ethernet
1998年后期问世的以太网上点对点协议(PPP over Ethernet)技术是由Redback 网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETF RFC制的基础上联合开发的。通过把最经济的局域网技术——以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用 可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便 易行。同时该技术亦简化了最终用户在动态地选择这些服务时的操作。
PPPoE 基于以太网的点对点协议,当前的 PPPOE 主要被 ISP用于 xDSL 和 cable modems 与用户端的连接,他们几乎与以太网一样。PPPoE 是一种标准的点对点协议 (PPP), 他们之间只是传输上的差异:PPPoE 使用 modem 连接来代替普通的以太网。一般来说 ,PPPoE 是基于与用户认证和通过分发 IP 地址给客户端。一个PPPoE连接由客户端和一个访问集线服务器组成,客户端可以是一个安装了 PPPoE 协议的windows电脑。PPPoE 客户端和服务器能工作在任何以太网等级的路由器接口
2、网通的宽带接入方式
网通的宽带接入方式通常都是LAN的方式,即所有的用户都位于一个大的局域网中,客户端要上网,需要先使用相应的账号进行PPPoE拨号,通过验证之后获得公网IP,然后才能上网。
二、PPPoE验证过程
1、PPPoE验证过程
首先了解一下PPPoE验证过程:
假如客户端要通过一个局域网与远程的PPPoE服务器进行身份验证,这时,它们会有两个不同的会话阶段,Discovery阶段和PPP会话阶段。当一 个客户端想开始一个PPPoE会话时,它必须首先进行发现阶段以识别对端的以太网MAC地址,并建立一个PPPoESESSON_ID。在发现阶段,基于 网络的拓扑结构,客户端可以发现多个PPPoE服务器,然后从中选择一个,不过通常都是选择反应最快的一个。Discovery阶段是一个无状态的阶段, 该阶段主要是选择接入服务器,确定所要建立的PPP会话标识符Session ID,同时获得对方点到点的连接信息;PPP会话阶段执行标准的PPP过程。当此阶段完成,通信的两端都知到PPPoESESSON_ID和对端的以太网 地址,它们一起定义了一个唯一的PPPoE会话。这些步骤包括客户端广播一个发起分组(PASI),一个或多个PPPoE服务器发送响应分组 (PADO),客户端向选中的服务器发送请求分组(PADR),选中的PPPoE服务器发送一个确认分组(PADS)给客户端。当客户端接收到确认分组, 它可以开始进行PPP会话阶段。当PPPoE服务器发送出确认分组,它可以开始PPP会话。当客户端在指定的时间内没有接收到PADO,它应该重新发送它 的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。如果客户端正等待接收PADS,应该使用具有客户端重新发送PADR的相似超时机制。在 重试指定的次数后,主机应该重新发送PADI分组。PPPOE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPOE会话。它可以由 客户端或者PPPOE服务器发送。当接收到一个PADT,不再允许使用这个会话来发送PPP业务在发送或接收PADT后,即正常的PPP不能使用时,可以 使用PADT,一旦PPPOE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的,身份验证是发生在会话阶段 的,PPPoE会话的SESSION_ID一定不能改变,并且必须是发现阶段分配的值。
2、PPP over Ethernet基本帧格式
建立一个以太网上点对点协议会话包括两个阶段:1。发现(Discovery)阶段。在Discovery过程中用户主机以广播方式寻找可以连接的所有 的接入集线器,并获得其以太网MAC地址。然后选择需要连接的主机并确定所要建立的PPP会话识别标号。2。PPP会话阶段。用户主机与接入集线器根据在 发现阶段所协商的PPP会话连接参数进行PPP会话。因此对应于这两种过程,以太网上点对点协议帧格式(如图2)也包括两种类型:发现阶段的以太网帧中的 类型字段为0x8863;PPP会话阶段的以太网帧中的类型字段为0x8864,它们均已得到IEEE的认可。PPPoE包中的版本(VER) 字段和类型(TYPE)字段长度均为4比特,在当前版本PPPoE建议中这两个字段值都固定为0x1。代码(CODE)字段长度为8比特,根据两阶段中各 种数据包的不同功能而值不同。在PPP会话阶段CODE字段为0x00,发现阶段中的各种数据包格式将在下面详细介绍发现阶段时给出。版本标识号码 (SESSION_ID)字段长度为16比特,在一个给定的PPP会话过程中它是固定不变的。值0xffffff为保留值。长度(LENGTH)字段为 16比特长,指示PPPoE净荷长度。发现阶段PPPoE载荷可以为空或由多个标记(TAG)组成,每个标记都是TLV(类型-长度-值)的结构;PPP 会话阶段PPPoE载荷为标准的点对点协议包。
3、发现(Discovery)阶段的详细介绍
一个典型的发现(Discovery)阶段共包括4个步骤:
1、主机发出PPPoE有效发现启动(PADI)包。以太网目的地址为广播地址0xffffffffffff, CODE字段为0x09,SESSION_ID为0x0000。PADI包必须至少包含一个服务名称类型的标签(标签类型字段为0x0101),向接入集 线器提出所要求提供的服务。
2、接入集线器收到在服务范围内的PADI包后,发送PPPoE有效发现提供(PADO)包以响应请 求。其CODE字段为0x07,SESSION_ID仍为0x0000。PADO包必须包含一个接入集线器名称类型的标签(标签类型字段为0x0102) 以及一个或多个服务名称类型标签,表明可向主机提供的服务种类。
3、主机在可能收到的多个PADO包中选择一个合适的,然后向所选 择的接入集线器发送PPPoE有效发现请求(PADR)包。其CODE字段为0x19,SESSION_ID仍为0x0000。PADR包必须包一个服务 名称类型标签,确定向接入集线器请求的服务种类。
4、接入集线器收到PADR包后准备开始PPP会话,它发送一个PPPoE有效发 现会话确认(PADS)包。其CODE字段为0x65,SESSION_ID为接入集线器所产生的一个唯一的PPPoE会话标识号码。PADS包也必须包 含一个接入集线器名称类型的标签确认向主机提供的服务。当主机收到PADS包确认后,双方就进入PPP会话阶段。
三、PPPoE验证的利用
从上面的过程我们需要注意两点:发现阶段是广播方式进行的。会话阶段是单播;客户端通常选择反应最的PPPOE服务器进行身份验证和接入,什么是反应快?我们可以理解成客户端将与最近的PPPOE服务器进行身份验证。
利用思路:这就是今天要说的关键,如果我们架设一个PPPOE服务器,那么与我们同一交换机或集线器(通常是一个楼层)的用户都将会选择这个服务器进行接入和身份验证,而不会去寻找远方的PPPOE服务器。
下面说一下利用过程:
1、架设PPPOE服务器。架设PPPOE服务器,原作者是利用Windows Server2003的“路由与远程访问”服务来架设的,然后安装PPPoE驱动,这样使得路由与远程访问服务增加了PPPOE服务。当然也可使用 Linux系统,网上有一篇关于Linux+PPPoE服务器的文章。
2、将PPPOE身份验证设为未加密方式(具体情况还得取决与PPPOE服务器),不用多说,这主要是为了方便明文嗅探。
3、使用Sniffer进行嗅探。
2011-07-02
黑客基础教程之如何查看论坛隐藏贴(怎么查看论坛隐藏贴)
一个黑客所需的基本技能
黑客基础教程之如何查看电脑配置(怎么查看自己的电脑配置)
怎么取消开机密码
什么是肉鸡,如何避免电脑成为肉鸡?
一名初级黑客所必须掌握的基本技能
电脑常见安全隐患,你知道吗?
黑客基础教程之黑客入侵渗透教程
【注意】QQ密码本地破解的原理和方法