《消费物联网安全入门指南》
第3章 通信协议安全
3、通信协议安全:MQTT、CoAP、HTTP协议的安全特性与常见漏洞
在消费物联网中,设备与云端、设备与设备之间的通信依赖于各种应用层协议。MQTT、CoAP 和 HTTP 是三种最主流的协议。理解它们的安全机制与潜在风险,是构建安全物联网系统的基石。
| 特性 | MQTT | CoAP | HTTP |
|---|---|---|---|
| 传输层 | TCP | UDP | TCP |
| 消息模型 | 发布/订阅 | 请求/响应 | 请求/响应 |
| 安全传输 | TLS/SSL (MQTTS) | DTLS (CoAPS) | TLS/SSL (HTTPS) |
| 认证机制 | 用户名/密码、证书 | 预共享密钥、证书 | Basic、Bearer Token |
| 典型漏洞 | 未授权订阅、明文传输 | IP 欺骗、重放攻击 | 中间人攻击、会话劫持 |
3.1 MQTT 协议安全
MQTT 是物联网中最流行的轻量级协议,采用发布/订阅模式。其安全核心在于 传输加密 和 访问控制。
- 安全特性:
- 支持 TLS 加密(MQTTS),防止数据被窃听。
- 支持用户名/密码认证,以及客户端证书认证。
- 支持 Last Will 和 Testament(遗嘱消息),用于异常断开通知。
- 常见漏洞:
- 未授权订阅: 如果 Broker 未做 ACL(访问控制列表),攻击者可订阅所有主题,窃取传感器数据。
- 明文传输: 使用未加密的 MQTT(1883端口),数据包可被网络嗅探工具直接读取。
- 暴力破解: 弱密码导致攻击者轻易登录 Broker 并发布恶意指令。
3.2 CoAP 协议安全
CoAP 专为受限设备设计,基于 UDP 协议。其安全依赖于 DTLS(数据报传输层安全)协议。
- 安全特性:
- DTLS 加密:提供与 TLS 类似的安全保障,但针对 UDP 优化。
- 支持预共享密钥(PSK)和基于证书的认证。
- 支持观察模式(Observe),允许客户端持续接收资源更新。
- 常见漏洞:
- IP 欺骗: 由于 UDP 无连接特性,攻击者可伪造源 IP 发送恶意请求。
- 重放攻击: 攻击者截获合法请求后重复发送,导致设备误操作。
- DTLS 握手耗尽: 攻击者发起大量 DTLS 握手请求,耗尽设备资源(DoS 攻击)。
3.3 HTTP 协议安全
HTTP 是互联网的基础协议,在物联网中常用于设备配置、固件升级等场景。其安全核心是 HTTPS。
- 安全特性:
- HTTPS 通过 TLS 加密所有通信内容。
- 支持多种认证方式:Basic Auth、Bearer Token(JWT)、OAuth 2.0。
- 支持 HSTS(HTTP Strict Transport Security),强制使用 HTTPS。
- 常见漏洞:
- 中间人攻击(MITM): 如果未正确验证证书,攻击者可拦截并篡改通信。
- 会话劫持: 通过窃取 Cookie 或 Token,冒充合法设备。
- 跨站请求伪造(CSRF): 诱导设备执行非预期的操作(如修改配置)。
3.4 安全实践建议
- 始终启用加密: 使用 MQTTS、CoAPS、HTTPS,避免明文传输。
- 实施强认证: 使用证书或强密码,避免使用默认凭证。
- 最小权限原则: 在 MQTT 中严格限制主题订阅和发布权限(ACL)。
- 防止重放攻击: 在 CoAP 和 HTTP 中使用时间戳或 Nonce 值。
- 固件与配置更新: 定期更新协议库,修补已知漏洞。
专注课程资料整理