瑞萨RA产品家族初学者指南-第11章(1)

描述

 

 

《瑞萨RA产品家族初学者指南》系列文章已收录成合集,欢迎点击上方查看合集并订阅!

 

11. 安全性和TrustZone

 

您将在本章中学到以下内容:

  • 什么是TrustZone以及它如何保护器件

  • Renesas的TrustZone可以带来哪些好处

  • 对应用的安全部分和非安全部分进行分隔的原理

  • 如何实现器件生命周期管理

 

安全性至关重要!必须从项目伊始就考虑到安全性,因为无法在后续流程中加入该要素。至少,无法避免费用高昂的重新设计工作,甚至还可能面临要重建整个应用。安全性可视为建筑物的地基:没有华丽的外表,而且其所需的设计和建造时间可能超过建造其他功能所需的时间总和。即便完成搭建,也可能感觉不到它的存在。但是,安全性对于互联环境中的所有应用都至关重要。

什么时候需要确保安全性?产品通过有线或无线接口(如WiFi、蓝牙、USB或以太网)进行通信时。存储十分重要的信息(如密钥、证书、密码、个人数据、测量数据或算法)时。产品升级(例如,进行固件更新、功能升级或购买付费服务)时。

因此,安全性涉及各种应用领域。安全性与“智能”世界息息相关,如智能电网、智慧城市、智能楼宇、智能家居、智能照明、智能手表、智能电器或智能服装等。它还会影响到物联网或工业应用,因为传感器、机器人技术、楼宇自动化或农业也需要确保安全性。还有医疗应用,人命关天,必须谨慎对待安全问题。

瑞萨的RA产品家族微控制器支持以多种方式来创建安全应用:通过搭载Arm Cortex-M4、-M23或-M33内核的器件上的安全加密引擎,通过搭载Cortex-M4或-M23内核的器件上的安全内存保护单元,也可以通过搭载Cortex-M33内核的MCU上瑞萨对Arm的TrustZone的自有实现。本章将讨论最后一种方式。

最后值得一提的是:大多数RA产品家族MCU均已通过PSA Certified 1级认证,其中RA6M4 MCU系列已通过PSA Certified 2级认证。其中包括对采用Trusted Firmware M (TF-M)的RA产品家族灵活配置软件包进行PSA功能API认证。多个RA产品家族MCU系列已通过SESIP1认证,无论选择何种软件平台,都能确保实现基本的安全功能。此外,安全加密引擎获多项NIST CAVP认证,可确保各种加密功能正常发挥作用。从而增强了用户面向互联环境开发安全产品时的信心。

 

本章目录

  1. 什么是TrustZone,它有什么作用?

  2. 安全环境和非安全环境的划分

  3. 器件生命周期管理

  4. TrustZone用例

 

11.1 什么是TrustZone,它有什么作用?

 

TrustZone是Arm开发的一项核心技术,作为Arm v8-M架构的一部分,通过强制硬件隔离提供系统级安全措施。TrustZone要求在软件中划分安全和非安全MCU区域对应的逻辑分区,从而创建受保护的环境。该技术通常在搭载Arm Cortex-M33内核的器件上实现,个别情况下也在搭载Arm Cortex-M23内核的器件上实现。

 

内存区域划分为三个不同的分区:

  • 安全分区,用于密钥存储和数据解密等受信任或受保护的IP;

  • 非安全分区,用于常规应用;

  • 非安全可调用分区,用作其他两个分区之间的网关。

通过最后一个分区,位于非安全分区中的代码可以调用安全分区中的服务(参见图11-2)。此功能可以通过跳板(veneer)实现,支持隔离安全分区和非安全分区。

使用TrustZone时,非安全环境(非安全处理环境(NSPE))中的代码无法直接访问安全环境(安全处理环境(SPE))中的内容。举例来说,这意味着非安全环境不能更改或使用安全环境中的密钥或证书。只有位于安全环境中的代码才能进行此操作。这可以实现IP保护和沙盒,并减少关键组件的攻击面,同时还可简化嵌入式器件的安全评估。因此,如果微控制器中存在需要保护的知识产权(IP),请将其放置在安全环境中!

 

mcu

图11-2:TrustZone支持对安全区域和非安全区域进行隔离

 

在安全和非安全状态下都可以访问非安全环境中的函数和数据,而非安全环境中的例程只能通过调用位于非安全可调用环境(NSC)的跳板来访问安全环境中的服务。通过此方式提供一个进入安全环境的确定入口点。

虽然Arm对TrustZone的原始定义适用于闪存、RAM和内置组件(如SysTick定时器或MPU),并要求将应用程序代码和数据与安全项目分离,但其不包括对DMA控制器或外设分离的保护。

瑞萨扩展了这一概念,并将TrustZone过滤器应用于其他总线以及引脚和外设。总线过滤器可防止非安全代码通过DMA、DTC和类似机制提取安全代码和数据。换句话说:它可以防止外设访问不应该访问的内存。另一方面,应用于引脚和外设的TrustZone过滤器允许锁定引脚,使其仅可供安全环境访问,而不支持从任何位置进行访问。

这不仅可保护外部接口,而且还能防止非安全代码窃听引脚。例如,位于非安全环境中的恶意代码不能监听分配给安全环境的引脚状态,也不能重建通过UART进行的传输内容。非安全代码也不能覆盖输出。

瑞萨还确保在启动时没有安全漏洞。其他制造商在其实现中使用软件配置的安全属性单元(SAU),这导致TrustZone在复位后短时间内处于未配置状态,瑞萨决定在其RA产品家族中使用实现定义属性单元(IDAU),通过非易失性寄存器配置。这意味着,在获取复位向量时,也就是在执行任何应用程序之前,已经配置了TrustZone并且保证器件是安全的。安全属性通过SCI(片内工厂)引导模式在非易失性内存中设置,应用程序无法修改其内容,只能读取其内容。

 

还需要注意:仅通过使用TrustZone不能实现应用的安全。仅使用TrustZone并不意味着该器件已具备安全保护。TrustZone只是安全工具箱中可选择的一款工具,必须以正确的方式使用才能发挥作用。如果安全应用程序本身存在漏洞(如不合规范的代码),则TrustZone自身并不能避免被攻击。安全代码必须验证其正确性和可信度。

但TrustZone有助于提供并执行信任根(RoT)。RoT是始终可信赖的源,也是所有安全操作、数据和算法的基础。它不仅使代码和数据完整性和隔离、系统验证、薄膜或身份验证之类的服务可用于当前或其他受信任的系统或器件,而且还包含密钥、证书或密码。但这也意味着,如果信任根遭到破坏,则完全丧失保护功能。

TrustZone通过将敏感数据存储在安全环境中来对数据和固件提供保护。它还可以将关键软件预装为安全固件,并将外设配置为仅允许从安全环境访问,从而提供操作保护。

有关TrustZone的更多信息和更详细的解释,您可以识别下方二维码或复制对应的网址在浏览器中打开查看Arm文档:

mcu

https://developer.arm.com/documentation/den0013/d/ARM-Architecture-and-Processors/Architecture-history-and-extensions/Security-Extensions--TrustZone-?lang=en

但请注意,Arm通常采用术语“受信任”和“非受信任”,其定义直接对应于“安全”和“非安全”。

 


原文标题:瑞萨RA产品家族初学者指南-第11章(1)

文章出处:【微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。


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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分