V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chenjia404
V2EX  ›  问与答

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

  •  
  •   chenjia404 · 2023-07-10 19:14:13 +08:00 · 1047 次点击
    这是一个创建于 520 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我自己现在所有发布的开源软件,都会加上 gpg 签名,尤其是现在很多使用 GitHub 镜像,这个中间人劫持是有可能的。
    12 条回复    2023-07-11 02:46:18 +08:00
    lhbc
        1
    lhbc  
       2023-07-10 19:19:12 +08:00 via Android
    怎么确保 gpg 签名文件没被替换?
    还是从官网和 GitHub 直接下载吧

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

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

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

    如果这么注重安全,那从非官方或者非可信渠道下载源码或者程序本来就是应该避免的
    除非有类似 CA 的体系
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5504 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:57 · PVG 09:57 · LAX 17:57 · JFK 20:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.