1. 组网
802.1X协议是一种基于端口的网络接入控制协议,对接入设备的身份进行验证,从而达到控制其访问局域网的权限目的。
- 客户端: 一般为一个用户终端设备,用户可以通过启动客户端软件发起802.1X认证。
- 接入设备: 通常为支持802.1X协议的网络设备,它为客户端提供接入局域网的端口,充当客户端和认证服务器之间的中介,从客户端请求身份信息,并与认证服务器验证该信息。根据客户端的身份验证状态控制其对网络的访问权限。这里是交换机。
- 认证服务器: 用于实现对用户进行认证、授权和计费,通常为RADIUS服务器。
2. 协议介绍
802.1X认证系统使用可扩展认证协议EAP来实现客户端、设备端和认证服务器之间的信息交互。EAP协议可以运行在各种底层,包括数据链路层和上层协议(如UDP、TCP等),而不需要IP地址。因此使用EAP协议的802.1X认证具有良好的灵活性。
3. 认证过程
EAP-TLS是一种基于TLS协议的认证方法,802.1x EAP-TLS认证流程如下:
- 端口启用:网络交换机或接入点上的端口首先启用802.1X认证,以强制要求连接到该端口的设备进行身份验证。
- EAPOL-Start:客户端设备发送一个EAPOL-Start帧到交换机以启动认证过程。
- 交换机请求身份:交换机向客户端发送EAP请求/身份验证请求(EAP-Request/Identity)帧,要求客户端提供其身份。
- 客户端响应身份:客户端设备将其身份(通常是用户名)封装在EAP响应/身份(EAP-Response/Identity)帧中,并发送回交换机。
- 服务器选择:交换机将EAPOL-Identity消息转发给认证服务器(Authentication Server)。
- 服务器响应:认证服务器收到EAPOL-Identity消息后,将发送一个EAP请求(EAP-Request)消息给设备。
- 证书交换:设备收到EAP请求消息后,将生成一个TLS握手请求并发送给认证服务器。认证服务器将自己的证书发送回设备,同时要求设备发送其自身的证书。
- 证书验证:设备和认证服务器互相验证对方的证书。设备使用保存的CA证书链来验证服务器证书的有效性,服务器使用保存的设备证书链来验证设备证书的有效性。
- 会话密钥交换:如果证书验证成功,服务器将使用设备证书中的公钥加密一个会话密钥并发送给设备。设备使用自己的私钥解密会话密钥。现在,设备和认证服务器都拥有了相同的会话密钥。
- 认证成功:设备使用会话密钥生成一个成功的EAP响应消息,并发送给认证服务器。认证服务器接收到该消息后,通知交换机将端口置于"认证通过"状态。此时,认证设备可以访问网络。