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

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

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

但一个第三方的签名,你怎么验证?你还得先确认签名文件没有被替换
chenjia404
317 天前
@lhbc #8 Linux 的包是有这个机制的,添加源的时候有时候就需要信任 gpg 证书
lhbc
317 天前
@chenjia404 对啊
但你从 example.com 下载了一个程序,又从这个网站下载了个 asc 文件来验证签名,这没用啊
yianing
317 天前
@lhbc 你信任的证书私钥是只在开发者那里有的,替换签名文件会导致签名不通过啊
lhbc
317 天前
@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