在破碎的网站上:


您可以使用上面的在线工具提交文件,并检查它们是否对SHA-1进行了密码分析碰撞攻击。其背后的代码由Marc Stevens(CWI)和Dan Shumow(Microsoft)开发,并在GitHub上公开可用。

它基于反密码分析的概念,并且能够检测到已知的仅从冲突文件对中的单个文件就可以发现未知的SHA-1密码分析冲突攻击。


以及以后的版本:


强化的SHA-1是否容易受到攻击?

不,SHA-1带有计数器进行了强化-cryptanalysis(请参阅“如何检测攻击”)将检测到密码分析冲突攻击。在那种情况下,它将调整SHA-1计算以产生安全的哈希。这意味着它将为没有冲突攻击的文件计算常规的SHA-1哈希,但为发生冲突攻击的文件生成特殊的哈希,这两个文件将具有不同的不可预测的哈希。

<最终从GitHub页面上-我假设上面的代码被称为“强化” SHA-1:


...更具体地说,它们将检测到针对SHA-1的任何密码分析碰撞攻击使用概率为1的前32个SHA-1干扰向量中的任何一个:

I(43,0), I(44,0), I(45,0), I(46,0), I(47,0), I(48,0), I(49,0), I(50,0), I(51,0), I(52,0), 
I(46,2), I(47,2), I(48,2), I(49,2), I(50,2), I(51,2), 
II(45,0), II(46,0), II(47,0), II(48,0), II(49,0), II(50,0), II(51,0), II(52,0), II(53,0), II(54,0), II(55,0), II(56,0),
II(46,2), II(49,2), II(50,2), II(51,2)





这些向量究竟是什么?还会有其他易受攻击的媒介吗? “强化” SHA-1提供多少保护?

#1 楼

强化的SHA-1会检测某种形式的碰撞,如果有人使用强力生日攻击(目前尚不可行)来发现碰撞,则检测将无法进行。

向量是特定的小差异,可能有助于将近距离碰撞转换为完全碰撞。

详细信息在论文中:https://marc-stevens.nl/research/papers/C13-S.pdf

这将检测到具有以下特征的攻击:与执行的攻击类似的构造。但是,将来的密码分析可能会导致其他形式的攻击。值得一提的是,任何可能容易受到新型攻击的哈希函数。 SHA-3可能还容易受到未知攻击的攻击。<​​br />
Hardened SHA-1几乎一直都与SHA-1相同,诚实使用的差异可能小于2美元。 ^ {-90} $。但是,它应该可以通过检测攻击并将输出更改为不同的东西来抵御攻击。

SHA-1直到最近一直没有碰撞。在这方面,硬化的SHA-1应该是安全的;比SHA-1安全得多。它显然比彻底破坏的选件(例如MD5)要好。


严格的SHA-1试图向后兼容SHA-1。如果不需要此向后兼容性,请不要使用它,即使必须将其截断为160位,也请使用SHA-3或SHA-2。

评论


$ \ begingroup $
我对答案做了一些肤浅的更改(主要是关于语言使用方面的问题),并且在答案下方放置了有关使用其他哈希函数的警告。但是,您能否解释“诚实使用”的含义?哦,感谢您的回答,当然,已经投票了!
$ \ endgroup $
–马腾·博德威斯♦
17-2-23在21:03



$ \ begingroup $
我将“诚实用法”理解为对非恶意输入的操作,即可接受地将输入建模为随机的,而不是专门为利用SHA-1的弱点而设计的
$ \ endgroup $
– bmm6o
17年2月24日在0:08

$ \ begingroup $
我想我在再次解析文本后就明白了。如果尝试了碰撞攻击,则它当然将与原始SHA-1输出不同,因为它将以比$ 2 ^ {-90} $高得多的确定性触发输出更改(更可能是1的机会当前的攻击)。很有道理,谢谢bmm60。
$ \ endgroup $
–马腾·博德威斯♦
17年2月24日在0:18

$ \ begingroup $
@Maarten Bodewes:到目前为止,我还看不到还有其他易受攻击的媒介吗? “强化” SHA-1提供多少保护?已解决。该论文包含“我们(任意提议)将自己限制在以下14个最佳干扰向量”的承认,这至少为使用另一个检测向量和逃避检测提供了可能性,其中有一些未指定,但(我想)没有-巨大的额外攻击成本。
$ \ endgroup $
–fgrieu♦
17 Mar 7 '17 at 16:20



$ \ begingroup $
该阈值有些随意,从原始论文中的14增加到32。这是发起与所执行的攻击类似的攻击的最佳干扰向量,而在使用相似的攻击框架时避免所有这些会导致攻击的增加。不太有效的攻击,我还没有看到使用下一个在线干扰向量来分析攻击的运行时间。我怀疑这很重要,尽管可能比2 ^ 80还好
$ \ endgroup $
–梅尔·莫尔(Meir Maor)
17年3月8日在6:18