• 正文
  • 相关推荐
申请入驻 产业图谱

面向CRA与IEC 62443的四层防线-米尔基于RV1126B核心板

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

从 OTP 根信任到签名 OTA

一台装在输电铁塔上的监拍装置,外壳上只有四颗防拆螺丝。谁把它拆下来带回实验室,eMMC 焊下来就是一份完整的固件副本——算法、模型、标定参数、辛苦调出来的图像参数,全在里面。

这是安防与电力行业二十年的老问题,过去靠"抄了也没用"糊过去。2026 年 9 月 11 日起,欧盟《网络韧性法案》的漏洞与事件报告义务已经生效;2027 年 12 月 11 日全面适用之后,"固件能不能被读出来"从商业风险变成了监管问题。

RV1126B 在这件事上有一张别人少提的牌:OTP 里预留了 16 字节固件加密密钥。配合签名启动与分区加密,一台设备可以做到——固件既改不了,也读不出。

01核心结论

  • 一条链:BootROM 读 OTP 里的公钥哈希 → 验 Loader → 验 OP-TEE 与 U-Boot → 验 Kernel 与 DTB → ramdisk 校验系统分区。任何一级被替换,设备起不来。
  • 两把锁:签名解决"改不了",固件加密解决"读不出"。前者是标配,后者是 RV1126B 相对同代平台多出来的那一把。
  • 一条通道:CMS 签名 OTA,升级包被改一个字节就装不进去——这是"支持期内能修漏洞"的技术前提。

02先分清你的产品走哪条路

CRA 把含数字元素的产品分成三档,合规成本差一个量级。这一档定错,后面所有工作都白做。

这里有个容易被忽略的细节:同样是摄像头,命运不同。家用安防摄像头、可视门铃、婴儿监视器被 CRA 附件三第 17 项明确点名,属于 Class I;而装在变电站、风机、产线上的工业监拍设备,走普通产品路径。但两条路的技术底座是同一套——证明固件可信、系统未篡改、数据有保护、漏洞修得进去,差别只在证据多严、由谁来看。

时间表:2024-12-10 生效 → 2026-09-11 第 14 条报告义务适用(24 小时预警、72 小时通知、补救后 14 天最终报告,已上市产品同样受管)→ 2027-12-11 全面适用。罚则上限 1500 万欧元或全球年营业额 2.5%。

03四层防线,一张图看完

RV1126B 的安全体系不是"有没有加密"这种单点问题,而是四层叠加、一条链贯穿。下图是这套体系的整体结构:底层是 OTP 与安全硬件,往上依次是安全存储、安全启动、系统完整性保护。


图 1 四层安全架构。从 OTP 根信任出发,逐级向上建立信任,最终由 dm-verity / dm-crypt 保护系统分区。

装在野外、车里、产线边上的设备,威胁一大半来自物理接触。机房里的设备怕网络攻击,无人值守的设备怕的是"被拆开":

注意第一行和第四行的区别:签名能拦住"换固件",拦不住"读固件"。很多方案只做了签名,客户把设备拆开一看,算法和参数照样一览无余。这就是固件加密存在的意义。

04安全启动:一级验一级

Rockchip SDK 支持 FIT 与 AVB 两种方案。RV1126B 走 FIT——U-Boot 原生格式,把 Kernel、DTB、Ramdisk 打进一个包,用 RSA 签名保证完整性,结构清晰、调试直观。


图 2 安全启动流程。从 Maskrom 到 Kernel 统一用同一把 RSA 公钥完成校验,公钥哈希存在 OTP / eFuse 里。

整条链是串起来的,每一级只信上一级交给它的公钥:BootROM 用 OTP 里的哈希验证 Loader 的公钥,再用公钥验签名;Loader 用自带公钥验 OP-TEE 与 U-Boot;U-Boot 验 Kernel 与 DTB;最后 ramdisk 校验系统分区。中间任何一环被换掉,链就断在那一级。

验证不靠猜,启动日志会逐项打印结果。下面几行是关键:

## Checking uboot 0x40200000 ... sha256(145e7e73bc...) + OK
## Checking optee 0x48400000 ... sha256(3d874a02ad...) + OK
rollback index: 10 >= 0(min), OK

前两行说明固件验签通过,最后一行 rollback index 就是防回滚的证据:当前固件版本 10,设备允许的最低版本 0,通过。设备刷过新版后最低版本会抬升,再塞旧镜像进来就在这一行失败。

两个必须提前知道的坑:

① 烧写公钥哈希到 OTP 不可撤销。默认关闭烧 key 功能,此时 loader 可被替换;一旦烧录成功,安全启动永久使能。烧没烧成,看 bootargs 里有没有 fuse.programmed=1。

