Credential Vault

为 OpenClaw 提供加密凭证管理,防止密钥泄露。

已扫描
适合谁
需要安全调用 API 的开发者、使用 AI 自动化工具的团队
不适合谁
无需管理敏感凭证的普通用户、无法访问本地环境或安装 npm 的用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @karanuppal/openclaw-credential-vault

Skill 说明

命令、参数、文件名以原文为准

OpenClaw 凭据保险库

用于 OpenClaw 的加密凭据管理。将 API 密钥、令牌和密码等敏感信息从 AI 代理的上下文窗口中隔离,防止其被窃取、泄露到对话记录中,或通过工具输出暴露。

你将获得的功能

  • 凭据永不进入 AI 上下文。仅在需要的子进程环境中解密并注入,随后在返回前从输出中清除,确保代理无法看到。
  • 静态加密存储。每个凭据使用 AES-256-GCM 加密,并通过 Argon2id 进行密钥派生。
  • 自动输出清理。多层独立清理机制可检测工具输出、出站消息和会话记录中的凭据。
  • 约 700 个测试,覆盖 36 个文件,涵盖加密、注入、清理、对抗性攻击及端到端场景。
  • 开源。完整源码可在 [GitHub](https://github.com/karanuppal/openclaw-credential-vault) 获取 — 安装前可审查钩子、注入与清理实现。

存储与文件访问

保险库将所有数据存储在 ~/.openclaw/vault/ 目录下:

  • ~/.openclaw/vault/*.enc — 每个工具对应一个加密凭据文件(AES-256-GCM,每项凭据单独加密)。文件权限设为仅所有者可读写(600)。
  • ~/.openclaw/vault/tools.yaml — 注入规则配置,定义哪些工具匹配哪些凭据(命令模式触发凭据注入,URL 模式添加认证头)。
  • ~/.openclaw/vault/.vault-meta.json — 保险库元数据(初始化时间戳、版本号)。
  • ~/.openclaw/vault/audit.log — 凭据访问审计日志。

无需设置环境变量。保险库的加密密钥由系统生成,不会存储在环境变量或配置文件中。

安装

通过 npm 安装插件:

npm install -g openclaw-credential-vault

然后重启网关以加载插件。该插件注册了四个 OpenClaw 钩子:

  • before_exec — 在匹配命令时,将凭据注入子进程环境
  • after_exec — 清理子进程输出中的凭据
  • before_send — 清理出站消息中的凭据
  • session_transcript — 清理会话记录中的凭据

安装前可查看钩子实现,请参阅 GitHub 仓库中的 [src/hooks/](https://github.com/karanuppal/openclaw-credential-vault/tree/main/src/hooks)。

快速入门

# 初始化保险库
openclaw vault init

# 添加凭据(交互式选择注入类型)
openclaw vault add github --key "ghp_your_token_here"

# 端到端验证(注入 + 清理)
openclaw vault test github

# 添加更多凭据
openclaw vault add stripe --key "sk_live_..."
openclaw vault add npm --key "npm_..."

完成以上步骤后,你的代理即可使用 gh 命令、调用 Stripe API 和发布 npm 包,而无需直接接触任何凭据。

工作原理

当代理执行如 gh pr list 这类工具时:

  1. before_exec 钩子ghtools.yaml 中的注入规则匹配
  2. 使用派生密钥解密 ~/.openclaw/vault/github.enc
  3. 将令牌作为 GITHUB_TOKEN 注入子进程环境
  4. gh 在携带凭据的情况下运行并返回结果
  5. 子进程退出 —— 凭据随之销毁
  6. after_exec 钩子 在代理接收结果前,清理输出中的凭据模式
  7. 代理收到的是干净的结果 —— 上下文中不存在任何凭据

对于 API 调用,before_exec 钩子会根据 tools.yaml 中的配置,在匹配的 URL 模式中注入 Authorization 头。

命令列表

  • vault init — 初始化保险库并创建 ~/.openclaw/vault/ 目录
  • vault add <tool> --key <cred> — 添加凭据(交互式选择:API 或 CLI 注入方式)
  • vault list — 显示所有已存储的凭据及其状态
  • vault show <tool> — 查看凭据详情及注入配置
  • vault test <tool> — 端到端验证注入与清理功能是否正常
  • vault rotate <tool> --key <new> — 旋转凭据(原地重新加密)
  • vault rotate --check — 显示需轮换的过期凭据
  • vault remove <tool> — 删除凭据文件及注入规则

非交互模式

# API 请求头注入
openclaw vault add stripe --key "sk_live_..." --use api --url "api.stripe.com/*" --yes

# CLI 环境变量注入
openclaw vault add github --key "ghp_..." --use cli --command gh --env GITHUB_TOKEN --yes

安全模型

  1. 代理从不直接看到凭据 — 注入发生在 before_exec 钩子中,不在代理上下文中进行
  2. 静态加密存储 — 使用 AES-256-GCM 加密,每项凭据使用独立盐值,存储于 ~/.openclaw/vault/*.enc
  3. 密钥派生 — 使用 Argon2id(内存密集型,抵抗 GPU 破解)
  4. 子进程隔离 — 凭据仅存在于子进程环境,进程结束后即销毁
  5. 输出清理 — 四个独立钩子(after_execbefore_sendsession_transcript 及基于模式的备用清理)共同防范凭据泄露
  6. 审计日志 — 所有凭据访问均记录至 ~/.openclaw/vault/audit.log
  7. 开源 — 完整源码与 700 个测试套件可在 [GitHub](https://github.com/karanuppal/openclaw-credential-vault) 查阅

链接

  • GitHub: https://github.com/karanuppal/openclaw-credential-vault
  • npm: https://www.npmjs.com/package/openclaw-credential-vault
  • 问题反馈: https://github.com/karanuppal/openclaw-credential-vault/issues
K
@karanuppal

已收录 1 个 Skill

相关推荐