apt-get 如何检查所接收下载文件的完整性?

apt-get 如何检查所接收下载文件的完整性?

我一直在阅读有关为什么apt-get网络活动通常不部署加密的信息。并且了解到它会检查来自存储库的数据的签名,对吗?

但是现在,这种检查是如何进行的?如何才能真正保证安全?例如,如果文件和密钥在服务器中并以未加密的方式发送,这将如何工作?有人可以修改两者……

答案1

在 apt 存储库的根目录中有一个Release文件,其中包含哈希各种ContentsReleasePackages文件的哈希值。这些Packages文件又包含各个.deb包文件的哈希值。在与根文件相同的位置Release,有一个Release.gpg文件,其中包含通用石油气 电子签名Release文件,用私钥属于存储库维护者,使用公钥加密

apt-get下载Release文件到存储库时,它将自动尝试使用系统上的公钥文件验证数字签名。如果签名所用的密钥对中的公钥未在您的系统上注册,系统将提示您批准它;此时,您可以联系存储库维护者或第三方,通过比较指纹来验证公钥是否真实(或者,如果您有一份您已经知道是真实的公钥副本,您可以在运行之前将其添加进去apt-keyapt-get。之后,apt-get从存储库下载的任何文件都将根据ReleasePackages文件中的校验和进行检查。

Release和文件中的哈希值Packages是 apt 的正常数据完整性功能。添加 GPG 签名是德比安调用安全设施(请参阅该链接了解更多详情)。

相关内容