开发者社区> 寒凝雪> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SHA-1 碰撞攻击将会对我们产生怎样的现实影响?

简介:
+关注继续查看

近期,Google和荷兰国家数学和计算机中心(Centrum Wiskunde & Informatica,CWI)的研究人员完成了针对第一例SHA-1的碰撞攻击,创造了两个hash值完全相同但内容截然不同的文件。然而,在真实的信息安全世界中,这种攻击又会怎样对个人和组织机构造成何种威胁呢?

对SHA-1算法不安全的担心由来已早。在2015年荷兰国家数学和计算中心和新加坡南洋理工大学研究员联合发表的论文中,描述了SHA-1碰撞攻击的各种理论性可能。同时,在RSA 2016的密码学家研讨会上,该篇论文得到了很多关注,参会的著名密码学专家Adi Shamir也预测,真实的SHA-1碰撞攻击在未来几个月将会成功实现。在此次会议之后,一些安全公司正式对外宣布SHA-1机制可能存在缺陷;与此同时,因为没有真实的攻击成功案例,这种攻击也带来了诸多质疑。


c25c76656ff4ea5d66f6de2809908c1e10bd01ba

但为了防止任何理论攻击可能,去年开始,一些安全公司开始反对继续使用SHA-1算法。尽管谷歌、Facebook、微软和Mozilla等公司已采取措施替换SHA-1算法,但哈希函数仍在广泛使用。当Google和CWI的实验成功之后,SHA-1碰撞攻击再次受到关注。这种攻击已经成为现实,所以,我们应该如何去防范和修复呢?

影响分析

几年前,针对MD5算法存在“构造前缀碰撞攻击”(chosen-prefix collisions),而真实案例中,Flame(火焰)病毒就使用了此种攻击方法。SHA-1碰撞攻击实现后,恶意软件开发者将会创造什么样的病毒,值得想像。

在此,我们就针对一些利用微软签名校验的恶意程序,结合SHA-1碰撞作一些攻击可能的探讨。为了说明SHA-1碰撞攻击的现实威胁,我们找到了一例很有趣的例子:微软内核模式代码签名策略,攻击针对目标是加载的内核模式驱动程序签名认证,以下是包括WIN 10在内的该类签名规范和要求:


2834d3d849833eff72dc2f0579d037182d77d9f3

我们可以看到,其中列出的哈希机制就包括SHA-1,所以,毫无疑问,SHA-1碰撞攻击将会产生驱动签名滥用情况,为恶意内核代码程序的利用传播敞开大门。事实上,SHA-1签名校验的驱动程序并不少见,以下就是一些我们发现的实例:


cb53a3427daa1530abebbfc07009a6c4f99e926d


ef26d7331e8ab04ce07d02ef63a32e0d553810da

在Win 10系统中,这类存在“风险隐患”的驱动程序是不是就非常少呢?但由于存在很多第三方驱动,所以,情况让你超乎想像。虽然微软在最新的系统适配产品中明确反对SHA-1机制认证程序,但很多第三方驱动依然大范围存在此种情况。另外,在一些之前的操作系统版本(Win 7Win 8)中,还存在着大量且多年未更新的此类驱动。例如:


5d506fb3e311928fe2a0eab00783e0861bdbfbb2


935a84d66d57a728fbabc736e815ed6df857929b


679a689eb943dcbc9088f2a2deed780b12cfc657


ee681d4c6af7c542a5b06e72bf5ffc5103908b07

从这里就可以看出,SHA-1将会成为很多组织机构和相关系统的一个心头大患。受影响的系统和服务包括:数字证书签名、邮件、PGP/GPG 签名、软件发布签名、备份系统、冗余热备份系统、Git……等等,除了网络安全之外,影响将会波及很多使用传统操作系统的大型组织机构。这种很多第三方软件公司持续使用的,运行机制本身就存在的问题,将会成为一个严重的信息安全问题。要保证安全,只有从核心和本质上进行处理,但对很多软件公司来说,这又会成为一个“牵一发动全身”的棘手问题。

深入研究之后,我们甚至发现一些固件和硬件也受到此问题影响。例如,普遍使用的仅支持SHA-1验证的TPM 1.2芯片,SHA-1碰撞攻击将会直接对一些使用SHA-1算法的固件可信启动机制造成影响。在这方面,微软在Win10系统中已经作了一些限制,如其加密方式不支持TPM1.2芯片。

SHA-1碰撞攻击的恶梦才刚刚开始,我们应该尽快结束使用SHA-1的时代。谷歌将在接下来的90天内公布SHA-1碰撞攻击的测试工具。

SHA-1碰撞会被用到一些野生攻击中吗?

证据表明,攻击者必须在拥有原始文件和已知哈希的情况下才能完成碰撞攻击,另外,由于攻击利用了定向编辑,不是每次编辑都会有效。换句话说,即使是破解了SSH或TLS的认证证书,也都不可能实现,需要对原始文件进行一些非常细微的定向更改才能保证碰撞攻击成功。

虽然在某种程度上来说,更改签名验证很容易实现,但如果要进行伪装式的SHA-1碰撞攻击,想要让受害者迷惑,完全对看不出马脚,这就需要对利用文档进行破坏性的改造,而不只是通常性修改。后续可能会有一些针对SHA-1碰撞攻击的检测研究。

总体上来说,要实现该项攻击需要很大的代价成本。如果攻击者使用类似于比特币挖矿的专业装备和技能,攻击可能将会变得更加便捷。Google和CWI声称,该攻击实现需要大量的CPU和GPU计算,同时还需高效的分布式操作,攻击第一阶段攻击是在Google的异质CPU集群上进行的,并扩展至8个物理地址;第二阶段攻击代价更高,是在Google的K20、K40和K80异质GPU集群上进行的。经相关研究人员计算得出,使用亚马逊云服务AWS进行第二阶段的攻击,耗资约56万美元。但是,若攻击者足够耐心并利用现场参考案例,成本可降至11万美元。

如何修复和预防这种攻击呢?

作为安全和开发团队来说,最好的方法就是使用SHA-256等更复杂的算法,或使用两个独立的加密算法。当然,对于攻击检测来说,仍然可以使用Google发布的开源检测代码。

本文来自开源中国社区 [http://www.oschina.net]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
漏洞真实影响分析,终结网络安全的“狼来了”困境
关注网络安全的企业大都很熟悉这样的场景:几乎每天都会通过安全媒体和网络安全厂商接收到非常多的漏洞信息,并且会被建议尽快修复。尽管越来越多的企业对网络安全的投入逐年增加,但第一时间修复所有漏洞,仍然是一件非常有挑战的事。
2356 0
为什么很少有游戏支持场景破坏?是因为技术问题吗?
最近很多游戏狂热迷们正火热讨论的一个问题是:为什么很少有游戏支持场景破坏?说实话小编也非常好奇,于是乎小编去查了好多资料。接下来小编带领大家一起去深挖究竟!
0 0
想要破解流量难题?首先你需要
想要破解流量难题?首先你需要
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
改善弱网络-探索移动互联网下弱网络处理方式
立即下载
代码未写,漏洞已出——谈谈设计不当导致的安全问题
立即下载
一起来试验保险箱的脆弱面
立即下载