ARM-V9 RME(Realm Management Extension)系統架構之系統能力的內存隔離和保護

安全之安全(security2)博客目錄導讀

目錄

一、內存隔離和保護

1、顆粒PAS過濾Granular PAS filtering

2、Cache的一致性維護

2.1 物理別名點?Point of Physical Aliasing (PoPA)

2.2 加密點

3、內存(DRAM)保護

3.1 內存加密和完整性

3.2 DRAM scrubbing


本博客探討?RME 所需的系統能力,以保證 Arm CCA 對于 Realms 的安全性和隔離特性。

一、內存隔離和保護

架構上獨立的物理地址空間的概念使得形成強大的內存保護隔離邊界成為可能。

本節定義了使用物理地址空間保證內存隔離的規則,以及通過這些空間將資源映射到安全狀態的方法。

可以從每個安全狀態訪問的物理地址空間在下表中定義,即 PAS 訪問表:

資源是一個可尋址物理實體。RME 系統中的資源僅在與資源物理地址空間 (Resource PAS) 關聯時才可訪問。

資源與資源 PAS 的關聯由 SSD 或 MSD 控制。

資源與資源 PAS 的關聯可以由隔離硬件靜態設置,也可以在運行時由 MSD 固件更改

對資源的訪問與以下內容相關聯:

  • 根據 PAS 訪問表,訪問 PAS。
  • MECID。

對于通過第一級或第二級 MMU 訪問資源的請求者,根據 PAS 訪問表分配訪問 PAS 由 MMU SSD 硬件強制執行。 對于不通過第一級或第二級 MMU 訪問資源的請求者,例如通用中斷控制器 (GIC) 或調試訪問端口,分配訪問 PAS 和 MECID 并符合上述要求由請求者端的 SSD 硬件強制執行。

SSD 硬件是不可變的或由 SSD 組件專門控制的硬件,例如受信任子系統。

附加到請求的 PAS 標簽傳達其相關的訪問 PAS。

ARM架構參考手冊和ARM SMMU架構規范定義了從每個安全狀態設置訪問 PAS 的編程模型。

通過非第一級或第二級 MMU/SMMU 訪問內存映射資源的請求者必須支持一種方法,該方法由 SSD 硬件強制執行,以根據 PAS 訪問表標記訪問的訪問 PAS。

例如:

  • 調試訪問端口 (DAP) 可以向外部調試器暴露一個編程寄存器,允許為任何訪問主內存或 APB 外設的操作設置一個訪問 PAS 到一個允許的值,這取決于調試認證接口的狀態。
  • 如果調試認證接口允許 RMSD 外部調試但不允許安全外部調試,則 DAP 硬件會拒絕將寄存器編程為訪問 PAS == Secure 的嘗試。
    • 此外,如果調試認證接口允許 RMSD 外部調試,則 DAP 硬件可以允許訪問 PAS == Realm 的訪問來指定編程的 MECID。

一旦分配,訪問 PAS 的值不能更改。

系統不得暴露任何允許覆蓋訪問 PAS 值的寄存器或調試機制。

PAS 過濾器通過僅允許訪問與該資源關聯的資源 PAS 匹配的訪問 PAS 來強制執行 PAS 保護檢查。

系統中的每個請求者都必須接受 PAS 保護檢查。

在此上下文中,請求者包括以下任何一種:

  • 處理單元(PEs),由主操作系統或管理程序用來執行用戶應用程序或內核線程。
    • 本規范中還使用術語“應用 PEs”來區分主機軟件可見的處理單元和嵌入系統設備中的處理單元。
  • 非 PE 請求者,可能是完全一致的、IO 一致的或非一致的(fully coherent, IO-coherent, or Non-coherent)。
    • 這包括任何支持發起內存訪問的設備,如緩存預取器(cache prefetchers)、通用中斷控制器 (GIC) 或調試訪問端口(DAP)。
    • 其他示例包括外圍設備,包括 PCIe 設備或可能包含非應用 PEs 的控制處理器。

