3. 制造安全威胁建模与风险分析

密钥注入环节是设备身份可信的起点,也是制造安全中最容易被“绕过”的一环。很多团队把注意力放在云端密钥管理和设备端加密算法上,却忽略了密钥在产线上从生成到写入芯片的这段物理与逻辑路径。本节围绕密钥注入环节,建立一套可落地的威胁建模与风险分析方法:先识别资产,再梳理威胁来源与攻击面,然后用 STRIDE 和攻击树把风险结构化,最后结合产线真实风险场景给出判断依据。

一、资产识别:不只是“密钥本身”

在密钥注入场景中,资产识别常被简化为“密钥”,但真正需要保护的资产至少包括四类。第一类是密钥材料:设备私钥、对称密钥、根密钥、会话密钥,以及它们的派生种子。第二类是密钥的可用状态:密钥是否已注入、是否已激活、是否已绑定设备唯一标识、是否已锁定不可导出。第三类是注入过程数据:注入工单、密钥索引、设备序列号与密钥的绑定关系、注入日志、操作员身份与时间戳。第四类是注入基础设施:密钥注入服务器、HSM、产线工控机、烧录器、测试夹具、固件与注入脚本。

资产识别的关键是给每个资产标注三个属性:机密性(泄露后果)、完整性(被篡改后果)、可用性(中断后果)。例如,设备私钥泄露会导致设备身份被克隆;注入日志被篡改会导致无法追溯哪台设备被注入了错误密钥;注入服务器不可用会导致整条产线停线。这三个属性的差异,直接决定后续威胁建模的优先级。

二、威胁来源与攻击面分析

密钥注入环节的威胁来源可分为四类:外部攻击者(通过供应链、代工厂、维修渠道接触产线)、内部恶意人员(操作员、维护工程师、临时工)、内部非恶意人员(误操作、配置错误、流程跳过)、环境与系统故障(断电、网络抖动、HSM 故障、固件缺陷)。这四类来源对应的攻击面并不相同。

攻击面可以从“数据流经的节点”来梳理。典型密钥注入数据流为:密钥管理系统生成密钥 → HSM 保护导出 → 注入服务器接收并缓存 → 工控机/烧录器读取 → 通过调试接口或安全通道写入芯片 → 芯片返回确认 → 日志回传。每一个节点都是一个攻击面:密钥管理系统可能被越权访问;HSM 导出接口可能被滥用;注入服务器内存可能被转储;工控机可能被植入恶意脚本;调试接口可能被旁路;日志回传可能被篡改或丢失。

密钥注入环节:资产—攻击面—威胁来源关系图 密钥管理系统 生成/派生密钥 HSM 保护导出/签名 注入服务器 缓存/分发/审计 工控机/烧录器 执行注入脚本 芯片/设备 写入并锁定 攻击面① 越权访问/API滥用 攻击面② 导出接口滥用 攻击面③ 内存转储/缓存泄露 攻击面④ 脚本篡改/调试旁路 攻击面⑤ 接口探测/回读攻击 外部攻击者 供应链渗透 / 代工厂接触 维修渠道 / 远程接口 内部恶意人员 操作员 / 维护工程师 临时工 / 离职人员 内部非恶意人员 误操作 / 配置错误 流程跳过 / 测试密钥混用 环境与系统故障 断电 / 网络抖动 HSM故障 / 固件缺陷 受保护资产层 密钥材料 私钥/对称密钥/根密钥 派生种子 密钥可用状态 已注入/已激活/已绑定 已锁定不可导出 注入过程数据 工单/索引/绑定关系 日志/操作员/时间戳 注入基础设施 服务器/HSM/工控机 烧录器/夹具/脚本

三、STRIDE 方法在密钥注入环节的落地

STRIDE 是微软提出的威胁分类框架,包含六类:Spoofing(仿冒)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、Denial of Service(拒绝服务)、Elevation of Privilege(权限提升)。在密钥注入场景中,每一类都有具体对应。

