Agent Skills
返回列表
🔒

哈希攻击技术手册

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/hash-attack-techniques-vbhy

技能介绍

解决什么问题

哈希函数广泛用于消息认证、完整性校验和工作量证明,但 Merkle-Damgård 结构的内在缺陷让一类攻击始终存在。当服务端用 H(secret || msg) 做签名、用 MD5 校验上传文件、或用 SHA-1 保护 Git 提交时,攻击者并不需要还原明文——他们只需要构造出能通过校验的不同输入。本技能针对这些具体场景,提供一套从判断可行性到落地攻击的完整分析流程。

核心能力

技能按攻击类型组织,每类都包含选型判断和工具链:

  • 长度扩展攻击:利用 Merkle-Damgård 的内部状态可复用特性,在已知 H(secret || msg) 和密钥长度时追加任意后缀。MD5、SHA-1、SHA-256、SHA-512 均受影响;SHA-3、HMAC-*、BLAKE2 因结构不同不受影响——这是最容易被误用的地方,技能会明确区分。
  • 碰撞攻击:区分相同前缀碰撞(fastcoll)与选择前缀碰撞(hashclash),后者可将两个任意前缀碰撞为同一哈希,曾用于伪造 CA 证书和构造 SHAttered 双 PDF。
  • 生日攻击与中间相遇:针对通用碰撞边界与 O(2^(n/2)) 复杂度的估算,以及将哈希计算拆分两半做预计算匹配的思路。
  • HMAC 时序侧信道:逐字节比较 HMAC 时,若不做常数时间比较会泄露密钥信息;技能同时给出防御方案。
  • 工作量证明求解:覆盖 CTF 中常见的前导零哈希题,支持 GPU 加速与 Python 暴力破解两条路径。

适用边界

  • 本技能面向 CTF、渗透测试与安全研究,不适用于绕过生产环境的真实防护。
  • 碰撞攻击对现代算法(如 SHA-256 的完整攻击、SHA-3)不现实,技能内置的决策树会先判断攻击是否可行,避免盲目选错工具。
  • HMAC 长度扩展是常见误区:密钥作为独立输入参与两次哈希,攻击不成立,技能对此有专门辨析。
  • 密码存储部分仅覆盖彩虹表原理与加盐的必要性,现代口令哈希应直接选用 Argon2 或 bcrypt。

使用场景

  • CTF 比赛中遇到 `H(secret||msg)` 签名,需要追加后缀伪造合法消息
  • CTF 出题要求找两个不同内容的文件拥有相同 MD5,需构造碰撞
  • 渗透测试发现服务端用 HMAC 逐字节比较,想通过时序侧信道恢复密钥
  • CTF 工作量证明题要求找到哈希值前导零的输入,需快速暴力求解

适合人员

  • CTF 选手,比赛中需要快速判断哈希题该用长度扩展还是碰撞攻击
  • 安全工程师,在代码审计中发现系统使用 MD5 或 SHA-1 时想评估真实风险
  • 后端开发者,设计接口签名方案时想确认 HMAC 能否防御长度扩展
  • 密码学研究者,研究 Merkle-Damgard 构造弱点及其对现有协议的影响