首页 / 安全体系 / 传输与接口安全
传输与接口安全
TLS/mTLS、MQTT over SSL、WebRTC 加密、临时凭证、Webhook 验签与输入校验。
传输安全总览
全链路加密是硬性要求:业务与信令流强制 TLS 1.3(最低 1.2,禁用 SSL),实时音视频使用加密协议,临时访问凭证短时效。
TLS 与 mTLS
- 接入层(ALB/Nginx)TLS Termination:TLS 1.2+,屏蔽不安全 Cipher(
nginx-tls.conf)。 - 设备与平台之间采用 mTLS(双向认证)+ 每设备唯一证书/密钥。
- 数据库连接:PostgreSQL DSN
sslmode=verify-full;MySQL/Redis 生产环境启用 TLS。 - Kafka/消息中间件生产环境建议 TLS 加密连接。
MQTT 安全
- MQTT over SSL(TLS)承载设备信令。
- 设备认证(dgsvr 登录/访问认证)后授予 Topic 权限;Topic 权限隔离由 EMQX 管控。
- 指令下发与设备上报按
productID/deviceName限定主题范围,防止跨设备越权。
音视频传输安全
- WebRTC / SRTP 加密实时音视频流,防中间人拦截回放。
- 播放地址使用动态生成的短效临时凭证(WebRTC/HLS 阶段)。
- 历史录像通过 OSS Presigned URL 访问,签名时效 ≤10 分钟。
- 录像文件落地即加密(或私有桶 + 临时凭证),不提供匿名访问。
接口与临时凭证
| 场景 | 凭证机制 | 时效 |
|---|---|---|
| 用户访问 API | JWT + 刷新令牌(与设备 ID 绑定) | 按配置过期 |
| 支付回调 | Webhook 验签 + 幂等键 | 实时 |
| WebSocket 代理 | 内部 HMAC 签名(secret ≥32 字符) | TTL ≤30 秒 |
| OSS 文件 | Presigned URL | ≤10 分钟 |
| 数据导出 | JSON/CSV 下载链接 | ≤24 小时 |
| 固件下载 | 临时凭证 + 签名校验 | 短时效 |
输入校验与注入防护
- 所有 API 入参白名单校验,杜绝 SQL 注入、XSS、目录穿越。
- MyBatis 使用预编译参数;文件上传校验类型与大小。
- Webhook 回调地址校验(
PayReturnUrlValidator)防止开放重定向。 - 跨语言调用只信任服务端注入的上下文,不信任客户端 Header。