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说。
标签: 网络安全