【機密計算頂會解讀】11:ACAI——使用 Arm 機密計算架構保護加速器執行

導讀:本文介紹ACAI,其構建一個基于CCA的解決方案,使得機密虛擬機能夠安全地使用加速器,同時保持與現有應用程序的兼容性和安全性,能夠實現對加速器的安全訪問。

原文鏈接:ACAI: Protecting Accelerator Execution with Arm Confidential Computing Architecture | USENIX

ACAI: Protecting Accelerator Execution with Arm Confidential Computing Architecture

一、背景介紹

隨著可信執行環境在CPU中的發展,機密計算取得一定成果,可以確保用戶的代碼和數據免受惡意租戶和具有特權的管理員的侵害,但租戶無法在可信執行環境的保護下安全使用GPU和FPGA等加速器。

在云計算環境下,用戶希望在不可信云平臺部署安全敏感應用,同時利用加速器滿足大工作量需求,而當前可信執行主要在CPU層面,未延伸到加速器,這就需要解決機密計算在加速器使用上的安全和性能問題。

Arm在2021年宣布了機密計算架構(CCA)規范,它通過顆粒保護檢查實現了硬件級別訪問控制,隔離了機密虛擬機(Realm?VMs)。作者嘗試基于CCA進行設計,使得機密虛擬機可以安全地訪問加速器。

二、 現狀分析

為實現對加速器的安全訪問,研究設立以下兩個目標:

  1. 構建一個基于CCA的解決方案,使得機密虛擬機能夠安全地使用加速器。
  2. 同時保持與現有應用程序的兼容性和安全性。

現有硬件對可信執行環境的支持如Intel SGX主要是進程級抽象,且在使用加速器方面存在不足。對于加速器與機密計算的結合,一些方案存在如需要硬件修改且性能和面積受限,以及加速器無法判斷主機安全和CPU端TEE需考慮安全設備訪問等問題。同時,現有如加密通信的bounce-buffer設計存在內存和計算開銷大、兼容性差等缺陷。因此面臨以下三個問題:

  1. 如何在不破壞CCA保護的情況下允許外部加速器訪問Realm內存?
  2. 如何確保來自不同加速器的訪問被隔離到與其連接的相應虛擬機的指定共享區域,并阻止惡意外設的訪問?
  3. 如何隔離所有可能的I/O和內存訪問路徑,防止軟件和物理對手的攻擊?

三、應對設計

  • 選擇Arm CCA:選擇Arm CCA作為基礎,因為它是即將推出的擴展,可在Arm的固定虛擬平臺上實驗,且其本身支持總線級訪問控制和內存保護。CCA架構引入了粒度保護表(GPT)追蹤物理地址,通過粒度保護檢查(GPCs)對處理單元增強,GPCs根據GPT的限制對安全領域內存的訪問進行檢查,防止外部訪問領域內存。同時因為有總線級別的加密性及完整性保護機制,物理攻擊者無法篡改主內存的數據。
  • 設計思路:提出ACAI,擴展Arm CCA的安全常量到設備端訪問。為設備安全標記為realm - mode以利用隔離,使用設備側MMU(SMMU)實現VM級隔離,重新利用硬件加密支持保護設備通信,在VM創建流程中加入設備認證。以此身份與所有權的管理、內存區域保護和設備生命周期管理。
  • 身份與所有權:設備經過認證后被賦予唯一不可偽造身份,并僅能被一個realm VM訪問和配置,確保設備與realm?VM一對一綁定。同時保證設備與realm?VM之間內存映射安全且兼容CCA,包括主機和設備側的地址轉換,以及兩者的同步。
  • 創建保護內存區域:再realm?VM和加速器之間建立共享保護內存區域,位于realm世界內存中。通過RMM和SMMU頁表確定只有指定設備和realm?VM可訪問,防止惡意設備和VM干擾。同時利用GPT將SMMU數據結構標記為僅在根模式下可訪問,防止還有hypervisor篡改映射,同時引入SMMU接口,讓hypervisor按照規則請求更新。
  • 設備生命周期管理:設備連接時,在realm?VM創建過程中附加加速器,確保相關內存區域符合安全常量。包括重置加速器、移動其配置空間到realm世界等操作。由monitor初始化設備并執行認證協議,確保設備正確初始化、認證、并收集報告,防止設備被篡改或替換。最后僅在realm?VM銷毀階段允許hypervisor分離設備,確保設備內存和狀態正確清理,防止數據泄露和安全漏洞。
  • 架構圖:

四、技術解析

