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

    文章

    20148

    浏览量

    246962
  • 存储器
    +关注

    关注

    39

    文章

    7714

    浏览量

    170799
  • trustzone
    +关注

    关注

    0

    文章

    22

    浏览量

    12862
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索STM32H573I-DK:基于Arm TrustZone的高安全性物联网开发平台

    STM32H573I-DK探索套件Arm® TrustZone® 安全性是用于STM32H573IIK3Q微控制器的完整演示和开发平台,采用Arm® Cortex®®-M33内核(带Arm
    的头像 发表于 10-23 16:01 572次阅读
    探索STM32H573I-DK:基于<b class='flag-5'>Arm</b> <b class='flag-5'>TrustZone</b>的高安全性物联网开发平台

    ‌STM32WBA55G-DK1探索套件技术解析:构建超低功耗无线应用的全栈方案

    STMicroelectronics STM32WBA55G-DK1探索套件是用于STM32WBA55CGU7微控制器的全面演示和开发平台。它采用带有Arm® TrustZone®和主线安全扩展的Arm® Cortex®-M33
    的头像 发表于 10-21 10:31 313次阅读
    ‌STM32WBA55G-DK1探索套件<b class='flag-5'>技术</b>解析:构建超低功耗无线应用的全栈方案

    STM32WBA65I-DK1探索套件技术解析

    STMicroelectronics STM32WBA65I-DK1探索套件采用STM32WBA65RI微控制器作为完整的演示和开发平台。该套件包括Arm^^®^^ Cortex^®^ -M33芯体(带ARM TrustZone
    的头像 发表于 10-16 09:51 366次阅读
    STM32WBA65I-DK1探索套件<b class='flag-5'>技术</b>解析

    Arm神经技术是业界首创在 Arm GPU 上增添专用神经加速器的技术,移动设备上实现PC级别的AI图形性能

    Arm 神经技术是业界首创在 Arm GPU 上增添专用神经加速器的技术,首次在移动设备上实现 PC 级别的 AI 图形性能,为未来的端侧 AI 创新奠定基础 神经超级采样是
    的头像 发表于 08-14 17:59 2515次阅读

    ARM入门学习方法分享

    首先认识什么是ARM? ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC
    发表于 07-23 10:21

    Arm 公司面向 PC 市场的 ​Arm Niva​ 深度解读

    面向 PC 市场的 ​ Arm Niva ​ 深度解读 ​ Arm Niva ​ 是 Arm 公司为 PC 市场推出的核心计算平台,属于其“平台优先”战略的关键布局。作为 ​ Arm
    的头像 发表于 05-29 09:56 1301次阅读

    【直播预告】《实时操作系统应用技术—基于RT-Thread与ARM的编程实践》教学脉络及资源简介

    直播预告直播主题:《实时操作系统应用技术—基于RT-Thread与ARM的编程实践》教学脉络及资源简介开放时间:2025年5月29日(周四)20:00主讲老师:王宜怀课程类型:视频直播观看平台
    的头像 发表于 05-26 17:50 1093次阅读
    【直播预告】《实时操作系统应用<b class='flag-5'>技术</b>—基于RT-Thread与<b class='flag-5'>ARM</b>的编程实践》教学脉络及资源<b class='flag-5'>简介</b>

    蓝牙LE Audio技术简介和优势分析

    Energy)技术的优点,同时又具备卓越的音频性能。本文将从技术简介和优势分析两个方面对蓝牙LE Audio技术进行详细的介绍。 一、蓝牙LE Audio
    的头像 发表于 05-21 16:08 3010次阅读

    RA8T1基于480MHz Arm Cortex-M85、搭载Helium和TrustZone的电机控制微控制器技术手册

    RA8T1 系列 32 位微控制器 (MCU) 基于高达 480MHz 的 Arm^®^ Cortex-M85^®^ 内核,采用 Helium™ 技术TrustZone ^®^ ,并提供针对电机
    的头像 发表于 05-15 17:17 749次阅读
    RA8T1基于480MHz <b class='flag-5'>Arm</b> Cortex-M85、搭载Helium和<b class='flag-5'>TrustZone</b>的电机控制微控制器<b class='flag-5'>技术</b>手册

    Arm精锐超级分辨率技术助力提升游戏性能

    去年夏天,Arm 推出了 Arm 精锐超级分辨率技术 (Arm Accuracy Super Resolution, Arm ASR) 的早
    的头像 发表于 04-21 13:52 882次阅读
    <b class='flag-5'>Arm</b>精锐超级分辨率<b class='flag-5'>技术</b>助力提升游戏性能

    TrustZone介绍及用途

    TrustZoneArm开发的一项核心技术,作为Armv8-M架构的一部分,通过强制硬件隔离提供系统级安全措施。TrustZone要求在软件中划分安全和非安全MCU区域对应的逻辑分区
    的头像 发表于 04-08 09:47 1244次阅读
    <b class='flag-5'>TrustZone</b>介绍及用途

    用STM32Cubeprogrammer烧录TrustZone的示范程序不成功怎么解决?

    最近测试STM32U575 的TrustZone 保护机制。 用STM32Cubeprogrammer 2.17.0 烧录已编译好的以下地址的TrustZone 的HEX 文件
    发表于 03-07 08:28

    Arm 技术预测:2025 年及未来的技术趋势

    Arm 不断思考着计算的未来。无论是最新架构的功能,还是用于芯片解决方案的新技术Arm 所创造和设计的一切都以未来技术的使用和体验为导向。 凭借在
    发表于 01-14 16:43 471次阅读
    <b class='flag-5'>Arm</b> <b class='flag-5'>技术</b>预测:2025 年及未来的<b class='flag-5'>技术</b>趋势

    屏蔽栅MOSFET技术简介

    继上一篇超级结MOSFET技术简介后,我们这次介绍下屏蔽栅MOSFET。
    的头像 发表于 12-27 14:52 4893次阅读
    屏蔽栅MOSFET<b class='flag-5'>技术</b><b class='flag-5'>简介</b>

    利用Arm Kleidi技术实现PyTorch优化

    PyTorch 是一个广泛应用的开源机器学习 (ML) 库。近年来,Arm 与合作伙伴通力协作,持续改进 PyTorch 的推理性能。本文将详细介绍如何利用 Arm Kleidi 技术提升 A
    的头像 发表于 12-23 09:19 1614次阅读
    利用<b class='flag-5'>Arm</b> Kleidi<b class='flag-5'>技术</b>实现PyTorch优化