对 ProtonMail 及其它加密邮件服务的看法

这段时间在考察几个比较有名的加密邮件服务商,本文系把自己的笔记简单扩充而成。分成两部分,第一部分以 ProtonMail 为例讨论了目前加密邮件服务的问题。第二部分简单对比了一下几家著名的加密邮件服务商。

以 ProtonMail 为例讨论加密邮件服务

引言

很多注重隐私的人正在逃离 Gmail 这样的大公司服务而转向更重视隐私的加密邮件服务商。然而,固然这些服务商在降低加密技术的使用门槛上做了很大努力,也的确使得它们的服务相对于传统邮件加密工具显得更加平易近人,但使用者如果盲目信任它们而以为使用它们就完全安全,因而疏于防范,很可能会使自己陷入真正的危险中。尤其是对于某些不希望公权力侵犯自己的通讯隐私的人来说,这种虚幻的安全感可能更加危险。

端到端加密不是银弹

恰当地实践端到端加密总比喊口号更重要。而这不能只靠服务商来完成,也需要用户的参与。

Trust on First Use (TOFU) 是端到端加密的一个重要问题。对于任何端到端加密来说,第一步交换密钥是最为脆弱的时间,需要慎重验证密钥究竟是对方的真实密钥还是攻击者的假冒密钥,否则之后的所有安全就无从谈起。对于大多数人来说,无法在频繁更换密钥的同时每次都认真校验对方身份,对于他们来说,长期使用的密钥会更加安全。
我们姑且假设 ProtonMail 用户彼此通信时它的服务端软件足够可靠,和站外用户互通 PGP 加密邮件时,是否要信任对方的公钥,就完全仰赖用户自己的小心谨慎。
进一步说,即使是两个 ProtonMail 用户之间的通讯,也同样面临 TOFU 问题的变种:如何知道对应的邮箱地址是对方的真实邮箱地址而不是钓鱼邮件地址?整个邮件通讯的安全也就完全系于「获得这个邮件地址」的那一瞬——如果是从某人的个人网页上获得,则整个通讯的安全性就不会高于那个网站的安全性(当然,可能那个网站本来就是假的);如果是在其它聊天工具中获得邮件地址,那么任何有能力控制该聊天软件的人都可以变造假的邮件地址。
相比之下,使用传统 PGP/GPG 邮件加密的用户大多对于 TOFU 的风险有所了解,彼此的互信也完全不依赖于邮件服务商的软件安全性。只是用户友好度远不及 ProtonMail。

ProtonMail 用户的私钥保存在他们的服务器上。对于安全极端在意的用户很可能并不放心。虽然 ProtonMail 用户的私钥使用用户的密码进行加密,理论上只能被用户解开。但是在私钥泄露的情况下,比如说 ProtonMail 迫于法院命令交出私钥后,离线暴力破解的难度取决于密码的长度和复杂度。因此 ProtonMail 的密码必须设置得足够长。

安全不是一个人的事

ProtonMail 仅在通讯双方都使用 ProtonMail 或 PGP 时可以提供理想的加密保护。

用于收信时,外站发信方如果不使用 PGP 加密,邮件内容将对诸多相关方(比如发信人的邮件服务商)可见。此时 ProtonMail 与任何普通邮件服务商无异,除了它对于权力方的数据披露请求会抵抗得久一点之外——然而发信人的邮箱依然会被权力方检查,这种抵抗很可能是毫无意义的。用于发信时,外站收信方如果不使用 PGP 加密的话,就只能使用 ProtonMail 的网页加密服务,在 ProtonMail 的网页中输入密码来提取邮件。对于大多数人来说这很麻烦不说,还需要使用 back channel 传送解密密码,这也不一定是可靠的。

如果说 TOFU 问题对于大多数人来说还不算个问题,因为大多数人并不担心公权力会盯上自己(虽然我并不同意这一点,mass surveillance 本身就是对公民权利的侵害),而更关心 Google 会不会用自己的邮件对自己进行用户画像。那么「邮件往来的另一复本并未被保护」使得后一种目标也难以实现。

可惜的是,自己使用 ProtonMail 很容易,说服朋友一起使用 ProtonMail 或 PGP 很难。拿 ProtonMail 做主邮箱的话,其实大部分邮件仍然是得不到保护的。

不谨慎使用 ProtonMail 可能遇到的风险

