本文将讨论使用 GPG/PGP 作为主要加密工具通过电子邮件安全发送信息的方法。 PGP和GPG的区别主要在于PGP是赛门铁克控制的专有解决方案,而GPG是由赛门铁克定义的开源标准 RFC 4880. 在功能上,由于 GPG 是原始 PGP 标准的后代,每种格式实际上是相同的。 因为有许多电子邮件客户端,特定的 GPG 设置会有所不同。 在本教程中,我们将使用 Gmail 和 Thunderbird 作为示例。
通常,有几种方法可以发送加密信息。
- 加密单个文件,然后将该文档附加到电子邮件中。
- 加密电子邮件本身(使用像 Thunderbird 这样的独立客户端,它具有自动加密电子邮件的能力)。
- 使用与这些扩展等基于 Web 的电子邮件交互的浏览器插件。
GPG/PGP 加密如何工作?
一旦您了解了概念背后的基本思想,使用安全加密并不像看起来那么困难。 使用 GPG,我们创建了一个公钥和私钥,我们想要发送信息的用户也创建了一个公钥和私钥。 我们只需使用该用户的公钥加密我们给他的消息,他使用他的私钥解密它。 当他回复时,他也会对我们做同样的事情。 确保私人通信是当今在不安全的网络中轻松共享敏感信息的要求。
加密文件
简单的加密/解密
首先,我们可以使用一种简单的方法来加密单个文件,以便安全地传输我们的数据。 第一种方法称为对称加密,并使用两个用户都知道的密码。 为此,我们在 Linux 服务器上使用以下 gpg 命令。
root@host:~# gpg -c file.txt
┌──────────────────────────────────────────────────────┐
│ Enter passphrase │
│ │
│ │
│ Passphrase: ____________________________ │
│ │
│ <Ok> <Cancel> |
│ |
└──────────────────────────────────────────────────────┘
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
root@merovingian2:~#
当我们使用 -c 标志时,gpg 会提示我们输入两次密码。 在这种情况下,因为使用了新的加密,所以也会创建一个新的密钥环。
然后我们可以将该文件发送给使用相同密码的人来解密它。
root@host2:~# gpg file.txt.gpg
┌──────────────────────────────────────────────────────┐
│ Enter passphrase │
│ │
│ │
│ Passphrase: ____________________________ │
│ │
│ <Ok> <Cancel> |
│ |
└──────────────────────────────────────────────────────┘
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase
root@host2:~# ll
-rw-r--r-- 1 root root 934 Dec 11 09:55 file.txt
-rw-r--r-- 1 user user 491 Dec 11 09:54 file.txt.gpg
如您所见,解密将 gpg 文件与它在接收服务器上创建的新文件一起保留在原处。
使用公钥加密文件
在以下命令集中,我们使用已在本地存储的外部用户公钥加密文件。 第一个命令使用远程用户的公钥对文件进行加密和签名。 ‘–armor’ 标志创建一个 ASCII 保护输出文本,而 ‘-r’ 标志专门为用户的姓名或 ID 加密消息。 然后,我们将该文件附加到电子邮件中并发送。 然后,收件人需要下载文件并使用他们的私钥对其进行解密。
root@host:~# gpg --encrypt --sign --armor -r [email protected] mysecret.txt
root@host:~# gpg --decrypt mysecret.asc > mysecret.txt
第二个命令在用户端解密文件并将其输出到特定文件名。 这种方法可以在任何平台上使用。
在 Thunderbird 中加密电子邮件
该方法使用 原生 OpenPGP 功能 内置 雷鸟 现在已集成到其应用程序中。 在下图中,您可以看到我们已经下载、安装并开始使用最新的 Thunderbird 电子邮件应用程序 78.5.1。
设置帐户并添加外部密钥
步骤 1. 创建一个电子邮件帐户。
第一步,我们创建一个电子邮件地址。 单击电子邮件按钮开始该过程。

这将打开 Thunderbird 帐户设置窗口。
步骤 2. 添加信息
现在,我们添加我们的姓名、电子邮件地址和密码信息。 接下来,单击手动配置按钮以输入我们的服务器信息连接详细信息。 您可以在电子邮件帐户 > 列出电子邮件帐户 > 连接设备下的 cPanel 帐户中找到此特定信息。

然后单击重新测试按钮以验证连接设置。 如果成功,您将看到一个绿色勾号,然后是“通过探测给定服务器找到以下设置”。 此消息表明连接成功。 单击完成按钮以完成设置。
然后,您将看到该应用程序正在执行密码检查。 正在检查密码…

