什麼是機密運算

將處理中的資料放在由硬體保護的TEE中處理,使OS、超管理器乃至雲端業者的管理員都無法讀取的運算方式。除了對儲存中與傳輸中的資料加密之外,還保護使用中的資料。分為保護整個虛擬機器的VM型(AMD SEV-SNP、Intel TDX、Arm CCA等),以及保護應用程式一部分的飛地型(Intel SGX等)。以遠端證明確認內部狀態後,才交付機密資料或金鑰使用。

日文名稱: 機密コンピューティング

「機密運算」出現在2領域的5道練習題中(硬體安全的進階主題與趨勢, 硬體安全等)。

這個名詞所屬的領域: 硬體安全的進階主題與趨勢

保護使用中的資料

資料在儲存於磁碟時可用儲存加密保護,在網路上傳輸時可用TLS等保護。然而進行運算時,資料會在記憶體上被解密,因此過去只能信任OS、超管理器,以及管理它們的雲端業者。在機密運算中,CPU以只存在於CPU內部的金鑰加密TEE的記憶體,並拒絕來自TEE外部軟體的存取。如此一來,使用者不必完全信任雲端基礎設施,也能處理機密資料。

VM型與飛地型

VM型保護整個虛擬機器的記憶體,因此既有的OS與應用程式幾乎可以直接執行,但包含客體OS在內的大量軟體都會納入必須信任的範圍(TCB)。飛地型只把處理機密的部分放在受保護的區域執行,TCB較小,但必須把應用程式拆分改寫。VM型除了加密之外,防止超管理器變更分頁對應或寫回舊內容的完整性保護也很重要。截至2020年代中期,也已有把CPU的TEE與GPU組合起來、以機密運算執行AI處理的機制。

限制與注意事項

機密運算主要防範的是軟體與管理員對記憶體的讀寫。利用快取或推測執行的旁通道攻擊、超管理器不分配資源造成的服務停擺(可用性),以及在運作中直接攻擊記憶體匯流排的進階實體攻擊,依方式不同可能不在保護範圍內。此外,若TEE內部的軟體有漏洞,機密也會由此洩漏。因此,以遠端證明確認內部狀態與韌體版本、維持較小的TCB,並持續套用微碼等更新相當重要。

練習機密運算的題目

在雲端使用的「機密運算(confidential computing)」中,由CPU將虛擬機器的記憶體加密的功能(AMD SEV、Intel TDX等),其目的下列何者正確?

  1. A讓虛擬機器的運作一定快2倍
  2. B增加虛擬機器的記憶體容量
  3. C使雲端業者的超管理器與管理員也無法讀取虛擬機器內的資料
查看答案與解析

正確答案:C. 使雲端業者的超管理器與管理員也無法讀取虛擬機器內的資料

一般而言,虛擬機器的記憶體可被執行它的超管理器自由讀寫,因此使用者必須信任雲端業者。在將記憶體加密的功能中,每個虛擬機器的金鑰只在CPU內部管理,記憶體的內容在CPU外部維持加密狀態,因此連超管理器與直接讀取記憶體的攻擊者也看不到內容。與遠端證明搭配使用。

在機密運算所使用的TEE中,關於保護整個虛擬機器的VM型(AMD SEV-SNP、Intel TDX等)與保護應用程式一部分的飛地型(Intel SGX等)之差異的說明,正確的是下列何者?

  1. AVM型不加密虛擬機器的記憶體,只靠確認存取權限來保護,只有飛地型會加密記憶體
  2. BVM型幾乎可以直接執行既有的OS與應用程式,但整個客體OS會被納入必須信任的範圍(TCB)
  3. C飛地型連OS與超管理器也納入必須信任的範圍,而VM型只需要信任CPU
查看答案與解析

正確答案:B. VM型幾乎可以直接執行既有的OS與應用程式,但整個客體OS會被納入必須信任的範圍(TCB)

飛地型只把應用程式中處理機密的部分放在受保護的區域執行,因此必須信任的範圍(TCB:Trusted Computing Base)可縮小到CPU與飛地的程式碼,但必須把應用程式拆分改寫。VM型則加密整個虛擬機器的記憶體,使其不受超管理器與雲端管理員存取,因此既有軟體幾乎可以直接移植。相對地,客體OS及其上的所有軟體都會進入TCB,只要其中有漏洞,機密就可能洩漏。TCB越小越容易驗證,可被攻擊的面也越窄,因此要在易用性與信任範圍的大小之間權衡選擇。

常見問題

記憶體已經加密了,為什麼還需要證明(attestation)?

加密只能讓外部無法讀取,並不能說明內部在執行什麼。工作負載可能是在偽造的TEE、被竄改的客體OS,或尚未修正漏洞的韌體上執行,因此要先確認以CPU金鑰簽署的量測值與版本號碼,再交付解密資料的金鑰。

這樣就完全不必信任雲端業者了嗎?

記憶體內容被讀取的疑慮大幅降低,但仍須信任CPU製造商及其韌體,而且業者仍能以停止分配資源的方式妨礙服務。應依各方式確認信任的對象,以及能防範什麼。

解析中的「機密運算」

出現「機密運算」的題目(5題)

  1. 在雲端使用的「機密運算(confidential computing)」中,由CPU將虛擬機器的記憶體加密的功能(AMD SEV、Intel TDX等),其目的下列何者正確?
  2. 在機密運算所使用的TEE中,關於保護整個虛擬機器的VM型(AMD SEV-SNP、Intel TDX等)與保護應用程式一部分的飛地型(Intel SGX等)之差異的說明,正確的是下列何者?
  3. 在機密運算中,使用者的驗證伺服器(驗證者)確認從VM型TEE收到的證明報告後,才交付解密資料的金鑰。驗證者要確認的內容組合,最適當的是下列何者?
  4. 截至2020年代中期,部分資料中心用GPU具備可與CPU的TEE搭配、用於機密運算的功能。關於此機制的想法,正確的是下列何者?
  5. 下列關於遠端證明(remote attestation)的說明,何者正確?

出現這個名詞的比較

相關名詞

TEE(可信執行環境) 遠端證明(Remote attestation) 飛地(Secure enclave) Nonce GPU TPM(可信賴平台模組) 目標列刷新(TRR) 指標驗證(PAC) 控制流程完整性 硬體物料清單(HBOM)

前往名詞解釋列表