PPPoE网络协议的安全性分析

2018-01-11 08:02张耀辉
湖南邮电职业技术学院学报 2017年4期
关键词:数据包账号协商

张耀辉

(湖南邮电职业技术学院,湖南长沙 410015)

PPPoE网络协议的安全性分析

张耀辉

(湖南邮电职业技术学院,湖南长沙 410015)

PPPoE被应用于ISP对付费用户提供的网络接入认证服务,但由于协议本身较简单和网络的复杂性,导致其存在一定的安全威胁。文章介绍了PPPoE协议的工作流程,并结合工作流程介绍了PPPoE所采用的认证协议,然后介绍了专门针对PPPoE协议漏洞的攻击模式,最后提出了对应的安全防护策略。

PPPoE;PAP;网络安全

PPPOE(Point-to-point protocol over Ethernet)是一个基于以太网数据帧格式来实现点对点数据传输的网络协议,协议被用于对付费网络用户提供的接入认证服务。PPPoE主要基于两个被使用的协议:Ethernet协议和PPP点对点协议。相对于其他认证协议,PPPoE具备自己独特的优势:快速简单,用户的身份验证迅速;允许多个用户同时连接同一数据链路,终端用户可以同时接入多个ISP,提高了通信链路的使用率;方便了ISP开发新的业务和IP地址的动态分配。但是,由于PPPoE协议本身较简单,加上局域网环境的复杂性,为网络用户带来了一定的安全隐患。本文先介绍PPPoE协议基本工作流程,然后分析拨号连接过程中存在的安全隐患,由此提出安全防护策略,提升用户的用网安全。

1 PPPoE协议的工作流程

PPPoE协议的工作过程分为两个独立的阶段:发现阶段(Discovery Stage)和会话阶段(Session Stage),不管是哪一个阶段的数据都将被按照以太网的帧格式进行封装,如图1所示。

图1 PPPoE报文格式示意图

1.1 发现阶段

如果某一个主机想要开始建立一个PPPoE会话,首先必须去执行一个发现访问服务器(AC,Access Concentration)的会话过程。网络中可能存在一个或者多个AC服务器,用户主机会从搜索到的AC服务器中选择其中一个,然后建立会话连接所需要的信息。PPPoE的发现阶段,共包括4个典型的数据包,如图2所示:

图2 PPPoE发现阶段的数据处理流程图

1)PADI(PPPoE Active Discovery Initiation,PPPoE主动发现初始化数据包)如图2(a)所示。PADI数据包的目的地址为广播地址,会话ID为0X0000,代码为0X09,有时还会携带所期望认证服务器的名称。

2)PADO(PPPoE Active Discovery Offer,PPPoE 主动发现提供数据包)如图2(b)所示。PPPoE网络中的所有认证服务器均会收到用户发送的PADI数据包,然后根据数据包中的服务器名称进行核查,并根据需要传回一个代码为0X07的PADO数据包。PADO数据包中包含有源客户主机的MAC地址,会话ID仍然为0X0000,但是此时会包含认证服务器的名称。

3)PADR(PPPoE Active Discovery Request,PPPoE主动发现请求数据包)如图2(c)所示。发出PADI数据包之后,可能会收到多个来自本网络内的AC服务器回传的PADO数据包,此时用户需要从认证服务器中选择其中一个作为认证服务器,一般情况下PPPoE的主机会选择回传PADO数据包最快的服务器,并向认证服务器发送一个代码为0X19的数据包。PADR数据包的目的地址为目标认证服务器的MAC地址,会话ID仍然为0X0000。

4)PADS(PPPoE Active Discovery Session-confirmation,PPPoE主动发现会话确认数据包)如图2(d)所示。当认证服务器收到客户的PADR数据包之后,就开始为PPPOE的会话进行准备,然后产生一个唯一的会话ID,并向客户机发送一个代码为0X65的PADS包。PADS数据包中的目的地址为该客户的MAC地址,会话ID则为刚刚产生的唯一ID号。当主机收到来自认证服务器的PADS包后,PPPoE协议的发现阶段已经全部完成。

1.2 会话阶段

