ITBear旗下自媒體矩陣:

螞蟻開源KubeTEE:讓機密計算支持大規(guī)模k8s集群

   時間:2020-09-30 16:31:54 來源:互聯網作者:肖俊賢、閆守孟、秦凱倫編輯:星輝 發(fā)表評論無障礙通道

9月25日,在上海外灘大會可信原生技術論壇上,螞蟻宣布開源KubeTEE,一個云原生大規(guī)模集群化機密計算框架,解決在云原生環(huán)境中TEE可信執(zhí)行環(huán)境技術特有的從開發(fā)、部署到運維整體流程中的相關問題。

KubeTEE開源地址:

https://github.com/SOFAEnclave/KubeTEE

背景

2018年,螞蟻集團開始全面轉型云原生架構。在落地云原生架構的過程中,螞蟻集團的工程團隊發(fā)現,新的技術在帶來諸多紅利的同時,也帶來了很多新的挑戰(zhàn)。其中,安全是云原生架構里被忽視的一塊短板。經過不斷地實踐和探索,螞蟻在2020年提出了“可信原生(Trust-Native)”的理念,將可信任性滲透到云原生架構的各層之中,打造全??尚刨嚨脑朴嬎慊A設施,為業(yè)務保駕護航。

機密計算理念,以及可信執(zhí)行環(huán)境TEE (Trusted Execution Environment) ,作為保護應用的運行安全的技術,也被螞蟻引入并積極實踐,形成了SOFAEnclave機密計算技術棧。SOFAEnclave包括三大組件:

Occlum LibOS:解決業(yè)務開發(fā)過程中的問題,如傳統TEE應用開發(fā)需要切分重構,依賴SDK特定編程語言等問題;

HyperEnclave:解決TEE部署環(huán)境問題,如硬件TEE不普及、軟硬件TEE使用一致性等問題;

KubeTEE:解決TEE集群問題,包括云原生環(huán)境特有的從開發(fā)、部署到運維整體流程中的相關問題。

2019年云棲大會上,螞蟻首次介紹了在SOFAEnclave機密計算技術棧方面的一些工作。一年來,Occlum LibOS已經開源,并捐獻給CCC(Confidential Computing Consortium)機密計算聯盟。CCC機密計算聯盟隸屬于Linux基金會,由業(yè)界多家科技巨頭發(fā)起,致力于保護計算數據安全。Occlum捐獻給CCC,將成為CCC社區(qū)首個中國發(fā)起的開源項目。

本次KubeTEE的開源,是業(yè)界首個開源的TEE大規(guī)模集群整體解決方案。螞蟻將持續(xù)擁抱和回饋開源社區(qū),推動行業(yè)技術一起向前發(fā)展。

KubeTEE是什么

KubeTEE是云原生場景下如何使用TEE技術的一套整體解決方案,包括多個框架、工具和微服務的集合。就像其名字所暗示的,KubeTEE結合Kubernetes和TEE兩個重要技術方向,解決可信應用從單點到容器化集群實施過程中的相關問題。

KubeTEE的目標之一是提供Serverless形態(tài)的機密計算服務,比如Trusted FaaS,讓業(yè)務方只需要實現業(yè)務核心邏輯,就可以簡單地將之提交到TEE環(huán)境中運行,而不用重復整套的業(yè)務服務開發(fā)、部署和運維的流程。

KubeTEE架構圖:

目前,KubeTEE已經開源的組件包括:

  • sgx-device-plugin:sgx容器插件,讓容器支持sgx特性,由螞蟻與阿里云團隊共同開發(fā);
  • trusted-function-framework:TFF可信應用開發(fā)框架,簡化可信函數實現過程,屏蔽SGX相關細節(jié);
  • enclave-configuration-service:AECS,基于遠程認證的enclave配置服務;
  • protobuf-sgx:經修改以支持Enclave內部使用的protobuf協議。

下面來介紹一下如何利用KubeTEE的這些組件來開發(fā)一個集群化的可信應用。

讓可信應用開發(fā)變得更簡單

目前服務器端TEE技術最成熟的代表就是Intel SGX技術,目前KubeTEE相關工作也都基于SGX實現。要讓一個基于SGX開發(fā)的可信應用能夠運行起來并持續(xù)服務,除了類似一般業(yè)務的普通流程以外,還需要一些額外的SGX技術相關工作。

在沒有KubeTEE之前,整個可信應用的開發(fā)流程看起來可能像這樣:

開發(fā)階段需要做的事情

  1. 選擇一個合適的開發(fā)模式開發(fā)可信應用,比如基于SDK、某種改進的架構、或者Occlum這種LibOS方式。另外,為了確保軟件和平臺可信,開發(fā)者還需要實現一些類似遠程證明和校驗的安全相關流程。
  2. 需要維護可信代碼的簽名密鑰,訪問遠程證明服務器的鑒權密鑰等。
  3. 編譯和簽名可信應用,如果計劃部署到容器環(huán)境,還需要制作容器鏡像。

