lss233 4 min read
让我们用PGP进行安全地交流吧!

如今的互联网,用户已经毫无隐私可言。咱经常都能看见各种信息泄露的新闻。谁能保证咱使用的软件、网络甚至是设备没有被什么人监视着呢?
为了保证隐私安全,PGP诞生了。
这篇文章将会让你了解如何在你的设备上配置与使用PGP加密邮件,让我们开始吧~

0x00 PGP的前世今生

什么是 PGP ?

PGP(英语:Pretty Good Privacy,中文翻译“优良保密协议”)是一套用于讯息加密、验证的应用程序,采用IDEA的散列算法作为加密和验证之用。
PGP加密由一系列散列、数据压缩、对称密钥加密,以及公钥加密的算法组合而成。每个步骤均支持几种算法,用户可以选择一个使用。每个公钥均绑定一个用户名和/或者E-mail地址。
PGP的主要开发者是菲尔·齐默曼(Phil Zimmermann)。齐默曼于1991年将PGP在互联网上免费发布。PGP本身是商业应用程序;开源并具有同类功能的工具名为GnuPG(GPG)。PGP及其同类产品均遵守OpenPGP数据加解密标准(RFC 4880)。
以上文字和图片引用自维基百科

OpenPGP、GnuPG又是什么?

OpenPGP是由IETF(互联网工程任务小组)根据PGP,制定的一项公开的互联网标准。任何支持这一标准的程序也被允许称为OpenPGP。
GnuPG则是一款由GNU组织依照OpenPGP标准开发的软件,用于加密、数字签名及产生非对称钥匙对。

0x01 安装与配置

配置PGP的方式多样,下面简单介绍一下常见的几种情况。

如果你正在使用Linux系统,那么应该会自带GnuPG。在你的终端上输入`gpg --version`来验证是否安装:

$  gpg --version
gpg (GnuPG) 2.2.4
libgcrypt 1.8.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/lss233/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

如果没有,请自行根据你的系统安装GPG.

Windows用户建议安装Gpg4win

Android用户可以使用 K-9 Mail 作为邮箱客户端,使用OpenKeychain 管理密钥,这两款App都有很详细的引导过程,本文不对此进行更详细的说明。

0x03 ThunderBird + Enigmail

Thunderbird是一只由Mozilla开发的邮箱客户端,支持Linux和Windows系统。你可以在这里下载。

Enigmail是一款Thunderbird的插件,它提供了对OpenPGP的支持。

待Thunderbird安装好之后,配置你的邮箱。

在主程序界面,打开菜单(菜单按钮位于搜索框Event栏之间的图标),点击附加组件

在新打开标签页的搜索栏中输入Enigmail并回车,就可以看到这个插件的安装按钮,点击安装。

安装成功之后,重新启动Thunderbird。在菜单栏,咱会发现多了一个Enigmail菜单。点击安装向导,根据提示完成后续操作。

0x04 交换密钥

在Enigmail菜单中,有一个密钥管理选项,点击即可打开密钥管理窗口。

右键你的密钥,可以选择把你的公钥通过一些方式导出。把你的公钥通过安全的方式发给你的朋友,他们就可以在公钥有效期内加密文本,再由你使用密钥解密。

你可以在文件选项卡中选择从文件中导入密钥。导入的密钥可以用来加密文本,只有拥有这个密钥的私钥,才能将文本解密。

0x05 收发邮件

在Thunderbird的新建消息窗口,点击发送按钮旁边的小锁和钢笔图标,就可以开启加密和签名邮件。

在发送邮件前,你需要先拥有收件人的PGP公钥。

0x06 给我发一封邮件吧!

到这里为止,你已经可以成功使用PGP进行安全、私密地通讯了。

我的PGP公钥邮箱地址可以在这个博客的关于我页面找到,给我发一封邮件试试吧!