802.1X协议是IEEE802 LAN/WAN委员会为了解决无线局域网网络安全问题提出的。后来该协议作为局域网端口的一个普通接入控制机制应用于以太网中,主要用于解决以太网内认证和安全方面的问题,在局域网接入设备的端口这一级对所接入的设备进行认证和控制。
802.1X体系结构
802.1X的系统是采用典型的Client/Server体系结构,包括三个实体,如图所示。
1) 客户端:局域网中的一个实体,多为普通计算机,用户通过客户端软件发起802.1X认证,并由设备端对其进行认证。客户端软件必须为支持802.1X认证的用户终端设备。
2) 设备端:通常为支持802.1X协议的网络设备,如本交换机,为客户端提供接入局域网的物理/逻辑端口,并对客户端进行认证。
3) 认证服务器:为设备端提供认证服务的实体,例如可以使用RADIUS服务器来实现认证服务器的认证和授权功能。该服务器可以存储客户端的相关信息,并实现对客户端的认证和授权。为了保证认证系统的稳定,可以为网络设置一个备份认证服务器。当主认证服务器出现故障时,备份认证服务器可以接替认证服务器的工作,保证认证系统的稳定。
802.1X认证工作机制
IEEE 802.1X认证系统使用EAP(Extensible Authentication Protocol,可扩展认证协议)来实现客户端、设备端和认证服务器之间认证信息的交换。
1) 在客户端与设备端之间,EAP协议报文使用EAPOL封装格式,直接承载于LAN环境中。
2) 在设备端与RADIUS服务器之间,可以使用两种方式来交换信息。一种是EAP协议报文使用EAPOR(EAP over RADIUS)封装格式承载于RADIUS协议中;另一种是设备端终结EAP协议报文,采用包含PAP(Password Authentication Protocol,密码验证协议)或CHAP(Challenge Handshake Authentication Protocal,质询握手验证协议)属性的报文与RADIUS服务器进行认证。
3) 当用户通过认证后,认证服务器会把用户的相关信息传递给设备端,设备端根据RADIUS服务器的指示(Accept或Reject)决定受控端口的授权/非授权状态。
802.1X认证过程
认证过程可以由客户端主动发起,也可以由设备端发起。一方面当设备端探测到有未经过认证的用户使用网络时,就会主动向客户端发送EAP-Request/Identity报文,发起认证;另一方面客户端可以通过客户端软件向设备端发送EAPOL-Start报文,发起认证。
802.1X系统支持EAP中继方式和EAP终结方式与远端RADIUS服务器交互完成认证。以下关于两种认证方式的过程描述,都以客户端主动发起认证为例。
1. EAP中继方式
EAP中继方式是IEEE 802.1X标准规定的,将EAP(扩展认证协议)承载在其它高层协议中,如EAP over RADIUS,以便扩展认证协议报文穿越复杂的网络到达认证服务器。一般来说,EAP中继方式需要RADIUS服务器支持EAP属性:EAP-Message和Message-Authenticator。本交换机支持的EAP中继方式是EAP-MD5,EAP-MD5认证过程如图所示。
1) 当用户有访问网络需求时打开802.1X客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求(EAPOL-Start报文)。此时,客户端程序将发出请求认证的报文给设备端,开始启动一次认证过程。
2) 设备端收到请求认证的数据帧后,将发出一个请求帧(EAP-Request/Identity报文)要求用户的客户端程序发送输入的用户名。
3) 客户端程序响应设备端发出的请求, 将用户名信息通过数据帧(EAP-Response/Identity报文)发送给设备端。设备端将客户端发送的数据帧经过封包处理后(RADIUS Access-Request报文)送给认证服务器进行处理。
4) RADIUS服务器收到设备端转发的用户名信息后,将该信息与数据库中的用户名表对比,找到该用户名对应的密码信息,用随机生成的一个加密字对它进行加密处理,同时也将此加密字通过RADIUS Access-Challenge报文发送给设备端,由设备端转发给客户端程序。
5) 客户端程序收到由设备端传来的加密字(EAP-Request/MD5 Challenge报文)后,用该加密字对密码部分进行加密处理(此种加密算法通常是不可逆的,生成EAP-Response/MD5 Challenge报文),并通过设备端传给认证服务器。
6) RADIUS服务器将收到的已加密的密码信息(RADIUS Access-Request报文)和本地经过加密运算后的密码信息进行对比,如果相同,则认为该用户为合法用户,反馈认证通过的消息(RADIUS Access-Accept报文和EAP-Success报文)。
7) 设备收到认证通过消息后将端口改为授权状态,允许用户通过端口访问网络。在此期间,设备端会通过向客户端定期发送握手报文的方法,对用户的在线情况进行监测。缺省情况下,两次握手请求报文都得不到客户端应答,设备端就会让用户下线,防止用户因为异常原因下线而设备无法感知。
8) 客户端也可以发送EAPOL-Logoff报文给设备端,主动要求下线,设备端把端口状态从授权状态改变成未授权状态。
1. EAP终结方式
EAP终结方式将EAP报文在设备端终结并映射到RADIUS报文中,利用标准RADIUS协议完成认证、授权和计费。设备端与RADIUS服务器之间可以采用PAP或者CHAP认证方法。本交换机支持的EAP终结方式是PAP,PAP认证过程如图所示。
在PAP模式中,交换机对用户口令信息进行加密,然后把用户名、随机加密字和客户端加密后的口令信息一起转发给认证服务器进行相关的认证处理;而在EAP-MD5模式中,随机加密字由认证服务器产生,交换机只负责把认证信息报文封装后转发。
802.1X定时器
802.1X认证过程中会启动多个定时器以控制接入用户、设备以及RADIUS服务器之间进行合理、有序的交互。本交换机中的802.1X定时器主要有以下三种:
1) 客户端认证超时定时器:当交换机向客户端发送报文后,交换机启动此定时器,若在该定时器设置的时长内,交换机没有收到客户端的响应,交换机将重发该报文。
2) 认证服务器超时定时器:当交换机向认证服务器发送报文后,交换机启动此定时器,若在该定时器设置的时长内,交换机没有收到认证服务器的响应,交换机将重发认证请求报文。
3) 静默定时器:对用户认证失败以后,交换机需要静默一段时间(该时间由静默定时器设置),在静默期间,交换机不再处理该用户的认证请求。
……