freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

SHA-1又完全冲撞突破:使用选择前缀碰撞攻击可以成功突破PGP信任网络
2020-01-09 18:33:24
最近密码学家盖坦.勒伦(GaëtanLeurent)和托马.佩林(Thomas Peyrin)宣布已经对SHA-1成功计算出第一个选择前缀冲突并对利用相关成功撰写了论文。这表明了SHA-1哈希已经被完整而实在的攻破,如果还在使用该哈希函数,将带来具有严重的风险:所有适用于MD5的攻击现在也适用于SHA-1。下面我们一起来看看他们的研究和结论。

1.jpg

SHA-1选择前缀碰撞研究

我们都知道针对SHA-1的碰撞攻击,之前早有谷歌团队于2017宣布可操作的生成冲突的技术,并证明攻击的方法,但是该攻击依赖了谷歌大规模计算群并不具备通用性,而且时间和成本较大。

2.jpg

这次由盖坦.勒伦(GaëtanLeurent)和托马.佩林(Thomas Peyrin)主导的研究则利用SHA-1选择前缀碰撞,极大提高了SHA-1攻击效率,将加速因子提高了大约10倍。研究使用GTX 970 GPU计算条件下碰撞攻击的成本从2^64.7降低到26^1.2,选择前缀碰撞攻击的成本从2^67.1降低到2^63.4 。

3.jpg

通过改进,实施了整个选定的前缀冲突攻击。这种攻击是非常具有技术性的,包含许多细节,各个步骤,并且需要大量的工程工作。为了节省成本、以较少的学术预算进行计算,他们从GPU serversrental租用了下便宜的游戏或采矿GPU,没有使用大型云提供商的数据中心级硬件。在19年夏天,已经使用900个GPU(Nvidia GTX 1060)计算了两个月。计算结果表明现在以64位安全级别破解密码(即计算264个对称密码的操作)的成本不到10万美元。

PGP/GnuPG模拟和攻击示例

他们选择了PGP/GnuPG信任网络来演示SHA-1的前缀冲突攻击。 "Web of Trust"是PGP的信任模型,该模型依赖用户彼此签名的***书,而不是使用中央PKI。出于兼容性原因,默认情况下,GnuPG(1.4版)的旧分支仍默认使用SHA-1进行身份认证。使用SHA-1选择前缀碰撞,创建了两个具有不同UserID和冲突证书的PGP密钥:密钥B是Bob的合法密钥(由W​​eb of Trust签名),但是签名可以转移伪造的Alice ID签名的密钥A。由于哈希冲突,该签名仍然有效,这样Bob可以用Alice的名字控制密钥A,并通过第三方签名。因此,Bob可以冒充Alice,并以她的名字签署任何文件。

5.jpg

示例

研究创建了一个带有前缀99040d047fe81780012000和99030d047fe81780011800(以十六进制表示)的选择前缀碰撞。大家可以下载以下两条消息,并使用sha1sum工具验证其哈希值:

6.jpg

messageA

messageB

sha1sum验证方法:

sha1sum messageA && sha1sum messageB

8ac60ba76f1999a1ab70223f225aefdc78d4ddc0 messageA

8ac60ba76f1999a1ab70223f225aefdc78d4ddc0 messageB

已选择前缀碰撞来构建两个具有冲突SHA-1认证签名的PGP公钥。可以在下载以下两个具有不同用户名的示例密钥,并使用pgpdump -i检查它们,以查看由0xAFBB1FED6951A956发出的SHA-1签名是否相同:

alice.asc

bob.asc

为了避免恶意使用,密钥的创建日期很远。如果要使用pgp分析它们,则可以使用--ignore-time-conflict --ignore-valid-from选项,可以给命令前添加falsetime @2145920400作为前缀)。

相关系统漏洞情况

GnuPG

在2019年5月9日以及GnuPG开发人员讨论了这种攻击,并在2019年10月1日将新发现的选定前缀冲突发出通知。问题的CVE编号为CVE-2019-14855。 GnuPG 2.2.18版(2019年11月25日发布)中包含的edc36f5提交中已采取策略:对2019-01-19之后基于SHA-1创建的身份签名视为无效。

CAcert

CAcert是PGP密钥的主要CA之一。在公共密钥服务器上,有大量带有CAcert最新SHA-1签名的密钥。在12月14日通过电子邮件联系,并在1月6日收到确认此答复。CAcert正计划切换到用于密钥认证的安全哈希功能。