② 开启签名校验会连带关闭 U-Boot 命令行,量产固件按 Ctrl+C 也进不去。调试阶段务必先跑通再烧 key。

05三级安全等级:一机一密到什么程度

"一机一密"这句话经常被滥用。在 Rockchip 的体系里它有精确的三档定义,由 OTP 里的安全等级决定,核心差别在于用哪把密钥去派生 RPMB Key 与安全存储密钥。


图 3 三种安全等级的密钥派生路径。越往下,主控与存储的绑定越松,售后换板越方便,防护强度也越低。

这条必须写进产线 SOP:芯片只支持配置一次安全等级,之后无法修改。SDK 默认 level 0,如果已经烧了 level 0 的固件,再烧 level 1 或 level 2 的固件可能起不来。安全等级是产品定义阶段就要拍板的事,不是量产前再调的参数。

06系统完整性:校验防篡改,加密防读取

安全启动管的是"启动时",系统跑起来之后还得管。系统分区动辄十几个 GB,开机整体算一遍哈希不现实,所以走内核的 Device Mapper:按 4 KB 切片算哈希、多层迭代,生成 Hash-Map 与 Root-Hash,读哪块验哪块。


图 4 分层哈希结构。Root-Hash 先校验 Hash-Map,Hash-Map 再校验每个 4 KB 数据块,层层收敛。

两种方案按需求选一个:system-verity 做块级完整性校验,Hash-Map 附在镜像后面、Root-Hash 打包进 ramdisk,被改过的块一读就报 I/O 错误;system-encryption 做透明加密,写入自动加密、读取自动解密,密钥存在 RPMB 或 Security 分区。

加密方案的密钥处理更绕一层:编译阶段把密钥明文写进 misc 分区,首次开机由 ramdisk 读出、经 KeyBox 写入 RPMB,然后把 misc 里的明文擦掉。整个过程只发生一次,之后密钥只存在于安全存储里。


图 5 密钥处理流程。绿色为经 KeyBox 的 RPMB 操作,蓝色为 misc.img 操作;写入 RPMB 后立刻清理 misc 中的明文。

性能要说实话:Device Mapper 的校验是实时的,固件越大越划算,但存储读速度会略受影响。如果产品对连续写入吞吐敏感(比如多路录像),建议只对系统分区开校验,数据分区按需评估。

07密钥放哪,补丁怎么送进去

ARM TrustZone 把 SoC 划成两个世界:Linux 跑在非安全世界,即使被攻破也碰不到安全世界的数据;OP-TEE 和各类 TA 跑在安全世界,通过 SMC 指令切换。Rockchip 的 KeyBox 就是跑在 OP-TEE 里的密钥管理 TA,上层应用通过它读写密钥。

KeyBox 本身还做了运行限制——必须在 PID=1 的进程中运行、只在 ramdisk 阶段可用,防止被从 ramdisk 里单独"烤"出来用。TA 也支持版本号防回滚,定义版本号后不允许降级。

前面所有防护,最终都要回答一个问题:出了漏洞,你怎么把补丁送进去?如果升级通道本身不可信,前面做得再严,一次 OTA 就能全盘推翻。米尔基于RV1126B核心板用 CMS 标准结构给 OTA 镜像签名,和签 uboot、kernel 用同一组密钥,最终镜像是镜像体 + CMS 签名 + 32 字节 MD5三段。


图 6 安全 OTA 验签流程。MD5 或 CMS 任一环节失败,升级直接终止。

对做出口的客户,这条通道还有一层意义:CRA 要求制造商在整个支持期内免费提供安全更新,并且更新机制本身要安全。没有签名 OTA,"支持 5 年"只是一句承诺;有了签名 OTA,它才是可交付的能力。

08一张表:合规要求对应到哪项能力

09落地五步,顺序别乱

  1. 先定安全等级。强 2 / 强 1 / 弱 0,取决于设备会不会被拆、售后要不要换板。定完改不了,写进 PRD。生成并托管密钥。
  2. 生成之后私钥就该离开工程师的笔记本——进公司密钥库,双人保管,留审计记录。
  3. 调试阶段别烧 key。先跑通签名链路,确认每一级都验过,再开烧写功能。烧错不可逆。
  4. 再上完整性保护。校验或加密二选一,改分区表、扩 boot 到 128 MB,然后实测读写性能,别只看功能通不通。
  5. 最后打通 OTA。真的做一次"旧固件 → 新固件 → 试图刷回旧版"的验证。这一步过了,CRA 第 13 条才算有底。

相关推荐