802.1X 认证技术指南

802.1X 认证技术指南
802.1X 认证技术指南目录概述802.1X 基本概念体系架构与角色EAP可扩展认证协议RADIUS 协议常见认证方法详解认证流程完整示例部署实践安全注意事项故障排查参考标准与资料1. 概述802.1X是 IEEE 标准定义的基于端口的网络访问控制Port-Based Network Access Control协议。它工作在 OSI 模型的数据链路层Layer 2为有线以太网和无线局域网WLAN提供身份认证和授权能力。简而言之802.1X 确保一个设备在通过认证之前只能与认证系统通信认证通过后才被允许访问更广泛的网络资源。为什么需要 802.1X场景问题802.1X 的解决方案企业有线网络任何人插上网线就能接入内网端口认证未认证前只允许 EAPoL 流量企业 Wi-FiWPA2-EnterprisePSK 共享密码难以管理、泄露风险高每个用户使用独立凭证认证访客/合作伙伴网络需要临时身份认证但不暴露内部凭据支持多种 EAP 方法可对接不同认证源物联网设备接入需要自动认证但无法交互输入密码支持基于证书EAP-TLS的设备认证2. 802.1X 基本概念2.1 什么是基于端口的访问控制物理或逻辑端口如交换机的一个接口、Wi-Fi 的关联关系在认证通过之前处于unauthorized未授权状态此时只允许EAPoLEAP over LAN流量通过。认证通过后端口切换到authorized已授权状态正常数据流量方可通行。端口状态模型包含两个虚拟端口受控端口Controlled Port承载正常数据流量默认关闭。非受控端口Uncontrolled Port只允许 EAPoL 认证帧通过始终开放。2.2 关键术语术语全称说明PAEPort Access Entity端口中执行 802.1X 操作的实体EAPoLEAP over LAN在以太网帧中封装 EAP 消息的协议Supplicant请求者请求接入网络的客户端用户设备Authenticator认证器控制端口状态的网络设备交换机/APAuthentication Server认证服务器验证凭据的后端服务器通常为 RADIUS 服务器MABMAC Authentication Bypass对于不支持 802.1X 的设备如打印机使用 MAC 地址绕过认证3. 体系架构与角色802.1X 采用客户端-认证器-认证服务器三层架构┌─────────────────┐ EAPoL ┌──────────────────┐ RADIUS ┌──────────────────┐ │ │ ◄──────────────► │ │ ◄─────────► │ │ │ Supplicant │ │ Authenticator │ │ Auth Server │ │ (客户端/请求者) │ │ (交换机/AP) │ │ (RADIUS 服务器) │ │ │ │ │ │ │ └─────────────────┘ └──────────────────┘ └──────────────────┘3.1 Supplicant请求者/客户端安装在终端设备上的软件实体负责发起认证请求、响应认证服务器的挑战。常见实现WindowsWired AutoConfig/WLAN AutoConfig、wpa_supplicantLinux、maconfigmacOS。持有认证凭据用户名/密码、证书、智能卡等。3.2 Authenticator认证器位于 Supplicant 和 Authentication Server 之间执行关口角色。典型设备支持 802.1X 的交换机有线或无线接入点AP/无线控制器WLC无线。职责从 Supplicant 接收 EAPoL 帧解封装后通过 RADIUS 发送给认证服务器。根据认证服务器的授权结果Accept/Reject控制端口状态。可选地发送计费Accounting信息。3.3 Authentication Server认证服务器后端验证服务通常运行RADIUS协议。典型产品FreeRADIUS、Cisco ISE、Aruba ClearPass、Microsoft NPS。职责验证 Supplicant 提供的凭证。返回认证结果Accept 携带授权属性 / Reject / Challenge。下发授权属性VLAN、ACL、QoS 策略等。4. EAP可扩展认证协议4.1 EAP 概述EAPExtensible Authentication Protocol定义于 RFC 3748是一个认证框架而非单一的认证方法。它允许使用多种认证机制密码、证书、令牌等在 Supplicant 和 Authentication Server 之间交换认证信息。关键特性Authenticator 无需了解具体认证方法只需在 Supplicant 和 Auth Server 之间中继EAP 消息。支持重传和分片适配不同链路质量。EAP 本身不保证消息的完整性/机密性——这由下层协议或具体的 EAP 方法提供。4.2 EAP 消息类型类型码名称说明1Request认证服务器发出要求客户端提供信息2Response客户端对 Request 的回复3Success认证成功4Failure认证失败5Legacy Nak客户端拒绝所提议的 EAP 方法已弃用6…Expanded Types扩展类型4.3 EAPoLEAP over LANEAPoL 是以太网链路层上封装 EAP 帧的协议定义于 802.1X 标准中。关键帧类型EAPoL 类型值说明EAP-Packet0承载 EAP 消息EAPoL-Start1Supplicant 主动发起认证EAPoL-Logoff2Supplicant 主动注销端口回到未授权状态EAPoL-Key3用于 WPA/WPA2 无线加密密钥派生EAPoL-Encapsulated-ASF-Alert4告警消息4.4 EAP 方法类型码EAP 方法类型码RFCMD5-Challenge4RFC 3748OTP5RFC 3748GTC (Generic Token Card)6RFC 3748TLS13RFC 5216TTLS (Tunneled TLS)21RFC 5281PEAP (Protected EAP)25RFC (draft)FAST43RFC 4851PWD52RFC 59315. RADIUS 协议5.1 概述RADIUSRemote Authentication Dial-In User Service定义于 RFC 2865认证与授权和 RFC 2866计费是最广泛使用的 AAAAuthentication, Authorization, Accounting协议。5.2 RADIUS 消息类型消息码名称方向1Access-RequestAuthenticator → Server2Access-AcceptServer → Authenticator3Access-RejectServer → Authenticator4Accounting-RequestAuthenticator → Server5Accounting-ResponseServer → Authenticator11Access-ChallengeServer → Authenticator5.3 RADIUS 工作原理Supplicant Authenticator RADIUS Server │ │ │ │ EAPoL-Start │ │ │────────────────────►│ │ │ │ │ │ EAP-Request/ID │ │ │◄────────────────────│ │ │ │ │ │ EAP-Response/ID │ │ │────────────────────►│ │ │ │ RADIUS Access-Request │ │ │ (EAP-Response/ID) │ │ │─────────────────────────►│ │ │ │ │ │ RADIUS Access-Challenge │ │ │ (EAP-Request/Method) │ │ │◄─────────────────────────│ │ EAP-Request/ │ │ │ (Method) │ │ │◄────────────────────│ │ │ │ │ │ (EAP 方法特定消息交换...) │ │ │ │ │ │ RADIUS Access-Request │ │ │ (EAP-Response/... ) │ │ │─────────────────────────►│ │ │ │ │ │ RADIUS Access-Accept │ │ │ (EAP-Success Attrs) │ │ │◄─────────────────────────│ │ EAP-Success │ │ │◄────────────────────│ │ │ │ │ │ [端口打开开始数据通信] │ │ │ │ │ EAPoL-Logoff │ │ │────────────────────►│ │ │ │ RADIUS Accounting- │ │ │ Request (Stop) │ │ │─────────────────────────►│ │ │ │5.4 RADIUS 的关键特征UDP 协议认证/授权端口 1812计费端口 1813早期设备可能使用 1645/1646。共享密钥认证Authenticator 和 Server 之间通过 pre-shared secret 保证消息完整性。属性编码AV Pairs所有信息以 Type-Length-Value 格式传输。代理功能RADIUS 服务器可以代理请求到其他 RADIUS 服务器Proxy RADIUS。相比 DiameterRADIUS 的后继者RADIUS 更加轻量且仍是最主流的 AAA 协议。5.5 RADIUS 常见属性Attribute属性号名称说明1User-Name用户名2User-Password用户密码使用共享密钥加密4NAS-IP-Address认证器的 IP 地址5NAS-Port认证器端口号6Service-Type服务类型如 Framed, Login, Authenticate-Only8Framed-IP-Address分配给客户端的 IP 地址12Framed-MTU链路 MTU26Vendor-Specific厂商特定属性VSA27Session-Timeout会话超时时间28Idle-Timeout空闲超时时间30Called-Station-Id被叫站 ID如 AP 的 MAC/BSSID31Calling-Station-Id主叫站 ID客户端的 MAC 地址61NAS-Port-Type端口类型Ethernet, Wireless, Virtual 等64Tunnel-Type隧道类型用于 VLAN 分配65Tunnel-Medium-Type隧道介质类型81Tunnel-Private-Group-ID隧道组 ID通常用于指定 VLAN ID87NAS-Port-Id端口标识字符串95NAS-IPv6-Address认证器的 IPv6 地址6. 常见认证方法详解6.1 EAP-MD5不推荐安全性低。仅发送密码的 MD5 哈希值易受字典攻击和中间人攻击。不提供服务器身份验证——客户端无法确认是否连接到了合法服务器。不适用于无线网络WPA/WPA2-Enterprise 要求使用提供密钥派生能力的 EAP 方法。6.2 EAP-TLS安全性极高。基于双向 X.509 证书认证服务器和客户端都需要证书。工作流程服务器向客户端发送服务器证书。客户端验证服务器证书CA 签名验证、证书吊销检查。客户端向服务器发送客户端证书。服务器验证客户端证书。TLS 会话建立派生主密钥MSK, Master Session Key。优点安全性最高支持证书吊销密钥自动派生。缺点部署复杂度高需要 PKI公钥基础设施管理大规模客户端证书。适用场景政府、金融、大型企业等安全要求极高的环境。6.3 PEAPProtected EAP安全性高。在 TLS 隧道内进行二次认证。工作流程建立外层 TLS 隧道服务器证书认证客户端客户端验证服务器证书。在加密隧道内进行内层认证通常为 EAP-MSCHAPv2 或 EAP-GTC。TLS 会话派生 MSK。版本PEAPv0Microsoft内层用 EAP-MSCHAPv2最广泛使用。PEAPv1Cisco内层用 EAP-GTC。优点仅服务器需要证书客户端证书可选。与 Windows Active Directory 深度集成支持域凭据认证。缺点如果服务器证书验证配置不当易受中间人攻击。6.4 EAP-TTLSTunneled TLS安全性高。与 PEAP 类似使用 TLS 隧道封装内层认证。区别TTLS 比 PEAP 更灵活——内层认证可以使用非 EAP 协议如 PAP, CHAP, MS-CHAP, MS-CHAPv2 甚至 LDAP。支持两种内层认证方式EAP inside TTLS内层使用 EAP 方法。PAP/CHAP inside TTLS内层使用传统 PPP 认证协议。优点兼容性最强可与遗留认证系统对接。缺点不像 PEAP 那样被广泛原生支持尤其在移动设备上。6.5 EAP-FASTFlexible Authentication via Secure Tunneling由 Cisco 开发用于替代 LEAP轻量级 EAP已废弃。使用 PACProtected Access Credential在客户端和服务器之间建立 TLS 隧道。支持三种认证模式PAC 手动分发提前将 PAC 部署到客户端。PAC 自动分发首次使用匿名 Diffie-Hellman 建立隧道不安全。带服务器认证的自动分发添加服务器证书验证。优点不需要管理证书。6.6 EAP-PWD安全性中~高。使用共享密码进行认证不需要证书。基于PAKEPassword Authenticated Key Exchange——使用 Dragonfly 算法抵抗离线字典攻击。优点部署简单只需密码不会泄露密码哈希。缺点密码策略强度、轮换需要严格控制支持度中等。6.7 方法对比总结方法服务器证书客户端证书密码安全性部署复杂度常用场景EAP-MD5❌❌✅极低低❌ 已废弃EAP-TLS✅✅❌极高高金融、政务、高安全PEAP✅❌✅高中企业最广泛EAP-TTLS✅❌✅高中遗留系统对接EAP-FAST❌❌✅中~高中Cisco 环境EAP-PWD❌❌✅中~高低简单密码场景7. 认证流程完整示例以下以PEAPv0/EAP-MSCHAPv2企业中最常见组合为例展示完整消息交换Supplicant Authenticator RADIUS Server (PC/Phone) (Switch/AP) (FreeRADIUS/ISE) │ │ │ │ EAPoL-Start │ │ │─────────────────────────►│ │ │ │ │ │ EAP-Request/Identity │ │ │◄─────────────────────────│ │ │ │ │ │ EAP-Response/Identity │ │ │ (userdomain) │ │ │─────────────────────────►│ │ │ │ RADIUS Access-Request │ │ │ (EAP-Response/Identity) │ │ │─────────────────────────────►│ │ │ │ │ │ RADIUS Access-Challenge │ │ │ (EAP-Request/PEAP Start) │ │ │◄─────────────────────────────│ │ │ │ │ EAP-Request/PEAP │ │ │ (Start TLS) │ │ │◄─────────────────────────│ │ │ │ │ │ [TLS 握手开始] │ │ │ Server Certificate │ │ │ ClientHello/Change-Cipher │ │ [TLS 隧道建立完成] │ │ │ │ │ │ [加密隧道内] │ │ │ EAP-Response/ │ │ │ Identity (再次) │ │ │─────────────────────────►│ │ │ │ RADIUS Access-Request │ │ │ (加密后的EAP包) │ │ │─────────────────────────────►│ │ │ │ │ │ RADIUS Access-Challenge │ │ │ (EAP-Request/ │ │ │ MSCHAPv2 Challenge) │ │ │◄─────────────────────────────│ │ │ │ │ [隧道内] │ │ │ EAP-Request/ │ │ │ MSCHAPv2 Challenge │ │ │◄─────────────────────────│ │ │ │ │ │ [客户端计算 NT Hash │ │ │ Challenge Response] │ │ │ │ │ │ [隧道内] │ │ │ EAP-Response/ │ │ │ MSCHAPv2 Response │ │ │─────────────────────────►│ │ │ │ RADIUS Access-Request │ │ │ (加密后的 Response) │ │ │─────────────────────────────►│ │ │ │ │ │ [服务器验证成功] │ │ │ │ │ │ RADIUS Access-Accept │ │ │ (EAP-Success MSK │ │ │ Tunnel-Private-Group-ID ) │ │ │◄─────────────────────────────│ │ │ │ │ EAP-Success │ │ │◄─────────────────────────│ │ │ │ │ │ [端口打开, 数据通行] │ │ │ │ │ │ [WPA 4-Way Handshake] │ (仅无线: 派生 PTK) │ │ │ │ │ [正常数据传输] │ │ │ │ │ │ EAPoL-Logoff │ │ │─────────────────────────►│ │ │ │ RADIUS Accounting-Request │ │ │ (Acct-Status-TypeStop) │ │ │─────────────────────────────►│ │ │ RADIUS Accounting-Response │ │ │◄─────────────────────────────│ │ │ │认证中的密钥派生对于无线网络认证过程结束后会派生以下密钥MSKMaster Session KeyRADIUS 服务器和客户端同时派生长度为 64 字节。PMKPairwise Master KeyAuthenticator 从 MSK 的前 32 字节派生WPA/WPA2。PTKPairwise Transient Key通过四次握手4-Way Handshake从 PMK 派生用于加密单播流量。GTKGroup Temporal Key由 AP 生成用于加密广播/组播流量。8. 部署实践8.1 部署前规划步骤要点1. 确定认证方法PEAP-MSCHAPv2通用、EAP-TLS高安全、EAP-TTLS兼容旧系统2. 选择 RADIUS 服务器FreeRADIUS开源、Cisco ISE、Aruba ClearPass、Microsoft NPS3. 准备 PKI如需证书搭建 CA 服务器申请服务器证书配置客户端信任链4. 规划用户/设备身份源Active Directory、LDAP、本地数据库5. 定义授权策略VLAN 映射、ACL 策略、会话超时、ACL 过滤6. 网络设备配置交换机/AP 上启用 802.1X配置 RADIUS 服务器 IP 和共享密钥7. 客户端配置与分发GPO组策略或 MDM 推送 802.1X 配置8. 分阶段上线Monitor → Low-Impact → High-Impact → Full8.2 FreeRADIUS 基本配置示例/etc/freeradius/3.0/clients.confclient switch-1 { ipaddr 192.168.1.10 secret shared_secret_123 shortname switch-1 nastype cisco } client ap-1 { ipaddr 10.0.100.20 secret another_secret shortname ap-1 nastype aruba }/etc/freeradius/3.0/users本地用户alice Cleartext-Password : Pssw0rd Service-Type Framed-User, Tunnel-Type VLAN, Tunnel-Medium-Type IEEE-802, Tunnel-Private-Group-ID 100 bob Cleartext-Password : Str0ng!Pass Service-Type Framed-User, Tunnel-Type VLAN, Tunnel-Medium-Type IEEE-802, Tunnel-Private-Group-ID 200AD 集成片段/etc/freeradius/3.0/mods-enabled/ntlm_authntlm_auth { program /usr/bin/ntlm_auth --request-nt-key \ --username%{mschap:User-Name} \ --challenge%{mschap:Challenge:-00} \ --nt-response%{mschap:NT-Response:-00} }8.3 Cisco 交换机基本配置! 全局启用 AAA aaa new-model aaa authentication dot1x default group radius aaa authorization network default group radius aaa accounting dot1x default start-stop group radius ! 配置 RADIUS 服务器 radius server RAD-FREERADIUS address ipv4 192.168.1.100 auth-port 1812 acct-port 1813 key shared_secret_123 ! 接口配置 802.1X interface GigabitEthernet1/0/1 switchport mode access authentication port-control auto ! auto 802.1X 启用 authentication host-mode multi-domain ! 支持电话PC多设备 authentication violation restrict dot1x pae authenticator spanning-tree portfast8.4 无线网络配置要点SSID 配置为WPA2-Enterprise或 WPA3-Enterprise / 802.1X-2020。认证密钥管理AKM选择 802.1X/SHA-1 或 802.1X/SHA-256。RADIUS 服务器配置在 WLC/AP 上指向企业 RADIUS 集群。无线 802.1X 使用EAPoL over Wireless封装在 802.11 管理帧中。建议使用WPA3-Enterprise 192-bit mode满足高安全如政府/金融环境。8.5 客户端配置WindowsGPO 方式!-- Wireless Profile 示例 (WLAN-Profile.xml) --WLANProfilexmlnshttp://www.microsoft.com/networking/WLAN/profile/v1nameCompany-WiFi/nameSSIDConfigSSIDnameCompany-WiFi/name/SSID/SSIDConfigconnectionTypeESS/connectionTypeconnectionModeauto/connectionModeMSMsecurityauthEncryptionauthenticationWPA2/authenticationencryptionAES/encryptionuseOneXtrue/useOneX/authEncryptionOneXxmlnshttp://www.microsoft.com/networking/OneX/v1cacheUserDatatrue/cacheUserDataauthModeuser/authModeEAPConfigEapHostConfigEapMethodType25/Type!-- PEAP --SubType26/SubType!-- MSCHAPv2 --/EapMethod/EapHostConfig/EAPConfig/OneX/security/MSM/WLANProfileLinuxwpa_supplicant# /etc/wpa_supplicant/wpa_supplicant.conf network{ ssidCompany-WiFi key_mgmtWPA-EAP eapPEAP identityalicecompany.com passwordPssw0rd phase2authMSCHAPV2 ca_cert/etc/ssl/certs/company-ca.pem domain_suffix_matchradius.company.com }9. 安全注意事项9.1 常见威胁威胁描述防范措施中间人攻击攻击者伪装成合法 AP/交换机严格验证服务器证书检查 CN/SAN使用 EAP-TLS恶意 AP/交换机攻击者放置虚假网络设备启用 802.1X 双向认证NAD 设备验证凭证窃取密码被截获或破解使用 EAP-TLS证书认证限制失败重试次数会话劫持攻击者劫持已认证会话启用动态 VLAN 和会话超时周期重新认证证书伪造攻击者使用伪造 CA 签发证书严格信任链管理使用 CRL/OCSP 检查吊销状态9.2 最佳实践证书验证不可跳过客户端必须验证 RADIUS 服务器证书的完整性和合法性。使用强 EAP 方法首选 EAP-TLS其次是 PEAP/EAP-TTLS。不要使用 EAP-MD5 或 LEAP。密码策略使用复杂密码或与 AD 集成考虑 MFA多因素认证。网络分段不同角色用户/设备分配到不同 VLAN配合 ACL 限制访问范围。RADIUS 安全使用强共享密钥建议 32 字符随机字符串。限制 RADIUS 服务器的来源 IP。考虑 RADIUS over TLSRADSEC, RFC 6614加密传输。日志与监控集中采集 RADIUS 日志设置认证失败告警阈值。定期证书轮换不要在配置中硬编码证书密码。分阶段上线使用 Monitor 模式先观察不阻断降低风险。9.3 补充安全机制DACL动态 ACLRADIUS 下发动态 ACL将用户权限收窄到最小必要。CoAChange of AuthorizationRFC 5176 定义的 RADIUS 动态授权变更可在认证后动态调整策略。MACsec802.1AE配合 802.1X 使用提供 L2 数据加密防范旁路监听。MAB 风险MAC 地址可伪造MAB 仅适用于打印机等非交互设备且应结合接入交换机端口安全。10. 故障排查10.1 常见问题与排查步骤问题可能原因排查方法客户端始终无法认证交换机/AP 上未启用 802.1X检查show authentication sessions交换机认证超时RADIUS 服务器不可达或端口被防火墙拦截pingtelnet RADIUS-IP 1812检查连通性证书错误客户端不信任服务器证书检查 CA 证书是否安装到客户端受信任根目录验证证书 CN/SANMSCHAPv2 错误 691用户名/密码错误在 RADIUS 服务器上检查认证日志MSCHAPv2 错误 734PPP 链路控制协议错误通常是 AD 账号限制或密码过期检查 AD 账户状态认证通过但无法上网VLAN 分配错误或 DHCP 故障检查 RADIUS 下发的 Filter-ID / Tunnel-Private-Group-ID检查 DHCP scope无线频繁断线重连会话超时设置过短检查 RADIUS 下发的 Session-Timeout 和 Idle-TimeoutPEAP 隧道建立失败TLS 版本不匹配或密码套件不支持检查 RADIUS 服务器的 TLS 配置推荐 TLS 1.210.2 调试命令RADIUS 服务器端FreeRADIUS# 前台调试模式强烈推荐freeradius-X# 查看认证日志tail-f/var/log/freeradius/radius.log# 测试认证radtest 命令radtest alice Pssw0rd localhost0testing123Cisco 交换机端show authentication sessions show authentication sessions interface gi1/0/1 details show dot1x all detail debug dot1x all debug radius authentication无线控制器端show wireless client summary show wireless client mac-address MAC detail客户端Linux wpa_supplicant# 前台调试wpa_supplicant-iwlan0-c/etc/wpa_supplicant.conf-ddt# 查看认证状态wpa_cli status10.3 抓包分析推荐抓包过滤条件Wireshark / tcpdump# 有线 EAPoL ether proto 0x888e # RADIUS udp port 1812 or udp port 1813 # 无线 EAPoL在 AP 的 uplink 口或 WLC 侧抓包 ether proto 0x888e and host RADIUS-IP关键观察点EAP-Request Identity 是否正常发出客户端 EAP-Response Identity 是否正确RADIUS Access-Challenge 是否携带了预期的 EAP 方法类型TLS 握手是否完成Server Hello 中的证书是否完整如果看到TLS Alert检查版本和密码套件兼容性。MSCHAPv2 Challenge/Response 交换是否正常最终收到 Access-Accept 还是 Access-Reject11. 参考标准与资料标准文档IEEE IETF RFC标准标题链接IEEE 802.1X-2020Port-Based Network Access ControlIEEERFC 2865RADIUS (Authentication Authorization)RFC 2865RFC 2866RADIUS AccountingRFC 2866RFC 2868RADIUS Attributes for Tunnel Protocol SupportRFC 2868RFC 3579RADIUS Support for EAPRFC 3579RFC 3580IEEE 802.1X RADIUS Usage GuidelinesRFC 3580RFC 3748Extensible Authentication Protocol (EAP)RFC 3748RFC 5080Common RADIUS Implementation IssuesRFC 5080RFC 5176Dynamic Authorization Extensions to RADIUSRFC 5176RFC 5216EAP-TLSRFC 5216RFC 5281EAP-TTLSRFC 5281RFC 6614Transport Layer Security for RADIUSRFC 6614推荐阅读/开源项目FreeRADIUS 官方文档wpa_supplicant 官方文档Wireshark EAPoL 分析指南IETF EAP Method RegistryNIST SP 800-97: Guide to IEEE 802.11i Security本文档基于 IEEE 802.1X-2020 及 IETF 相关标准撰写。建议读者根据具体网络环境厂商设备型号、软件版本查阅对应设备文档。