hum*_*ace 14 package-management repository md5sum hash
(所以这个问题对更多人更有用)
在一个Ubuntu/debian 风格的包(*.deb 文件)里面有一个名为的文件
/DEBIAN/md5sums,它的内容是这样的:
212ee8d0856605eb4546c3cff6aa6d35 usr/bin/file1 4131b66dc3913fcbf795159df912809f path/to/file2 8c21de23b7c25c9d1a093607fc27656a path/to/file3 c6d010a475366e0644f3bf77d7f922fd path/to/place/of/file4
我假设这个文件将用于检查包附带的文件是否以某种方式损坏。由于该文件名为“/DEBIAN/md5sums”,我假设路径+文件名之前的十六进制数是包文件的MD5 消息摘要算法哈希。
现在感兴趣的人都知道,MD5 Hash 早就被破解了。因此,完全有可能更改包中文件的内容(例如,恶意地)并且仍然具有具有相同 MD5-Hash 的文件(参见例如概念证明“预测获胜者....”)。
考虑到上述信息,我想知道以下内容:
**假设我在我的 Ubuntu 系统中安装了一个包。是DEBIAN/md5sums确保数据不被篡改的唯一方法吗?**
回答这个问题我认为它可以帮助弄清楚以下几点:
DEBIAN/md5sums可以确保文件的完整性,那么 *.deb 包中包含的文件是什么?不幸的是,我也不知道。
任何可以阐明问题(甚至只是一个子问题)的回复都非常受欢迎
(1) https://help.ubuntu.com/community/Repositories/Ubuntu#Authentication_Tab似乎表明有(正如我所希望的)一些公共/私有 gpg 密钥正在进行中(以保持 repos 和包系统)安全从攻击。不过,链接位置的信息不是很多。它几乎没有说明包系统的安全方面。无论如何,我假设该链接已经表明该问题的答案将是“否 - 至少来自 repo 的 deb 包 - 也受到......”的保护。希望有人有一些见解可用于此处的答案。
(2) 这个问题似乎也是关于Ubuntu包系统中的“安全性”的话题。所以我只是在这里添加它,以便如果有人努力解决这个问题:为什么建议的 BADSIG(在 apt-get 更新上)修复是安全的?
Rob*_*sak 22
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,因此它也仅用于检查意外损坏。
如果您想检查恶意系统修改,那么这些工具不适合您。您需要使系统脱机并检查以前的记录、原始包文件或从这些文件生成的安全哈希。
请注意,由于成功的恶意修改可能只是简单地将软件包降级到安全更新之前的软件包,因此检查所有已安装的软件包文件是否与其原始文件匹配可能还不够。
我希望这是一条评论,但我无法将其放入盒子中,因此我将其放在这里。
是的,md5 在密码学上已经被破解,但这并不意味着它是一个糟糕的通用哈希算法。修改文件以使其具有相同的哈希值非常困难,并且对特定的恶意更改进行修改几乎是不可能的。通过查看您引用的示例,(预测获胜者)可以看到:
“这些文档首先被精心准备为有效的 PDF 文档,其中包含一个隐藏的图像对象,包含足够数量的随机位。然后,根据上面显示的菱形结构,计算了 11 个选择前缀冲突,并将其放置在隐藏的图像中精确地在适当的位置成像对象。通过这种方式,十二个文档变成了 MD5 多重碰撞。”
所做的是用随机数据填充文件以使散列匹配。该技术几乎无法将特定的恶意代码添加到文件中并在不破坏文件或使文件已被更改的情况下排列哈希(我不知道 apt 是否可以,但是许多文件哈希是伴随着它们的文件大小,以增加无法检测的哈希冲突的难度)。