这是 2015 年。SHA1 被利用或破解了吗?

信息安全 tls 哈希
2021-08-15 07:06:15

去了 Qualys SSL 实验室并测试了一个网站。其中一项发现表明该站点使用弱算法 SHA1withRSA 进行签名,我做了一些研究,所有人都说我们应该更改为 SHA-2。我可以知道 SHA1 是否真的被黑客入侵或破解或利用尚未保证对 SHA2 进行更改?

谢谢

4个回答

自 2017 年起,SHA-1 不应再被视为安全。根据 Stevens 在Nicola Miotto 的回答中引用的 2015 年更有限的结果,谷歌和 CWI 的 Marc Stevens 小组报告了对完整的非缩减轮 SHA-1 的碰撞攻击成功如需 Google 公告,请单击此处

这并不意味着 SHA-1 完全被破坏,而只是被破坏了。哈希算法的攻击分为三种类型,按照难度/复杂性的增加顺序排列:

  1. 碰撞攻击:找到任何两个不同的输入 x 和 x',它们散列到相同的输出:h(x) = h(x')。

  2. 第二次原像攻击:给定一些输入 x 及其散列值 h(x),找到另一个也散列到 h(x) 的输入 x';即 h(x) = h(x')

  3. 第一次原像攻击攻击:给定一个哈希值 y,找到一个输入 x,使得 x 哈希到 y:h(x) = y。

调查结果仅报告第一种情况的成功。碰撞攻击允许攻击者将两个不同的文件呈现为具有相同的哈希签名,从而假装它们是同一个文件。这种攻击的实用性有限,例如,不能用于解密 SSL/TLS 流量或将散列密码反向转换为明文等价物。但是,如果 CA 在MD5 因碰撞而同样被破坏后不小心添加所需的随机性,攻击者可能能够将有效证书更改为不同的身份和/或权利,从而伪造证书和/或签名,如果他们可以还有中间人流量,以模拟 SSL/TLS 服务器。

目前在学术条件下没有充分证明涉及 SHA-1 和使用 SHA-1 结构弱点的实际中断,更不用说在野外了。

我们现在拥有的最好的是理论上的碰撞攻击,它应该允许攻击者计算 SHA-1 碰撞的努力“大约 2 61 ”,这是巨大的,但仍远低于“完美”哈希预期的 2 80阻力具有 160 位输出的功能。虽然 2 61在现有技术的范围内是可以实现的,但即使是富裕的大学,随便沉迷于这种实验也太昂贵了。所以还没有产生实际的碰撞。此外,对于实际的攻击者来说,计算碰撞很少能获得很大的权力——攻击者通常必须在计算碰撞时对碰撞消息的内容有一定程度的控制,这可能更难(也可能更难)。

另一个参数是,即使 SHA-1 是完美的,它的输出大小(160 位)意味着其碰撞阻力的最大界限约为 2 80 ,这是 2 61的 50 万倍(因此相当昂贵),但在同时并不最终昂贵。可以使用地球上现有的技术和资源来设想2 80计算,而无需调用一些科幻内容或违反物理定律。

由于在已部署的应用程序中切换算法需要花费大量时间(嘿,我们仍在努力让人们停止使用 SSL 3.0,转而使用 TLS 1.0,在 TLS 1.0 发布超过 15 年之后),我们最好得到它现在开始,这样当技术改进到 2 80努力在实践中变得可行时,SHA-1 就真正被淘汰了。

根据最近的发现,SHA-1 碰撞不再是一个简单的理论。看看论文网站斜线点帖子中所述

来自荷兰和新加坡大学的研究人员通过在 SHA1 压缩函数处发现冲突,成功地对 SHA-1 哈希算法进行了初步攻击

他们估计 SHA-1 碰撞成本在 75K$ 和 120K$ 之间,在 EC2 上进行了几个月的计算。也许是时候更新了。

是的,这里有两个具有相同 SHA1 哈希的不同文件:shattered-1.pdfshattered-2.pdf

$:~/Documents$ md5sum shattered-*
ee4aa52b139d925f8d8884402b0a750c  shattered-1.pdf
5bd9d8cabc46041579a311230539b8d1  shattered-2.pdf
$:~/Documents$ sha1sum shattered-*
38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-1.pdf
38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-2.pdf