理想园 - 你的邮件加密、没被篡改过吗?

邮件加密是很老的话题了。有软件专门做软件加密,也有新协议可以做防篡改验证。

(1) PGP 加密

PGP 是目前公认比较安全的文本加密工具,最早用在邮件上。它可以加密解密,还可以做数字签名什么的。

它采用的是非对称加密的形式,也就是公私钥不同。具体的加密细节我就不说了。邮件收到的时候大概是这个样子:

你需要用其他软件,加上(不可能跟这封邮件在一起的)私钥文件,就能解密了。

如果是经常要加密,用这种方法是最安全的了。不过,懒得用加密软件 / 插件的话,用起来还是挺不方便的。

(2) DKIM 签名

DKIM 这种算法,只是用来确保“这邮件发出去之后没有被修改过”(也就是数字签名),没有加密的作用。不过因为简单,它已经成为判断邮件是否“有效”的一大工具,就是跟上次说的 SPF 记录差不多的。

DKIM 的签名也是采用公私钥的非对称算法。私钥放在真正可以发邮件的服务器上,用来给整份邮件算签名,然后把签名值放在邮件前面(这个过程通常是发邮件时服务器自动完成的)。公钥放在 DNS 记录里,收到邮件的服务器去找一下公钥,用来计算签名是否有效。

嗯,其实这个最大的用处是用来装 13 的。比如 Gmail,收到 DKIM 签名成功的邮件时,会显示出很特别的一行内容,说明“这真是它发的邮件”。或许就这个好处吧。

“署域”的意思是:这是通过 DKIM 被签名过的邮件,是被哪个域名签的呢?

作为对比,下面是一封被假冒为 bjsjs.gov.cn 发出的垃圾邮件。

(3) 连接加密

如果邮件在传送的过程是加密的,邮件就不是明信片了,而变成真正套着信封的存在。

实际上,这种传送加密的协议是存在的,跟网页 HTTPS 是一个道理。现在靠谱的加密协议是 TLS。

当然了,这只是传送过程的加密,邮箱服务商还是可以轻易看到内容的。

在 Gmail,邮件送进来的时候,有没有使用加密,它都会显示出来。

发邮件的时候,如果对方服务器不支持加密,也会提示。(虽然我研究了一会,发现这个提示可能也没那么靠谱。)

(4) 总结君

加密程度越高,需要的额外软件也多。从高到低排是这样的:PGP > TLS >DKIM。

当然咯,这些东西国内重视程度并不高。曾经 QQ 邮箱还支持显示被 DKIM 签名过的状态,但是前些天试了下,我是没找到在哪里显示。

说到 DKIM,虽然连 Gmail 的显示都异常隐蔽,但他还是会用这个因素来判断垃圾邮件的。

其实对于文件的加密和数字签名,还是有很多有用的方法的。而在邮件上的这些,算是普通人都能受益的。你和朋友间的聊天,不会因为连了个免费 WiFi 而全被曝光了,或者被人篡改,就是这样吧。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)