首页 / 安全体系 / 传输与接口安全

传输安全总览

全链路加密是硬性要求:业务与信令流强制 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 分钟。
  • 录像文件落地即加密(或私有桶 + 临时凭证),不提供匿名访问。

接口与临时凭证

场景凭证机制时效
用户访问 APIJWT + 刷新令牌(与设备 ID 绑定)按配置过期
支付回调Webhook 验签 + 幂等键实时
WebSocket 代理内部 HMAC 签名(secret ≥32 字符)TTL ≤30 秒
OSS 文件Presigned URL≤10 分钟
数据导出JSON/CSV 下载链接≤24 小时
固件下载临时凭证 + 签名校验短时效

输入校验与注入防护

  • 所有 API 入参白名单校验,杜绝 SQL 注入、XSS、目录穿越。
  • MyBatis 使用预编译参数;文件上传校验类型与大小。
  • Webhook 回调地址校验(PayReturnUrlValidator)防止开放重定向。
  • 跨语言调用只信任服务端注入的上下文,不信任客户端 Header。