111年法務部調查局調查人員三等資通網路

五、IEEE 802.11 是目前無線區域網路主要採用的通訊協定,在 IEEE 802.11 的協定中會使用四手交握 (Four-Way Handshake) 的方式在收送兩端完成一次的資料傳輸。請回答以下問題:

    ()請解釋四手交握的進行方式。(10分)

    () IEEE 802.11 的協定使用四手交握的方式,而不採用兩手交握 (Two-Way Handshake) 的方式,其目的為何?請舉例說明。(10分)

    ()()題,在什麼情況下,IEEE 802.11 的協定會使用四手交握的方式,而不採用兩手交握的方式呢?(5分)

答:

()

pic01.png

  無線 WiFi 的四手交握就是金鑰交換 (Key Exchange) 的過程。假設 AP 使用WPA2/PSK 加密方式,SSID Test,用一台電腦連接它。整個過程分為身份認證 (Authentication)關聯 (Association) 安全驗證 (Security Validation)。四手交握不是直接將密碼發送到 AP,而是通過 EAPOL (Extensible Authentication Protocol over LAN) 進行。

  先是身份認證,這個階段不需要考慮安全問題,因為 AP 只是要確認 Station 是否是802.11設備及雙方可以正常通訊。

  接著是關聯Station AP 關聯以便獲得網路的完全存取權,關聯成功之後,Station 會收到 AP 的回應,包含成功的狀態碼和關聯識別碼。

  最後進行安全性檢查,然後 AP 發起四手交握。

1.步驟一:

  (1) AP 發起四手交握,AP 傳送一條包含 ANonce 的訊息到 StationStation 用它來產生 PTK,前面已經提到產生 PTK 的公式是 PTK = PRF (PMK+ ANonce+SNonce+Mac(AP)+Mac(STA))

  (2)由於在四手交握之前已經經歷了認證和關聯的階段,因此,Station 知道 AP MAC 地址,所以只需要 ANonce 就可以產生 PTK

2.步驟二:

  (1)一旦 Station 建立自己的 PTK,它會立即回應一條 EAPOL 訊息給 AP,包含了 SNonce MIC

  (2)AP 使用來自 Station SNonce 產生自己的 PTK,它可以用來加密後面兩次握手的 Key

  (3)MIC 是用來檢查從 Station 傳送來的訊息的完整性,除了步驟一,從步驟二訊息開始,後面的每個訊息都會有 MIC

3.步驟三:

  (1)這次握手主要是把 GTK 傳送給 Station,並且告知 Station 安裝 PTK GTK

  (2)由於第二次握手時,AP 產生了 PTK,它可以用來加密資料,對 GTK 進行加密。

4.步驟四:

  (1)如果訊息解密成功,則證明雙方都知道 PMK

  (2)第四次是最後一條 EAPOL 訊息,相當於一個確認封包,告訴 AP 自己的PTK 已經安裝好了,AP 收到該訊息後,也安裝 PTK

  (3)安裝的意思是指使用 PTK GTP 來對資料進行加密。

  雙方完成認證後,Authenticator 的控制埠 (port) 將會被打開,802.11的資料訊框 (Data Frame) 將能夠正常通過,而且所有的單播資料訊框將會被 PTK 保護,所有的多播資料及廣播資料將會被 GTK 保護。Supplicant Authenticator 就此完成 Key 衍生 (Derived) 和配對,雙方可以正常進行通訊。

[]

 

pic02.png

1.MSK(Master Session Key)

  金字塔頂層是 MSK,是由 802.1X/EAP PSK 身份認證後,產生的第一個金鑰 (Key)

2.PMK(Pairwise Master Key)

  (1) MSK 產生。PMK 實際上是 PSK,在 WPA2/PSK 的情況下,當 Supplicant Authenticator 身份驗證後,PSK 變成 PMK

  (2)PMK 會駐留在 AP 和所有 Station,不需要進行 Key 交換,用它來產生用於加密單播資料的 PTK