4.1 內存保護

在內存方面,ACAI設置了realm VM和設備間的共享內存區域(保護區域),通過多種機制確保內存訪問的安全,如確保設備和realm的初始狀態及身份映射,以及保證內存區域的安全訪問和正確的地址轉換。

4.2 設備管理

在設備管理上,利用IDE確保設備有唯一身份且不重疊,通過一系列流程如在創建VM時同時進行安全的加速器連接,在設備連接和初始化過程中保證配置正確和身份認證。

在應對惡意組件時,針對不可信hypervisor、惡意的co-tenants、其他的惡意設備和物理攻擊者等可能的威脅,ACAI通過多種機制如密鑰保護、身份驗證、內存隔離和加密等措施進行防護,確保系統安全。

ACAI的安全常量有效保證了CPU和設備TEE的安全組合,各種攻擊都難以突破其防御,維系了系統的保密性和完整性。

插圖:(a)-(c)潛在的攻擊,(d)ACAI保護

五、驗證評估

實驗設置:Arm?FVP和Cortex-A35上進行原型實現,使用Rodinia測試集的GPU基準測試和自定義的FPGA基準測試,在不同配置下進行測量,包括原始設置、加密模式、ACAI保護模式以及優化模式等。

結果展示:結果表明ACAI在系統啟動、realm創建、刪除、SMMU操作等方面有一定的開銷,但對正常世界執行影響較小,保持安全保證的同時具有可行性。與加密模式相比,ACAI顯著減少了指令數,在GPU和FPGA上有一定的性能提升。

本賬號發布內容均為原創,歡迎轉載,轉載請注明出處。更多資訊請移步【機密計算前沿技術】服務號,歡迎交流!

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

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

相關文章

第一天 UnityShader的結構

Shader初學者的學習筆記 第一天 Unity Shader的結構 文章目錄 Shader初學者的學習筆記前言一、Unity Shader結構二、Unity Shader結構解析① Properties② Tags③ RenderSetup(可選狀態)④ Name⑤ [Tags]⑥ [RenderSetup]⑦ 頂點著色器和片元著色器的代碼 (Unity最聰明的孩子)…

VL開源模型實現文本生成圖片

一、 基礎知識 根據描述生成圖片的視覺-語言模型(Vision-Language Models, VL 模型)是近年來多模態生成領域的熱點研究方向。這些模型能夠根據自然語言描述生成高質量的圖像,廣泛應用于藝術創作、設計輔助、虛擬場景構建等領域。 1 根據描述…

【Java SE】抽象類/方法、模板設計模式

目錄 1.抽象類/方法 1.1 基本介紹 1.2 語法格式 1.3 使用細節 2. 模板設計模式(抽象類使用場景) 2.1 基本介紹 2.2 具體例子 1.抽象類/方法 1.1 基本介紹 ① 當父類的某些方法,需要聲明,但是又不確定如何實現時&#xff…

【人工智能】LM Studio 的 GPU 加速:釋放大模型推理潛能的極致優化

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 隨著大語言模型(LLM)的廣泛應用,其推理效率成為限制性能的關鍵瓶頸。LM Studio 作為一個輕量級機器學習框架,通過 GPU 加速顯著提升了大…

深度學習:從零開始的DeepSeek-R1-Distill有監督微調訓練實戰(SFT)

原文鏈接:從零開始的DeepSeek微調訓練實戰(SFT) 微調參考示例:由unsloth官方提供https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen2.5_(7B)-Alpaca.ipynbhttps://colab.research.google.com/git…

流暢如絲:利用requestAnimationFrame優化你的Web動畫體驗

