ARM CCA机密计算软件架构之设备分配(Device Assignment)

这个指南的前几节展示了领域提供的执行环境,它与正常世界的Rich OS、Hypervisor和TrustZone完全隔离。领域可以在初始化时完全通过认证,以确保其初始内容,并确保它在基于RME的平台上运行。

在大多数操作情况下,任何领域软件执行都需要访问系统中可用的设备。默认情况下,系统中的所有设备都被阻止访问所有领域的内容。如果领域需要使用设备,它必须首先对设备进行认证,然后向RMM提供访问授权的同意。

这个设备分配过程维护了机密计算架构提供的安全保证。使用标准的RME功能,可以保证对于不支持DMA并且具有固定地址范围的SoC外设的隔离。这可以通过使用RMM页表和GPT或者completer-side PAS过滤器来实现,以允许或拒绝对该内存区域的访问。

然而,一些设备系统,如Root Port,通过单个内存区域控制和访问多个设备。这意味着仅仅通过内存访问控制是不够的。此外,设备可能还具有需要管理的自己的缓存。

设备分配

设备分配(DA)是一种方法,它允许将设备唯一分配给个别领域,并允许领域在授予其对领域内容的访问权限之前对设备进行认证。DA防止领域不信任的代理(包括其他领域和虚拟机监视器)访问或控制分配的设备。这包括对设备MMIO接口和设备缓存的保护。DA提供了一种标准机制,用于认证所有设备类型,而RMM对于被认证的设备没有任何特殊的了解,无论是静态内存映射还是在PCIe Root Port后面。PCI SR-IOV是最普遍的设备分配架构。

硬件设备通常支持可以分配给个别虚拟机的多个接口。主机虚拟机监视器控制分配过程,从而产生一个硬件接口,该接口可以由特定虚拟机直接管理。设备分配架构的典型特性如下:

  • 它依赖于标准化。这使得主机可以将设备分配给虚拟机࿰

相关推荐

  1. ARM CCA机密计算架构软件栈简介

    2023-12-29 05:18:02       59 阅读
  2. ARM CCA机密计算架构软件栈(上)

    2023-12-29 05:18:02       55 阅读
  3. ARM CCA机密计算架构软件栈(下)

    2023-12-29 05:18:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-29 05:18:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-29 05:18:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-29 05:18:02       82 阅读
  4. Python语言-面向对象

    2023-12-29 05:18:02       91 阅读

热门阅读

  1. Linux压缩算法-zstd

    2023-12-29 05:18:02       42 阅读
  2. 3种事件绑定的异同(js的问题)

    2023-12-29 05:18:02       56 阅读
  3. 15. 三数之和

    2023-12-29 05:18:02       57 阅读
  4. SpringBoot-Shiro

    2023-12-29 05:18:02       64 阅读
  5. cfa一级考生复习经验分享系列(十一)

    2023-12-29 05:18:02       50 阅读
  6. SpringBean的初始化与销毁

    2023-12-29 05:18:02       56 阅读
  7. PHP之——函数的使用

    2023-12-29 05:18:02       54 阅读
  8. Redis雪崩效应是什么?

    2023-12-29 05:18:02       50 阅读
  9. 路径规划算法实现

    2023-12-29 05:18:02       55 阅读
  10. c++ 重写 重构 重载

    2023-12-29 05:18:02       45 阅读
  11. F-44 字段显示不全

    2023-12-29 05:18:02       49 阅读