概述

Arm Cortex-M TrustZone 技术可将系统和软件划分为安全世界(Secure World)和普通世界(Normal World)。 安全软件可访问安全及非安全存储器和资源,而普通软件仅能访问非安全存储器和资源。 用户可参考 ARM 的文档获取更多关于 TrustZone 的信息。

读保护(RDP)用于保护采用 Arm TrustZone 技术实现的安全关键代码。 安全关键代码(KM4 安全固件)以加密形式存储于 Flash 中。 该代码将在安全引导加载程序中进行解密,并通过 TrustZone 保护加载至安全 SRAM。解密密钥存储于 OTP 中,仅安全 IPsec(IPSEC-S)可访问。

../../rst_rtos/3_nda_rdp/figures/rdp_diagram_nda.svg

RDP diagram

  • RDP 加密: 配置 KM4 安全固件清单(文件名为 manifest.json)以生成通过 AES-CBC 加密的 RDP 固件。

  • Flash 加密区域: 用于存储加密的 RDP 固件。固件头中的地址字段指定了需加载至的安全地址。

  • RAM 安全区域: 由用户通过 TrustZone MPC 条目定义。

  • IPSEC-S: 在启动时,RDP 固件将通过安全 IPsec 进行解密并安全地 DMA 传输至 RAM 安全区域。IPSEC-S 设计用于访问 TrustZone 安全世界。

  • RDP 密钥: 存储于 OTP 安全区域。在编程 R/W 保护位后,RDP 密钥仅能通过 IPSEC-S 访问。安全引导代码将从 OTP 获取该密钥并加载至 IPSEC-S 进行解密。