Padding-Oracle

加密預言機必須是伺服器嗎?

  • March 13, 2021

有人告訴我,預言機總是伺服器,預言機攻擊總是線上,但我不相信這是真的。但是,我對這個話題的理解有限,因為我還在學習,而且我剛讀的書根本沒有討論它。我看到的該術語的定義也沒有說明 oracle 攻擊是否總是線上/涉及伺服器。

  1. 預言機總是伺服器嗎?
  2. padding oracle 攻擊可以離線發生嗎(例如加密工具)?
  3. 分區預言機攻擊可以離線發生(例如加密工具)嗎?

請用外行的方式解釋事情。

**理論上:**不。Oracle 是如何實現或命名的並不重要,重要的是它是如何工作的。

**實踐中:**所有洩露資訊的東西都可以抽象為 Oracle。因此,也可以將客戶端用作預言機或處理密碼系統的系統。伺服器客戶端系統只是全球資訊網中最常見的工作和通信方式,但重要的方面是,密碼學的用途遠不止“網際網路”。

一個很好的例子是作業系統。它們是(為簡單起見)離線系統,但您也可以辨識用於作業系統的加密應用程序中的預言機和其他機制。作業系統也使用分組密碼,因此可以進行離線填充預言攻擊。

我希望我能夠給出一個充分的答案!

線上一詞意味著由另一台電腦或網路 (牛津)控製或連接到另一台電腦或網路。

單詞查詢 oracle 告訴您需要什麼以及與查詢的執行方式相關 - 線上查詢和離線查詢。

一個人查詢神諭,然後神諭作出回應。沒有回應,它就不是神諭。響應可以是一點點或更多,甚至僅在有錯誤時才返回(等待 x 次,如果沒有收到錯誤,您可能會認為它沒有錯誤)。

  • 由於攻擊者沒有加密密鑰並要求oracle檢查填充是否正確,**因此原始填充oracle是線上執行的。**如果不正確,oracle 會發送填充不正確錯誤。

由於攻擊者將密文發送給測試,因此該攻擊必須線上。伺服器(oracle)有密鑰響應解密後填充的狀態。

可能有一種特殊情況會造成衝突;如果攻擊者訪問了您的電腦,該電腦具有響應填充錯誤的程序(例如可以在 HSM 中執行加密和解密),那麼這是否是本地填充 oracle 攻擊?我們可以說仍然線上,因為攻擊創建了一個線上渠道來執行攻擊。

如果你只是想編寫填充預言機,那麼你可能會編寫一個只響應填充狀態的程序,這是一個沒有用的本地填充預言機。這將用於線上填充預言機攻擊。

並且,請注意,填充預言是揭示明文的解密預言。

  • 分區預言機也是線上執行的,攻擊者將密碼的 KDF 產生的密鑰分組到密文下並發送給伺服器。伺服器響應標籤是否無效。

請注意,分區 oracle 是一個揭示 oracle 的密鑰,因為攻擊者通過比通常的線上密碼攻擊更少的查詢來學習正確的密碼。由於密碼生成密鑰,它們到達加密密鑰。


更好地理解神諭;考慮一個坐在盒子裡的侏儒,裡面放著一本書和一支鉛筆,也可能是一枚硬幣。如果是加密預言機,則還包括密鑰。

  • 現在您向 gnome 查詢密文,它會解密並返回填充是否不正確。那就是填充 oracle
  • 現在您查詢明文,然後 gnome 返回密文。這是一個加密預言機。如果該方案是機率的,則為 IV 拋硬幣,然後預言機返回機率加密。
  • 現在您查詢密文,然後 gnome 返回明文。這是一個解密預言機
  • 現在,您查詢密文,oracle 返回標籤狀態。這是使用分區oracle的認證標籤oracle
  • 現在,您發送一條消息,gnome 檢查該書是否存在,如果存在則從該書返回,如果不存在,則 gnome 擲硬幣,將查詢寫入該書,並返回該值。這是隨機預言機

通常情況下,該框是不會對攻擊者進行訪問的。如果他們可以進入裡面,那麼鑰匙就會被揭示出來。所以我們假設,在建構預言機時,攻擊者除了查詢之外沒有其他訪問權限。

所以這是關於如何執行查詢的。如果查詢是線上執行的,我們可以呼叫這個線上 oracle,如果不是離線 oracle(如果這有幫助)。在實踐中,更多地考慮了線上攻擊(遠端)。

作為一種特殊情況,oracle 可以是您 PC 上的 TPM 晶片。你正在攻擊這個晶片作為研究然後它是離線的。但是攻擊者也可以遠端攻擊這個,那麼這是線上的。

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