密钥与 Token
WHIP 接入涉及四类不同的凭证。不要混用或放在同一信任边界中。
| 凭证 | 持有方 | 用途 |
|---|---|---|
| Ed25519 私钥 | 业务服务端 | 为设备签发 TiRTC-X 连接 Token |
| Ed25519 公钥 | WHIP Service、TiRTC 注册配置 | 验证 Token 签名 |
| Device Secret Key | 设备安全存储 | 设备访问 TiRTC 时证明设备身份 |
| 连接 Token | 指定设备 | 在有效期内委托设备访问指定 WHIP 服务 |
密钥管理
- 私钥只保存在业务服务端的密钥管理系统中,不进入设备、前端、日志或代码仓库。
- WHIP Service 只需要公钥,不应加载签发私钥。
- Device Secret Key 应写入设备安全存储,不由 WHIP Service 接收。
- 为 Access Key 设计轮换机制;轮换期间可同时配置新旧公钥,完成切换后移除旧公钥。
长期委托 Token
- 连接 Token 由业务服务端使用 Ed25519 私钥签发,在有效期内委托指定设备访问指定 WHIP 服务。
- Token 绑定设备 ID、服务名和完整 Query;设备只能把它用于对应的连接。
- 同一 Token 在有效期内可以用于断线重连。
- 根据设备离线恢复周期设置有效期,并提供服务端撤销、Access Key 轮换和设备解绑机制。
- 优先使用 HTTPS,禁止通过 URL Query 传递 Token。设备必须使用 HTTP 时,应确保网络路径受控,并接受 Token 不受传输加密保护的风险。
- 日志、指标标签和错误响应中不得记录完整 Token。
设备只保存业务服务端下发的 Token,不保存签发私钥,也不能自行生成新 Token。peer_id 和 Token 的生成方法见业务服务端签发连接参数。
DELETE 不携带连接 Token。服务以 Location 中不可预测的随机 session-id 识别会话,并对重复删除或不存在的 ID 统一返回 204 No Content,避免泄露资源是否存在。session-id 应至少包含 128 位密码学随机值,不得使用自增序号、设备 ID 或可推测字段。
peer_id Query 会透传到 WHIP Service。只放置服务处理所需的非机密参数,并对字段长度、字符集和允许值进行校验。