安全模型
trustless 保证什么
凭据值永远不会进入 LLM 上下文窗口
run:凭据设置在子进程环境上,输出在返回前被扫描并脱敏proxy:凭据在代理进程内部替换;代理只看到 API 响应- 直接
get会输出值,但需要显式调用(正常流程中代理不可用)
命令参数扫描(
--scan-args)- 启动子进程前,扫描所有命令参数中的凭据模式和注入值
- 若检测到,以退出码 3 阻止执行(fail closed)
- 防止代理在 CLI 参数中意外暴露凭据值
策略引擎 —— 命令级访问控制
policy.default.denied_commands:全局阻止危险命令(如sh、bash)policy.<key>.denied_commands:按凭据阻止特定命令- Fail-closed:策略违规以退出码 3 阻止执行
子进程输出脱敏
- 默认模式匹配常见凭据格式:GitHub 令牌、OpenAI 密钥、xAI 密钥、AWS 密钥、Bearer 令牌和通用模式
- 注入值本身也会被模式扫描:如果子进程回显了凭据,该值会被脱敏
- 可通过配置文件或
--sanitize-policy自定义模式
最小攻击面
- 代理默认监听
127.0.0.1(不暴露到网络) - 提供 Unix socket 模式以进行文件权限控制
- MITM 代理按主机名生成临时证书(24h 有效期)
- 单一二进制,除
pass+gpg外零运行时依赖(bitwarden后端额外需要bwCLI)
- 代理默认监听
broker 进程不持久化凭据
- 凭据按需解析,子进程退出后释放
- HTTP 代理仅在活跃请求处理期间在内存中持有凭据
trustless 不解决什么(v1 范围)
- 动态/轮换凭据 —— pass 存储是静态的;轮换由外部处理
- 完整审计追踪 —— 仅基础日志;SIEM 导出是未来工作
- 硬件密钥存储 —— 依赖 GPG 密钥环安全
- HTTPS MITM CA 信任管理 —— MITM 代理生成 CA 证书;用户必须将其安装到操作系统信任库