【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs

news2024/11/24 12:04:27

今天在COMPASS分享了之前写的一个博客,做了进一步的提炼总结,大家可以看看原文~

今天分享的论文《sNPU: Trusted Execution Environments on Integrated NPUs》来自2024年ISCA,共同一作为Erhu Feng以及Dahu Feng。并且, 这两位作者今年在加速器安全研究领域还有一篇来自ASPLOS的论文,即《sIOPMP: Scalable and Efficient I/O Protection for TEEs》。值得一提的是,这两篇论文均借助了基于RISC-V的Penglai Enclave,即2021年USENIX的《Scalable Memory Protection in the PENGLAI Enclave》,Erhu Feng为该工作的第一作者,大家感兴趣可以去了解原文。

作者

目录

  • Background & Motivation
  • sNPU Overview
  • Detailed Design
    • NPU Guarder: Memory Access Guarder for NPU
      • Challenges
      • Solutions
    • NPU Isolator: Inner Resource Isolation for NPU
      • Challenges
      • Solutions
    • NPU Monitor: Trusted Software Module for NPU
      • Challenges
      • Solutions
  • Evaluation
    • Experimental Setup
    • Protected Memory Access for sNPU
    • ID-based Scratchpad Isolation
    • NoC Isolation
    • Hardware Cost Analysis
    • TCB Size Analysis

Background & Motivation

由于移动设备上人工智能应用的高需求,当前的移动芯片在 SoC 中集成了 NPU 内核,以提高能效和性能。然而,NPU 在 SoC 中的集成引入了新的三个攻击面:

(1)利用受损的NPU攻击CPU侧资源

(2)NPU的内部攻击

(3)利用CPU攻击NPU

为了解决以上安全问题,设计结合 CPU 和 NPU 的 TEE 变得至关重要。

目前针对 CPU-NPU 系统的TEE设计分两种:

(1)可信NPU。该方法暂时将整个 NPU 指定为安全设备,并将整个 NPU 驱动程序迁移到 TEE 中。然而,该解决方案导致 NPU 资源利用率严重不足,并且由于软件堆栈的复杂性导致 TCB 较大。

(2)加密保护。该方法旨在通过内存加密和完整性保护以抵御 DRAM 的物理攻击(例如冻结内存)。然而,这些方法缺乏对 NPU 内部结构的保护,因为 NPU 内部的数据仍然是明文。

此外,直接将 GPU 等其他加速器的 TEE 机制应用于集成 NPU 存在以下两个限制:

(1)GPU TEE 中采用的 IOMMU 等隔离机制对于集成 NPU 来说效率不高,因为 NPU 需要更大的内存带宽

(2)NPU 具有 scratchpad 和 Networks-on-Chip(NoC) 等专门的硬件结构,这带来了新的攻击面

因此,NPU TEE 应该防御上述三个攻击面,并满足两个基本要求:最小化运行时性能开销和实现更高的资源利用率。

sNPU Overview

为防御前面所提到的三个攻击面,以及兼顾性能开销的基本要求,sNPU 引入了以下新颖方法:

(1)NPU Guarder。为了防御利用 NPU 外部行为(例如内存访问)的攻击,sNPU 引入了基于 tile 的内存翻译和检查单元,专门为适应 NPU 内存访问模式的特征而设计。这种设计产生(几乎)零运行时开销,同时节省了检查能耗。

(2)NPU Isolator。为了解决利用 scratchpad 和片上网络等 NPU 内结构的新攻击面,sNPU 利用 scratchpad 与主存储器没有关联的观察结果,对其采用更细粒度和动态的隔离机制。同时,sNPU 还结合了 NoC 隔离机制和离线路由检查,保证了 NoC 网络的完整性。

(3)NPU Monitor。为了最大限度地减少 CPU 端恶意软件的潜在攻击,sNPU 减少了 NPU 堆栈的软件 TCB 。sNPU 在安全世界中引入了 NPU Monitor,仅用于必要的安全检查。与此同时,人工智能框架和 NPU 驱动程序等其他软件组件可能仍然不受信任。

Detailed Design

NPU Guarder: Memory Access Guarder for NPU

Challenges

sNPU 专注于在集成的 NPU 上构建 TEE,在设计访问控制机制时会面临以下挑战:

