正如上一个问题中所述:我如何强制 apt-get 或 apt 仅使用 https 连接
deb https://deb.debian.org/debian bookworm main
deb https://security.debian.org/debian-security bookworm/updates main
deb https://deb.debian.org/debian bookworm-updates main
安全.debian.org如果我使用 https 协议则不起作用。
使用 ubuntu,我在使用 https 协议更新 apt-get 缓存时遇到类似的问题。
现在,使用纯 http 来下载操作系统的更新不被认为是一个主要的安全问题吗?
我正在摸不着头脑,试图理解为什么在 2023 年,纯 http 仍然被认为可以在某些测试环境中使用。难道不能将中间的重主线和数据包的破坏进行到位,以便可以将精心制作的数据包发送并安装到用户计算机上吗?
答案1
Debian 及其衍生版本不依赖 TLS 来确保包交付的安全,而是依赖 OpenPGP 密钥签名,使用系统上已有的密钥(在安装过程中设置或由系统管理员添加)。这涵盖元数据和包内容;看如何保证 Debian 软件包的真实性?了解详情。
TLS 提供的另一个常见要求的功能是机密性,IE任何能够监视您流量的人都无法确定您在做什么。我手边没有链接,但事实证明 TLS 不足以有意义地隐藏包下载活动 — 在大多数情况下,传输大小足以确定正在下载哪些包。
因此 TLS 增加了完整性,Debian 已经提供了这一点,并且可以增加机密性,但实际上并没有。它还增加了一些开销,并使缓存数据变得更加复杂(这对于分发包存储库非常有用);所以Debian默认情况下不配置它。
Debian 存储库中并非在所有情况下都支持 TLS 的一项功能:抵抗重放攻击。在中间人场景中,如果没有 TLS,则可以为客户端提供旧版本的存储库元数据和相关包,这可用于保持系统易受攻击。经常更新的 Debian 存储库(特别是“更新”和安全套件)生成的元数据仅在一周内有效,从而防止了超过一周的重播;但稳定点版本在其签名密钥过期之前一直有效,因此目标系统可以人为地保留在较旧的点版本上。 (但是,在其默认配置中,在这种情况下它仍然会看到安全更新。)
当然,纵深防御更好,过去也曾出现过 TLS 可以缓解的漏洞;因此大多数存储库都可以启用 TLS。
就最佳实践而言:
- 对于 Debian(或 Ubuntu)存储库,只要您注意
apt
错误,默认设置就足够了(但如果您愿意,请不要让我阻止您启用 TLS); - 对于第三方存储库,如果可能,您应该使用 TLS(作为一揽子规则,这比检查每个存储库是否配置正确更容易)。