CyberGlossary

攻击与威胁

彩虹表攻击

别称: 时间-空间折中

定义

一种预计算攻击,通过把哈希函数与归约函数交替形成的链以紧凑表格存储,从而能远比暴力破解更快地反推未加盐的密码哈希。

彩虹表将整个候选密码空间经过哈希函数处理的结果编码为交替进行哈希与归约的链,只存储链的端点。破解时,攻击者持续应用归约链,直至匹配到一个端点,然后顺着该链回溯出原始密码。它是一种用空间换时间的折中,可以在几乎瞬间破解未加盐的短密码哈希。但当每个用户使用独立随机盐,并使用 Argon2id、bcrypt、scrypt 等 memory-hard 哈希时,彩虹表基本失效——这也是任何严肃的认证设计都必须使用加盐哈希的原因。

示例

  • 使用公开彩虹表破解未加盐的 MD5、SHA-1 密码库。
  • 使用 ophcrack 表恢复一定长度内的 NTLM 密码哈希。

相关术语