ProtonMail 可能向执法者交出哪些信息?如果收到瑞士法院的搜查令,ProtonMail 可以向法院交出如下信息:

  • 用户的登录 IP。
  • 用户与哪些邮件地址有邮件往来,及往来邮件标题。
  • 密码保护的用户私钥。如果用户密码可以被破解,则可以据此解密用户的全部邮件。

不谨慎使用 ProtonMail 可能遭到的攻击举例

  • 和自己通讯的人的地址是假的,攻击者在中间代理收发。
  • 没有隐藏自己的 IP,或者在有很多个人信息的地方发布自己的邮箱,导致肉身被有关方面定位。
  • 使用 ProtonMail 来接受材料,但发送材料的人未使用 ProtonMail。发送材料的人被定位并受到人身威胁交出通讯往来。
  • 使用 ProtonMail 给其它邮箱发信,将加密密码与加密邮件发到同一邮箱中。对于可以获得对方邮箱数据的有关方来说,这种加密形同虚设。
  • 行为触犯所在国法律及瑞士法律,密码设置过短,在 ProtonMail 配合法院交出数据后,密码被破解。
    这类例子还可以举出几十种。

如果极端看重邮件安全、匿名和完全的隐私保护,应该注意以下几方面

  • 注意验证通讯方的公钥和身份
  • 设置足够长的密码
  • 要求通讯对方也使用 ProtonMail 或 PGP 对邮件加密
  • 注意验证 ProtonMail 的邮件地址真的属于目标联系人,否则无法避免中间人攻击
  • 注意使用 Tor 隐藏自己的 IP
  • 注意不要在发布邮箱地址的信道(无论是个人网站还是即时聊天工具)中泄露过多个人信息

ProtonMail 的隐私保护实现所带来的使用不便

ProtonMail 与传统邮件客户端的互操作性很差,必须使用 ProtonMail Bridge 来连接第三方邮件客户端。而传统 PGP 或 S/MIME 加密都有广泛的客户端支持。

因为 ProtonMail 的服务器无法看到邮件内容,这带来两点不便:
ProtonMail 的服务端不支持邮件全文搜索。目前它的邮件搜索是通过在用户端进行索引而实现的。也就是说临时使用他人电脑时,无法在短时间内获得全文搜索。
加密必然意味着服务器端无法过滤加密垃圾邮件。虽然目前发送加密垃圾邮件的人不多,这还没有成为一个现实问题。

同样,从 ProtonMail 发出的加密邮件也无法被目标邮件服务器的反垃圾引擎检查。为了避免自身被列入垃圾邮件黑名单,ProtonMail 对于发信有苛刻的标准,每日发送邮件有限额,帐号注册也有很大限制。

从很多年前开始,从外网发到中国境内的加密邮件就有很大的概率掉信。这不是 ProtonMail 的问题,而是任何加密邮件的问题:只要收信人的邮件服务器在中国大陆,就难以通邮。这也是我建议所有朋友至少持有一个服务器在大陆以外地区的邮箱的原因之一。

所以使用 ProtonMail 没有意义吗?

不,虽然我上面列举了很多 ProtonMail 的缺点,我绝不认为使用 ProtonMail 毫无意义。相反,我推荐朋友们使用 ProtonMail 这样的加密邮件服务。

当我们选择加密邮件服务的时候,我们常常以为它可以同时提供安全、隐私保护、匿名等所有需求。本文意在破除这种幻想。但很多时候,只要在某一点上比已有的主流服务强,就值得我们考虑使用。我们也并非所有时候都需要绝对的隐私和匿名,而会为了沟通的便利而牺牲一些隐私和匿名。比如说,严格来说,越经常被使用的联系方式,越不可能做到完全的匿名。而用于期刊投稿、找工作之类的邮箱,更是与我们的线下身份完全绑定。

在合理使用的情况下,加密邮件服务至少可以让各种想看到我们邮件内容的人挠头,无论他们是广告系统、小至公司大至政府机关的各类监视系统还是一些有偷窥欲的人。达到这个目的并不难。
真正困难的是彻底匿名的需求,加密并不必然带来匿名。虽然大部分人都想要一定的匿名性,但考虑到实现它的巨大代价,大部分人最终会放弃彻底的匿名。

总结

