天天看點

ARMv9機密計算架構Realm技術預覽背景一句話亮點總結Hign Level設計安全威脅模型用法Slide中沒有直接展現出來的要點後續

這兩天科技新聞區被ARMv9的新聞刷屏了。ARMv9号稱十年以來最大重大變革,是以讓我們看下ARMv9中機密計算相關的新特性Realm。

注:本文是對

Introducing the Confidential Compute Architecture 的部分翻譯和個人注解。

背景

在過去的幾年裡,我們看到安全問題和硬體安全漏洞已經成為了新聞熱點。許多處理器側信道漏洞,如幽靈、熔毀以及與它們有關的側通道攻擊,都表明有必要重新思考如何在處理器架構層面解決安全問題。

Arm想要解決這個問題的方法是:通過引入Arm機密計算體系結構(Arm CCA),重新設計敏感應用程式的工作方式。

一句話亮點總結

Arm CCA基于Armv9 Realm Mangement Extension(RME,簡稱Realm),将敏感應用和OS隔離在Realm中;Realm比機密虛拟機更加通用,既支援機密虛拟機形态,也支援機密OS形态。

Hign Level設計

Arm CCA基于Armv9 Realm Mangement Extension,将敏感應用和OS隔離在Realm中:

ARMv9機密計算架構Realm技術預覽背景一句話亮點總結Hign Level設計安全威脅模型用法Slide中沒有直接展現出來的要點後續

從這張圖可以總結出以下幾個要點:

  • Non-Secure World、Secure World和Realm之間是互相隔離的。
    • 現有材料中沒有詳細解釋這種隔離是如何實作的,大機率還是基于硬體的位址空間隔離技術。
    • 對Realm的隔離要看兩個方面:運作在Realm中的敏感應用也可能是租戶部署的惡意應用,是以對Realm的隔離也是必要的,即雙向隔離。
  • 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潛在的攻擊面進而提升整體的安全性;但在是否需要提供良好的業務邏輯相容性上存在分歧:
        • 一種方案是不考慮對業務的相容性,以安全為先,可以适度犧牲性能和相容性。
        • 另一種方案還是重視對存量業務的相容性,以相容性為先,可以适度犧牲性能和安全性。
        • PS:Unikernel又有機會了!
  • EL2運作Realm Manager,負責管理Realm的排程和資源配置設定;可以預見這部分會由Arm CCA firmware架構來支援(類似ATF,或直接在ATF中進行擴充來支援)。
    • 從目前的資料來看:Realm Manager是Arm新寫的,其代碼量大概是Hypervisor大小的十分之一。
    • Realm Manager和TDX中的SEAM Module很像:在處理器架構級為該功能子產品提供了一個新的運作模式;同時該功能子產品承擔了Realm生命周期和資源管理的功能,系統中其他不可信的元件不能替代其功能和角色。
  • TrustZone對Realm也是不可信的;也就是說Realm不是像TrustZone那樣隻解決計算資源隔離的問題,而是解決更進一步的敏感資料隔離的問題。

安全威脅模型

這張圖說明了Realm的安全威脅模型,可以看出它具備典型的機密計算技術的特點:

ARMv9機密計算架構Realm技術預覽背景一句話亮點總結Hign Level設計安全威脅模型用法Slide中沒有直接展現出來的要點後續
  • 這裡的hardware manufacture指的是外設的硬體裝置提供商,而不是處理器本身的硬體提供商(比如Arm或SoC廠商)。
  • Realm Manager不屬于Realm的一部分,但它是使用者TCB的一部分。

用法

由于Realm具備運作完整OS的能力,是以看上去可類比TDX的trust domain以及SEV/CSV的機密虛拟機,但下面的用法中則揭示了Realm相比機密虛拟機形态更為通用的一面:

ARMv9機密計算架構Realm技術預覽背景一句話亮點總結Hign Level設計安全威脅模型用法Slide中沒有直接展現出來的要點後續
ARMv9機密計算架構Realm技術預覽背景一句話亮點總結Hign Level設計安全威脅模型用法Slide中沒有直接展現出來的要點後續
  • 由于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應用也存在上述的可能性。
  • Realm Manager本質上充當了類似Hypervisor管理VM的角色,隻不過Realm Manager管理的對象是Realm。
    • 當Realm運作VM的時候,可以認為把Hypervisor中涉及到Realm安全性的邏輯挪到了Realm Manager中,而把不涉及其安全性的部分保留在傳統Hypervisor中。
  • 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解釋,有關該機制究竟如何運作的更多細節将在今年夏天晚些時候公布。

繼續閱讀