ARM TrustZone,连接外设?

2023-12-12

我目前正在对 ARM 的 TrustZone 进行一些研究,例如这里:ARM信息中心。据我了解,通过 TrustZone 可以创建基于 AMBA AXI 总线的安全环境。

On ARM网站它说:“安全和非安全世界的概念超出了处理器范围,涵盖了 SoC 内的内存、软件、总线事务、中断和外设。”我读到外围设备可以通过以下方式连接到 TrustZoneNonSAMBA AXI 总线的 ecure 位(额外信号用于区分可信请求和不可信请求)。

1) 除了 AMBA AXI 总线的额外引脚之外,具有 TrustZone 的 SoC 中的 TrustZone 特定硬件是什么?

2) 是否可以将外部非易失性存储器(例如闪存)或其分区连接到 TrustZone 并访问安全世界(通过外部存储器接口,然后通过内部 AXI 总线)?如果不是,如何存储秘密(作为密钥)以便在安全世界中使用(在保险丝的帮助下??)?如果是,如何防止连接包含恶意代码的Flash?

3) 作为芯片供应商(例如 TI 或 NXP)的客户,是否可以在芯片出厂之前或之后将代码实施到安全世界?

谢谢您的回答。


TrustZone 是 ARM 发布的一套标准。它为 OEM(嵌入式软件程序员)和 SOC 供应商提供了一些工具来制定安全的解决方案。根据需要保护的内容,它们有不同的需求。所以每个SOCwill有所不同。一些 SOC 制造商将尝试在相同的安全应用上展开竞争,但他们仍会差异化。

1) 除了 AMBA AXI 总线的额外引脚之外,具有 TrustZone 的 SoC 中的 TrustZone 特定硬件是什么?

供应商想要的任何东西。 GIC (ARMv7-A) 中断控制器、L1 和 L2 控制器以及 MMU 都是大多数 Cortex-A CPU 中的 TrustZone 感知外设。这些由 ARM 设计并在 SOC 中实现。此外,还有各种可以放置在外设和 SOC 之间的内存分区/排除设备。例如 NIC301 和各种专有的总线互连技术。

其他硬件可能包括物理篡改、电压和温度监控、时钟监控和加密加速器。

2) 是否可以将外部非易失性存储器(例如闪存)或其分区连接到 TrustZone 并访问安全世界(通过外部存储器接口,然后通过内部 AXI 总线)?如果不是,如何存储秘密(作为密钥)以便在安全世界中使用(在保险丝的帮助下??)?如果是,如何防止连接包含恶意代码的Flash?

As the above alludes, chips like the NIC301 can physically partition AXI peripherals.See image below Part of any TrustZone solution is some secure boot mechanism. All CPU will boot in the secure world. The secure boot mechanism may vary. For instance, a one time programmable ROM might be appropriate for some applications. Many have programmable fuses with a public/private key mechanism implemented in SOC ROM. The SOC ROM boot software will verify that the image in flash is properly signed by whoever burned the one time fuses.

此 OEM 映像可以设置许多 TrustZone 外围设备,其中大多数将具有lock少量。一旦设置,外设中的寄存器在下次硬启动之前无法更改。

3) 作为芯片供应商(例如 TI 或 NXP)的客户,是否可以在芯片出厂之前或之后将代码实施到安全世界?

是的,这就是安全启动机制。 ARM TrustZone 文档中没有指定如何保​​护代码。如果您制造芯片并拥有带 MESH 层保护的片上 ROM,则可能足以实现安全启动。不过,TI 和 NXP 将实施公钥/私钥机制,并验证只有 OEM 签名的软件才能加载。该 OEM 软件可能存在错误(SOC 供应商的 ROM 加载程序也可能存在错误),但至少可以创建安全引导链。

有了公钥,即使完全访问芯片,攻击者也只能加载 OEM 先前发布的软件。某些解决方案可能还具有撤销机制,以防止使用以前发布的软件。


