Aes

如何對 AES CBC 執行 padding oracle 攻擊?

  • May 30, 2018

假設我是攻擊者。我想通過對 AES CBC 模式執行填充 oracle 攻擊來破壞明文。我知道以下資訊:

The ciphertext c
The length (bytes) of plaintext n
The AES padding uses PKCS#7
The 128-bit (16-byte) IV

如何破解明文p?

為了解釋這一點,我將使用攻擊者和消息發送者的術語。讓我們假設 Mallory 是試圖執行這種填充預言攻擊的人,而 Bob 是被攻擊的人。攻擊的工作方式是使用分而治之的方法逐字節找出密鑰。Mallory 不斷地向 Bob 發送偽造的消息,並依賴 Bob 根據消息的正確性發回給她的錯誤消息。當 MAC 上的填充不正確或驗證不正確時,Bob 會告訴 Mallory。然後,Mallory 逐字節地使用對 Bob 來說似乎正確的填充,但實際上是在利用 PKCS#7 填充標準。然後,她為每個字節嘗試多達 256 種組合,直到其中一個為她提供正確的填充和 MAC,然後她將其儲存。Mallory 繼續逐字節地執行此操作,直到她弄清楚了 AES 密鑰的每個字節。這種攻擊利用了 Bob 發送的額外錯誤消息,這就是她在攻擊中成功的方式,即使底層的分組密碼本身是安全的。

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