某些受信任的請求者遵循 PAS 保護檢查,而無需經過 PAS 過濾器。

  • PAS 過濾器可以直接訪問根 PAS 中的資源,如存儲在 DRAM 中的保護表。
  • 內存保護引擎 (MPE) 可以直接訪問根 PAS 中的資源,如存儲在 DRAM 中的完整性標簽。
  • 受信任的子系統可以使用硬連線映射直接訪問外圍寄存器或 SMEM,將資源與根 PAS 關聯。

術語“completer ”指包含資源并響應訪問的組件。

對于某些資源,如外圍設備或 SMEM,PAS 過濾器可以位于completer側。對于其他資源,如 DRAM,PAS 過濾器必須附加到所有訪問該資源的請求者上。RME 系統架構規則保證無論哪種結構,都能保持隔離。

MSD 資源位于根 PAS 中,由在 EL3 運行的軟件管理。

對根 PAS 的訪問僅允許受信任的請求者進行。

受信任的請求者包括:

  • 在根安全狀態 (EL3) 下執行的 PE。
  • 受信任的子系統。例如,受信任的 SCP 或托管 HES 的子系統。
  • 內存保護引擎。
  • PAS 過濾器。

RMSD 資源位于 Realm PAS 中(RMSD Resources are in the Realm PAS),由在 Realm 安全狀態下 EL2 運行的軟件管理。

術語“資源 X 位于 PAS Y”表示資源 X 僅在 PAS Y 中可訪問,除非明確允許資源在多個 PAS 中可訪問。

1、顆粒PAS過濾Granular PAS filtering

顆粒 PAS 過濾是以頁面(物理粒度)的粒度將資源與 PAS 進行可編程關聯。

顆粒 PAS 過濾器根據顆粒保護表(GPT)指定的物理粒度資源 PAS 檢查訪問 PAS。如果檢查失敗,則訪問將被中止,并報告粒度保護錯誤(GPF)。

在滿足以下條件時,可以使用顆粒保護表將資源與 PAS 關聯:

  • 每個 PAS 中只有一個物理地址(PA)可以訪問資源,并且該 PA 的值在所有物理地址空間中相同。
  • 資源可以以頁面粒度分配給 PAS。

術語粒度保護檢查(GPC)指代請求者側的顆粒 PAS 過濾器,此類過濾器可以附加到 MMU 或 SMMU 上。

GPC 是請求者側的 PAS 過濾器。在系統構建中,來自應用 PE 或附加到 SMMU 的請求者的任何訪問首先經過請求者側的 PAS 過濾器,然后才能到達完成者側的 PAS 過濾器。因此,GPT 的編程必須考慮特定資源的完成者側 PAS 過濾器的潛在存在。

對于由完成者側 PAS 過濾器保護的資源,可以省略粒度保護檢查,在這種情況下,資源在 GPT 中標記為“允許所有訪問”。

MSD 保證所有受粒度保護檢查約束的請求者看到的一致的粒度保護表視圖。

內存加密規則意味著當粒度的 PAS 關聯更改時,粒度內容不會被保留。然而,軟件不能依賴粒度過渡到新 PAS 作為隱式清除事件,必須在將粒度過渡到非安全 PAS 之前顯式清除粒度內容。

片上資源的粒度保護檢查只能依賴于存儲在片上或存儲在具有同等級別的完整性和重放保護的片外粒度保護表。

適用于非冪等位置的粒度保護檢查不允許在訪問的粒度保護檢查完成之前對非冪等位置進行任何推測性訪問。

一個非冪等位置的例子是讀取敏感的內存映射外圍寄存器。對非冪等內存的推測性讀取訪問可能導致不可預測的行為。因此,使用 GPC 將非冪等位置分配給 Realm、安全或根 PAS 的系統必須在允許訪問非冪等位置之前完成對其的 GPC。

如果請求者側的顆粒 PAS 過濾器處于復位狀態,則與其關聯的任何請求者都處于復位狀態或被阻止訪問內存。

這允許在初始化系統時實現可預測的訪問控制行為。

2、Cache的一致性維護

