上周,一组来自新加坡和法国的研究人员用不到 10 万美元,成功完成首个构造前缀碰撞攻击,即攻击者可以自由选择两个碰撞信息的前缀。这意味着,攻击者伪造 SHA-1 签名文档将变成可能,这些文档可能是商业文件也可能是 TLS 证书。
SHA-1主要是用于数字签名的摘要算法,可将原始消息转换为长字符串,用作该消息的哈希值(指纹),通常用于验证消息的完整性。一旦消息被篡改,哈希值将产生变化。理论上,两个不同的消息不会产生相同的哈希值。当针对两个不同的消息产生相同的哈希值(指纹)时,就出现了碰撞攻击。利用碰撞攻击,攻击者可针对文件甚至数字证书生成同样的哈希值,并以此欺骗系统接受恶意文件替代原有的无害文件。
SHA-1时代的结束
Google曾在2017年发布了两个具有相同SHA-1哈希值但内容不同的PDF文件[PDF1,PDF2],这两份文件包含了不同的内容,却拥有相同的SHA-1数字签名,这表示一个有效签名可被另一份 PDF 文件所滥用。这是第一例SHA-1哈希碰撞攻击——“SHAttered”攻击。比暴力破解攻击速度快10万倍,在亚马逊的云计算平台上执行成本仅为11万美元。
如今,这项被业内广泛用于数字签名、文件完整性验证、以及保护数字资产(包括信用卡交易、电子文档、开源软件资源库与软件更新等)的加密标准,现已被实际证明可制作出两份冲突的PDF文件。
SHA-1 哈希碰撞攻击已经变得切实可行,在碰撞攻击的影响下,攻击者能够构造出内容被篡改的签名文件绕过验证。尽管所需计算量巨大且对内容的控制存在一定的困难,但是,我们认为这类安全机制已经不再可信。
这意味着,SHA-1的时代将正式结束。
仍有大量人使用
尽管十几年前研究人员已经警告SHA-1的安全性缺失,但SHA-1算法仍被广泛使用。目前,许多部署的 SSL/TLS 服务连接中均使用了 SHA-1 算法作为消息验证的基本密码学原语。Android 系统中应用、升级包、Bootloader 等模块的签名机制(RSA + SHA-1)也广泛使用了SHA-1 算法。
数字证书签名、电子邮件PGP / GPG签名、软件供应商签名、软件更新、ISO校验和备份系统、重复数据删除系统、GIT等等,任何依赖SHA-1进行数字签名、文件完整性或文件识别的应用程序都可能受到攻击。
尽快停止使用SHA-1
在HTTPS证书方面,Chrome、火狐、Safari等主流浏览器已经宣布,2017年初开始停止信任SHA-1签名的HTTPS证书。统计显示在2017年2月仍有11万份左右的SHA-1证书,这占所有公开信任证书的0.7%,低于一年前的13.3%。
Google 公司和诸多 IT 安全研究人员均在过去几年呼唤开发者尽快更换 SHA-1 算法,早在 2014 年,Chrome 团队就已经宣布了淘汰 SHA-1 算法的时间表,本次碰撞攻击的发布,也给所有还在持观望和犹豫态度的人敲响了警钟。而对SHA-1的实际攻击,将最终说服行业迫切需要转向更安全的替代品。
除了SHA-1 算法外, SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256 等算法在 2001 年就已经公布。更为值得注意的是,中国国家密码管理局在 2010 年底发布了我国自主研发的国密 SM3 消息摘要(密码杂凑)算法。这些算法的安全性在目前经受住了广泛的测试和分析,是值得信赖的。
文章的最后,小编建议大家:任何以 SHA-1 作为消息摘要算法的安全产品应该尽快更换至这些更为安全的 Hash 算法。
现在是时候完全停止使用 SHA-1 了!!!
来源:solidot.org、Linux 中国、沃通WoTrus,看雪学院
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/257981.html