「802.1X」- 模块交互原理

认证协议的交互流程

认证触发方式:

1)客户端主动触发方式:用户主动开启客户端,并输入用户名和密码,然后向接入设备发送 EAP 报文来触发认证(客户端发送 EAPoL-Start 报文触发认证);

2)接入设备主动触发方式:当接入设备接收到用户终端发送的 DHCP/ARP/DHCPv6/ND(或任意报文)报文后,主动触发用户终端自动弹出客户端界面,用户输入用户名和密码即可启动认证;

接入控制方式:

1)基于 Port 模式:当采用基于端口方式时,只要该端口下的第一个用户认证成功后,其他接入用户无须认证就可使用网络资源。但是当第一个用户下线后,其他用户也会被拒绝使用网络;

2)基于 MAC 模式:当采用基于 MAC 地址方式时,该端口下的所有接入用户均需要单独认证。当某一用户下线时,不影响其他用户接入网络;

EAP 中继方式(以 EAP-MD5 认证为例)

EAP 中继方式的认证流程:
1)当用户需要访问外部网络时打开 802.1X 客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求。此时,客户端程序将向设备端发出认证请求报文(EAPoL-Start),开始启动一次认证过程;
2)设备端收到认证请求报文后,将发出一个 Identity 类型的请求报文(EAP-Request/Identity)要求用户的客户端程序发送输入的用户名;
3)客户端程序响应设备端发出的请求,将用户名信息通过 Identity 类型的响应报文(EAP-Response/Identity)发送给设备端;
4)设备端将客户端发送的响应报文中的 EAP 报文封装在 RADIUS 报文(RADIUS Access-Request)中发送给认证服务器进行处理;
5)RADIUS Server 收到设备端转发的用户名信息后,将该信息与数据库中的用户名列表对比,找到该用户名对应的密码信息,用随机生成的一个 MD5 Challenge 对密码进行加密处理,同时将此 MD5 Challenge 通过 RADIUS Access-Challenge 报文发送给设备端;
6)设备端将 RADIUS Server 发送的 MD5 Challenge 转发给客户端;
7)客户端收到由设备端传来的 MD5 Challenge 后,用该 Challenge 对密码部分进行加密处理,生成 EAP-Response/MD5 Challenge 报文,并发送给设备端;
8)设备端将此 EAP-Response/MD5 Challenge 报文封装在 RADIUS 报文(RADIUS Access-Request)中发送给 RADIUS Server;
9)RADIUS Server 将收到的已加密的密码信息和本地经过加密运算后的密码信息进行对比,如果相同,则认为该用户为合法用户,并向设备端发送认证通过报文(RADIUS Access-Accept);
10)设备收到认证通过报文后,向客户端发送认证成功报文(EAP-Success),并将端口改为授权状态,允许用户通过该端口访问网络;

EAP 终结方式

EAP 终结方式与 EAP 中继方式的认证流程相比,不同之处在于:用来对用户密码信息进行加密处理的 MD5 Challenge 由设备端生成,之后设备端会把用户名、MD5 Challenge 和客户端加密后的密码信息一起送给 RADIUS Server,进行相关的认证处理。而在 EAP 中继方式中,用来对用户密码进行加密处理的 MD5 Challenge 由认证服务器生成,设备端只是负责将 EAP 报文封装在 RADIUS 报文中透传认证服务器,整个认证处理都由认证服务器来完成;