如何利用PGP签名验证文件

本文介绍如何使用.asc签名文件验证原始文件的正确性(发送者正确且内容无篡改)。

GnuPG & PGP

关于 GnuPGPGP 的原理,请参考对应链接。这里只提供如下解释:

PGP 主要使用非對稱式加密,每個使用者都擁有一對私鑰(Private Key) 與公鑰(Public Key),資料使用公鑰加密後只能使用它相配對的私鑰解密,資料若使用私鑰加密, 則任何公鑰的持有者可以驗證資料是否確定由私鑰的使用者所傳送。

由於非對稱式加密速度遠比對稱式加密慢很多, 所以只適合加密少量資料, PGP 實際上是使用一把對稱式的金鑰(如Session Key)來加密資料, 再用非對稱式之公要來加密此對稱式的金鑰。

安装

本次安装直接是用来官网提供的如下版本:

GnuPG for OS X  Installer for GnuPG modern

使用其他系统时,安装一个GPG应该是小菜一碟,不做赘述。

验证签名

命令

假设原文件和签名文件已经下载:<原文件全名>.asc

通过 gpg2 --help 可以查看使用方法。验证一个名为 demo.txt 文件的命令如下:

gpg2 --verify demo.txt.asc demo.txt

也可以:

gpg2 --verify demo.txt.asc

验证通过后,可以看到类似这样的打印:

gpg: Good signature from xxx

验证失败后,可以看到:

gpg: Bad signature from xxx

问题与解决

问题:

gpg: Signature made Tue 13 May 2014 05:06:11 AM PDT using RSA key ID 2B2458BF
gpg: Can't check signature: No public key

解决:

gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 2B2458BF

如何利用PGP签名验证文件” 有 1 条评论

写下评论