问题背景简介
(以便更多人能够使用问题)
在一个 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哈希算法早就被破解了。因此,完全有可能改变软件包中文件的内容(例如恶意操作),而文件的MD5哈希值仍然保持不变(例如参见概念证明“预测胜者...”)。 问题 考虑到上述信息,我想知道以下内容: 假设我在我的Ubuntu系统中安装一个软件包。是不是只有通过检查DEBIAN/md5sums文件才能确保数据没有被篡改? 回答这个问题,我认为以下内容可能会有所帮助:- 整个deb包是否也有哈希值(用于生成哈希值),以便有另一种方式确保接收到的文件是“安全的”/“未被篡改”?
- 如果除了
DEBIAN/md5sums文件之外还有其他方法来确保完整性,那么*.deb包中包含的文件是什么? - Ubuntu是否使用比SHA-1和MD5更“不易破解”的哈希算法来进行存储库/软件包系统的校验?
很遗憾,我也不知道。
任何能够解答这个问题(甚至只是一个子问题)的回应都非常欢迎。
apt的校验和策略是什么。 - chronitis