Rsa

什麼是魔戒:側通道攻擊以及結果如何

  • March 8, 2021

最近一篇論文將出現在 USENIX Security 2021 上,標題為

魔戒:對 CPU 片上環互連的側通道攻擊是實用的 Riccardo Paccagnella Licheng Luo Christopher W. Fletcher

他們能夠使用之前利用的英特爾 CPU 的環形互連功能。他們聲稱可以提取 RSA 和 EdDSA 密鑰以及擊鍵時間。

  • 這種攻擊在高層是如何運作的?
  • 對他的攻擊有什麼緩解措施?
  • 這次襲擊的後果是什麼?
  • 安全實施是否受此攻擊影響?

獎金部分:

  • 這種攻擊在低級別如何運作?
  • 這種攻擊在高層是如何運作的?

多核 CPU 上的資源共享具有低成本和效率等優點。然而,這是我們多年來看到的攻擊點。通過記憶體攻擊,受害者的數據通過記憶體操作提取。

針對各種記憶體攻擊的對策是禁用同時多執行緒(SMT),顯而易見的是在上下文切換期間清理記憶體。通過劃分最後一級記憶體 (LLC)(例如 Intel CAT)並禁用不同安全域的共享記憶體來防止跨核記憶體攻擊。

即使應用了對策,所提出的攻擊也有效。這種攻擊利用了環形互連上的爭用,環形互連是支持不同 CPU 單元之間通信的組件。

這種攻擊最難的部分是獲取有關戒指的資訊,因為它沒有得到很好的記錄。

L1 和 L2 記憶體被稱為私有記憶體,因為它們是核心私有的,因此無法進行交叉解釋。由於 Nehalem-EX,L3 高速記憶體 (LLC) 被分成大小相等的片,每個核心只有一個片。

在 Intel 架構中,L1、L2 和 LLC 是包容性的,這意味著如果 L1 和 L2 上有數據,那麼它也在 L3 中。

在此處輸入圖像描述

上圖中的環形匯流排說明了它的大部分結構。當 L1、L2 發生高速記憶體未命中時,它用於程序內通信,然後數據必須在環形匯流排上傳輸才能到達 LLC。

現在跳過低級細節,攻擊者的程序可以通過傳輸1和空閒來創建競爭0。通過測量延遲,他們可以從不安全的樸素平方和乘法 RSA 實現中提取密鑰。就像在力量攻擊中一樣,第二個峰值表示位1。對 EdDSA 也是如此。

在此處輸入圖像描述

這個新頻道的第二個方面是擊鍵。攻擊會洩露擊鍵的時間,這可用於重建鍵入的單詞或更糟的密碼。就像在這篇文章中一樣;

在此處輸入圖像描述

  • 對他的攻擊有什麼緩解措施?

對於密碼程式碼,使用安全實現,尤其是恆定時間程式原則。側通道安全實現不會受到目前處於 Cache-Ring 攻擊狀態的影響。然而,實現這一點可能並不容易,因為英特爾 CPU 在私有記憶體和環形互連之間執行硬體儲存消除(請參閱硬體儲存消除

對於擊鍵,可以基於空間分區和靜態調度的仲裁策略來設計硬體。此外,可以設計基於軟體的解決方案以定期發送密碼。

  • 這次襲擊的後果是什麼?

它在多核 CPU 上開闢了一條新的側通道。我預計聰明的頭腦會在很多方面改進這種攻擊。請注意,如果您的程式碼不易受到記憶體攻擊並且它們是無時間攻擊的,那麼我還沒有看到那裡的漏洞利用。

  • 安全實施是否受此攻擊影響?

目前,沒有。然而,擊鍵可能是一個大問題。

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