欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

如何使用pgp证书来验证文件的完整性

程序员文章站 2022-04-27 12:44:53
 下载nginx服务器时提供了pgp证书,可以验证完整性。 pgp证书是这样生成的(个人理解): 1. 现找到文件的HASH码,类似于md5 2. 用私钥对其进行加密。 3....

 下载nginx服务器时提供了pgp证书,可以验证完整性。

pgp证书是这样生成的(个人理解):

1. 现找到文件的HASH码,类似于md5

2. 用私钥对其进行加密

3. 将公钥暴露到网站上。

4. 将证书暴露到网站上。

5. 终端用户导入公钥到本地。

6. 终端用户使用公钥解密证书,拿出hash信息来验证文件的完整性。

下面是验证文件 nginx-1.6.2.zip的过程:

wangxin@wangxin-VirtualBox:~/桌面$ ls

aalexeev.key  is.key     mdounin.key      nginx-1.6.2.zip.asc  sb.key

glebius.key   maxim.key  nginx-1.6.2.zip  nginx_signing.key

wangxin@wangxin-VirtualBox:~/桌面$ gpg --import *.key

gpg: 密钥 F5806B4D:公钥“Andrew Alexeev <andrew@nginx.com>”已导入

gpg: 密钥 6C7E5E82:公钥“Gleb Smirnoff <glebius@nginx.com>”已导入

gpg: 密钥 A524C53E:公钥“Igor Sysoev <igor@sysoev.ru>”已导入

gpg: 密钥 2C172083:公钥“Maxim Konovalov <maxim@FreeBSD.org>”已导入

gpg: 密钥 A1C052F8:公钥“Maxim Dounin <mdounin@mdounin.ru>”已导入

gpg: 密钥 7BD9BF62:“nginx signing key <signing-key@nginx.com>”未改变

gpg: 密钥 7ADB39A8:公钥“Sergey Budnevitch <sb@waeme.net>”已导入

 

gpg: 合计被处理的数量:7

 

gpg:               已导入:6  (RSA: 3)

gpg:              未改变:1

gpg: 没有找到任何绝对信任的密钥

wangxin@wangxin-VirtualBox:~/桌面$ gpg --verify nginx-1.6.2.zip.asc nginx-1.6.2.zip

gpg: 于 2014年09月16日 星期二 21时07分26秒 CST 创建的签名,使用 RSA,钥匙号 A1C052F8

gpg: 完好的签名,来自于“Maxim Dounin <mdounin@mdounin.ru>”

gpg: 警告:这把密钥未经受信任的签名认证!

gpg:          没有证据表明这个签名属于它所声称的持有者。

主钥指纹: B0F4 2533 73F8 F6F5 10D4  2178 520A 9993 A1C0 52F8