HTML5技术

从SHAttered事件谈安全 - 阿里聚安全(2)

字号+ 作者:H5之家 来源:H5之家 2017-02-28 12:00 我要评论( )

所以并不是大公司更新了证书,用户就可以高枕无忧。以HTTPS为例,只要浏览器还支持SHA-1,那么攻击者就可以伪造一个SHA-1签名的证书来冒充,即便被攻击的对象早已升级成了更安全的证书。因为浏览器会直接信任收到的

所以并不是大公司更新了证书,用户就可以高枕无忧。以HTTPS为例,只要浏览器还支持SHA-1,那么攻击者就可以伪造一个SHA-1签名的证书来冒充,即便被攻击的对象早已升级成了更安全的证书。因为浏览器会直接信任收到的SHA-1假证书,并不知道新证书的存在。这种方式的攻击只能从各方面来缓解,真正要杜绝,只能让浏览器彻底不支持SHA-1。

(以下以Windows为例,其它产品情况类似,或者更糟吧)

幸运的是,我们生活在一个科技快速更新的时代,Windows 10已经迭代了多个版本,大家觉得够好用的Windows 7 ,实际上都是8年前的“老古董”了,好在老家伙们都老当益壮,没有问题。

不幸的是Windows XP!Windows XP在SP3之后才支持SHA-2,才能够淘汰SHA-1。问题:国内还有多少Windows XP的用户,几百万?他们打死不升级系统还会在乎是SP几么。但是又不能彻底放弃XP,难道只有时间才能告诉我们答案……

历史的行程和改进建议

这次大新闻还给出了攻击的代价。相比MD5可以用手机秒算而言,SHA-1的代价是110个GPU一年。这个代价对于中小企业和个人还是很难接受,但是对于大公司而言是可以做到的。更别忘了摩尔定律还在垂死挣扎,拥有更加高效,更加廉价的计算资源,也是历史的行程,不能不考虑。

↑ 图6 代价对比

所以,在安全领域,一种算法用到天荒地老是不太现实的。实际上每一种密码学算法都有其预估的生命周期,“道高一尺,魔高一丈”,不断的更新迭代,才铸就了密码学今日的辉煌。

例如,文献[3]给出了Hash的生命周期。

↑ 图7 Hash的生命周期

简言之,红色已死,黄色有小病,绿色的活蹦乱跳。

这次的新闻,给SHA-1画上了句号,目前依然存活的是SHA-2(例如SHA-256)和SHA-3(Keccak是最终胜出者)。

所以改进的思路倒是很简单:新的项目全用SHA-2或者SHA-3就可以了。SHA-2已经非常成熟,直接拿来用即可。SHA-3的各种高效实现也层出不穷,这些都是依然安全的Hash算法(Keccak真是一个年轻充满活力的算法,个人推荐)。

对于正在开发的项目,能换的赶紧换,不能换的也要创造条件换。毕竟以后摊子大了更加不好办。

对于已有的项目,比如Git这种情况,想更换也就只能慢慢迭代更新了。这确实是有较大的工程量。如这里[4]提到的,单单是替换硬编码的unsigned char[20],可能就需要不少精力。
(SHA-256和SHA-3的输出都不止160bits,20字节的空间是不够的)

此外对于一些安全不敏感的应用,也可以不用换。MD5理论上已经“死了”十多年了,但是还是有不少地方在使用它们。毕竟软件工程上有牵一发动全身的特点,如果仅仅为了替换一个算法,而引入了更多不该有的bug,反而得不偿失。

最后是对于普通用户的建议:有条件就更新。消费电子产品买新不买旧在历史的行程上看还是总体正确的。即便硬件不能更新,软件也要及时更新,这能解决很多安全上的问题(虽然也可能带来一些小的麻烦)。

参考文献

[1] How would Git handle a SHA-1 collision on a blob?

[2] Wang X, Yin Y L, Yu H. Finding collisions in the full SHA-1[C]//Annual International Cryptology Conference. Springer Berlin Heidelberg, 2005: 17-36.

[3] Lifetimes of cryptographic hash functions

[4] Why doesn't Git use more modern SHA?

[5] Stevens M. New collision attacks on SHA-1 based on optimal joint local-collision analysis[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer Berlin Heidelberg, 2013: 245-261.

作者:cyxu,更多安全类文章,请持续关注阿里聚安全的官方博客



 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Omi教程-生命周期和事件处理 - 【当耐特】

    Omi教程-生命周期和事件处理 - 【当耐特】

    2017-02-23 12:00

  • 利用HTML5的devicemotion事件实现手机摇一摇抽奖,年会抽奖 - 熊仔其人

    利用HTML5的devicemotion事件实现手机摇一摇抽奖,年会抽奖 - 熊仔其

    2017-01-16 12:00

  • 干货来袭-整套完整安全的API接口解决方案 - hubro

    干货来袭-整套完整安全的API接口解决方案 - hubro

    2017-01-05 17:00

  • 验证码的前世今生(前世篇) - 阿里聚安全

    验证码的前世今生(前世篇) - 阿里聚安全

    2016-11-03 17:00

网友点评
s