应用分析 - Email电子邮件应用分析

一、 邮件传输协议简介

1. 邮件传输概念

邮件服务是Internet上最常用的服务之一,它提供了与操作系统平台无关的通信服务,使用邮件服务,用户可通过电子邮件在网络之间交换数据信息。邮件传输包括将邮件从发送者客户端发往邮件服务器,以及接收者从邮件服务器将邮件取回到接收者客户端。

2. SMTP和POP3

在TCP/IP协议簇中,一般使用SMTP协议发送邮件,POP3协议接收邮件。

SMTP,全称Simple Message Transfer Protocol,中文名为简单邮件传输协议,工作在TCP/IP层次的应用层。SMTP采用Client/Server工作模式,默认使用TCP 25端口,提供可靠的邮件发送服务。

POP3,全称Post Office Protocol 3,中文名为第三版邮局协议,工作在TCP/IP层次的应用层。POP3采用Client/Server工作模式,默认使用TCP 110端口,提供可靠的邮件接收服务。

3. SMTP和POP3的工作原理

发送和接收邮件都需要以下两个组件:用户代理(UA,常用的是Foxmail或Outlook)和SMTP/POP3服务器。

SMTP工作原理:

1) 客户端使用TCP协议连接SMTP服务器的25端口;

2) 客户端发送HELO报文将自己的域地址告诉给SMTP服务器;

3) SMTP服务器接受连接请求,向客户端发送请求账号密码的报文;

4) 客户端向SMTP服务器传送账号和密码,如果验证成功,向客户端发送一个OK命令,表示可以开始报文传输;

5) 客户端使用MAIL命令将邮件发送者的名称发送给SMTP服务器;

6) SMTP服务器发送OK命令做出响应;

7) 客户端使用RCPT命令发送邮件接收者地址,如果SMTP服务器能识别这个地址,就向客户端发送OK命令,否则拒绝这个请求;

8) 收到SMTP服务器的OK命令后,客户端使用DATA命令发送邮件的数据。

9) 客户端发送QUIT命令终止连接。

POP3工作原理:

1) 客户端使用TCP协议连接邮件服务器的110端口;

2) 客户端使用USER命令将邮箱的账号传给POP3服务器;

3) 客户端使用PASS命令将邮箱的账号传给POP3服务器;

4) 完成用户认证后,客户端使用STAT命令请求服务器返回邮箱的统计资料;

5) 客户端使用LIST命令列出服务器里邮件数量;

6) 客户端使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态;

7) 客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。

(注:客户端UA可以设定将邮件在邮件服务器上保留备份,而不将其删除。)

二、 跟踪分析Email电子邮件通讯过程

1. 分析Email的具体流程

1) 发送邮件

        我们使用科来网络分析系统捕获并分析一个使用SMTP协议的发送邮件过程,客户端主机名为“jack”,客户端用户代理使用Foxmail,邮件发送者elabtest1@163.com(密码elabtest),邮件接收者elabtest2@163.com(密码elabtest)。

  • 打开客户端主机上的Foxmail,新建两个邮件账户elabtest1@163.com和elabtest2@163.com,设置好账户的SMTP/POP3服务器地址、用户名、密码(密码都是elabtest)等信息并测试成功。

  • 在客户端主机上打开科来网络分析系统。为避免数据干扰,设定一个过滤器,只捕获本机的数据通讯。 

 

  • 在科来网络分析系统中开始数据捕获,在Foxmail中使用elabtest1@163.com向elabtest2@163.com发送一封邮件,邮件原始信息如图1所示。发送完成后即可在科来网络分析系统对刚才的邮件发送操作进行分析(为避免数据包干扰,分析时可停止捕获。)。

在科来网络分析系统中开始数据捕获,在Foxmail中使用elabtest1@163.com向elabtest2@163.com发送一封邮件,邮件原始信息如图1所示。发送完成后即可在科来网络分析系统对刚才的邮件发送操作进行分析(为避免数据包干扰,分析时可停止捕获。)。

                                                (图1 发送邮件的原始信息) 

                                      (图2 使用SMTP协议发送邮件的原始数据包) 

        图2所示的是科来网络分析系统对上面发送邮件操作的报文跟踪,详细信息如下:

A. 第62、63、64个数据包是TCP连接的三次握手数据包,连接的双方是本机与域名163.com对应的IP地址;

B. 从第65个数据包开始,客户端开始通过TCP协议连接SMTP服务器,并与SMTP服务器进行命令的交互,及邮件的发送,具体的交互过程详见图3以及对图3的分析。     

                                 (图3 使用SMTP协议发送邮件的原始数据流) 

图3所示的是科来网络分析系统对上面发送邮件操作的TCP原始数据流重组信息。具体分析数据流重组信息,可以得到上面发送邮件操作的详细过程如下:

