使用 PGP 和 S/MIME 的加密邮件易受 Efail 攻击

  • Sergio De Simone
  • 谢丽

2018 年 5 月 27 日

话题:语言 & 开发

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

德国和比利时的一个研究小组发现,PGP 和 S/MIME 的漏洞会被 Efail 攻击利用,把加密邮件的明文泄露出去。电子前线基金(EFF)会确认了这个漏洞,并建议使用替代方式交换安全信息。但是,据 GnuPG 创建者 Werner Koch 介绍,这个漏洞并不在 PGP 中,他还表示,EFF 的评论言过其实了。

EFAIL 攻击会利用 OpenPGP 和 S/MIME 标准中的漏洞获取加密邮件的明文。简而言之,EFAIL 会滥用 HTML 邮件的动态内容,例如从外部加载图片或样式,通过请求的 URL 泄露明文。

不过,要利用这个漏洞并不简单,因为它需要首先访问到加密消息。例如,需要破解邮件账户、备份或者窃听网络通信。当攻击者获取了加密的邮件,他们就可以修改邮件,然后把修改后的加密邮件发送给接收者。当受害者解密邮件,加载了外部内容,消息的明文就泄露给了攻击者。论文 Efail详细介绍了两种类型的 Efail 攻击。研究者声称,他们通过把一条精心设计的 S/MIME 消息发送给受害者就成功地破坏了 500 封 S/MIME 加密邮件。按照他们的说法,使用 PGP 的成功率更低,三次攻击中只有一次能成功,因为 PGP 会在加密之前对明文进行压缩。

Efail 背后的研究团队还提出了可能的短期防范措施。一种可能的防范措施是仅在电子邮件客户端外解密收到的邮件,禁用任何自动为你进行解密处理的解密插件。这可以防止邮件客户端向攻击者打开渗漏通道。再简单些,你可以禁用邮件客户端中的 HTML 渲染,因为 HTML 表示是最容易利用的渗漏通道。

Efail 的公布在 Web 和媒体上引发了激烈的讨论。EFF 官方证实了 Efail 研究团队的发现:

很遗憾,不管是在你的设备上,还是在接收者的设备上,我们不再推荐在邮件客户端中使用 PGP 了,直到它们打上补丁。[……] 我们建议把邮件客户端和 PGP 断开,直到恰当的防范措施发布。

EFF 特别指出,不管是何种防范措施,最关键的是要涵盖加密通信的所有参与方。例如,只要你的邮件的其中一名接收者没有在客户端中禁用 HTML 渲染,则漏洞就可以在那个系统上被利用。

在 Efail 公布后不久,流行 PGP 实现 GnuPG 的创建团队就发布了正式声明。按照 Robert J. Hansen 的说法,论文 Efail 只解决了由邮件客户端 Bug 导致的漏洞,主要是由于忽视了警告。按照他的说法,实际上,对于论文 Efail 中描述的那种攻击,GnuPG 包含一个专门的防范措施“修改检测代码(Modification Detection Code,缩写为 MDC)”。据 Hansen 介绍,MDC 是一种认证加密方式,你只要检查一下,自己的 PGP 插件没有使用一个“古老的”GnuPG 版本(1.0 系列),并且正确地处理了 MDC 警告,那么你就是安全的。此外,Koch 强调,认证加密不是为 S/MIME 实现的,因此,对于 S/MIME,禁用 HTML 渲染是唯一的短期防范措施。

查看英文原文PGP and S/MIME Encrypted Email Vulnerable to Efail Attack

语言 & 开发