# 生产级 MQTT 安全检查清单

请在上线前、策略或身份发生重大变更后，以及事件演练期间使用本清单。为每一项记录负责人、证据链接和复查日期。不要在本文件中粘贴任何仍有效的凭据。

部署环境：──────────────────── 负责人：──────────────────── 复查日期：────────────────────

## 传输安全

- [ ] 生产客户端使用 MQTT over TLS 或安全 WebSocket；生产网络无法访问明文监听器。
- [ ] 客户端校验 Broker 证书链、主机名、有效期和预期信任锚点，且不能静默回退到不安全模式。
- [ ] Broker 使用当前仍受支持的 TLS 配置，并有成文的服务端证书续期流程。
- [ ] 在证书到期或根证书变化前，可以安全更新设备时钟和信任存储。
- [ ] 使用过期、不受信任或主机名不匹配的证书测试时，客户端会安全失败。

## 设备身份

- [ ] 每台物理设备、网关和后端客户端都使用唯一身份和凭据，并能关联到资产清单。
- [ ] 固件、源码、电子表格或共享镜像中不包含全设备群通用的密码、私钥或 Token。
- [ ] Broker 支持时，将 Client ID 和会话所有权绑定到已认证身份。
- [ ] 静态密钥或私钥得到妥善保护；威胁模型要求时使用硬件安全存储。
- [ ] 根据设备的存储、续期、时钟和恢复条件选择用户名密码、mTLS 或 Token 认证。

## Topic 授权

- [ ] 默认结果为拒绝；每项发布和订阅权限都有成文的工作负载需求。
- [ ] 分别审查发布和订阅；使用保留消息或共享订阅时也将其纳入审查。
- [ ] Topic Filter 将租户、站点、设备和角色边界绑定到已认证身份，而不是依赖载荷中由用户提供的字段。
- [ ] 现场设备不拥有宽泛的 `#` 权限；所有通配符均有依据、范围受限且经过测试。
- [ ] 正面测试覆盖预期的遥测和指令；负面测试覆盖同级设备、其他租户、宽泛通配符和未授权指令路径。
- [ ] 变更策略模板时，审查对所有关联设备的影响。

## 凭据轮换与吊销

- [ ] 清单记录凭据类型、签发时间、到期时间、负责人、策略、最后使用时间和恢复路径。
- [ ] 计划轮换时，替代凭据权限相同或更窄，且重叠窗口短暂并可测量。
- [ ] 切换前，使用完整 TLS 校验以及正面和负面 Topic 测试验证新凭据。
- [ ] 吊销操作会禁用服务端身份、终止现有会话，并验证重连和发布均失败。
- [ ] 从设备和密钥存储中删除旧凭据；吊销后的身份再次出现时触发告警。
- [ ] 怀疑凭据泄露时跳过计划重叠：先吊销并保全证据，再重新建立设备信任并签发替代凭据。

## 网络控制

- [ ] Broker 入口仅对必要端口、网络、私有路径或获准网关开放。
- [ ] 根据风险对设备、Broker、控制平面和管理网络进行分段。
- [ ] 连接、认证、发布和订阅速率限制与设备群的正常行为相匹配。
- [ ] DNS、路由、代理和防火墙变更受控且可审计。
- [ ] 已针对中断、重连风暴和慢消费者测试容量与重连行为。

## 监控与审计

- [ ] 日志包含已认证身份、Client ID、来源、结果和时间戳，但不记录有效密钥。
- [ ] 告警覆盖认证失败、Topic 拒绝、异常通配符、重连突发、流量异常和已吊销身份的使用。
- [ ] 凭据签发与吊销、策略变更和运维操作均可审计；需要时将日志导出到可变控制平面之外。
- [ ] 已明确安全日志的时间同步、保留期、访问控制与隐私要求。
- [ ] 监控能够区分设备、Broker、控制平面和网络故障，帮助响应人员定位失守边界。

## 事件响应

- [ ] 指定响应人员能够吊销单台设备，而无需轮换整个设备群或中断其他设备。
- [ ] 处置手册覆盖遏制、终止活跃会话、保全证据、分析范围、替换凭据和验证恢复。
- [ ] 恢复凭据和特权访问与日常运维账户分离，并已安全测试。
- [ ] 团队能够识别被攻陷身份可访问的所有策略、Topic、保留消息和下游消费者。
- [ ] 按计划完成桌面推演或技术吊销演练，为发现的问题指定负责人并重新验证。

## 证据与验收

- [ ] 分别记录威胁、控制、剩余风险和产品或平台限制。
- [ ] 配置示例已在隔离环境中执行，或已明确标注为示意。
- [ ] 截图、测试夹具、工单和清单均不包含有效凭据或生产载荷。
- [ ] 安全、运维和工作负载负责人已接受剩余风险，并设定下次复查日期。

一手资料：[OASIS MQTT 5.0 安全章节](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html#_Toc3901251)、[Eclipse Mosquitto Broker 配置参考](https://mosquitto.org/man/mosquitto-conf-5.html)、[Eclipse Mosquitto ACL 文件插件](https://mosquitto.org/documentation/plugins/acl-file/)、[AWS IoT Lens 身份与访问管理](https://docs.aws.amazon.com/wellarchitected/latest/iot-lens/identity-and-access-management.html)与 [OWASP 网络分段速查表](https://cheatsheetseries.owasp.org/cheatsheets/Network_Segmentation_Cheat_Sheet.html)。