OpenSSL

已于12月14日联系OpenSSL开发人员。已经在安全级别1(定义为80位安全性)禁用SHA-1。由于安全级别1是默认配置,该设置可以防止SHA-1用于证书和握手签名。Debian Linux先前已在最新版本(Debian Buster)中将默认配置设置为安全级别2(定义为112位安全),可以防止危险使用SHA-1。

相关问题

前缀选择冲突

哈希函数H的经典冲突(或相同前缀的冲突)只是两个消息M和M',它们导致相同的哈希输出:H(M)= H(M')。即使此安全概念在密码学中很重要,但在实践中利用经典冲突进行攻击仍然是困难的。虚构的选择前缀碰撞是一种更受约束(且更难获得)的冲突,其中首先给攻击者以两个消息前缀P和P'作为挑战,然后他的目标是计算两个消息M和M ',使得H(P || M)= H(P'|| M'),其中||表示串联。这样,可以任意选择前缀(因此可能包含一些有意义的信息),攻击者也可以获取冲突。如果数字签名方案中使用哈希函数时,安全风险巨大。

SHA-1使用情况

在最近几年,SHA-1的使用已大大减少;尤其是Web浏览器现在拒绝使用SHA-1签名的证书。但是,许多应用程序仍支持SHA-1签名。SHA-1是用于在GnuPG的旧有分支中认证PGP密钥的默认哈希函数,签名已被GnuPG的现代分支所接受。许多非Web TLS客户端也接受SHA-1证书,并且TLS和SSH中的协议内签名仍允许使用SHA-1。即使实际使用率较低(约1%),这也会形成安全威胁,因为中间相遇的攻击者会先将连接降级为SHA-1,然后伪造证书攻击。SHA-1也是Git版本控制系统的基础。还有许多鲜为人知或专有的协议仍在使用SHA-1,但这很难评估。

攻击成本

研究通过在线租用GPU集群,对SHA-1进行的整个所选前缀冲突攻击,耗费总共约7.5万美金。但是,在进行计算时没有特别优化,不是最佳算法实现。并且为了研究浪费额外的计算时间。如果去除这些影响,目前可以把攻击成本控制到4.5万美元。随着计算成本持续快速下降,预计到2025年在SHA-1上生成选定前缀冲突攻击的成本应该能降低到1万美元。

已有的SHA-1的碰撞攻击

在2017年SHA-1已经发生过计经典碰撞攻击,但是与选择前缀碰撞攻击大不相同,后者可以对任何前缀对进行挑战,这在实践中会导致更为严重的影响。

针对SHA-1选择前缀碰撞攻击

研究者已经宣布了一种新的选择的前缀冲突攻击,并且已在Eurocrypt 2019大会上发布了。攻击已经现在已经做了改进,可以在一定成本下进行攻击,并且编写了针对SHA-1的选定前缀冲突攻击的实际实现。为了避免被恶意利用会将等待一段时间后再发布相关的代码。

总结

影响

任何希望从SHA-1获得耐碰撞性的用途都具有很高的风险。可能受所选前缀冲突直接影响一些案例:

如果第三方生成和使用SHA-1密钥认证,则可以伪造PGP密钥

如果某些证书颁发机构颁发具有可预测序列号的SHA-1证书,则X.509证书可能会被破坏。

经典冲突和选择前缀碰撞不会威胁SHA-1所有使用场景。比如,HMAC-SHA-1似乎相对安全,并且直到今天,SHA-1的原像抵抗性(即反转哈希函数的能力)仍然保持不变。但是建议在所有地方都弃用SHA-1,即使还没有证据可以直接利用。

建议

产品中避免使用SHA-1,对已经使用的,尽快升级换用SHA-256或SHA-3或者ECDSA。

SHA-1破解已经有15年,因此没有充分的理由在现代安全软件中再使用该哈希函数。随着时间的流逝,攻击只会变得越来容易,密码分析工作的目标是警告用户,以便他们可以在攻击变得实用之前就弃用算法。


最后附上研究论文下载地址,大家可以下载学习。

https://eprint.iacr.org/2020/014.pdf


# 密码学 # SHA-1 # 哈希碰撞 # 哈希冲突攻击
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者