OpenClaw的安全凭证存储系统,可加密和保护API密钥、令牌及其他敏感凭证,防止内存文件泄露攻击。
OpenClaw 密钥管理技能 QQA 安全密钥管理综合系统, 保护您的 AI 助手的证书, 即使内存文件已失密是一项面向实际任务的技能,主要用于任何存储之前。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
一套全面的安全密钥管理系统,即使内存文件遭到泄露,也能保护您的 AI 助手的凭据安全。
MEMORY.md 或日常日志文件.secrets/vault.json.enc{SECRET:api_key_name}config/key_management.json 文件配置# 1. 克隆或复制本技能至您的 skills 目录 cp -r openclaw-key-management-skill ~/.openclaw/your-workspace/skills/ # 2. 初始化密钥保险库 cd ~/.openclaw/your-workspace ./skills/openclaw-key-management/scripts/key_manager.sh init # 3. 配置安全模式(可选) # 编辑 skills/openclaw-key-management/config/key_management.json # 将 "master_key_mode" 设为 "system_key"(默认)或 "passphrase" # 4. 迁移已有凭据(如有) ./skills/openclaw-key-management/scripts/key_manager.sh migrate
# 添加新凭据 ./skills/openclaw-key-management/scripts/key_manager.sh add my_api_key # 添加带元数据的凭据 ./skills/openclaw-key-management/scripts/key_manager.sh add instreet_api_key
# 获取凭据值(自动解密) ./skills/openclaw-key-management/scripts/key_manager.sh get my_api_key # 列出所有已存储的凭据 ./skills/openclaw-key-management/scripts/key_manager.sh list
在 OpenClaw 工作流中,请使用如下安全占位符格式引用凭据:
### 外部服务
- **API 密钥**: {SECRET:my_api_key}
系统将在运行时自动捕获此类引用,并提供解密后的值。
workspace/
├── .secrets/ # 加密凭据目录
│ ├── master.key # 加密的主密钥
│ ├── vault.json.enc # 主加密凭据保险库
│ ├── backup/ # 带版本号的加密备份
│ └── temp/ # 临时运行时文件
├── skills/openclaw-key-management/
│ ├── scripts/key_vault.js # Node.js 加密模块
│ ├── scripts/key_manager.sh # CLI 管理工具
│ └── config/key_management.json # 配置模板
└── MEMORY.md # 仅含安全引用:{SECRET:name}
| 威胁 | 影响等级 | 缓解措施 |
|---|---|---|
| 内存文件被攻破 | 高 | 凭据永不以明文形式存储 |
| 运行时内存转储 | 中 | 凭据生命周期短 + 安全清零 |
| 主密钥被盗 | 严重 | 可选口令保护机制 |
| 备份泄露 | 中 | 备份文件使用同等强度加密算法加密 |
| 恶意技能/插件 | 高 | 访问凭据需显式授权 |
config/key_management.json{
"version": "1.0",
"master_key_mode": "system_key", // "system_key" 或 "passphrase"
"encryption": {
"algorithm": "aes-256-gcm",
"pbkdf2_iterations": 100000,
"salt_length": 16,
"iv_length": 12
},
"runtime": {
"credential_timeout_seconds": 30,
"enable_memory_locking": true,
"auto_cleanup_on_exit": true
},
"backup": {
"enabled": true,
"max_backups": 10,
"backup_interval_hours": 24
}
}
./scripts/key_manager.sh migrateMEMORY.md 中现已替换为 {SECRET:name} 引用若自动迁移失败,请手动执行以下步骤:
./scripts/key_manager.sh add credential_name{SECRET:credential_name}.secrets/ 目录const SecureKeyVault = require('./skills/openclaw-key-management/scripts/key_vault.js');
const vault = new SecureKeyVault('/path/to/workspace');
await vault.initialize();
await vault.setSecret('api_key', 'your-secret-value');
const secret = await vault.getSecret('api_key');
init — 初始化密钥保险库add NAME — 添加新密钥get NAME — 获取密钥值list — 列出全部密钥backup — 创建备份migrate — 迁移已有凭据init 命令.secrets/ 目录具有正确的文件权限.secrets/backup/ 中最新备份恢复本技能遵循 OpenClaw AgentSkills 规范,欢迎提交贡献:
MIT 许可证 — 免费使用、修改与分发。
请注意:安全是一种持续过程,而非一次性产品。本技能提供了强有力的防护能力,但您仍须在整个 OpenClaw 部署中贯彻实施各项安全最佳实践。
相关专题
热门下载
相关下载
精品课程
共1课时 | 168人学习
共0课时 | 0人学习
共1课时 | 217人学习
最新文章