← 首页 · 边缘工程 边缘工程

变电站边缘 AI:安全启动与运行时完整性手册

调研日期:约 2026-10-25(Asia/Shanghai)
定位:站端边缘盒 Secure Boot / verified boot、dm-verity 或只读根、TPM/TEE(若有) 与 Mender A/B、模型签名仓、VLAN/管理口、密钥保管的可执行衔接;不进保护网。
衔接:edge-ai-model-signstore-mender-cookbook.md、edge-ai-gstreamer-ota-cheatsheet.md、edge-ai-vlan-network-isolation.md、edge-ai-mqtt-hardening-offline-buffer.md、edge-ai-observability-logging-metrics.md、edge-ai-d60-d90-acceptance-checklist.md、edge-ai-substation-gateway-bom.md。
声明:本文为边缘 AI 工程安全基线,不替代继电保护二次安规、站端安防细则或业主未公开规程。板级熔丝/OTP/厂商 HAB 细节标 unknown,须 BSP 厂商与安监终审。公开方案引用:U-Boot Verified Boot、FIT dm-verity、Mender Secure Boot/A/B、OP-TEE 概念级。


0. 一句话结论与红线

结论:信任链从(可选)硬件 RoT → 验签 bootloader → 验签内核/FIT → dm-verity 或 A/B+哈希只读根 → Agent/模型仓 Ed25519 验签;系统轨走 Mender A/B,模型轨走数据分区签名仓,分轨回滚;生产关调试口、密钥不出盒、管理口进 MGMT VLAN,永不进保护二层。

红线 ID 禁止项 说明
S1 禁止未验签模型上线 无 sig / 错签 / model.ver≠权重 SHA → 拒激活;对齐 D60-06、MODEL_VERIFY_FAIL
S2 禁止生产开调试口无审计 UART/ADB/JTAG/串口 shell、未鉴权 SSH 密码登录默认关;临时开启须工单+审计日志+时限
S3 密钥不出盒 模型/OTA/设备身份私钥不落 rootfs、不进 Git、不出站外拷贝;设备侧仅公钥或 TEE/TPM 内私钥
S4 不替代二次安规 Secure Boot ≠ 保护装置安全;AI 资产禁止进 PROT VLAN / 跳闸回路(N1、D60-09)
S5 禁止「只签内核、不保根」当生产完成态 无 dm-verity / 只读根 / A/B 完整性策略时,rootfs 可被改写绕过 Agent 验签;试点可分期,D90 须有书面缺口或落地

1. 信任分层(RoT → 模型仓)

[硬件 RoT 可选]
  eFuse/OTP 公钥哈希 · TPM/fTPM · SoC HAB/EdgeLock(板级 unknown)
        │ 验签下一阶段
        ▼
[Bootloader]
  U-Boot Verified Boot:仅加载签名 FIT(kernel + dtb + initramfs/可选 filesystem)
        │
        ▼
[内核 / Rootfs]
  方案 A:dm-verity 只读根(Merkle 树;FIT 可带 dm-verity 元数据 → cmdline)
  方案 B:Mender A/B 双根 + 启动成功标记;镜像构建时嵌入内容哈希/签名
        │
        ▼
[用户态 Agent / 模型仓]
  预置 model-verify.pub;Ed25519 验 manifest + 文件 SHA;仅 current 可推理
层 做什么 失败行为 公开参考
L0 硬件 RoT ROM/SPL 校验下一阶段签名;可选测度量进 TPM PCR 不启动 厂商 Secure Boot 手册(具体熔丝位 unknown)
L1 Bootloader U-Boot 校验 FIT 签名;拒绝未授权镜像 停在 U-Boot / 回退备用槽(若配置) U-Boot Verified Boot
L2 内核+根 dm-verity 挂载只读根;或 A/B 槽位完整性 verity 失败→kernel panic/救援;A/B 失败→回滚 FIT dm-verity;Mender Secure Boot 文档
L3 Agent/模型 Ed25519 + model.ver=权重 SHA-256 拒切 current;上报 MODEL_VERIFY_FAIL 本系列签名仓手册

OP-TEE(概念级,可选):Trusted Application 验签加载;设备身份/解密密钥放安全世界;默认 TA 密钥必须换成自有密钥且私钥离线/HSM。无 TEE 的板卡可用「只读根 + 签名仓 + 禁调试」达试点基线;机密权重入 TEE 属增强项,unknown 是否本季必做。

分区建议(概念):boot(或 A/B FIT 分区)+ rootfsA + rootfsB + 独立 /data(模型/证据/缓冲) + 可选持久配置。社区实践强调:勿反复改写共享 boot 分区;FIT 与 rootfs 宜分槽(Mender+dm-verity 讨论见公开论坛)。精确扇区表 unknown,由 BSP 出。


2. 与 Mender A/B、模型分轨、回滚