requestAnimationFrame 是前端開發中用于優化動畫性能的 API。它允許瀏覽器在下一次重繪之前執行指定的回調函數,通常用于實現平滑的動畫效果。 1.作用 優化性能:requestAnimationFrame 會根據瀏覽器的刷新率(通常是 60Hz,即每秒…

【pytest框架源碼分析五】pytest插件的注冊流程

前文介紹到pytest整體是運用插件來實現其運行流程的。這里仔細介紹下具體過程。 首先進入main方法 def main(args: list[str] | os.PathLike[str] | None None,plugins: Sequence[str | _PluggyPlugin] | None None, ) -> int | ExitCode:"""Perform an i…

IoTDB日志提示Too many open files

問題 時序數據庫 IoTDB 1.3.3 版本 IoTDB 執行查詢操作失敗,日志打印提示 Too many open files。通過命令查看打開文件數,結果如下: [root0002 DataReceiver]# lsof|grep 28347|wc -l DataNode 55444 [root0002 DataReceiver]# lsof|g…

prometheus 添加alertmanager添加dingtalk機器人告警

1、dingtalk創建機器人,目前我們采用加白名單的方式校驗 2、定位到如下圖 test結果如下

C 語 言 --- 操 作 符 2

C 語 言 --- 操 作 符 2 移 位 操 作 符定 義原 碼 補 碼 和 反 碼左 移&#xff08;<<&#xff09;右 移&#xff08;>>&#xff09;算 術 右 移邏 輯 右 移 按 位 與、按 位 或、和 按 位 異 或按 位 與按 位 或按 位 異 或 邏 輯 反 操 作負 值 操 作按 位 取 反…

基于Spring Boot的公司資產網站的設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

零碳工廠能源管理系統的核心技術與應用實踐

零碳工廠能源管理系統是一種高效的解決方案&#xff0c;旨在優化能源使用并減少碳排放&#xff0c;以幫助工廠實現低碳或零碳的生產目標。以下是該系統的詳細構成和功能&#xff1a; 1. 核心組件 傳感器和監測設備&#xff1a;用于實時監測工廠內的能源使用情況&#xff0c;包…

美攝接入DeepSeek等大模型,用多模態融合重構視頻創作新邊界!

今年以來&#xff0c;DeepSeek憑借其強大的深度推理分析能力&#xff0c;在AI領域掀起新的熱潮。美攝科技快速響應市場需求&#xff0c;迅速接入以DeepSeek、通義千問、商湯、文心一言為代表的大模型&#xff0c;為企業視頻創作生產帶來全新體驗。 傳統視頻創作面臨著同質化、…

JAVA————十五萬字匯總

JAVA語言概述 JAVA語句結構 JAVA面向對象程序設計&#xff08;一&#xff09; JAVA面向對象程序設計&#xff08;二&#xff09; JAVA面向對象程序設計&#xff08;三&#xff09;工具類的實現 JAVA面向對象程序設計&#xff08;四&#xff09;錄入異常處理 JAVA圖形用戶界面設…

力扣熱題100(方便自己復習,自用)

力扣熱題100 1. 兩數之和 - 力扣&#xff08;LeetCode&#xff09; 查找兩數之和是不是等于target也就是我們找到一個數之后&#xff0c;用target將其減掉&#xff0c;再尋找應當對應的元素是什么每找到一個數&#xff0c;我們就將其放在集合中&#xff0c;因為集合中可以去重…

【yolo】yolo訓練報錯,以及解決方案

背景&#xff1a; 剛剛&#xff0c;寫了《【yolo】yolo推理報錯&#xff0c;以及解決方案》&#xff0c;馬上訓練就遇到類似的報錯。 我對我標注的圖像進行了300輪的訓練&#xff0c;但是訓練完300輪后&#xff0c;報錯了。。。 報錯信息 300 epochs completed in 0.085 hou…

vscode/cursor中python運行路徑設置 模塊導入問題

vscode/cursor中python運行路徑設置 ## 文件路徑設置 問題描述 pycharm的項目用cursor運行&#xff0c;出現目錄找不到 后來利用 os.getcwd()&#xff0c;經過打印調試發現是IDE的本身配置問題 pycharm中&#xff0c;os.getcwd()默認打開當前腳本所在目錄 vscode/cursor中…

理解線性動力學中的模態疊加法

線性動力學中的模態疊加方法 模態疊加法是線性動力學中一種有價值的工具&#xff0c;可以有效地確定頻域或時域中的系統響應。對于某些類型的線性動力學分析&#xff0c;有必要使用此方法&#xff0c;因此了解該過程對于獲得準確的結果至關重要。在本博客中&#xff0c;我們將…

報錯 - redis - Unit redis.service could not be found.

報錯&#xff1a; Unit redis.service could not be found.Could not connect to Redis at 127.0.0.1:6379: Connection refused解決方法&#xff1a; 檢查狀態、有必要的話 重新安裝 Linux 上查看狀態 systemctl status redis顯示以下內容&#xff0c;代表正常服務 出現下面…

CMS網站模板定制設計與安全評估

內容概要 現代CMS&#xff08;內容管理系統&#xff09;作為網站建設的核心載體&#xff0c;其模板架構與安全防護體系的協同設計已成為企業數字化轉型的關鍵環節。隨著網絡攻擊向量日益復雜化&#xff0c;基于HTTPS協議的端到端加密部署不僅成為基礎安全配置&#xff0c;更直…