部署、運行和維護階段需要做的事情

  1. 獲取支持TEE特性的機器,并且安裝配置TEE運行時依賴的相關組件。
  2. 確保運行時網絡環(huán)境正常,比如可以訪問遠程證明服務器。
  3. 合理和高效地調配物理服務器資源,支持CI、測試和生產等使用需求。
  4. 發(fā)布和運維可信應用服務,包括擴縮容等。

從完整的軟件工程角度看,如果讓每個業(yè)務開發(fā)團隊都去重復這些繁瑣的工程工作,那無疑是非常低效的。KubeTEE的目標是通過云原生的手段簡化上述過程,幫助業(yè)務方更簡單、更順暢地實現基于TEE的可信應用和服務,具體包括可信應用開發(fā)支持、基礎設施支持和微服務輔助支持等方面。

可信應用開發(fā)支持

總體來說,KubeTEE支持如下整個可信應用的開發(fā)流程: 基于開發(fā)框架的應用開發(fā) -> 應用自動化簽名服務 -> 基于基礎鏡像和模板工具的容器打包和上傳。

為了滿足不同應用場景的開發(fā)需求,在Occlum LibOS基礎上,KubeTEE開源了TFF可信應用開發(fā)框架。

其中Occlum LibOS主要適用于一些不想修改的舊應用遷移到TEE保護,或者一些基于大型框架的不適合切分的應用,或者C++以外其他編程語言開發(fā)的應用等。而TFF框架主要適用于需要嚴格控制Enclave內部代碼性能和安全的輕量應用場景,所以舍棄了對復雜應用的兼容(這部分Occlum LibOS可以更好的支持),理念是讓TEE原生SDK支持的分割式編程模型更加穩(wěn)定和易用。

TFF利用protobuf message簡化可信和非可信部分接口函數定義的復雜度、封裝遠程證明等TEE技術底層細節(jié)和流程,讓使用者只需要關心可信函數的實現和調用邏輯,快速實現可信應用。

因為同樣使用了protobuf message來封裝數據,所以利用TFF框架開發(fā)基于gRPC的微服務也變得更容易。另外TFF還提供容器了基礎容器鏡像和dockerfile文件模板,幫助使用者快速制作一個可信應用容器鏡像。

基礎設施支持

應用開發(fā)就緒之后,需要部署到硬件集群環(huán)境中。在基礎設施方面,KubeTEE基于Kubernetes,利用云原生的方式管理和使用SGX物理機器,統一SGX主機環(huán)境,并抽象成容器邏輯資源池,提供統一的可信應用部署服務,讓TEE硬件基礎設施成為一種可以按需使用的集群化資源。

KubeTEE開源的sgx-device-plugin讓業(yè)務容器啟動時候自動獲取TEE特性支持,同時方便集群管理和分配TEE資源。 從工程實踐角度,集群中可以隔離CI、測試、預發(fā)和生產環(huán)境,滿足業(yè)務不同階段對TEE基礎設施的需求。

微服務輔助支持

業(yè)務部署到TEE集群中以后,會產生一些遠程證明、業(yè)務密鑰部署和共享、網絡代理等通用性需求,還有日志、監(jiān)控、自愈、擴縮容等運維系統需求。KubeTEE提供了一些輔助微服務來幫助業(yè)務方節(jié)省重復開發(fā)的人力和時間成本。

其中,KubeTEE開源的AECS(Attestation based Enclave Configuration Service)方案就是為了解決可信應用多個實例間安全共享密鑰從而實現無狀態(tài)服務的問題。 AECS主要提供秘鑰生成、導入、存儲、管理和分發(fā),遠程證明報告代理獲取等基礎功能,將來可能擴展更多通用配置管理功能,比如證書生成和分發(fā)。同時,AECS支持多種secret格式和自定義的secret訪問policy,支持多業(yè)務之間秘鑰隔離管理。

未來展望

目前,KubeTEE已經可以較大程度幫助業(yè)務方降低TEE開發(fā)復雜度,但是依然任重道遠。KubeTEE下一階段將更多關注云原生場景和機密計算的結合,持續(xù)貢獻更多組件以及通用服務,讓TEE的使用更高效、更簡單、更云原生化。

最后,我們衷心希望,KubeTEE能和業(yè)界攜手,共建更完整的云端安全計算生態(tài)。

舉報 0 收藏 0 打賞 0評論 0
 
 
更多>同類資訊
全站最新
熱門內容
網站首頁  |  關于我們  |  聯系方式  |  版權聲明  |  網站留言  |  RSS訂閱  |  違規(guī)舉報  |  開放轉載  |  滾動資訊  |  English Version