轨 完整性手段 回滚路径 与安全启动关系
系统轨(Mender) 签名 Artifact;A/B 切换;可选 Secure Boot 签 kernel/GRUB/U-Boot 新槽启动/报到失败 → 自动回旧槽;不删 /data Mender 不替代 Secure Boot:须在镜像构建链中预先签好 boot 链组件后再打 Artifact(Mender Secure Boot)
模型轨(签名仓) Ed25519 manifest;current/previous 健康检查失败 → 切 previous + reload;不改 rootfs 公钥随系统镜像预置;权重只在 /data/models/store/<sha>/

硬规则(对齐签名仓手册):

  1. 未签名权重 禁止进 rootfs Artifact。
  2. 系统回滚不得误删已激活模型;模型回滚不得改写只读根。
  3. dm-verity 与 Mender 同用时,通常需 自定义 Update Module 下发「已签名 FIT + verity 根」——具体模块名/脚本 unknown,试点可先 A/B 只读挂载,再演进 verity。
  4. 坏签名模型演练:必须出现 MODEL_VERIFY_FAIL 且 rootfs 版本不变(D90-05)。
  5. 坏 rootfs Artifact 演练:回滚后推理仍可用当前模型(D60-07 / D90-05)。

构建侧注意:Mender 文档写明 Secure Boot 与 Mender 架构独立——客户端会原样下发 Artifact 内二进制;若 boot 链需要签名,签名必须发生在打 Artifact 之前的镜像构建步骤,否则设备侧 verified boot 会拒载“合法下发但不验签”的内核。Yocto/meta-mender 场景下 GRUB/U-Boot 相关二进制同样要纳入签名集合(细节随是否启用 grub-efi 而变,以当期 docs.mender.io 为准)。


3. 密钥与证书

用途 算法建议 私钥位置 设备持有 轮换要点
模型签名 Ed25519(与仓手册一致) 离线签名机 / HSM / 隔离 CI 仅 model-verify.pub(可多 key_id) 新钥进下一系统镜像;旧钥保留验签窗口 N 天;吊销列入 deny key_id
Mender / 系统 OTA 按 Mender Artifact 签名(RSA/ECDSA 等,以项目配置为准) 构建签名环境 客户端信任的服务端/Artifact 公钥 Artifact 签名钥与模型钥分轨、分保管;勿混用
设备身份(mTLS / MQTT) ECDSA P-256 或项目统一 理想:TPM/TEE;最低:/data 权限 600 + 不可导出备份策略 设备证书+私钥(不出站) 证书过期前轮换;吊销走 CRL/短时效;吊销列表同步通道 unknown(站内 PKI)
SSH 主机/用户 Ed25519 运维侧个人钥;主机钥首次生成后钉死指纹 authorized_keys;禁密码 人员离职删钥;主机指纹变更告警

保管红线:私钥不出盒、不进飞书/聊天、不进证据仓对象;生产构建机与日更模型签名机账号分离;CI 仅持短期令牌调 HSM(若有)。板载熔丝烧写步骤、是否双人授权:unknown,写入工单模板即可。

轮换节奏(可写入台账,日期自定):模型签名钥建议按季度或重大漏洞即时轮换;设备 mTLS 证书按站内 PKI 周期(常见 1 年,unknown 以业主为准);SSH 用户钥随人员变动即时删增。吊销后旧制品:已激活且哈希仍可信的模型可继续跑,新下载必须拒用被吊销 key_id。


4. 运行时加固

项 基线动作 验收证据
只读根 rootfs ro 或 dm-verity;可写仅 /data、/tmp(tmpfs)、必要 overlay findmnt/mount 截图;故意写根失败
不可变配置 推理阈值、VLAN 角色、公钥、Schema 版本进镜像或签名配置包;现场改动走审计工单 配置基线哈希;与事件 schema_ver 一致
SSH 仅密钥;PasswordAuthentication no;监听 MGMT 口/VLAN;限源 IP(堡垒) sshd_config 脱敏导出;从业务 VLAN 连 SSH 应失败
调试口 生产关 ADB/未鉴权 console;U-Boot 中断需口令或熔丝关闭(板级 unknown) 上电无开放 shell 录屏;例外工单号
审计日志 auth、sudo、模型激活/回滚、OTA 槽切换、SSH 登录写入本地只追加日志,并进可观测性流水(对齐可观测性手册) 故意错签/错 SSH 各一条可检索日志
网络 管理口 ≠ 相机/MQTT 业务口;OTA 仅白名单;零接入 PROT(VLAN 手册 N1–N3) 口别标签照片 + ACL 表

4.1 启动与运行时自检(建议开机脚本)

生产镜像可在 Agent 启动前做只读断言(失败则告警、默认不进 prod 推理通道):

  1. mount 显示 rootfs 为 ro 或 verity 设备;/data 可写。
  2. model-verify.pub 指纹与出厂台账一致(sha256sum 对比)。
  3. current 指向的 manifest 验签通过且 model.ver 等于主权重哈希。
  4. SSH:PasswordAuthentication no;监听地址仅 MGMT 网卡。
  5. 默认路由/防火墙:无通往 PROT 网段的路由;OTA 域名白名单非空。

