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