111年法務部調查局調查人員三等資通網路
五、IEEE 802.11 是目前無線區域網路主要採用的通訊協定,在 IEEE 802.11 的協定中會使用四手交握 (Four-Way Handshake) 的方式在收送兩端完成一次的資料傳輸。請回答以下問題: (一)請解釋四手交握的進行方式。(10分) (二) IEEE 802.11 的協定使用四手交握的方式,而不採用兩手交握 (Two-Way Handshake) 的方式,其目的為何?請舉例說明。(10分) (三)承(二)題,在什麼情況下,IEEE 802.11 的協定會使用四手交握的方式,而不採用兩手交握的方式呢?(5分) |
答:
(一)
無線 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 的訊息到 Station,Station 用它來產生 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) 和配對,雙方可以正常進行通訊。
[註]
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):
表示偽隨機函數,輸入參數是PMK、ANonce、SNonce、MAC(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.不用透露 Key,AP 和 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 發送給網路中的每個 STA。GTK 使用分配給該 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