如果成功,我们将返回主窗口。 您现在应该在“本地文件夹”选项卡的左上角看到一个新的电子邮件地址。

步骤 3. 检查加密
接下来,我们将进入“帐户设置”>“端到端加密”选项卡来设置我们的个人密钥。

步骤 4. 添加 PGP 密钥
如您所见,我没有为此电子邮件地址设置个人密钥。 现在让我们这样做。 单击“添加密钥”按钮。 将弹出一个新窗口,询问我们是要创建新密钥还是导入现有密钥。 在这里,我们将创建一个新密钥。 选中复选框“创建新的 OpenPGP 密钥”,然后单击继续。

这将打开一个新窗口,允许我们选择要使用的身份。 它还提示我们选择我们的密钥将处于活动状态的时间长度。 此设置默认为三年,但可以是您选择的任何时间范围。 接下来,我们决定使用 RSA 选项。

我们现在单击生成密钥按钮。 这将打开一个新窗口,其中包含有关密钥生成的信息。 单击确认按钮,密钥生成过程将继续。
此过程将需要几分钟才能完成!

该过程完成后,将显示更新的设置窗口,让我们知道我们的密钥已成功创建。

从这一点开始,我们向下滚动并选中默认情况下需要加密复选框,以将加密的消息发送给选定的收件人。

我们现在可以 close 设置选项卡并继续我们的下一步。
步骤 5. 添加公钥
要将加密消息发送给收件人,我们需要导入他们的公钥。 这允许我们使用该密钥加密消息。 加密后,除非他们拥有与我们用来加密消息的公钥相对应的正确私钥,否则无法读取消息。 要找到某人的公钥,我们可以通过电子邮件面对面地从他们那里获取它,或者在以下位置之一搜索他们的电子邮件地址。
- 麻省理工学院 PGP 公钥服务器
- Hockeypuck OpenPGP 密钥服务器
- PGP 全球目录
- 窥视
- OpenPGP密钥服务器
- 密钥 OpenPGP
- Debian 公钥服务器
- Mailvelope 密钥服务器
一旦我们导入了他们的密钥,我们应该为个人选择信任级别。 如果他们匹配他们的 ID,我们可以验证它,然后我们将其导入我们的 PGP 密钥存储。
现在,我们可以将我们的加密信息发送给他们。 单击“写”按钮为我们的收件人创建一封新电子邮件。

编辑窗口打开后,我们可以单击顶部菜单下拉菜单来验证我们的设置。 一旦一切看起来都正确,并且我们的消息已完成,我们单击发送以传递消息。
并且当收到邮件时,邮件客户端会自动解密。

在接收端,该消息看起来与任何其他电子邮件消息相似,除了如果您查看完整的电子邮件,您会看到在初始消息之后添加了公共加密密钥。

注:是 至关重要的 创建 OpenPGP 密钥的备份并将其存储在与本地计算机不同的安全位置。 配置个人密钥后,您可以控制在您发送的单个消息中使用加密或数字签名。
发送加密消息的要求
- 必须设置和选择您的个人密钥。
- 您必须拥有要发送加密消息的每个收件人的公钥。 公钥可以附加到通讯者的电子邮件消息中,也可以位于在线的公钥存储中。
- 您必须验证收件人的公钥是否属于他们。 如果您在未经验证的情况下接受某人的公钥,您可能会将自己暴露在中间人攻击 (MITM) 之下。
- 如果您没有每个收件人的公钥,则消息将被阻止,Thunderbird 会提醒我们。 此时,我们可以选择根本不发送消息或禁用加密和不保护发送消息。
基于 Web 的客户端
第二种方法是使用基于 Web 的电子邮件客户端,例如 Gmail。 两个都 Firefox 和 Chrome 浏览器提供了安装扩展程序的能力,可以帮助我们完成这项任务。 两个最佳选择是:
替代选择
发送安全电子邮件的其他选项是 质子邮件 和 图塔诺拉. 这两种在线电子邮件服务都允许用户发送加密的电子邮件。
结论
使用加密不一定是一个复杂的问题。 它可以以多种方式用于加密和解密文件,以便通过不安全的网络安全地传输数据。 我们的支持团队由经验丰富的 Linux 技术人员和才华横溢的系统管理员组成,他们对多种网络托管技术有着深入的了解,尤其是本文中讨论的技术。
如果您对此信息有任何疑问,我们将随时为您解答与本文相关问题的任何询问,每天 24 小时、每周 7 天、每年 365 天。