是否可以修改电子邮件以在更早的日期从其他发件人那里出现?

信息安全 电子邮件 电子邮件欺骗
2021-08-11 00:32:21

有人可以修改一封电子邮件,使其看起来像是在更早的日期从不同的发件人发送的吗?例如,知道我的电子邮件地址的人是否会让人觉得我去年曾给某人发过电子邮件?

3个回答

是的,有很多不同的方法可以伪造电子邮件。几乎您收到的电子邮件的全部内容都作为数据通过 SMTP 发送,因此,标题与正文一样可伪造:也就是说,微不足道。这就是为什么垃圾邮件发送者可以在任意日期发送看似来自您自己(或其他人)帐户的邮件。

但是,有一些事情可以防止这种情况发生。首先,每台通过 SMTP 接收邮件的服务器都会Received按顺序插入一个标头。此标头说明有关传输的信息:接收它的服务器、接收它的服务器、要发送它的电子邮件地址以及接收它的日期和时间都通常包括在内。因此,如果收件人的邮件服务器从意外的来源(即,不是您的邮件服务器)收到邮件,那很可能是可疑的。

还有 DKIM,它对电子邮件中的各种标头字段进行加密签名。这是发送邮件服务器的断言,它已经看到这些字段并且可能认为它们是有效的。大多数提供程序包括 From、To 和 Date 标头,以及 Message-ID(通常包含服务器分配的时间戳),因此如果使用 DKIM 对消息进行签名,则这些条目不能与服务器看到的条目相比更改未经检测。是否应假定未签名的电子邮件是伪造的,以及服务器在签名前是否仔细检查标头的有效性是实施质量问题(即由发送域的策略决定)。

例如,众所周知,Gmail 会使用 DKIM 对通过它的每封邮件(针对他们控制的域)进行签名,并且它不允许人们从与其帐户无关的地址发送邮件。因此,几乎不可能有人伪造电子邮件,因为签名无法验证,并且可以安全地假定未签名的电子邮件是伪造的。其他域将有不同的策略。

现有答案是正确的,但不完整。我想强调另外两种情况。

首先,关于 SMTP。

在某些情况下,有人可以直接连接到最终的 SMTP 服务器并发送电子邮件。例如,SPF 可以用来防止这种情况。

如果发生这种情况,则发件人可以完全控制电子邮件,但最终 SMTP 服务器可能在标头中添加的最后一位除外。

这意味着除了最后一个(或所有,如果最终的 SMTP 未添加标头)之外的所有标头都在发件人的控制之下,发件人可以使电子邮件看起来像是通过一长串合法电子邮件服务器。

但是,只要接收服务器在添加的标头中包含日期,就会存在差异。

其次,关于一般的电子邮件。

您不必将电子邮件存储在第三方服务器上。电子邮件可以下载到我的计算机上并从服务器中删除。然后,我们讨论的是我的服务器上的文件,当然,有了正确的知识,我可以编辑它以使其看起来像我想要的任何东西。

此外,大多数存储电子邮件的服务器都允许使用 IMAP 进行访问。您会发现一些不错的工具,可以让您使用 IMAP 将电子邮件从一个提供商转移到另一个提供商。将您的凭据提供给两个帐户,他们会将所有电子邮件从源复制到目标。这与您使用 Thunderbird 等电子邮件客户端发送电子邮件时类似......电子邮件是通过 SMTP 发送的,但发送到您帐户的已发送文件夹中的副本实际上是使用 IMAP 放置在那里的。

因此,有人可以使用 IMAP 在他们的帐户中放置一封包含他们想要的确切内容的电子邮件。

在那个层面上,取证分析可能有助于证明假货。如果仍然可用,服务器日志。如果电子邮件标头显示“在 2020 年 1 月 1 日 21:00 从服务器 10.0.0.1 收到”并且 SMTP 服务器日志显示在该日期/时间没有来自 10.0.0.1 的连接,那么它很可能是假的。如果邮件中有一个使用 Y-enc 的附件,并且声称是 Outlook 发送的,而 Outlook 不支持 Y-enc,那么它很可能是假的。

结论

只要没有加密签名,是的,有多种方法可以使电子邮件看起来像是从其他人发送的。最后,电子邮件作为文件或数据库条目存储在某处。

确定电子邮件是否合法是一项取证工作,并且取决于伪造的方式,这可能会非常困难,并且可能需要涉及法院(获取服务器日志,前提是它们仍然存在)。

在 SMTP 级别,SMTP 服务器接收由标题、空行和正文组成的完整文本。它还具有所谓的信封地址以及 SMTP 协议的其他命令中给出的内容。

普通服务器通常会在标题中添加一些行,Received也可以添加其他行。但它既不控制信封地址和报头地址之间的一致性,也不删除任何现有的报头。

这意味着如果消息包含像

From: joe.biden@white_house.gov
Date: Tue, 1 Apr 2021 12:00:00 +0000

邮件阅读器很有可能将其显示为乔·拜登(Joe Biden)在四月的第一天发送的。

限制是,如果可以伪造任何标题行,则不可能全部伪造(除非您完全控制最后一个 SMTP 服务器),因为链上的每个服务器都应该添加自己的接收行。因此,如果您对邮件的真实性有任何疑问,您应该首先检查服务器链。如果第一个与发件人地址不一致,则很可能该地址已被伪造,并且日期相同。