4 security encryption ubuntu gnupg apt-get
我一直在阅读有关为什么通常不会在apt-get网络活动中部署加密的信息。并了解到它会检查来自 repo 的数据的签名,对吗?
但是现在,这种检查是如何发生的?如何做到真正安全?例如,如果文件和密钥在服务器中并以未加密的方式发送,那将如何工作?有人可以修改两者......
在一个恰当的程序存储库的根有一个Release文件,其中包含散列不同的Contents,Release和Packages文件。这些Packages文件依次具有各个.deb包文件的哈希值。在相同的位置根Release文件中,有一个Release.gpg文件,其中包含一个GPG 数字签名的的Release文件,以取得私有密钥属于库维护,使用公钥加密。
当为存储库apt-get下载Release文件时,它会自动尝试使用系统上文件中的公钥来验证数字签名。如果用于签名的密钥对中的公钥未在您的系统上注册,系统将提示您批准;此时,您可以联系存储库维护者或第三方,通过比较指纹来验证公钥是否真实(或者,如果您已经知道公钥的副本是真实的,则可以apt-key在运行apt-get. ) 之后,apt-get将从存储库下载的任何文件都将根据它们在Release或Packages文件中的校验和进行检查。
Release和Packages文件中的哈希值是 apt 的正常数据完整性功能。GPG 签名的添加是debian称为SecureApt 的一部分(有关更多详细信息,请参阅该链接)。