STRIDE 类别 密钥注入环节的具体威胁 典型后果
仿冒 伪造注入服务器身份,向烧录器下发假密钥 设备被注入攻击者可控密钥
篡改 修改注入脚本或固件,替换密钥索引 密钥与设备绑定关系错乱
抵赖 注入日志缺失或可被删除,操作员否认操作 无法追溯责任,审计失效
信息泄露 注入服务器内存转储、调试口回读密钥 密钥批量泄露,设备可被克隆
拒绝服务 HSM 故障、网络中断导致注入停线 产线停摆,交付延期
权限提升 操作员越权访问密钥管理接口 可导出或覆盖高价值密钥

使用 STRIDE 时,建议按数据流逐节点过一遍,而不是只做一次全局分类。例如在“注入服务器”节点,重点看信息泄露和权限提升;在“烧录器”节点,重点看篡改和仿冒;在“日志回传”节点,重点看抵赖和篡改。这样得到的威胁列表更贴近实际,也更容易映射到具体控制措施。

四、攻击树:把“怎么被攻破”画出来

攻击树适合表达“攻击者要达到某个目标,有哪些路径”。以“获取设备私钥”为根目标,可以拆出三条主要路径:路径 A 从注入服务器内存转储获取明文密钥;路径 B 通过调试接口回读芯片内密钥;路径 C 伪造注入服务器向烧录器下发攻击者密钥。每条路径再继续分解为具体条件,例如路径 A 需要“获得服务器登录权限”且“密钥在内存中以明文存在”且“未启用内存加密或进程隔离”。

攻击树的价值在于:它把“风险”从一句“密钥可能泄露”变成可检查的条件集合。每个叶子节点都可以对应一个控制措施:内存加密、调试口熔断、双向证书认证、注入脚本签名、日志上链等。评估时,可以给每个叶子节点标注“利用难度”和“现有控制是否覆盖”,从而决定优先补哪一块。

五、产线真实风险案例与判断依据

以下场景来自制造安全实践中常见的风险模式,参数为示例性假设,用于说明判断逻辑。

案例一:测试密钥混入量产。某产线在试产阶段使用测试密钥,正式量产时未彻底清除测试密钥配置。结果前 200 台设备被注入测试密钥,且测试密钥与量产密钥共用同一密钥索引。判断依据:注入日志中密钥索引字段与量产工单不一致;设备首次上线时云端校验失败。控制措施:测试密钥与量产密钥使用不同索引段,注入前强制校验工单与密钥索引的绑定关系。

案例二:调试接口未熔断。某批次设备在注入完成后未及时熔断调试接口,攻击者通过调试口回读密钥。判断依据:注入后芯片安全状态寄存器未置位;产线抽检时发现调试口仍可访问。控制措施:注入完成后立即执行熔断指令,并在日志中记录熔断状态;抽检时读取安全状态寄存器确认。

案例三:注入服务器缓存未清理。注入服务器为提高效率缓存了密钥明文,且缓存目录权限过宽。判断依据:服务器上存在未加密的临时密钥文件;操作员账户可读取该目录。控制措施:密钥仅在 HSM 内以密文形式存在,注入服务器不落盘明文;缓存使用内存加密并设置短生命周期。

六、风险分析的最小可执行流程

如果要在一条产线上快速开展密钥注入威胁建模,可以按以下顺序执行,不需要一次做全,但每一步都要留下可检查的记录。

  1. 画数据流:从密钥生成到芯片写入,标出每个节点、接口和存储位置。
  2. 标资产:在每个节点上标注涉及的密钥材料、状态数据、日志和基础设施。
  3. 过 STRIDE:逐节点填写六类威胁,形成威胁清单。
  4. 建攻击树:选 1~2 个最高价值目标,拆出攻击路径和叶子条件。
  5. 定控制:每个叶子条件对应一个控制措施,标注“已覆盖/部分覆盖/未覆盖”。
  6. 留证据:注入日志、熔断状态、密钥索引绑定关系、操作员身份,必须可追溯、可验证。

判断风险分析是否有效,不看文档厚度,而看三个问题能否回答:密钥在哪个节点以明文存在过?谁能接触到这个节点?如果这个节点被攻破,能否从日志中发现并追溯到具体设备?如果这三个问题都有明确答案,密钥注入环节的威胁建模才算真正落地。