你们下载开源软件的时候,会不会验证 gpg 签名?

2023-07-10 19:14:13 +08:00
 chenjia404
我自己现在所有发布的开源软件,都会加上 gpg 签名,尤其是现在很多使用 GitHub 镜像,这个中间人劫持是有可能的。
1065 次点击
所在节点    问与答
12 条回复
lhbc
2023-07-10 19:19:12 +08:00
怎么确保 gpg 签名文件没被替换?
还是从官网和 GitHub 直接下载吧

说实话,GitHub 上的二进制,不是 GitHub Actions 构建和发布的都不一定可信
chenjia404
2023-07-10 19:28:22 +08:00
@lhbc #1 gpg 签名可以看到发布者啊,验签的时候可以看到指纹,信息不对就是假的。Linux 包就是依赖 gpg 签名,基本上大家都是用的镜像,然后验证签名对不对。
aaniao002
2023-07-10 19:47:33 +08:00
https 直接下下来的东西,如果不报证书问题我不会验。话说 apt 源有一段时间大量包证书错误是怎么回事?
chenjia404
2023-07-10 19:49:55 +08:00
@aaniao002 #3 如果是 GitHub 直接下载问题不大,如果是镜像就要注意了,之前 xcode 就是案例。
Trim21
2023-07-10 19:54:14 +08:00
不用 github 镜像,所以一般也不验证...
icyalala
2023-07-10 20:01:48 +08:00
@chenjia404 所以现在苹果用 xip 格式来发布 xcode ,自带签名。
0o0O0o0O0o
2023-07-10 20:12:42 +08:00
对于个人的开源软件我更看重 reproducible builds
lhbc
2023-07-10 21:50:46 +08:00
@chenjia404 Linux 是不是有类似 CA 的机制?
安装后就有内置的签名文件
安装软件和更新签名都得由旧的签名验证

但一个第三方的签名,你怎么验证?你还得先确认签名文件没有被替换
chenjia404
2023-07-10 22:05:02 +08:00
@lhbc #8 Linux 的包是有这个机制的,添加源的时候有时候就需要信任 gpg 证书
lhbc
2023-07-10 22:06:53 +08:00
@chenjia404 对啊
但你从 example.com 下载了一个程序,又从这个网站下载了个 asc 文件来验证签名,这没用啊
yianing
2023-07-11 02:39:14 +08:00
@lhbc 你信任的证书私钥是只在开发者那里有的,替换签名文件会导致签名不通过啊
lhbc
2023-07-11 02:46:18 +08:00
@yianing 那你也无法保证私钥是从可信渠道来的。
除非私钥的来源是可信的。

你下载了 source.tar.gz ,再下载一个 source.asc 和私钥,要伪造的话就伪造整条链路

如果这么注重安全,那从非官方或者非可信渠道下载源码或者程序本来就是应该避免的
除非有类似 CA 的体系

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/955612

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX