认证方法有两种:Open system authentication 与 Shared key authentication。
Open system authentication,特点是即使双方预先配置的 key 是不同的,用户也可以通过认证,但是数据报文是不能交互的,在 AP 收到数据报文之后检查发现 key 是错误的,报文将被丢弃。
Shared key authentication,特点是双方预先配置的密钥必须是一致的,否则不能通过认证。
支持 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。