开源网站和镜像站点不得不说的秘密

引子

由于当前一些比较知名的开源网站如GNUApache支持的开源项目比较丰富,开源项目的使用客户也比较多,从而开源文件的下载量就比较大,这给开源网站带来了不小的压力。

为了满足世界范围内不同国家和地区的下载需求,知名开源网站一般都会在各个国家和地区建立一些镜像站点(mirror sites),比如在中国有许多大学提供这种镜像站点服务,还有网易也提供。

但是问题来了,我们可以从这些镜像站点更快的下载开源文件,但是如何保证这些开源文件

  • 下载完整
  • 没有被无意或恶意篡改过

我想快乐的从镜像站点下载开源文件的小伙伴们也许曾经想到过这些问题,献身开源事业的开源网站管理者同样也想到了这样的问题,所以他们不仅提供了开源文件,还提供了开源文件的验证文件filename.sig,filename.asc等等(filename.mds、filename.md5sum、filename.sha1不在本次讨论之列)

那如何使用这些文件验证开源文件的有效性呢?

使用步骤

  1. 为了保证filename.sig,filename.asc不被恶意篡改,建议使用https协议下载上述验证文件:

    > wget -c https://example.com/download/filename.sig
  2. 从较快的镜像站点下载开源文件(http、https、ftp都可以):

    > wget -c http://mirror.example.com/download/filename

    这时如果直接使用gpg工具(源自GnuPG),则会获得如下结果:

    > gpg --verify ./filename.sig ./filename
    gpg: Signature made Sun 22 Sep 2013 12:11:06 AM PDT using DSA key ID 2983D606
    gpg: Cannot check signature: public key not found
    

    这说明我们还没有相应的公钥。

  3. 这时有三种解决方法:

    • 从知名keyserver下载相应公钥

      > gpg --keyserver keyserver.org --recv-key 2983D606
      gpg: requesting key 2983D606 from hkp server keyserver.org
      gpg: key 2983D606: public key "Gary Vaughan (Free Software Developer) <gary@vaughan.pe>" imported
      gpg: no ultimately trusted keys found
      gpg: Total number processed: 1
      gpg:               imported: 1
    • 阅读example.com/README下载公钥KEYS文件

      > wget -c https://example.com/download/KEYS
      > gpg --import ./KEYS
    • 阅读example.com/README下载keyring文件

      > wget -c https://example.com/download/keyring.gpg
      > gpg --import ./keyring.gpg
  4. 这时可以验证

    > gpg --verify ./filename.sig ./filename
    gpg: Signature made Sun 22 Sep 2013 12:11:06 AM PDT using DSA key ID 2983D606
    gpg: Good signature from "Gary Vaughan (Free Software Developer) <gary@vaughan.pe>"
    gpg:                 aka "Gary V. Vaughan <gary@gnu.org>"
    gpg:                 aka "[jpeg image of size 9845]"
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: CFE2 BE70 7B53 8E8B 2675  7D84 1513 0809 2983 D606
    

    > gpg --verify --keyring ./keyring.gpg ./filename.sig ./filename
    

Keyserver 示例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值