面向CRA与IEC 62443的四层防线-米尔基于RV1126B核心板
2026年10月29日 20:27 发布者:swiftman
一台装在输电铁塔上的监拍装置,外壳上只有四颗防拆螺丝。谁把它拆下来带回实验室,eMMC 焊下来就是一份完整的固件副本——算法、模型、标定参数、辛苦调出来的图像参数,全在里面。这是安防与电力行业二十年的老问题,过去靠"抄了也没用"糊过去。2026 年 9 月 11 日起,欧盟《网络韧性法案》的漏洞与事件报告义务已经生效;2027 年 12 月 11 日全面适用之后,"固件能不能被读出来"从商业风险变成了监管问题。
米尔基于RV1126B核心板在这件事上有一张别人少提的牌:OTP 里预留了 16 字节固件加密密钥。配合签名启动与分区加密,一台设备可以做到——固件既改不了,也读不出。

核 心 结 论
一条链 BootROM 读 OTP 里的公钥哈希 → 验 Loader → 验 OP-TEE 与 U-Boot → 验 Kernel 与 DTB → ramdisk 校验系统分区。任何一级被替换,设备起不来。
两把锁 签名解决"改不了",固件加密解决"读不出"。前者是标配,后者是 RV1126B 相对同代平台多出来的那一把。
一条通道 CMS 签名 OTA,升级包被改一个字节就装不进去——这是"支持期内能修漏洞"的技术前提。
01 先分清你的产品走哪条路
CRA 把含数字元素的产品分成三档,合规成本差一个量级。这一档定错,后面所有工作都白做。
类别 | 典型产品 | 合规路径
普通产品 | 工业相机、电力监拍装置、机器人视觉模组、边缘分析盒 | 自我评定,技术文档 + EU 符合性声明 + CE
重要产品 Class I | 具备安全功能的智能家居产品,明确包括智能门锁、安防摄像头、婴儿监视器、报警系统 | 完整适用协调标准时才可自评,否则走公告机构(模块 B+C 或 H)
关键产品 | 硬件安全模块、安全芯片、智能卡、智能电表网关 | 按欧洲网络安全认证框架(EUCC)取得认证
表 1 CRA 三档分类。摄像头是否落入 Class I,看的是产品主要用途,不是某一项功能。
这里有个容易被忽略的细节:同样是摄像头,命运不同。家用安防摄像头、可视门铃、婴儿监视器被 CRA 附件三第 17 项明确点名,属于 Class I;而装在变电站、风机、产线上的工业监拍设备,走普通产品路径。但两条路的技术底座是同一套——证明固件可信、系统未篡改、数据有保护、漏洞修得进去,差别只在证据多严、由谁来看。
时间表:2024-12-10 生效 → 2026-09-11 第 14 条报告义务适用(24 小时预警、72 小时通知、补救后 14 天最终报告,已上市产品同样受管)→ 2027-12-11 全面适用。罚则上限 1500 万欧元或全球年营业额 2.5%。
02 四层防线,一张图看完
RV1126B 的安全体系不是"有没有加密"这种单点问题,而是四层叠加、一条链贯穿。下图是这套体系的整体结构:底层是 OTP 与安全硬件,往上依次是安全存储、安全启动、系统完整性保护。

图 1 四层安全架构。从 OTP 根信任出发,逐级向上建立信任,最终由 dm-verity / dm-crypt 保护系统分区。
装在野外、车里、产线边上的设备,威胁一大半来自物理接触。机房里的设备怕网络攻击,无人值守的设备怕的是"被拆开":
威胁 | 现实场景 | 靠什么防
固件被读出 | 设备被带回,eMMC 焊下来直接读,算法与标定参数全暴露 | 固件加密
固件被替换 | 换成带后门的镜像,设备成为内网跳板 | 签名启动
版本降级 | 刷回带已知漏洞的旧固件,绕过已修复的问题 | 防回滚版本号
密钥被提取 | 从文件系统或分区里翻出加密密钥、设备证书 | TEE 与安全存储
表 2 四类典型威胁与对应手段。前两类必须"签名 + 加密"同时做,缺一个都留着口子。
注意第一行和第四行的区别:签名能拦住"换固件",拦不住"读固件"。很多方案只做了签名,客户把设备拆开一看,算法和参数照样一览无余。这就是固件加密存在的意义。
03 安全启动:一级验一级
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。
04 三级安全等级:一机一密到什么程度
"一机一密"这句话经常被滥用。在 Rockchip 的体系里它有精确的三档定义,由 OTP 里的安全等级决定,核心差别在于用哪把密钥去派生 RPMB Key 与安全存储密钥。

