技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

OpenAnolis小助手發表於2022-09-01

編者按:龍蜥社群雲原生機密計算 SIG 定位於雲原生機密計算底層基礎設施,專注於機密計算底層技術。在阿里巴巴開源開放週中, 龍蜥社群機密計算 SIG Maintainer、Intel 產品安全專家張順達分享了《Intel 機密計算技術在龍蜥社群的實踐》,幫助開發者龍蜥社群機密計算 SIG,以及 Intel 在 SIG 當中的工作和進展。以下為本次分享內容:

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

一、龍蜥社群雲原生機密計算 SIG 背景介紹

機密計算透過在基於硬體的可信執行環境(TEE)中執行計算的方式來保護使用中的資料。 這些安全的、隔離的環境可防止對使用中的應用程式和資料進行未經授權的訪問或篡改,從而提升相關組織在管理敏感資料和受監管資料方面的安全級別。TEE目前流行的技術有 Intel 的SGX、TDX,AMD 的 SEV 及 ARM 的 TrustZone 等等。

當前,Intel 在龍蜥社群主要提供了 SGX 和 TDX 支援,以及在 SGX 和 TDX 上構建的執行時虛擬機器以及容器等一些列機密計算應用。

英特爾軟體防護擴充套件(Intel Software Guard Extensions,SGX)是一組安全相關的指令,它被內建於一些現代 Intel 中央處理器(CPU)中。它們允許使用者態將特定記憶體區域設定為私有區域,此區域也被稱作飛地(Enclaves)。其內容受到保護,不能被使用者應用本身以外的任何程式存取,包括以更高許可權級別執行的程式。

CPU 對受 SGX 保護的記憶體進行加密處理。受保護區域的程式碼和資料的加解密操作在 CPU 內部動態(on the fly)完成。因此,處理器可以保護程式碼不被其他程式碼窺視或檢查。SGX 使用的威脅模型如下:Enclaves 是可信的,但 Enclaves 之外的任何程式都不可信(包括作業系統本身和任何虛擬化管理程式),所有這些不可信的主體都被視為有存在惡意行為的風險。Enclaves 之外程式碼的任何程式碼讀取受保護區域,只能得到加密後的內容,由於 SGX 不能防止針對執行時間等側通道資訊的測量和觀察,所以在 SGX 內部執行的程式本身必須能抵抗側通道攻擊。

SGX 被設計用於實現安全遠端計算、安全網頁瀏覽和數字版權管理(DRM)。其他應用也包括保護專有演算法和加密金鑰。英特爾® Trust Domain Extension (TDX) 正在推出新的架構元件,以幫助部署稱為信任域 (TD)的硬體隔離虛擬機器 (VM)是 SGX 的下一代產品。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

龍蜥社群雲原生機密計算 SIG(Special Interest Group)宗旨是構建一個雲原生的機密計算開源技術棧,降低機密計算的使用門檻,簡化在雲上的部署和應用難度,擴充使用場景及創新方案,主要定位於底層的基礎設施,為廣大開發者提供基礎的支撐。

SIG 目前主要的活躍的專案有海光 CSV 機密容器、Inclavare Containers 機密容器、Intel SGX 和 TDX 基礎架構的適配,以及阿里雲 JavaEnclave、螞蟻 Occlum,和其他社群 SIG 也有密切的合作,比如 Cloud Kernel、海光 Arch、Intel Arch、虛擬化、雲原生等。

二、Intel 機密計算在龍蜥社群的實踐以及規劃

目前機密計算領域有一些普遍的、共性的問題,雲原生機密計算 SIG 都有相應的應對和解決方法:

  • 首先是使用者的心智不足,普遍對這項技術認知感不足,甚至不知道機密計算,也缺少需求。我們就透過龍蜥大講堂等直播演講的形式來推廣,並且也透過龍蜥實驗室讓外部使用者能夠體驗機密計算。

  • 其次是技術門檻相對偏高。比如 SGX 和 TrustZone 的程式設計模型比較複雜,學習和使用門檻比較高;但機密虛擬機器形態的 SEV 及 TDX 仍需要近一步推廣。 針對這個問題,我們會在 Anolis 中引入機密計算讓使用者使用,也會提升機密計算的可用性,支援多種硬體,提供多種部署形態和技術棧,儘量滿足使用者的不同需求。

  • 再次是應用產品缺乏普適性。例如目前的使用場景通常都是特定行業,特別是有壁壘的行業,如金融行業等。因此我們要提升通用性,提出更多具有通用性的解決方案。

  • 最後就是信任根和信任模型的的問題。國內使用者對國外 CPU 的信任根問題存在擔憂,另外租戶也可能希望將雲廠商及第三方從自己的 TCB 中完全移除。應對這個問題,雲原生機密 SIG 將會發布機密計算技術白皮書,透過遠端證明體系來做一些澄清,增加使用者信心。

那 Intel 在針對以上問題作出的解決方案有以下 3 方面:

  • 降低技術門檻方面,會盡量提供便捷的程式設計介面,例如 SGX 支援 LibOS 的方案:關於 LibOS 方案:在 SGX 程式設計模型中,可信部分一般需要使用者自己移植到 Enclave 當中,使用特定的程式設計介面來操作。Gramine 和 Occlum 使用 LibOS,將使用者程式直接全部放到一個大 Enclave 當中,為使用者提供系統呼叫、IO 等支援。也將 SGX SDK/PSW(平臺軟體/Intel提供的基礎服務),DCAP 的相關安裝包和庫,適配到 Anolis 當中,使得使用者可以更方便地使用。

  • 在通用性支援上面,我們對容器和虛擬機器做最大限度的支援,保證通用性方案可以很好的在上面執行。

  • 在可信支援方面,Intel 也會提供基礎的遠端證明框架,幫助澄清誤會和增加使用者的信心。