See: 信任区

  • 典型的ARM总线
  • ARM 分区检查器
  • 处理 ARM TrustZone

Vybrid BUS from AN4947 - Understanding the Vybrid Architecure

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARM TrustZone,连接外设? 的相关文章

  • 数据加密

    存储大量信用卡信息的数据库是我们刚刚完成的系统中不可避免的一部分 不过 我想要的是卡号的最终安全性 我们可以设置一种加密和解密机制 但我们自己无法解密任何给定的号码 我所追求的是一种即使在数据库级别也能保护这些信息的方法 这样任何人都无法进
  • Microsoft 帐户 JWT 身份验证令牌如何签名?

    在我的 Web 应用程序中 我需要验证从 Live SDK 5 6 获取的 JWT 身份验证令牌 不久前 这些令牌的签名是使用签名密钥的 Base64 编码标头 有效负载的 HMACSHA256 哈希 该签名密钥是应用程序秘密 来自 acc
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • HTTP 基本身份验证 + 访问令牌?

    我正在开发一个 REST API 计划将其与 Web 和 IOS 应用程序一起使用 我打算让这个 API 在一段时间内保持私有 私有意味着我只希望我的 Web 应用程序和 ios 应用程序访问该 API 我已经阅读了许多不同的身份验证方法
  • Mysql加密/存储敏感数据,

    我的 PHP 网站有以下内容 启用 SSL 饼干 session set cookie params cookieParams lifetime cookieParams path cookieParams domain secure ht
  • 如何只允许从我的 iOS 应用程序访问我的 MySQL 数据库? (使用webapp作为数据库的网关)

    我的 iOS 应用程序需要连接到 mysql 服务器 为了实现这一目标 我想创建一个 Web 应用程序 充当客户端应用程序和服务器端数据库之间的中间人 我担心的是 有人可以简单地找出我的应用程序使用的 URL 并传递他们自己的 URL 参数
  • 根据 AD 组成员身份限制对 WPF 视图的访问

    我们有一个 WPF 应用程序 我们希望根据用户的 AD 组成员身份限制对应用程序的访问 我们可以将其作为每个视图的属性 或者作为用户启动应用程序时的检查吗 任何代码示例将不胜感激 在 NET 3 5 及更高版本上执行此操作的最简单方法是使用
  • “openssl 编程简介。”文章。过期的证书

    我是 openSSL 库和 PKI 的新手 我有一个简单的问题要问 openSSL 专家 有谁知道如何为本文中的代码示例创建证书 OpenSSL 编程简介 第一部分 第二部分 作者 Eric Rescorla www rtfm com op
  • 我仍然认为在客户端哈希密码更好。我错了吗?

    我读过这些 https hackernoon com im harvesting credit card numbers and passwords from your site here s how 9a8cb347c5b5 https
  • 保护移动连接 - 存储秘密和密钥

    感谢您花时间阅读本文 我是一名年轻的开发人员 在 Web 项目和服务器端编码方面拥有一些专业经验 但我现在正在构建我的第一个移动应用程序 经过在线深入研究后 我还没有能够澄清我关于保护移动应用程序数据传输的一些问题 这是我认为我理解正确的
  • 卸载 SSL 时保护表单身份验证 Cookie

    我正在尝试使用 ASP NET MVC 2 0 和表单身份验证来保护我当前正在开发的网站 为了保护表单身份验证cookie 我想将requiresSSL 属性设置为true 以便浏览器仅在连接处于SSL 下时才发送cookie 并且显然确保
  • 使用Apple80211 api时如何知道OPEN、WPA、WPA2、WEP等安全类型?

    Cydia中的Wifi WiFi FoRum等wifi扫描应用可以知道安全类型 使用 Apple80211 api 时 应用程序如何知道 OPEN WPA WPA2 WEP 等安全类型 CAPABILITIES 的值为 1057 1025
  • 哪些 GCC 优化标志对二进制大小影响最大?

    我正在使用 GCC 为 ARM 开发 C 我遇到了一个问题 我没有启用优化 我无法创建二进制文件 ELF https en wikipedia org wiki Executable and Linkable Format 对于我的代码 因
  • JWT(Json Web 令牌)与自定义令牌

    我仔细查看了问题 但没有找到任何可以解决我的疑问的内容 我找到了有关 JWT 的大量信息 但在比较 JWT 相对于针对 REST 服务生成自定义令牌来对身份验证请求提供的优势时 发现的信息并不多 与生成自定义生成令牌相比 使用 JWT Js
  • 验证数据库匹配中的 $_GET id 是否足够安全?

    我的网站上有 2 个页面 一个是 index php 索引页面列出了数据库中存在的所有帖子 另一个页面是 post php 当单击索引页面上的特定帖子时 帖子页面显示单个帖子 现在我用来列出 index php 上所有帖子的代码是 post
  • 在 PHP 中关闭 session.cookie_secure 的后果

    在安全连接下关闭 PHP 中的 session cookie secure 会带来哪些安全风险 我很想关闭此功能 因为我无法访问从 https 页面到 http 页面的会话数据 风险在于 cookie 数据是通过纯 HTTP 传输的 任何在
  • 如果我使用带有表单身份验证的 WCF,php 或 java 客户端将如何进行身份验证?

    我有一个通用的概念验证 WCF 服务 它使用表单身份验证来保护访问 当我的客户端是 NET 时 一切都很好 vb 代码如下 Dim client As SupplierServiceClient New SupplierServiceCli
  • 算法 HmacPBESHA256 不可用

    因此 我编写了一些代码来获取 PEM 通过 bouncycastle 将其添加到 PKCS 密钥库 然后使用 java crypto 将 PKCS 密钥库值导入到 JKS 密钥库中 我发誓昨天我在执行这些步骤后成功通过了单元测试 但是今天早
  • 如何更改锁屏自定义文本(所有者信息)?

    我写了程序代码 String message This is test Settings System putString context getContentResolver Settings Secure LOCK PATTERN EN
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul

