Aes

如何在具有恆定密鑰和 IV 的 AES128-CBC 上使用 CPA 來洩漏資訊?

  • July 26, 2017

我正在做一個挑戰,我需要以管理員身份登錄伺服器以擷取標誌。

我可以輸入一個 $ id $ 和一個 $ password $ 僅包含 ‘az’、‘0-9’、’-’、’_’ 字元。

流程如下:

  • 客戶端創建特定格式的消息: $$ M = {id}\text{-}{password}\text{-}{cookie} $$ 在哪裡 ” $ \text{-} $ " 充當分隔符和 $ cookie $ 是一個常量後綴,以確保消息是從預期的伺服器發送的(有點像簽名)。
  • 然後客戶端添加空字節的填充並加密 $ M $ 使用 AES128-CBC 和相同的密鑰 $ k $ 和同樣的四 $ IV $ 每次都使用,我無權訪問。
  • 密文以十六進制編碼並發送(我確實可以訪問發送的消息)

經過一些分析,我發現如果我獲得 $ cookie $ 我可以以管理員身份登錄。

  1. 我應該嘗試實施什麼攻擊?
  2. 我可以得到我的手嗎 $ IV $ 甚至 $ k $ 在 CBC 模式下重用時使用 CPA?
  3. 我應該嘗試收集哪些對我有幫助的額外資訊?

您需要在此處應用的策略與大多數其他預言機攻擊基本相同:

你構造一個消息,這樣你就可以驗證你對單個字節的猜測,然後你適應猜測下一個字節,直到你完成。

在這種特定情況下,您將選擇使用者控制的消息長度,以便 cookie 的一個字節與消息的尾部位於同一塊中,然後對其進行加密。然後你將你的輸入加長一個字節,並嘗試 cookie 字節的所有可能值,直到相應的塊等於 cookie 字節的加密。

現在你對第二個字節重複這個過程,依此類推。

引用自:https://crypto.stackexchange.com/questions/50395