GnuPG使用笔记(一)

昨天从openvpn.net下载OpenVPN for Windows的安装包,但发现下载的链接地址并不是OpenVPN网站给出的

http://openvpn.net/release/openvpn-2.1.1-install.exe

而是自动跳转为

http://211.162.62.164:9205/9274E4439E219711FCAD0664C8A134395BF33CF0483068041EC8AFB4C302B71B0F1129DBF9F792B819D6319E0/openvpn.net/release/openvpn-2.1.1-install.exe

经过一翻“空想”,估计是长宽自行做了openvpn.net的下载镜像。


由于openvpn.net只给出了安装包的GnuPG Signature数字签名),出于安全因素和对GnuPG的一点兴趣,看了一些关于GnuPG的文章:《个人数据安全 (1):用GnuPG保护个人隐私数据》《GPG(pgp)加解密中文完整教程》,基本懂得怎么使用GnuPG了。本文内容也是参考以上两篇文章。


GnuPG (英文:GNU Privacy Guard, 简称:GPG) 是一份开放源代码的PGP加密自由软件。GnuPG依照由IETF订定的OpenPGP技术标准设计。 GnuPG用于加密数字签名及产生非对称密钥对的软件。


在Windows下使用GnuPG

  1. GnuPG提供了一系列实现加密、解密、签名、证书管理等功能的命令行工具。GnuPG ShellGPGee都需要借助GnuPG才能工作

  2. GnuPG ShellGnuPG ShellGnuPG的一个图形前端,可以较为方便地完成证书管理的工作。GnuPG Shell当然也可以用于文件的加密、解密和签名操作,但是其使用不如GPGee那样来得简单直接。

  3. GPGeeGPGee全称为GPG explorer extension。它在Windows Explorer的右键菜单中增加了GPG相关的菜单项,使得用户可以非常方便地执行加密解密签名操作。但GPGee不提供GnuPG证书的管理功能,因此建议和GnuPG Shell配合使用。

按顺序把以上三个软件都安装以后,GPGee需做做简单的配置,选中GPGee菜单中的「Configure」,有三个文件路径需要配置。

  • Gnupg主程序:即GnuPG安装目录下的gpg.exe
  • 公钥密钥环:位于%APPDATA%\gnupg\pubring.gpg
  • 私钥密钥环:位于%APPDATA%\gnupg\secring.gpg

其中两个密钥环文件用于存储和管理GnuPG系统中所有已知的公钥和私钥。


对GnuPG数字签名进行验证

由于GnuPG采用非对称加密,验证数字签名前必须拿到对应的公钥!

  1. 把OpenVPN的安装包(openvpn-2.1.1-install.exe)和对应的GnuPG数字签名文件(openvpn-2.1.1-install.exe.asc)放在同一目录。
  2. 用鼠标右击 openvpn-2.0.9-install.exe.asc →「GPGee」「Verify/Decrypt」。因为是初次验证OpenVPN的数字签名,所以提示缺少OpenVPN的公钥:Key ID为1FBF51F3。
  3. 从密钥服务器(Key Server)导入Key ID1FBF51F3的公钥。命令为「gpg.exe –recv-keys 1FBF51F3」。也可以用GnuPG Shell →「Server」「Retrieve Keys」(Key ID)→输入1FBF51F3,但在我这里不成功。

  4. 再次用鼠标右击 openvpn-2.0.9-install.exe.asc →「GPGee」「Verify/Decrypt」。打表示文件通过数字签名验证,但提示我没有对此公钥选择信任级别。


必须对导入的公钥进行有效确认:指纹采样(fingerprint)

上面提到:我没有对此公钥选择信任级别。因为从网络上导入公钥,有存在伪造的可能性。我们可以通过指纹采样fingerprint)来确保我们拿到的公钥是可靠的。因为我没有在openvpn.net上找到它公钥的指纹采样,所以以TrueCrypt的公钥为例。


TrueCrypt公钥指纹采样(官方页面):C5F4 BAC4 A7B2 2DB8 B8F8 5538 E3BA 73CA F0D6 B1E0


指纹采样可以用GnuPG Shell查看,但是不知什么原因,我这里通过GnuPG Shell查看指纹采样数值并不正确

而通过GnuPG命令行查看是正确的,命令如下:gpg.exe –fingerprint Key ID

对于通过指纹采样的公钥我们可以把它的信任级别设定为“Ultimately”。

公钥的指纹采样数值是正确的并且文件通过数字签名验证,这样说明文件的完整性是完好的,没有被第三方篡改。

GnuPG使用笔记(一)》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注