3.GMK(Group Master Key):由 MSK 產生,用來在四次握手時產生 GTK

4.PTK(Pairwise Transit Key)

  (1)先在 Station 端中,使用函數產生,然後在 AP 端中,使用函數產生。

  (2)PTK 用來加密 AP Station 通訊的單播封包,AP 與每個 Station 通訊用的 PTK 都是唯一的。

  (3)產生PTK的函數:

    PTK = PRF(PMK+ANonce+SNonce+MAC(AP)+MAC(STA))

    說明:

    參數是產生 PTK 需要的訊息。

    1.PRF(Pseudo-Random Function)

      表示偽隨機函數,輸入參數是PMKANonceSNonceMAC(AP),以及 MAC(STA)

    2.ANonce:是 AP 生成的隨機數,A 表示 Authenticator

    3.SNonce:是 Station 生成的隨機數,S 表示 Supplicant

    4.MAC(AP):是 AP MAC 地址。

    5.MAC(STA):是 Station MAC 地址。

5.GTK(Group Temporal Key)

  (1) AP 端中,使用函數產生。

  (2)GTK 用來加密 AP Station 通訊的多播/廣播封包,連接該 AP 的所有 Station 共享一個 GTK

  (3)產生GTK的函數:

    GTK = PRF(GMK+ANonce+MAC(AP))

    PTK 不同的是沒有 SNonce MAC(STA)

6.MIC(Message Integrity Check):訊息完整性檢查

  (1)是由 Station 端傳送給 AP 端。

  (2)針對一組需要保護的資料要計算出雜湊值,用來防止資料遭到篡改。

  (3)使用於四手交握中的第二到第四階段。

()

1.目的是在讓 AP (或身份認證器) Station (無線客戶端或請求者) 可以獨自地向對方證明它們知道 PSK/PMK,而不需要透露 Key

2.不用透露 KeyAP Station 可以使用共享的 PMK 來相互加密和解密訊息,如果訊息解密成功,則證明雙方都知道 PMK

3.四手交握可以保護 PMK 免受惡意 AP的攻擊 (如攻擊者的 SSID 冒充真實的 AP),因此 Station 永遠不必告訴 AP PMK

4.PMK 目的在持續整個會話 (session),應該儘可能地少暴露;因此,加密流量 (traffic) 需要被衍生 (derived) 出來。

5.四手交握用來建立另一個稱為 PTK (Pairwise Transit Key) Key,它用來加密 AP Station 通訊的單播封包。交握還會產生 GTK (Group Temporal Key),用來解密多播和廣播的流量。

()

題目有爭議,這個題目應該是抄襲 Wiki,但是抄襲時沒有看清楚,題目改成「承()題,在什麼情況下,IEEE 802.11 的協定會使用兩手交握的方式,而不採用四手交握的方式呢?」

1.由於預設的計時器到期,可能需要更新網路中使用的 GTK (Group Temporal Key)

2.當設備離開網路時,GTK 也需要更新。這是為了防止設備從 AP 接收任何更多的多播或廣播訊息。

3.為了處理更新,802.11i 定義了一個由兩手交握 (two-way handshake) 組成的群組金鑰握手 (Group Key Handshake)

4.步驟:

  (1)AP 將新的 GTK 發送給網路中的每個 STAGTK 使用分配給該 STA KEK 進行加密,並且通過使用 MIC 保護資料免於篡改。

  (2)STA 確認新的 GTK,並且回覆給 AP

參考資料:

1.https://www.newton.com.tw/wiki/WPA

2.https://kysonlok.gitbook.io/blog/wireless/4_way_handshake

3.https://en.wikipedia.org/wiki/IEEE_802.11i-2004#Four-way_handshake

arrow
arrow

    jacksaleok 發表在 痞客邦 留言(0) 人氣()