Cryptographic-Hardware

為什麼片上數據在安全處理器設置中被認為是安全的?

  • May 31, 2018

我正在查看論文PHANTOM: Practical Oblivious Computation in a Secure Processor。介紹說,

對於希望將計算解除安裝到雲端的企業和個人來說​​,數據的機密性是一個主要問題。特別是,雲操作員可以物理訪問機器,並且可以在 CPU 和物理記憶體之間移動時觀察敏感資訊(數據和程式碼)。為應對此類攻擊,保護片外數據的商業利益開始增長。

為了防止此類攻擊,先前的工作已經提出了安全處理器,可以自動加密和完整性檢查處理器外部的所有數據——無論是在 DRAM 中還是在非易失性儲存中。儘管安全處理器對記憶體內容進行加密,但現成的 DRAM 要求記憶體地址以明文形式通過記憶體匯流排傳輸。具有物理訪問權限的攻擊者可以窺探記憶體匯流排並觀察訪問的 RAM 的位置,進而了解敏感數據,例如加密密鑰或有關虛擬伺服器中使用者級程序和來賓 VM 的資訊。

對我來說,安全處理器的假設看起來有點牽強。

  • 如果處理器託管在雲中,那麼考慮到硬體完全控制雲服務提供商,為什麼甚至片上數據也被認為是安全的?
  • 如果雲服務提供商不受信任,他們將在安全處理器而不是普通處理器上執行程序的保證是什麼?

如果處理器託管在雲中,那麼考慮到硬體完全控制雲服務提供商,為什麼甚至片上數據也被認為是安全的?

首先,必須為您的雲服務提供商安裝一些信任。您肯定依賴於服務提供商的服務。此外,對密鑰的訪問——無論它們位於何處——大概是自動化的。這意味著在某種程度上,雲提供商可能可以訪問它們。

如果雲服務提供商不受信任,他們將在安全處理器而不是普通處理器上執行程序的保證是什麼?

最後,審計可能會給你一些保證。當然有辦法檢查 CPU 本身,但最終還是要依賴提供者。請注意,信任從來都不是絕對的。例如,檢查處理器 ID 不能讓您完全相信該處理器是安全的,但它會使雲伺服器更難欺騙它。

但這也反過來。雲伺服器提供商本身不太可能嘗試滲透您的安全性;他們依靠您提供服務。被稱為不受信任的提供商將扼殺他們的主要業務案例。但是大型雲提供商由人組成。例如,您可能不得不與心懷不滿的員工打交道。

安全是層層疊疊的遊戲。您會盡力保護每一層。向記憶體介面添加更多安全性似乎可以在該特定層提供一些安全性。這取決於設置/案例是否物有所值(不僅是金錢,還包括所需的知識、時間、成本、複雜性等)。

您最了解您的案例和執行緒模型。最後,由您決定這些措施是否物有所值。

實際上,您不需要信任雲提供商。您需要做的就是信任處理器製造商(比如 Intel,對於 Intel Sgx)。

據稱有一些方法可以將處理器“密封”到其包裝中,因此任何篡改它的嘗試都會簡單地破壞它。然後保證處理器要麼按照製造商設計的那樣工作,要麼根本不工作。在計算開始時,處理器只是對自己進行身份驗證(製造商將為您提供其處理器的公鑰數據庫),然後您就會知道處理器及其所有內容都是可以信任的……至少您信任製造商的程度。然後,與 Merkle 樹身份驗證相結合的 ORAM 方案原則上可以將受信任的儲存量“擴展”到您想要的盡可能多的 RAM(和磁碟上的虛擬記憶體)。

至少這是理論!就個人而言,我對整個“密封”的事情並不是 100% 有信心。而且由於處理器和作業系統傾向於以相當複雜的方式進行互動(例如推測執行),因此總是存在在 ORAM 的清晰理論模型與會洩漏資訊的實際實現之間存在細微差異的風險。

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