随机推荐

  • 处理开关盒

    我怎样才能用 switch 语句做这样的事情 String prototype startsWith function str return this indexOf str 0 switch myVar case myVar starts
  • 既然 appsettings.json 就足够了,那么 Hosting.json 有什么意义呢?

    在 NET Core 2 Web API 应用程序中 我可以覆盖配置urls using appsettings json 但在官方文档他们引入了额外的文件 hosting json 为什么 增加复杂性有什么意义 下面的代码完全可以使用ap
  • Python:无法使用 odeint 和 Signum 函数求解微分方程

    我正在尝试解决这个问题 U 在哪里 here s c e t e dot t and e t theta t thetad t and e dot t theta dot t thetad dot t 其中thetad thetadesir
  • 插入 MySQL 表 PHP

    我在制作一个简单的表单来将数据插入 MySQL 表时遇到了一些麻烦 我不断收到此 SQL 错误 错误 您的 SQL 语法有错误 请检查手册 与您的 MySQL 服务器版本相对应 以便使用正确的语法 第 1 行 stock ItemNumbe
  • 传单 - 我似乎无法让基本示例发挥作用

    我一直在尝试让 Leaflet 一个网络地图 API 工作几个小时 起初我犯了一个错误 试图做太多事情 现在我只是试图让基本的例子发挥作用 这是我的代码 HTML 和 Javascript
  • PHP 自动缩小。有没有?

    我使用 PHP Minify 它非常棒 但我的问题是 是否有任何 PHP 插件或其他东西可以自动检测 javascript css 代码并自动缩小它 谢谢 JavaScript 缩小器 看一看here require once jsmin
  • Web 应用程序 [ROOT] 似乎已启动名为 [pollingConfigurationSource] 的线程,但未能停止它。内存泄漏

    您好 我在运行项目时遇到内存泄漏错误 我在用spring boot quards scheduler liquibase postgreSQL 9 6 这些是我们正在使用的技术 Error 12018 10 15 11 43 19 005
  • 多对多关系

    我在 Parse com 上有两个课程 图像和数据 在数据类中 我保存了 3 个字段 姓名 手机号码和职业 在图像类中 我正在保存图像 我必须在这两个类之间创建关系 以便我可以使用相应的手机号码获取图像 一个手机号码可以保存多张图片 表数据
  • 将凭据/令牌保存在 cookie 中?

    我已经成功完成身份验证 我知道向客户端返回令牌 JWT 该令牌有一个到期日期 时间 因此我正在考虑将令牌保存在 cookie 中 以便对未来的登录进行身份验证 但这可能行不通 然后我考虑将用户名和密码保存在 cookie 中 尽管我知道不建
  • Python问号的正则表达式[重复]

    这个问题在这里已经有答案了 正在处理一个数据集 其中包含下一个审核日期的列 此列有缺失字段 以问号 表示 我想捕捉这个 使用正则表达式 然后将没有审核日期的所有行与其余数据分开 问题 明确匹配问号的表达式是什么 问号前的反斜杠表示 字面匹配
  • SQL 错误:ORA-12712:新字符集必须是旧字符集的超集

    我想将oracle数据库的字符集从 WE8MSWIN1252 更改为 AL32UTF8 我尝试从链接 http download oracle com docs cd B10501 01 server 920 a96529 ch10 htm
  • 如何在循环中运行固定数量的进程?

    我有一个这样的脚本 bin bash for i 1 to 200000 do create input file run java done 我需要同时运行多个 8 或 16 个进程 java 但我不知道如何运行 我知道wait可以提供帮
  • 添加自定义触发器时如何保留 mahapps Metro 样式?

    我有一个采用默认 Metro 风格的按钮 但是 当我向按钮添加触发器时 样式被覆盖 添加您自己的样式和触发器时如何保留原始的 mahapps Metro 样式
  • 将 json 扁平化为 csv 格式

    我正在尝试根据用户选择的字段将 json 值转换为平面 csv 我的 json 看起来像 var data index test type news source partnerName propertyFile 9 relatedSour
  • 为什么 Java 中的 volatile 不更新变量的值?

    我读过Java中的 易失性 允许不同的线程访问同一字段并查看其他线程对该字段所做的更改 如果是这种情况 我预测当第一个和第二个线程完全运行时 d 的值将增加到 4 但相反 每个线程都会将 d 增加到值 2 public class Vola
  • 如何终止脚本中创建的后台进程

    假设我在 shell 中输入以下内容 while true do echo hahaha sleep 1 done 然后我知道我可以杀死它 fg CTRL C 但是 如果上面的命令在脚本中 例如tmp sh 并且我正在运行该脚本 如何杀死它
  • 在android上统一滑动手势

    我试图让大家认识到我正在从左向右滑动 我已经解决了这个问题 但我的问题是 直到我将手指从屏幕上移开 它才理解这一点 我的问题是我该如何做到这一点 以便它知道我向右走 然后向左走 然后再向右走 而无需将手指放在屏幕上 这是我到目前为止的代码
  • 未捕获的异常:错误: 获取属性 Proxy.InstallTrigger 的权限被拒绝

    我有以下代码来获取 facebook 的用户数据 div div
  • 由于 APK 文件无效,安装失败! - 安卓

    所以有几个关于这个主题的帖子 但看起来我的日志猫完全不同 不知道发生了什么事 当我尝试在我的设备上运行时 我收到控制台日志 2012 07 17 14 50 56 zrox Uploading zrox apk onto device 31
  • ARM TrustZone,连接外设?

    我目前正在对 ARM 的 TrustZone 进行一些研究 例如这里 ARM信息中心 据我了解 通过 TrustZone 可以创建基于 AMBA AXI 总线的安全环境 On ARM网站它说 安全和非安全世界的概念超出了处理器范围 涵盖了