今日有消息报道荷兰阿姆斯特(cwi)研究所和谷歌研究人员发布了世界上第一例公开的sha-1哈希碰撞实例。
在现实世界里,哈希碰撞事件也确有发生。如利用 md5 碰撞伪造合法 ca 证书,进而攻击 https 安全体系。
消息称,cwi 研究所的 marc stevens 是此次攻击的关键人物,2016 年找到了sha-1算法内部的核心组件 internal compression function 的一个碰撞实例,开始攻克 sha-1 完全实际碰撞攻击。近日在 google 的强大资源支持下,终将 sha-1 算法的碰撞实例展示出来。
此次攻击使用了强大计算资源,google security blog 公布数据:
nine quintillion (9,223,372,036,854,775,808) sha1 computations in total
6,500 years of cpu computation to complete the attack first phase
110 years of gpu computation to complete the second phase
规模程度看实验配图:

如使用暴力搜索,使用的计算资源 google 也会无法承担,而改进的 shattered 算法只需要 110 个 gpu 年就可以完成第二阶段的搜索任务。
安全建议
消息指出,sha-1 碰撞攻击影响了大量现有的安全应用,目前许多部署的 ssl/tls 服务连接中均使用了 sha-1 算法作为消息验证的基本密码学原语,因此受到该攻击的影响;git 如今依然使用 sha-1 作为文件的消息“指纹”;android 系统中应用 app、升级包、bootloader 等模块的签名机制(rsa + sha-1)也广泛受到影响。
有资料显示,sha-1 算法的后继算法早已被研究人员设计和推广,sha-2 算法家族在2001年就已经公布,而nist在经过多年的sha-3设计竞赛后,在2015年正式推荐 keecak 算法家族作为 sha-3 的候选算法。中国国家密码管理局同样在2010年底发布了我国自主的国密sm3消息摘要(密码杂凑)算法。
google 公司和 it 安全研究人员也曾呼吁大家尽快更换 sha-1 算法。此次事件也警示着各位:赶紧为安全的系统启用新的 hash 算法吧!