Install
openclaw skills install @thcjp/key-guardopenclaw skills install @thcjp/key-guard核心功能: 本技能提供化工作流场景等能力。
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| Key GuardKey被发送 | 不支持 | 支持 |
| 深度漏洞扫描与CVE关联 | 不支持 | 支持 |
| 安全基线合规审计 | 不支持 | 支持 |
| 批量资产风险评分 | 不支持 | 支持 |
| 威胁情报实时订阅与告警 | 不支持 | 支持 |
| 场景 | 输入 | 输出 |
|---|---|---|
| API密钥拦截 | 请求内容和API密钥 | 密钥脱敏和拦截日志 |
| 安全防护 | AI助手请求和敏感数据 | 防护报告和安全建议 |
| 密钥审计 | 配置文件和环境变量 | 密钥暴露风险和修复建议 |
不适用于:非API密钥的敏感数据脱敏(如PII数据处理)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| request_content | string | 是 | 待检查的请求内容 |
| scan_scope | string | 否 | 扫描范围, 可选: headers/body/all, 默认: all |
{
"success": true,
"data": {
"overall_grade": "A",
"total_score": 92,
"max_score": 100,
"summary": "处理完成",
"details": [
{
"item": "代码风格",
"status": "pass",
"score": 95,
"comment": "符合规范"
},
{
"item": "安全合规",
"status": "warn",
"score": 80,
"comment": "符合规范"
}
],
"improvements": [
{
"priority": "high",
"suggestion": "建议优化",
"expected_gain": "+5分"
},
{
"priority": "medium",
"suggestion": "建议优化",
"expected_gain": "+3分"
}
]
},
"error": null
}
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
1. Call validate_key({ key_name: "OPENAI_API_KEY" })
2. Report back: "Yes, your key is set (51 chars, starts with sk-a****)"
1. Call call_api({
key_name: "OPENAI_API_KEY",
url: "https://api.llm-provider.com/v1/chat/completions",
method: "POST",
body: { model: "gpt-4o-mini", messages: [...] }
})
2. Use the returned response — never the key itself
Do NOT read .env directly.
Instead, call validate_key for each expected key name and show:
- Which keys are configured
- Approximate length (as a sanity check)
Never show actual values.
1. Call read_file_masked({ file_path: "(请参考skill目录中的脚本文件)" })
→ ai-assistant sees "curl -H 'Authorization: Bearer "guard_result"' ..."
2. Make the requested edit to the non-key parts
3. Call write_file_with_keys({ file_path: "(请参考skill目录中的脚本文件)", content: "<edited content with "guard_metadata" still in place>" })
→ connector substitutes the real key before writing to disk
A: 请参考使用流程和依赖说明章节,确保运行环境满足要求后调用本技能。
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 请求重试;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |
A: Key Guard不会解密API Key,它会在加密的请求内容中检测是否存在API Key,并在发送到AI助手前将其脱敏。
A: 支持。用户可以通过scan_scope参数自定义扫描范围,包括headers、body或all。
A: Key Guard会检查请求的来源,如果请求来自不受信任的域,则会自动拦截并记录。
A: 支持。Key Guard会记录所有被拦截的API Key,并提供日志查询功能。
A: 支持。Key Guard可以通过API与其他安全工具集成,实现更全面的安全防护。
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API Key泄露 | 高 | 使用环境变量存储API Key,避免硬编码 | 检查代码库和版本控制系统,确保无API Key泄露 |
| 请求内容篡改 | 中 | 对请求内容进行加密和签名 | 定期检查请求内容,确保无篡改 |
| 日志信息泄露 | 低 | 限制日志访问权限 | 定期检查日志访问记录,确保无未授权访问 |
| 跨域请求攻击 | 中 | 限制跨域请求 | 定期检查跨域请求,确保无恶意请求 |
| 集成漏洞 | 高 | 定期更新集成工具 | 定期检查集成工具版本,确保无已知漏洞 |
| 效率提升量化分析 |
|---|
| 减少API Key泄露风险:95% |
| 提高请求处理速度:20% |
| 降低安全事件响应时间:50% |
| 提升整体安全性:30% |
| 差异化对比表格 |
|---|
| 功能 |
| --- |
| API Key保护 |
| 请求内容扫描 |
| 日志记录 |
| 集成能力 |
| 用户界面 |
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | "密钥卫士" | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | "安全护栏,阻止API Key被发送给Claude"MIT。Security g | 通用场景 | 通用场景 |
针对"密钥卫士"使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |