认证方法
认证方法有两种:Open system authentication 与 Shared key authentication。
-
Open system authentication: 开放系统认证是缺省使用的认证机制,即不认证。如果认证类型设置为开放系统认证,则所有请求认证的客户端都会通过认证。开放系统认证包括两个步骤:第一步是请求认证,第二步是返回认证结果。如果认证结果为“成功”,那么客户端和AP就通过双向认证。
-
Shared key authentication:
在 802.11i 中规定:Shared Key authentication can be used if and only if WEP has been selected.
所以除了 WEP 认证,其余的认证方式都不会选择 Shared Key 方式,只能选择 Open System 方式。
Shared key 方式在认证前 STA 和 AP 上都预先设置好密码,称为预设密钥。
它的认证过程是 4 布:
第一步:认证请求;
第二步:请求响应;
AP 生成挑战明文,发送。
第三步:STA 用 key 加密挑战明文,发送;
第四布:发送认证结果。
AP 收到密文,解密,与第二步中的挑战明文对照,发送认证结果。
两种认证方法的区别
Open system authentication,特点是即使双方预先配置的 key 是不同的,用户也可以通过认证,但是数据报文是不能交互的,在 AP 收到数据报文之后检查发现 key 是错误的,报文将被丢弃。
Shared key authentication,特点是双方预先配置的密钥必须是一致的,否则不能通过认证。
WPA 认证后继——EAPOL
支持 WPA 的 AP 需要工作在开放系统认证方式下,STA 以 WPA 方式与 AP 建立关联之后,如果网络中有 Radius 服务器作为认证服务器,那么 STA 就使用 802.1x 方式进行认证;如果网络中没有 Radius 服务器,STA 与 AP 就会采用预设共享密钥(PSK,Per-Shared Key)的方式进行认证。
使用 802.1x 方式:STA 通过了 802.1x 身份验证之后,AP 会得到一个与 STA 相同的 Session Key,AP 与 STA 将该 Session Key 作为 PMK(Pairwise Master Key)。
使用 PSK 方式:AP 与 STA 将 PSK 当作 PMK。
随后 AP 与 STA 通过 EAPOL 协议进行四次握手(4-Way Handshake),整个过程中,AP 和 STA 均确认了对方是否持有与自己一致的 PMK,如果不一致,四次握手过程就会宣告失败。
EAPOL,即 EAP over LAN,在 Authenticaor 和 Supplicant 之间传输。而在 Authenticaor 和 Radius Server 之间传输的是 RADIUS 协议,进一步地讲,是 EAP over RADIUS。