WPA 4次握手
WPA 4-way handshake
dlmu2001
tomorrow_cyz@163.com
一、why EALOP 4-way handshake
????為了解決無線傳輸不安全,需要對無線連接的接入進行控制,并實現(xiàn)幀傳播的加解密。?
????WPA 4-way handshake有點相當(dāng)于一個“安全”地協(xié)商“交換”秘鑰的過程。
????這個秘鑰就是PTK(PairwiseTransient Key),成對傳輸秘鑰。
二、WPA 4-way handshake過程
1.?????一個簡單的4-way handshake圖
圖1 4-wayshake overview
以WPA/WPA2-PSK為例,AP/STA在4-wayshake前各自都知道密碼(也就是用戶連接某SSID輸入的密碼)
1)AP(Authenticator)在1/4的時候把自己的隨機數(shù)(ANonce)傳給STA,STA在收到ANonce后,已經(jīng)可以生成PTK
2)2/4的時候把自己的隨機數(shù)(SNonce)傳給AP,同時加了MIC(對應(yīng)于PTK中的KCK,也就是秘鑰確認(rèn)秘鑰)。AP收到SNonce以后,就可以生成PTK了,將收到的MIC和自己生成的MIC比較進行完整性校驗,如果校驗失敗,握手失敗。校驗成功,AP生成PTK和GTK(GroupTransient Key,用來加密組播和廣播)
3)3/4中將GTK和MIC一起發(fā)給STA,因為此時雙方都已經(jīng)知道PTK,所以會對??
????GTK進行KEK加密。
4)STA發(fā)送ACK進行確認(rèn)
4次握手完成以后,之后的幀傳播就都會以加密的方式進行。
2 . 4-way shake在AP/STA通訊中的位置
??????1) open方式下的connect
圖2 open方式的connect過程
a.?????Open System AuthencicationProcess ,就好比把網(wǎng)線插入AP的有線口
b.?????Association:完成802.11layer-2的negotiation,建鏈,成功后AP會分配給STA一個AssociationID
c.?????開始真正的數(shù)據(jù)傳輸
2) wpa/wpa2-psk方式下的connect
??????
圖3wpa/wpa2-psk方式下的connect
a.Authenciation,同上
b. Association,同上
c EAPOL 4-way shake
d.真正的數(shù)據(jù)傳輸
3)wpa/wpa2-eap方式下的connect
圖4wpa/wpa2-eap方式下的connect
在2)的基礎(chǔ)上,wpa/wpa2-eap有個802.1x的auth過程,用于在認(rèn)證服務(wù)器上認(rèn)證,以獲取MSK
三、具體
1.?????PTK的生成
生成PTK,需要5個必要元素,PMK,ANonce(Nonce 1,AP生成的隨機數(shù)),SNonce(Nonce2,STA生成的隨機數(shù)),AuthenticateMAC(MAC1,如AP的MAC),SupplicantMAC(MAC2,如STA的MAC)。
圖5 PTK的生成
圖的四個輸出里面,DataEncr和DataMIC合起來就是前面提到的TK,EAPOLEncr/MIC分別對應(yīng)KEK和KCK。
?
2.?????PTK的組成
圖4的輸出就是PTK的組成。主要產(chǎn)生兩種秘鑰,一種在EAPOL4-way shake的時候用,一種在數(shù)據(jù)傳輸?shù)臅r候用。每種又分成加密用和計算完整性用。PTK共64位,具體可以分成如下4個部分
1) EAPOLKCK(key confirmation key),16位,對應(yīng)于圖5中的EAPOLMIC,以及圖1中的MIC,用來在EAPOL4-way shake時校驗完整性
2) EAPOLKEK(key encryption key),16位,對應(yīng)于圖5中的EAPOLEncr,用于在EAPOL4-way shake的3/4的時候來加密GTK等數(shù)據(jù)
3) TK(TemporaryKey),16位,對應(yīng)于圖5中的DataEncr,用于加密單播數(shù)據(jù)
4) ?Data Mic,16位,對應(yīng)于圖5中的DataMIC,具體又可分為8位的Tx key和8位的Rx key,用于數(shù)據(jù)傳輸?shù)臅r候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已經(jīng)知道了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只包含數(shù)據(jù)傳輸部分的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
————————————————
版權(quán)聲明:本文為CSDN博主「紅心地瓜」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/dlmu2001/article/details/51712292
總結(jié)
- 上一篇: wifi四次握手过程
- 下一篇: wpa_supplicant 详解(9)