APT (高级打包工具)是一个程序,用于在Debian操作系统中并基于它们(Ubuntu,Linux Mint等)安装,更新和删除软件包。 有时也用于基于Mandrake的发行版中。 软件包是通过
不安全的连接通过Internet从存储库下载的,而无需使用TLS协议和加密。 问题出现了:为什么? HTTPS不能提供更好的安全性吗? Debian认为HTTPS是不必要的实体,因为
SecureAPT系统会检查下载文件的校验和以及整个软件包的加密gpg签名。
Debian的一名开发人员启动了网站
whydoesaptnotusehttps.com (“为什么APT不使用HTTPS”),该网站解释了官方立场。
SecureAPT如何工作
首先,apt比较软件包中文件的哈希值。 它们被发布在Debian网站上的Release文件中。
MD5Sum: 6b05b392f792ba5a436d590c129de21f 3453 Packages 1356479a23edda7a69f24eb8d6f4a14b 1131 Packages.gz 2a5167881adc9ad1a8864f281b1eb959 1715 Sources 88de3533bf6e054d1799f8e49b6aed8b 658 Sources.gz
...并与数据包一起传输。
Package: uqm Priority: optional ... Filename: unstable/uqm_0.4.0-1_i386.deb Size: 580558 MD5sum: 864ec6157c1eea88acfef44d0f34d219
为了保护Release文件免遭篡改,SecureAPT系统添加了位于Release.gpg文件中的数字签名gpg:
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQBCqKO1nukh8wJbxY8RAsfHAJ9hu8oGNRAl2MSmP5+z2RZb6FJ8kACfWvEx UBGPVc7jbHHsg78EhMBlV/U= =x6og -----END PGP SIGNATURE-----
apt程序下载Release.gpg文件并使用受信任的公用密钥验证签名,这些公用密钥存储在/etc/apt/trusted.gpg文件中。 默认情况下,Debian归档文件的公钥记录在此处。
joey@dragon:~>sudo apt-key list /etc/apt/trusted.gpg -------------------- pub 4096R/55BE302B 2009-01-27 [verfällt: 2012-12-31] uid Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org>
这是最后一道防线,因此Debian会定期更改密钥。 新密钥随debian-archive-keyring软件包一起分发,并且也发布在
网页上 。
新的公共密钥发布后,将执行另一个过程。 使用
gfshare程序将用于生成公钥的秘密密钥分为五个部分,并根据Shamir秘密共享方案在五个著名的开发人员之间分配。 要恢复秘密,五分之三的开发人员必须提供其部分秘密。 Shamir方案的数学证明
已在哈布雷(Habré )上
发表 :它基于这样一个事实,即通过平面上的两个点,您可以绘制无数个2度多项式。要选择唯一的多项式,您需要第三个点。 简而言之,该方案基于多项式插值。
因此,在SecureAPT系统中,秘密密钥分为五个部分并受到安全保护,Release文件的加密签名由公共密钥验证,并且来自程序包的文件的校验和存储在此文件中。 如果一切都如此安全,为什么要使用HTTS?
为什么要使用HTTP?
HTTPS的主要目标是隐藏流量,以防止他人窥视(提供商,政府服务和其他入侵者),以便第三方无法:
- 干扰流量(对其进行修改)。
- 听交通(信息收集,情报)。
SecureAPT系统可以部分防御第一种威胁,但不能防御第二种威胁。 由于软件包是通过开放渠道传输的,因此外部人员可以查看下载了哪些特定软件包以及从何处下载。 攻击者还可以替换软件包和数字签名,但随后将无法通过验证。
Debian开发人员写道:
HTTPS不会为接收数据包提供有意义的机密性,因为攻击者通常会看到您与之通信的主机。 如果连接到分发镜像,则很明显您正在下载更新。
这段时间可能是在浏览器和Internet服务未开始支持TLS上的
DNS和HTTPS (DoH)技术上的DNS来加密DNS流量的时候编写的。 例如,2018年4月,最大的CDN提供商之一Cloudfalre
引入了它,而2018年10月,Google Public DNS还
包括对基于TLS的DNS的支持 。
因此,在进行了适当的系统配置之后,您可以有效地对正在侦听流量的外部人员隐藏DNS查询。 正在积极开展工作,以引入其他隐藏包裹收件人的技术。 也就是说,将来,HTTPS仍将能够提供适当的机密性。
Debian提出了另一个论点:即使在加密连接上,“也很容易根据流量大小确定用户下载哪些文件。”
即使在通过Tor分析流量时也可以使用此“漏洞”。
最后,Debian认为没有理由完全信任证书颁发机构:有400多个CA为任何域提供证书。 许多企业声誉不佳,有一些国家直接控制。 很难确定
可以信任的CA。因此,根据Debian所说,最重要的是确保软件包中文件的真实性,而不是保护连接本身。
为什么不在现有SecureAPT引擎之上部署HTTPS? 开发人员认为这是一项艰巨的工程任务,需要安全交换和存储私钥。 另外,由于上述原因,HTTPS的实现意味着“在安全性和隐私级别方面误导用户”。
在2019年,故意放弃HTTPS看起来非常奢侈,因此Debian的立场引发了
Hacker News的
热烈讨论 ,评论员提出了一些反对意见。
您如何看待,您需要加密适当的流量吗? (下面的投票)。

