概述
技术背景
Flash XIP 解密是一种专为保护芯片固件设计的安全机制,旨在防止固件被非法读取。 在嵌入式系统中,固件通常在外部的 Flash 中 XIP(eXecute In Place)就地执行。若固件未加密,攻击者可以通过物理方式读取 Flash 中的固件进行破解克隆,将其复制到其他设备上运行。 这种固件泄露不仅会造成产权损失,还可能带来安全隐患。传统的固件保护方案通常依赖软件加密或外部安全芯片,但这些方案存在性能损耗、成本增加或安全性不足的问题。
Ameba 系列 IC 通过在芯片内部集成硬件 RSIP(Runtime Secure Image Protection) 实时解密模块,在不影响系统性能的前提下实现了固件保护。
安全机制
RSIP 使用 AES-256 算法对 Flash 中的固件进行加密,防止固件被破解。AES 算法属于对称加密算法,加解密使用相同的密钥。 密钥存储于芯片内部 OTP 区域,并通过读写保护机制防止密钥被提取和篡改。
密钥与芯片双向绑定:一方面,芯片只能运行经对应密钥加密的固件;另一方面,加密固件只能在烧录了对应密钥的芯片上运行,即使固件被克隆到其他设备也无法运行。
芯片运行时,RSIP 使用 OTP 密钥解密 Flash 密文,然后将明文提交给 CPU。整个过程由硬件自动完成,对系统运行效率基本没有影响。 RSIP 包含多个独立解密通道(Entry),可为不同固件分区(如 Bootloader、APP 等)配置不同的 IV 和算法模式,实现风险隔离。
使用流程
Ameba SDK 提供完整的开箱即用的 Flash XIP 解密方案。所有复杂的加解密机制均已实现在 SDK 中, 开发者无须自行编写代码,只需要根据用户指南进行配置 SDK。RSIP 的使用流程可分为以下三个阶段:
开发与生产阶段:开发者首先生成随机 RSIP 密钥,然后编译 SDK 生成明文固件,接着脚本自动使用该密钥对明文固件进行加密,输出密文固件。产线上需要完成两项操作:将 RSIP 密钥烧录至芯片的 OTP 区域,然后将密文固件烧录至 Flash。此过程确保了固件以加密形式传输和存储,且将密钥绑定到每颗芯片。
产品存储与流通阶段:产品出厂后,Flash 中存储加密固件。OTP 中的密钥被读写保护,有效防止了密钥泄露。实现固件机密性、固件防替换以及产品防克隆的多重保护。
芯片运行阶段:芯片上电运行时 CPU 需要读取指令和数据。此时芯片内部的 RSIP 模块使用 OTP 中存储的密钥,将 Flash 中的密文数据实时解密为明文并提交给 CPU。整个解密过程由硬件自动完成,对软件完全透明,对系统运行效率几乎没有影响。
RSIP 使用流程图
RSIP 的密钥使用方式分为"一型一密"和"一机一密"两种。一型一密是推荐方案,即同一产品型号的所有设备共用同一密钥,固件加密一次即可批量生产使用。 该方案基于 AES-256 强加密算法和 OTP 密钥保护机制,已能够有效防止固件泄露和克隆,满足绝大多数应用场景的安全需求。 同时,RSIP 也支持一机一密方案,即每颗芯片使用独立密钥、固件单独加密,适用于对安全等级有特殊要求的应用场景。