ARM CCA機密計算安全模型之固件更新

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

目錄

1、遠程更新

2、本地更新

3、魯棒性


1、遠程更新

Arm歡迎關于CCA固件更新需求的反饋。一般而言,CCA固件更新過程可以描述如下:

  1. CCA固件更新客戶端使用固件更新協議與遠程更新服務通信。
  2. CCA固件更新客戶端將下載的CCA固件復制到臨時暫存位置。
  3. 系統重啟,并在啟動過程中使用更新。

[R0134] Arm建議固件更新協議元數據的簽名和驗證應獨立于固件簽名和固件驗證。
固件更新協議的選擇不在CCA的范圍內。例如,固件更新協議可能包含安全功能,如更新目標控制和防回滾計數器控制。這些功能可能包括協議級固件更新控制消息,以及固件負載。
固件更新客戶端應驗證CCA固件更新或CCA固件更新控制消息來自授權的更新源。在這種情況下,源通常不同于鏡像簽名者。例如,鏡像可能由CCA固件分發者簽名,而更新過程可能由服務提供商或托管提供商單獨控制。
只有在重啟后,更新才會生效。重啟的范圍可能會根據更新的范圍有所不同。
CCA固件更新的示例范圍包括:

  • 根更新:影響Monitor安全域或CCA系統安全域中的一個受信子系統
  • Realm世界更新:僅影響Realm世界
  • RMM更新:僅影響Realm世界中的CCA組件

本文檔使用“執行更新”一詞描述固件更新客戶端將更新提供給CCA固件后,驗證、安裝和執行更新的過程。更新影響CCA的可信性,CCA固件有責任確保只有授權的更新才能被執行。
固件更新只能由更受信的安全域或安全域中最受信的組件執行。

[R0142] 根更新只能由CCA HES主機執行。

[R0143] Realm世界更新可以由Monitor執行。

[R0144] RMM更新可以由RMM執行。

根更新需要系統完全重啟,Realm世界更新僅需要Realm世界的重啟。
RMM更新可能只需要重啟RMM,而不需要重啟所有Realms。這樣的Realm世界動態更新不在當前CCA版本范圍內,但可能在后續版本中解決。

[R0094] 至少更新的有效性應始終在執行更新時進行驗證。
根據生態系統的需求,有效更新可能是任何正確簽名并符合防回滾策略的更新。或者系統可能需要通過安全固件更新協議進行顯式更新授權后才能執行更新。

暫存位置通常是通用的外部存儲。根據生態系統的需求,可能需要額外的完整性控制以防止未經授權的替換。例如,可能的要求是使用本地哈希鎖定方案,或在顯式更新授權消息中實現防重放機制。

[R0098] 在將身份元數據復制到暫存區之前,必須知道并驗證至少加載已簽名的CCA固件身份元數據所需的內存。

[R0135] 必須在將鏡像負載復制到片上內存或受保護的外部內存之前,知道并驗證所需的內存。

[R0136] 必須在從外部存儲復制數據之前,確保分配并可用所需內存。
例如,簽名的固件身份元數據和固件負載可以組合成一個固定最大大小的鏡像。然后實現可以確保在復制之前始終有一個至少該大小的固定緩沖區可用。

或者,簽名的固件身份元數據可以是固定大小,并包含負載的大小。然后,身份元數據可以復制到固定緩沖區并在那里驗證,然后基于已驗證的負載大小分配第二個動態緩沖區。

[R0137] 數據不能復制超出暫存區的邊界。這防止緩沖區溢出攻擊。

[R0099] 重啟后,啟動過程的相關部分檢測到可用的更新,并嘗試以正常方式加載它。
系統在任何更新后必須保持可認證性。
根更新后系統始終是可認證的,因為它需要系統完全重啟。它不會在運行時更改依賴方所認證的系統啟動狀態。
Realm世界更新后,Realm世界將重啟,包括所有的Realms,確保更新后的Realms根據新的Realm世界狀態進行認證。
在動態RMM更新的情況下,系統的啟動狀態在運行時發生了變化,與依賴方在更新之前認證的狀態相比有所不同。RMM執行動態更新的能力必須反映在最初對依賴方的認證中。例如,作為服務級別協議的一部分,針對固件版本和測量值,或者針對已簽名的固件身份元數據。
在動態RMM更新的情況下,無法可靠地更新任何已認證的Realms的狀態。這也是為什么執行動態更新的能力必須是最初認證契約的一部分。

