trust-zone相关内容

如何解释 ARM 的 SMC 调用?

我一直在阅读 Android 的内核,以了解 CPU 内核(又名 DVFS、DCVS)的动态电源管理是如何完成的.我找到的代码 here 对以下函数进行一些调用(定义 here) 依次调用 SMC 汇编指令. ARM 有一个文档解释了 SMC 调用约定,但我无法使用它来理解以下功能.如何进一步跟踪 SMC 指令,以根据其输入操作数查看它实际执行的操作? s32 scm_call_atomi ..
发布时间:2022-01-17 14:21:41 其他开发

如何确定 ARM 处理器是否在通常的锁定“世界"中运行?还是在Secore“世界"中?

例如,virt-what 显示您是否在硬件虚拟化“沙盒"中运行. 如何检测你是否在 ARM "TrustZone" 沙箱中运行? 解决方案 TrustZone 可能与您的想法不同.有一个连续的模式.从“受信任函数的简单 API"到在每个世界运行的“双操作系统". 如果为这个问题提供更多背景信息,那将会很有帮助.这是为了以编程方式确定还是出于逆向工程考虑?对于当前的 Linux ..
发布时间:2022-01-17 14:20:34 其他开发

什么是 ARM 安全模式下的分区检查器

根据这个链接http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0333h/Chdfjdgi.html 下 系统启动顺序... 对分区检查器进行编程以分配可用于非安全操作系统的物理内存. 什么是分区检查器?它是一个有寄存器的子系统,它的编程模型是什么? 解决方案 什么是分区检查器? ..
发布时间:2022-01-17 13:42:46 服务器开发

TrustZone 与 Hypervisor

我只是在阅读 这个文档来自 ARM 的 TrustZone,有些事情我不清楚. Hypervisor 提供了一种特殊的 CPU 模式,而对于 TrustZone,处理器带有一个额外的第 33 位:是't mode 也是一个特定的位设置?那么,额外的一点如何在安全性方面产生所有这些差异.我确实理解额外的位为两个单独的 32 位地址间距让路,但除此之外,我无法将两个和两个放在一起.有人能清楚地解 ..
发布时间:2022-01-17 13:39:52 其他开发

处理 ARM 信任区

ARM 有一个叫做 TrustZone 的东西.根据 ARM 文档,它使进程可以在安全/非安全世界中运行. 安全/非安全世界是什么意思.是与处理器执行模式有关还是与设置内存区域的权限或其他有关. ARM 的 7 种操作模式与安全/非安全世界之间是否有任何关系. 如何在 ARM 中启用 TrustZone. 这是从哪个版本的 ARM 引入的. 是否必须使用此 TrustZone.lin ..
发布时间:2022-01-17 13:30:58 其他开发

ARM 信任区使用

我想问一些关于 ARM trustzone 的问题. 1.) 谁能给我一个具体的例子:什么时候需要 trustzone 以及它如何帮助解决安全问题? 2.) 我听说 FIQ 可以配置为“安全中断".这是否意味着我的 FIQ 处理程序将位于安全的世界中? 3.) 当这个 FIQ 安全/非安全配置完成时?我认为答案就在 GIC 寄存器中的某个地方.我可以阅读这个寄存器来确定安全/非安 ..
发布时间:2021-11-17 22:36:15 其他开发

安全模式如何访问安全/非安全内存?

根据 CortexA 编程指南 TrustZone 硬件还有效地提供了两个虚拟 MMU,每个虚拟处理器一个.这使每个世界都有一组本地转换表,安全世界映射隐藏并受到正常世界的保护. 页表描述包含一个 NS 位,用于确定是访问安全物理地址空间还是非安全物理地址空间. 虽然页表入口位仍然存在,但普通虚拟处理器硬件不使用该字段,并且内存访问总是在 NS = 1 的情况下进行.因此安全虚拟 ..
发布时间:2021-11-17 22:33:43 服务器开发

是什么阻止恶意软件在 ARM TrustZone 中引发 SMC 异常?

我正在阅读有关 ARM TrustZone 的信息.我读到当正常世界需要安全世界的功能时,他们会引发 SMC 异常,从而转移到安全世界.我不明白的是什么可以防止任何恶意代码引发 SMC 异常?如果任何未经授权的软件可以导致传输到安全世界,那么安全世界如何“安全"? 解决方案 恶意软件可以将控制权转移到安全世界,但无法操纵安全世界中的代码. 当正常世界的软件向安全世界请求一个功能时,安 ..
发布时间:2021-11-17 22:22:11 其他开发

如何使用 TrustZone 从安全世界中反省正常世界?

我了解到安全世界可以保护关键数据不被正常世界访问,我不明白的是我如何从安全世界衡量正常世界的完整性. 我在三星 TZ-RKP 和 SierraTEE 中找到了一些相关工作,其中他们都实现可以衡量正常世界完整性的功能.但他们没有提供技术细节.我有两个问题,如果有人能给我一些线索,我将不胜感激. 假设我想查看正常世界中正在运行哪些进程,我是否必须使用正常世界中的内核模块来帮助我做到这一点? ..
发布时间:2021-11-17 22:21:12 服务器开发

我应该使用哪种基于 ARM 的开发板?

