加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 资料介绍
    • 概述
    • 安全状态
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

AN5347 Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列

3小时前
59
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

AN5347 Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列

2.63 MB

在 IoT(物联网)应用中,设备很容易受到通过互联网实施的恶意入侵。因此,保护设备和信息并使可信区域和不可信区域彼此隔离,这些安全主题就非常的重要。

STM32L5 和 STM32U5 系列器件(本文档的后面部分称其为 STM32L5、STM32U5 或 STM32L5/U5)基于高性能 Arm®Cortex®-M33 32 位 RISC 内核。该处理器使用 Armv8‑M 架构,主要应用于非常注重安全性的环境。

面向 Armv8-M 的 Arm® TrustZone®技术是一种安全扩展,旨在将硬件划分为安全区域和非安全区域。通过 Arm® TrustZone®技术和软件方法,STM32L5/U5 微控制器MCU)为安全应用程序提供良好的设计灵活性。

本文档介绍 Arm® TrustZone®技术和 STM32L5/U5 器件的各项特性,这些特性允许将 MCU 内存/资源划分为安全区域和非安全区域。

概述

面向 Armv8-M 的 Arm TrustZone 技术将系统分为两个区域:一个是安全区域,另一个是非安全区域。安全与非安全区域的划分是基于内存映射的。

所有可用的微控制器资源(包括 Flash 存储器、SRAM、外部存储器、外设和中断)被分配给安全区域或非安全区域。规划了这些资源的安全属性之后,非安全区域只能访问非安全内存和资源,而安全区域可以访问这两个区域中的所有内存和资源,包括安全和非安全资源。

需要保护的重要数据(如加密密钥)必须在安全区域中以安全的方式进行存储和处理。代码的执行位置定义了其类型:

  • 如果代码在安全内存中执行,则称其为安全代码。
  • 如果代码在非安全内存中执行,则称其为非安全代码。

安全代码和非安全代码在相同的 STM32L5/U5 器件上运行。

安全状态

在简化视图中,执行的代码地址决定了 CPU 的安全状态,即安全或非安全:

  • 如果 CPU 在非安全内存中运行代码,则 CPU 处于非安全状态。
  • 如果 CPU 在安全内存中运行代码,则 CPU 处于安全状态。

Armv8-M 技术定义了以下地址安全属性:

  • 安全

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

  • 非安全可调用(NSC)

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

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

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

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

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

  • 非安全

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

资料预览

相关推荐