企业级认证机制

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 推送