0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arm® TrustZone® 技术简介

嵌入式USB开发 来源:嵌入式Lee 作者:嵌入式Lee 2023-07-04 08:44 次阅读

一.前言

本文对TrustZone 进行简单的介绍,不涉及具体的技术细节,旨在有一个概念性的感性的理解,后面有机会再分享几篇更详细的技术细节介绍和实际应用案例。

本文后续内容以瑞萨的RA系列为例,不同厂家芯片可能不同需要参考对应的手册。

二.TrustZone介绍

Arm TrustZone 技术是Armv8-M 架构一个可选的架构扩展。

其核心思想就是朴素的硬件隔离思想,系统和软件划分为安全区域和非安全区域,安全软件可以访问安全和非安全存储器和资源,而非安全软件只能访问非安全存储器和资源。安全与非安全状态与现有的线程和处理模式组合,即有四种处理器状态,如下所示:

e20b8f5c-1a03-11ee-9c1d-dac502259ad0.png

系统实现了安全扩展,则系统默认以安全状态启动的,即启动时是无所不能的,一般此时对应bootrom完全相关工作,然后跳转到用户非安全程序运行。如果未实现安全扩展,则系统始终处于非安全状态。

注意安全是一个系统工程,Arm TrustZone只是提供了一种实现安全的隔离技术,并未包括安全的所有方面,比如他就不涉及加密等,也并不是说使用Arm TrustZone就安全了,安全是需要系统考虑的,任何一处不安全整个系统就不安全,符合木桶原理。打个比方,武侠小说中很牛逼的反派人物,练就了金钟罩铁布衫刀枪不入,但是往往会有一个弱点就是比如足下或者腋下很脆弱,这就不是安全系统,木桶原理导致其很容易从非安全处被攻破,所以最后大决战阶段正派一开始被暴击,最后快要挂了时,对准反派的弱点比如足下一击,立马KO。所以安全的考虑要系统的考虑,而不仅仅是考虑使用一种什么技术,及你就能考虑处理器就可以达到的。

三.关键组件

隔离的目的就是要隔离关键组件(资源),使得其受保护,不能被非信任软件直接访问,避免被攻击。

关键组件包括以下内容:

l安全自举程序,即前面提到的bootrom程序,因为系统启动默认是安全状态的(能不能启动时不是安全状态呢?不能,如果此时不是安全状态则没法配置安全资源,没法进行初始化配置,所以启动时必须是安全状态,此时无所不能)。所以启动程序要保证受保护,不会被攻破。

l密钥,这个不用说,密钥肯定是要保证不能被非法获取的,否则别人有了你家的钥匙,你再牛逼的防盗门也没啥用。

l闪存编程支持,这也很重要,因为程序最终是要写入FLASH的,如何保证程序烧录的安全,不被篡改,不烧录非授信程序等都是保证安全的前提。

l高价值资产,其他的,比如用户信息数据等都是需要受保护的。

e22a2e58-1a03-11ee-9c1d-dac502259ad0.png

四.安全系统

要构建安全硬件平台,安全注意事项不仅仅要考虑处理器级别,而是需要考虑系统级别,所以一再强调的是系统安全,而不是处理器安全,主要包括:

存储器系统

总线系统

外设

调试系统等。

4.1存储器系统

前面提到了TrustZone 技术的核心是隔离,所以针对存储器系统就是划分不同的区域对应不同的属性。代码闪存、数据闪存和 SRAM 分为 安全 (S)、非安全 (NS) 和非安全可调用 (NSC) 区域,比如瑞萨的RA系列MCU这个划分是通过IDAU控制的。

如下图所示:

代码闪存和SRAM都可以执行程序所以有非安全可调用区域,而数据闪存不可执行程序只有非安全和安全区域之分。

e240c46a-1a03-11ee-9c1d-dac502259ad0.png

当器件生命周期为安全软件开发 (SSD) 状态时,可通过使用串行编程命令将这些存储器安全属性编程到非易失性存储器中。

安全区域,执行安全程序,具备最高权限可以访问所有资源。

安全地址用于只能由安全代码或安全 master 访问的内存和外设。安全事务是那些由 master 发起并在安全状态下运行的事务。

非安全区域,执行非安全程序,只能访问非安全资源,也可以调用非安全可调用区域API,执行一些安全程序的接口

非安全地址用于设备上运行的所有软件均可访问的内存和外设。非‑安全事务源自以非安全方式运行的 master或访问非安全地址的安全 master(仅数据事务,非获取指令)。仅允许非安全事务访问非‑安全地址。非安全事务不能访问安全地址。

非安全可调用区域NSC,即中间地带,提供非安全程序可调用的安全API。

NSC 是一种特殊类型的安全位置。这种类型的内存是 Armv8-M 处理器允许为其保留 SG(安全门)指令的唯一类型,该指令允许软件从非安全状态转为安全状态。该 SG 指令可用于防止非安全应用程序从分支进入无效入口点。

当非安全代码调用安全端函数时:

– API 中的第一条指令必须是 SG 指令。

