# 企业级认证机制 ## 802.1X 端口访问控制 802.1X 是 IEEE 定义的基于端口的网络接入控制标准。在 WiFi 环境中,它提供了比 PSK 更强大的身份验证机制。 ### 三方架构 ``` ┌─────────────┐ │ RADIUS │ │ Server │ │ (认证服务器) │ └──────┬──────┘ │ RADIUS Protocol ┌──────┴──────┐ │ AP │ │ (Authenticator)│ └──────┬──────┘ │ EAP over LAN (EAPOL) ┌──────┴──────┐ │ STA │ │ (Supplicant)│ └─────────────┘ 角色说明: - Supplicant(申请者):客户端设备上的 802.1X 客户端软件 - Authenticator(认证者):AP/交换机,控制端口访问 - Authentication Server(认证服务器):RADIUS 服务器,执行实际认证 ``` ### 认证流程 ``` Phase 1 - EAP 认证: STA ──EAPOL-Start──→ AP ──EAP-Request/Identity──→ STA STA ──EAP-Response/Identity──→ AP ──RADIUS Access-Request──→ RADIUS RADIUS ──EAP 交换(多轮)──↔ STA (通过 AP 转发) RADIUS ──RADIUS Access-Accept (含 MSK)──→ AP Phase 2 - 密钥分发: AP 从 MSK 提取 PMK → 执行四次握手 → 建立加密通道 ``` ## EAP(Extensible Authentication Protocol)方法 EAP 是一个框架,支持多种认证方法: ### EAP-TLS(Transport Layer Security) **最安全的 EAP 方法**——基于双向证书认证。 ``` 流程: 1. TLS握手开始 2. Server 发送证书 → Client 验证 3. Client 发送证书 → Server 验证 4. 双方生成主密钥 优点: - 双向证书认证(最高安全级别) - 每次会话生成唯一 PMK - 支持前向保密 缺点: - 需要为每个用户/设备管理证书 - PKI 基础设施复杂 ``` ### EAP-TTLS / PEAP(Tunneled Methods) **隧道方法**——先建立加密隧道,再在隧道内认证: ``` Phase 1 - 建立 TLS 隧道: Server 发送证书 → Client 验证 → 建立加密通道 Phase 2 - 隧道内认证 (多种选择): - TTLS: PAP / CHAP / MS-CHAPv2 / Kerberos - PEAP: 通常使用 MS-CHAPv2(用户名+密码) 优点: - 只需服务器端证书(降低部署复杂度) - 保护密码传输(在 TLS 隧道内) - 兼容现有 AD/LDAP 用户库 缺点: - MS-CHAPv2 本身有弱点(Ntlmap 攻击) - 单向认证(Client 不验证 Server 证书时受 MITM 风险) ``` ### EAP-FAST(Flexible Authentication via Secure Tunneling) ``` Phase 0 - PAC (Protected Access Credential) 预分发: Server ──PAC──→ Client (带外或自动) Phase 1 - 使用 PAC 建立隧道: Client ──PAC──→ Server → TLS-like 隧道 Phase 2 - 隧道内认证: 同 TTLS/PEAP ``` ### EAP 方法对比 | 方法 | 认证方式 | 证书需求 | 安全等级 | 部署复杂度 | |------|---------|---------|---------|-----------| | EAP-TLS | 双向证书 | Client + Server | ★★★★★ | 高 | | EAP-TTLS | 隧道+密码 | Server only | ★★★★☆ | 中 | | PEAPv0/EAP-MSCHAPv2 | 隧道+密码 | Server only | ★★★☆☆ | 低 | | PEAPv1/GTC | 令牌/一次性密码 | Server only | ★★★★☆ | 中 | | EAP-FAST | PAC+密码 | PAC (可选证书) | ★★★★☆ | 中 | ## RADIUS(Remote Authentication Dial-In User Service) ### RADIUS 协议基础 ``` Client (NAS/AP) Server (RADIUS) │ │ │── Access-Request ───────────────→│ │ (Username, Password/EAP, NAS-IP)│ │ │ │←─ Access-Accept ─────────────────│ │ (MSK, Filtering-Rules, Session-Time)│ │ │ │── Accounting-Request ───────────→│ │ (Session start/stop/stats) │ ``` ### 关键 RADIUS 属性 | 属性 | 说明 | |------|------| | User-Name | 用户名 | | EAP-Message | EAP 载荷 | | MS-MPPE-Keys | MSK 密钥材料(WPA-Enterprise) | | Filter-ID | VLAN/ACL 策略标识 | | Session-Timeout | 会话超时时间 | | Idle-Timeout | 空闲超时时间 | ### RADIUS 安全 - **认证码**:使用共享密钥(Shared Secret)保护请求完整性 - **密码加密**:Password 属性使用 MD5(shared_secret) 加密 - **局限**:只有 Password 和 EAP-Message 被加密,其他属性明文传输 - **推荐**:使用 RADIUS over TLS(radsec, RFC 6678) ## 动态 VLAN 分配 企业 WiFi 可根据认证结果将用户分配到不同 VLAN: ``` RADIUS Access-Accept: Tunnel-Type = VLAN Tunnel-Medium-Type = IEEE-802 Tunnel-private-group-ID = 100 ← VLAN ID 结果: - 员工 → VLAN 10 (内网) - 访客 → VLAN 20 (隔离互联网) - IoT → VLAN 30 (受限访问) ``` ## 证书管理最佳实践 | 项目 | 建议 | |------|------| | CA 类型 | 内部 PKI 或商业 CA | | 证书有效期 | ≤ 2 年(个人证书), ≤ 5 年(服务器证书) | | 私钥保护 | TPM / Secure Element / keystore | | 吊销机制 | CRL 或 OCSP | | 自动化部署 | SCEP / EST / MDM 推送 |