存储库列表是否安全? 有HTTPS版本吗?

存储库更新是否安全?

作为开发者方面的小脑袋,我无法理解为什么存储库列表是http://security.ubuntu.com以及/etc/apt/sources.list列出的其他http (不安全)站点。 如果没有证书链匹配,则显示为“向任何响应者询问要更新的软件包列表”而不是“询问ubuntu.com网站……”

任何网络都可以选择欺骗更新站点,这是提供本地缓存和审查副本的常见做法吗?

简而言之,是的,它们是安全的,因为用于签名文件的公钥加密。

APT下载的所有文件都有一个签名,允许根据Ubuntu和Ubuntu签名的计算机上存储的公钥validation下载的文件。 这将validation您收到的文件是否在某个阶段由Ubuntu授权,并且自那时起未被修改或篡改。

Ubuntu (以及使用相同系统的Debian )提供了有关其工作原理的技术说明。

由于使用HTTP而不是HTTPS,是的窃听者可以看到您正在下载哪些文件,但在这种情况下隐私不太可能是您关注的问题。 修改包以注入有害代码的中间人尝试仍然会失败,因为它会破坏签名机制。

这种签名机制的一个可能的问题是,它不能保证您获得最新版本的软件包(事实上,有时镜像更新速度很慢)。 为了帮助缓解此问题,签名的发布文件包含一个“有效期至”日期,在该日期之后,它引用的所有文件都应被视为过时。 对于中间人来说,在此有效期至日期内使用未修改的早期版本的存档替换存档并使您的APT相信没有更新是合理的。 但他们不能对包裹进行任意修改,也不能在某个时间点之后回溯。

在这种分布式环境中,签名机制提供了比HTTPS更好的安全性,在这种环境中,文件通过许多不受Ubuntu控制的服务器进行镜像。 本质上,您只需要信任Ubuntu,而不是镜像,因此您需要certificate文件最初来自Ubuntu并且从未被修改过 – 因此无需validation镜像的身份。

请注意,当您将非官方存储库添加到源列表(例如PPA)时,您将接收未由Ubuntu签名的文件。 APT应警告您这一点,因为它们尚未通过与Ubuntu授权的计算机上安装的任何公钥匹配的证书进行签名。