GCM 和 Krack 解密
我試圖了解 Krack 如何在 GCM 上工作。我認為查看 GCM 會更容易,因為它是一個完整的休息時間,並且影片顯示了一個能夠解密所有內容的工具。
我看到 IV 很反感,但如何繼續下去?每個數據包都帶有一個用於加密/解密該數據包的 IV,對嗎?我認為 IV 是從 Anonce、Snonce、MAC 和 PMK 生成的,我錯了嗎?
如果知道一個密鑰全為零,那麼一旦知道 IV 就可以很容易地解密,但是如果 IV 不是與數據包一起發送並且實際上是生成的,那麼如何解密這麼多數據包?
Krack 沒有透露 PMK,因此您自己生成 IV 已被淘汰。不應該限制在 nonce 重用之間發送的數據包數量嗎?例如,如果在重新使用 nonce 之前發送了 5 個數據包,那麼您將只有足夠的資訊來嘗試解密第一次使用 nonce 後發送的五個數據包以及重新使用後發送的五個數據包。
從https://www.krackattacks.com上提供的論文的 2.4 開始(強調添加):
GCMP 協議基於 AES-GCM,這意味著它使用計數器模式進行加密,生成的密文使用 GHASH 函式進行身份驗證
$$ 28 $$. 與 CCMP 類似,它是一種 AEAD 密碼,只要在特定密鑰下沒有重複 IV,它就是安全的。在 GCMP 中,IV 是發送方 MAC 地址和 48 位隨機數的串聯。nonce 還被接收方用作重放計數器,每發送一幀前加一,安裝 TK 時初始化為 0 $$ 1, §12.5.5.4.4 $$. 這通常可以確保每個 IV 只使用一次。與 CCMP 一樣,TK 直接用作兩個通信方向的密鑰。如果一個隨機數被重複,則可以重建 GHASH 函式使用的身份驗證密鑰$$ 43 $$.
$$ 28 $$是 NIST SP800-37D(GCM 標準)
$$ 1 $$是 IEEE 802.11-2016(好吧,猜測的標準)
$$ 43 $$是 Joux 對 NIST 的 2006 年評論