HTTPS被广泛采用,为什么加密的电子邮件没有那么流行?

信息安全 加密 电子邮件 pgp
2021-08-09 15:35:31

我没有受过计算机科学教育,最近我对信息安全和加密感兴趣。

我很难理解为什么使用 HTTPS 的加密网页浏览被如此广泛地采用,但同时大多数电子邮件都是未加密的。据我了解,使用 PGP 交换公钥有点麻烦,推荐的方法似乎是亲自见面或从该人的主页获取密钥(我猜它使用 HTTPS)。

这是我对另一种方式的幼稚建议,我希望你能说出我错在哪里:

  • 电子邮件公司开始允许我将我的公共 PGP 密钥上传到他们的服务器

  • 我的朋友想在事先没有我的公钥的情况下向我发送电子邮件。我朋友的电子邮件客户端可以从我的电子邮件提供商(例如 fastmail)自动获取我的公钥。在按下“发送电子邮件”按钮后会下载公钥。

  • 因为到 fastmail 的连接将使用 TLS 加密,所以可以确定该连接实际上是转到 fastmail。可以肯定的是,fastmail 为我的朋友提供了我上传到那里的正确密钥。

  • 如果我不在乎,fastmail 可以为我生成整个密钥对并存储我的私钥和公钥。这样我仍然可以使用 webmail 阅读我的电子邮件。

这看起来很简单,当我想更改密钥时也容易得多。就像我想更改 ssh 密钥一样,我只需生成一个新密钥对并将公共部分放在服务器上。

那么,我在这个想法上哪里出错了?还是已经有这样的解决方案,但人们不关心使用它?

4个回答

您提案的最大障碍是用户采用和行为改变。想象一下,必须向所有人解释什么是公钥以及拥有它有多棒。这不会发生。

相反,电子邮件安全已经转移到邮件服务器端,有多个目标:

  • 传输加密这已经相当广泛地部署
  • 发件人身份验证(用于验证发送域,而不是个人用户),这有点繁琐,并且依赖于个人电子邮件服务器管理员的大量知识(作为必须设置 SPF/DKIM/DMARC 的人,我可以告诉你它不是很有趣)。

您的提议减去上传您的个人密钥(而不是自动生成)或多或少是传输安全性,但没有身份验证。身份验证部分是一个棘手的部分,并且是所提到的首字母缩略词尝试做的事情,尽管很乏味。

附带说明:正确的端到端电子邮件加密将要求您 1) 使用您的密钥信任基于 Web 的邮件提供商,或 2) 使用了解您的私钥的本地客户端。前者对许多人来说是不受欢迎的,后者对大多数人来说是不方便的。

另一个注意事项:HTTPS 被广泛采用是因为它(大部分)对大多数用户来说是不可见的,除了浏览器警告之外。现代电子邮件加密/身份验证与此等价。但是,相当于每个人都拥有一个电子邮件密钥对,这相当于要求人们使用客户端证书登录网站。啊!

它可能看起来很简单,但事实并非如此。它实际上非常复杂。

有几个难以修复的活动部件:

  • 用户教育:不要指望人们知道什么是密钥对,如何创建密钥对,如何保护他们的密钥。

  • 忘记/丢失密钥:如果 TLS 证书丢失,所有者只需请求另一个。没有流量丢失。但是如果用户丢失了他的密钥,他之前的所有电子邮件都将无法阅读。永远。

  • MiTM:如果您的提供商同时存储您的电子邮件和密钥对,它可以读取和更改任何电子邮件。如果他们只有您的公钥,他们可以通过向您的朋友提供他们拥有的密钥并在转发给您之前使用您的密钥重新加密来对您的电子邮件进行攻击。除非您向他们发送带外密钥(短信、来自另一台服务器的电子邮件,亲自发送),否则他们不会知道您的密钥并不是真正的密钥。

鉴于即使 TLS 是无缝的,人们仍然会点击错误并使用伪造的证书加载不安全的站点,并password用作密码,我怀疑这会得到广泛的使用并且用户会安全。

其他答案和评论中也提到了这一点,但我认为网络流量和电子邮件流量之间的根本区别在于所涉及的各方是谁。

