Padding-Oracle

證明加密預言機攻擊是可能的簡單方法是什麼?

  • December 19, 2012

假設一個應用程序正在使用 CBC 模式而無需身份驗證。應用程序正在生成密文。攻擊者可以操縱此密文,然後將其傳輸回應用程序。

在不查看程式碼的情況下,攻擊者證明存在填充 Oracle 或解密 Oracle 的簡單方法是什麼?有沒有比暴力破解密文更優雅的方法?

如果來自伺服器的響應不同,我們就有一個Padding Oracle,它可以指示填充的正確性(例如,如果這需要證明)。我們可以通過玩一個遊戲來確定這一點,我們向伺服器發送填充錯誤的密文和隨機字元串,最後隨機送出一些,看看我們是否可以獲得不可忽略的優勢,即猜測我們發送了哪個。

問題是這可能是“蠻力”方式。如果有明顯的數據洩漏,這很容易做到,但是您必須檢查大量的側通道攻擊以排除數據洩漏給有效對手的可能性。我感覺你想要一個聰明的快速方法來證明沒有數據洩漏,這對我來說聽起來是不可能的。

證明?為什麼攻擊者需要“證明”呢?例如,攻擊者可以通過查看程式碼並查看是否有可能進行此類攻擊來檢查是否存在預言機。或者,攻擊者可以猜測這種攻擊可能是可能的,然後嘗試攻擊。如果攻擊成功,攻擊者就知道系統易受攻擊。可能還有其他方法。

或者,換一種說法:證明這種攻擊是可能的一種簡單方法是實際實施攻擊並證明它有效。砰,完成。問題解決了。

證明攻擊是可能的通常比首先找到攻擊要容易得多。反過來,這兩者都比證明基於預言機的攻擊是不可能的要容易得多。

你的問題有些有趣,我沒有關注。我不明白為什麼攻擊者會關心這種攻擊存在的數學證明。布丁的證據在吃。如果攻擊成功地破壞了系統,那似乎就是一切;誰在乎我們是否有數學證明?

我可以理解為什麼系統防御者想要證明不存在這種攻擊,但這是一個不同的問題。那是你要求的嗎?

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