综上,对于没有经验的小白来说,ProtonMail 固然带来了更佳的安全性,但小白也往往因此忽略了其它安全措施,像许多 Telegram 的使用者一样,因这种虚幻的安全感而降低了防御心,反而对自身带来更大的危险。
而对于有经验,懂技术的人来说,ProtonMail 并不是必须的。Tor+Gmail+GPG 就可以提供足够的安全性——甚至更安全。

它最有用的场合是:对于不愿意配置 PGP 加密的通讯双方,在使用可靠的方式认证彼此的身份后,双方约定都使用 ProtonMail 通讯。然而在这种情况下,它并不比 Keybase、Signal 之类的端对端即时通讯更方便。本来 Email 的一大优点是互通性,不像即时聊天工具,必须要求通讯对方也一起注册。但 ProtonMail 在与非 ProtonMail 用户通信时,配置端到端加密的门槛仍然不低,它的易用性与互通性仍然不可兼得。注册一个 ProtonMail 并不比注册 Signal 更方便,所以很多人干脆选择 Signal 之类的聊天软件。

特别危险的一点是,若作为个人主力邮箱,兼用于注册各种网站,ProtonMail 将完全无法实现「匿名性」。除非在各种网站上完全不暴露 IP 地址等个人信息(然而,这非常难),否则权力方很容易通过合并诸多网站上的信息获知此邮箱地址主人的肉身信息。届时,权力方只需要强迫与此邮箱地址通信的其它邮箱服务商交出邮件数据,邮件往来就无所遁形。这里的权力方不仅仅是公权力,也包括手握大量网站数据的互联网巨头。

综上,ProtonMail 基本上只适合个人通信,最好和其它 ProtonMail 用户通信使用。也可以用于有经验的 PGP 用户和加密邮件新手之间的加密通讯。
本文的大部分观点也适用于 Tutanota 等其它端到端加密邮件服务商。

加密邮件服务商概述与比较

综述

以下所有服务商对私钥的管理都是一样的,都是选择将私钥存在服务器,使用用户密码进行加密。也就是说仍然是 Web 优先,牺牲一点安全性。

如果对此很在意,想自行保管私钥,这些服务商都不能用,而只能用前文提到的,使用 PGP 之类的协议进行邮件加密。这些工具一般被认为用户友好性欠佳。如果想实现和 ProtonMail 一样的 Web 界面操作,可以使用 Mailvelope 这样的浏览器插件。如果这样做的话,就不得不使用 Gmail 的之类的大邮件服务商,插件的支持才会比较好。
PGP+Mailvelope+Gmail 这一方案的优点是密钥更加安全,缺点一个是少了同服务商网络内的默认加密,一个是收到的外站未加密邮件不会被加密存储。

前面已经讨论过,由于收发邮件的另一方使用加密邮件的极少,无论使用加密邮件的目的是为了保护自身隐私,对抗 mass surveillance,还是单纯讨厌互联网巨头,我们都很难靠自己一个人的努力来使自己更安全。在多大程度上倚重加密邮件,是否努力向周围朋友宣传使用加密技术的意义,是非常个人的选择。

虽然一般来说,加密邮件服务商都努力实现端到端加密,这样即使被执法人员要求交出数据,用户的损失也有限,但由前面所讨论的,我们仍然不希望这种情况发生。所以服务商所在的国家也是一个重要的因素。一般来说,最不可信任的是某些法律上公民隐私保护很差的国家,然后是著名的五眼联盟,这些国家的邮件服务商面临的法律风险和监视风险比较大。目前欧盟国家在隐私保护上的信誉要好一些。

很多人认为,开源的邮件服务商更值得信赖。

ProtonMail

上文已作详细讨论。服务器在瑞士,是对于隐私保护最好的国家之一,依法院命令交出用户数据的情况极少。
客户端代码开源。

Mailfence

比利时的一个邮件服务商,主要用户在欧洲。

代码暂不开源。可选 PGP 加密,而非强制。相对于 ProtonMail 功能要多一点,支持 POP3 IMAP,想来与普通 PGP 邮件在客户端的互操作性要好一些。

Tutanota

德国的一家加密邮件服务商。

客户端开源。使用 AES 和 RSA 加密,而非 PGP。这样它无法和其它 PGP 用户和 PGP 邮件服务商互通信,从而进一步限制了它的使用——基本上只有 Tutanota 用户之间的邮件可以有比较好的加密保护。完全不支持 IMAP。

mailbox.org

和 Mailfence 定位相近的一家邮件服务商,在德国。

可选 PGP。对于各种客户端支持良好。

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.