提出了一种适用于攻击 PGP 的 SHA-1 冲突检测方法

法国国家信息学与自动化研究所(INRIA)和南洋理工大学(新加坡)的研究人员提出了一种攻击方法 废墟 (PDF),这被认为是对 SHA-1 算法攻击的第一个实际实现,可用于创建伪造的 PGP 和 GnuPG 数字签名。 研究人员认为,所有针对 MD5 的实际攻击现在都可以应用于 SHA-1,尽管它们仍然需要大量资源来实施。

该方法基于执行 具有给定前缀的碰撞攻击,它允许您为两个任意数据集选择添加,附加时,输出将产生导致冲突的集,对其应用 SHA-1 算法将导致形成相同的结果哈希。 换句话说,对于两个现有文档,可以计算两个补码,如果一个附加到第一个文档,另一个附加到第二个文档,则这些文件的 SHA-1 哈希值将相同。

新方法与之前提出的类似技术不同,它提高了碰撞搜索的效率并展示了攻击 PGP 的实际应用。 特别是,研究人员能够使用不同的用户 ID 和导致 SHA-8192 冲突的证书准备两个不同大小的 PGP 公钥(RSA-6144 和 RSA-1)。 第一把钥匙 包括受害者 ID,以及 第二把钥匙 包括攻击者的姓名和图像。 此外,由于冲突选择,密钥识别证书(包括密钥和攻击者的图像)与识别证书(包括受害者的密钥和姓名)具有相同的 SHA-1 哈希值。

攻击者可以向第三方证书颁发机构请求其密钥和图像的数字签名,然后传输受害者密钥的数字签名。 由于证书颁发机构对攻击者密钥的碰撞和验证,数字签名保持正确,这使得攻击者可以使用受害者的姓名来控制密钥(因为两个密钥的 SHA-1 哈希值相同)。 因此,攻击者可以冒充受害者并代表她签署任何文件。

这种攻击的成本仍然相当高,但对于情报部门和大公司来说已经相当负担得起。 对于使用更便宜的 NVIDIA GTX 970 GPU 的简单碰撞选择,成本为 11 美元,对于具有给定前缀的碰撞选择,成本为 45 美元(作为比较,2012 年估计了 SHA-1 中碰撞选择的成本) 2 万美元,2015 年为 700 万美元)。 为了对 PGP 进行实际攻击,需要使用 900 个 NVIDIA GTX 1060 GPU 进行两个月的计算,研究人员的租金为 75 美元。

研究人员提出的碰撞检测方法比之前的成果有效大约10倍——碰撞计算的复杂度从261.2次减少到264.7次操作,给定前缀的碰撞从263.4次减少到267.1次操作。 研究人员建议尽快从 SHA-1 切换到使用 SHA-256 或 SHA-3,因为他们预测到 2025 年攻击成本将降至 10 美元。

GnuPG 开发人员于 1 月 2019 日收到有关该问题的通知 (CVE-14855-25),并于 2.2.18 月 1 日采取行动,在 GnuPG 19 的发布中阻止了有问题的证书——所有 SHA-1 数字身份签名都是在 1 月 XNUMX 日之后创建的。去年的结果现在被认为是不正确的。 CAcert 是 PGP 密钥的主要认证机构之一,计划改用更安全的哈希函数进行密钥认证。 OpenSSL开发人员针对有关新攻击方法的信息,决定在默认的第一安全级别禁用SHA-XNUMX(在连接协商过程中SHA-XNUMX不能用于证书和数字签名)。

来源: opennet.ru

添加评论