gpt4 book ai didi

security - 使用 ARM TrustZone 防止从非安全世界访问内存区域

转载 作者:行者123 更新时间:2023-12-01 02:06:11 26 4
gpt4 key购买 nike

语境

我想要一个在普通世界中运行的丰富的 GNU/Linux 操作系统和一个在安全世界中运行的带有集成监视器的小型操作系统。

要求

我们必须绝对避免正常世界访问安全世界内存区域。



我们需要使用/激活 TrustZone 的哪些功能来满足此要求?我只想使用必要的功能来最小化所需的工作。

细节

我已经阅读了很多 ARM TrustZone 文档,我知道带有安全扩展的 TZPC、TZASC、MMU,但我不知道如何避免以下威胁:

What would stop a hacker, once he gained access to the kernel space, to deactivate the MMU, and directly access the physical memory region of the Secure world?



也许这甚至无法想象或可行?但如果是这样的话,我猜 TZPC 是强制性的,以防止这种情况发生,对吗?或者,“简单地”使用两个 TrustZone 世界就足够了吗?

最佳答案

What would stop a hacker, once he gained access to the kernel space, to deactivate the MMU, and directly access the physical memory region of the Secure world?



MMU 根本不涉及 TrustZone。所以禁用 MMU 没有任何作用。可能的攻击是针对监视器代码、安全操作系统 API(对于正常世界)、总线保护、引导代码或硬件。具有安全扩展的 MMU 是为了允许安全世界代码按照正常世界访问内存并相应地出错。

类似于禁用 MMU 的流氓正常世界内核, DMA attack也可以在传统的管理程序上使用。 TrustZone 的目的就是避免这些攻击。

TZASC 是安全启动代码锁定硬件的一种方式。您可以将其视为在安全和正常之间对硬件进行分区,并具有读/写访问的可能性。
              | read  | write
-------------+------------------
normal super | Y/N | Y/N
normal user | Y/N | Y/N
-------------+------------------
secure super | Y/N | Y/N
secure user | Y/N | Y/N

前两行在所有 ARM 系统中。最后两个是特定于 TrustZone 的。在物理上,这些是总线上的信号。这些位是读/写、安全/正常( NS 标记位)和 super /用户。每个 BUS 主站将被静态分配到一个世界,或者如果主站知道 TrustZone,则它可能是动态的。一个动态主实例是 CPU。对于从设备,它们要么是内存(类似 I/O 的大型阵列),要么是小型 Controller 寄存器组。对于内存,TZASC 允许对内存进行分区。对于较小的寄存器从站,通常会实现更简单的全有或全无总线访问(例如 TZPC)。 TrustZone 对系统程序员来说非常模糊,因为它可以灵活地允许不同的 SOC 设计。

Maybe this is not even imaginable or feasible? But if it's the case, my guess it that a TZPC is mandatory to prevent this, am I right? Or, does "simply" using the two TrustZone worlds is enough?



TZPC 是一个简单的从属安全/正常分区的例子。用于 AMBA APB(高级外设总线)上基于寄存器的 I/O。

[本节旨在作为 TrustZone 架构灵活性的具体示例,让 SOC 实现者创建可能对某些特定应用有用的新型设备。]

考虑一个系统,其中我们有一个 NAND 芯片 (NFC),但希望在正常世界无法访问安全数据的情况下允许安全和正常访问。如果我们创建了一个 TrustZone 感知的 NFC Controller ,我们可以将两组 I/O 寄存器和 DMA 数据发送到用户指定的缓冲区。一个注册银行是安全的,另一个是正常的。 NFC Controller 将是安全主设备,而 NFC 芯片将是安全从设备。当有人访问 NFC Controller 普通寄存器组时,假设的芯片必须检查访问是否被允许(这将是上述攻击中的硬件)以及动态主控的另一个示例。当它代表正常世界读取时,它会用 DMA NS 设置以便应用正常的世界访问权限。

关于security - 使用 ARM TrustZone 防止从非安全世界访问内存区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32458599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com