tuna / issues

Code Unrelated Issues
364 stars 28 forks source link

镜像站帮助文档应避免通过 apt-key 系统全局信任 GPG 公钥 #1413

Open phy25 opened 2 years ago

phy25 commented 2 years ago

先决条件 (Prerequisites)

发生了什么(What happened)

2021 年 12 月,CloudFlare 部分客户端软件 GPG 私钥遭到泄露,其后发布的一篇博客指出:

the impact of an improperly secured private key can have consequences that extend beyond the scope of one third-party repository.

简而言之,apt-key 加入的 GPG 公钥会在系统全局层面信任其签名的任意软件。apt 同时也支持按软件源验证签名,因此非系统级的第三方软件应该设置为按软件源验证签名,从而减小私钥泄露的攻击面。

经查,TUNA 的部分镜像使用帮助中存在使用 apt-key 的建议。以下是所有帮助中带有 apt-key 命令的项目(我查看了部分官方文档,如果其中有只对软件源本身设置验签的方法,我也顺便列出了地址):

还有部分非 apt 镜像看起来也是在全局信任签名,但我不是很清楚这些包管理软件是否支持按软件源设置验签。

如果这个 issue 应该被移动到其它项目,请移动,谢谢!

期望的现象(What you expected to happen)

帮助文档使用类似 [arch=amd64 signed-by=/usr/share/keyrings/tuna-keyring.gpg] 的格式在 apt 中设置验签

如何重现此问题(How to reproduce it)

请参见 CloudFlare 博客

操作系统(OS Version)

No response

浏览器(如果适用)(Browser version, if applicable)

No response

其他环境(Other environments)

No response

其他需要说明的事项(Anything else we need to know)

No response

Evian-Zhang commented 2 years ago

事实上,在升级了Ubuntu 22.04后,使用目前的通过apt-key系统全局信任GPG公钥的方法,在使用apt-get update等命令时,会产生warning(以docker镜像为例):

W: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

可以参考这个回答解决此问题。

jiegec commented 2 years ago

欢迎对 tuna/mirror-web 提出 pr。

ZenithalHourlyRate commented 2 years ago

对于帮助文档,我们会遵循上游的做法,这里主要的约定是在相关文件的命名上(例如 /usr/share/keyrings/docker-archive-keyring.gpg)。

上游已经修改的,欢迎对 tuna/mirror-web 提出 PR,我们也会尽量更新相关文档。

上游暂未修改的,可以与上游反馈,上游修改后同步到镜像站这边。