自从我考虑使用 Raspberry Pi 4 以来,我一直在对 ARM 和 TrustZone 进行一些研究。但是,我之所以问这个问题,是因为我发现相关问题有点过时了。
TrustZone 是否强制安装在所有新的 ARM CPU 上?即他们是否需要实施 TrustZone?如果没有,哪些供应商实施了 TrustZone,哪些没有实施?从 ARM 的文档我认为这不是强制性的,因为它被称为安全扩展。
实施到底是什么意思?它与支持/兼容相同吗?我猜所有较新的 Cortex-A CPU 都支持它,但有些可能无法实现。
如果 SoC 不使用 TrustZone,根据此答案,这意味着 CPU 在“安全”世界中启动,但不会更改为“正常”世界。 Raspberry Pi 4 的 BCM2711 是否也是这种情况?在论坛他们说没有支持,所以看起来是这样。不过,我想知道 TrustZone 在启动过程中的作用是什么,详细信息这里。
最后,从运行在“正常”世界的 ARM64 Linux 发行版中,如何检查 CPU 是否实现了 TrustZone?
TrustZone 是否强制安装在所有新的 ARM CPU 上?即他们是否需要实施 TrustZone?
没有。
如果没有,哪些供应商实施了 TrustZone,哪些没有实施?
这会要求提供一份清单,并作为结束问题的理由。您必须上网查看并进行研究。供应商通常会守口如瓶,只会回答保密协议下的一些问题。这取决于。因此,如果当前存在一个列表,它很快就会过时。您可以在受信任的固件查看支持的主板和供应商,以获得不完整的列表。
实施到底是什么意思?它与支持/兼容相同吗?我猜想所有较新的 Cortex-A CPU 都支持它,但有些可能不实现它。我想如果它没有实现/仅支持,这意味着CPU在“安全”世界中启动,但不会更改为“正常”世界?
支持/兼容是指是否遵守 NS 位的总线信号。因此,CPU 不需要了解 TrustZone,但来自内核的总线信号允许它存在于 TrustZone 系统中。 ARM 既是“HDL”(硬件描述语言)又是一家软件核心公司。这种区别可能只对集成 ARM CPU 的 SOC 公司的人员有用。
实现意味着它实际上执行 TrustZone 的工作(总线信号和 CPU)。这并不意味着该芯片对于所有应用都是安全的。 SOC 供应商必须努力集成外围设备/设备,以适应不同的安全应用。
此外,特定的内核可能会实现 TrustZone,但 SOC 供应商可能会对其进行限制,使其变得毫无用处。
最后,从运行在“正常”世界的 ARM64 Linux 发行版中,如何检查 CPU 是否实现了 TrustZone?
这是之前问过的。没有改变。目标是不应该提供此功能。某些系统可能有方法,但不通用。