开放系统身份验证(Open System Authentication)
- AP不对STA的身份进行认证的认证方式。
- 开放系统认证流程
- STA发送认证请求给AP
- AP响应认证请求
- STA发送关联请求给AP
- AP发送关联回应
有线等效加密(Wired Equivalent Privacy, WEP)
- WEP认证流程
- STA发送认证需求 (Authentication Request) 给AP。
- AP把质询明文(Challenge text)放到响应帧 (Authentication Response) 里。
- STA取出Challenge Text,利用WEP加密方法对Challenge Text进行加密,然后发送给AP。
- AP收到第二次Authentication Request后,对数据进行解密;如果ICV正确,并且解密后的译文等于发送的质询明文,则通过身份认证。
- AP返回验证结果给STA,如果验证成功,STA将通过Association请求加入无线网络。
- STA和AP发送关联请求和响应
网络安全存取技术 (Wi-Fi Protected Access, WPA)
- WPA认证流程
- STA采用开放系统认证方式完成认证。
- STA和AP 通过Association Request 和 Association Response 进行关联。
- STA和AP通过EAPOL-KEY进行WPA的四次握手协商,产生临时**。
- EAPOL-Key Frame Notation
- EAPOL-Key(S, M, A, I, K, KeyRSC, ANonce/SNonce, MIC, RSNIE, GTK[N])
EAPOL-Key的位 | 说明 |
---|---|
S | initial key exchange完成标志 |
M | MIC包含标志位,除了EAPOL Key 1外,其他三帧都应该置该位 |
A | 信息需要ACK标志位,当接收方需要回应这条消息时,置该位 |
I | 安装标志位,是否安装paiwise key |
K | key类型标志位,P (Pairwise), G (Group/STAKey) |
KeyRSC | 在KeyRSC域中 |
ANonce/SNonce | Authenticator/Supplicant nonce |
MIC | 完整性校验位 |
RSNIE | RSN IE,在Key data域中 |
GTK | 加密的GTK,在Key data域中 |
N | key标识,用于只是GTK的索引 |
- 四次握手过程
-
EAPOL Key1
Authenticator → Supplicant: EAPOL-Key (0, 0, 1, 0, P, 0, ANonce, 0, 0, 0)
AP发送A Nonce给STA, nonce 是防范重放攻击的随机值,信息本身并未经过认证。
2. EAPOL Key2
Supplicant → Authenticator: EAPOL-Key(0, 1, 0, 0, P, 0, SNonce, MIC, RSNIE, 0)
STA收到EAPOL Key1后,自己随机产生一个S Nounce,然后结合A Nounce, PMK, AP MAC和STA MAC得到PTK和MIC key。
然后将同一个802.1x data通过HMAC_MD5算出MIC,MIC值会被KCK加密;STA把MIC和SNounce发给AP
3. EAPOL Key3
Authenticator → Supplicant: EAPOL-Key(1, 1, 1, 1, P, KeyRSC, ANonce, MIC, RSNIE, GTK[N])
AP收到EAPOL Key3后,通过AP MAC,STA MAC, SNounce,ANounce得到PTK和MIC,如果计算的MICSTA发送的MIC一致,说明两者的PMK一致,否则AP发出Deauth帧给STA。
AP随后会通过EAPOL-KEY 把GTK加密后发给STA,该**用KEK加密。
整个信息系经过「**确认」**的认证,得到MIC(用KCK加密),MIC会加入到其中。
4. EAPOL Key4
Supplicant → Authenticator: EAPOL-Key(1, 1, 0, 0, P, 0, 0, MIC, 0, 0)
STA把EAPOL Key3 解密后,发一个确认信息给AP, 可以开始使用这些**。
AP收到EAPOL Key4后,通过AP MAC,STA MAC, SNounce,ANounce计算MIC,如果计算的MIC和STA发送的MIC一致,则第四次握手成功。
5. 数据传输
STA和AP将安装Key到驱动,对数据进行加密传输。