以上检查结果写入本地审计日志与可选 MQTT telemetry(质量可标 ok/suspect),不得因自检失败去改保护侧任何对象。

4.2 回滚决策树(运维一页)

症状 先怀疑 动作 禁止
开机停在 U-Boot / 验签失败 错误 FIT、密钥未烧录、槽位写坏 切回上一启动槽或现场刷已知好 FIT(双人) 为“先跑起来”关闭 verified boot
新系统槽启动循环 Mender 未 commit、驱动不兼容 等自动回滚或人工标记旧槽 同时改模型软链“碰运气”
MODEL_VERIFY_FAIL 错签、缺文件、哈希漂移 保持 previous;查仓与 CI 签名机 手工拷未签名 .rknn 到 current
推理 OOM / 健康检查失败 模型过大或 Agent 回归 模型轨切 previous;系统轨不动 删 verity / 改 rw 根“腾地方”
无法 SSH 钥未登记或连错 VLAN 经 MGMT 堡垒;核 authorized_keys 临时开密码或把 SSH 暴露到 CAM

5. 两周落地清单 + 验收门禁

5.1 两周清单(可并行)

日 动作 产出
D1–2 盘点板卡:有无 Secure Boot/eFuse/TPM/TEE;确认 U-Boot/FIT 能力 《板级安全能力表》(unknown 列如实填)
D3–4 构建链:开启 FIT 签名验证(或等价);镜像嵌入 model-verify.pub 签名构建 SOP;公钥指纹
D5–6 rootfs:只读挂载或 dm-verity PoC;/data 独立分区 分区表 + mount 证据
D7–8 Mender A/B 与签名仓分轨演练(坏 Artifact / 坏模型各一次) 两份签字记录(对齐 D90-05)
D9–10 SSH 密钥化、关密码、MGMT 限源;关生产调试口 sshd/防火墙 diff
D11–12 密钥台账:模型/OTA/设备/SSH 四类;轮换与吊销草案 密钥台账 xlsx(无私钥)
D13–14 对照下方门禁自测;缺口写入 D90 风险清单 本文件勾选表

5.2 门禁(对齐 D60/D90、签名仓、VLAN)

ID 描述 级别 □
SB-01 未签名或错签模型无法成为 current;有 MODEL_VERIFY_FAIL(D60-06) 否决 □
SB-02 系统 OTA 与模型轨分家;双回滚演练通过(D60-07、D90-05) 否决 □
SB-03 生产 SSH 仅密钥、禁密码;管理口在 MGMT,非 CAM/MQ 混用(N3) 否决 □
SB-04 无 AI 资产进保护二层(D60-09 / N1) 否决 □
SB-05 rootfs 只读或 verity;可写隔离在 /data 否决(D90)/ 警告(D60 可记缺口) □
SB-06 模型/OTA 私钥不在设备、不在仓库;公钥指纹可审计(S3) 否决 □
SB-07 调试口策略成文:默认关 + 例外工单 + 审计 警告→D90 升否决 □
SB-08 boot 链验签(U-Boot verified / 厂商 Secure Boot)至少 PoC 或书面板级 unknown+排期 警告(无 RoT 板)/ 否决(宣称 Secure Boot 却未开) □

6. 公开引用与 unknown

主题 公开入口 本文用法
U-Boot Verified Boot docs.u-boot-project.org …/verified-boot.html L1 验签 FIT
FIT dm-verity …/fit/dm-verity.html L2 只读根 cmdline 生成
Mender ↔ U-Boot / Secure Boot docs.mender.io …/u-boot 、…/secure-boot A/B 与签名构建衔接;不替代 Secure Boot
OP-TEE optee.readthedocs.io(概念) 可选 TEE/密钥;替换默认 TA 钥
模型 Ed25519 仓 本系列 edge-ai-model-signstore-mender-cookbook.md L3

明确 unknown(勿臆造):具体 SoC 熔丝位与烧写命令、厂商 HAB/OP-TEE HUK 实现、站内 PKI CRL 通道、Mender+verity 自定义 Update Module 成品名、U-Boot 关闭 console 的板级补丁。


7. 与系列文档的一页关系

Secure Boot / verity(本文)
        │ 预置公钥、只读根
        ▼
Mender A/B ←→ 模型签名仓(分轨)
        │                │
        ▼                ▼
   VLAN MGMT/OTA     Agent 验签 → 推理
        │                │
        └──── 禁止进 PROT / 跳闸 ────┘

验收总表见 edge-ai-d60-d90-acceptance-checklist.md;网络红线见 VLAN 手册;事件与 model.ver 见 Schema 验收。


全文完。仅落盘;板级细节以 BSP/安监终审为准。

← 变电站边缘 AI:告警防抖、去重与抑制策略手册(可执行) 首页 变电站边缘 AI:相机脏污与画质自检手册(可执行) →