PPPoE会话的建立,用户主机和AC服务器都需要向对方发送LCP报文来配置与测试通信链路的情况。PPPoE会话一旦开始,所有的以太网帧都将是单播的模式,并且会话ID将一直保持在发现阶段分配的值不变。会话阶段主要包括LCP协商阶段、认证阶段和NCP协商阶段。LCP协商阶段主要完成最大传输单元、是否需要进行认证以及采用什么方式认证等内容的协商;认证阶段客户主机会主动向认证服务器发送认证账号和密码信息,只有通过认证才能进入下一步协商工作;NCP协商阶段主要协商PPPoE报文的网络层参数,包括:IP地址、子网掩码、DNS服务器地址等。协商完成之后,用户主机就能自由地访问因特网了。

2 PPPoE的认证协议

PPPoE所支持的认证协议主要有以下四个:

1)PAP(密码认证协议)在认证的过程中采用的是明文方式传输密码。PPPoE协议中的服务器采用PAP进行用户身份的鉴别,方便合法用户访问网络资源。在认证过程中,客户机会不断地向AC服务器发送账号和密码,直到认证通过为止,如图3所示。PPP数据封装中的PAP协议代码为0XC023。

图3 PAP认证过程示意图

2)CHAP(询问握手认证协议)通过三次握手机制来完成对客户机的身份验证,可以在链路初始建立时、建立完成时以及建立完成之后重复进行。CHAP认证过程只需要在网络中传输用户名信息,并不传输用户的密码,因此它的安全性较PAP高。PPP数据封装中的CHAP协议代码为0XC223。CHAP的认证过程大致如图4所示:

图4 CHAP认证过程图

在初始链路建立完成之后,认证服务器则向客户端发送“challenge”消息;客户机用HASH函数计算出来的结果对认证服务器进行回应;认证服务器用自己计算的HASH值来判断应答是否匹配,如果计算出的HASH值和接收到的HASH值一致,则通过认证,否则终止该链接;每隔一段随机的时间,认证服务器又会向客户机发送一个新的“challenge”消息,重复前面的3个步骤。

在CHAP的认证过程中,通过不断递增的标识符和随机的询问值,有效地防御了来自其他终端的重放攻击,并通过重复校验的机制限制了单个攻击被暴露的时间。

3)MS-CHAP(微软公司的CHAP版本)分为MSCHAPv1和MS-CHAPv2,在MS-CHAPv1中协议代码为0X80,在MS-CHAPv2中的协议代码为0X81。MS-CHAP相对CHAP而言具有两个优点:MS-CHAP提供了由认证服务器控制的秘钥改变机制;MS-CHAP提供了认证重试机制。在MS-CHAPv2中甚至提出了认证服务器与客户机之间的双向认证机制。然而经过研究发现,不管是MS-CHAPv1还是MS-CHAPv2都存在一定的安全脆弱性,攻击者通过包里搜索等方式能够破解共享密钥,使之无法适应现实网络。

4)EAP(扩展认证协议)是一系列认证方式的集合或者一个认证框架,被应用于PPP连接与802.1X无线网络中。EAP包含一些常用的认证方法以及函数的协商,提供的常见方法有EAP-MD5、EAP-TTLS、EAP-AKA和EAP-EKE等,其中EAP-MD5的认证方式类似于CHAP认证。一般情况下,EAP的应用安全依赖于其所选择的底层EAP方法的安全。

3 PPPoE协议的攻击模式分析

针对PPPoE协议的攻击模式大致分为三步:首先,收集客户机与认证服务器的相关信息;然后,监视PPPoE网络,并利用前期获得的信息伪装成认证服务器,并通过一定的手段劫持合法用户的PPPoE连接;最后,在PPPoE的会话阶段协商中采用PAP认证协议,进而获得客户的账号和密码的明文。

3.1 信息收集

利用PPPoE协议的工作原理,攻击者就能收集用户主机和认证服务器的相关信息,比如认证服务器的名称、认证服务器的MAC地址和客户主机的MAC地址等。攻击者发送一个没有服务器名称的PADI数据包,该包会通过广播的形式发送给网络中的所有认证服务器,然后从接收到的PADO数据包就能收集到认证服务器的MAC地址、认证服务器的名称等。除此之外,其他客户主机在启动PPPoE拨号时发送的PADI数据包总是以广播形式发送,攻击主机监听PPPoE网络就能获得合法用户的PADI数据包,从而截获其中所包含的认证服务器名称、客户主机的MAC地址等。

3.2 PPPoE的劫持

攻击者在收集到有效的相关信息之后,就可以伪装成一个认证服务器来劫持合法用户的PPPoE连接。PPPoE劫持的过程大致如下:

