Dec 20

[原]使用GPG校验sign签名 晴

linuxing , 20:32 , 基础知识 » 系统命令 , 评论(0) , 引用(0) , 阅读(21762) , Via 本站原创 | |
    GPG除了可用于信息加密和解密外,还是一个很好的签名算法,能有效的校验文件的完整性。以GnuPG上的软件包为例说明。
一、下载软件
例如,您从http://www.gnupg.org/下载新版的GnuPG 1.4.9版本。
网站提供如下信息:
引用
·  GnuPG 1.4.9 source compressed using bzip2.  3250k S
·  Signature and SHA-1 checksum for previous file.
826f4bef1effce61c3799c8f7d3cc8313b340b55  gnupg-1.4.9.tar.bz2
·  GnuPG 1.4.9 source compressed using gzip.  4554k S
·  Signature and SHA-1 checksum for previous file.
52a245d20da70a3f79a2134c8ece3a1d30554ffa  gnupg-1.4.9.tar.gz

把任意一对的源码包和签名下载回来:

# wget ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.9.tar.bz2
# wget ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.9.tar.bz2.sig

二、校验
1、使用sha1sum校验
引用
# sha1sum gnupg-1.4.9.tar.bz2
826f4bef1effce61c3799c8f7d3cc8313b340b55  gnupg-1.4.9.tar.bz2

校验码相同,软件包完整。

2、使用GnuPG校验
直接运行的话,会提示找不到公钥:
引用
# gpg --verify gnupg-1.4.9.tar.bz2.sig
gpg: 于 2008年03月27日 星期四 01时39分46秒 CST 创建的签名,使用 RSA,钥匙号 1CE0C630
gpg: 无法检查签名:找不到公钥

从第三方的公钥服务器上下载并导入公钥:
引用
# gpg --keyserver subkeys.pgp.net --recv-key 1CE0C630
gpg: 下载密钥‘1CE0C630’,从 hkp 服务器 subkeys.pgp.net
gpg: 密钥 1CE0C630:公钥“Werner Koch (dist sig) <dd9jn@gnu.org>”已导入
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性:  1 已签名:  0 信任度:0-,0q,0n,0m,0f,1u
gpg: 合计被处理的数量:1
gpg:           已导入:1  (RSA: 1)

校验:
引用
# gpg --verify gnupg-1.4.9.tar.bz2.sig
gpg: 于 2008年03月27日 星期四 01时39分46秒 CST 创建的签名,使用 RSA,钥匙号 1CE0C630
gpg: 完好的签名,来自于“Werner Koch (dist sig) <dd9jn@gnu.org>”
gpg: 警告:这把密钥未经受信任的签名认证!
gpg:       没有证据表明这个签名属于它所声称的持有者。
主钥指纹: 7B96 D396 E647 1601 754B  E4DB 53B6 20D0 1CE0 C630

三、自己做签名
先参考[原]使用GPG加密信息,生成您自己的密钥对。当然,如果单纯用于签名,生成密钥时,可以选择使用DSA、RSA算法种类即可。
然后用gpg生成签名,并把签名单独分离出来:
引用
# gpg --detach-sign gnupg-1.4.9-1.src.rpm

您需要输入密码,才能解开这个用户的私钥:“Hyphen Wang (Use for GPG Encrypt) <gpgencrypt@linuxfly.org>”
1024 位的 DSA 密钥,钥匙号 A3942296,建立于 2008-12-19

根据提示,输入密钥的密码。然后会生成签名文件,可用于校验:
引用
# gpg --verify gnupg-1.4.9-1.src.rpm.sig
gpg: 于 2008年12月19日 星期五 16时59分50秒 CST 创建的签名,使用 DSA,钥匙号 A3942296
gpg: 完好的签名,来自于“Hyphen Wang (Use for GPG Encrypt) <gpgencrypt@linuxfly.org>”

注意,我们使用的密钥对是自己的:
引用
# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   1024D/A3942296 2008-12-19
uid                  Hyphen Wang (Use for GPG Encrypt) <gpgencrypt@linuxfly.org>
sub   2048g/911E677B 2008-12-19

四、帮助
GnuPG 中文选项说明
Tags: ,
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]