ARMv9刷屏 —— 號稱十年最大變革,Realm機密計算技術有什么亮點?
作者 / 乾越
編輯 / 芹菜
出品 / 云巔論劍
ARMv9的新聞刷屏了。ARMv9號稱十年以來最重大變革,因此讓我們看下ARMv9中機密計算相關的新特性Realm。(注:本文是對Introducing the Confidential Compute Architecture的部分翻譯和個人注解,本文圖均來自anandtech.com網(wǎng)站。)背景在過去的幾年里,我們看到安全問題和硬件安全漏洞已經(jīng)成為了新聞熱點。許多處理器側信道漏洞,如幽靈、熔毀以及與它們有關的側通道攻擊,都表明有必要重新思考如何在處理器架構層面解決安全問題。Arm想要解決這個問題的方法是:通過引入Arm機密計算體系結構(Arm CCA),重新設計敏感應用程序的工作方式。一句話亮點總結Arm CCA基于Armv9 Realm Mangement Extension(RME,簡稱Realm),將敏感應用和OS隔離在Realm中;Realm比機密虛擬機更加通用,既支持機密虛擬機形態(tài),也支持機密OS形態(tài)。
High Level設計
Arm CCA基于Armv9 Realm Mangement Extension,將敏感應用和OS隔離在Realm中:從這張圖可以總結出以下幾個要點:
1. Non-Secure World、Secure World和Realm之間是相互隔離的。
-
現(xiàn)有材料中沒有詳細解釋這種隔離是如何實現(xiàn)的,大概率還是基于硬件的地址空間隔離技術。
-
對Realm的隔離要看兩個方面:運行在Realm中的敏感應用也可能是租戶部署的惡意應用,因此對Realm的隔離也是必要的,即雙向隔離。
- Realm OS的形態(tài)可以有多種:
- 不一定非要是經(jīng)過裁剪和安全加固過的Linux內(nèi)核,也可以為Realm設計的TEE OS,或者由支持其他機密計算的OS技術實現(xiàn)演進過來額外支持Realm的LibOS(如Enarx、Occlum、Graphene等);但這種TEE OS不能是支持TrustZone的TEE OS,后面會討論這個話題。
- TEE OS目前的一種發(fā)展趨勢是縮小TCB、減少Rich OS潛在的攻擊面進而提升整體的安全性;但在是否需要提供良好的業(yè)務邏輯兼容性上存在分歧:
- 從目前的資料來看:Realm Manager是Arm新寫的,其代碼量大概是Hypervisor大小的十分之一。
- Realm Manager和TDX中的SEAM Module很像:在處理器架構級為該功能模塊提供了一個新的運行模式;同時該功能模塊承擔了Realm生命周期和資源管理的功能,系統(tǒng)中其他不可信的組件不能替代其功能和角色。
用法
由于Realm具備運行完整OS的能力,所以看上去可類比TDX的trust domain以及SEV/CSV的機密虛擬機,但下面的用法中則揭示了Realm相比機密虛擬機形態(tài)更為通用的一面:從這張圖可以總結出以下幾個要點: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本質(zhì)上充當了類似Hypervisor管理VM的角色,只不過Realm Manager管理的對象是Realm。
- 當Realm運行VM的時候,可以認為把Hypervisor中涉及到Realm安全性的邏輯挪到了Realm Manager中,而把不涉及其安全性的部分保留在傳統(tǒng)Hypervisor中。
3. Realm僅僅是專門為運行敏感應用而提供的硬件TEE,它的使用者可以將自己環(huán)境內(nèi)的工作負載通過Realm Manager將敏感應用 OS一起加載到Realm中,甚至是將一個完整的虛擬機加載到Realm中,因此ealm不是機密虛擬機,而是泛用性更高的通用型機密計算運行環(huán)境底座。綜上所述,Realm技術不僅大幅度降低了敏感應用對信任的需求以及用戶在適配Realm的成本,而且OS自身的安全性問題對Realm應用來說將變得非常透明(但Realm應用對外提供的服務以及Realm OS對外暴露的接口的安全性依舊需要重視)。此外,因為關鍵性應用能夠安全地在任何支持CCA的系統(tǒng)中運行,而當今公司或企業(yè)往往需要使用具有各種安全合規(guī)的授權軟件棧的專用設備才能實現(xiàn)這種安全性,因此這種技術也能降低用戶在安全上所投入的成本。
slide中沒有體現(xiàn)出來的要點
Realm中的應用能夠attest Realm Manager以確保它是可信的。內(nèi)存加密。這個是機密計算的必備能力。目前的資料沒有顯示出Realm提供的這種通用運行能力是如何支持Realm與IO設備間的交互的。據(jù)說Confidential IO問題還沒有在Realm 1.0中得到解決,也許會在下一代技術中解決。
后續(xù)
目前Arm僅僅提供了關于CCA如何運作的high level解釋,有關該機制究竟如何運作的更多細節(jié)將在今年夏天晚些時候公布。(完)