首先,攻击者开启接入认证服务,并将主机的MAC地址、服务器的名称等修改成和认证服务器一致,开始接收用户的PADI数据包。一旦监测到有用户的PADI数据包,则向用户主机发送一个伪造的PADO数据包。由于局域网内部伪装的认证服务器总是比远在ISP机房的认证服务器要近,因此用户会首先采信伪装服务器回传的PADO数据包。由于伪造的PADO数据包中包含了所需的正确信息,并且以最快的速度到达用户主机,因此该用户会直接回复一个PADR数据包,而将真正的认证服务器给忽略。当伪装的认证服务器收到用户的PADR数据包之后,则会向其发送PADS数据包,并确定唯一的Session ID。至此,PPPoE的连接已经被劫持。

3.3 截获PPPoE的账号和密码

完成PPPoE发现阶段的劫持之后,伪装的认证服务器在接下来的PPPoE会话阶段的LCP协商阶段与客户主机协商使用PAP认证模式,然后用户将自己的账号和密码以明文形式发送给伪装的认证服务器。伪装的认证服务器一旦截获用户的账号和密码信息,立即终止与客户主机之间的PPPoE连接。此外,伪装的服务器通过设置只响应未截获账号的用户PADI请求,受害的用户如果再次发送PADI数据包则不再回复。受害用户因仍然能够正常访问Internet,而无法意识到自己的账号信息已经被泄露。

4 PPPoE安全防护策略

由于PPPoE发现阶段所存在的安全漏洞,导致用户的账号和密码信息可能会被攻击者所截获。再加上一般操作系统默认采用PAP认证协议,让截获合法用户的账号和密码较为容易。为了防御此类攻击,可以从以下几个方面进行安全防御。

1)建议客户主机上默认采用CHAP认证协议或者其他的安全认证协议,而不采用明文方式发送账号与密码信息的PAP认证协议。

2)建议客户设置安全系数较高的复杂用户口令,并且定期修改口令。

3)ISP应设置用户的账号和用户的MAC地址绑定,并限制一个账号只能同时登录1次。

4)ISP应经常进行伪装认证服务器检测,及时检测网络中存在的安全隐患。

总之,PPPoE协议本身所存在的漏洞导致了PPPoE拨号过程可能被非法攻击者所劫持。为了更好地保护用户的上网安全,应该以运营商为主导,网络用户积极参与,互相协作才能营造一个更为安全的上网环境。

[1]李铮.基于10G的E/GPON融合的研究[J].湖南邮电职业技术学院学报,2016(2):14-16.

[2]颜永明,叶克闯,许斌,徐海峰,左良,洪恺渊.LSN环境下政企用户PPPoE上网实现方案[J].电信科学,2017(9):155-161.

[3]钟卫民.PPPoE宽带接入技术常见问题及其对策分析[J].硅谷,2009(3):40.

[4]萧斌.PPPoE在校园网升级改造中的应用[J].电脑知识与技术,2017(7):59-60.

[5]迟克伟,石敬东.IPoE和PPPoE的原理及在广电网络中的应用[J].数字传媒研究,2017(3):86-88.

Security analysis of PPPoE network protocol

ZHANGYao-hui
(Hunan Post and Telecommunication College,Changsha,Hunan,China 410015)

PPPoE is used in ISP to provide network access authentication service to paid users,but the protocol itself is too simple and the complexity of the network leads to some security threats.This paper introduces the work flow of PPPoE protocol,the authentication protocol used by PPPoE,and the attack specifically for PPPoE protocol vulnerability model.Finally,it puts forward the correspondingsecuritystrategy.

PPPoE;PAP;network security

10.3969/j.issn.2095-7661.2017.04.008】

TP393.04

A

2095-7661(2017)04-0024-03

2017-09-08

张耀辉(1982-),男,湖南邵阳人,湖南邮电职业技术学院副教授,硕士,研究方向:计算机通信。

猜你喜欢
数据包账号协商
二维隐蔽时间信道构建的研究*
彤彤的聊天账号
施诈计骗走游戏账号
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
我国社交媒体账号的对外传播之道——以“人民日报”Facebook账号“特朗普访华”议题报道为例
SmartSniff
论协商实效与协商伦理、协商能力
Rheological Properties and Microstructure of Printed Circuit Boards Modifed Asphalt
以政协参与立法深化协商民主
Google Play游戏取消账号绑定没有Google账号也能玩