測試用例

測試用例

這個維基頁面:

WPA 和 WPA2 使用從 EAPOL 握手衍生的金鑰來加密流量。除非所有四個如果您嘗試解密的會話存在握手封包,則 Wireshark 將無法解密流量。您可以使用顯示過濾器 eapol 來定位擷取中的 EAPOL 封包。

我注意到解密也適用於 (1, 2, 4),但不適用於 (1, 2, 3)。據我所知,前兩個資料包足夠了,至少對於單播流量來說是足夠的。有人可以準確解釋 Wireshark 是如何處理這個問題的嗎?另外,當(1,2,3,4)起作用時,是否保證(1,2,4)總是起作用?

測試用例

這是 gzip 壓縮的握手 (1, 2, 4) 和編碼中的加密資料ARP包 (SSID: SSID, 密碼: password) :base64

H4sICEarjU8AA2hhbmRzaGFrZS5jYXAAu3J400ImBhYGGPj/n4GhHkhfXNHr37KQgWEqAwQzMAgx
6HKAKbFWzgUMhxgZGDiYrjIwKGUqcW5g4Ldd3rcFQn5IXbWKGaiso4+RmSH+H0MngwLUZMarj4Rn
S8vInf5yfO7mgrMyr9g/Jpa9XVbRdaxH58v1fO3vDCQDkCNv7mFgWMsAwXBHMoEceQ3kSMZbDFDn
ITk1gBnJkeX/GDkRjmyccfus4BKl75HC2cnW1eXrjExNf66uYz+VGLl+snrF7j2EnHQy3JjDKPb9
3fOD9zT0TmofYZC4K8YQ8IkR6JaAT0zIJMjxtWaMmCEMdvwNnI5PYEYJYSTHM5EegqhggYbFhgsJ
9gJXy42PMx9JzYKEcFkcG0MJULYE2ZEGrZwHIMnASwc1GSw4mmH1JCCNQYEF7C7tjasVT+0/J3LP
gie59HFL+5RDIdmZ8rGMEldN5s668eb/tp8vQ+7OrT9jPj/B7425QIGJI3Pft72dLxav8BefvcGU
7+kfABxJX+SjAgAA

解碼:

$ base64 -d | gunzip > handshake.cap

運行tshark查看是否正確解密資料ARP包:

$ tshark -r handshake.cap -o wlan.enable_decryption:TRUE -o wlan.wep_key1:wpa-pwd:password:SSID

它應該打印:

  1 0.000000 D-Link_a7:8e:b4 -> HonHaiPr_22:09:b0 EAPOL 金鑰
  2 0.006997 HonHaiPr_22:09:b0 -> D-Link_a7:8e:b4 EAPOL 金鑰
  3 0.038137 HonHaiPr_22:09:b0 -> D-Link_a7:8e:b4 EAPOL 金鑰
  4 0.376050 ZyxelCom_68:3a:e4 -> HonHaiPr_22:09:b0 ARP 192.168.1.1 位於 00:a0:c5:68:3a:e4

答案1

EAPOL 交換也用於更新臨時金鑰。新金鑰在請求方發送 4/4 後安裝在請求方上,並在接收到 4/4[1] 時安裝在驗證方上。如果Wireshark 必須正確處理重新產生密鑰,則它只能在讀取幀中的4/4 封包後使用密鑰,因為封包在重新生成密鑰期間可能仍在流動(即使在不應該流動的情況下,因為緩衝)

對於第一個 4WHS,不等待 4/4 是可能的,但完全可以理解他們只是懶於實現它。 3/4 仍然是必要的,因為它包含群組機密(即使您對它們不感興趣,但知道您不會看到來自 AP 或不屬於其 4WHS 的客戶端的 ARP 請求)和管理金鑰。您也可以跳過 3/4,但這樣您就無法確認交換是否成功,因為 3/4 用於驗證 Authenticator 是否知道 PMK。

[1] 請注意,在目前方案中,如果 4/4 訊息遺失,則請求者開始使用新金鑰,而驗證者仍然使用舊金鑰,並且重新傳送用舊金鑰加密的 3/4 將無濟於事。這個問題以及 WPA2 的許多其他問題在最新的 802.11 2012 標準中透過並行保留兩個金鑰得到了解決。

答案2

建構 PTK 所需的所有資訊都在步驟 1 和 2 中交換。

如果沒有第 3 步,您將沒有 GTK,因此無法解密多重播放/廣播。

步驟 4 對於解密擷取流量來說並不是真正必要的,但如果沒有步驟 4,客戶端/AP 將不會開始使用加密。 Wireshark 可能會在嘗試解密資料之前關閉此操作。

答案3

嗯,顯然 WireShark 文件是錯誤的。 :-)

脫離文檔這裡:

  • 在 EAPOL 1 和 2 之後,雙方都知道將用於解密流量的臨時金鑰。
  • 第三條訊息證明雙方都知道臨時密鑰,並表明驗證器(基地台)準備好開始使用臨時金鑰。
  • 第四條訊息觸發從 EAPOL 之前建立的 PMK 到 EAPOL 中匯出的臨時金鑰的切換

因此,這是有道理的。 WireShark 不需要訊息 3。它知道訊息 1 和 2 之後的金鑰,但要等到收到訊息 4 後才開始使用它們來解密流量。

生活中的任何事情都無法保證,尤其是自由軟體的行為,但可以合理地打賭,WireShark 不需要出現訊息 3 來解密會話。

答案4

這並沒有解釋為什麼,但引用了airdecap-ng文件無論如何,

WPA/WPA2 Requirements

The capture file must contain a valid four-way handshake. For this purpose having (packets 2 and 3) or (packets 3 and 4) will work correctly. In fact, you don't truly need all four handshake packets. 

相關內容