Email邮件头(邮件发送原理、INTERNET邮件头)揭密 您所在的位置:网站首页 邮件地址的添加有没有更好的方法呢 Email邮件头(邮件发送原理、INTERNET邮件头)揭密

Email邮件头(邮件发送原理、INTERNET邮件头)揭密

2024-07-11 06:07| 来源: 网络整理| 查看: 265

一、简介 本文将详细讨论email头的方方面面。主要为用户架设邮件服务器提供理论基础并为管理员在出现电子邮件垃圾骚扰时提供发现垃 圾邮件的真正源头。根据邮件头的知识有助于发现伪造的邮件。对于希望了解邮件是如何在网络中传输的用户同样会有帮助。文章有若干虚构的域名和随意分配的 IP地址作为示例使用。 二、Email的传输过程 这部分包含一个简单的对一个电子邮件生命周期的分析。这对于理解邮件头能为你提供哪些信息是非常重要的背景信息。 从表面上看来邮件似乎是直接从发送者机器传递到接收者地址,但通常情况下事情并不是这样。一个典型的电子邮件在其生命周期中至少要经过四台计算机。 这 是因为大多数企业或组织都有一个被称为“邮件服务器”专用服务器来处理电子邮件,而这一般并不是用户阅读邮件的计算机。对于ISP来说,用户从家里面的计 算机拨号接入ISP网络,这里将用户家中的计算机称为客户机,而将ISP专门处理邮件的计算机称为邮件服务器。当一个用户发送邮件,他一般是在自己的计算 机上编辑邮件,然后将邮件发送到ISP的邮件服务器上。客户机就此已经完成了自己的工作,而后面的工作则由ISP的邮件服务器来完成。首先ISP邮件服务 器查找接收者指定的邮件服务器的IP地址,然后将邮件发送给该目的服务器。现在邮件则存储在接收者邮件服务器上等待接收者收取。当接收者从接受邮件服务器 取得发送给他的邮件到自己的PC机以后,通常该邮件将被删除。 假设有以下用户 和。betty 是 sina.com 的免费邮件用户。使用 outook express 这个邮件客户程序收发邮件。tom 是中科院的一个邮件用户,他使用个人电脑通过单位局域网连接进入互联网。 如果 tom 想给 betty 发送邮件,他在个人电脑(假设名字为 tom-pc.alpha.com.cn )上编辑邮件,编辑好的信件从个人电脑发送到中科院的邮件服务器:mail.alpha.com.cn。一旦信件被发送到 mail.alpha.com.cn,以后的信件发送过程就和 tom 没有关系了。中科院的邮件服务器发现这是发送给 sina.com 的某个用户的信件,则和 sina.com 的邮件服务器-比如说是mail.sina.com-通信,并将邮件传送给它。现在邮件则被存储在 mail.sina.com 之上直到 betty 在自己的PC机上拨号上网并连接到 sina.com 邮件系统察看并收取信件,这时 mail.sina.com 将存储的邮件传送到 betty 的个人电脑上。 在这个过程中,邮件头将三次被加到邮件中:在编辑时由 邮件客户程序加入;当邮件传输到 mail.alpha.com.cn 时被 mail.alpha.com.cn 加入;当从 mail.alpha.com.cn 传送到 mail.sina.com 时被 mail.sina.com 加入;通常来说客户收取信件时并不添加邮件头。下面我们就仔细看看这些邮件头是如何产生的。 当 tom 的邮件客户程序编辑邮件并将其发送给 mail.alpha.com.cn 时,邮件内容如下。这些内容都是由邮件编辑程序 (outlook express)添加的: From: [email protected] (Tom Lee) To: [email protected] Date: Tue, Mar 18 2003 14:36:14 PST X-Mailer: Outlook Express 6.0 Subject: 明天放假? 当邮件从 mail.alpha.com.cn 传送到 mail.sina.com 后,邮件内容变为(新添加的内容是由 mail.alpha.com.cn ): Received: from tom-pc.alpha.com.cn (tom-pc.alpha.com.cn [124.211.3.11]) by mail.alpha.com.cn (8.8.5) id 004A21; Tue, Mar 18 2003 14:36:17 -0800 (PST) From: [email protected] (Tom Lee) To: [email protected] Date: Tue, Mar 18 2003 14:36:14 PST Message-Id: X-Mailer: Outlook Express 6.0 Subject: 明天放假? 当 mail.sina.com 收到信件并存储等待 betty 收取时,邮件内容变为,(新添加的内容是由 mail.sina.com 添加的): Received: from mail.alpha.com.cn (mail.alpha.com.cn [124.211.3.78]) by mail.sina.com (8.8.5/8.7.2) with ESMTP id LAA20869 for ; Tue, 18 Mar 2003 14:39:24 -0800 (PST) Received: from tom-pc.alpha.com.cn (tom.alpha.com.cn [124.211.3.11]) by mail.alpha.com.cn (8.8.5) id 004A21; Tue, Mar 18 2003 14:36:17 -0800 (PST) From: [email protected] (Tom Lee) To: [email protected] Date: Tue, Mar 18 2003 14:36:14 PST Message-Id: X-Mailer: Outlook Express 6.0 Subject: 明天放假? 最后这封信的内容才是 betty 收取并阅读的内容。下面是对其中内容的详细分析: Received: from mail.alpha.com.cn 上面的内容表示该邮件是来自于自称是 mail.alpha.com.cn 的服务器。 (mail.alpha.com.cn [124.211.3.78]) 这句话表示该服务器的真实名字的确是 mail.alpha.com.cn,也就是说它自称的身份是正确的,其IP地址为 124.211.3.78。 by mail.sina.com (8.8.5/8.7.2) 接收这封邮件的机器是 mail.sina.com。其运行的邮件程序为 sendmail,版本为8.8.5/8.7.2。 with ESMTP id LAA20869 接收邮件的服务器为该邮件赋有ID号LAA20869(通常该号码是邮件服务器内部使用的,但是管理员可以根据该ID号在log文件中查找关于该信件的相关信息,但是通常该号都是没有意义的) 。 for ; 该邮件是发送给地址 [email protected] 的。可以看到该邮件头没有To:相关内容。 Tue, 18 Mar 2003 14:39:24 -0800 (PST) 这次邮件传输发生时间为:太平洋时间Tuesday, March 18, 2003, at 14:39:24(太平洋时间,因为它比格林威治时间晚8个小时,因此是"-0800")。 Received: from tom-pc.alpha.com.cn (tom-pc.alpha.com.cn [124.211.3.11]) by mail.alpha.com.cn (8.8.5) id 004A21; Tue, Mar 18 2003 14:36:17 -0800 (PST) 该邮件头记录了邮件是从 tom-pc.alpha.com.cn(tom的个人电脑)传送到到邮件服务器 mail.alpha.com.cn 的。传送发生在太平洋时间14:36:17。发送计算机自称是 tom-pc.alpha.com.cn,其真实名经dns查询的确是 tom-pc.alpha.com.cn,其IP地址为 124.211.3.11,邮件服务器软件为 sendmail v8.8.5。该信件被邮件服务器的 mail.alpha.com.cn 赋给的ID号为004A21。 From: [email protected] (Tom Lee) 该邮件是由 [email protected] 发送的,其名字为 Tom Lee。 To: [email protected] 邮件目的地址为:[email protected]。  Date: Tue, Mar 18 2003 14:36:14 PST 邮件编辑时间为14:36:14 Pacific Standard Time on Tuesday, March 18, 2003。 Message-Id: From [email protected]。 注意这里少了一个冒号—"From"而不是"From:"。也就是说信封头在其后没有冒号。当然这个惯例并不是标准,但是这时一个值得注意的惯例。 对 应的是"envelope To"同样来自于RCPT TO命令。如果发送者服务器发出命令RCPT TO: [email protected]。则"envelope To"为 [email protected]。一般来说实际上并没有这样一个邮件头,它常常是包含在Received:头中。 存在信封信息的一个重要结果就是消息 From: 和 To: 变得毫无意义。From: 头是由发送者提供的,同样 To: 也是由发送者提供的。因此邮件仅仅基于"envelope To"来进行转发路由,而不是基于消息To:。 为了从实际中理解这个概念,看看下面这样的邮件传输: HELO galangal.org 250 mail.alpha.com.cn Hello linuxaid.com.cn [202.99.11.120], pleased to meet you MAIL FROM: [email protected] 250 [email protected]... Sender ok RCPT TO: [email protected] 250 [email protected]... Recipient OK DATA 354 Enter mail, end with "." on a line by itself From: [email protected] To: (这里你的地址被隐瞒以实现秘密邮件转发和骚扰) . 250 OAA08757 Message accepted for delivery 下面是对应的邮件头: >From [email protected] Received: from galangal.org ([202.99.11.120]) by mail.alpha.com.cn (8.8.5) for ... From: [email protected] To: (这里你的地址被隐瞒以实现秘密邮件转发和骚扰) 注意到"envelope From"的内容和消息 From: 的内容和消息 To: 的内容都是发送者指定的,因此他们都是不可靠的。这个例子说明了为什么信封From、消息 From: 及消息 To: 在可能是伪造的邮件中是不可靠的,因为它们太容易伪造了。 "Received:"头的重要性 在 上面的例子中我们已经看到,"Received:"头提供了详细的消息传输历史记录,因此即使在其他邮件头是被伪造的情况下也可能根 据"Received:"头得到某些关于该信件原始出处和传输过程的结论。这部分将详细探讨某些和异常的重要消息头相关的问题,特别是如何挫败那些常见的 伪造技术。 毫无疑问的是,在"Received:"头中唯一重要且有价值的伪造防护就是由接收服务器记录的那些信息。前面提到发送者能伪造自己的身份( 通过在HELO命令中报告错误的身份)。幸运的是现代邮件服务器程序都可以检测到这种错误信息并加以修正。 如果服务器 linuxaid.com.cn 的真实IP地址是 202.99.11.120,发送邮件给 mail.alpha.com.cn,但是使用HELO galangal.org命令来伪造自己的身份,则对应该次传输的"Received:"可能如下所示: Received: from galangal.org ([202.99.11.120]) by mail.alpha.com.cn (8.8.5)... (后 面的其他信息被省略以更加清晰)。注意虽然zky.ac.cn没有明确地说galangal.org不是发送者的真实身份,但是它记录了发送者正确的IP 地址。如果某接收者认为消息头中的galangal.org是伪造者伪造的身份,他可以查看IP地址 202.99.11.120 来得到对应的正确域名是linuxaid.com.cn,而不是 galangal.org。也就是说记录发送服务器的IP地址提供了足够的信息来确认可以的伪造行为。 很多现代邮件程序实际上将根据IP查看对应域名的过程自动化了。(这种查看过程被称为反向DNS解析)。如果 mail.alpha.com.cn 使用这种软件,则"Received:"头则变为 Received: from galangal.org (linuxaid.com.cn [202.99.11.120]) by mail.alpha.com.cn... 从 这里可以清楚地看到伪造行为。这个消息头明确地说 linuxaid.com.cn 的IP地址是202.99.11.120,但是却宣称自己的身份为galangal.org。这样的信息对于对于验证和追踪伪造信件是非常有用的。(因 此,垃圾邮件发送者往往避免使用那些记录发送者地址的邮件服务器进行垃圾邮件转发。有时候它们可以找到不记录发送者服务器,但是现在网络上这样的服务器已 经很少了) 伪造者伪造邮件的另外一个日益常见的技巧是在发送垃圾邮件以前添加伪造的"Received:"头。这意味着从 linuxaid.com.cn 发送的假设的邮件的"Received:"头的内容可能为: Received: from galangal.org ([202.99.11.120]) by mail.alpha.com.cn (8.8.5)... Received: from nowhere by fictitious-site (8.8.3/8.7.2)... Received: No Information Here, Go Away! 很 明显,最后两行内容完全是毫无疑义的,是由发送者编写并在发送以前附在邮件中的。由于一旦邮件离开 linuxaid.com.cn,发送者对邮件完全失去了控制。而且新的"Received:"头总是出现添加在消息的头部,因此伪造 的"Received:"头总是出现在"Received:"头列表的尾部。这意味着任何人从头到尾读取"Received:"头列表,追踪邮件传输历 史,都能安全地剔除在第一个伪造头以后的内容。即使"Received:"头看上去似乎是真实的,但是实际上都是伪造的。 当然,发送者不一定会用明显的垃圾信息来迷惑你,一个处心积虑的伪造者可能创建如下所示的看似真实的"Received:"头列表: Received: from galangal.org ([202.99.11.120]) by mail.alpha.com.cn (8.8.5)... Received: from lemongrass.org by galangal.org (8.7.3/8.5.1)... Received: from graprao.com by lemongrass.org (8.6.4)... 这 里泄漏伪造问题的唯一地方是第一个"Received:"头中的 galangal.org 的IP地址。如果伪造者这里填写了lemongrass.org 和graprao.com 的真实IP地址,则这样的伪造伪造仍然非常难以检测。但是第一个"Received:"头中的域名和IP的不匹配仍然揭露了消息是伪造的,并且该邮件是有 网络中地址为 202.99.11.120 的服务器注入到网络中。然而大多数邮件头伪造者一般都没有这么狡猾,一般额外添加的"Received:"头一般都很明显地是伪造的垃圾。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有