Skill防护盾
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_ee0c0d25/skill-protector 技能到你的 AI 助手中。
技能介绍
要解决的问题
Skill 分发时,scripts/ 下的核心脚本和 references/ 里的数据都是明文。任何人拿到包就能读源码、改逻辑、把提示词和敏感内容抄走。Skill 作者通常只想要一份可以离线使用的加固产物:不依赖服务器,但又能让普通用户无法直接 patch。
skill-protector 用纯本地构建的方式给出答案。
四层防护
- 混淆 / 编译:Python 走
pyarmor,JS 走terser;工具缺失时用内置字符串加密回退,guard 自身也被混淆。 - 完整性:每个受保护文件的 SHA-256 登记进
MANIFEST.json,并用构建方私钥做 RSA-PKCS#1 v1.5(默认 2048 位)签名。数据密钥只从已签名 manifest 派生,篡改文件会直接让解密失败。 - 授权绑定(可选):运行时必须存在合法的
LICENSE.sig,可绑定host_id与有效期。 - 反调试(可选):检测到
sys.gettrace()或 Linux 下TracerPid时拒绝派生密钥。
构建与验证流程
- 分析目标目录,按输出的 JSON(
languages/scripts/references/risks)决定是否追加--encrypt-all等参数。 - 一键构建:先把原始 Skill 备份到
.keys/.backup.zip,处理完再自动产出-finish.zip。 - 自检自动注入:每个
.py/.js顶部会插入一段 guard 调用,校验失败直接exit(3),作者无需手工改代码。 - 交付前可跑
python scripts/build.py selftest,独立验证 8 项密码学检查。
适用边界
私钥永远留在构建方,泄露即防护失效;SKILL.md 本身是明文,敏感内容应放进 references/ 再加密;不要删除或修改 _guard.py / _guard.js / MANIFEST.json。这套方案能拦住绝大多数尝试性篡改,但离线方案只能提高专业逆向的成本,无法绝对阻止。
使用场景
- 分发带 scripts 与 references 的 Skill,需要防止他人直接读取或 patch 核心逻辑
- 准备公开分发 Skill,但 references 里的敏感提示词不想以明文出现
- 想按设备 host_id 或有效期限制某个 Skill 的使用范围
- 内部 Skill 需要防止被改 manifest 或删 guard 后二次分发
适合人员
- 编写可分发 Skill 的工程师,担心 scripts 下的核心逻辑被抄走
- 偏好离线方案、不想依赖服务器校验的 Skill 作者
- 维护含敏感提示词的知识库作者,希望 references 数据不外泄
- 为团队打包 Skill 并需要控制授权范围的发布维护者