3、ThingsBoard 安全架构概览:通信端口、默认安全配置与传输层风险分析
理解 ThingsBoard 的安全架构是进行有效加固的前提。本章将深入剖析平台的通信端口矩阵、开箱即用的默认安全配置,并系统性地分析传输层面临的主要安全风险,为后续 HTTPS 与证书配置打下坚实基础。
3.1 核心通信端口与协议矩阵
ThingsBoard 作为物联网平台,需要同时处理设备数据、用户界面访问以及集群内部通信。下表列出了默认安装下的关键端口及其用途:
| 端口号 | 协议 | 绑定接口 | 默认安全状态 | 用途说明 |
|---|---|---|---|---|
| 8080 | HTTP | 0.0.0.0 | 明文(不安全) | Web UI 与 REST API 入口(默认未加密) |
| 443 | HTTPS | 0.0.0.0 | 需手动配置证书 | Web UI 与 REST API 加密入口(生产环境推荐) |
| 1883 | MQTT | 0.0.0.0 | 明文(不安全) | 设备通过 MQTT 协议上报数据(默认未加密) |
| 8883 | MQTTS | 0.0.0.0 | 需手动配置证书 | 设备通过加密 MQTT 连接(生产环境推荐) |
| 5683 | CoAP | 0.0.0.0 | 明文(不安全) | 设备通过 CoAP 协议接入(默认未加密) |
| 5684 | CoAPS | 0.0.0.0 | 需手动配置证书 | 设备通过加密 CoAP 连接 |
| 7070 | HTTP | localhost | 仅本地访问 | Edge 边缘计算管理 API(默认绑定本地回环) |
| 9092 | TCP | 内网 | 无认证(需网络隔离) | Kafka 内部消息总线(集群组件间通信) |
⚠️ 风险提示: 默认情况下,ThingsBoard 的 Web 界面(8080)和设备接入端口(1883、5683)均以明文方式通信。若直接暴露于公网,攻击者可通过中间人攻击(MITM)窃取凭据、篡改设备指令或劫持会话。
3.2 默认安全配置基线
ThingsBoard 在安装后提供了一套基础安全配置,但远未达到生产环境要求。以下是默认配置的关键项分析:
- 系统管理员账户: 默认用户名
sysadmin@thingsboard.org,密码sysadmin。首次登录后必须立即修改。 - 租户管理员账户: 默认用户名
tenant@thingsboard.org,密码tenant。同样需要强制修改。 - JWT 令牌: 默认使用
thingsboardDefaultSigningKey作为签名密钥。该密钥在 GitHub 仓库中公开,攻击者可伪造任意令牌。 - SSL/TLS: 默认未启用。所有 HTTP、MQTT、CoAP 端口均以明文运行。
- 数据库: 默认使用 PostgreSQL 或 Cassandra,监听
localhost:5432或localhost:9042,仅允许本地连接。 - 日志级别: 默认日志级别为
INFO,可能记录敏感信息(如设备令牌)。
🔑 关键动作: 在完成基础安装后,应优先执行以下操作:① 修改所有默认密码;② 更换 JWT 签名密钥;③ 规划证书部署方案(本章后续重点)。
3.3 传输层安全风险分析
传输层是攻击者最容易介入的环节。以下从三个维度分析 ThingsBoard 面临的传输层风险:
3.3.1 中间人攻击(MITM)
当设备或浏览器与 ThingsBoard 之间使用明文协议(HTTP、MQTT、CoAP)时,攻击者可在网络路径上部署嗅探工具,截获:
- 设备凭据: 访问令牌(Access Token)、X.509 证书、MQTT 用户名/密码。
- 遥测数据: 传感器读数、GPS 坐标、业务敏感数据。
- 控制指令: 对设备的 RPC 调用,如开关阀门、修改参数。
3.3.2 端口扫描与服务指纹识别
攻击者通过扫描开放端口(如 8080、1883)即可确认 ThingsBoard 的存在。随后可利用已知漏洞(如旧版 Log4j 漏洞)或默认配置弱点发起针对性攻击。
3.3.3 会话劫持与重放攻击
在未启用 HTTPS 的情况下,用户的 JWT 令牌通过明文传输。攻击者捕获令牌后可直接冒充用户执行管理操作。此外,未加密的 MQTT 消息可被重放,导致设备执行重复指令。
3.4 安全架构纵深防御原则
针对上述风险,ThingsBoard 的安全架构应遵循纵深防御原则,在多个层面建立防护:
- 传输层加密: 所有外部通信链路强制使用 TLS/SSL(HTTPS、MQTTS、CoAPS),这是本章的核心目标。
- 网络层隔离: 将 ThingsBoard 部署在私有网络或 VPC 中,通过反向代理(Nginx、HAProxy)暴露必要端口,屏蔽内部组件端口(如 Kafka、Zookeeper)。
- 身份与访问管理: 使用强密码策略、多因素认证(MFA)以及基于角色的访问控制(RBAC)。
- 密钥与证书管理: 定期轮换 JWT 签名密钥、设备访问令牌以及 TLS 证书。
- 审计与监控: 启用详细审计日志,监控异常连接尝试和证书过期事件。
💡 最佳实践: 在规划证书配置前,建议先完成网络拓扑梳理,明确哪些端口需要对外暴露、哪些端口应限制在内网。这能有效减少攻击面,降低证书管理的复杂度。