揭祕遠端證明架構EAA:機密容器安全部署的最後一環 | 龍蜥技術

OpenAnolis小助手發表於2021-12-22
揭祕遠端證明架構EAA:機密容器安全部署的最後一環 | 龍蜥技術

文 / 周亮, 雲原生機密計算 SIG 核心成員。
在雲原生場景下,基於HW-TEE(如Intel SGX, Intel TDX 和 AMD SEV)的機密容器技術(如 Inclavare Containers 機密容器和 Kata CC 機密容器)可以為使用者在使用(計算)過程中的敏感資料提供了機密性和完整性的保護。

但是在雲環境中,依舊存在如下的問題:

  • 怎麼證明使用者的機密容器確實執行在雲上真實 HW-TEE 環境中?
  • 怎麼證明執行在雲上 HW-TEE 環境中的程式或者容器內容是符合預期的或者沒有被篡改?
  • 更進一步,如果需要在雲上 HW-TEE 環境裡啟動一個加密容器,如何在啟動過程中獲取容器的解密金鑰?

Inclavare Containers 現已是龍蜥社群雲原生機密計算 SIG 的專案之一 而 Inclavare Containers 的元件 Enclave Attestation Architecture (EAA) 正是為解決這些複雜的問題而生的。其設計目標是在解決上述問題的基礎上,提供一個支援不同型別機密容器和 HW-TEE 環境的通用遠端證明架構。

EAA設計

RATS 參考架構

機密計算聯盟定義了 RATS  參考架構,並建議所有遠端證明服務都應該遵循 RATS 的參考架構,RATS 架構如下:
揭祕遠端證明架構EAA:機密容器安全部署的最後一環 | 龍蜥技術

EAA 架構

因此 EAA 的架構設計遵循了 RATS 參考架構,EAA 架構如下:

揭祕遠端證明架構EAA:機密容器安全部署的最後一環 | 龍蜥技術


其主要元件和功能:

  • Attestation Agent(Attester):執行在 HW-TEE 中的元件。作用是獲取 HW-TEE 中執行程式的度量值資訊,該度量值資訊由 HW-TEE 進行簽名。
  • Chip Manufacturer Specific Attestation Service(Endorser):執行在公有網路中,由晶片廠商提供的服務。作用是驗證度量值資訊的簽名,以確定度量值資訊確實是由真實 HW-TEE 生成的。
  • Verdict & Reproducible Build Infrastructure(Reference Value Provider):執行在使用者可信環境中的服務。作用是生成 HW-TEE 中執行程式的度量值的參考值,以判定在 HW-TEE 環境中的執行程式是符合預期的或者程式是沒有被篡改過的。
  • Verdictd(Relying Party + Relying Party Owner + Verifier Owner):執行在使用者可信側環境中的服務。職責是呼叫 Chip Manufacturer Specific Attestation Service 和 Verdict & Reproducible Build Infrastructure 檢查度量值資訊的簽名和其內容,以完成整個遠端證明流程。
  • KMS:執行在使用者可信側環境或者公有網路中的金鑰管理服務。作用是進行金鑰的管理。

EAA工作原理

1、當需要進行遠端證明時,執行在雲上 HW-TEE 環境中的 Attestation Agent 獲取當前 HW-TEE 執行環境的度量值資訊併傳送給 Verdictd 服務進行相關驗證。

2、當 Verdictd 收到度量值資訊後會把它傳送給 Chip Manufacturer Specific Attestation Service 來檢查度量值資訊的簽名,以驗證生成度量值資訊的 HW-TEE 是一個真實的 HW-TEE。目的是防止黑客偽造一個 TEE 環境來騙取使用者的信任。

3、如果度量值資訊的簽名驗證成功,Verdictd 會檢查度量值的具體資訊。目的是確定雲上HW-TEE環境中的執行程式是符合預期的或者程式是沒有被篡改過的。

4、如果上述檢查都成功,則遠端證明流程已經成功完成,使用者可以確定雲上 HW-TEE 環境是一個真實的 HW-TEE,並且執行在 HW-TEE 環境中的程式滿足:

  • 是使用者自己部署的程式,並且該程式沒有被黑客篡改。
  • 是第三方部署的程式,但這些程式是符合預期的,比如這些程式是經過程式碼稽核並確定是沒有漏洞的。

5、遠端證明流程已經成功,所以 Attestation Agent 和 Verdictd 之間可以建立一個安全並可信的通道。Attestation Agent 可以傳送請求給 Verdictd 以獲取一些機密資料,比如加密容器映象的解密金鑰。

貢獻

EAA  致力於通過和開源社群貢獻和合作以實現落地實踐能力,它作為首個支援 Intel TDX 遠端證明的 Key Broker Service(KBS),是  confidential-containers  首個支援 TDX HW-TEE 的 E2E demo 的 KBS 服務,併成功地完成了 confidential-containers V0 階段 E2E Demo 關鍵節點。

結束

EAA 填補了基於 HW-TEE 的機密容器在雲原生場景下應用的最後一環,為機密容器在雲環境中的安全部署和啟動提供了必要的基礎。

目前 EAA 作為 Inclavare Containers(CNCF 專案)的子模組,支援的 HW-TEE 環境包括 Intel SGX 和 Intel TDX,支援的機密容器包括 Inclavare Containers 和 Kata CC。未來,EAA 將持續演進,以支援新的不同的機密容器方案,並支援新的 HW-TEE 環境,讓 EAA 成為機密容器領域內真正的通用遠端證明架構。

網址連結:

Inclavare Containers:

confidential-containers:

龍蜥社群 SIG 地址:

Demo 視訊:

—— 完 ——
加入龍蜥社群

加入微信群:新增社群助理-龍蜥社群小龍(微信:openanolis_assis),備註 【龍蜥】拉你入群;加入釘釘群:掃描下方釘釘群二維碼。歡迎開發者/使用者加入龍蜥社群(OpenAnolis)交流,共同推進龍蜥社群的發展,一起打造一個活躍的、健康的開源作業系統生態!


揭祕遠端證明架構EAA:機密容器安全部署的最後一環 | 龍蜥技術


關於龍蜥社群

龍蜥社群(OpenAnolis)是由 企事業單位、高等院校、科研單位、非營利性組織、個人等按照自願、平等、開源、協作的基礎上組成的非盈利性開源社群。龍蜥社群成立於 2020 年 9 月,旨在構建一個開源、中立、開放的Linux上游發行版社群及創新平臺。

短期目標是開發龍蜥作業系統(Anolis OS)作為 CentOS 替代版,重新構建一個相容國際 Linux 主流廠商發行版。中長期目標是探索打造一個面向未來的作業系統,建立統一的開源作業系統生態,孵化創新開源專案,繁榮開源生態。

龍蜥OS 8.4 已釋出,支援 x86_64 、ARM64、LoongArch 架構,完善適配 Intel、飛騰、海光、兆芯、鯤鵬、龍芯等晶片, 並提供全棧國密支援。

歡迎下載:

加入我們,一起打造面向未來的開源作業系統!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2848800/,如需轉載,請註明出處,否則將追究法律責任。

相關文章