WPA 4次握手

一、why EALOP 4-way handshake
    爲了解決無線傳輸不安全,需要對無線連接的接入進行控制,並實現幀傳播的加解密。WPA 4-way handshake有點相當於一個「安全」地協商「交換」祕鑰的過程。這個祕鑰就是PTK(PairwiseTransient Key),成對傳輸祕鑰。

二、WPA 4-way handshake過程

1.     一個簡單的4-way handshake圖

以WPA/WPA2-PSK爲例,AP/STA在4-wayshake前各自都知道密碼(也就是用戶連接某SSID輸入的密碼)
1)AP(Authenticator)在1/4的時候把自己的隨機數(ANonce)傳給STA,STA在收到ANonce後,已經可以生成PTK

2)2/4的時候把自己的隨機數(SNonce)傳給AP,同時加了MIC(對應於PTK中的KCK,也就是祕鑰確認祕鑰)。AP收到SNonce以後,就可以生成PTK了,將收到的MIC和自己生成的MIC比較進行完整性校驗,如果校驗失敗,握手失敗。校驗成功,AP生成PTK和GTK(GroupTransient Key,用來加密組播和廣播)

3)3/4中將GTK和MIC一起發給STA,因爲此時雙方都已經知道PTK,所以會對GTK進行KEK加密。
4)STA發送ACK進行確認

4次握手完成以後,之後的幀傳播就都會以加密的方式進行。

 

2 . 4-way shake在AP/STA通訊中的位置
      1) open方式下的connect

圖2 open方式的connect過程

a.     Open System AuthencicationProcess ,就好比把網線插入AP的有線口

b.     Association:完成802.11layer-2的negotiation,建鏈,成功後AP會分配給STA一個AssociationID

c.     開始真正的數據傳輸

2) wpa/wpa2-psk方式下的connect

圖3wpa/wpa2-psk方式下的connect

a.Authenciation,同上

b. Association,同上

c EAPOL 4-way shake

d.真正的數據傳輸

3)wpa/wpa2-eap方式下的connect

圖4wpa/wpa2-eap方式下的connect

在2)的基礎上,wpa/wpa2-eap有個802.1x的auth過程,用於在認證服務器上認證,以獲取MSK

三、具體

1.     PTK的生成

生成PTK,需要5個必要元素,PMK,ANonce(Nonce 1,AP生成的隨機數),SNonce(Nonce2,STA生成的隨機數),AuthenticateMAC(MAC1,如AP的MAC),SupplicantMAC(MAC2,如STA的MAC)。

圖5 PTK的生成

圖的四個輸出裏面,DataEncr和DataMIC合起來就是前面提到的TK,EAPOLEncr/MIC分別對應KEK和KCK。

 

2.     PTK的組成

圖4的輸出就是PTK的組成。主要產生兩種祕鑰,一種在EAPOL4-way shake的時候用,一種在數據傳輸的時候用。每種又分成加密用和計算完整性用。PTK共64位,具體可以分成如下4個部分

1) EAPOLKCK(key confirmation key),16位,對應於圖5中的EAPOLMIC,以及圖1中的MIC,用來在EAPOL4-way shake時校驗完整性

2) EAPOLKEK(key encryption key),16位,對應於圖5中的EAPOLEncr,用於在EAPOL4-way shake的3/4的時候來加密GTK等數據

3) TK(TemporaryKey),16位,對應於圖5中的DataEncr,用於加密單播數據

4)  Data Mic,16位,對應於圖5中的DataMIC,具體又可分爲8位的Tx key和8位的Rx key,用於數據傳輸的時候TKIP方式的Michael完整性校驗。CCMP不用。
     

3.     PMK的生成

PMK,PairwiseMaster Key。在WPA-PSK中,PMK=pdkdf2_SHA1(passphrase,SSID, SSID length, 4096);而在802.1x+EAP中,PMK=L(MSK,0,256),其中MSK(Mastersession key)由802.1x交換獲得。在4-wayhandshake前,AP/STA已經知道了PMK。

4.     GTK

GTK,GroupTransient Key,用於對組播和廣播加解密。在圖5中,AP在3/4的時候會生成GTK,傳給STA

GTK由GMK(Groupmaster key)和成對祕鑰擴展獲得。GTK=PRF-X(GMK,」Group key expanision」,AA|GN),其中GN是Authenticator生成的Nonce,AA是Authenticator的MAC

GMK=MMK?

GTK只包含數據傳輸部分的Key,也就是GroupEncryption Key(加解密)和Michael Authenticator MIC Key(完整性校驗),沒有包含EAP-Key部分,所以只有32位。

 

 

參考

1.     https://en.wikipedia.org/wiki/IEEE_802.11i-2004

2.     https://supportforums.cisco.com/document/9879826/80211-wlan-roaming-and-fast-secure-roaming-cuwn#WPAWPA2-PSK

3.     http://blog.csdn.net/kyokowl/article/details/8500557 ———————————————— 版權聲明:本文爲CSDN博主「紅心地瓜」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/dlmu2001/article/details/51712292