密钥保密要求
接入 AI Chat 时,你需要重点保护以下密钥和凭证,确保它们不被泄露或滥用。
需要保护的密钥
| 密钥 | 是什么 | 可以出现在哪里 | 不应出现在哪里 |
|---|---|---|---|
SecretKeyId | 应用级密钥,用于服务端 TGV1-HMAC-SHA256 签名 | 你的业务服务端 | 客户端源码、设备固件、前端页面、日志、截图、工单 |
AccessKeyId | 应用级访问标识,与 SecretKeyId 配对使用 | 你的业务服务端 | 客户端源码、设备固件 |
token | 短效连接凭证,设备端用于 TiRtcWhipConnect | 设备端(临时持有) | 日志中不打印完整值、不长期缓存 |
不要这样做
- 把
SecretKeyId写进设备固件、客户端代码或示例工程。 - 把完整
token打印到日志或发送到群聊、邮件、工单中。 - 让设备端自行调用
/v1/token/aichat——设备不应持有 AK/SK。 - 为了调试方便把密钥写入配置文件并提交到代码仓库。
推荐做法
日志里只放定位信息
排查问题时,日志里通常只需要:
device_idsession_id- 连接状态和错误码
不要打印 SecretKeyId、完整 token 或完整 peer_id。
发给别人前先脱敏
如果排查时必须展示 peer_id,只保留足够定位的片段;不要贴完整的 token。
各端只持有必要凭证
- 业务服务端:持有
AppId、AccessKeyId、SecretKeyId,用于签名和凭证申请。 - 设备端:仅临时持有
peer_id和token,用完即释放,不持有 AK/SK。
如果已经泄露了怎么办
- 立即停止使用泄露的密钥,停止在群聊、工单等渠道继续传播。
- 确认泄露范围:代码仓库、日志、聊天记录、截图。
- 按平台配置流程申请新的
AccessKeyId/SecretKeyId并替换。 - 清理已泄露的历史副本。