Cha*_*iam 28 updates apt repository
存储库更新安全吗?
作为开发人员方面的小脑瓜,我无法理解为什么存储库列表http://security.ubuntu.com
和其他http
(不安全的)站点在/etc/apt/sources.list
. 如果没有证书链匹配,这将显示为“向任何响应者询问要更新的软件包列表”而不是“询问 ubuntu.com 站点...”
任何网络都可以选择欺骗更新站点,这是提供本地缓存和审查副本的常见做法吗?
tho*_*ter 33
简而言之,是的,它们是安全的,因为用于签署文件的公钥加密。
APT 下载的所有文件都有一个签名,允许根据存储在您计算机上的公钥来验证下载的文件,因为它是由 Ubuntu 签名的,并且只有 Ubuntu 签名。这将验证您收到的文件是否在某个阶段得到了 Ubuntu 的授权,并且此后没有被修改或篡改。
Ubuntu(以及使用相同系统的Debian)提供了有关其工作原理的技术说明。
由于使用 HTTP 而不是 HTTPS,是的,窃听者可以看到您正在下载哪些文件,但在这种情况下,您不太可能关心隐私。修改包以注入有害代码的中间人尝试仍然会失败,因为它会破坏签名机制。
这种签名机制中的一个可能问题是它不能保证您获得的是最新版本的包(实际上,有时镜像更新很慢)。为了帮助缓解这个问题,签名的发布文件包含一个“有效期至”日期,在该日期之后它引用的所有文件都应该被视为过时。中间人在此有效期内用存档的未修改早期版本替换存档并导致您的 APT 相信没有更新是合理的。但是他们不能对包进行任何任意修改,也不能回到过去某个时间点。
在这种分布式环境中,签名机制提供了比 HTTPS 更好的安全性,其中文件被镜像到许多不受 Ubuntu 控制的服务器上。从本质上讲,您只需要信任 Ubuntu,而不是镜像,因此您需要证明文件最初来自 Ubuntu 并且此后没有被修改 - 无需验证镜像的身份。
请注意,当您将非官方存储库添加到源列表(例如 PPA)时,您将收到未经 Ubuntu 签名的文件。APT 应该警告您这一点,因为它们尚未通过与您计算机上安装的任何由 Ubuntu 授权的公钥匹配的证书进行签名。
Nik*_*olm 21
这里评价最高的答案显然已经过时了。从那以后,由于包验证错误,在 apt 中发现了 2 个严重的远程代码执行漏洞。安全公告在这里和这里。
这比担心隐私/信息泄漏和过时的软件包版本要糟糕得多;这允许以 root 身份执行任意代码,完全安全失败。问题是:如果使用 https 而不是 http,这些攻击就会被阻止。
这证明纵深防御原则在这里和其他任何地方一样适用。正如这些漏洞所表明的那样,许多关于 https 在 apt 上下文中没有提供或提供最低安全好处的说法是完全不正确的。
那么问题就变成了 https 的安全优势是否值得在缓存、增加开销等方面付出代价。我无法回答这个问题,但至少我认为 Ubuntu/Canonical/Launchpad 应该为其存储库提供可选的 https 端点.
Izz*_*zno 10
APT 下载的所有文件都有一个签名,允许根据存储在您计算机上的公钥来验证下载的文件,因为它是由 Ubuntu 签名的,并且只有 Ubuntu 签名。这将验证您收到的文件是否在某个阶段得到了 Ubuntu 的授权,并且此后没有被修改或篡改。
Ubuntu(以及使用相同系统的 Debian)提供了有关其工作原理的技术说明。
由于使用 HTTP 而不是 HTTPS,是的,窃听者可以看到您正在下载哪些文件,但在这种情况下,您不太可能关心隐私。修改包以注入有害代码的中间人尝试仍然会失败,因为它会破坏签名机制。
这种签名机制中的一个可能问题是它不能保证您获得的是最新版本的包(实际上,有时镜像更新很慢)。为了帮助缓解这个问题,签名的发布文件包含一个“有效期至”日期,在该日期之后它引用的所有文件都应该被视为过时。中间人在此有效期内用存档的未修改早期版本替换存档并导致您的 APT 相信没有更新是合理的。但是他们不能对包进行任何任意修改,也不能回到过去某个时间点。
在这种分布式环境中,签名机制提供了比 HTTPS 更好的安全性,其中文件被镜像到许多不受 Ubuntu 控制的服务器上。从本质上讲,您只需要信任 Ubuntu,而不是镜像,因此您需要证明文件最初来自 Ubuntu 并且此后没有被修改 - 无需验证镜像的身份。
请注意,当您将非官方存储库添加到源列表(例如 PPA)时,您将收到未经 Ubuntu 签名的文件。APT 应该警告您这一点,因为它们尚未通过与您计算机上安装的任何由 Ubuntu 授权的公钥匹配的证书进行签名。
归档时间: |
|
查看次数: |
8515 次 |
最近记录: |