常识# GPG使用(一) verify

什么是GPG?

GPG (Gnu Privacy Guard)是一个非对称加密的工具。使用过程中会遇到两种密钥:公钥和私钥。

密钥的基本概念

私钥加密可以用公钥解开。

公钥加密可以用私钥解开。

公钥顾名思义是公开的,很容易获取。

这意味着什么呢?私钥加的密,大家都能解开。所以它的用途不是用来加密而是表明身份、用来判断出处,即:签名。

Verify

用不到的东西,比较容易遗忘。写写总结回头再想起来就容易一点。这篇说下GPG里verify的用法。

 一个实际的例子:下载了一个archlinux的iso,我想验证下来源。

1. 下载相关sig文件

   这个sig文件是签名文件,要和需要验证的iso文件放在同一个目录。

   GPG支持分体式签名,sig文件是二进制的签名文件,还有一种是asc文件,由字母表示。

2. 尝试验证

  结果是:这个sig是由一个ID为9741E8AC的密钥生成的,但是现在找不到这个密钥

 >>> gpg --verify archlinux-2012.11.01-dual.iso.sig
gpg: Signature made Thu 01 Nov 2012 02:10:33 PM CST using RSA key ID 9741E8AC
gpg: Can't check signature: public key not found

3.  下载导入公钥

前面提到的KeyID,可以在公共服务器里查找并导入。提示中的hkp指的是Http Keyserver Protocol

 >>> gpg --search-keys 9741E8AC
gpg: searching for "9741E8AC" from hkp server keys.gnupg.net
(1)    Pierre Schmitz <pierre@archlinux.de>
      2048 bit RSA key 9741E8AC, created: 2011-04-10
Keys 1-1 of 1 for "9741E8AC".  Enter number(s), N)ext, or Q)uit > 1
gpg: requesting key 9741E8AC from hkp server keys.gnupg.net
gpg: /home/matt/.gnupg/trustdb.gpg: trustdb created
gpg: key 9741E8AC: public key "Pierre Schmitz <pierre@archlinux.de>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

4. 再次验证

 现在可以确认archlinux-2012.11.01-dual.iso这个文件确是由pierre@archlinux.de签发的。但是不能保证和相应的人是挂钩的,所以会有一个警告。

gpg --verify archlinux-2012.11.01-dual.iso.sig 
gpg: Signature made Thu 01 Nov 2012 02:10:33 PM CST using RSA key ID 9741E8AC
gpg: Good signature from "Pierre Schmitz <pierre@archlinux.de>"
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: 4AA4 767B BC9C 4B1D 18AE  28B7 7F2D 434B 9741 E8AC

 

posted @ 2012-12-01 16:11  倚楼无语F5  阅读(2340)  评论(0编辑  收藏  举报