EAP-PWD 是什么
EAP-PWD 是 RFC 5931 定义的口令型 EAP 方法:终端与服务器用同一个口令,在椭圆曲线群上做一次口令认证密钥交换,双方各自派生主密钥。口令本身不在链路上传输,认证过程中也没有可离线穷举的散列,因此抓包无法离线跑字典。它不需要服务器证书,也不需要 PKI,代价是终端支持度不如 PEAP,安全性完全取决于口令质量。
基本信息
| 标准 | RFC 5931 |
|---|---|
| 凭据 | 口令(无需服务器证书、无需 PKI) |
| 密码学基础 | 椭圆曲线上的口令认证密钥交换 |
| 抗攻击特性 | 抗离线字典与被动窃听 |
| 不提供 | 不抗在线口令猜测、不提供第二因素 |
| 终端支持 | Android 较好;Windows 原生不提供;其余平台上线前实测 |
| 部署侧 | AP/hostapd 或 RADIUS 需支持 eap_server 与 EAP-PWD 方法 |
典型使用场景
- 没有 PKI 预算的小型机构:买不了也运维不起证书体系,又想避开 PEAP+MSCHAPv2 的握手弱点
- 替代 PEAP:MSCHAPv2 的握手材料可被离线破解,EAP-PWD 不暴露可离线穷举的散列
- 实验室与测试环境:快速搭起企业级认证链路,验证终端行为与漫游表现
- 有强口令策略但无证书的场所,如教学与临时办公网络
- 支持度盘点与试点:先在少数部门、少数机型上运行足够周期再决定推广
- 与 EAP-TLS 分工:高安全区域用客户端证书,过渡期用 EAP-PWD 覆盖其余终端
接入点配置要点
接入点配置要点
# hostapd.conf:企业模式 + EAP-PWD,只列出关键项
wpa=2
wpa_key_mgmt=WPA-EAP
ieee8021x=1
eap_server=1
eap_user_file=/etc/hostapd/eap_users # 用户凭据文件
# eap_users 里给该用户只放行 EAP-PWD,避免协商降级到更弱的方法
# 文件为「用户名 / 方法 / 口令」三列的形式,具体写法以官方文档为准常见 EAP 方法对照
| 方法 | 凭据 | 需要服务器证书 | 主要弱点 |
|---|---|---|---|
| EAP-PWD | 口令 | 不需要 | 强度全看口令,实现漏洞要及时打补丁 |
| PEAP-MSCHAPv2 | 账号口令 | 需要 | MSCHAPv2 握手可被离线破解 |
| EAP-TTLS | 账号口令 | 需要 | 内层方法选择不当即降级 |
| EAP-TLS | 客户端证书 | 需要 | 证书运维成本最高 |
| EAP-SIM/AKA | 手机卡 | 不需要(依赖运营商网关) | 企业侧无法映射到员工身份 |
2019 年公开过 wpa_supplicant/hostapd 在 SAE 与 EAP-PWD 上的侧信道与校验缺失类问题(CVE-2019-9494 家族)。启用前把 AP 固件、终端与 supplicant 的补丁状态核对清楚,长期未更新的老固件不建议依靠 EAP-PWD 做唯一防线。
EAP-PWD 抗的是离线穷举,不是口令本身:口令偏弱或已泄露时,攻击者仍可在线尝试或用伪 AP 诱导用户输入,而且没有第二因素兜底。这类场景应直接上客户端证书。
部署时只放行 EAP-PWD。若同时开放 PEAP、EAP-TTLS 等方法,终端可能协商到更弱的方法,EAP-PWD 的收益会被完全抵消。