A. 客户端使用EHLO(或HELO)命令向SMTP服务器发送HELO报文,启动邮件传输过程,并同时将客户端地址发送SMTP服务器端,此处为www-d999420e316;

B. SMTP服务器接受了客户端的连接请求,并请求输入账号和密码进行认证;

C. 客户端向服务器端传送账号和密码;

D. SMTP服务器通过验证,客户端使用MAIL命令将邮件发送者的名称传送给SMTP服务器;

E. 客户端使用RCPT命令将邮件接收者的名称传送给SMTP服务器;

F. 客户端使用DATA命令传送邮件数据给SMTP服务器;

G. 数据传送完毕后,客户端发送QUIT命令关闭连接。

注意:

  • SMTP传输使用的是base64编码,图3中AUTH LOGIN下的“ZWxhYnRlc3QxQDE2My5jb20=”是当前使用账号对应的base64编码;
  • 图3所示的SMTP数据流中,客户端向SMTP服务器传送了两次发件人名称和收件人名称,可能的原因有两种:

        a. 网络的延迟较大,客户端在规定时间内未收到SMTP服务器的响应,认为传送发件人名称和收件人名称的数据包丢失而进行的重传;

        b. 客户端主机上的防病毒软件在邮件发送前对邮件进行的检测,如Norton Antivirus就会进行这种检测,禁用此检测功能即可避免此种情况的发生。

2) 接收邮件

我们再使用科来网络分析系统捕获并分析一个使用POP3协议的接收邮件过程,客户端主机名为“www-d999420e316”,客户端用户代理使用Foxmail,邮件接收者elabtest2@163.com。

  • 在客户端主机上打开科来网络分析系统。与上面相同,设定一个过滤器,只捕获本机的数据通讯,选择高级分析模块,在邮件分析模块的常规设置中,将保存邮件选择为“是”,并选择好邮件的保存位置。

  • 在科来网络分析系统中开始数据捕获,同时在Foxmail中选中elabtest2@163.com,并收取邮件。接收完成后即可在科来网络分析系统对刚才的邮件接收操作进行分析(为避免数据包干扰,分析时可停止捕获。)。 

注意:此文里提到的接收邮件均指使用TCP 110端口的标准POP3通信,对于非110端口的邮件发送,用户可在“工程->高级分析模块->邮件分析模块->SMTP设置->POP3端口”处进行更改,系统默认为110,当SMTP服务器有多个端口时,多个端口之间用分号分隔,如110;1110。

图4所示的是科来网络分析系统对上面接收邮件操作的报文跟踪。 

        A. 16、17、18数据包是TCP连接的三次握手数据包,连接的双方是本机与域名163.com对应的IP地址;

        B. 从第19个数据包开始,客户端开始通过TCP协议连接POP3服务器,并与POP3服务器进行命令的交互,及邮件的接收,具体的交互过程详见图4以及对图4的分析。

                                     (图4 使用POP3协议接收邮件的原始数据包) 

图5所示的是科来网络分析系统对上面接收邮件操作的TCP原始数据流重组信息。具体分析其数据流重组信息,可以得到上面接收邮件操作的详细过程:

  1. 客户端使用USER命令向POP3服务器传送用户账号elabtest2@163.com;
  2. 客户端使用PASS命令向POP3服务器传送用户密码elabtest;
  3. POP3服务器通过验证,向客户端发送一个OK报文;
  4. 客户端使用STAT命令请求POP3服务器返回邮箱的统计资料信息,POP3服务器返回当前有9封邮件;
  5. 客户端使用LIST命令列出POP3服务器里的邮件数量,当前为9封邮件;
  6. 客户端使用RETR命令接收邮件,接收后使用DELE命令将邮件POP3服务器中的邮件置为删除状态;
  7. 客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。

注意:

  • POP3直接使用明文传输;
  • 图5中最后部分(由于篇幅,图5中未列出),直接重组出了接收到的邮件内容,此信息不经过任何编码或加密处理,直接为明文方式,与图1所示的邮件原始信息一致。

                                (图5 使用POP3协议接收邮件的原始数据流) 

3) SMTP/POP3命令码

通过SMTP/POP3协议进行邮件收发操作时,均通过不同的命令码进行不同的操作,现将其命令码总结如下:

SMTP命令如表1所示:

POP3命令如表2所示:

三、 总结

        以上简单介绍了SMTP和POP3协议,并使用科来网络分析分析系统跟踪分析了一个基于SMTP/POP3协议的邮件收发操作。据此,用户在遇到不能正常收发邮件(使用SMTP/POP3协议)的问题时,即可结合上述的SMTP/POP3相关知识,使用网络检测分析软件(这儿是科来网络分析系统)对邮件接收和邮件发送的报文进行跟踪分析,以完成对此类故障的快速排查。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腿没发霉的霉腿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值