近年来,宽带网接入逐渐成为网络技术的热点,宽带网建设蓬勃发展,业务如火如荼,成为网络运营商新的经济增长点。目前,广泛采用的宽带接入方式有HFC、xDSL、LAN接入等,其中,交换式以太网接入作为园区网建设的主流方案,以高带宽,技术成熟,成本低廉,易于建设和易于管理的优点,成为网络运营商优先采用的接入方式。但是,传统的以太网接入方式由于采用广播机制,其安全性较差,限制了它在公用接入网络中的应用。为了解决这个问题,目前广泛使用PPPoE或Web+DHCP的方案,但这两种方案都不能有效地解决认证安全问题。IEEE802.1委员会提出的802.1x协议,其实现基于以太网交换机,可以对用户进行认证、授权,从而为运营商提供了一种更实用、更安全的用户管理方式。本文主要介绍802.1x协议的基本原理及其在宽带接入网中的应用实例。
1. 802.1x协议结构和基本原理
1.1 802.1x协议
90年代后期,IEEE802 LAN/WAN委员会为解决无线局域网网络安全问题,提出了802.1x协议。后来,802.1x协议作为局域网端口的一个普通接入控制机制用在以太网中,主要解决以太网内认证和安全方面的问题。802.1x协议称为基于端口的访问控制协议(port based network access controlprotocol),该协议的核心内容如图1所示。
靠近用户一侧的以太网交换机上放置一个EAP(extensible authentication protocol)代理,用户PC机运行EAPoE(EAPover Ethernet)的客户端软件与交换机通信。初始状态下,交换机上的所有端口处于关闭状态,只有802.1x数据流才能通过,而另外一些类型的网络数据流,如动态主机配置协议、超文本传输协议(HTTP)、文件传输协议(FTP)、简单邮件传输协议(SMTP)和邮局协议(POP3)等都被禁止传输。
当用户通过EAPoE登录交换机时,交换机将用户同时提供的用户名口令传送到后台的Radius认证服务器上。如果用户名及口令通过了验证,则相应的以太网端口打开,允许用户访问。
1.2 802.1x协议的体系结构
802.1x协议的体系结构包括3个重要部分:客户端(supplicant system)、认证系统(authenticatorsystem)、认证服务器(authentication serversystem)。图2描述了三者之间的关系以及互相之间的通信。客户系统安装一个客户端软件,用户通过启动客户端软件发起802.1x协议的认证过程。为支持基于端口的接入控制,客户端系统须支持EAPoL(EAPoverLAN)协议。
认证系统通常为支持802.1x协议的网络设备。该设备有2个逻辑端口:受控端口和不受控端口,对应于不同用户的端口。不受控端口始终处于双向连通状态,主要用来传递EAPoL协议帧,保证客户端始终可以发出或接受认证;受控端口只有在认证通过之后才打开,用于传递网络资源和服务。如果用户未通过认证,受控端口处于未认证状态,则用户无法访问认证系统提供的服务。受控端口可配置为双向受控、仅输入受控2种方式,以适应不同的应用环境。
认证系统的端口访问实体通过不受控端口与客户端端口访问实体进行通信,二者之间运行EAPoL协议。认证系统的端口访问实体与认证服务器之间运行EAP协议。EAP协议并不是认证系统和认证服务器通信的唯一方式,其他的通信通道也可以使用。例如,如果认证系统和认证服务器集成在一起,2个实体之间的通信就可以不采用EAP协议。
认证服务器通常为RADIUS服务器,该服务器可以存储有关用户的信息。例如,用户的账号、密码以及用户所属的VLAN、CAR参数,优先级,用户的访问控制列表等。当用户通过认证后,认证服务器会把用户的相关信息传递给认证系统,由认证系统构建动态的访问控制列表,用户的后续流量将接受上述参数的监管。认证服务器和RADIUS服务器之间通过EAP协议进行通信。
1.3 802.1x协议的工作机制
802.1x协议工作机制如图3所示。由图3可见,认证的发起可以由用户主动发起,也可以由认证系统发起。当认证系统探测到未经过认证的用户使用网络,就会主动发起认证;用户端则可以通过客户端软件向认证系统发送EAPoL-Start开始报文发起认证。由客户端发送EAPoL退出报文,主动下线,退出已认证状态的直接结果就是导致用户下线,如果用户要继续上网则要再发起一个认证过程。
为了保证用户和认证系统之间的链路处于激活状态,而不因为用户端设备发生故障造成异常死机,从而影响对用户计费的准确性,认证系统可以定期发起重新认证过程,该过程对于用户是透明的,即用户无需再次输入用户名/密码。重新认证由认证系统发起,时间从最近一次成功认证后算起。重新认证时间默认值为3600s,而且默认重新认证是关闭的。
对于认证系统和客户端之间通信的EAP报文,如果发生丢失,由认证系统负责进行报文的重传。在设定重传的时间时,考虑网络的实际环境,通常会认为认证系统和客户端之间报文丢失的概率比较低以及传送延迟短,因此一般通过一个超时计数器来设定,默认重传时间为30s。
对于有些报文的丢失重传比较特殊,如EAPoL-Start报文的丢失,由客户端负责重传;而对于EAP失败和EAP成功报文,由于客户端无法识别,认证系统不会重传。由于对用户身份合法性的认证最终由认证服务器执行,认证系统和认证服务器之间的报文丢失重传也很重要。另外,对于用户的认证,在执行802.1x认证时,只有认证通过后,才有DHCP发起和IP分配的过程。由于客户终端配置了DHCP自动获取,则可能在未启动802.1x客户端之前,就发起了DHCP的请求,而此时认证系统处于禁止通行状态,这样认证系统会丢掉初始化的DHCP帧,同时会触发认证系统发起对用户的认证。
由于DHCP请求超时过程为64s,所以如果802.1x认证过程能在这64s内完成,则DHCP请求不会超时,能顺利完成地址请求;如果终端软件支持认证后再执行一次DHCP,就不用考虑64s的超时限制。
1.4 802.1x协议的认证过程
802.1x协议认证过程是用户与服务器交互的过程,其认证步骤如下:
(1)用户开机后,通过802.1x客户端软件发起请求,查询网络上能处理EAPoL数据包的设备。如果某台验证设备