(1)集成的 NPU 具有不同的内存访问路径,这可能会使统一访问控制器的设计变得复杂。如图1所示,一些 NPU(Type-1 和 Type-2)利用单独的 IOMMU/MMU 来限制 NPU 访问,而其他 NPU(Type-3)则依赖 CPU 端的访问检查机制。

(2)NPU 需要更高的内存带宽,这就需要更高效的检查逻辑。

(3)IOMMU/MMU 机制为 NPU 引入了不可忽略的开销。

图1. 不同类型的集成 NPU:Type-1 NPU 利用集成 DMA 引擎来检索数据。Type-2 NPU 依靠系统 DMA 引擎进行数据复制,然后使用 ld/st 指令。Type-3 NPU复用了CPU侧的内存访问能力。

Solutions

图 2 展示了 NPU Guarder 设计,这是一种利用 NPU 中特定内存访问模式的轻量级内存访问控制器。与 MMU 或 IOMMU 相比,它有两个主要优点:

(1)它具有轻量级设计,无需检查开销。

(2)它可以集成在 NPU 内部。

首先,为了消除传统基于分页的内存访问控制的运行时开销,NPU Guarder 采用粗粒度内存检查和细粒度翻译机制。对于存储器检查,它利用记录连续存储器区域的访问权限的检查寄存器,因为移动系统中的敏感数据通常存储在预先分配的安全存储器区域(例如,TrustZone 安全存储器区域)中。至于地址转换,NPU Guarder 在 tile 级别(例如输入 tile 和输出 tile)提供细粒度的转换寄存器。每个转换寄存器将特定区域从虚拟地址映射到相应的物理地址。与很少修改的检查寄存器不同,转换寄存器可以在 NPU 计算之前更新(如果需要)。

其次,NPU Guarder 将这些检查和转换寄存器集成在 NPU 内核内部,位于 DMA 引擎之前。与独立模块(例如IOMMU)相比,集成设计降低了SoC的复杂性。此外,由于内存检查和转换是在 DMA 请求级别而不是内存数据包级别执行的,因此与 IOMMU 相比,NPU Guarder 可以节省额外的消耗。当接收到 DMA 请求时,DMA 引擎将其分为多个固定大小的内存数据包(例如 64 字节)。因此,NPU Guarder 仅检查一次(并且节省能源),而 IOMMU 需要在内存数据包级别检查 O(N) 次。

图2. NPU 内核中的轻量级地址转换和检查。

NPU Isolator: Inner Resource Isolation for NPU

Challenges

Scratchpad 和 NoC 是 NPU 中用于加速 AI 工作负载的专用结构,但它们也引入了新的威胁:

(1)Scratchpad威胁。例如,NPU驱动程序可以分配一个已被另一个任务使用的scratchpad条目,并且NPU编译器可以强制读取scratchpad中的内容而不需要之前写入。

(2)NoC威胁。例如,如果 NPU 调度程序受到损害,它可以将恶意任务调度到错误的 NPU 核心。因此,攻击者可以拦截从源核心传输的秘密中间结果,或者向受害核心发送恶意 NoC 数据包。通过篡改 NoC 网络的路由完整性,攻击者可以操纵整个 ML 任务(见图3)。

图3. NoC攻击:篡改NoC路由,劫持受害者NPU任务的数据流

Solutions

为解决Scratchpad 和 NoC所面临的威胁,NPU Isolator分别提出了基于ID的隔离机制以及NoC身份验证机制。

(1)基于ID的隔离机制。如图4(b)所示。关键的见解是scratchpad条目和系统内存之间没有地址关联,允许sNPU在任何scratchpad条目中存储数据。因此,scratchpad可以采用比缓存和内存更细粒度、更动态的隔离机制。此外,由于每个scratchpad条目具有较大的有效负载(例如,≥128b),因此一位 ID 状态的资源开销可以忽略不计(<1%)。

图 4. Scratchpad的不同隔离机制:图 (a) 说明了静态Scratchpad分区。图 (b) 演示了基于 ID 的细粒度Scratchpad隔离。

