Mac

外行對padding oracle攻擊的描述

  • July 4, 2016

我知道 MAC-then-encrypt 方法容易受到多種攻擊,包括所謂的填充預言攻擊。我知道在這次攻擊中,攻擊者修改了填充並監聽了導致的錯誤,然後他可以使用這些錯誤來推斷純文字。有人可以用外行的方式解釋這次攻擊嗎?

我想在答案中解決以下問題:

  1. 攻擊者如何監聽這些錯誤?這是否意味著假定攻擊者在進行解密的主機上安裝了一些惡意軟體?
  2. 攻擊是基於攻擊者擷取的密文,還是攻擊者選擇的選定密文?

在這裡引用答案:

填充 Oracle 攻擊主要是一個問題,例如,加密消息被修改並發送到目標。這些攻擊試圖在解密和驗證消息時測量差異。

步驟是:

  1. 解密消息
  2. 檢查填充>錯誤如果錯誤
  3. 檢查或處理數據 > 錯誤,如果檢測到錯誤或格式損壞

填充預言機攻擊嘗試測量步驟(2)和(3)之間的時間差異或利用不同的錯誤消息。

因此,導致攻擊的資訊洩漏以時間差異的形式出現,或者出現在伺服器作為對惡意查詢的響應而返回的錯誤消息中。

基本上,填充預言攻擊通過更改特定字節來工作,以便填充與預期的填充匹配,從而匹配填充長度。一旦找到正確生成(不是特別)填充的字節,則可以通過將該字節與關於該位置的字節的已知資訊進行異或運算來找到明文。

接收方只需要指示取消填充是否成功。它可以通過返回不同的錯誤消息或在填充失敗時提前響應來實現。通過利用統計數據,甚至可以在相對較慢或隨機的連接上發現時序差異(儘管這需要每個字節進行更多的測試)。

惡意軟體可用於找出特定的 CPU 計時,但由於上述原因,通常不需要這樣做。攻擊者確實需要能夠將選擇的密文送出給接收者,否則攻擊會失敗。

通過在 IV 和密文上驗證身份驗證標籤/MAC(安全地),可以輕鬆阻止攻擊。


可以在此處找到有關 padding oracle 攻擊(youtube 影片)的更完整描述。

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