企业级认证机制
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 推送 |