openclaw-signet

🔏 技能完整性密码学验证工具

OpenClaw官方出品的技能完整性验证工具,基于SHA-256哈希为Agent Skills提供数学级防篡改保护,零依赖纯本地运行。

收藏
4.8k
安装
1.5k
版本
v1.0.2
CLS 安全性认证2026-05-13
点击查看完整报告 >

使用说明

核心用法

OpenClaw Signet 是一款专为 Agent Skills 生态设计的密码学完整性验证工具。用户通过 sign 命令为已安装技能生成 SHA-256 内容哈希并存储至信任清单,后续使用 verifystatus 命令比对当前文件状态与签名基准,精确检测任何文件修改、新增或删除。支持单技能签名、批量验证、快速状态检查等模式,退出代码明确区分"验证通过""未签名""被篡改"三种状态。

显著优点

数学级安全保障:相比传统基于正则的启发式检测,Signet 采用密码学哈希实现确定性验证,任何比特级改动均可被发现。零依赖架构:纯 Python 标准库实现,无需 pip 安装,无网络调用,彻底杜绝供应链攻击面。跨平台兼容:支持 macOS、Linux、Windows,适配 OpenClaw、Claude Code、Cursor 等主流 Agent 工具。精准定位篡改:验证失败时报告具体变更文件,便于安全审计与溯源。操作可逆:配合隔离(quarantine)与恢复(restore)机制,实现可疑技能的快速处置。

潜在缺点与局限性

本地信任模型:签名仅存储于本地 .signet/manifest.json,无法防御信任清单本身被篡改或主机级入侵。无远程验证:缺乏中心化签名服务,无法验证技能发布者的真实身份,仅能检测安装后的文件变动。无审计日志:未内置持久化操作日志,难以满足合规场景的审计追溯需求。手动运维成本:需用户主动执行签名与验证,缺乏自动化监控与告警机制。T3 来源等级:当前为个人/社区项目,尚未获得官方组织背书。

适合的目标群体

  • 安全敏感型开发者:需要确保生产环境技能未被注入恶意代码
  • 企业安全团队:对内部部署的 Agent Skills 进行定期完整性审计
  • 技能市场运营方:验证第三方技能包的发布一致性
  • 个人高级用户:管理大量技能安装,防范供应链攻击

使用风险

性能瓶颈:大规模技能目录的哈希计算可能产生显著 I/O 负载,建议在低峰期执行。误操作风险sign 会覆盖既有信任清单,若在技能已被篡改后执行将固化恶意状态。路径权限依赖:需确保对目标工作目录的读写权限,权限不足可能导致验证状态不可靠。无实时防护:仅支持事后检测,无法阻止篡改行为发生,需配合文件系统监控或只读挂载使用。

安全解读

核心用法

OpenClaw Signet 是一款面向 Agent Skills 生态的密码学完整性验证工具,核心功能围绕「签名-验证」双模式展开:

签名阶段:通过 sign 命令遍历工作空间内所有技能目录,计算每个文件的 SHA-256 哈希值,生成复合哈希作为技能状态的数字指纹,最终写入 .signet/manifest.json 信任清单。支持批量签名(全部技能)与单技能签名两种模式。

验证阶段verify 命令重新计算当前文件哈希并与清单比对,精确定位被篡改、新增或删除的文件,返回结构化报告。配套 status 提供快速状态概览,list 展示已签名技能清单。

显著优点

  • 零依赖架构:仅使用 Python 标准库(hashlib、json、pathlib 等),无 pip 安装、无网络调用、无第三方 CVE 风险
  • 跨平台兼容:支持 macOS、Linux、Windows,适配 OpenClaw、Claude Code、Cursor 等遵循 Agent Skills 规范的工具
  • 精准溯源:不仅能识别技能是否被篡改,还能逐文件定位变更点,便于快速修复
  • 轻量高效:710 行代码,4 个文件,扫描耗时约 3 秒,资源占用极低

潜在局限

  • 无自动防护机制:检测到篡改后仅报告,不自动阻止技能执行或隔离文件,需用户手动处置
  • 本地信任模型:信任清单存储于本地文件系统,若攻击者同时获取清单写入权限,可伪造签名
  • 首次签名窗口期:安装后首次签名前的时段存在检测盲区,建议安装后立即执行签名
  • 无版本回滚:不提供自动恢复至历史版本功能,需配合外部备份策略

适合人群

  • 使用 OpenClaw/Claude Code/Cursor 等 AI 编程工具的技术团队
  • 对供应链安全敏感、需审计技能文件完整性的安全工程师
  • 多开发者协作场景下需防止意外或恶意代码注入的项目
  • 追求极简部署、拒绝复杂依赖基础设施的独立开发者

常规风险

  • 清单文件安全.signet/manifest.json 与快照目录需设置适当权限(建议 0600/0700),防止同系统其他用户读取技能指纹信息或恶意替换
  • 路径遍历:虽使用 Path.resolve() 处理路径,建议通过环境变量 OPENCLAW_WORKSPACE 严格限定工作空间根目录
  • 误报管理:合法更新技能后需重新签名,否则验证失败,建议将签名流程纳入 CI/CD 或技能更新钩子

openclaw-signet 内容

scripts文件夹
手动下载zip · 8.0 kB
signet.pytext/plain
请选择文件