信息安全硬件特性

Top Picture

信息安全硬件特性

概览

Ameba MCU 底层硬件具备各种安全特性,能够覆盖存储访问保护、代码/系统隔离、启动入口限定、密码学算法加速、身份识别、安全存储等多方面的安全需求,例如:

  • 身份识别:HUK, OTP
  • 存储访问保护/软件 IP 保护:写保护,调试接口控制,启动代码保护,Flash XIP 解密(RSIP)
  • 代码/系统隔离:MPU,TrustZone,MPC,PPC
  • 启动入口限定
  • 密码学算法硬件:AES,HASH,ECC,TRNG
  • 安全存储

芯片硬件安全功能结合上层软件能够实现更多应用层级的安全功能,例如安全启动,安全更新,安全存储,安全通信,可信执行环境等等

身份识别

HUK(硬件唯一密钥)

HUK(Hardware Unique Key)是每个 Ameba 芯片在生产时由芯片制造商生成的唯一密钥,长度为 128bit,用于派生运行时密钥。HUK 在 ROM 阶段结束后即被硬件锁定,无法再次访问。HUK 的常见用途包括:

  • 基于 HUK 通过某种算法生成搭载该芯片的产品的唯一序列号
  • 基于 HUK 进行密钥派生
  • 了解更多:请点击 HUK 派生 章节

OTP 一次性写入区域

OTP(One-Time Programmable)区域是芯片内的一块特殊存储区域,仅支持一次性、不可逆地将其编程为 0。Ameba 芯片的 OTP 区域通常分为多个区块,安全区块读和写权限可以单独控制,User-defined 区域可以设置访问权限(如仅安全 CPU 可访问)。OTP 的常见用途包括:

  • 一次性写入产品标识信息,写入后无法变更
  • 一次性写入不可变更数据,例如安全启动用于验证应用合法性的公钥信息
  • 密钥保护,关闭读写权限后 CPU 无法访问,只有指定 IP 可以访问
  • 安全功能配置,如启用安全启动、启用调试保护等
  • 了解更多:请点击 OTP 存储 章节

存储保护、软件 IP 保护

内部 Flash 写保护

Ameba 芯片支持对内部 Flash 的写保护功能,从而保护内部 Flash 指定区域的内容不被意外或恶意地修改或擦除。写保护区域可以覆盖整个 Flash,也可以仅覆盖起始或末尾 Page 地址,支持灵活配置。

根据产品系列的不同,内部 Flash 额外会支持不同大小的 Security Registers(安全寄存器)功能,允许用户将公钥信息或证书等信任根信息写入这些寄存器,并通过写保护机制锁定,确保在设备运行过程中这些关键数据不被篡改。

调试接口访问控制

为防止固件代码通过调试接口被非法读取,Ameba 系列芯片支持通过 OTP 配置调试接口的访问控制,限制调试功能的使用。

  • 密码保护:启用后需要输入正确的密码才能访问调试功能
  • 动态授权:在安全启动验证成功后动态授权特定域的调试权限,兼顾安全与开发调试的灵活性(较新系列支持)
  • 永久关闭:可选支持禁止调试端口对 Secure 资源的访问,但依旧允许 Non-Secure 区域的调试;或者彻底禁止任何形式的调试访问
  • 了解更多:请点击 SWD 保护 章节

启动代码保护

Ameba 系列芯片安全启动代码均放置在 ROM 中,不能修改或者擦除,并且锁定指定区域只能进行取指令操作,而无法进行数据读访问,无论是通过调试器还是芯片运行的任何代码都无法以数据访问的形式读取受保护区域的内容(包括里面的指令和数据)。

该机制从硬件层面杜绝了启动代码被非法读取、逆向分析、篡改或替换的风险,确保芯片上电后始终执行原厂可信的启动流程,防止恶意程序窃取密钥、篡改启动逻辑或绕过安全校验,为后续固件验签、安全启动链及整体系统安全提供底层可信根基。

Flash 存储器数据保护(RSIP)

RSIP 功能用于保护放置于 Flash 上的代码和数据的机密性。代码和数据可以事先经过 AES 加密后以密文的形式存储于 Flash,从而防止由于数据、代码明文存放于 Flash 而带来的安全风险。系统运行时,Flash 上的密文代码和数据经由 RSIP 模块实时解密,该解密过程对 CPU 透明,无需额外软件参与,支持直接执行 Flash 上的加密代码。Flash 可划分为多个区域,每个区域使用独立密钥。

RSIP 还支持 MMU 映射,能够将 CPU 的执行地址,映射到 Flash 上不同的物理地址,因此 OTA 升级时无须修改 CPU 的执行地址,直接将新固件写入 Flash 的不同区域即可,极大简化了 OTA 升级流程,同时也避免了升级过程中由于 CPU 执行地址被修改而带来的安全风险。

了解更多:请点击 Flash XIP 解密 章节

代码/系统隔离

MPU 存储器保护单元

MPU 是 Cortex-M 内核具备的功能,可以通过定义不同的 Region(区域)设置不同地址范围的属性和 CPU 访问权限,例如某个地址范围是否允许执行,是否只读或读写,是否允许特权模式访问或者用户模式访问。通过合理配置和使用 MPU 可以实现对系统资源和代码的隔离。例如可以将非代码区的地址范围的访问权限设置不可执行;或者将 Flash 的某个区域设置为只允许特权模式读访问,配合代码的特权和用户模式转换,达到部分代码能够访问该资源而其余代码无直接法访问该资源的目的。

了解更多:请点击 内存管理和缓存 章节

TrustZone

Ameba 系列芯片基于 CM55 内核,全部支持 Arm TrustZone 技术,并提供了系统级的安全隔离能力。CPU 的运行区分安全和非安全状态,存放在 Flash, RAM 上的代码和数据被分配到安全和非安全区,允许 CPU 安全或者非安全状态下的访问,除此之外,系统的各个外设以及 CPU 之外的 Bus Master 也都能够被赋予安全和非安全属性,这样就意味着安全区所管理的不仅仅只有代码和数据,还可以包含关键外设及其对应的中断等等。基于 TrustZone 提供的隔离功能,可以在 MCU 上实现可信执行环境,关键代码与操作置于可信执行环境内,避免系统的关键资源因为应用软件可能带有的脆弱性而受到攻击。

了解更多:请点击 TrustZone 安全处理环境(SPE) 章节

MPC 与 PPC 硬件隔离控制器

MPC(Memory Protection Controller)和 PPC(Peripheral Protection Controller)是 Ameba 系列芯片的硬件隔离单元,支持在物理总线层面保护标记为安全的内存区域或外设,MPC 可将 Flash, RAM 内存区域划分为 Secure/Non-Secure,PPC 则控制外设的访问权限。MPC 保护的内存区域只有在 Secure 状态下才能访问,PPC 控制的外设也只能被 Secure 状态的代码操作。

启动入口限定

唯一启动入口

Ameba 系列芯片硬件层面强制限定唯一合法启动入口,系统上电复位后仅允许带 TrustZone 功能的 CPU 引导启动,此时整个系统全部处于 Secure 状态,其他 CPU 无法访问任何系统资源,从而保证每次启动时总是运行安全启动代码,使得安全启动代码对系统和后续代码的校验无法被绕过。

当 Security 功能被使能的时候,引导 CPU 执行的任何固件均经过安全启动代码的验证,只有验证通过的固件才能继续执行,否则系统将被锁定在安全启动代码中无法继续执行,从而防止了恶意篡改启动入口、劫持启动流程、执行未授权代码等攻击行为,确保芯片始终遵循预设的可信启动路径,为安全启动链提供不可绕过的硬件基础保障。

了解更多:请点击 安全启动 章节

Crypto 密码学单元

Ameba 系列芯片集成完整硬件密码学单元,包括 TRNG 真随机数发生器、对称加解密引擎、非对称加密引擎,为设备提供全场景硬件级安全算力支撑。

  • 内置的 TRNG 模块能够产生符合随机性要求的随机数,作为密码学操作、加密通信等的基础,了解更多:请点击 TRNG
  • AES 加密引擎支持 AES-128/192/256 算法,提供高性能硬件对称加解密能力,同时支持消息认证码与哈希消息认证码算法,较新系列引擎算法已通过 NIST CAVP 认证。HASH 模块支持 SHA2 系列哈希算法及 HMAC 运算,能够高效计算数据的哈希值,了解更多:请点击 对称加密引擎
  • 非对称加密引擎主要提供公钥算法 RSA/ECC 相关的密码学运算功能,可独立完成复杂密码运算,从而大幅度提高公钥算法相关密码学运算的速度,释放 CPU 的运算资源。较新系列引擎算法已通过 NIST CAVP 认证,兼具侧信道攻击防御能力。了解更多:请点击 非对称加密引擎 查看更多支持的算法与曲线

安全存储

通过使能 OTP 中的密钥保护功能,可以将密钥存储在加密引擎内部,芯片运行时加密引擎可以使用该密钥进行运算,但 CPU 和其他外设无法直接访问该密钥,从而实现了安全存储的功能。其中,RTL8721F 进一步可以配置部分密钥只有在加密引擎处于 Secure 状态时才允许使用该密钥,跳转到应用程序后则不可以使用

由于 Ameba 全系支持 TrustZone,可以利用 TrustZone 带来的系统隔离特性,在软件上提供基于 TF-M 软件框架的安全存储服务。

开发资源

SDK icon SDK 下载 查看
Doc icon FreeRTOS 系统安全编程指南 查看
Contact icon 联系我们 查看


推荐 IC 型号

功能 筛选 RTL8721Dx RTL8720E RTL8710E RTL8726E RTL8713E RTL8730E RTL8721F RTL872xD RTL8735B
AES 硬件引擎
SHA 硬件引擎
ECDSA/ECDH 硬件引擎
EDDSA 硬件引擎
RSA 硬件引擎
安全启动
Flash OTF 解密
Arm TrustZone
OTP 安全存储
真随机数发生器
HUK 派生机制
调试密码保护