(2)NoC身份验证机制,即peephole。如图5所示。peephole机制为NoC数据包生成身份(head flit)位于源核心,在NoC网络中传播。当目标核收到此 NoC 数据包时,目标核中的peephole根据其身份验证此 NoC 请求。NPU核心的ID状态可以作为peephole机制中的有效身份。为了确保全面的NoC保护,sNPU还需要考虑在多个NPU核上运行的ML任务的路由完整性。除了计算 ML 任务代码的哈希值并将其与预期测量值进行比较的代码完整性检查之外,路由完整性检查还确保实际的 NoC 路由与用户的期望一致。

图 5. NoC 保护:Peephole机制以及代码和路由完整性保证。

NPU Monitor: Trusted Software Module for NPU

Challenges

NPU 包含一个由各种组件组成的大型软件堆栈,例如 AI 框架(例如 TensorFlow、PyTorch)、编译器(例如 TVM、CANN)和 NPU 驱动程序。将整个软件堆栈包含在 TCB 中可能会带来潜在的漏洞和安全风险。

Solutions

如图6所示,NPU Monitor由几个模块组成:上下文设置器、可信分配器、代码验证器和安全加载器。值得注意的是,NPU Monitor仅适用于安全的 ML 任务。而对于非安全任务,仅依靠硬件机制来保证安全任务和非安全任务之间的隔离。

(1)上下文设置器。其负责设置NPU安全上下文,其中包括NPU的ID状态、安全任务的检查和翻译寄存器。NPU上下文决定了NPU可以访问的硬件资源,例如系统内存和scratchpad。

(2)可信分配器。其负责在保留的安全内存中分配内存缓冲区,例如输入/输出数据和安全任务模型。它还检查scratchpad是否有重叠。

(3)代码验证器。首先,它将安全任务的代码和敏感模型加载到安全任务队列中。然后,它根据用户的期望计算并验证任务代码的测量结果。

(4)安全加载器。首先,它保证 ML 任务的路由完整性。与传统的 CPU TEE 不同,ML 任务可以利用与 NoC 网络连接的多个 NPU 核心。安全加载程序验证调度的 NPU 内核是否与预期 NoC 网络的拓扑匹配。验证路由完整性后,安全加载器将 ML 任务上传到相应的 NPU 内核中。

图 6. NPU Monitor:一个轻量级可信软件模块,负责安全 NPU 任务的关键安全检查。

除了以上模块之外,NPU Monitor 还有两个辅助组件:trampoline 和安全任务队列。Trampoline 充当非安全 NPU 驱动程序和 NPU Monitor 之间的中介(用于数据传输),而安全任务队列则存储用于调度的安全 NPU 任务。

Evaluation

Experimental Setup

硬件原型:使用Chipyard在FPGA上实现了sNPU的硬件原型。

NPU设计:参考了Gemmini和AuRORA,基于systolic-array的DNN加速器。

CPU侧TEE:基于Penglai,一个RISC-V TEE系统。

模拟工具:使用FireSim进行端到端DNN工作负载的性能评估。

Protected Memory Access for sNPU

(1)性能比较。比较了使用IOMMU(如TrustZone NPU中采用的)和NPU Guarder(sNPU采用)对DNN推理吞吐量的影响。结果显示,IOMMU引入了显著的性能开销,而NPU Guarder则几乎没有性能损失。

(2)检查次数。分析了IOMMU和NPU Guarder在内存事务中的检查请求次数。NPU Guarder由于能够处理连续地址块,因此请求次数大大减少,从而降低了能耗。

ID-based Scratchpad Isolation

(1)性能评估。评估了在不同刷新粒度下,sNPU的基于ID的动态隔离机制与当前TrustZone NPU中采用的粗粒度刷新和静态分区方法的性能影响。结果显示,sNPU的方法提供了更高的灵活性和适应性,允许更高的Scratchpad利用率。

NoC Isolation

(1)微测试。通过微测试比较了使用软件NoC(使用共享内存)、未经授权的NoC和带有peephole机制的NoC的数据传输成本。结果显示,peephole机制在保持安全性的同时,显著减少了延迟并提高了带宽。

(2)应用测试。在真实世界场景下测试了peephole机制的性能。结果表明,与使用共享内存的软件NoC相比,peephole机制能够减少约20%的执行时间。

Hardware Cost Analysis

(1)资源开销。在FPGA上实现sNPU,并与基线NPU和TrustZone NPU进行硬件资源消耗的比较。sNPU的额外资源开销很小,特别是与采用复杂页表遍历的IOMMU相比。

