关注网络安全
和行业未来

SHA-1被破 是确有其事 还是夸大其词?

“实际上我们已经攻破了SHA-1。”这是shattered.io网站的开场白,该网站是首次实际演示针对SHA-1哈希算法的碰撞攻击的官网。该研究由阿姆斯特丹CWI研究所的Marc Stevens和Pierre Karpman以及谷歌的一个团队合作开展。

哈希算法应为每个文件创建一个单独的哈希值。该哈希值可以用于比对和识别文件。在某些系统中,哈希值被当作了数字签名,计算机依靠它们来判断文件的可靠性。

“···仅仅演示一次碰撞攻击距离‘攻破’一个哈希算法还差得很远。”

一次碰撞是指,两个由不同的二进制数组成的不同文件产生了相同的哈希值。这将导致进行比对的计算机无法区分这两个文件,这样攻击者就可以利用这个漏洞来进行各种攻击。

这个碰撞攻击不容置疑地证明了,在那些出于安全目的而运用哈希算法的系统中, SHA-1算法并不安全。然而,即便这次碰撞攻击是攻破SHA-1算法的重大进展,并不意味着SHA-1哈希算法突然就变得不可靠了,也不意味着人们需要马上开始转变加密方式。

SHA-1哈希算法从2005年以来就一直被公认易受攻击。最近几年,infosec社区中的很多人都认为SHA-1碰撞攻击很快就会出现,虽然有待证明,但这的确是足够严重的问题,在很多领域人们都在试图寻找更可靠的替代算法。这也刺激了SSL行业从3年前就开始从SHA-1中寻求转变。

按照Valerie Aurora的“加密哈希函数生命周期中各阶段反应情况表”,首次实际碰撞攻击展示意味着,现在应该对该攻击所包含的高技术水准感到惊讶,但还不能就此说要进入防御状态。

因为,仅仅是一次展示对于“攻破”哈希算法还远远不够。这只是真正宣布攻破一个算法所需要进行的一系列攻击展示中的第一次,随后会出现这些攻击引起的实际问题。

因为这是一个相同前缀的攻击,目前可能实现的攻击场景十分有限。在明码中,一个相同前缀的攻击需要攻击者能够制造、控制或影响‘原’文件和碰撞文件。这意味着针对已存在文件制造一次碰撞,就像第三方网站的SSL证书一样,还不可行。

即便你在想象中发起的这次攻击能够满足这些条件,你还必须应付操作成本。运用Shattered技术产生一次SHA-1碰撞需要进行9×1018次SHA-1计算。这个数字是 9,223,372,036,854,775,808,红色粗体的数位代表的是万亿位,为了便于理解,我们标出了比较熟悉的一个大数。

也就是说,处理如此巨大的计算量需要非常强大的计算能力。

这个技术需要两个不同的步骤,第一步需要6500年的CPU计算时间,然后第二步需要110年的GPU时间。如果你想要用Amazon Web Services之类的云计算服务来完成这件工作,将花费你6位数的钞票。这仅仅是为了产生一次碰撞。

在这种成本下,制造SHA-1碰撞对大多数机构和个人来说还不可行,而对于更多的能够负担这个成本的人来说,也并不值得。当然,对需要实现顶级目标的国家来说,这并非是完全无法做到。一些政府已经花费了超过100万美元来实施零日攻击,并花费其它资源对政治目标进行攻击,所以他们还是可以把这个招数放进他们的武器库。

但我们中的多数人并不是要攻击目标的政治活动家。那么,对于普通人和infosec社区来说,Shattered碰撞攻击到底意味着什么?

幸运的是,对于SSL行业来说,(SHA-1)数量并不多。公开可信的SSL证书一直使用SHA-256哈希算法,这在未来很多年都很安全。Chrome的最新版本已经阻了所有SHA-1证书作为可信根证书,而Firefox刚刚宣布,将立即采取同样的措施来应对这一事件。

但其他系统和软件仍使用SHA-1,这些社区现在需要应对这次碰撞攻击带来的现实威胁。例如,GIT版本控制系统使用SHA-1哈希算法来识别存储的版本和用户提交的版本。邮件加密系统PGP对SHA-1签名的依赖也很严重,经常见到它们在商用卡片上打印PGP密钥的摘要。

虽然Shattered碰撞攻击不太可能在明天就带来伤害,但在不久的将来,这会是一个风险,并且需要做出很大改变,需要推动一些系统转向新的哈希算法。这在过去十多年来还是第一次。

稿源: the ssl store

评论 抢沙发