關於WPA/WPA2 4次握手


簡單描述一下WPA/WPA2的4次握手中的一些關鍵詞:

  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次握手的過程中就進行了安裝;如下圖:

  WPA:4-way handshake (PTK)

  WPA:2-way handshake (GTK)

  

  WPA2-的4步握手協議

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM