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


24

存储库更新是否安全?

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

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

Answers:


30

简而言之,是的,由于用于文件签名的公共密钥加密技术,它们是安全的。

APT下载的所有文件都有一个签名,该签名使下载的文件可以根据您的计算机上存储的公钥(由Ubuntu和只有Ubuntu签名)进行验证。这可以验证您接收到的文件在某个阶段是否已由Ubuntu授权,并且此后未被修改或篡改。

从Ubuntu(以及使用同一系统的Debian)获得有关其工作原理的技术说明。

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

这种签名机制的一个可能陷阱是,它不能保证您获取的软件包是最新版本(实际上,有时镜像更新很慢)。为了帮助缓解此问题,已签名的发行文件包含一个“有效期至”日期,此后该文件所引用的所有文件都应被视为过时的。中间人可能会在此有效期至到期日之前用未修改的较早版本的存档替换存档,并使您的APT相信没有更新。但是他们不能对软件包进行任何随意的修改,也不能回到过去。

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

请注意,当您将非官方存储库(例如PPA)添加到源列表时,将接收未由Ubuntu签名的文件。APT应该对此发出警告,因为未经Ubuntu授权,它们没有由与您计算机上安装的任何公钥匹配的证书签名。


1
大!因此,简短的版本是“传输层不安全,但是每个程序包都经过签名。没有可用更新的安全列表,并且不能保证已发布有关现有安全问题的补丁。”
查尔斯·梅里亚姆

2
不确定“没有可用更新的安全列表”是什么意思,但是发布文件和软件包列表签名。只是它不能验证您的镜像是最新的。
thomasrutter

3
呃,如果没有办法验证镜像或主站点是否是最新的,则没有办法知道是否有可用的更新,安全更新或其他方式。也就是说,没有可用更新的安全列表。
2013年

4
爱丽丝运行Ubuntu。Bob控制着Alice的Internet连接。Bob不能将错误的软件包放入Alice的安装中,因为每个软件包都已签名。在Ubuntu中发现了一些巨大的安全漏洞。Alice尝试找到更新的软件包,但是Bob从Alice的更新检查中删除了所有提及该软件包的内容。爱丽丝重击系统管理员,然后通过ubuntu.com上的HTTPS提取更新检查,以验证她是否已通过安全链接连接到真实网站。现在,爱丽丝看到了安全更新,而鲍勃无法隐藏它。
2013年

3
这当然是正确的答案。但是我感到奇怪的是,似乎没有人担心窃听者会按顺序编译已安装的所有软件包的列表,包括已更新的软件包和未更新的软件包,以针对已知的攻击。这些软件包中的安全漏洞。
Teekin

8

评分最高的答案显然已经过时了。从那时起,由于错误的程序包验证,在apt中发现了2种严重的远程执行代码漏洞。这里这里的安全公告。

这比对隐私/信息泄漏和过时的软件包版本的担忧要糟得多。这样就可以以root用户身份执行任意代码,从而完全导致安全性失败。事实是:如果使用https代替http,则可以防止这些攻击。

这证明了纵深防御原则在这里适用于其他任何地方。这些漏洞表明,在apt上下文中,关于https不提供或仅提供最小安全性好处的许多说法完全是错误的。

然后,问题就变成了,如果在缓存,增加的开销等方面,https的安全性优势是否值得付出代价,我无法回答,但至少我认为Ubuntu / Canonical / Launchpad应该为其存储库提供可选的https端点。


1
安全性也与隐私有关,HTTPS手段至少将使您很难确定正在运行的软件包和版本。
l0b0

我要说的是,只要apt本身没有问题,http就可以了。但是,https会提供备份,以防gpg安全性(或更精确地使用它)如何混乱。
RoundDuckMan

2

重要补充:实际上,随着升级和初始安装在线下载,这会占用大量流量,并且这些流量的来源(即二进制和文本代码流)是可复制的。因此,Internet上有大量的网关和缓存设备。大量ISP已基于http协议设置了缓存以节省导出带宽,并且https协议不能作为透明缓存存在。

另一个原因是基于http的镜像程序要简单得多,不需要验证tls-ssl证书,也不需要担心证书无效或Web服务器配置问题。

不久前,大约20年前,在Internet诞生之初,https和Internet流量仍然是非常昂贵的游戏。因此,http还包括即将淘汰的ftp协议,它是在线安装和分发软件包的主要方式。

同样,Microsoft Windows和Office也使用http升级。您可以观察到它通常不是从Microsoft的服务器下载的安装包,而是ISP的自建缓存服务器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.