2. 设备Shadow数据资产识别与分类分级
设备影子(Device Shadow)是物联网平台为每台设备维护的一份 JSON 文档,它把设备的“期望状态”和“上报状态”解耦,使应用端不必关心设备是否在线。正因为它同时承载了设备身份、运行状态、控制意图和业务属性,影子文档本身就是一类高价值的数据资产。本节要解决的问题是:如何从影子文档的字段中识别出真正的数据资产,并依据敏感程度完成分类分级。
一、影子文档的字段结构
以 AWS IoT 风格的影子文档为例,其顶层通常包含 state、metadata、version、timestamp 四类节点。state 下又分为 desired(期望值,由应用下发)、reported(上报值,由设备上报)和 delta(差异值,由平台自动计算)。metadata 记录每个字段的最后更新时间戳,version 用于乐观锁并发控制。
{
"state": {
"desired": { "power": "on", "targetTemp": 26 },
"reported": { "power": "off", "targetTemp": 24, "gps": "31.23,121.47" },
"delta": { "power": "on", "targetTemp": 26 }
},
"metadata": {
"desired": { "power": {"timestamp": 1718000001} },
"reported": { "gps": {"timestamp": 1718000005} }
},
"version": 42,
"timestamp": 1718000005
}
从数据安全视角看,这些字段并非同等重要。version、timestamp 属于控制类元数据,泄露风险低;desired 反映控制意图,可能暴露业务策略;reported 中的 gps、serialNumber、firmwareVersion 等则可能直接构成个人敏感信息或设备指纹。因此识别资产的第一步,是把字段按语义归类,而不是按 JSON 层级归类。
二、敏感数据判定标准
判定一个影子字段是否敏感,不能只看字段名,而应结合三个维度:可识别性、可关联性和可推断性。
- 可识别性:字段能否直接或间接指向一个自然人、一台具体设备或一个受保护实体。例如
serialNumber可直接定位设备,gps可定位使用者。 - 可关联性:字段能否与其他数据结合形成更完整的画像。单独一个
power状态不敏感,但若与gps、timestamp结合,就能推断出“某人在某时段在家”这类信息。 - 可推断性:字段是否隐含未直接暴露的信息。例如
firmwareVersion可推断设备是否存在已知漏洞,targetTemp可推断用户偏好。
基于这三个维度,可以给出一个可操作的判定规则:若字段满足“可识别性 = 是”,则至少为 L3;若同时满足“可关联性 = 是”且涉及个人或关键基础设施,则升为 L4;若仅满足“可推断性 = 是”,则定为 L2;三者皆不满足,则为 L1。
三、分级方法与落地示例
分级不是一次性动作,而应嵌入影子文档的建模阶段。推荐做法是:在设备物模型(TSL)定义时,为每个属性附加 sensitivity 标签,平台在生成影子文档时自动继承该标签。这样分级结果与字段定义同源,避免后期人工补标。
| 影子字段 | 资产类别 | 判定依据 | 等级 | 处置要求 |
|---|---|---|---|---|
| state.reported.gps | 位置与轨迹 | 可识别 + 可关联 | L4 | 加密存储、访问审计、对外脱敏 |
| state.reported.serialNumber | 设备身份 | 可识别 | L3 | 授权访问、日志留痕 |
| state.desired.targetTemp | 控制意图 | 可推断 | L2 | 组织内使用 |
| state.reported.power | 运行状态 | 不可识别 | L1 | 可公开 |
| metadata.*.timestamp | 控制元数据 | 不可识别 | L1 | 可公开 |
| version | 控制元数据 | 不可识别 | L1 | 可公开 |
state.reported.gps.lat 与 state.reported.gps.lng 应分别判定,因为纬度与经度的敏感程度可能因业务场景不同而不同。
四、常见误区与校验
第一个误区是“只按字段名判定”。不同厂商对同一语义可能使用不同命名,例如 loc、position、coord 都可能表示位置,仅靠关键词匹配会漏判。第二个误区是“忽略 delta 节点”。delta 由平台自动生成,内容与 desired 高度相关,但很多团队在分级时只处理 desired 和 reported,导致 delta 成为分级盲区。第三个误区是“分级后不校验”。建议在影子文档写入前增加一道校验:若字段携带 sensitivity=L4 标签,则必须走加密通道并记录审计日志,否则拒绝写入。
完成识别与分级后,影子文档的每个字段都应具备明确的资产标签和处置策略。这为后续的访问控制、加密存储和审计追踪提供了直接依据,也是设备 Shadow 数据安全工程从“看得见”走向“管得住”的关键一步。