2.1 物理別名點?Point of Physical Aliasing (PoPA)

物理別名點(PoPA)是cache維護操作的參考位置。

以可以緩存的內存為目標的PA與PAS相關聯,直到到達PoPA。(A PA that targets memory that can be cached is associated with a PAS until reaching the PoPA. )

當 PA 與 PAS 關聯時,任何 PA 比較操作都包括 PAS。這適用于系統的任何層次結構級別(包括L1數據和指令緩存)上位于PoPA之前(在請求者和PoPA之間)的任何緩存或snoop filter。這是維護將分離的物理地址空間作為系統全局安全屬性的原則所必需的。

RME系統支持按照ARM架構參考手冊對PoPA進行緩存維護操作。對PoPA (PoPA CMO)的緩存維護操作的范圍是Outer Shareable可共享域。

PoPA CMO 影響系統中具有指定 {PAS, PA} 的任何緩存副本,無論以下條件如何:

  • 緩存時的共享域。
  • 系統支持單個還是多個外部共享性域。
  • 在具有 MEC 的系統中緩存時的 MECID。

例如,實現必須保證從一個PE發送的PoPA CMO會影響被其他PE分配為不可共享的緩存行。這種保證通常需要snoop過濾器注冊任何分配到位于顆粒保護檢查之后的完全一致緩存的分配,而不管導致分配的訪問的可共享性屬性。

實現可以通過讓應用 PE 人為地將非共享可緩存訪問轉換為內部共享可緩存或外部共享可緩存來支持這一點,但必須保證當其他請求者繼續使用非共享屬性訪問相同位置時,內存一致性和連貫性語義得以保留。

非 PE 請求者在分配到粒度保護檢查之前的緩存時,可以繼續使用非共享可緩存屬性,因為這種緩存的后續回寫總是通過 PAS 保護檢查。

2.2 加密點

加密點(PoE)是緩存維護操作的參考位置。帶有 MEC 的 RME 系統支持PoE 緩存維護操作。

對可緩存內存位置的訪問與 MECID 關聯,直到達到 PoE。

當一個位置的副本分配到緩存中時,它將存儲分配訪問的 MECID。

緩存清理操作(由于緩存維護操作和自然清除)導致的內存訪問使用緩存條目的MECID。

3、內存(DRAM)保護

3.1 內存加密和完整性

有幾種內存加密和完整性方案適用于RME系統。

基本的加密要求是支持對外部內存進行加密,對于每個PAS使用單獨的加密密鑰或tweak,并使用地址tweak提供空間隔離。RME防止運行時軟件訪問外部內存中的密文。

加密內存的完整性和新鮮度是額外的、依賴于威脅模型的能力,用于ARM機密計算安全模型中規定的Arm CCA安全保證。

使用術語Memory Protection Engine(MPE)來描述提供外部內存加密和完整性服務的組件。 在ARM機密計算安全模型中定義了一種可用于Arm CCA系統的內存保護方案分類方法。

分配給安全PAS、領域PAS或根PAS的外部內存必須使用提供至少以下全部內容的方法進行加密

  • 對于每個PAS的唯一加密上下文。
  • 對于每個加密數據塊(如128位內存塊)的唯一地址tweak調整。
  • 如果不支持加密內存完整性,則使用確保加密數據塊上的比特擴散的加密模式。
  • 在具有MEC的系統中,在領域PAS中為每個MECID使用不同的加密上下文。

在寫入外部內存或位于PoPA之后的任何共享緩存之前對數據進行加密。

在具有MEC的系統中,在寫入外部內存或位于PoE之后的任何共享緩存之前對數據進行加密。

在具有MEC的系統中,MECID用于標識加密上下文,例如加密密鑰或調整值,這些可能存儲在MECID索引表或MECID標記的緩存中。

存儲加密上下文的內存映射數據結構必須位于根PAS中的SMEM中,例如MSD SMEM。

3.2 DRAM scrubbing

使用術語“scrubbing”來描述一種操作,保證了先前的內存位置的內容不再可讀。