HTTPS 实际上做了两件事:

  • 它对通信进行加密,使其无法被攻击者读取这是通过在用户浏览器和 Web 服务器之间直接协商的有状态会话来实现的。这发生在发送实际消息的同一 TCP(或 QUIC)连接上。
  • 它对通信进行身份验证,使其不会被攻击者篡改这是使用受信任权限的层次结构来实现的,一端是每个客户端都必须维护的静态列表,另一端是每个服务器必须获取的唯一证书。

这两者都利用了 Web 的特定拓扑:许多客户端直接连接到数量少得多的服务器。需要读取纯文本流量以将其传递的中介相对较少。

对于电子邮件,这两个都是有问题的:

  • 对于加密,消息的实际发送者通常不会直接连接到其接收者,因此它们之间的状态会话不能以相同的方式存在。可以加密传输消息的单个连接(现在经常加密) - 例如,从您的桌面邮件客户端到 GMail,以及从 GMail 到 FastMail - 但没有等效于协商 HTTPS 的端到端 TCP 连接.
  • 对于认证,需要认证的实体是数以百万计的个人用户,而不是少量的服务器。这意味着我们需要一些可以从每个邮件客户端(它将选择一个经过身份验证的密钥对)到每个单独地址的信任层次结构。相信 Fastmail 为每个@fastmail.com地址提供密钥并不能真正解决任何问题——你又回到了加密消息的传输上,而不是证明谁收到了它。由于您希望对电子邮件进行的身份验证实际上是相反的,因此这更加复杂:为了避免垃圾邮件和假冒,您希望对每封邮件的发件人而不是收件人进行身份验证。

正如其他人所说的那样,这一切都导致了当前的事态:

  • POP3、IMAP 和 SMTP 中的传输级加密很常见,而且通常是完全透明的。
  • 发件人与特定收件人协商经过身份验证的加密在封闭网络之外很少见。
  • 存在各种用于接收方对发送方进行身份验证的协议(例如 DKIM 等),由于缺乏直接的协商连接以及用户与网络交互的复杂方式而变得复杂。如果您查看以 结尾的地址@gmail.com,这似乎很简单;但是想象一下,有多少客户和服务被授权发送和接收以 . 结尾的地址的电子邮件@apple.com

这个话题非常复杂,很难用一个答案来解释我了解您透露您缺乏CS教育,所以我们在这里解释一下。

传输与端到端

传输加密端到端加密之间存在巨大差异你不应该混淆他们。

HTTPS 是作为传输加密(传输安全层)诞生的,因此浏览器和服务器之间的通信受到保护。如果您正在登录您的家庭银行,则传输等于端到端,因为您的银行是通信的另一如果您登录到 webmail,它只是传输,因为您的提供商可以阅读您的电子邮件以显示它们。

电子邮件已经(大部分)经过传输加密

您可能不知道的是,电子邮件已经通过 TLS(https 下的协议)发送。除了一些小型办公室网络、最小的 ISP、自制服务器等之外,所有电子邮件都在 ISP 之间加密传输。只有他们知道电子邮件的内容。

所以你的问题的范围可能有点混乱。为简化起见,电子邮件已经使用相当于 https 的方式传输。您说“https 很受欢迎”,我说 TLS 在电子邮件中也很受欢迎。

端到端加密的负担

Https 很容易部署。只有服务器必须部署证书,每个连接都是无状态的,并且忘记了有关历史的一切。

加密的端到端电子邮件对消费者来说是一个巨大的痛苦

  • 需要设置证书。并非所有人都有足够的专业知识
  • 如果用户丢失密钥/设备怎么办?他们丢失了所有电子邮件历史记录
  • 今天您只需输入用户名/密码,e2e 保护的电子邮件还需要哪些额外的配置步骤?我奶奶接受做各种安全配置吗?
  • 多台设备呢?如何处理多个设备?以 Outlook + 移动版为例。哦,还有漫游时的网络邮件

举个例子:Whatsapp。它从来没有在多个设备上共享对话历史记录的功能(Whatsapp 桌面版从您的手机下载必须连接的消息)。如果您丢失或格式化您的手机并且没有未加密的备份,您的历史记录就会丢失。