火星科技网您的位置:首页 >互联网+ >

SHA-1碰撞攻击现在实际上是实用的并且迫在眉睫

导读 上周发现有史以来第一次选择前缀碰撞攻击,对SHA-1哈希算法的攻击变得更加危险,这是一个更为实用的版本,由Google首次进行的SHA-1碰撞攻击

上周发现有史以来第一次“选择前缀碰撞攻击”,对SHA-1哈希算法的攻击变得更加危险,这是一个更为实用的版本,由Google首次进行的SHA-1碰撞攻击两年前。

这意味着现在可以使用自定义输入执行SHA-1冲突攻击,并且它们不再仅仅是意外事故,允许攻击者将某些文件作为目标并进行复制和伪造。

SHA-1碰撞攻击

SHA-1散列函数在理论上于2005年被破坏;然而,现实世界中第一次成功的碰撞袭击是在2017年进行的。

两年前,谷歌和CWI的学者们制作了两个具有相同SHA-1哈希(数字签名)的文件,这是世界上第一次SHA-1碰撞攻击 - 被称为“被攻击”。

密码学家预测SHA-1将在实际场景中被打破,但是SHAttered研究比他们预期提前三年,并且使用云租用的计算能力执行仅花费110,000美元,远远低于人们认为可能花费的成本。

SHA-1选择前缀攻击

但上周,来自法国和新加坡的学者团队在题为“从碰撞到选择 - 前缀”的新研究论文中,通过展示首次SHA-1“选择前缀”碰撞攻击,进一步推动了SHAttered研究。碰撞 - 应用于完整的SHA-1。“

“找到一个实际的碰撞攻击当然会严重破坏哈希函数,但是这种碰撞可以造成的实际损害有些限制,因为攻击者几乎无法控制碰撞的实际数据,”Thomas Peyrin,一个该研究员周末通过电子邮件告诉ZDNet。

“一个更有趣的攻击是找到一个所谓的'选择前缀冲突',攻击者可以自由选择两个冲突消息的前缀。这种冲突会改变威胁方面的一切,因为你现在可以考虑与内部有意义的数据(如数字证书中的名称或身份等)。“

这意味着SHA-1碰撞攻击不再是轮盘游戏,现在,威胁演员可以伪造他们想要的任何SHA-1签名文档,从商业文档到TLS证书。

SHA-1选择前缀冲突攻击现在也很便宜

但Peyrin和他的同事Gaetan Leurent所做的工作远远超出了证明SHA-1选择前缀冲突攻击在理论上是可行的。

他们还表明,这种攻击现在很便宜,并且在网络犯罪和民族国家攻击者的预算中。

“这些选择前缀碰撞被认为比经典碰撞更难找到。对于SHA-1,最好的先前搜索方法需要2 ^ 77个SHA-1评估,这在实践中仍然遥不可及,”Peyrin告诉ZDNet。

“我们文章中的新颖之处在于,我们解释了如何大幅度降低为SHA-1寻找所选前缀冲突的成本,降低到与发现经典碰撞几乎相同的成本,”他说。

“我们目前正在进行进一步的改进(尚未发布),我们现在评估一个人可以找到SHA-1的选择前缀冲突,预算低于100,000美元,这是非常实用的。”

这与原始的SHAttered研究大致相同,但是,这种攻击版本是攻击者在他们想要攻击受SHA-1保护的数据时可能会使用的。

“我们测试了攻击的所有子组件,但我们还没有尝试计算选择前缀冲突的例子,”Peyrin说。

“我们最初的估算是100万美元用于计算所选择的前缀冲突,这是我们根本没有的金额。由于我们最新的改进,成本低于100,000美元,我们目前正致力于计算首选SHA-1的前缀冲突。

“希望我们能尽快公布新的结果,”研究人员说。

远离SHA-1

浏览器供应商很久以前就开始弃用对其产品中SHA-1签名的TLS流量的支持;但是,其他应用程序仍然依赖它。

“仍有许多用户使用较旧的浏览器,许多协议和软件都允许SHA-1签名。具体而言,仍然可以从受信任的CA购买SHA-1证书,许多电子邮件客户端在接受SHA-1证书时打开TLS连接,“Peyrin告诉我们。

“SHA-1也被广泛支持来验证TLS和IKE握手消息。现在,什么协议可以被攻击,目前很难说到什么程度,因为它需要仔细审查协议的内部工作以及如何使用数字签名/证书等。

“然而,我们可以说的是,我们的攻击使用数字签名或基于SHA-1的证书可能存在风险产品,”Peyrin说。

“带回家的消息应该是使用SHA-1进行数字

。”

签名或证书是非常危险的,不应该被允许。强烈建议这样做的人现在更换为SHA-2或SHA-3

用什么?

“对SHA-1的攻击只会变得更好,”Paragon Initiative Enterprises首席开发官兼领先的密码学家Scott Arciszewski在另一封电子邮件中告诉ZDNet。

“每个人都应该切换到(按照优先顺序):

BLAKE2b / BLAKE2s

SHA-二百五十六分之五百一十二

SHA3​​-256

SHA-384

任何其他SHA2系列哈希函数作为最后的手段

“......除非他们存储密码!在这种情况下,他们应该切换到(按照优先顺序):

内存> = 32MiB,> = 2轮,> = 2并行度的Argon2id

scrypt / yescrypt with memory> = 32 MiB,> = 4轮,> = 1 parellelism

bcrypt(对于PHP devs,password_hash()和password_verify()可以解决问题)

PBKDF2-SHA512具有85,000次迭代作为最后的手段

“但不应再使用SHA1了。没有借口,”Arciszewski说。

标签:

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如有侵权行为,请第一时间联系我们修改或删除,多谢。