安全防护
把 Token 交给平台,前提是平台能管住它:可授权、可限制、可追踪、可撤销,分布在凭据、Key、工具和节点四个层面。
| 问题 | 普通中转 | Ai Lubricant |
|---|---|---|
| Key 能否真正失效 | 只有限速,禁用后仍在用 | 禁用/过期/用量上限立即生效;子 Key 随父 Key 失效 |
| 子 Key 越权 | 拆子 Key 绕过总额度 | 子 Key 额度不超父、消耗计入父 Key;lineage 快照保证配额归属 |
| token 泄库 | 明文存数据库,泄库即泄露 | 对外 API Key 与工具 token 只存哈希;比较用常量时间 |
| 节点连上就能执行吗 | 无审批,连接即权限 | 必须 Approve 才调度,可随时 Revoke |
| 排查能力 | 只看最终错误 | 每次请求的每次渠道尝试逐行落库可查 |
功能:API Key 保护
API Key 保护
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-security/keys.png| 手段 | 行为 |
|---|---|
| 禁用 | 置为 disabled 后请求立即被拒,无需等过期或删除 |
| 过期 | 设置到期时间,到点自动失效 |
| 累计用量上限 | 达到 Token 或用量阈值后停止服务,不只是限速 |
| 子 Key 受父约束 | 父 Key 被禁用、过期或用满额度时,其下所有子 Key 一并失效 |
| 子 Key 不得越权 | 创建时校验:子 Key 的额度与有效期不能超出父 Key 的范围 |
| 用量归并 | 子 Key 的消耗计入父 Key 的累计用量,避免绕过总额度 |
- editor key lineage 快照:request_logs 写 api_key_id/parent_id 快照,editor 删除后父配额归属不脱钩。
- 常量时间比较:Key 比对避免通过响应时间差逐字节猜测。
- 浏览器/移动端不保存模型 API Key:平台用户通过 session 与
api_key_id使用,后端按当前身份解析真实 Key。
功能:token 只存哈希且绑实例(MCP 保护)
| token 类型 | 绑定对象 | 行为 |
|---|---|---|
| MCP 访问 token | — | 明文仅创建时显示一次,库中存 sha256;泄库无法还原 |
| CDP token | 具体 CDP client | 调用时再次检查 client 属于该实例、启用且有连接 token |
| Mail token | 邮箱实例 | 只能读取自己的 mail instance |
| 设备 token | device_id | 吊销即 close 4003 |
| MCP 保护措施 | 行为 |
|---|---|
| 绑定实例 | CDP/Mail/设备 token 都绑定具体实例(client / 邮箱 / device_id),未绑定报 not authorized,不能跨实例使用 |
| Agent 身份校验 | Agent 绑定用户后,所有鉴权 MCP 固定使用该用户已获授权的 token;未授权返回 401,不从 token 集合任取,避免跨用户串台 |
| 外部 MCP 只走 SSE | 外部 MCP 接入走 /mcp/.../sse;用户侧只创建对外开放 token,agent/node/user 内部 token 由服务自动签发 |
| 改数据即重下发 | 写完 CDP / Mail 明细后必须 resync,把新快照推给活着的 driver,否则连不上/不生效 |
| 权限作用域 | 技能、插件、MCP 不自动全部注入;资源系统负责供给与治理,使用者显式选择;闲置 token 随时撤销 |
- URL token 避免:能用 Authorization header 时不要用
?token=,避免代理/历史/日志记录。
功能:节点身份封存与审批
| 措施 | 行为 |
|---|---|
| TOTP AES-256-GCM 封存 | onboard 发唯一 node_id 与 secret,服务端封存;认证带重放缓存,同一验证码不能复用 |
| 统一 permission_denied | 未知/撤销/错误/重放统一返回,避免身份枚举 |
| 必须审批 | 未 approved 的节点即使连上也不参与调度,可随时撤销 |
| 主密钥管理 | NODE_CREDENTIAL_ENCRYPTION_KEY 加密既有 TOTP 凭据,丢失即失效;迁移控制面禁止双 Registry |
| 高权限能力治理 | 浏览器终端等价于节点用户 shell;management 可创建/删除 execution;节点代理限制目标地址防 SSRF |
功能:请求侧防护
| 能力 | 行为 |
|---|---|
| 请求级观测 | 一次调用对应一个 request_id,每次渠道尝试单独成行:账号、路径、状态、错误、耗时、首 Token、各类 Token |
| 认证头脱敏 | 请求日志认证头默认脱敏;管理操作日志写入前剥离敏感字段 |
| 渠道运行态 | 连续失败降权、窗口熔断、按规则冻结;凭据热更新保留运行状态 |
| 用量口径一致 | 总量 = 输入 + 输出,不采信上游自报;缓存读写不重复计入 |
两条必须知道的边界其一:全局 API Key 校验存在总开关(
api_keys_enabled()),一旦关闭,模型接口将接受无鉴权请求——只能用于隔离的调试环境,绝不可用于公网。其二:上游渠道凭据(Cookie、refresh token、账号密码)当前以明文存储在数据库中,保护依赖数据库访问控制、磁盘加密与 API 层脱敏,而非应用层加密。请据此设置数据库权限与备份加密策略。私有化不自动等于合规数据留在自己环境只是基础。仍需配置最小权限、日志保留、备份、加密、审计与事件响应,并评估模型供应商收到的请求数据。