Email加密扫盲教程

Email 是一个伟大的发明。但多数人不知道,网络上的 email, 与其说是邮件,倒不如说是明信片:任何一个参与投递的节点,都可以阅览其中的内容。他们不仅可以搜集信息,还能伪造你的身份,做不法的勾当。想要安全地投递邮件,就要把明信片装进信封里,贴上自己的防伪标签。这样邮件的内容就无法被第三方获知,第三方也不能以你的身份发邮件了。

工具

为了完成加密这件事,咱们需要一整套软件的支持。在 windows 系统上,推荐的工具链是 gpg + thunderbird + enigmail.

  • GPG 是 "GNU Privacy Guard" 的缩写,用于数据和通讯的加密。我们使用 gpg4win 软件包实现 GPG 的功能。
  • Thunderbird 是一款老牌邮件客户端。它的插件 enigmail 帮助我们轻松实现邮件的加密、验证和解密过程。

原理

GPG 使用了非对称加密技术。在传统的对称加密中,加密和解密使用相同的密钥,发件人需要将自己的密钥通过安全的方式交给收件人,收件人才能获知信件的内容。这种方式很难保证密钥的安全。同时,由于每个会话的参与者都有相同的密钥,所以无法核实发件人的身份。非对称加密使用公钥和私钥两把钥匙解决了这个问题。公钥散布在网络上供他人使用,私钥只有自己使用,两把钥匙合起来实现整个加密解密过程。

当你需要给别人发邮件时,请使用收件人的公钥加密这封邮件。收件人随后用自己的私钥解密,就能看到邮件的内容。由于只有收件人才有私钥,其他人就算截获了邮件,也无法解密,这就实现了加密传输。

因为任何人都可以获取收件人的公钥,上面的步骤无法向收件人证明你的身份。这时候,你需要用发件人自己的私钥签署这封邮件,收件人如果能用你的公钥成功解密,这就证明了你的身份。

实践

安装软件

通过上文的链接,顺次安装 gpg4win 和 thunderbird. enigmail 并不是双击即可安装的 exe 文件,它只能使用 thunderbird 的插件管理器安装。从菜单进入 add-ons, 再点击页面上方的齿轮图标,打开 enigmail 的安装包即可。



生成公钥和私钥

第一次使用 enigmail 之前,向导会引导你生成公钥和私钥对。期间你需要输入一个口令。每次使用私钥之前都需要提供这个口令,以防止私钥被盗之后被他人滥用。生成的公钥和私钥对会自动加入 GPG 的列表中,你可以运行 gpg4win 中的 Kleopatra 密钥管理工具查看状态。请导出私钥并存储在安全的地方。



分发公钥

为了让他人可以通过加密渠道和你通信,你需要让他人知道你的公钥。分发公钥的方法有很多,例如将你的公钥以邮件附件的形式群发给联系人。我的公钥存放在 GitHub 上,向我发送加密邮件之前请先用 Kleopatra 工具导入这个公钥。

加密邮件/签署邮件

在写信界面上,enigmail 会告知你邮件的加密状态。点击锁的图标加密邮件,点击笔的图标签署邮件。发送前,thunderbird 会提示你选择正确的证书(密钥)。请记住,只能使用收件人的公钥加密邮件,只能使用自己的私钥签署邮件。



解密邮件

收到他人发来的加密邮件,thunderbird 会提示你输入口令以使用私钥。邮件被正确解密后,就可以看到其中的内容了。

高级主题

想要了解附件加密、密钥信任机制等内容,请参见 gpg4win 的官方手册 HTML版 PDF版