術語“ECC-scrubbing”用于描述刷新DRAM ECC狀態的操作。

在系統啟動時,可能已經被分配給安全PAS、領域PAS或根PAS的內存必須在非受信任的請求者被授予對該內存的訪問權限之前進行擦除。因為RME系統支持內存加密,所以在RME系統重置時,通過重置所有存儲的內存加密密鑰來隱式執行擦除。

位于PoPA之后的ECC-scrubbing引擎不能通過錯誤記錄寄存器等途徑泄露機密信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19066.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19066.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19066.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡編程 —— Http使用httpClient實現頁面爬蟲

先去找類型的a標簽 取出圖片所在網址 取出https://desk.3gbizhi.com/deskMV/438.html 搭建Form界面 Http類 public static HttpClient Client { get; } static Http() {HttpClientHandler handler new HttpClientHandler();//處理消息對象//ServerCertificateCustomValidat…

安卓手機APP開發___設置鬧鐘

安卓手機APP開發___設置鬧鐘 目錄 概述 設置不精確鬧鐘 在特定時間后發出鬧鐘 在特定時間范圍內觸發鬧鐘 以大致有規律的時間間隔響起重復鬧鐘 設置精確的鬧鐘 系統會在未來的某個精確時刻調用精確鬧鐘。 可能不需要精確鬧鐘的用例 設置精確鬧鐘的方法 系統資源消耗…

萬億應急國債項目之通信指揮類應急裝備多鏈路聚合通信設備在應急行業中的重要作用

萬億應急國債項目的推出,無疑是我國在應急領域的一次重大舉措。在這一宏大藍圖中,通信指揮類應急裝備的多鏈路聚合通信設備顯得尤為重要,其在應急行業中所發揮的作用,堪稱不可或缺的關鍵一環。 通信指揮是應急響應中的核心環節&a…

QT C++ 讀寫mySQL數據庫 圖片 例子

在上篇文章中描述了怎樣搭建讀寫數據庫的環境。 本文更進一步,描述了讀寫mySQL數據庫,字符、整型數字、圖片。讀寫圖片相對難點。 數據庫的圖片字段用BLOB,如果圖片較大要用longblob,否則會報錯。 另外,讀寫數據庫都使用了短連…

Pytorch 星號*放在tensor前的作用

假如有一個多維tensor,名為id,那么*id的意思是什么呢? GPT答: 如果 id 是一個多維張量,那么 *id 在這種情況下會將這個多維張量解包成一個張量序列,其中每個元素都是一個更低維度的張量。具體來說&#x…

圖形學初識--空間變換

文章目錄 前言正文矩陣和向量相乘二維變換1、縮放2、旋轉3、平移4、齊次坐標下總結 三維變換1、縮放2、平移3、旋轉繞X軸旋轉:繞Z軸旋轉:繞Y軸旋轉: 結尾:喜歡的小伙伴可以點點關注贊哦 前言 前面章節補充了一下基本的線性代數中…

前端Vue小兔鮮兒電商項目實戰Day02

一、Pinia快速入門 此處見:Vue從入門到實戰Day12-CSDN博客 二、創建項目并精細化配置 1. 創建項目 2. src目錄調整 ①刪除一些初始化的默認文件 清空assets、components、store、views文件夾下的內容; ②修改剩余代碼內容 router/index.js import …

一個程序員的牢獄生涯(44)詢問

星期一 詢 問 在號子里開始了下午坐班的時候,過道內的大鐵柵欄被管教打開,我聽到開鎖的聲音后,心里變得激動起來。盼望著腳步聲能停在我們的號子門口,然后打開鐵門,喊一聲“眼鏡,出來!”。 通道內這次進來的是秦所,但他并沒有在我們號子門口停留,只是在走過的時候,低…

華為昇騰310 ATC模型轉換工具安裝

參考: https://bbs.huaweicloud.com/blogs/393282?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content https://www.hiascend.com/document/detail/zh/canncommercial/601/inferapplicationdev/atctool/atctool_0004.html 1、基本工具…

js知識點之閉包