– SG 指令必须在 NSC 区域内。

安全代码还提供非安全可调用函数,为非安全代码提供安全服务访问。

基于 TrustZone 区域 的代码和数据闪存安全功能

从非安全区域读取代码和数据闪存区域将生成 TrustZone 安全故障。

代码和数据闪存 编程和擦除 (P/E) 模式入口可以配置为仅通过安全软件实现,也可以配置为通过安全和非安全软件实现。默认情况下,MCU 将代码和数据闪存 P/E 功能配置为仅通过安全软件实现。闪存驱动程序可以置于安全分区 中,并且可以配置为非安全可调用,以允许非安全应用程序执行闪存 P/E 操作。

支持安全区域和非安全区域的临时和永久闪存块保护。

SRAM

SRAM 存储器可以通过存储器安全属性 (MSA) 分为安全/非安全 可调用/非安全状态,并且可以防止非安全访问。当 MSA 指示 SRAM 存储区域处于安全或非安全可调用状态 时,非安全访问无法覆写它们。

4.2总线系统

DMA 控制器和数据传输控制器

直接存储器访问控制器 (DMAC) 和数据传输控制器 (DTC) 由主 TrustZone 过滤器监控。在访问总线之前,会提 前检测闪存和 SRAM 的 TrustZone 违例区域。DMAC 和 DTC 中的主 TrustZone 过滤器可以检测 IDAU 定义的闪 存区域(代码闪存和数据闪存)和 SRAM 区域的安全区域。当非安全通道访问这些地 址时,主 TrustZone 过滤器会检测到安全违例,不允许访问违例地址。

以太网DMA控制器

EDMAC RAM 缓冲区置于 TrustZone 的非安全 RAM 中。EDMAC 被硬编码为 TrustZone 非安 全总线主器件。这些硬件特性允许以下两个以太网程序分区选项:

在安全区域中运行以太网程序 ,在非安全区域中放置 EDMAC RAM 缓冲区

在非安全区域中运行以太网程序 EDMAC RAM 缓冲区。

MPU

总线主 MPU 可用于除 CPU 外的每个总线主器件的存储器保护功能。安全软件可以设置总线主 MPU 的安全 属性。

4.3外设

MCU 中的大多数外设都可以配置为安全或非安全,但CS 区域控制器、QSPI、OSPI、ETHERC 和 EDMAC始终是非安全。

外设分为两种类型。 类型 1 外设具有一种安全属性,对所有寄存器的访问由一种安全属性控制。安全应用程序将类型 1 外设安 全属性设置到外设安全属性寄存器(PSARx:x = B 至 E)。外设的不同通道可以采用不同的安全属性。例如,UART 通道 0 和通道 1 可以具有不同的安全或非安 全属性。

类型 2 外设具有每个寄存器或每个位的安全属性,根据这些安全属性控制对每个寄存器或位域的访问。安 全应用程序将类型 2 外设安全属性设置到每个模块中的安全属性寄存器。

总结一下就是外设类型1颗粒度更大,所有寄存器一起控制安全属性,类型2颗粒度更小。

e25b1496-1a03-11ee-9c1d-dac502259ad0.png

时钟生成电路针对每个时钟树控制都有单独的安全属性。可使用一下时钟控制方案。

整个时钟树仅通过安全项目进行控制,在非安全项目中被锁定。

整个时钟树可通过非安全项目和安全项目进行控制。

4.4调试系统

开发阶段希望有更强大的调试功能,以方便进行各种调试分析,而发布阶段希望关闭调试功能以放置通过调试系统被攻破。所以调试功能分为了不同级别

调试功能分为 DBG0、DBG1 和 DBG2 三个级别,以 对支持 TrustZone 技术的调试功能提供支持,并为开发、生产和部署的产品提供安全性。

DBG2:允许调试器连接,无限制访问存储器和外设。

DBG1:允许调试器连接,但仅限访问非安全存储区域和外设

DBG0:不允许调试器连接

调试级别根据产品的器件生命周期状态确定。通过器件生命周期管理系统可以实现调试级别的回退。

五.器件生命周期管理

使用 TrustZone 技术功能和安全加密引擎 9 (SCE9) 实现增强型器件 生命周期管理系统。器件生命周期管理在启用 TrustZone 技术的应用程序开发、生产和部署阶段非常重要,主要实现以下功能:

根据器件生命周期状态定义和切换,在开发和生产阶段创建、安 装和使用器件生命周期管理密钥等。

六.参考

《TrustZone technology for Armv8-M Architecture Version 2.1》

《Renesas RA Family Security Design with Arm TrustZone - IP Protection》

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19259

    浏览量

    229647
  • 存储器
    +关注

    关注

    38

    文章

    7484

    浏览量

    163759
  • trustzone
    +关注

    关注

    0

    文章

    20

    浏览量

    12535
