设为主页 | 加入收藏 | 繁體中文

电子邮件头解析

  一、简介
  这一部门内容将细致讨论email头的方方面面。主要为用户架设邮件办事器提供实际底子并为办理员在呈现电子邮件垃圾骚扰时提供发明垃圾邮件的真正源头。根据邮件头的知识有助于发明伪造的邮件。对付盼望相识邮件是如何在网络中传输的用户同样会有帮助。
  固然在讨论中尽量有意避免如何伪造一封邮件的讨论,但是在讨论中的内容大概被恶意读者用作创立伪造邮件的底子。由于要在文章中举例说明,因此在文章中有若干假造的域名和随意分配的IP地址作为示例利用。这些域名和IP都是恣意恣意选择和伪造的,和Internet上真实的域名和IP没有任何干系。
  二、Email的传输过程
  这部门包罗一个简略的对一个电子邮件生命周期的分析。这对付理解邮件头能为你提供哪些信息黑白常紧张的配景信息。
  从表面上看来邮件似乎是间接从发送者机器通报到吸收者地址,但通常情况下事变并不是如许。一个典范的电子邮件在其生命周期中至多要经过四台盘算机。
  这是由于大少数企业或构造都有一个被称为“邮件办事器”专用办事器来处理电子邮件,而这一样平常并不是用户阅读邮件的盘算机。对付ISP来说,用户从家里面的盘算机拨号接入ISP网络,这里将用户家中的盘算机称为客户机,而将ISP专门处理邮件的盘算机称为邮件办事器。当一个用户发送邮件,他一样平常是在自己的盘算机上编辑邮件,然后将邮件发送到ISP的邮件办事器上。客户机就此曾经完成了自己的事变,而背面的事变则由ISP的邮件办事器来完成。首先ISP邮件办事器查找吸收者指定的邮件办事器的IP地址,然后将邮件发送给该目标办事器。现在邮件则存储在吸收者邮件办事器上等待吸收者收取。当吸收者从接受邮件办事器获得发送给他的邮件到自己的PC机当前,通常该邮件将被删除。
  假定若干个假造的用户和。zhangsan是263这个ISP的拨号用户。利用outook express这个邮件客户程序收发邮件。lisi是中科院的一个假造用户,他利用事变站通过单位局域网毗连进入互联网。
  如果lisi想给zhangsan发送邮件,他在事变站(假定名字为alpha.zky.ac.cn)上编辑邮件,编辑好的信件从事变站发送到中科院的邮件办事器:mail.zky.ac.cn。一旦信件被发送到mail.zky.ac.cn,当前的信件发送过程就和zhangsan没有干系了。中科院的邮件办事器发明这是发送给263.net的某个用户的信件,则和263的邮件办事器-比如说是mail.263.net-通信,并将邮件传送给它。现在邮件则被存储在mail.263.net之上直到zhangsan在自己的PC机上拨号毗连到263网络察看并收取信件,这时mail.263.net将存储的邮件传送到zhangsan的小我私家PC机上。
  在这个过程中,邮件头将三次被加到邮件中:在编辑时由邮件客户程序加入;当邮件传输到mail.zky.ac.cn时被mail.zky.ac.cn加入;当从mail.zky.ac.cn传送到mail.263.net时被mail.263.net加入;通常来说客户收取信件时并不添加邮件头。下面我们就仔细看看这些邮件头是如何产生的。
  当lisi的邮件客户程序编辑邮件并将其发送给mail.zky.ac.cn时,邮件内容如下.这些内容都是由邮件编辑程序(outlook express)添加的:
  From: lisi@zky.ac.cn (Li Si)
  To: zhangsan@263.net
  Date: Tue, Mar 18 1997 14:36:14 PST
  X-Mailer: Outlook Express 5.5
  Subject: 中午搓饭?
  当邮件从mail.zky.ac.cn传送到mail.263.net后,邮件内容变为(新添加的内容是由mail.zky.ac.cn):
  Received: from alpha.zky.ac.cn (alpha.zky.ac.cn [124.211.3.11]) by mail.zky.ac.cn (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST)
  From: lisi@zky.ac.cn (Li Si)
  To: zhangsan@263.net
  Date: Tue, Mar 18 1997 14:36:14 PST
  Message-Id:
  X-Mailer: Outlook Express 5.5
  Subject: 中午搓饭?
  当mail.263.net收到信件并存储等待zhangsan收取时,邮件内容变为,(新添加的内容是由mail.263.com添加的):
  Received: from mail.zky.ac.cn (mail.zky.ac.cn [124.211.3.78]) by mail.263.net (8.8.5/8.7.2) with ESMTP id LAA20869 for ; Tue, 18 Mar 1997 14:39:24 -0800 (PST)
  Received: from alpha.zky.ac.cn (alpha.zky.ac.cn [124.211.3.11]) by mail.zky.ac.cn (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST)
  From: lisi@zky.ac.cn (Li Si)
  To: zhangsan@263.net
  Date: Tue, Mar 18 1997 14:36:14 PST
  Message-Id:
  X-Mailer: Outlook Express 5.5
  Subject: 中午搓饭?
  末了这封信的内容才是zhangsan收取并阅读的内容。下面是对其中内容的细致分析:
  Received: from mail.zky.ac.cn
  下面的内容表示该邮件是来自于自称是mail.zky.ac.cn的办事器。
  (mail.zky.ac.cn [124.211.3.78])
  这句话表示该办事器的真实名字的确是mail.zky.ac.cn,也便是说它自称的身份是精确的,其IP地址为124.211.3.78。
  by mail.263.net (8.8.5/8.7.2)
  吸收这封邮件的机器是mail.263.net。其运转的邮件程序为sendmail,版本为8.8.5/8.7.2。
  with ESMTP id LAA20869
  吸收邮件的办事器为该邮件赋有ID号LAA20869(通常该号码是邮件办事器内部利用的,但是办理员可以根据该ID号在log文件中查找关于该信件的相干信息,但是通常该号都是没有意义的)。
  for ;
  该邮件是发送给地址zhangsan@263.net的。可以看到该邮件头没有To:相干内容。
  Tue, 18 Mar 1997 14:39:24 -0800 (PST)
  这次邮件传输发生工夫为:平静洋工夫Tuesday, March 18, 1997, at 14:39:24(平静洋工夫,由于它比格林威治工夫晚8个小时,因此是"-0800")。 
  Received: from alpha.zky.ac.cn (alpha.zky.ac.cn [124.211.3.11]) by mail.zky.ac.cn (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST)
  该邮件头记载了邮件是从alpha.zky.ac.cn(lisi的事变站)传送到到邮件办事器mail.zky.ac.cn的。传送发生在平静洋工夫14:36:17。发送盘算机自称是alpha.zky.ac.cn,其真实名经dns查询的确是alpha.zky.ac.cn,其IP地址为124.211.3.11,邮件办事器软件为sendmail v8.8.5。该信件被邮件办事器的mail.zky.ac.cn赋给的ID号为004A21。
  From: lisi@zky.ac.cn (Li Si)
  该邮件是由lis@zky.ac.cn发送的,其名字为Li Si。
  To: zhangsan@263.net
  邮件目标地址为:zhangsan@263.net。 
  Date: Tue, Mar 18 1997 14:36:14 PST
  邮件编辑工夫为14:36:14 Pacific Standard Time on Tuesday, March 18, 1997。
  Message-Id:
  mail.zky.ac.cn给该邮件分配了这个号码来标识它。它和Received头中的SMTP机ESMTP ID号是不一样的。由于该号码是一直伴随整个邮件的。而别的ID则仅仅在特定的邮件办事器上的邮件传输阶段相干联。因此该机器ID号对别的机器来说没有任何意义。有工夫Message-ID包罗了发送者邮件地址在其中。
  X-Mailer: Outlook Express 5.5
  该消息是利用Outlook Express发送的,版本号为5.5。
  Subject: 中午搓饭?
  邮件标题。
  邮件协议
  这部门内容绝对别的部门来说具有更多原感性内容,主要讨论邮件是如何从一点传输到别的一点的细节。你不必要理解每一句话,但是熟习这方面的内容有助于在邮件传输呈现稀罕征象时弄明白问题地点。由于垃圾电子邮件发送者常常存心制造一些稀罕的情况以粉饰自己的身份,因此能理解这些稀罕的征象对对付这些家伙黑白常有效的。
  为了在网络上传输数据,盘算机网络协议利用了称为端口的访问入口,你可以将端口看做是一个通道,通过它盘算机可以监听网络通信以提供办事。为了同时监听多个通信,盘算机必要有利用端标语码标识多个差别的端口以区别这些通信。而和电子邮件传输相干的端口是25。
  正常情况
  让我们重新讨论下面的例子,但是这次我们仅仅体贴mail.zky.ac.cn到mail.263.net之间的通信过程。首先mail.zky.edu.c打开一个到mail.263.net的25号端口的毗连,然后通过该毗连发送邮件,当然在发送邮件过程中会有一些办理命令交互过程。交互中的命令和相应都或多或少的是可读的。命令是SMTP协议划定的。如果监听两者之间的通信,大概有以下内容:(粗体部门是mail.zky.ac.cn发出的)
  220 mail.263.net ESMTP Sendmail 8.8.5/1.4/8.7.2/1.13; Tue, Mar 18 1997 14:38:58 -0800 (PST)
  HELO mail.zky.ac.cn
  250 mail.263.net Hello mail.zky.ac.cn [124.211.3.78], pleased to meet you
  MAIL FROM: lisi@zky.ac.cn
  250 lisi@zky.ac.cn... Sender ok
  RCPT TO: zhangsan@263.net
  250 zhangsan@263.net... Recipient ok
  DATA
  354 Enter mail, end with "." on a line by itself
  Received: from alpha.zky.ac.cn (alpha.zky.ac.cn [124.211.3.11]) by mail.zky.ac.cn (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST)
  From: lisi@zky.ac.cn (R.T. Hood)
  To: zhangsan@263.net
  Date: Tue, Mar 18 1997 14:36:14 PST
  Message-Id:
  X-Mailer: Outlook Express 5.5
  Subject: 中午搓饭?
  Do you have time to meet for lunch?
  --lisi
  .
  250 LAA20869 Message accepted for delivery
  QUIT
  221 mail.263.net closing connection
  整个传输依赖于五个SMTP焦点命令(当然SMTP还有一些别的命令,但是它们并不是用来完成真正的邮件传输):HELO,MAIL FROM,RCPT TO,DATA和QUIT。
  邮件发送者HELO命令用来标识自己的身份。HELO mail.zky.ac.cn可以被解读为"嗨,我是mail.zky.ac.cn"。当然这里发送者大概会说谎,但是没有任何机制能防备发送者mail.zky.ac.cn说"嗨,我是mail.xxx.com"或是"嗨,我是mail.yyy.com"。但是在大少数情况下吸收者都有一些要领来确认发送者的真实身份。
  MAIL FROM命令标识开端邮件传输,寄义是"我有从某人发送来的邮件",该命令后跟的地址便是所谓的“信封地址”(在背面我们将深化讨论),信封from地址不一定是发送者自己的地址。这个明显的宁静毛病是不行避免的(由于吸收者并不知道发送者机器上有哪些地址),但是在特定的情况下这又是一个有效处的特色。
  RCPT TO和MAIL FROM是相辅相成的。其指定邮件吸收者。通过多个RCPT TO命令一个邮件可以被发送给多个吸收者。(在背面的邮件中继部门将表明该特色大概针对某些不宁静的体系滥用)。该命令后跟的地址称为"envelope to"地址。其指定了邮件将被投递给哪些用户,而和信件中的To:指定的地址没有干系。
  DATA命令指示开端实际的邮件内容传输。DATA命令后输入的任何内容都被看做是邮件的一部门。而款式并没有任何限定。以一个英文单词加冒号开端的行一样平常被邮件程序看做是邮件头。以英文句号符号(.)开端的行被以为是邮件内容结束。
  QUIT命令停止毗连。
  SMTP协议范例定义在RFC 821中。
  非正常情况
  下面的例子有些过于简略。下面的例子有一个假定前提:两个构造的邮件办事器相互之间能间接访问,而不必要经过署理、防火墙等宁静设备。这在当前Internet环境下情况每每是如许的。但由于宁静对付某些构造来说十分紧张,并且网络或构造大概变得越来越巨大,情况就不那么简略了。对付具有署理型防火墙体系的邮件传输来说,区别就在于在邮件的头中多了一次转发过程的记载,也便是邮件首先从发送者邮件办事器发送到防火墙上,然后再从防火墙发送到目标邮件办事器。
  邮件中继
  中继
  对付某些具有特别的“生命”周期的邮件头大概和前面讨论的情况完全差别:
  Received: from unwilling.intermedia.com (unwilling.intermedia.com [98.134.11.32]) by mail.zky.ac.cn (8.8.5) id 004B32 for ; Wed, Jul 30 1997 16:39:50 -0800 (PST)
  Received: from linuxaid.com.cn ([202.99.11.120]) by unwilling.intermedia.com (8.6.5/8.5.8) with SMTP id LAA12741; Wed, Jul 30 1997 19:36:28 -0500 (EST)
  From: Anonymous Spammer
  To: (recipient list suppressed)
  Message-Id:
  X-Mailer: Massive Annoyance
  Subject: WANT TO MAKE ALOT OF MONEY???
  这个邮件头和以前的差别之处大概会令你以为这是一封垃圾邮件,但是这里引起你的猜疑的是"Received:"头。从"Received:"头看来,邮件是来自linuxaid.com.cn,然后从这里传输给unwilling.intermedia.com,然后从这里再次传输到最终目标地址:mail.zky.ac.cn。从"Received:"头看来事变便是如许的,但是中间为什么会呈现unwilling.intermedia.com呢?由于它和发送者和吸收者都没有间接的干系。
  要理解原因必要对SMTP协议进行一些相识。素质下去讲,传输过程是如许的:linuxaid.com.cn毗连unwilling.intermedia.com的SMTP端口。告诉它“请发送这封邮件到rth@zky.ac.cn。它大概因此最间接的要领来完成:RCPT TO: rth@zky.ac.cn。到现在为止,unwilling.intermedia.com接管对该邮件的处理。由于它原告知将该信件转发给其他一个域:zky.ac.cn,它就查找对付域名zky.ac.cn的邮件办事器然后将邮件转发给zky.ac.cn。这个过程通常被称作邮件中继(mail relaying)。
  呈现邮件中继是由于汗青的原因,利用邮件中继是有它的利益的。到八十年代末期,很多网络中的盘算机都不是间接通信来传输邮件。而是通过邮件路由来通报邮件,通过邮件路由办事器一步一步地进行邮件传输。如许做黑白常麻烦的,发送者每每必要手工指定一封邮件必要经过哪些邮件路由办事器,比如必要从San Francisco发送一封邮件到New York,则必要在信封中添加如下内容:
  San Francisco, Sacramento, Reno, Salt Lake City, Rock Springs, Laramie, North Platte, Lincoln, Omaha, Des Moines, Cedar Rapids, Dubuque, Rockford, Chicago, Gary, Elkhart, Fort Wayne, Toledo, Cleveland, Erie, Elmira, Williamsport, Newark, New York City, Greenwich Village, #12 Desolation Row, Apt. #35, R.A. Zimmermann
  如果从邮局事变职员的角度来考虑,这种模子黑白常有效的。在Gary的邮局只必要知道如何和邻近的邮局Chicago和Elkhart通信,而无需消耗资源盘算如何将邮件发送到New York(这工夫就很清楚为什么这种模式对付邮件发送者来说十分糟糕,为什么这种要领被抛弃了)。但是这便是邮件被传输的过程。因此办事器具有如许的中继的本领在那时是很紧张的。
  而现在中继通常被用作不品德的告白商用来隐藏它们的原始地址,将抱怨转嫁给被用来中继的办事器而不是其地点ISP的技能。同样通过中继可以完成将发送信件的负载转移到中继办事器上,从而完成盗用中继办事器的办事资源。在这里最紧张的一点是理解邮件内容是在发送点linuxaid.com.cn被编辑。中间的办事器unwilling.intermedia.com只是到场了中间的传输事变,它并不克不及对发送者有任何的束缚力。
  在下面的例子中应该注意的别的一点是"Message-Id:"并不是由发送者办事器(linuxaid.com.cn)而是中继盘算机(unwilling.intermedia.com)填写的。这是被中继的邮件的一个典范特性,该特性反应了发送办事器并没有提供Message-Id的事实。
  信封头
  下面关于SMTP的讨论部门提到了“消息”头和“信封”头的差别之处。这种区别和导致的效果将在这里细致地讨论。
  简略地说,“信封”头实际上是由吸收消息的邮件办事器产生的,而不是发送者办事器。根据这个定义,“Received:”头是信封头,而一样平常来说常常利用"envelope From"和"envelope To"来指示它们。
  "envelope From"头是从MAIL FROM命令得到的。如发送者邮件办事器发出命令MAIL FROM: ideal@linuxaid.com.cn,则吸收者办事器则产生一个"envelope From"头:>From ideal@linuxaid.com.cn
  注意这里少了一个冒号—"From"而不是"From:"。也便是说信封头在厥后没有冒号。当然这个老例并不是尺度,但是这时一个值得注意的老例。
  对应的是"envelope To"同样来自于RCPT TO命令。如果发送者办事器发出命令RCPT TO: ideal@btamail.net.cn。则"envelope To"为ideal@btamail.net.cn。一样平常来说实际上并没有如许一个邮件头,它常常是包罗在Received:头中。
  存在信封信息的一个紧张效果便是消息From:和To:变得毫无意义。From:头是由发送者提供的,同样To:也是由发送者提供的。因此邮件仅仅基于"envelope To"来进行转发路由,而不是基于消息To:。
  为了从实际中理解这个观点,看看下面如许的邮件传输:
  HELO galangal.org
  250 mail.zky.ac.cn Hello linuxaid.com.cn [202.99.11.120], pleased to meet you
  MAIL FROM: forged-address@galangal.org
  250 forged-address@galangal.org... Sender ok
  RCPT TO: lisi@zky.ac.cn
  250 lisi@zky.ac.cn... Recipient OK
  DATA
  354 Enter mail, end with "." on a line by itself
  From: another-forged-address@lemongrass.org
  To: (这里你的地址被隐瞒以完成秘密邮件转发和骚扰)
  .
  250 OAA08757 Message accepted for delivery
  下面是对应的邮件头:
  >From forged-address@galangal.org
  Received: from galangal.org ([202.99.11.120]) by mail.zky.ac.cn (8.8.5) for ...
  From: another-forged-address@lemongrass.org
  To: (your address suppressed for stealth mailing and annoyance)
  注意到"envelope From"的内容和消息From:的内容和消息To:的内容都是发送者指定的,因此他们都是不行靠的。这个例子说明白为什么信封From、消息From:及消息To:在大概是伪造的邮件中是不行靠的,由于它们太容易伪造了。
  "Received:"头的紧张性
  在下面的例子中我们曾经看到,"Received:"头提供了细致的消息传输汗青记载,因此即使在其他邮件头是被伪造的情况下也大概根据"Received:"头得到某些关于该信件原始出处和传输过程的结论。这部门将细致探讨某些和异常的紧张消息头相干的问题,特别是如何挫败那些常见的伪造技能。
  毫无疑问的是,在"Received:"头中独一紧张且有价值的伪造防护便是由吸收办事器记载的那些信息。前面提到发送者能伪造自己的身份(通过在HELO命令中报告错误的身份)。幸运的是现代邮件办事器程序都可以检测到这种错误信息并加以修正。
  如果办事器linuxaid.com.cn的真实IP地址是202.99.11.120,发送邮件给mail.zky.ac.cn,但是利用HELO galangal.org命令来伪造自己的身份,则对应该次传输的"Received:"大概如下所示:
  Received: from galangal.org ([202.99.11.120]) by mail.zky.ac.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.zky.ac.cn利用这种软件,则"Received:"头则变为
  Received: from galangal.org (linuxaid.com.cn [202.99.11.120]) by mail.zky.ac.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.zky.ac.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.zky.ac.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:"头一样平常都很明显地是伪造的垃圾。
 


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: