apt 包包含每个文件的校验和的原因是什么?

Reg*_*May 3 package-management security apt dpkg

我正在更深入地研究 apt 并且我有一个关于安全性的问题。也许你可以帮助我并提供答案。

A) 据我所知,如果 apt 从某种来源下载一个包,它会验证这个包在传输过程中没有被篡改。这意味着:一旦 apt 收到该软件包(并提供用于安装),它的完整性就已经得到确认。

B)据我所知,每个 apt 包内部都包含存储在包本身中的每个文件的校验和。此校验和文件本身已签名。这意味着:目前 apt 正在安装软件包,所有(内部)软件包文件也已根据这些校验和进行了检查。

很明显,A) 是必需的。我的问题是:为什么 B)?这不是有点“太多”的安全性吗?不要误会我的意思:这里的安全性不能太低,但我想知道:这不是有点过分了吗?假设发行版存储库维护得相当好,B) 的检查应该是不必要的,不是吗?或者反过来:如果流程 A) 已经确认了包的完整性,为什么流程 B) 还要再次验证完整性?

不要误会我的意思:我不是在质疑这里使用的安全基础设施。我只是想了解它的所有方面,尤其是这个安全基础设施试图解决的威胁。

wal*_*tor 5

人们可以.deb从不做“A”的来源获取文件。在解压包时,安装程​​序不“知道”包来自哪里,而是使用每个文件的校验和来确保完整性。