我想开始一个项目,我想根据 ARM 的 TrustZone 技术. 我应该使用哪种板? 最低要求: ARM V7 指令集 USB、VGA/HDMI 接口 触摸屏连接器 Flash 功能 512 MB 内存 TrustZone 已启用 JTAG 连接器和 DB-9 UART 端口 电源 董事会应该有可用的文件 Android 驱动程序和编解码器,因为我将在其上运行 ..
发布时间:2021-11-17 22:18:18 移动开发

如何在 QEMU 中模拟 TrustZone?

我正在尝试在 Qemu 中模拟 TrustZone 功能.我找到了两个似乎可以解释此过程的链接. The First Reference 未附上图片支持 TrustZone 的内核(在哪里可以找到?) 第二个参考 解释了我如何编译内核但它不以第一个网站写的命令行开头,如下 ./arm-softmmu/qemu-system-arm -kernel $PATH_TO_KERNEL/zI ..
发布时间:2021-11-17 22:18:14 移动开发

我应该使用哪种基于 ARM 的开发板?

我想开始一个项目,我想根据 ARM 的 TrustZone 技术. 我应该使用哪种板? 最低要求: ARM V7 指令集 USB、VGA/HDMI 接口 触摸屏连接器 Flash 功能 512 MB 内存 TrustZone 已启用 JTAG 连接器和 DB-9 UART 端口 电源 董事会应该有可用的文件 Android 驱动程序和编解码器,因为我将在其上运行 ..
发布时间:2021-11-17 22:18:02 移动开发

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

背景 我想要一个在普通世界中运行的丰富的GNU/Linux操作系统和一个在普通世界中运行的带有集成监视器的小型操作系统安全世界. 要求 我们必须绝对避免正常世界来访问安全世界内存区域. 问题 我们需要使用/激活 TrustZone 的哪些功能来满足此要求?我只想使用必要的功能来最大限度地减少所需的工作. 详情 我已经阅读了很多 ARM TrustZone ..
发布时间:2021-11-17 22:14:03 其他开发

ARM TrustZone 的安全/正常世界 vs. 操作系统的内核/用户模式或 x86 的 Ring0/1/2/3?

我阅读了这样的文档 TrustZone 安全白皮书. 它描述了CPU、内存等所有资源都被安全世界和普通世界划分.Normal World 中的程序无法访问 Secure World 中的资源.您必须调用特殊的信任 SMC 才能从正常世界切换到安全世界(通过监控模式). 据我所知,像 Linux 这样的现代操作系统提供了内核模式和用户模式.用户进程不能访问位于内核空间的资源,但可以调用系 ..
发布时间:2021-11-17 22:09:26 其他开发

ARM TrustZone 开发

我想知道是否有人有关于可以使用 ARM TrustZone 的开发板的任何信息?我有 BeagleBoard XM,它使用 TI 的 OMAP3530 和支持信任区的 Cortex-A8 处理器,但 TI 确认他们已禁用板上的功能,因为它是通用设备. 进一步研究让我找到了使用 OMAP4430 的熊猫板,但 TI 没有回应,互联网上的信息也很少.您如何学习如何使用信任区? 最好的问候吉 ..
发布时间:2021-11-17 22:06:10 其他开发

arm trustzone监控模式开关设计

基本的世界切换流程是: 将 FIQ 设置为监控模式 普通世界 -> FIQ 触发 -> 进入监控模式(切换到安全世界,恢复安全世界上下文) -> 处于安全世界系统模式 -> FIQ 不清楚,进入安全世界的 FIQ 处理程序 step3和step 4,在我们恢复目标上下文之后,arm会触发异常进入异常行为正确吗?(如果我们不分支到监控模式向量表中的 FIQ 句柄) 我们 ..
发布时间:2021-11-17 22:01:53 其他开发

如何解读 ARM 的 SMC 调用?

我一直在阅读 Android 的内核,以了解 CPU 内核(也称为 DVFS、DCVS)的动态电源管理是如何完成的.我在这里找到的代码 调用以下函数(定义 here) 依次调用 SMC 汇编指令. ARM 有一份文档解释了 SMC 调用约定,但我一直无法使用它来理解以下功能.如何根据输入操作数进一步追踪 SMC 指令以查看它实际执行的操作? s32 scm_call_atomic4_3(u ..
发布时间:2021-11-17 22:00:38 其他开发

如何确定 ARM 处理器是否在通常的锁定“世界"中运行?还是在 Secore“世界"中?

例如,virt-what 显示您是否在硬件虚拟化“沙箱"中运行. 如何检测您是否在 ARM“TrustZone"沙箱中运行? 解决方案 TrustZone 可能与您的想法不同.有一个连续的模式.从“受信任功能的简单 API"到在每个世界中运行的“双操作系统". 如果问题有更多的上下文,那会很有帮助.这是为了以编程方式确定还是为了逆向工程考虑?对于当前的 Linux 用户空间,答 ..
发布时间:2021-11-17 22:00:01 其他开发

SMC 调用的 Svc 处理程序

如何在 C 中编写 svc 处理程序来调用 SMC(监控模式)指令以切换到 arm cortex a9 的监控模式?即从主管模式到监控模式都需要在 svc 处理程序中完成什么,如何在 C 中编写相同的内容.感谢详细答案... 解决方案 可以在 OMAP2 平台的 Linux 源代码树中找到示例. omap-smc.S omap-secure.h omap-secure.c ..
发布时间:2021-11-17 21:52:06 其他开发