MENU

【歪门邪道】使用OpenPGP加密你的电子邮件

November 26, 2017 • 瞎折腾

最近一直对加密这东西感兴趣。先前尝试过利用明信片来完成安全的隐私交流,但是要抄写密码,实在是麻烦,况且现在都有电子邮件了,为什么不在电子邮件上下功夫呢?

本文并不教你具体如何操作,只是提供具体想法。毕竟条条大路通罗马,怎么都走得通。

OpenPGP

PGP

引自维基百科
PGP(英语:Pretty Good Privacy,中文翻译“优良保密协议”)是一套用于消息加密、验证的应用程序,采用IDEA的散列算法作为加密与验证之用。
PGP的主要开发者是菲尔·齐默尔曼(Phil Zimmermann)。齐默曼于1991年将PGP在互联网上免费发布。PGP本身是商业应用程序;开源并具有同类功能的工具名为GPG(GnuPG)。PGP及其同类产品均遵守OpenPGP数据加解密标准(RFC 4880)。

OpenPGP

引自维基百科
1997年7月,PGP Inc.与齐默尔曼同意IETF制定一项公开的互联网标准,称作OpenPGP,任何支持这一标准的程序也被允许称作OpenPGP。
许多电子邮件系统提供了OpenPGP兼容的安全性,由RFC 3156来描述。2007年11月发布的规范RFC 4880作为RFC 2440的替代版,指出一套算法,包括非对称的ElGamal加密算法, Digital Signature Algorithm, 三重数据加密算法以及SHA-1. 标准还建议使用PKCS #1 v1.5 描述的RSA加密算法用作加密与签名,以及AES-128, CAST-128,IDEA等对称加密算法。许多其他加密算法也被支持。 2009年发布的RFC 5581支持Camellia加密。 基于椭圆曲线密码学 (ECDSA, ECDH)的RFC 6637发布于2012年。支持EdDSA被2014年发布的标准支持。

GnuPG

引自维基百科
GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物。GnuPG依照由IETF订定的OpenPGP技术标准设计[2]。GnuPG用于加密、数字签名及产生非对称匙对的软件。
IETF正在为PGP协议进行标准化,标准化的PGP称为OpenPGP[2]。当前版本的PGP及Veridis' Filecrypt与GnuPG或其他OpenPGP系统兼容。
GnuPG是自由软件基金会的GNU计划的一部分,目前受德国政府资助。以GNU通用公共许可证第三版授权。

一句话总结

简单明了的说,OpenPGP是商业程序PGP制作者制定的一套互联网标准,而在这篇文章中,我所使用的GnuPG则是符合该标准的开源软件。虽然都是免费,但是商业软件PGP和开源软件GnuPG在版权授权上有着明显的不同,细节之处我不在此赘述,还请各位移步谷歌。

安装、使用

Linux

Linux用户请使用GnuPG,老司机一看GNU这仨字母大概就明白是怎么回事了。至于安装方式嘛,pacman、apt-get、yum……看你喜欢咯。如果你使用的是图形界面,比如KDE的Plasma,这里还有一些图形化的前端可选,比如Kleopatra等,这些也全凭个人喜好。既然你选择了linux,那我想你应该不会止步于尝试各种软件包并选出你最喜欢的一个。

Windows

因为我既用Arch(Linux的一个发行版本)也用Win10,所以在windows上我推荐Gpg4win,这是一个软件包,它内含了GnuPG的windows版本和上述提到的Kleopatra前端,个人非常推荐在windows上使用这一套东西。一气呵成,也无须繁琐配置。

密钥证书

安装好需要的东西之后,你需要新建一个密钥对。普通的OpenPGP密钥对就足够应付本篇所说的email加密了。注意,在创建密钥对时,请务必使用你接下来要使用的email地址创建。


ThunderBird

ThunderBird是一个跨平台的邮件客户端,由火狐的发行公司mozilla制作。无论是linux还是Windows都可以运行。而且我记得在Linux上有个软件还会问你要不要安装ThunderBird的GPG支持。好像是密钥管理器还是什么来着,记不清楚了。如果你见到了这个对话框,请毫不犹豫的使用它的支持,如果没有遇到这个对话框,那我们也有办法。

关于ThunderBird的安装运行,这里不再赘述。当你配置好你的账户之后,就可以准备安装插件,使ThunderBird能够调用OpenPGP了。

需要注意的是,对于126等国内邮箱的用户,你可能要到你的邮箱里面手动开启IMAP和STMP服务才能够在ThunderBird中正确的连上。

Enigmail

Enigmail是一个兼容OpenPGP的ThunderBird插件。通过它可以使你在ThunderBird撰写邮件时很方便的加密、签名你的邮件,并附上你的密钥共对方验证。当然了,至于其中的安全性我不做探讨,有空再说。

它的安装很是方便,下载之后把那个xpi文件拖进ThunderBird就好了。至于配置嘛,这插件有向导指引你如何配置,照做就是了。


收发电子邮件

以给我发送电子邮件为例。在关于我页面上我留下了我的联系方式和公钥。当然,你也可以进入Kleopatra软件,使用Lookup on Server功能来导入我上传在公钥服务器上的公钥。可如下图所见,无论你搜索 admin@skyblond.info 还是 天空Blond ,都能够找到我的证书。

TIM截图20171126010332.png

TIM截图20171126010357.png

然而值得注意的是,不排除以后有人冒名顶替我的证书,因此请核对证书指纹(就是关于我页面上那个一大串文件名就是)。

发送邮件前将我的公钥导入GPG中,这样只要在发送时选择 加密、签名、附上我的公钥 即可将邮件内容以我的公钥加密(只有我可以用我的私钥来解密)、以你的私钥签名,附上你的公钥可以防止我这边无法获取你的公钥而无法验证你的签名。在收到邮件后,我会将你的公钥导入到我的GPG中,这样,当我回复邮件时就能够使用你的公钥来加密电子邮件了。同样的,加密后只有你使用你自己的公钥才能够解密。


所以谁愿意跟我发两封邮件试试看啊?自己给自己发太没意思了QAQ

知识共享许可协议
【歪门邪道】使用OpenPGP加密你的电子邮件天空 Blond 采用 知识共享 署名 - 非商业性使用 - 相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 https://skyblond.info/about.html 处获得。

Last Modified: March 31, 2023
Archives QR Code
QR Code for this page
Tipping QR Code