Differences between revisions 5 and 6
Revision 5 as of 2020-04-15 21:38:38
Size: 5028
Editor: czk
Comment:
Revision 6 as of 2021-03-18 03:08:28
Size: 0
Editor: czk
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= 如何加密邮件 =

这里说的加密是加密邮件内容,端到端加密,而不是指传输加密。传输加密只保证你的邮件客户端到邮件服务器之间是加密的,而邮件服务器的提供商依然可以看到你的邮件,比如你用Yahoo邮箱,Yahoo公司就能看到你的邮件,有人就因此遭殃了。而这里说的加密,是指加密和签名邮件的内容,可以保证:

 * (签名)可以确保收件人收到的你的邮件确实是你发送的,而不是其他人冒充你发送的
 * (签名)可以确保收件人收到的你的邮件内容和你发送的内容是一致嗯,而没有被被其他人篡改过
 * (加密)可以确保只有你指定的收件人才能看到你的邮件内容,其他人不能看到你的内容

加密邮件常用有两套标准,分别是S/MIME和GnuPG。

== S/MIME ==

S/MIME(Secure/Multipurpose Internet Mail Extensions)是一套被广泛支持的标准,在大多数邮件客户端(比如Mac OS Mail和iOS Mail应用)里面都可以直接使用。但使用S/MIME的麻烦之处在于收件人和发件人都需要有个人邮件证书。如果只有发送方有证书,只能发送带签名的邮件,双方有证书才能加密邮件。大多数提供SSL证书的公司都会提供收费的个人邮件证书服务,好在也有免费的选择。[[https://extrassl.actalis.it/portal/uapub/freemail?lang=en|Actalis]]提供有效期一年的免费个人邮件证书。简单填写姓名邮件地址就可以申请,然后有一封邮件发到你的邮箱,里面有下载证书的链接。在需要使用加密邮件的平台上下载安装这个证书。具体的安装方法各个平台不太一样,Mac上面就是双击证书文件就可以了。iOS上也是差不多,最简单的方法就是把这个证书文件通过AirDrop发送到手机上,在手机上打开这个文件就可以了。

这样就可以给其他人发送带签名的邮件了。比如在Mac OS Mail中,标题栏左边就有一个勾,表示邮件已经签名,如下图所示。其他平台和邮件客户端也是类似的。

{{attachment:signature.png}}

但签名左边的加密按钮确实不可以点的,因为加密需要知道收件人的证书的公钥才可以。所需要做的就是让收件人给你先发一封带签名的邮件。你收到的邮件会有一个Signed的标识,如下图,点击勾勾可以看到发件人的证书。如果证书是可以信任的话,那么会被系统自动安装。然后就可以发送加密邮件了

{{attachment:certificate.png}}

此时再给对方发信,会发现加密按钮是可以点亮的。

{{attachment:encrypted_mail.png}}

== GnuPG ==

与S/MIME相比,GnuPG不需要去申请证书,可以自己生成证书。但是客户端支持比较差。Mac OS Mail需要安装插件,iOS上只有收费的第三方App支持。另外,Facebook支持你把自己的GnuPG邮件加密公钥放在你的Facebook Profile,这样你的Facebook好友都可以给你发送加密邮件了。Facebook自己的通知邮件也能以加密的形式发送给你。

在Mac OS下使用GnuPG加密,需要先安装这个工具 https://gpgtools.org 。安装完成后系统里会多出一个 GPG Keychain的应用,运行后点击工具栏左边的 New 按钮,输入邮箱和保护私钥用的密码后就可以生成一个公私钥对。在新生成的密钥上点右键,选择Send Public Key to Key Server,这样别人就能得到你的公钥了。

{{attachment:upload_key.png}}

打开Mac OS自带的Mail应用,新建一封邮件,可以看到右上角有绿色OpenPGP标识,但是和S/MIME问题类似,无法选择加密,因为你还没有收件人的公钥。

{{attachment:gpgmail.png}}

回到GPG Keychain,在工具栏上点击Lookup Key,输入收件人的邮箱,如果收件人也和你一样上传了它的公钥,那么你就可以把它下载下来。然后再回到Mail,里面的加密按钮已经可以点亮了。这时你已经可以和对方进行加密邮件通讯了。

但还有一个问题是,有可能有其他人假冒你要联系的收件人把假冒的公钥上传到key server上,你虽然加密了邮件,但实际上可以被其他人解密。S/MIME通过一个中立的证书颁发机构(比如Actalis)来解决这个问题,而GnuPGu使用[[https://en.wikipedia.org/wiki/Web_of_trust|Web of Trust]]来解决这个问题。

== 总结 ==

从本文来看,加密邮件的使用过程还是相当复杂的,对于普通非技术人员来说,上手门槛较高。所以加密的邮件一直没有普及。一些邮件提供商提供了另类的解决方案,比如ProtonMail,自带了GnuPG邮件加解密,免去了你配置客户端的工作,但代价是你的邮件可以被Proton公司查看到。它也提供了需要收件人用密码打开的邮件,让你可以和没有配置任何加密措施的收件人进行相对安全的邮件传输。
ch3n2k.com | Copyright (c) 2004-2020 czk.