Aes

在不同的物理頁面上擁有 AES 表是否足以避免記憶體定時攻擊?

  • January 6, 2017

閱讀有關典型記憶體定時攻擊的資訊,它們似乎是基於對記憶體行的有意驅逐和操作需要多長時間的定時。似乎這些攻擊依賴於這些表是執行檔的只讀部分中的硬編碼常量,因此受到共享記憶體頁面的影響。

如果您確保您的 AES 表位於您的程序專用的物理頁面上,這足以阻止基於時間的攻擊嗎?在這種情況下,在同一台機器上作為普通特權程序執行的攻擊者將無法執行諸如clflushing 包含表的記憶體行之類的技巧。

請注意,此技術還要求頁面的內容也是唯一的,而不僅僅是私有的:某些作業系統可能會注意到具有相同內容的記憶體頁面並將它們合併為單個物理頁面作為寫時複製。

您誤解了此類攻擊的工作原理。並不是您的頁面被共享給某個攻擊者程序。攻擊者甚至可能不在您的電腦上,只在網際網路上測量時間。此類攻擊僅取決於以下事實:如果您訪問索引 5,那麼每次下一次訪問索引 5 的速度都會更快。它不需要任何方法從記憶體中刪除數據(它會自行消失),但這些方法可以使攻擊更快。

例如,這裡的攻擊只使用了一個包含精確週期時間的伺服器。受害者機器上沒有攻擊者程序。

附帶說明:當程序為attacker running as a normal-privileged process時,它可以訪問許多作業系統(例如 Windows)中的所有其他普通特權程序,因此攻擊者可以簡單地讀取密鑰。

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