【阿里巴巴|深入挖掘 ARMv8-M 的 TrustZone】
TrustZone 旨在帮助从事资源受限设备的嵌入式开发人员改进其安全架构 。 它为开发人员提供了一种容器化和隔离软件的方法 , 同时仍提供 Cortex-M 处理器所期望的特性 , 例如低中断延迟 。 TrustZone 将内存、处理域和应用程序分成两个独立的域 — 安全和非安全 , 有时也分别称为可信应用程序和用户应用程序 。
用户域包含用户应用程序、RTOS、设备驱动程序、协议栈和通用外围设备等项目 。 用户域的行为与当今典型的 Cortex-M 应用程序完全相同 。 事实上 , 开发人员可以使用禁用 TrustZone 的 TrustZone 处理器 , 他们不会注意到任何差异 。 不过 , 这会破坏整个目的 。 安全域包含几个旨在保护系统的项目 , 例如安全启动、安全存储、加密库 , 甚至 RTOS 任务和内核代码 。 这些项目肯定存在于当今的用户应用程序中 。 但是有了 TrustZone , 他们现在能够在没有明确这样做的情况下以不再直接访问的状态存在 。
第一次使用 TrustZone 的开发人员会发现 , 即使是软件的开发方式也不同 。 开发人员现在需要将他们的应用程序分成两个独立的应用程序 , 而不是使用单个代码项目:固件项目和用户项目 。 固件项目包含应用程序的所有安全代码 , 并将驻留在安全内存位置 。 外部世界或用户应用程序无法访问这些内存位置 , 除非嵌入式开发人员专门在其代码中创建安全网关以公开安全功能 。 不过 , 重要的是要知道 , 安全区域可以完全访问所有内存位置 。 这意味着 , 如果为安全域编写的软件计划访问不太安全的用户应用程序空间中的数据或固件 , 则需要非常小心 。
用户应用程序是标准的 , 是目前每个 Cortex-M 开发人员都习惯的类型 。 如前所述 , 用户应用程序受限于它可以访问的内存位置、功能和外围设备 。 如果需要执行安全功能 , 用户应用程序可以通过安全网关调用安全域 。 如果用户应用程序尝试访问任何其他安全内存区域 , 则会导致错误 。 这可以防止错误的用户程序随机访问安全内存或以任何方式对其进行操作 。
TrustZone 应用程序首先在安全域中执行 。 开发人员从他们的安全启动应用程序开始 , 并可以启动他们的处理器 。 一旦完成 , 执行可以从安全状态切换到用户状态并开始执行用户代码 。
当处理器从用户状态切换到安全状态时 , 硬件处理转换 , 开发人员无需添加代码 。 相反 , 编译器会自动添加一条 CPU 指令 , 指示切换到安全状态 。 在两种状态之间切换的最坏情况确定性开销是三个时钟周期 。 根据应用程序 , 如果嵌入式开发人员正在进行函数调用并且需要验证函数参数或测试在域之间传递的指针 , 则开销可能会更大 。
当开发人员第一次遇到 Cortex-M 的 TrustZone 时 , 他们会发现他们编写应用程序的方式将永远改变 。 他们实际上必须设置两个应用程序 , 其中一个将存在于用户域中 , 另一个存在于安全域中 。 当存在提高系统安全性的机会时 , 必须以不同的方式开发软件不一定是坏事 。 开发人员需要仔细考虑他们的应用程序架构 , 并确保他们正确地识别他们的软件和数据应该存在的领域 。 TrustZone 是嵌入式开发人员可以用来提高系统安全性的工具 。 但只有通过正确使用 , 任何系统都会变得更加安全 。
- 阿里巴巴|美团四季度每送一单赔1块钱,商家也没赚钱,钱去哪了呢?
- 阿里巴巴|极氪详解ZEEKR OS 2.0,稳固产能与完善能源生态,解决用户关切问题
- 阿里巴巴|快递一直不更新?京东唯品会放大招,商家松了一口气
- 电子商务|电商三巨头业绩出炉,拼多多赚了77亿,阿里巴巴1432亿,京东多少
- 阿里巴巴|封锁失败!潘建伟团队造出九章计算机后,阿里巴巴也拿下全球第一
- 携程|封锁失败!潘建伟团队造出九章计算机后,阿里巴巴也拿下全球第一
- 阿里巴巴|14亿人要感谢36岁的他:开发了健康码和行程码,24岁当阿里高管!
- 阿里巴巴|阿里巴巴云原生大数据运维平台 SREWorks 正式开源
- 阿里巴巴|巨鹿小学生和阿里“音乐派”合奏春日暖歌《茉莉花》
- 阿里巴巴|阿里调转船头布局自营,京东唯品会加速前进,电商逻辑变了