TCB Size Analysis

(1)软件TCB。sNPU设计只引入了一个小的软件TCB,主要由NPU Monitor组成,其代码行数远小于整个NPU软件栈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《逆水寒手游》在苹果官网亮眼,国产武术游戏激起海外玩家热情

易采游戏网9月10日消息&#xff1a;《逆水寒手游》自上线以来&#xff0c;以其精致的画面、引人入胜的剧情以及创新的玩法&#xff0c;迅速在国内外游戏市场中占据一席之地。如今&#xff0c;这款备受期待的手游更是亮相全球科技巨头苹果公司iPhone16Pro的官网&#xff0c;为全…

lunix磁盘IO await until问题实战排查-实用命令集合

1、Linux查看磁盘读写次数 iostat -x 1 这个命令可以查询磁盘当前平均读写的次数、读写&#xff0c;以及是否await util严重。 2、查看磁盘TPS和读写数据量大小 iostat -d -k 1 10 这个命令可以查看磁盘的tps和读写数据量大小。 -d&#xff1a;显示某块具体硬盘&#x…

已知两圆的圆心半径,求交点坐标——CAD VBA 解决

如下图&#xff0c; dwg图中若干图形&#xff0c;运行代码后提示选择两个圆&#xff0c;然后判断两个圆位置关系和相交点坐标: 本例难点在于通过几何知识求出交点坐标。 几何背景 假设有两个圆&#xff1a; - 圆1&#xff1a;圆心 ( O_1(x_1, y_1) )&#xff0c;半径 ( r_1 ) …

关于支付宝小程序多规格选项的时候点击不起反应的原因分析及修改方法

解决方案&#xff1a; watch的时候&#xff0c;对于对象的赋值&#xff0c;最好用深拷贝&#xff0c;即如下图&#xff1a; watch:{ row: function (nv, ov) {var that this;that.indata.row JSON.parse(JSON.stringify(nv));//如果是对象&#xff0c;请用深入的for (va…

《使用 LangChain 进行大模型应用开发》学习笔记(二)

前言 本文是 Harrison Chase &#xff08;LangChain 创建者&#xff09;和吴恩达&#xff08;Andrew Ng&#xff09;的视频课程《LangChain for LLM Application Development》&#xff08;使用 LangChain 进行大模型应用开发&#xff09;的学习笔记。由于原课程为全英文视频课…

ReLU再进化ReLUMax:自动驾驶的瞬态容错语义分割

ReLU再进化ReLUMax&#xff1a;自动驾驶的瞬态容错语义分割 Abstract 度学习模型在自动驾驶感知中至关重要&#xff0c;但其可靠性面临着算法限制和硬件故障的挑战。我们通过研究语义分割模型的容错性来应对后者。使用已有的硬件故障模型&#xff0c;我们在准确性和不确定性方…

视频号接口列表

目前已有的接口列表&#xff1a; 账号搜索 视频搜索 直播搜索 获取作者信息和作品列表 视频解密并下载 获取视频详情 获取视频评论 获取视频评论的子评论 作品喜欢 作品点赞 作品评论 对作品评论进行评论 关注作者 加入直播间 获取直播间弹幕消息 发送弹幕消息 获取直播间商品…

力扣474-一和零(Java详细题解)

题目链接&#xff1a;474. 一和零 - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完01背包&#xff0c;所以现在的题解都是以01背包问题为基础再来写的。 如果大家不懂01背包的话&#…

运维问题0002:SAP多模块问题-SAP系统程序在执行时,跳出“加急快件”窗口,提示:快件文档“更新已终止”从作者***收到

1、问题描述 近期收到2起业务报障&#xff0c;均反馈在SAP执行程序时&#xff0c;弹出“加急快件”窗口&#xff0c;导致操作的业务实际没有更新完成。 1&#xff09;业务场景一&#xff1a;设备管理部门在操作事务代码&#xff1a;AS02进行资产信息变更时&#xff0c;保存正常…

面试官:为什么 Redis 6.0 之后引入多线程?

大家好&#xff0c;我是大明哥&#xff0c;一个专注「死磕 Java」系列创作的硬核程序员。 回答 Redis 的性能瓶颈从来都不是 CPU&#xff0c;是网络I/O 和内存。 内存好解决&#xff0c;加机器内存和优化数据结构。 网路 I/O 的优化才是大头&#xff0c;因为读写网络的 read…