图 3 三种安全等级的密钥派生路径。越往下,主控与存储的绑定越松,售后换板越方便,防护强度也越低。
等级 | 主控与存储 | 换主控之后 | 适用
强安全 2 | 强绑定,一机一密 | 必须同步更换 eMMC,并擦除其他安全存储数据 | 防拆机、防 eMMC 移植
强安全 1 | 弱绑定,由 OEM HUK 派生 | 烧入相同 OEM HUK,原 eMMC 可继续用 | 有售后换板需求
弱安全 0 | 不绑定 | 原 eMMC 可直接沿用 | 开发调试、内部验证
表 3 三级安全等级。Hard HUK 由 Device Root Key 派生、一机一密;OEM HUK 由开发者定义并烧入;Soft HUK 全平台同一把。
这条必须写进产线 SOP:芯片只支持配置一次安全等级,之后无法修改。SDK 默认 level 0,如果已经烧了 level 0 的固件,再烧 level 1 或 level 2 的固件可能起不来。安全等级是产品定义阶段就要拍板的事,不是量产前再调的参数。
05 系统完整性:校验防篡改,加密防读取
安全启动管的是"启动时",系统跑起来之后还得管。系统分区动辄十几个 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 的校验是实时的,固件越大越划算,但存储读速度会略受影响。如果产品对连续写入吞吐敏感(比如多路录像),建议只对系统分区开校验,数据分区按需评估。
06 密钥放哪,补丁怎么送进去
ARM TrustZone 把 SoC 划成两个世界:Linux 跑在非安全世界,即使被攻破也碰不到安全世界的数据;OP-TEE 和各类 TA 跑在安全世界,通过 SMC 指令切换。Rockchip 的 KeyBox 就是跑在 OP-TEE 里的密钥管理 TA,上层应用通过它读写密钥。
介质 | 位置与容量 | 特性
RPMB | eMMC 内部独立分区,通常 512 KB | 硬件级防重放、防回滚,容量有限;适合存密钥与计数器
Security 分区 | eMMC 用户分区,1 MB 以上 | 空间更大,由 TEE 加密保护;适合证书、标定数据、授权信息
表 4 两种安全存储介质。eMMC 方案选 RPMB,Flash 方案选 Security 分区。
KeyBox 本身还做了运行限制——必须在 PID=1 的进程中运行、只在 ramdisk 阶段可用,防止被从 ramdisk 里单独"烤"出来用。TA 也支持版本号防回滚,定义版本号后不允许降级。
前面所有防护,最终都要回答一个问题:出了漏洞,你怎么把补丁送进去?如果升级通道本身不可信,前面做得再严,一次 OTA 就能全盘推翻。RV1126B 用 CMS 标准结构给 OTA 镜像签名,和签 uboot、kernel 用同一组密钥,最终镜像是镜像体 + CMS 签名 + 32 字节 MD5三段。

图 6 安全 OTA 验签流程。MD5 或 CMS 任一环节失败,升级直接终止。
对做出口的客户,这条通道还有一层意义:CRA 要求制造商在整个支持期内免费提供安全更新,并且更新机制本身要安全。没有签名 OTA,"支持 5 年"只是一句承诺;有了签名 OTA,它才是可交付的能力。
07 一张表:合规要求对应到哪项能力
CRA 关注点 | IEC 62443 对应 | MYC-YR1126B 落地手段
只启动经授权的固件 | 4-2 FR3 系统完整性 | OTP 公钥哈希 + FIT 签名,BootROM → SPL → U-Boot → Kernel 四级验签
固件不可被读出复制 | 4-2 FR4 数据保密性 | 固件加密密钥,密文落盘,拆下 eMMC 也读不出算法
不能降级到有漏洞版本 | 4-1 SM-11 安全更新管理 | 防回滚版本号,uboot / boot / recovery 分别设最低版本
系统分区不可篡改 | 4-2 FR3 | dm-verity 4 KB 分片校验,Hash-Map 附镜像后,Root-Hash 进 ramdisk
静态数据加密 | 4-2 FR4 | dm-crypt 透明加密,密钥首启转存 RPMB 后擦除明文
密钥不可被提取 | 4-2 FR1 / FR4 | OP-TEE 双世界隔离 + KeyBox TA,PID=1 且仅 ramdisk 可用
升级通道可信 | 4-1 SM-11 | CMS 签名镜像,设备端用内置公钥验签
组件透明与漏洞响应 | 4-1 SM-1 / SM-9 / SM-13 | BSP 版本 + 内核配置 + 第三方组件清单,作为 SBOM 输入;配套安全配置指南
表 5 合规关注点与技术能力的对应关系。62443 引用 4-1(安全开发生命周期)与 4-2(组件技术安全要求)的实践域,具体条款号以标准原文为准。
08 落地五步,顺序别乱
[*]先定安全等级。强 2 / 强 1 / 弱 0,取决于设备会不会被拆、售后要不要换板。定完改不了,写进 PRD。
[*]生成并托管密钥。生成之后私钥就该离开工程师的笔记本——进公司密钥库,双人保管,留审计记录。
[*]调试阶段别烧 key。先跑通签名链路,确认每一级都验过,再开烧写功能。烧错不可逆。
[*]再上完整性保护。校验或加密二选一,改分区表、扩 boot 到 128 MB,然后实测读写性能,别只看功能通不通。
[*]最后打通 OTA。真的做一次"旧固件 → 新固件 → 试图刷回旧版"的验证。这一步过了,CRA 第 13 条才算有底。
