跳到主要内容

安全与合规

WebRTC 在传输层默认强制 DTLS-SRTP,但安全面远不止链路加密。本目录讨论端到端加密、TURN 安全、隐私、合规。

阅读顺序(计划)

顺序文件解决的问题
1DTLS-SRTP工作原理.md证书指纹、密钥派生、SRTP 套件
2端到端加密E2EE.mdInsertable Streams、SFrame、密钥分发
3TURN凭据与防滥用.md短期凭据、配额、单租户隔离
4隐私与IP泄露.mdmDNS 候选、设备指纹、最小化暴露
5合规清单.mdGDPR/PIPL/HIPAA、录音同意、数据驻留
6内容审核接入.md音频转写 + 文本审核、关键帧旁路

安全心智图

┌──────────────────────────────────────┐
│ 链路加密 DTLS-SRTP (强制) │ → 通常不用操心
├──────────────────────────────────────┤
│ 端到端加密 Insertable Streams │ → 高敏感场景才做
├──────────────────────────────────────┤
│ 信令安全 wss + JWT │ → 业务必做
├──────────────────────────────────────┤
│ TURN 安全 短期凭据 + 配额 │ → 防滥用
├──────────────────────────────────────┤
│ 隐私 mDNS 候选、最小授权 │ → 默认就好
├──────────────────────────────────────┤
│ 合规 录音同意、数据驻留 │ → 业务/法务联动
└──────────────────────────────────────┘

E2EE 关键点

  • 媒体在 SFU 上是明文(SFU 持有 SRTP 密钥),无法穿越 SFU 端到端加密。
  • 需要 Insertable Streams API 在编码后、SRTP 前对每个帧二次加密。
  • 密钥分发用业务层 KMS / 双棘轮算法(如 MLS)。
  • LiveKit、mediasoup、Jitsi 都有 E2EE 示例。

反模式

反模式后果
前端硬编码 TURN 长期凭据被爬虫拿走,TURN 被刷流量
信令走 ws://SDP 指纹被替换 → MITM
录音未告知用户GDPR/PIPL 违规
iframe 不限制 Permissions-Policy子域名能调摄像头
不限制候选 IP 范围SFU 端被 SSRF 探内网

权威资料