为 AI Agent 技能文件夹提供 Ed25519 数字签名与验证,支持作者信任管理和溯源链追踪,保障代码完整性与来源可信。
说明:
## 核心用法
`skillsign` 是一款轻量级的 Python 命令行工具,专为 AI Agent 技能文件夹提供密码学签名与验证服务。它基于 Ed25519 椭圆曲线算法,为技能分发场景设计了一套完整的信任基础设施:
1. **身份管理**:通过 `keygen` 生成 Ed25519 密钥对,私钥本地保管,公钥可自由分发
2. **内容签名**:`sign` 命令递归计算文件夹内所有文件的 SHA-256 哈希,生成签名清单并写入 `.skillsig/` 目录
3. **完整性验证**:`verify` 检测文件增删改,校验签名有效性,并显示签名者信任状态
4. **信任网络**:`trust`/`trusted` 管理本地可信作者公钥列表,建立分布式信任关系
5. **溯源追踪**:`chain` 命令展示技能的完整签名历史(isnād),支持多作者接力签名
## 显著优点
– **极简依赖**:仅需 `cryptography` 单一依赖,单文件脚本即可运行
– **非侵入式**:签名数据隔离存放于 `.skillsig/`,不污染原技能文件
– **透明可审计**:`inspect` 展示完整元数据,包括指纹、时间戳、文件哈希列表
– **符合安全最佳实践**:采用 Ed25519(现代、快速、安全),SHA-256 保障内容完整性
– **场景化设计**:针对 Agent 技能分发、第三方代码审计、持续完整性监控等场景优化
## 潜在局限与风险
| 局限 | 说明 |
|——|——|
| 信任机制局限 | 基于本地公钥白名单,无中心化 CA 或 Web of Trust 基础设施 |
| 密钥管理责任 | 私钥泄露将导致身份伪造,工具本身不提供密钥备份或恢复机制 |
| 签名历史可丢弃 | `.skillsig/` 目录被删除或篡改将导致溯源链断裂 |
| 无运行时保护 | 仅验证静态文件,不监控技能运行时的内存/行为安全 |
| 社会工程学风险 | 用户需自行判断「是否信任某公钥所属的真实个体」 |
## 适合人群
– **AI Agent 开发者**:需要为发布的技能提供来源证明
– **企业安全团队**:建立内部技能仓库的完整性校验流程
– **开源社区维护者**:验证第三方贡献技能的未被篡改
– **安全意识强的终端用户**:在运行外部技能前执行来源核查
## 常规风险提醒
?? **信任锚点风险**:首次添加公钥至信任列表时,务必通过安全渠道(如官方网站、PGP 签名邮件、线下会议)验证公钥真实性,避免中间人攻击。
?? **签名≠代码安全**:本工具保证「文件未被篡改」和「来源身份」,但不分析代码本身是否存在漏洞或恶意逻辑。建议配合静态分析、沙箱测试等安全措施使用。
?? **密钥保管**:私钥文件(`.pem`)应设置适当文件权限(`chmod 600`),避免备份至不安全云存储。








