是否仅保护md5sum的ubuntu软件包(deb文件)?


13

以下问题的介绍背景###

(因此,这个问题对更多的人更有用)
Ubuntu / debian风格的软件包(* .deb文件)中,有一个名为的文件 /DEBIAN/md5sums,其内容形式如下:

212ee8d0856605eb4546c3cff6aa6d35 usr / bin / file1
4131b66dc3913fcbf795159df912809f路径/到/文件2
8c21de23b7c25c9d1a093607fc27656a路径/至/文件3
c6d010a475366e0644f3bf77d7f922fd path / to / place / of / file4

我假设此文件将用于检查该软件包随附的文件是否已被某种方式破坏。由于该文件称为`/ DEBIAN / md5sums“,因此我假定路径+文件名之前的十六进制数是软件包文件的MD5消息摘要算法哈希。

现在,每个感兴趣的人都知道MD5哈希已经很久以前就被破坏了。因此,完全有可能(例如恶意地)更改程序包中文件的内容,并且仍然使该文件具有相同的MD5-Hash(例如参见概念证明“预测获胜者...”)。

考虑到以上信息,我想了解以下内容:

**假设我在Ubuntu系统中安装了一个软件包。是DEBIAN/md5sums确保数据未被篡改的唯一方法吗?**

回答这个问题,我认为可能有助于找出以下几点:

  • 整个deb程序包是否也进行了哈希处理(为哈希值作了准备),以便有另一种方法可以确保接收到的文件“安全” /“不受干扰”?
  • 如果还有其他方法DEBIAN/md5sums可以确保文件完整性,那么* .deb软件包中包含的文件又是什么?
  • Ubuntu是否对存储库/程序包系统使用的散列比SHA-1和MD5“散列”少?

不幸的是,我也不知道。

非常欢迎任何能够阐明问题(甚至只是子问题)的答复

更新

(1) https://help.ubuntu.com/community/Repositories/Ubuntu#Authentication_Tab似乎表明存在(正如我希望的那样)一些公共/私有gpg密钥正在运行(以保持存储库和打包系统)安全从攻击。虽然链接位置上的信息不是很多。它几乎没有说明包系统的安全性方面。无论如何,我认为该链接已经表明该问题的答案将是“否-至少回购中的deb软件包-也由....保护”。希望有人可以在这里提供一些见解以作答。

(2)这个问题似乎也与Ubuntu软件包系统中的“安全性”主题有关。因此,如果有人要弄清楚这个问题,我就在这里添加它的广告手:为什么建议的BADSIG(在apt-get更新中)修复程序是安全的?


1
debian.org/doc/debian-policy/…表示支持SHA-1和SHA256每个文件的校验和,但是我不知道什么apt是校验和策略。
chronitis

1
@chronitis感谢您的链接。的确确实提到过SHA- *哈希值,我仍然必须弄清楚它们在软件包(我尚未看到)或软件包系统中的外观。您知道更多吗?那么指示已经是一个很好的一步
humanityANDpeace

Answers:


21

Ubuntu发布使用RSA密钥签名的清单。清单列出了各个Packages索引文件,每个索引文件都带有MD5,SHA-1和SHA-256哈希。每个Packages文件列出了.deb带有MD5,SHA-1和SHA-256哈希的单独文件。

为了进行验证,apt使用它支持的最佳哈希,并由其下载的存档发布。对于Ubuntu存档,这是SHA-256。

因此,在Ubuntu系统上安装软件包的整个过程都受到RSA和SHA-256的保护。

dpkg中存在的MD5保护实际上仅对意外损坏有用,而对保护安装路径没有必要。

您可能对该debsums软件包感兴趣,但是由于它使用MD5,因此它仅对检查意外损坏有用。

如果要检查恶意系统修改,则这些不是适合您的工具。您将需要使系统脱机并检查以前的记录,原始软件包文件或由此产生的安全哈希。

请注意,由于成功的恶意修改可能只是简单地将软件包降级到安全更新之前的软件包,因此检查所有已安装的软件包文件是否与原始文件匹配可能也不足够。


1
我获得了一些更清晰的见识。您从哪里获得了所有这些信息,我很难找到呢?您是否有使用过的文档/链接?我也很感激您提到的“降级危险”,因此我还不了解这种攻击有多可利用。大!谢谢您
humanityANDpeace 2013年

我认为apt存储库格式在任何地方都没有正确指定或记录。这很不好,但事实就是如此。最好的(仅就我所知)真实的文档是出处。我知道细节,因为我已经在源代码中工作。另一方面,在Debian策略中很好地指定了dpkg格式。它涵盖了软件包最终在您的系统上之后发生的情况,但没有介绍它们如何到达那里。后一部分由apt完成。
罗比·巴萨克

降级风险:这是一个问题,与您最初提出的问题没有直接关系。如果在版本A中发现了漏洞利用程序X,您将获得漏洞已修复的版本B的安全更新。如果攻击者可以利用版本A中的X,那么您是安全的,因为您已升级到B。但是,如果攻击者也可以将您降级为A,那么您将再次受到攻击。你会不会注意到这一点,即使你所有的安全散列匹配您所安装的软件包,因为你的包数据库会说,你应该有一个安装,而不是B.
罗宾Basak

2
@RobieBasak “我认为apt存储库格式在任何地方都没有正确指定或记录。” 显然这是不正确的。您只需要寻找它。Debian Wiki:RepositoryFormat
gertvdijk,2013年

6

我希望这是一条评论,但由于无法放入包装盒中,因此请将其放在此处。

是的,md5已经在密码学上被破坏了,但这并不意味着它是一个不好的通用哈希算法。修改文件使其具有相同的哈希值是非常困难的,而且要进行特定的恶意更改几乎是不可能的。通过查看您引用的示例,(Predicting The Winner)可以看到:

“首先将文档精心准备为有效的PDF文档,并合并一个包含足够数量的随机位的隐藏图像对象。然后,根据上面显示的菱形结构,计算十一次选择的前缀冲突,并将其放置在隐藏的内部精确地将物体成像在适当的位置。这样,十二个文档就变成了MD5多碰撞。”

完成的工作是用随机数据填充文件以使哈希匹配。该技术远没有能力向文件中添加特定的恶意代码并使哈希表排列而不会破坏它或使文件明显被更改(我不知道apt是否可以修改,但是很多文件哈希表是以及其文件大小,以增加不可检测的哈希冲突的难度)。


3
谢谢你的回答。我认为这是一个很好的答复,从某种意义上说,它可以使整个背景更加生动:)不幸的是,“堆栈...询问Ubuntu”有时很难通过“仅严格回答问题”来解决,因此您非常鼓舞详细说明该主题。
humanityANDpeace

准备好的PDf文件具有随机数据,并且所有这些工作仅104kb。那你为什么说这不可能呢?deb程序包中必须有成吨的文件,文件大小必须大于200kb,这样才能做得到。在看到概念证明之后,令我感到惊讶和震惊的是我,因此感到不那么安全
humanityANDpeace

合法文件中有很多地方,细微的变化不会显得奇怪,例如,文本文件中的空白很小。您只需要在这些位置中找到128个左右即可拥有足够的空间来创建既合法又与您想要的目标MD5相匹配的恶意文件。我不确定这种特殊的攻击方式是否可以应用于这种情况。
罗比·巴萨克

@RobieBasak,您误解了攻击。您不能只更改文件中的128个字节并保留md5sum。您必须将一大堆似乎是两组随机数据的文件插入到文件的两个副本中,尽管两个“随机”数据块不同,但它们将具有相同的md5sum。
psusi 2013年

1

md5没有被“破坏”。他们发现的是一种精心制作原始消息以及具有相同哈希值的修改后消息的方法。无法获取不是为篡改(正确文件)目的而特别设计的原始消息,并以保留其md5sum的方式对其进行修改。


好。但是,如果不“折断”,那么现在引用MD5安全性当前状态的好方法是什么?我能理解您的发言,并感谢您指出。我仍然不知道如何评估通过MD5等当前安全
humanityANDpeace

@humanityANDpeace,“很好”。
psusi 2013年

我喜欢乐观的态度。毕竟,我仍然对概念证明感到惊讶。谢谢!
humanityANDpeace

1
“加密专家认为MD5损坏。因此应将其视为损坏。” 这不是世界的工作方式。@RobieBasak作为一名加密爱好者(不能称自己为“专家”,但几年前我不得不深入研究),我自己不会说MD5损坏了。只是有一个有趣的案例值得一看,但似乎是理论上的atm。但这不会破坏Ubuntu的包装;)返回0 psusi;)
Rinzwind 2013年

1
@jackweirdy实际上存在,这就是为什么他们不这样做。他们的方法依赖于具有非常特定属性的两组数据。这很像公共密钥对。您可以生成一对彼此匹配的密钥,但是仅给出一个,就无法找出另一个。
psusi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.