簡介: 讓我們看下ARMv9機密計算相關的新特性Realm。
ARMv9的新聞刷屏了。ARMv9號稱十年以來最重大變革,因此讓我們看下ARMv9中機密計算相關的新特性Realm。(注:本文是對Introducing the Confidential Compute Architecture的部分翻譯和個人注解,本文圖均來自anandtech.com網站。)
背景
在過去的幾年里,我們看到安全問題和硬件安全漏洞已經成為了新聞熱點。許多處理器側信道漏洞,如幽靈、熔毀以及與它們有關的側通道攻擊,都表明有必要重新思考如何在處理器架構層面解決安全問題。
Arm想要解決這個問題的方法是:通過引入Arm機密計算體系結構(Arm CCA),重新設計敏感應用程序的工作方式。
一句話亮點總結
Arm CCA基於Armv9 Realm Mangement Extension(RME,簡稱Realm),將敏感應用和OS隔離在Realm中;Realm比機密虛擬機更加通用,既支持機密虛擬機形態,也支持機密OS形態。
High Level設計
Arm CCA基於Armv9 Realm Mangement Extension,將敏感應用和OS隔離在Realm中:
從這張圖可以總結出以下幾個要點:
1. Non-Secure World、Secure World和Realm之間是相互隔離的。
- 現有材料中沒有詳細解釋這種隔離是如何實現的,大概率還是基於硬件的地址空間隔離技術。
- 對Realm的隔離要看兩個方面:運行在Realm中的敏感應用也可能是租戶部署的惡意應用,因此對Realm的隔離也是必要的,即雙向隔離。
2. Realm可以運行OS(簡稱Realm OS),也就是說Realm提供了高特權級的支持,可以運行EL1特權軟件。
- Realm OS的形態可以有多種:
- 不一定非要是經過裁剪和安全加固過的Linux內核,也可以為Realm設計的TEE OS,或者由支持其他機密計算的OS技術實現演進過來額外支持Realm的LibOS(如Enarx、Occlum、Graphene等);但這種TEE OS不能是支持TrustZone的TEE OS,后面會討論這個話題。
- TEE OS目前的一種發展趨勢是縮小TCB、減少Rich OS潛在的攻擊面進而提升整體的安全性;但在是否需要提供良好的業務邏輯兼容性上存在分歧:
1) 一種方案是不考慮對業務的兼容性,以安全為先,可以適度犧牲性能和兼容性。 2)另一種方案還是重視對存量業務的兼容性,以兼容性為先,可以適度犧牲性能和安全性。
PS:Unikernel又有機會了!
3. EL2運行Realm Manager,負責管理Realm的調度和資源分配。可以預見這部分會由Arm CCA firmware架構來支持(類似ATF,或直接在ATF中進行擴展來支持)。
- 從目前的資料來看:Realm Manager是Arm新寫的,其代碼量大概是Hypervisor大小的十分之一。
- Realm Manager和TDX中的SEAM Module很像:在處理器架構級為該功能模塊提供了一個新的運行模式;同時該功能模塊承擔了Realm生命周期和資源管理的功能,系統中其他不可信的組件不能替代其功能和角色。
4. TrustZone對Realm也是不可信的。也就是說Realm不是像TrustZone那樣只解決計算資
源隔離的問題,而是解決更進一步的敏感數據隔離的問題。
安全威脅模型
這張圖說明了Realm的安全威脅模型,可以看出它具備典型的機密計算技術的特點:
從這張圖可以總結出以下幾個要點:1. 這里的hardware manufacturer 指的是外設的硬件設備提供商,而不是處理器本身的硬件提供商(比如Arm或SoC廠商)。2. Realm Manager不屬於Realm的一部分,但它是用戶TCB的一部分。
用法
由於Realm具備運行完整OS的能力,所以看上去可類比TDX的trust domain以及SEV/CSV的機密虛擬機,但下面的用法中則揭示了Realm相比機密虛擬機形態更為通用的一面:
從這張圖可以總結出以下幾個要點:
1. 由於TrustZone中的TEE OS不是通用OS,而是結合TrustZone深度定制過的,因此無法將TEE OS直接加載到Realm中並運行,這也打破了原先認為Realm會基於TrustZone架構進行迭代的假設;但適配了OP-TEE的TA是可以運行在Realm中的,只要Realm OS能夠支持OP-TEE的TA API。換句話說,這張圖可能也暗示了Arm接下來會在Realm OS中提供對TA的支持,當然也可能這張圖只是展示Realm的兼容性能力;此外,在Realm中運行Android應用也存在上述的可能性。
2. Realm Manager本質上充當了類似Hypervisor管理VM的角色,只不過Realm Manager管理的對象是Realm。
- 當Realm運行VM的時候,可以認為把Hypervisor中涉及到Realm安全性的邏輯挪到了Realm Manager中,而把不涉及其安全性的部分保留在傳統Hypervisor中。
3. Realm僅僅是專門為運行敏感應用而提供的硬件TEE,它的使用者可以將自己環境內的工作負載通過Realm Manager將敏感應用+OS一起加載到Realm中,甚至是將一個完整的虛擬機加載到Realm中,因此ealm不是機密虛擬機,而是泛用性更高的通用型機密計算運行環境底座。
綜上所述,Realm技術不僅大幅度降低了敏感應用對信任的需求以及用戶在適配Realm的成本,而且OS自身的安全性問題對Realm應用來說將變得非常透明(但Realm應用對外提供的服務以及Realm OS對外暴露的接口的安全性依舊需要重視)。此外,因為關鍵性應用能夠安全地在任何支持CCA的系統中運行,而當今公司或企業往往需要使用具有各種安全合規的授權軟件棧的專用設備才能實現這種安全性,因此這種技術也能降低用戶在安全上所投入的成本。
slide中沒有體現出來的要點
Realm中的應用能夠attest Realm Manager以確保它是可信的。
內存加密。這個是機密計算的必備能力。
目前的資料沒有顯示出Realm提供的這種通用運行能力是如何支持Realm與IO設備間的交互的。據說Confidential IO問題還沒有在Realm 1.0中得到解決,也許會在下一代技術中解決。
后續
目前Arm僅僅提供了關於CCA如何運作的high level解釋,有關該機制究竟如何運作的更多細節將在今年夏天晚些時候公布。(完)
附翻譯原文:Introducing the Confidential Compute Architecture
https://www.anandtech.com/show/16584/arm-announces-armv9-architecture/2
關於Inclavare Containers
Inclavare是Enclave一詞的拉丁語詞源,讀音是 [ˈinklɑveə]。
Enclave 指的是一種受保護的執行環境,能為其中的敏感和機密數據提供基於密鑰學算法的強安全隔離,阻止不可信的實體訪問用戶的數字資產。
Inclavare Containers是由阿里雲與Intel聯合共建共同研發的面向機密計算場景的開源容器運行時技術棧,同時支持異構節點的Enclave遠程證明基礎實施、Enclave池化以及多類型Enclave Runtime等特性,服務於機密Kubernetes集群和機密容器。
原文鏈接
本文為阿里雲原創內容,未經允許不得轉載。