然而,任何動態RMM更新后的認證請求必須反映CCA平臺的新狀態。
同樣,在動態RMM更新的情況下,更新后的狀態可能會影響CCA派生的Realm密鑰。
動態RMM更新和CCA派生的Realm密鑰不在當前CCA版本范圍內,可能會在后續版本中解決。

[R0101] 依賴方可以確定CCA平臺的實現是否具備世界更新或Realm世界增量更新的能力。

2、本地更新

本地更新是指需要物理訪問系統的更新。例如,通過USB更新、串行鏈路更新或啟動過程中的救援加載程序功能。
總體過程及其安全屬性應與遠程更新的情況相同。例如,USB或串行鏈路更新可以視為固件更新協議的不同傳輸方式。或者救援加載程序可以視為CCA固件更新客戶端的特殊情況。

3、魯棒性

[R0100] 任何CCA固件更新機制必須能夠應對更新失敗。
防回滾和恢復應按照CCA固件啟動的定義進行管理。

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

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

相關文章

Assimp的ReadFileFromMemory函數踩坑

使用ReadFileFromMemory函數加載模型的問題 使用ReadFileFromMemory函數無法加載obj和md3等模型數據分散在多個文件中的模型。obj模型通常有一部分數據(如紋理數據)在mtl文件中保存,如果只把obj文件加載到內存中,并通過ReadFileF…

機組的概述

計算機系統組成 硬件系統和軟件系統 計算機硬件 1.馮諾依曼機基本思想 特點 1.采用“存儲程序”工作方式 2.硬件系統由運算器,存儲器,控制器,輸入輸出設備組成 3.指令和數據存在存儲器中,形式無區別 4.指令和數據用二進制代…

后端開發入門超完整速成路線(算法篇)

引言 后端開發是軟件開發中不可或缺的一部分,它涉及到服務器、數據庫、API等核心組件的構建和維護。對于初學者來說,掌握算法和數據結構是進入后端開發領域的基礎。本文將為你提供一個超完整的算法學習路線,幫助你快速入門,并在文…

主鍵有多種設計

1. 自增ID id bigint NOT NULL AUTO_INCREMENT COMMENT 主鍵ID 優點: 簡單直觀自動生成遞增有序,對索引友好 缺點: 可能暴露業務信息分布式系統下需要特殊處理合并數據時可能沖突 2. UUID/GUID id char(36) NOT NULL COMMENT 主鍵ID …

【面試】后端開發面試中常見數據結構及應用場景、原理總結

在后端開發面試中,常見的數據結構包括數組、鏈表、棧、隊列、二叉樹、平衡樹、堆、圖和哈希表等。以下是這些數據結構的總結,包括它們的應用場景、優缺點。 常見數據結構及其應用場景 數據結構應用場景數組存儲固定大小的數據集合,如學生成…

TypyScript從入門到精通

TypyScript從入門到精通 TypyScript 是什么?增加了什么環境搭建二、為何需要 TypeScript三、編譯 TypeScript四、類型聲明五、類型推斷基本類型六、類型總覽JavaScript 中的數據類型TypeScript 中的數據類型1. 上述所有 JavaScript 類型2. 六個新類型:3.…

Tableau數據可視化與儀表盤搭建-安裝教程

下載 tableau.com/zh-cn/support/releases 滾動到最下方的下載 在下載的同時 我們點擊登錄,去注冊一個tableau的賬號 下面點擊我們下載好的tableau安裝程序 不要自定義安裝,會有路徑問題 點擊試用14天 點擊激活 激活學生 tableau.com/zh-cn/academic…

049_小馳私房菜_MTK Camera debug,通過adb 命令讀寫Camera sensor寄存器地址的值

一、讀取/寫入 某個寄存器地址的值 設備先adb root 1)讀取寄存器地址的值 /proc/driver # echo "0x0a34" > camsensor && dmesg |grep -i a34 2)往寄存器地址寫值 /proc/driver # echo "0x3304 0x66” > camsensor && dmesg |grep -…

Scala_【4】流程控制

