首个公开的碰撞 SHAttered(CWI 和 Google 的 Stevens 等人,2017年2月)生成了两个 SHA-1 摘要相同的不同 PDF 文件。2020年,Leurent 和 Peyrin 的“SHA-1 is a Shambles”使选择前缀碰撞变得切实可行:只需花费数万美元的 GPU 时间,就能伪造 PGP 密钥认证。抗原像性并未被攻破。
现状:NIST 于2013年禁止用 SHA-1 生成数字签名,并于2022年12月宣布,到2030年12月31日将在所有应用中停止用 SHA-1 施加保护。RFC 9155 在 TLS 1.2 中弃用 MD5 和 SHA-1 签名;浏览器于2017年不再信任 SHA-1 证书;OpenSSH 8.8 默认禁用了使用 SHA-1 的 ssh-rsa 签名算法。
仍在使用它的地方:Git 对象 ID(采用带碰撞检测的实现;也已有使用 SHA-256 的仓库)、OpenPGP v4 指纹、HMAC-SHA1(不受碰撞影响,仍用于 TOTP 和一些较旧的协议)以及遗留证书。只有在攻击者无法影响被哈希数据的场合,才可以接受使用它。