收藏 人收藏

    评论

    相关推荐

    ARM技术是什么?国内有哪些ARM厂家呢?一起来了解一下!

    (AArch64)。这使得ARM处理器能够兼容更多的软件和应用,提高系统的灵活性和兼容性。 二、ARM技术发展历程 ARM架构经历了多个版本的迭代,不断提升性能和功能。以下是几个主要版
    发表于 11-18 16:35

    Arm Tech Symposia年度技术大会即将来袭

    Arm Tech Symposia 年度技术大会将于下月登陆上海与深圳两地,小编迫不及待想与各位 Arm 新朋老友线下相见!上周为大家预告了上午主题演讲的大咖阵容,本期将来细说下午各大技术
    的头像 发表于 11-01 13:56 353次阅读

    Arm如何赋能无处不在的AI

    作为人工智能 (AI) 的创新基础,众多企业都在使用通用且应用广泛的 Arm 计算平台。迄今为止,合作伙伴基于 Arm 架构的芯片出货量已逾 2,800 亿颗。如今,Arm 已为各类技术
    的头像 发表于 09-14 09:38 526次阅读

    Arm精锐超级分辨率技术解析

    近日,Arm 推出了 Arm 精锐超级分辨率技术 (Arm Accuracy Super Resolution, Arm ASR),这是一款
    的头像 发表于 09-03 11:28 921次阅读
    <b class='flag-5'>Arm</b>精锐超级分辨率<b class='flag-5'>技术</b>解析

    STM32H5和STM32U5在trustzone上有哪些不同?

    我要做空调的空中升级FOTA的方案,需要加密,对于trustzone功能,采用那款芯片比较合适?STM32H5和STM32U5在trustzone上有哪些不同?
    发表于 07-05 07:03

    请问STM32L5和STM32H5对trustzone有哪些不同?

    STM32L5和STM32H5对trustzone有哪些不同?
    发表于 07-04 08:08

    Arm 加入 RT-Thread 全球技术大会,成为顶级共创合作伙伴!

    2024RT-Thread全球技术大会非常荣幸迎来了Arm,成为顶级共创合作伙伴。Arm将在2024年全球技术大会带来丰富的专业知识和解决方案,助力全球开发者的创新之路。作为半导体设计
    的头像 发表于 05-29 08:35 369次阅读
    <b class='flag-5'>Arm</b> 加入 RT-Thread 全球<b class='flag-5'>技术</b>大会,成为顶级共创合作伙伴!

    ArmArm Neoverse计算子系统(CSS):Arm Neoverse CSS V3和Arm Neoverse CSS N3

    Arm宣布了两款新的Arm Neoverse计算子系统(CSS),它们基于“迄今为止最好的一代Neoverse技术”。是什么让这些新产品在拥挤的计算技术领域脱颖而出?
    的头像 发表于 04-24 17:53 1048次阅读
    <b class='flag-5'>Arm</b>新<b class='flag-5'>Arm</b> Neoverse计算子系统(CSS):<b class='flag-5'>Arm</b> Neoverse CSS V3和<b class='flag-5'>Arm</b> Neoverse CSS N3

    【Vision Board创客营连载体验】RA8D1 Vision Board初体验

    技术的加持,性能非常强大。 内核:480 MHz Arm Cortex-M85,包含Helium和TrustZone技术 存储:集成2MB/1MB闪存和1MB SRAM(包括TCM,5
    发表于 04-23 21:53

    芯片信息安全,不同ISA架构的实现思路

    /IEC 27400:2022等。然而对于不同的芯片架构而言,实现安全的方式往往也不尽相同,比如Arm和RISC-V。   Arm TrustZone 技术   经过多年的发展,
    的头像 发表于 04-18 00:09 3253次阅读

    fpga封装技术arm架构的优缺点

    FPGA封装技术ARM架构是两个不同的概念,分别属于硬件设计的不同领域。
    的头像 发表于 03-26 15:51 833次阅读

    fpga封装技术arm架构有什么区别

    FPGA封装技术ARM架构在多个方面存在显著的区别。
    的头像 发表于 03-26 15:50 710次阅读

    Arm Helium技术诞生的由来 为何不直接采用Neon?

    经过 Arm 研究团队多年的不懈努力,Arm 于 2019 年推出了适用于 Armv8‑M 架构的 Arm Cortex-M 矢量扩展技术 (MVE)——
    的头像 发表于 02-29 17:01 2181次阅读
    <b class='flag-5'>Arm</b> Helium<b class='flag-5'>技术</b>诞生的由来 为何不直接采用Neon?

    STM32H5 DA 之初体验(带 TrustZone)

    电子发烧友网站提供《STM32H5 DA 之初体验(带 TrustZone).pdf》资料免费下载
    发表于 02-19 14:19 0次下载
    STM32H5 DA 之初体验(带 <b class='flag-5'>TrustZone</b>)

    STM32简介 STM32和ARM7的关系

    STM32是“意法半导体”生产的基于“ARM公司Cortex-M3内核”的32位高性能MCU。
    的头像 发表于 01-03 13:38 1950次阅读
    STM32<b class='flag-5'>简介</b> STM32和<b class='flag-5'>ARM</b>7的关系