15-Arm-Confidential-Compute-Software-Stack
目錄
- 1. 學習目標:
- 2 What is Confidential Computing?
- 2.1 Arm CCA requirements
- 3 Arm CCA extensions
- 3.1 Realms
- 3.2 Realm world and Root world
- 3.3 What is the difference between Arm TrustZone extensions and Arm RME?
- 4 Arm CCA hardware architecture
- 4.1 Realm world requirements
1. 學習目標:
? 機密計算的定義
? 描述一個復雜的系統(tǒng)信任鏈
? 了解 Realm 是 Arm CCA 引入的受保護執(zhí)行環(huán)境
? 解釋如何在 Arm CCA 的實施中創(chuàng)建、管理和執(zhí)行領域
? 定義可信執(zhí)行環(huán)境 (TEE) 和領域之間的區(qū)別
? 解釋 Realm 所有者如何在 Realm 中建立信任
相關文檔:
<Introducing-Arm-Confidential-Compute-Architecture.pdf>
AArch64 Exception model
AArch64 Memory management
AArch64 virtualization
Introduction to security
2 What is Confidential Computing?
機密計算是通過在可信賴的硬件支持的安全環(huán)境中執(zhí)行計算來保護使用中的數據。
這種保護保護代碼和數據免受特權軟件和硬件代理的觀察或修改。
在機密計算環(huán)境中執(zhí)行的任何應用程序或操作系統(tǒng)都可以與系統(tǒng)的其余部分隔離地執(zhí)行。 未經明確許可,在該平臺上執(zhí)行的任何其他參與者都無法觀察到隔離執(zhí)行生成或消耗的任何數據
2.1 Arm CCA requirements
在 Arm CCA 系統(tǒng)中執(zhí)行的代碼不必信任在環(huán)境或任何可能影響環(huán)境的外圍設備上執(zhí)行的大型復雜軟件堆棧,例如支持 DMA 的設備。 Arm CCA 消除了與軟件堆棧或硬件開發(fā)人員的許多關系的需要
如果安全架構師在云服務器系統(tǒng)上部署負載,他們可能不知道該系統(tǒng)的虛擬機管理程序的開發(fā)人員是誰,他們可能會考慮 Arm CCA。 由于虛擬機管理程序未知,這可能導致在沒有 Arm CCA 的平臺上執(zhí)行缺乏信任
Arm CCA 允許應用程序開發(fā)人員安全地部署工作負載,而無需信任底層軟件基礎設施,例如安全世界中的虛擬機管理程序、內核或核心。
為了允許 Arm CCA,平臺必須提供以下內容:
? 提供與所有不受信任的代理隔離的執(zhí)行環(huán)境
? 建立執(zhí)行環(huán)境已初始化為可信賴狀態(tài)的機制。 初始化將要求執(zhí)行環(huán)境擁有自己的信任鏈,獨立于平臺中并行不可信環(huán)境使用的信任鏈
3 Arm CCA extensions
Arm CCA 允許您部署應用程序或虛擬機 (VM),同時防止更有特權的軟件實體(例如管理程序)進行訪問。但是,通常管理內存等資源的正是這些特權軟件實體。在這種情況下,特權軟件實體(例如管理程序)確實可以訪問應用程序或 VM 的內存。
Arm CCA 允許您控制 VM,但刪除了訪問該 VM 使用的代碼、寄存器狀態(tài)或數據的權利。
通過創(chuàng)建名為 Realms 的受保護 VM 執(zhí)行空間來實現分離。 Realm 在代碼執(zhí)行和數據訪問方面與正常世界完全隔離。 Arm CCA 通過結合架構硬件擴展和固件來實現這種分離。
在 Arm CCA 中,Arm 應用程序 PE 上的硬件擴展稱為領域管理擴展 (RME)。 RME 與領域控制的專業(yè)固件交互,稱為領域管理監(jiān)視器 (RMM),以及異常級別 3 中的監(jiān)視器代碼。
我們在 Arm CCA 硬件架構和 Arm CCA 軟件架構中描述了這些元素。
3.1 Realms
Realm 是一個 Arm CCA 環(huán)境,可以由 Normal world Host 動態(tài)分配。主機是管理應用程序或虛擬機 (VM) 的監(jiān)控軟件。 Realm 及其執(zhí)行平臺的初始狀態(tài)可以被證明。證明允許 Realm 所有者在向 Realm 提供任何機密之前建立對 Realm 的信任。 Realm 不必從控制它的非安全虛擬機管理程序繼承信任。主機可以分配和管理資源分配。 Host 可以管理 Realm VM 操作的調度。但是,Host 無法觀察或修改 Realm 執(zhí)行的指令。領域可以在主機控制下創(chuàng)建和銷毀。可以通過主機請求以類似于管理任何其他非機密 VM 的管理程序的方式添加或刪除頁面。
要運行 CCA 系統(tǒng),需要修改 Host。主機繼續(xù)控制非機密虛擬機,但需要與 Arm CCA 固件通信,特別是領域管理監(jiān)視器 (RMM)。 RMM 的操作在 Arm CCA 軟件擴展中討論。
3.2 Realm world and Root world
Armv8-A TrustZone 擴展允許安全執(zhí)行代碼和隔離數據,通過兩個獨立的世界,安全世界和正常世界。世界是 PE 的安全狀態(tài)和物理地址空間的組合。 PE 正在執(zhí)行的安全狀態(tài)決定了 PE 可以訪問哪些物理地址空間。在安全狀態(tài)下,PE 可以訪問安全和非安全物理地址空間,而在非安全狀態(tài)下,它只能訪問非安全物理地址空間。正常世界通常用于指代非安全狀態(tài)和非安全物理地址空間的組合。作為 Armv9-A 的一部分提供的 Arm CCA 引入了領域管理擴展或 RME。這個擴展引入了兩個額外的世界,Realm 世界和 Root 世界:
? Root world 引入了Root 安全狀態(tài)和Root 物理地址空間。 PE 在異常級別 3 中運行時處于根安全狀態(tài)。根 PA 與安全 PA 是分開的。這是與 Armv8-A TrustZone 的主要區(qū)別,其中異常級別 3 代碼沒有私有地址空間,而是使用安全 PA。后者仍然被 S_EL2/1/0 使用。 Monitor 在 Root 世界中運行。
? Realm 世界類似于 TrustZone Secure 世界。 Realm 世界由 Realm 安全狀態(tài)和 Realm PA 組成。 Realm 狀態(tài)代碼可以在 R_EL2、R_EL1 和 R_EL0 執(zhí)行,并且在 Realm 世界中運行的控制固件可以訪問 Normal 世界中的內存以允許共享緩沖區(qū)。
下圖顯示了四個基于 RME 的世界,以及它們與 SCR_EL3 NS 和 NSE 位的關系:
Root world允許可信啟動執(zhí)行和不同世界之間的切換。 PE 重置為 Root 世界。 Realm 世界為 VM 提供了一個與正常和安全世界隔離的執(zhí)行環(huán)境。在正常世界中,VM 需要來自主機的控制。為了完全控制 Realm 創(chuàng)建和執(zhí)行,Arm CCA 系統(tǒng)提供:
? 領域管理擴展,這是架構所需的硬件擴展,以允許隔離的領域虛擬機執(zhí)行
? 領域管理監(jiān)視器,它是固件的一部分,用于根據普通世界主機的請求管理領域的創(chuàng)建和執(zhí)行
我們在 Arm CCA 硬件架構和 Arm CCA 軟件架構中更詳細地描述了這些組件。非 RME PE 中的世界切換由 SCR_EL3.NS 位控制。異常級別 3 軟件在切換到安全世界時設置 NS = 0,在切換到正常世界時設置 NS = 1。 RME 實現的 PE 中的世界切換通過添加到 SCR_EL3 寄存器的新 SCR_EL3.NSE 位進行擴展。下表顯示了這些位如何控制四個世界之間的執(zhí)行和訪問:
3.3 What is the difference between Arm TrustZone extensions and Arm RME?
所有 Arm A-Profile 處理器都可以選擇實現 Arm TrustZone 架構擴展。這些擴展允許開發(fā)獨立的執(zhí)行和數據環(huán)境。像可信操作系統(tǒng) (TOS) 這樣的元素可以為可信應用程序提供服務,這些應用程序獨立執(zhí)行,以服務來自正常世界中運行的富操作系統(tǒng)的安全請求。
Armv8.4-A 在安全世界中添加虛擬化,讓您可以在安全世界中管理多個安全分區(qū)。此功能可以允許將多個 TOS 應用于一個系統(tǒng)。在 S_EL2 執(zhí)行的安全分區(qū)管理器 (SPM) 是安全分區(qū)的管理器。 SPM 具有與普通世界中的虛擬機管理程序類似的功能。
在操作中,Trusted OS 通常是信任鏈的一部分,它由更高權限的固件驗證,在某些系統(tǒng)中這可能是 SPM。這意味著 TOS 依賴于與更高權限固件開發(fā)人員的關系。
有兩種方法可以啟動 TOS 的執(zhí)行:
? Rich OS yielding,Rich OS進入空閑循環(huán),執(zhí)行SMC指令通過Monitor調用TOS
? 以可信操作系統(tǒng)為目標的中斷。安全類型 1 中斷用于執(zhí)行 TOS。在正常世界執(zhí)行期間斷言的安全類型 1 中斷通過監(jiān)視器調用 TOS。
Realm 虛擬機不同于 Trusted OS 或 Trusted 應用程序,因為 Realm VM 是由 Normal world Host 控制的。在創(chuàng)建和內存分配等方面,Realm VM 的行為與任何其他受主機控制的 VM 一樣。 Realm VM 執(zhí)行和 Trusted OS 執(zhí)行之間的區(qū)別在于 Realm 沒有啟用任何物理中斷。 Realm 的所有中斷都由管理程序虛擬化,然后通過傳遞給 RMM 的命令發(fā)送給 Realm。這意味著受損的管理程序可能會阻止 Realm VM 的執(zhí)行,因此無法保證 Realm 的執(zhí)行
Realm 執(zhí)行和內存訪問由控制主機軟件(例如管理程序)初始化。 Realm 不必由主機驗證。 Realm 可以繞過任何信任鏈,因為它可以使用 RME 初始化證明。有關更多信息,請參閱證明。 Realm 也與控制軟件完全隔離。如果 Realm 由 Host 初始化,則 Host 無法查看 Realm 的數據或數據存儲器。
Realms 和 TOS 的使用之間的主要區(qū)別在于安全執(zhí)行和 Realm 執(zhí)行之間的設計意圖。
可信應用程序用于接近系統(tǒng)開發(fā)的參與者所擁有的平臺特定服務,例如有機硅供應商 (SiP) 和原始設備制造商 (OEM)。
Realm 執(zhí)行的目的是允許一般開發(fā)人員在系統(tǒng)上執(zhí)行代碼,而無需與計算系統(tǒng)中的開發(fā)人員建立復雜的業(yè)務關系。
Arm CCA 允許在普通世界主機的控制下按需創(chuàng)建和銷毀領域。可以從 Realms 動態(tài)添加或檢索資源。這為更多應用程序和用戶帶來了與設備相關的服務可用的隔離優(yōu)勢。
信任通常根據機密性、完整性和真實性進行定義,并在以下列表中進行了解釋:
? 由于機密性,Arm CCA 環(huán)境的代碼數據或狀態(tài)無法被同一設備上運行的其他軟件觀察到,即使該軟件具有更高的特權
? 由于完整性,Arm CCA 環(huán)境的代碼數據或狀態(tài)無法被同一設備上運行的其他軟件修改,即使該軟件具有更高的特權
? 具有真實性,同一設備上運行的其他軟件可以修改代碼或數據,但可以識別任何更改
可信應用程序和 TOS 可以為系統(tǒng)提供機密性、完整性和真實性。 Realm 執(zhí)行可以為系統(tǒng)提供機密性和完整性
Arm CCA系統(tǒng)提供的四世界環(huán)境,讓Secure世界和Realm世界完全分離。這意味著可信應用程序不必關心任何領域虛擬機的執(zhí)行,領域虛擬機也不關心任何可信應用程序的執(zhí)行
4 Arm CCA hardware architecture
4.1 Realm world requirements
和其它的security state一樣,Realm world也有3個exception levels: R_EL0、 R_EL1、 and R_EL2. 其中:
Realm VMs 運行在R_EL1和R_EL0.
Realm Management Monior (RMM)運行在R_EL2
總結
以上是生活随笔為你收集整理的15-Arm-Confidential-Compute-Software-Stack的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 14-Providing protect
- 下一篇: 16-Understanding the