最新大厂薪资职级表,我酸了。。

大家好&#xff01;我是鸭鸭&#xff01; 又到周末&#xff0c;让我们轻松一下&#xff0c;来吃吃瓜&#xff01; 大厂往往会提供具有竞争力的薪资和福利待遇&#xff0c;正值秋招&#xff0c;相关热帖也是又被翻了出来。鸭鸭今天就刷到一个帖子&#xff0c;据说是几家互联网…

基于构件开发-系统架构师(六十四)

1&#xff08;&#xff09;常见的功能包括版本控制&#xff0c;变更管理&#xff0c;配置状态管理&#xff0c;访问控制和安全控制等。 A软件测试工具 B版本控制工具 C软件维护工具 D软件配置管理工具 解析&#xff1a; 软件过程工具分为&#xff1a;软件开发工具&#xf…

史上最全-经管类国家社科基金立项名单汇总 1991-2024

数据说明&#xff1a;本次数据包括以下内容&#xff1a; 1.国家自科基金立项名单&#xff08;2022-2024&#xff09; 2.国家社科基金立项名单&#xff08;2008-2018&#xff09; 数据简介&#xff1a;国家自然科学基金是中国支持基础研究的主渠道之一&#xff0c;面向全国&am…

容易中、见刊快的6本医学期刊推荐!

常笑医学整理了6本容易中、见刊快的医学期刊&#xff0c;以及期刊详细参数与投稿经验&#xff0c;供医生、医学生们在论文投稿时参考。投稿经历均来自常笑医学网用户真实分享&#xff0c;欢迎大家到常笑医学网分享自己的投稿经历和实用经验。 1.《中国医药科学》 &#xff08;详…

两个月冲刺软考——校验码的三种类型;编译过程;翻译器与解释器的对比;补充CPU的内容

1.校验码 是通过扩大码距从而实现校验的。 那什么是码距呢&#xff1f;任何一种编码都由许多码字组成的&#xff0c;任意两个码字之间最少变化的二进制位数就称为数据校验码的码距。 对于这个概念可以这样理解&#xff1a;想象一个地图上的城市网络&#xff0c;每个城市代表一…

STM32时钟配置图详解

一图概述&#xff1a; 左侧输入时钟源 Input Frequency (LSE/LSI/HSI/HSE) LSE (Low-Speed External)&#xff1a;外部32.768 kHz晶体振荡器&#xff0c;通常用于RTC&#xff08;实时时钟&#xff09;。LSI (Low-Speed Internal)&#xff1a;内部低速时钟&#xff0c;频率为…

C# 混淆加密大师1.2.5更新功能介绍, 附CSDN下载链接

C#混淆加密大师支持 .Net Framework 2.0到.Net Framework 4.x&#xff0c;以及.NET Core 2.0至最新的.NET 8版本的C#程序, 包括Winform、WPF、Unity游戏以及控制台程序的混淆加密, 可有效保护C#程序代码&#xff0c;防止非法复制或篡改, 保护知识产权. 特性 1. 支持多种不同的…

虚拟机苹果系统的QT安装体验

前言 苹果系统MacOS中除了安装XCode&#xff0c;完全可以安装QT。本质上来讲&#xff0c;苹果系统就是Linux改装版本&#xff0c;实际上和Ubuntu非常的接近。 1、Mac对应的QT安装包的下载 安装参考链接&#xff1a;MacOS下Qt 5开发环境安装与配置_macos qt-CSDN博客 苹果系统…

宠物空气净化器测评:霍尼韦尔、希喂、米家、有哈、范罗士哪款吸浮毛效果好

作为一个忙碌、精致的搬砖人&#xff0c;我开始是没想过我会养带毛的动物的。自己就很忙了&#xff0c;哪有时间清理宠物弄脏的房间。无奈&#xff0c;三年前某天下班&#xff0c;刚进到小区就被楼下一只小流浪缠上了。买了两根火腿肠喂了还不够&#xff0c;非得跟着我到单元楼…

Jedis,SpringDataRedis

快速入门 导入依赖 <!--jedis--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.7.0</version></dependency><!--单元测试--><dependency><groupId>org.ju…