第四章 分支控制if-else單分支雙分支多分支返回值嵌套分支 For循環控制包含邊界不包含邊界循環守衛循環步長嵌套循環循環返回值 While循環Break友情鏈接 分支控制if-else 單分支 雙分支 多分支 返回值 嵌套分支 For循環控制 Scala也為for循環這一常見的控制結構提供了非常多的…

Flink源碼解析之:Flink On Yarn模式任務提交部署過程解析

Flink源碼解析之:Flink On Yarn模式任務提交部署過程解析 一、Flink on Yarn部署模式概述 Apache Hadoop YARN 在許多數據處理框架中都很流行。 Flink 服務提交給 YARN 的 ResourceManager,后者會在 YARN NodeManagers 管理的機器上生成容器。 Flink 將…

Backend - C# 的日志 NLog日志

目錄 一、注入依賴和使用 logger 二、配置記錄文件 1.安裝插件 NLog 2.創建 nlog.config 配置文件 3. Programs配置日志信息 4. 設置 appsettings.json 的 LogLevel 5. 日志設定文件和日志級別的優先級 (1)常見的日志級別優先級 (2&…

ESP32自動下載電路分享

下面是一個ESP32系列或者ESP8266等電路的一個自動下載電路 在ESP32等模塊需要燒寫程序的時候,需要通過將EN引腳更改為低電平并將IO0引腳設置為低電平來切換到燒寫模式。 有時候也會采用先將IO接到一個按鍵上,按住按鍵拉低IO0的同時重新上電的方式進入燒寫…

QML自定義數值編輯框SpinBox樣式

代碼展示 import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.1Window {visible: truewidth: 640height: 480title: qsTr("Hello World")SpinBox {id: controlvalue: 50editable: truecontentItem: TextInput {z: 2text: control.textFromVal…

魅族手機調用tts失敗解決

安裝了閱讀、MultiTTS之后,發現閱讀的時候一直tts初始化失敗,換了多個tts軟件也不行。。。 解決方法:tts軟件設置后臺運行權限 打開“手機管家”權限管理后臺管理找到自己安裝的tts軟件(比如我是MultiTTS)&#xff0c…

1-markdown轉網頁樣式頁面 --[制作網頁模板] 【測試代碼下載】

markdown轉網頁 將Markdown轉換為帶有樣式的網頁頁面通常涉及以下幾個步驟:首先,需要使用Markdown解析器將Markdown文本轉換為HTML;其次,應用CSS樣式來美化HTML內容。此外,還可以加入JavaScript以增加交互性。下面我將…

Eplan 項目結構(高層代號、安裝地點、位置代號)

Eplan中的項目結構分為3個層次: (1)功能面結構。指明這個系統的功能,有什么用途。在EPlan中,指的就是"高層代號()"。 一般指的是線體。 (2)位置面結構。指明該…

《Armv8-A virtualization》學習筆記

1.MAIR 的全稱是 Memory Attribute Indirection Register。它是ARM架構中的一種寄存器,用于定義內存的屬性,并提供一種間接訪問內存屬性的機制。MAIR寄存器包含多個字段,這些字段指示不同類型內存的屬性,例如是否可以緩存、是否為…

NLP 復習大綱

CH3 激活函數意義 增強網絡表達能力,引入非線性因素 連續可導的非線性函數 盡可能簡單 導數的值域要在合適的范圍內 為什么會發生梯度消失 誤差傳播的迭代公式為: 其中需要用到激活函數的導數,而激活函數的導數值小于1時,誤差經過…

如何使用OBS Studio錄制屏幕?

可以進入官網或github進行下載: https://obsproject.com/download 安裝包解壓后進入bin 進入64-bit 選擇obs 64 進入OBS Studio后在來源內右鍵,選擇添加 選擇添加顯示器采集即可錄取整個屏幕,窗口采集可選擇窗口進行錄制 選擇對應顯示器即配置…

深入理解連接池:從數據庫到HTTP的優化之道

在現代應用開發中,高效的資源管理是關鍵,其中連接池(Connection Pool)技術起到了至關重要的作用。本文將帶你深入了解連接池的概念及其在數據庫和HTTP通信中的應用,結合 JDBC 與 Druid 的關系,以及 HttpURL…