wpa/wpa2使用4次握手的方式來產生所需要的金鑰。四次握手通過一系列的互動,從pmk(pairwise master key)生成ptk(pairwise transient key)。pmk來自msk(master session key),是msk的前256位,32位元組。
ptk包含3個部分,kck(key confirmation key),kek(key encryption key),tk(temporal key)。
ptk的總長度根據加密方式不同而不同。
當加密方式是tkip時,ptk長512位,按順序分別為kck佔128位,kek佔128位,tk佔128位,mic key佔128位。
當加密方式是ccmp時,ptk長384位,按順序分別為kck佔128位,kek佔128位,tk佔128位。
kek和kck是給eapol-key,也就是四次握手時,加密和完整性驗證用的。tk用於後續的資料加密。
四次握手的報文都是基於eapol-key的,eapol-key的結構如下:
ptk如何生成
生成ptk,需要5個必要元素,pmk,anonce(nonce 1),snonce(nonce 2),authenticate mac(mac 1),supplicant mac(mac 2)。如下圖:
2個nonce分別是authenticator和supplicant生成的隨機數。
這張圖里的輸出包含4個部分,其實data encr和data mic合起來就是前面提到的tk。而eapol encr/mic分別對應前面的kek和kck。
4次握手的互動過程
1/4:authenticator -> supplicant
authenticator把anonce送給supplicant。supplicant收到1/4後,就有了生成ptk的所有元素。因為1/4裡同時也包含了authenticator的mac位址。
2/4:supplicant -> authenticator
supplicant計算出ptk,把snonce和自己的mac位址送給authenticator。同時,從2/4報文開始,後面的每個報文都會有mic。1/4沒有。
3/4:authenticator -> supplicant
authenticator向supplicant證明自己有有效的,同樣有mic加入其中
4/4:supplicant -> authenticator
僅是對3/4的乙個ack。說明ptk已經裝好,後面的資料可以加密了。
wpa與wpa2在4次握手上的區別
wpa的gtk會在4次握手完成以後進行安裝,而wpa2的gtk則是在4次握手的過程中就進行了安裝;如下圖:
wpa2-的4步握手協議
關於TCP三次握手
tcp syn ack fin rst psh urg簡析 三次握手three way handshake 乙個虛擬連線的建立是通過三次握手來實現的 1.b syn a 假如伺服器a和客戶機b通訊.當a要和b通訊時,b首先向a發乙個syn synchronize 標記的包,告訴a請求建立連線.注意 ...
關於TCP三次握手?二次握手為什麼不行?
zz 關於tcp三次握手?二次握手為什麼不行?1 tcp的三次握手過程 主機a向b傳送連線請求 主機b對收到的主機a的報文段進行確認 主機a再次對主機b的確認進行確認。2 採用三次握手是為了防止失效的連線請求報文段突然又傳送到主機b,因而產生錯誤。失效的連線請求報文段是指 主機a發出的連線請求沒有收...
關於TCP三次握手四次揮手
三次握手 1 a的tcp客戶程序首先建立傳輸控制模組tcb,同步位syn 1 初始序列號seq x,進入syn sent 同步已傳送 階段 2 b收到請求報文,同意建立連線,向a傳送確認 syn ack都置1 確認號是ack x 1,初始序列號seq y 進入syn rcvd 同步已收到 狀態 3 ...