安全模型

trustless 保证什么

  1. 凭据值永远不会进入 LLM 上下文窗口

    • run:凭据设置在子进程环境上,输出在返回前被扫描并脱敏
    • proxy:凭据在代理进程内部替换;代理只看到 API 响应
    • 直接 get 会输出值,但需要显式调用(正常流程中代理不可用)
  2. 命令参数扫描--scan-args

    • 启动子进程前,扫描所有命令参数中的凭据模式和注入值
    • 若检测到,以退出码 3 阻止执行(fail closed)
    • 防止代理在 CLI 参数中意外暴露凭据值
  3. 策略引擎 —— 命令级访问控制

    • policy.default.denied_commands:全局阻止危险命令(如 shbash
    • policy.<key>.denied_commands:按凭据阻止特定命令
    • Fail-closed:策略违规以退出码 3 阻止执行
  4. 子进程输出脱敏

    • 默认模式匹配常见凭据格式:GitHub 令牌、OpenAI 密钥、xAI 密钥、AWS 密钥、Bearer 令牌和通用模式
    • 注入值本身也会被模式扫描:如果子进程回显了凭据,该值会被脱敏
    • 可通过配置文件或 --sanitize-policy 自定义模式
  5. 最小攻击面

    • 代理默认监听 127.0.0.1(不暴露到网络)
    • 提供 Unix socket 模式以进行文件权限控制
    • MITM 代理按主机名生成临时证书(24h 有效期)
    • 单一二进制,除 pass + gpg 外零运行时依赖(bitwarden 后端额外需要 bw CLI)
  6. broker 进程不持久化凭据

    • 凭据按需解析,子进程退出后释放
    • HTTP 代理仅在活跃请求处理期间在内存中持有凭据

trustless 不解决什么(v1 范围)

  • 动态/轮换凭据 —— pass 存储是静态的;轮换由外部处理
  • 完整审计追踪 —— 仅基础日志;SIEM 导出是未来工作
  • 硬件密钥存储 —— 依赖 GPG 密钥环安全
  • HTTPS MITM CA 信任管理 —— MITM 代理生成 CA 证书;用户必须将其安装到操作系统信任库