下圖是龍蜥社群打造一體化解決方案示意圖。從圖中可以看到龍蜥社群承接晶片廠商、支撐 OSV、整機廠、ISV 和終端使用者。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

在雲原生機密計算 SIG 活躍專案中,Intel 提供了 SGX Stack,並支援Inclave container,另外還有 JavaEnclave、Occlum 也是基於 SGX 技術。所以 Intel 在龍蜥社群相關工作可以分為 4 大類:

  • 首先是機密計算和可信環境的一個基礎的支撐,主要包括SGX SDK、SGX PSW/DCAP 安裝包的適配和 Anolis 的整合。

  • 其次是基於 LibOS 的執行時支援,目前使用該項技術的有 Intel 的 Gramine 和螞蟻的 Occlum。

  • 然後還有虛擬化和容器,SGX 虛擬化 SGX、SGX 和 TDX 機密容器。

  • 最後是對同態加密的支援,包括軟體和硬體(例如 QAT 硬體加速)等等。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

根據上圖大家可以看到:

  • 在技術棧上面,Intel 提供可信計算的一部分硬體平臺支援(SGX,TDX)。

  • 在和執行時層面給出基礎支援 SGX 和 TDX DCAP 的開發包,並且也提供基於遠端證明的 TLS 通訊。在 SGX 基礎上的 libOS 解決方案 Gramine,也對使用 SGX 的螞蟻的 Occlum 和阿里雲的 JavaEncave 進行技術支援。

  • Attestation 體系方面也提供遠端證明框架。

  • 在容器方面袋鼠 CC Inclavare Container Enclave CC 等都用到了 SGX 和 TDX 技術。

  • 執行時庫有 Intel 的同態加密 stack。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

目前 Intel 在龍蜥社群中的各個專案都在穩步推進,像海光 CSV 機密容器是已交付, Intel SGX 軟體包、SGX LibOS 解決方案,SGX 虛擬化以及 TDX 遠端證明也會在下文中作為主要的例子來展開講一下。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

在機密計算產品和技術圖中, Intel 產品在各個產品當中主要提供基礎機密計算能力的支撐,Intel SGX 和 TDX DCAP 能夠向上支撐執行時、虛擬機器、容器等具體的使用,最終讓使用者方便地將自己的 workload 執行到一個可信的機密計算環境當中。

Intel 為 Anolis OS 提供了適配和最佳化過的 SGX SDK/PSW/DCAP 以及 TDX DCAP 軟體安裝包和執行時庫。將它們整合到龍蜥作業系統(Anolis OS)之後,可以讓使用者更加方便高效地使用,為上層的機密計算應用如機密虛擬機器和機密容器等提供服務。

關於 Gramine 的 Stack,Gramine 使用 Intel SGX 技術,整合到龍蜥作業系統(Anolis OS)之後,使用者可以更加方便地部署具體的應用,例如機器學習等 Workload,無需修改或者重新編譯。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

Gramine 作為基礎支撐模組,為 Enclave 機密容器提供 SGX 執行環境。

Occlum 也是類似的思路。Enclave 機密容器及其他 SGX 機密容器 /Workload 也可以選擇 Occlum 作為執行 SGX 的環境。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

SGX 虛擬化,在VM或者VM Pod當中SGX SDK/PSW/DCAP都起到了一個基礎支撐的作用,服務於具體的 Runtime。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

TDX 主要提供了遠端證明支援,使用者在 TDX 當中跑 Workload 相對比較容易,由於整個 OS/VM 都是加密的,也不用再移植任何程式碼。但是遠端證明是一個非常重要的點 -- 使用者怎麼信任他的 VM 執行在一個有 TDX 能力的硬體平臺上?我們提供了一套軟體和服務,使得 TDX VM 可以高效和安全地完成遠端證明。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

關於同態加密,Intel 也有相關的軟體和庫,另外提供了硬體支援。圖中 ICX 是最新的一代伺服器晶片,SPR 是下一代伺服器晶片,QAT 則是加解密加速硬體。

技術門檻高?來看 Intel 機密計算技術在龍蜥社群的實踐 | 龍蜥技術

我們將目前的一些交付流程(如 SGX 和 TDX DCAP 的軟體包適配流程)分為幾個階段:首先是在 Intel 方面完成所有的測試,然後是在 Intel 倉庫中釋出,下一個階段就是開源 Build spec,這樣客戶可以有一個標準的 Build spec 來自己進行 build,最後是整合到 Anolis 的倉庫中。目前我們以及順利地完成了測試,並將陸續釋出在 Intel 和 Anolis 的軟體倉庫裡。

三、總結

透過龍蜥社群機密計算 SIG,推廣機密計算技術,提高可用性和通用性,增加使用者使用機密計算的資訊,Intel 在這個過程中也將機密計算如 SGX 和 TDX 技術落地,服務於龍蜥社群的使用者。Intel 目前提供了以 SGX SDK/PSW/DCAP, TDX DCAP 軟體包為代表的 TEE 基礎架構支撐,和基於 LibOS 的執行時支援 Gramine。並以這些為基礎支援了其他 LibOS 執行時如螞蟻的 Occlum,以及更高層次的機密計算應用,例如 SGX 虛擬化及 SGX/TDX 機密容器。另外 Intel 也提供了同態加密軟硬體技術 Inte HE Stack,和加解密硬體加速技術 QAT,支援更多樣的機密計算使用場景。

—— 完 ——


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

相關文章