閉包 什么是閉包 閉包,是 JavaScript 中一個非常重要的知識點,也是我們前端面試中較高幾率被問到的知識點之一。 打開《JavaScript 高級程序設計》和《 JavaScript 權威指南》,會發現里面針對閉包的解釋各執一詞,在網絡上搜索關…

Java中如何指定jdk的版本運行jar包

你的jdk安裝的目錄\bin\java -jar 你的jar包名字.jar 這是我的代碼示例 C:\Users\86177\.jdks\corretto-17.0.10\bin\java -jar big_event_study2-0.0.1- SNAPSHOT.jar

23種設計模式之一— — — —裝飾模式詳細介紹與講解

裝飾模式詳細講解 一、定義二、裝飾模式結構核心思想模式角色模式的UML類圖應用場景模式優點模式缺點 實例演示圖示代碼演示運行結果 一、定義 裝飾模式(別名:包裝器) 裝飾模式(Decorator Pattern)是結構型的設計模式…

LeetCode 每日一題 數學篇 2651.計算列車到站時間

給你一個正整數 arrivalTime 表示列車正點到站的時間(單位:小時),另給你一個正整數 delayedTime 表示列車延誤的小時數。 返回列車實際到站的時間。 注意,該問題中的時間采用 24 小時制。 int findDelayedArrivalTi…

學業輔導導師:文心一言智能體詳細介紹和開發

一、前言 本期題目 開發方向:學習成長類 解讀: AI技術在學習成長方向的應用正日益增多,本期賽題需圍繞該方向開發智能體包括但不限于:作文輔導助手、個性化學習助手、考試助手、各垂類教育內容專家等 二、我的智能體:學業輔導…

macbook中foxmail的通訊錄遷移

之前windows中用習慣了foxmail,換成macbook后,還是沿用foxmail。使用一段時間后,確實受不了foxmail的不便:1、版本比較低1.5.6,很多windows新版的功能都沒有;2、動不動莫名其妙崩潰,寫了半天的郵件,點擊發送就直接崩了,又得重新寫。 忍耐了幾個月后,下定決心換成網易…

2.10 mysql設置遠程訪問權限

2.10 mysql設置遠程訪問權限 目錄1. 管理員運行mysql命令窗口2. 使用 root 用戶重新登錄 MySQL3. 修改用戶權限4. 修改mysql安裝目錄下的my.ini 目錄 說明: Mysql8.0 設置遠程訪問權限 一、Mysql8.0 設置遠程訪問權限 1. 管理員運行mysql命令窗口 2. 使用 root 用…

matlab安裝及破解

一、如何下載 軟件下載鏈接,密碼:98ai 本來我想自己生成一個永久百度網盤鏈接的,但是: 等不住了,所以大家就用上面的鏈接吧。 二、下載花絮 百度網盤下載速度比上載速度還慢,我給充了個會員&#xff0c…

【1】:計算機圖形學概述

從技術角度講,什么是好的畫面呢? 看這個畫面是不是足夠亮,也就是全局光照做的夠好 什么是計算機圖形學? 使用計算機合成和操作可視信息。 應用場景 Video Games 游戲 Movie 電影 Animation 動畫 Design 設計:CAD等軟件相關…

修復CentOS 6.6服務器YUM和RPM功能異常的技術實踐20240523

修復CentOS 6.6服務器YUM和RPM功能異常的技術實踐 引言 在復雜的生產環境中,服務器的穩定性至關重要。近期,我們遇到了一臺CentOS 6.6服務器在執行yum update -y時被中斷,導致YUM和RPM功能異常的問題。本文將詳細介紹問題的診斷、解決過程以及…

java中變量名單獨占用一個空間嗎,為什么能直接使用變量名而不需要給java地址,變量名和地址之間有什么關系

在 Java 中,變量名不單獨占用存儲空間,但它們確實在內存中有對應的地址。為了理解這一點,我們需要深入了解變量名和內存地址之間的關系。 變量名與內存地址 變量名的作用: 在 Java 程序中,變量名是用于引用存儲在內存中的數據的…