在密码学家的舒适世界中,每个人都知道这只是时间问题。决定性的时刻现在已经到来:SHA-1 加密哈希函数已被研究所的一组研究人员彻底破解谷歌研究等CWI 阿姆斯特丹。
加密散列是计算机安全系统中的基本要素。它允许从任意数量的数据创建固定大小的唯一指纹,从中不可能猜测原始数据。这在加密通信(TLS、SSL)、电子签名、备份系统、银行交易等各种应用中非常有用。例如,大多数 Web 服务都使用密码哈希来验证其用户身份。
SHA-1 算法由 NSA 于 1995 年创建,长期以来一直是全球使用的主要哈希函数之一。从2005年开始,研究人员开始指出该系统的潜在缺陷并开发攻击。这些仍然是理论上的,因为它们需要无法达到的计算能力。但随着计算机能力的不断增强,标准组织 NIST 在 2011 年正式建议不再使用 SHA-1。
来自谷歌研究院和阿姆斯特丹 CWI 的研究人员刚刚通过首次进行“密码碰撞”,为该算法的棺材钉上了钉子。换句话说,他们设法创建了两个不同的 PDF 文件,生成相同的指纹,从而具体证明了该漏洞。例如,这种称为“SHAttered”的攻击将允许将相同的电子签名放置在两个不同的文档上,从而为各种诈骗打开了大门。研究人员将在 90 天内公布其攻击的源代码。从那里,每个人都可以创建具有相同 SHA-1 指纹的 PDF 文件对。
产生这种碰撞并不是一件容易的事。它花费了超过…90 亿次 SHA-1 迭代。相当于CPU运行6500年,GPU运行110年的算力,因为这次攻击有两个不同的计算阶段。与此计算相关的数学细节在科学论文。这项工作是在谷歌服务器网络上具体进行的。第一阶段依赖于主频为 2.3 GHz 的 Xeon E5-2650v3 芯片。在第二阶段,研究人员使用了 nVidia Tesla K20/K40/K80 图形芯片。
35% 的网站仍然依赖 SHA-1
除了引人注目的一面之外,这次成功的攻击还表明,仍然使用 SHA-1 的系统不再安全。即使谷歌、微软、Mozilla 或 Facebook 等大多数主要参与者已禁止在其产品或服务中使用 SHA-1,该算法仍然广泛分布。根据威胁站,35% 的网站仍然使用基于 SHA-1 的证书。 10%的银行卡支付系统也是如此。被编码人员广泛使用的GIT IT开发支持软件也是基于SHA-1的。
认为自己正在处理专门作为碰撞攻击一部分而创建的文件炸弹的用户可以在网站上检查它粉碎.io,由研究人员特别创建。只需上传文件即可确定。这个工具其实“基于反密码分析的概念,能够从冲突对中的单个文件检测已知或未知的冲突攻击”,研究人员解释道。就系统管理员而言,建议不再实施 SHA-1,而是用 SHA-3 或 SHA-256 等后继者代替。