天天看點

WPA 4次握手

一、why EALOP 4-way handshake

    為了解決無線傳輸不安全,需要對無線連接配接的接入進行控制,并實作幀傳播的加解密。WPA 4-way handshake有點相當于一個“安全”地協商“交換”秘鑰的過程。這個秘鑰就是PTK(PairwiseTransient Key),成對傳輸秘鑰。

二、WPA 4-way handshake過程

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

WPA 4次握手

以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

WPA 4次握手

圖2 open方式的connect過程

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

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

c.     開始真正的資料傳輸

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

WPA 4次握手

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

a.Authenciation,同上

b. Association,同上

c EAPOL 4-way shake

d.真正的資料傳輸

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

WPA 4次握手

圖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)。

WPA 4次握手

圖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位。

參考

繼續閱讀