KMail随后发送PGP加密的纯文本电子邮件

我最近在KDE项目的KMail电子邮件客户端发现了安全漏洞CVE-2017-9604。这个漏洞导致KMail不加密计划在延迟发送的电子邮件消息,即使KMail给出了所有的指示,电子邮件内容将使用OpenPGP加密。

OpenPGP或相当好的隐私,是电子邮件内容数字签名和加密的标准,可以提供端到端加密。如果实现正确,OpenPGP可以提供接收到的电子邮件消息的完整性检查和防篡改,以及隐藏电子邮件消息的内容。加密电子邮件的标题(包括发件人和收件人)未加密,以便于通过现有电子邮件基础结构传递消息。

KMail是KDE项目中的一个电子邮件客户端,它在4.11版本中引入了一个新特性,允许用户将电子邮件发送延迟到一个预定的较晚时间。不幸的是,这个新特性与KMail现有的OpenPGP实现不兼容。

如果您将这两个特性结合起来,KMail就会给出电子邮件消息将被签名和加密的所有指示。然而,在安排稍后发送时,OpenPGP例程被绕过了——导致电子邮件以纯文本方式发送,而没有经过签名或加密。该漏洞会导致私人信息内容无意中泄露。

我向KDE的安全小组报告了这个问题,KDE开发人员Laurent Montel很快就解决了这个问题。

KMail 4.11和17.04.1之间的版本是脆弱的。KMail 17.04.2版本发布于,包含对问题的修复。在使用OpenPGP发送任何私有消息之前,您应该更新KMail,以确保您的消息将保持私有。不同的Linux发行版将在各自的时间表上推出这个更新。

KMail的文档确实敦促用户在使用OpenPGP之前验证它是否正常工作:

“在你正式使用加密之前,测试它是否适用于你的设置是很重要的。如果出现故障,KMail可能不会警告你。”

文档没有提供任何说明如何你需要测试并验证加密是否有效。我使用KMail的Send Later with Delay功能发送延迟加密的邮件给自己,测试加密是否有效。

我认为这是一个很好的方法,以检查消息将被加密的方式,我们将兼容其他OpenPGP支持的电子邮件客户端之前发送消息。