802.1x原理描述
介绍802.1x认证的实现原理。
简介
随着企业网络的应用和发展,病毒、木马、间谍软件、网络攻击等各种信息安全威胁也在不断增加。在传统的企业网络建设思路中,一般认为企业内网是安全的,安全威胁主要来自外界。但是研究证明,80%的网络安全漏洞都存在于网络内部,它们对网络的破坏程度和范围持续扩大,经常引起系统崩溃、网络瘫痪。另外,内部员工在浏览某些网站时,一些间谍软件、木马程序等恶意软件也会不知不觉地被下载到电脑中,并且在企业内网传播,产生严重的安全隐患。
因此,随着安全挑战的不断升级,仅通过传统的安全措施已经远远不够,安全模型需要由被动模式向主动模式转变,从根源(终端)彻底解决网络安全问题,提高整个企业的信息安全水平。
网络接入控制安全解决方案从接入网络的终端安全控制入手,将终端安全状况和网络准入控制结合在一起,通过检查、隔离、加固和审计等手段,加强网络用户终端的主动防御能力,保证企业中每个终端的安全性,进而保护企业整网的安全性。802.1x认证即是网络接入控制安全解决方案中非常重要的一种接入控制方式。
802.1x认证是一种基于接口的网络接入控制方式。“基于接口的网络接入控制”是指,在局域网接入设备的接口这一级,对所接入的用户设备通过认证来控制对网络资源的访问。
如图2-1所示,802.1x认证系统为典型的Client/Server结构,包括三个实体:客户端、设备端和认证服务器。
- 客户端:客户端是位于局域网链路一端的实体,由该链路另一端的设备端对其进行认证。客户端通常是支持802.1x认证的用户终端设备,用户通过启动客户端软件发起802.1x认证。
- 设备端:对连接到局域网链路对端的客户端进行认证。设备端通常为支持802.1x协议的网络设备,它为客户端提供接入局域网的接口。
- 认证服务器:为客户端提供认证服务的实体。认证服务器用于对用户进行认证、授权和计费,通常为RADIUS服务器。
- 当设备端工作于中继方式时,设备端与认证服务器之间也运行EAP协议,EAP帧中封装认证数据,将该协议承载在其它高层次协议中(如RADIUS),以便穿越复杂的网络到达认证服务器。
- 当设备端工作于终结方式时,设备端终结EAPOL消息,并转换为其它认证协议(如RADIUS),传递用户认证信息给认证服务器。
设备端每个物理接口都在逻辑上划分为受控端口和非受控端口。非受控端口始终开放,主要用来传递EAPOL协议帧,可随时保证接收客户端发出的EAPOL认证报文;受控端口只有在认证通过的状态下才打开,用于传递网络资源和服务。
认证模式
802.1x不仅支持基于端口的认证模式,还支持基于MAC的认证模式。
- 基于端口模式:当采用基于端口模式时,只要该端口下的第一个用户认证成功后,其他接入用户无须认证就可使用网络资源。但是当最后一个用户下线后,其他用户也会被拒绝使用网络。
- 基于MAC模式:当采用基于MAC地址模式时,该端口下的所有接入用户均需要单独认证。
端口控制方式
802.1x支持以下端口控制方式:
- 自动识别模式:端口初始状态为非授权状态,仅允许EAPOL报文收发,不允许用户访问网络资源;如果认证流程通过,则端口切换到授权状态,允许用户访问网络资源。
- 强制授权模式:端口始终处于授权状态,允许用户不经认证授权即可访问网络资源。
- 强制非授权模式:端口始终处于非授权状态,不允许用户访问网络资源。
认证触发方式
802.1x的认证过程可以由客户端主动发起,也可以由设备端发起。设备支持的认证触发方式包括以下两种:
- 客户端主动触发方式:客户端主动向设备端发送EAPOL-Start报文来触发认证。
- 设备端主动触发方式:设备端触发方式用于支持不能主动发送EAPOL-Start报文的客户端。
- 组播触发方式:不支持主动发送EAPOL-Start报文的客户端如Windows XP SP2,在休眠重启时需要依赖设备端主动向客户端发送组播报文触发用户认证。
- 单播触发方式:接入设备的客户端不能快速安装特定的客户端软件时,通过单播触发功能可以让设备向客户端发送单播报文触发用户认证。
在设备端主动组播触发方式中,设备端的一个端口仅支持连接一个802.1x客户端,且仅支持发送不带Tag的组播报文。
认证方式
- 在客户端与设备端之间,EAP协议报文使用EAPOL封装格式,并直接承载于LAN环境中。
- 在设备端与认证服务器(以RADIUS服务器为例)之间,EAP协议报文可以使用两种方式进行交互,具体如表2-1所示。
表2-1 802.1X认证方式
认证方式
定义
优势
劣势
EAP中继认证
也叫EAP透传认证,由网络接入设备直接把802.1X用户的认证信息以及EAP报文直接封装到RADIUS报文的属性字段中,发送给RADIUS服务器,而无须将EAP报文转换成标准的RADIUS报文后再发给RADIUS服务器来完成认证。
可以支持的认证方式包括:- MD5-Challenge:例如基于Linux操作系统的Xsupplicant客户端和FreeRadius服务器之间可以采用MD5-Challenge认证。服务器需要配置MD5策略属性。EAP-MD5认证方式简单。
- EAP-TLS:例如基于Symantec Endpoint的客户端和基于Symantec Enforcer 6100的RADIUS服务器之间可以采用不带证书的EAP-TLS认证方式。EAP-TLS认证方式安全性较好。
- EAP-PEAP:例如Windows XP操作系统自带的客户端和Windows Server 2003自带的RADIUS服务器之间可以采用EAP-PEAP认证方式。EAP-PEAP认证方式安全性较好。
说明:CE系列交换机不支持除此之外的中继认证方式。
要求RADIUS服务器支持相应的认证方法。
EAP终结认证
由网络接入设备终结用户的EAP报文,解析出用户名和密码,并对密码进行加密,再将EAP报文转换成标准的RADIUS报文后发给RADIUS服务器来完成认证。
RADIUS服务器并不需要支持EAP认证,减轻了服务器压力。
设备端处理较为复杂。
认证流程
对于EAP中继方式,802.1x认证流程如图2-2所示。
EAP中继认证的过程如下:
当用户需要访问外部网络时打开802.1x客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求。此时,客户端程序将向设备端发出认证请求帧(EAPOL-Start),开始启动一次认证过程。
设备端收到认证请求帧后,将发出一个Identity类型的请求帧(EAP-Request/Identity)要求用户的客户端程序发送输入的用户名。
客户端程序响应设备端发出的请求,将用户名信息通过Identity类型的响应帧(EAP-Response/Identity)发送给设备端。
设备端将客户端发送的响应帧中的EAP报文封装在RADIUS报文(RADIUS Access-Request)中发送给认证服务器进行处理。
RADIUS服务器收到设备端转发的用户名信息后,将该信息与数据库中的用户名列表中对比,找到该用户名对应的密码信息,用随机生成的一个MD5 Challenge对密码进行加密处理,同时将此MD5 Challenge通过RADIUS Access-Challenge报文发送给设备端。
设备端将RADIUS服务器发送的MD5 Challenge转发给客户端。
客户端收到由设备端传来的MD5 Challenge后,用该Challenge对密码部分进行加密处理,生成EAP-Response/MD5 Challenge报文,并发送给设备端。
- 设备端将此EAP-Response/MD5 Challenge报文封装在RADIUS报文(RADIUS Access-Request)中发送给RADIUS服务器。
- RADIUS服务器将收到的已加密的密码信息和本地经过加密运算后的密码信息进行对比,如果相同,则认为该用户为合法用户,并向设备端发送认证通过报文(RADIUS Access-Accept)。
- 设备收到认证通过报文后向客户端发送认证成功帧(EAP-Success),并将端口改为授权状态,允许用户通过端口访问网络。
- 用户在线期间,设备端会通过向客户端定期发送握手报文的方法,对用户的在线情况进行监测。
- 客户端收到握手报文后,向设备发送应答报文,表示用户仍然在线。缺省情况下,若设备端发送的两次握手请求报文都未得到客户端应答,设备端就会让用户下线,防止用户因为异常原因下线而设备无法感知。
- 客户端可以发送EAPOL-Logoff帧给设备端,主动要求下线。
- 设备端把端口状态从授权状态改变成未授权状态,并向客户端发送EAP-Failure报文。
对于EAP终结认证,802.1x认证流程如图2-3所示。
EAP终结方式与EAP中继方式的认证流程相比,不同之处在于步骤(4)中用来对用户密码信息进行加密处理的MD5 challenge由设备端生成,之后设备端会把用户名、MD5 challenge和客户端加密后的密码信息一起送给RADIUS服务器,进行相关的认证处理。