问题标签 [trust-zone]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 可信执行环境 (TEE) 中的客户端应用程序和可信应用程序
我是 TEE(可信执行环境)的新手。有人可以帮助我解决一些基本的疑问吗?
AFAIK,每个 Android 移动设备都安装了一个单独的 TEE 操作系统以及一些预定义的 TA(受信任的应用程序)来存储指纹图像、密码、密钥对等秘密信息。
如何识别安卓手机上运行的TEE OS?是否有可能在一台设备中出现多个 TEE,例如 Trusty(来自 Google)、Kinibi(来自 Trustonic)等?
由于 Trusty 来自 Google,所有设备是否都默认具有 Trust OS?
如何列出 TEE 中现有的 TA 应用程序?如果是这样,我们可以使用 CA(使用来自谷歌的 Trusty API 的客户端应用程序)从手机连接到现有的 TA吗?
linux - 在树莓派 3 上实现 optee 信任操作系统
我正在尝试使用 Raspbian 操作系统在 Raspberry Pi 3 上实现 OP-TEE 信任操作系统。OP-TEE 网站提到它同时支持 32 位和 64 位架构,但是当我尝试实现时,它会自动运行与我的 32 位 Raspbian 操作系统不兼容的 aarch64 make 文件。无论如何强制 OP-TEE 运行 aarch32 制作文件?
cortex-m - Cortex-M23/33 的 TrustZone 与 Cortex-A 的 TrustZone
Cortex M23/33 的 TrustZone 和 Cortex A 的 TrustZone 有什么区别?我可以开始在 Cortex A 处理器上对我的 Cortex M23 应用程序进行原型设计,然后在具有此内核的芯片可用时迁移到 Cortex M23 吗?
c - 在 C 中使用 goto 进行错误处理的奇怪行为
我正在使用 OP-TEE (TrustZone Secure OS) 库用 C 语言开发一个基本应用程序。我在 QEMU 中运行代码。这是发生奇怪行为的代码:
发生的问题:
正在打印两个成功的消息(用于操作分配和键设置),但err
即使达到标签:TEE_FreeOperation(handle);
应该写入TEE_FreeOperation(*handle);
。我修复了这个并删除了return
, 因为我的函数返回void
. 现在,代码运行良好,但据我了解,只有在条件测试( 's)之一失败err
时才应该达到标签,因为命令就在其中。if
goto
我对这种理解有误吗?谁能解释我为什么err
即使之前没有发生错误也达到了标签?
security - TrustZone 与 ROM 作为安全启动中的信任根
我偶然发现的许多文献都将 TrustZone 称为促进安全启动的机制(如可以在此处看到的,以及更多内容)。
据我所知,安全启动以这种方式运行:
"信任根验证 img1 验证 img2 ... "
因此,如果芯片是从验证驻留在闪存中的第一个映像的 ROM 启动的,那么使用 TrustZone 可以获得什么附加值?
在我看来,如果系统没有 ROM 信任根,则 TrustZone 无法提供安全启动,因为它只能隔离 RAM 内存而不是闪存,所以在运行时,如果不受信任的操作系统受到威胁,它无法保护自己的闪存不被重写。
我在这里错过了什么吗?
linux - Trustzone:CPU0 non-secure 和 CPU1 Secure in
我正在使用带有 A9 处理器(双核)的 zynq-7000(zed 板)。我正在尝试与 Trustzone 合作。
我想将 cpu1 配置为仅在安全世界中运行,并将 cpu0 配置为运行普通世界应用程序 (petalinux)。我阅读了 ug1019 和其他一些文档,但我不知道如何实现这一点。我找到了这个,
我可以在哪里配置 NS 位,但我不确定它是否会工作,它会将哪个 cpu 置于安全/非安全状态。如果有人可以指导我一些例子或想法。
linux-kernel - 将核心 0 置于非安全世界
我正在使用具有 zynq-7000 的定制板。我在两个内核上运行两个应用程序。我想将 cpu0 放在非安全世界中,将 cpu1 放在安全世界中。由于 Cpu1 已经在安全世界中,我正在尝试使 Cpu0 在非安全世界中。
我正在尝试将 cpu0 置于正常世界中,并在 fsbl 中添加以下行。
但不幸的是,我的系统挂起,并且有一段时间给出“DATA_ABORT_HANDLER FSBL Status = 0xA304”。我在 fsbl 中添加了这些行(汇编指令)并尝试将其作为 u-boot 的补丁(如果我启动 linux 而不是裸机应用程序)。
我还将 TZ 寄存器中的位设置为对测试不安全。
有人能告诉我从这里去哪里吗?
谢谢。
arm - ARMv8 Data Abort 异常子类型“不在转换表中”和“级别的转换表错误”之间的区别?
在制作页表之后,我已经在 ARMv8 上运行了虚拟内存。奇怪的是,我的大部分翻译都在工作(身份映射),除了位于物理地址零的 Flash。我使用一个编辑页表的函数,所以有些工作有些不工作对我来说很奇怪。具体来说,我只映射了几个范围:
再说一次,除了 Flash ,它们都可以工作。我的映射功能也适用于非身份映射。Flash 系列有点奇怪。
我有一个异常处理程序用于剖析问题。我在捕获Data Abort
异常时发现了两个有趣的案例。根据访问的内存类型,我遇到了两种 Data Abort 子类型:
当尝试处理访问地址的异常时,我不希望出现在表中,我得到一个 [2] (第 2 级错误,因为映射了一些附近的地址)。
当我尝试处理访问 Flash 的异常时,我确实希望在表中出现 [1](不在表中)。
所以,我对这两种情况代表什么感到困惑。[1] 和 [2] 有什么区别?它们似乎代表着同样的东西。[1] 是否以某种方式代表了翻译在尝试之前失败的情况?如果是这种情况,我希望处理已定义的 0 级故障。对于我不希望出现在表中但收到另一个地址的地址,我期待“不在表中”错误。
arm - 如何使用 ARM 安全监视器调用 (SMC)
我正在运行一个在 FPGA 上使用 ARM Cortex 处理器的操作系统。为了能够访问这块板上的内存区域,我需要运行一个安全的世界。有人告诉我,我需要使用 Secure Monitor 调用才能进入一个安全的世界。如果我不在一个安全的世界中,Arm Trusted Firmware 会阻止我的操作系统,并给我一个信号 2 中断。
如何使用 SMC?有没有实现这个的例子?
谢谢
arm - 我如何知道 ARM Trustzone 是否在使用中?
我有一个测试板,CPU是A72。我看到A72支持Trustzone,但是我怎么知道Trustzone是否在使用呢?谢谢。