wycheproof
作者 trailofbitswycheproof 技能可借助 Wycheproof 测试向量验证加密实现,重点覆盖已知攻击、边界情况以及 Security Audit 工作流中的通过/失败判定。它适合用于检查 AES-GCM、ECDSA、ECDH、RSA 及相关原语,比通用的加密提示更少猜测。
该技能评分为 78/100,属于目录用户的可靠候选项。仓库提供了足够真实的工作流内容,能帮助代理识别何时使用 Wycheproof,并将其用于加密测试任务,比通用提示更少依赖猜测;但它缺少一些入门辅助内容,例如安装命令或配套文件。
- 加密校验的触发条件和适用范围清晰:前置信息明确指出,它适用于测试加密代码中的已知攻击和边界情况。
- 操作内容较充实:正文篇幅大、结构清楚,包含许多标题、工作流部分和代码块,足以让代理按步骤执行。
- 领域价值具体:它解释了测试向量、测试组和结果标志等关键概念,有助于代理更好地进行实现测试。
- 没有安装命令或配套脚本/资源,用户可能需要自行串联调用和执行步骤。
- 描述较简洁且支持文件较少,因此某些环境相关的配置和集成细节仍可能需要人工理解。
wycheproof 技能概览
wycheproof 是用来做什么的
wycheproof 技能帮助你使用 Wycheproof 测试向量,验证密码实现是否能正确应对已知的边界情况和攻击模式。它最适合 Security Audit 流程:当你需要检查某个库、服务或产品是否会接受正确输入、拒绝错误输入,并在歧义场景下安全失败时,它会很有用。
适合谁安装
如果你在审计加密代码、维护对安全要求很高的应用,或者需要一套可重复的方法来测试 AES-GCM、ECDSA、ECDH 或 RSA 这类原语,就应该安装 wycheproof 技能。尤其是在简单提示词不够用的时候,它更能派上用场,因为这类问题的失败模式往往很隐蔽:代码在“正常路径”样例上看起来能跑通,但实际上仍然可能存在漏洞。
它有什么不同
Wycheproof 不是通用的密码学教程。wycheproof 技能的价值在于,它聚焦已知不安全输入、结构化测试组,以及通过/失败/可接受这类结果判定。对于评审或修复场景来说,这让它比一个泛泛的“帮我测试加密”提示词更有决策价值。
如何使用 wycheproof 技能
安装并查看技能内容
先通过你的 skills manager 按正常流程安装 wycheproof 技能,然后第一时间打开 SKILL.md。在这个 repo 里,SKILL.md 是唯一的支持文件,因此不需要再学习单独的脚本层或规则层。也就是说,你的主要工作是直接从技能正文中提炼流程、测试类别和约束条件。
把模糊目标改写成有效提示词
使用 wycheproof 时,最好一开始就明确给出密码原语、实现语言和测试目标。一个弱请求是:“帮我检查一下加密代码。” 更强的请求是:“使用 wycheproof 技能测试我们 Java 的 ECDSA verifier 对畸形签名和边界情况的处理;请报告哪些向量应该通过、失败,或者在我们的策略下应被视为可接受。”
先提供正确的输入
为了获得最佳结果,请包含以下信息:
- 算法或协议
- 语言或库
- 在你的环境里什么算成功
- 你是要做回归测试、审计支持,还是对失败案例进行分诊
- 任何约束,比如 FIPS mode、旧版兼容性或平台限制
这些细节很重要,因为 wycheproof 的输出会随着你是在验证严格拒绝、兼容性行为,还是某个已知例外清单而变化。
按顺序阅读工作流程
一份实用的 wycheproof 指南,最好按这个顺序读:背景、关键概念、适用时机,然后再看测试流程部分。如果你是拿它做 Security Audit,要特别注意技能如何区分有效向量、无效向量和可接受向量,因为这种分类正是避免得出错误结论的关键。
wycheproof 技能常见问题
wycheproof 只适合安全审计吗?
不是。wycheproof 技能当然很适合审计,但在实现阶段和回归测试中也同样有价值。如果你在交付密码功能,这个技能能帮助你在问题变成审计发现之前先把它们找出来。
我需要先成为密码学专家吗?
不需要,但你至少要有足够的上下文,能说清楚原语是什么,以及期望行为是什么。如果你无法判断一个向量应该通过、失败,还是应当根据兼容性规则被接受,那么输出的可操作性就会明显下降。
它和普通提示词有什么区别?
普通提示词可能只会给你一个通用检查清单。wycheproof 技能更适合你需要结构化测试向量推理和边界案例覆盖的场景。它会把任务锚定在已知攻击模式上,而不是泛泛而谈,从而减少拍脑袋式判断。
什么时候不应该用它?
如果你是在从零设计密码协议,或者只是想从高层解释密码学,就不要用 wycheproof。它用于验证和测试,不用于理论教学或产品架构设计。
如何改进 wycheproof 技能
给技能明确的密码目标
提升质量最明显的一步,是把原语、实现和失败模式说清楚。比如,“Python cryptography 里的 RSA-PSS verifier 在某些 salt 长度下失败”就比“我的签名代码坏了”强得多。目标越精确,就越容易匹配到正确的 Wycheproof 向量。
尽早说明你的接受策略
在 wycheproof 工作里,一个常见失败点是把安全正确性和产品兼容性混在一起。你要明确说明:你希望严格拒绝无效向量、兼容旧输入,还是遵循一个已记录的 allowlist。这个区分会改变结果,也能避免第一次输出后出现无意义的来回确认。
迭代的是向量类别,不只是 bug
如果第一次输出发现了失败,不要只围绕那个 bug 继续问,而是要把下一轮请求收窄到相邻案例:附近的密钥长度、畸形编码、截断输入,或者同一测试组里的边界值。这样通常比要求整体重跑更有帮助,因为 Wycheproof 的强项就在于覆盖一整类边界情况。
用输出推动回归测试
一旦确认了问题,就把那个失败案例转换成你自己测试套件里的永久测试。wycheproof 技能最有价值的地方,在于它能产出一条持久的安全审计轨迹:哪个向量失败了、为什么失败、以及未来版本应该强制满足什么条件。
