如何验证你的AI Agent技能未被篡改:NVIDIA Agent Skills的OMS签名校验实战指南
【免费下载链接】skillsAgent Skills for NVIDIA products — install into Claude Code, Codex, and other coding agents to run Physical AI, robotics, simulation, CUDA, and RAG workflows end to end.项目地址: https://gitcode.com/gh_mirrors/skills36/skills
NVIDIA Agent Skills 是面向 Claude Code、Codex 等编码 Agent 的官方技能目录,每个技能都附带 OMS 分离签名文件skill.oms.sig。本文教你用 4 步完成 OMS 签名校验,确认你的 AI Agent 技能自签名发布以来未被篡改,无需任何密码学基础。
为什么 AI Agent 技能需要完整性校验?
Agent 技能不只是文档——它可能指示你的 Agent 执行命令、读写文件、调用工具。这意味着技能目录一旦在传输或缓存环节被改动,风险是真实的:
| 篡改场景 | 可能的后果 |
|---|---|
| 镜像站被投毒 | 技能内植入恶意指令 |
| 本地缓存被修改 | SKILL.md权限声明被悄悄扩大 |
| 脚本文件被替换 | Agent 实际执行了未经审核的代码 |
签名校验回答的就是一个朴素的问题:"我现在装着的技能,和发布者签发的技能,是否一字不差?"
认识技能的"安全三件套" 🧩
在 skills/ 目录下的每个技能(如 skills/cuopt-install/)都采用统一的签名布局:
skill-name/ ├── SKILL.md # Agent 消费的技能指令 ├── scripts/ # 可选:辅助脚本 ├── references/ # 可选:参考资料 ├── skill.oms.sig # ✅ 分离式 OMS 签名文件 └── skill-card.md # 技能治理卡NVIDIA 采用了 OpenSSF Model Signing(简称OMS)格式。与传统只覆盖单个文件的签名不同,OMS 签名覆盖整个技能目录树——包括 SKILL.md、脚本、参考资料和所有支撑文件,唯独排除签名文件自身。
签名之外,还有两样东西共同构成信任链条:
- 签名文件
skill.oms.sig—— 随技能一起分发; - 信任锚点证书—— 仓库根目录的 nv-agent-root-cert.pem,代表"谁签的"这一身份证明;
- 待校验的技能目录—— 你本地安装的那一份。
4步完成技能签名校验
第1步:准备技能目录与信任锚点证书
如果通过官方 CLI 安装(npx skills add nvidia/skills),技能目录会自动就位。若需从仓库获取完整目录结构,可克隆:
git clone https://gitcode.com/gh_mirrors/skills36/skills信任锚点证书nv-agent-root-cert.pem就在仓库根目录,即 nv-agent-root-cert.pem。⚠️ 注意:校验时的证书必须来自你信任的发布方,这是整个信任链条的起点。
第2步:安装校验工具
OMS 签名需要一个兼容的校验器,NVIDIA 推荐使用model-signing包,一行命令安装:
pip install model-signing第3步:运行校验命令
对准你要检查的技能目录执行:
model_signing verify certificate 技能目录 \ --signature 技能目录/skill.oms.sig \ --certificate-chain nv-agent-root-cert.pem以校验 skills/cuopt-install/ 为例,把技能目录替换为skills/cuopt-install即可。
第4步:解读校验结果
- 校验通过:目录内容与 NVIDIA 签发时完全一致,
skill.oms.sig签名有效,且证书链可信; - 校验失败:任一文件被增、删、改,或签名/证书不匹配,都会导致失败。这正是设计意图——签名之后新增的未签名文件,严格校验应当失败,提醒你本地目录已经偏离了已审核版本。
进阶:什么时候可以放宽严格模式?
如果你的政策允许在已签名技能上追加少量未签名文件(例如本地补充的参考资料),可以加上参数:
--ignore-unsigned-files但官方建议:生产环境和企业发布检查优先使用严格校验,除非有文档记录的明确理由(详见 docs/signing-agent-skills.mdx)。
签名校验在发布流程中的位置 🔐
签名只是信任管线的最后一环,而不是全部。NVIDIA 的完整管线(见 docs/agent-skill-trust-pipeline.mdx)按顺序解决三个不同的问题:
| 环节 | 回答的问题 | 留下的证据 |
|---|---|---|
| 扫描(SkillSpector) | 内容安全吗? | 扫描报告 |
| 评估(SkillEvaluator 三层) | 技能真的有用吗? | BENCHMARK.md |
| OMS 签名 | 发布的就是审核过的那份吗? | skill.oms.sig |
顺序是:先扫描、再评审、然后对将要发布的精确目录签名,最后把skill.oms.sig随技能一起发布。需要牢记一点:签名不能证明技能是安全的,它只证明"这份技能就是被签名的那份"。要拼出完整的故事,签名必须配合扫描报告和 skill-card.md 技能卡一起使用。
同步流水线还会强制执行"缺件即丢弃"——缺少签名、技能卡或评估数据集的技能根本无法进入目录,这就是你在仓库中几乎每个技能目录都能找到skill.oms.sig的原因。
新手速查清单 ✅
安装或使用任何已签名技能前,逐项确认:
- 技能目录下存在
skill.oms.sig签名文件; - 证书链来自预期发布者(使用官方 nv-agent-root-cert.pem);
- 已对最终安装目录运行校验命令(不是安装前的下载副本);
- 已阅读技能卡 skill-card.md 与扫描报告;
- 任何本地修改之后,都重新跑一次校验。
常见问题 FAQ
Q:签名文件能检测出哪些篡改?A:目录内任意文件的增、删、改都会导致严格校验失败——包括改一个字节、替换一个脚本、或偷偷新增一个未签名文件。
Q:校验失败了怎么办?A:先确认本地目录是否被修改过;若未修改,则签名或证书不可信,应停止使用该技能,并从官方渠道重新获取。
Q:每个技能都要装一次校验工具吗?A:只需pip install model-signing一次,之后可对任意技能目录重复执行校验命令。
Q:更多技术细节在哪里看?A:官方文档 docs/signing-agent-skills.mdx 覆盖签名布局、校验输入与策略选项;docs/scanning-agent-skills.mdx 介绍安装前的安全扫描;docs/release-checklist.mdx 是发布侧的完整检查清单。
按照这套 OMS 签名校验流程,你无需信任任何人的口头承诺——一条命令,就能让密码学替你回答"我的 AI Agent 技能是否被篡改"。
【免费下载链接】skillsAgent Skills for NVIDIA products — install into Claude Code, Codex, and other coding agents to run Physical AI, robotics, simulation, CUDA, and RAG workflows end to end.项目地址: https://gitcode.com/gh_mirrors/skills36/skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考