去了 Qualys SSL 实验室并测试了一个网站。其中一项发现表明该站点使用弱算法 SHA1withRSA 进行签名,我做了一些研究,所有人都说我们应该更改为 SHA-2。我可以知道 SHA1 是否真的被黑客入侵或破解或利用尚未保证对 SHA2 进行更改?
谢谢
去了 Qualys SSL 实验室并测试了一个网站。其中一项发现表明该站点使用弱算法 SHA1withRSA 进行签名,我做了一些研究,所有人都说我们应该更改为 SHA-2。我可以知道 SHA1 是否真的被黑客入侵或破解或利用尚未保证对 SHA2 进行更改?
谢谢
自 2017 年起,SHA-1 不应再被视为安全。根据 Stevens 在Nicola Miotto 的回答中引用的 2015 年更有限的结果,谷歌和 CWI 的 Marc Stevens 小组报告了对完整的非缩减轮 SHA-1 的碰撞攻击成功。如需 Google 公告,请单击此处。
这并不意味着 SHA-1 完全被破坏,而只是被破坏了。哈希算法的攻击分为三种类型,按照难度/复杂性的增加顺序排列:
碰撞攻击:找到任何两个不同的输入 x 和 x',它们散列到相同的输出:h(x) = h(x')。
第二次原像攻击:给定一些输入 x 及其散列值 h(x),找到另一个也散列到 h(x) 的输入 x';即 h(x) = h(x')
第一次原像攻击攻击:给定一个哈希值 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 就真正被淘汰了。
是的,这里有两个具有相同 SHA1 哈希的不同文件:shattered-1.pdf和shattered-2.pdf
$:~/Documents$ md5sum shattered-*
ee4aa52b139d925f8d8884402b0a750c shattered-1.pdf
5bd9d8cabc46041579a311230539b8d1 shattered-2.pdf
$:~/Documents$ sha1sum shattered-*
38762cf7f55934b34d179ae6a4c80cadccbb7f0a shattered-1.pdf
38762cf7f55934b34d179ae6a4c80cadccbb7f0a shattered-2.pdf