我一直在阅读为什么在apt-get
网络活动中通常不部署加密的原因。并且了解到它会检查来自回购的数据的签名,对吗?
但是现在,如何进行这种检查?如何做到真正安全?例如,如果文件和密钥在服务器中并且以未加密的方式发送,那将如何工作?有人可以同时修改两者...
在一个恰当的程序存储库的根有一个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的一部分(有关更多详细信息,请参见该链接)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句