SHA-1 冲突在多大程度上影响了应用程序验证?

信息安全 gnupg
2021-08-24 21:16:21

最近透露了SHA-1散列算法已被打破

详细介绍了几个受影响的区域,例如 git 和文档签名。没有提到的一件事是应用程序完整性验证。

为此使用 SHA-1 的一个应用程序是GnuPG尽管他们建议使用旧版本的 gnupg 进行验证,但在新安装的情况下使用 SHA-1 哈希。

我在问在野外存在受损 gnupg 安装的风险是什么。例如,程序中的后门。

博客文章中提到,在实践中以前从未见过这种黑客攻击的发生,但大型组织不可能像研究人员那样在 2 年的时间框架之前一直在研究这个问题,因此揭示了这一点更早的安全漏洞?

1个回答

第三方软件包存储库易受攻击

这个问题有两个微妙不同的背景。一个是脆弱的,另一个不是。

  • 如果应用程序开发人员生成自己的哈希,这仍然是安全的。
  • 如果有接受其他开发人员软件的第三方存储库,这是不安全的。

这似乎是一个奇怪的区别。到底是怎么回事?

安全哈希有两个关键属性:

  • 图像前阻力 - 如果您有哈希,则找不到生成该哈希的明文。
  • 碰撞阻力——你找不到两个哈希值相同的明文。

当应用程序开发人员生成他们自己的哈希时,您只依赖第一个属性来确保安全。黑客要创建与合法哈希匹配的恶意软件,他们必须找到原像。

但是对于第三方包存储库,您依赖于第二个属性。攻击者可以创建两种软件:一种是良性的,另一种是恶意的 - 并制造它们以引起冲突,即它们创建相同的散列。攻击者会将良性包提交到存储库,然后使用恶意版本攻击用户。

事实证明,碰撞阻力比原像阻力更容易被击败。最近的公告仅影响抗碰撞性。SHA-1 被认为是安全的,可以抵抗原像电阻。