查看: 45652|回复: 47

Email电子邮件应用分析!

[复制链接]
发表于 2006-7-13 14:31:54 | 显示全部楼层 |阅读模式
在当前的网络中,电子邮件是最普遍的沟通方式,不管是政府,企业,还是个人,都在大量地频繁通过电子邮件进行数据交换。

那么,电子邮件在网络中的传输原理是什么,它的传输过程怎样,在传输时它的安全性如何呢?

带着这些疑问,我们对电子邮件的全过程进行了跟踪分析,故有了以下的Email电子邮件应用分析一文。




下载Email电子邮件应用分析PDF文档。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

 楼主| 发表于 2006-7-13 14:33:42 | 显示全部楼层
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可以设定将邮件在邮件服务器上保留备份,而不将其删除。)
回复

使用道具 举报

 楼主| 发表于 2006-7-13 14:35:47 | 显示全部楼层
二、        跟踪分析Email电子邮件通讯过程
1.        分析Email的具体流程
1)        发送邮件
我们使用科来网络分析系统5.0捕获并分析一个使用SMTP协议的发送邮件过程,客户端主机名为“wangym”,客户端用户代理使用Foxmail 5.0 beta2,邮件发送者test1@colasoft.com,邮件接收者test2@colasoft.com
在客户端主机上打开科来网络分析系统5.0。为避免数据干扰,设定一个过滤器,只捕获本机的数据通讯。
打开客户端主机上的Foxmail 5.0 beta2,新建两个邮件账户,test1@colasoft.comtest2@colasoft.com,设置好账户的SMTP/POP3服务器地址、用户名、密码等信息并测试成功。
在科来网络分析系统5.0中开始数据捕获,在Foxmail中使用test1@colasoft.comtest2@colasoft.com发送一封邮件,邮件原始信息如图1所示。发送完成后即可在科来网络分析系统5.0对刚才的邮件发送操作进行分析(为避免数据包干扰,分析时可停止捕获。)。
注意:此文里提到的发送邮件均指使用TCP 25端口的标准SMTP通信,对于非25端口的邮件发送,用户可在“工程->高级分析模块->邮件分析模块->SMTP设置->SMTP端口”处进行更改,系统默认为25,当SMTP服务器有多个端口时,多个端口之间用分号分隔,如25;125。


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



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

图2所示的是科来网络分析系统5.0对上面发送邮件操作的报文跟踪,详细信息如下:
A.        第1、2、3个数据包是TCP连接的三次握手数据包,连接的双方是本机与域名ns1.colasoft.com对应的IP地址;
B.        从第4个数据包开始,客户端开始通过TCP协议连接SMTP服务器,并与SMTP服务器进行命令的交互,及邮件的发送,具体的交互过程详见图3以及对图3的分析。
     

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

图3所示的是科来网络分析系统5.0对上面发送邮件操作的TCP原始数据流重组信息。具体分析数据流重组信息,可以得到上面发送邮件操作的详细过程如下:
A.        客户端使用EHLO(或HELO)命令向SMTP服务器发送HELO报文,启动邮件传输过程,并同时将客户端地址发送SMTP服务器端,此处为wangym;
B.        SMTP服务器接受了客户端的连接请求,并请求输入账号和密码进行认证;
C.        客户端向服务器端传送账号和密码;
D.        SMTP服务器通过验证,客户端使用MAIL命令将邮件发送者的名称传送给SMTP服务器;
E.        客户端使用RCPT命令将邮件接收者的名称传送给SMTP服务器;
F.        客户端使用DATA命令传送邮件数据给SMTP服务器;
G.        数据传送完毕后,客户端发送QUIT命令关闭连接。
注意:
        SMTP传输使用的是base64编码,图4中AUTH LOGIN下的“dGVzdDFAY29sYXNvZnQuY29t”是当前使用账号对应的base64编码;
        图3所示的SMTP数据流中,客户端向SMTP服务器传送了两次发件人名称和收件人名称,可能的原因有两种:
a.        网络的延迟较大,客户端在规定时间内未收到SMTP服务器的响应,认为传送发件人名称和收件人名称的数据包丢失而进行的重传;
b.        客户端主机上的防病毒软件在邮件发送前对邮件进行的检测,如Norton Antivirus就会进行这种检测,禁用此检测功能即可避免此种情况的发生。

[ 本帖最后由 菜鸟人飞 于 2006-7-13 14:37 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

 楼主| 发表于 2006-7-13 14:40:38 | 显示全部楼层
2)        接收邮件
我们再使用科来网络分析系统5.0捕获并分析一个使用POP3协议的接收邮件过程,客户端主机名为“wangym”,客户端用户代理使用Foxmail 5.0 beta2,邮件接收者test2@colasoft.com
在客户端主机上打开科来网络分析系统5.0。与上面相同,设定一个过滤器,只捕获本机的数据通讯,选择高级分析模块,在邮件分析模块的常规设置中,将保存邮件选择为“是”,并选择好邮件的保存位置,如图1所示。
在科来网络分析系统5.0中开始数据捕获,同时在Foxmail中选中test2@colasoft.com,并收取邮件。接收完成后即可在科来网络分析系统5.0对刚才的邮件接收操作进行分析(为避免数据包干扰,分析时可停止捕获。)。
注意:此文里提到的接收邮件均指使用TCP 110端口的标准POP3通信,对于非110端口的邮件发送,用户可在“工程->高级分析模块->邮件分析模块->SMTP设置->POP3端口”处进行更改,系统默认为110,当SMTP服务器有多个端口时,多个端口之间用分号分隔,如110;1110。

图4所示的是科来网络分析系统5.0对上面接收邮件操作的报文跟踪。 
A.        1、2、3数据包是TCP连接的三次握手数据包,连接的双方是本机与域名ns1.colasoft.com对应的IP地址;
B.        从第4个数据包开始,客户端开始通过TCP协议连接POP3服务器,并与POP3服务器进行命令的交互,及邮件的接收,具体的交互过程详见图4以及对图4的分析。


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

图5所示的是科来网络分析系统5.0对上面接收邮件操作的TCP原始数据流重组信息。具体分析其数据流重组信息,可以得到上面接收邮件操作的详细过程:
A.        客户端使用USER命令向POP3服务器传送用户账号test2@colasoft.com
B.        客户端使用PASS命令向POP3服务器传送用户密码1234567890;
C.        POP3服务器通过验证,向客户端发送一个OK报文;
D.        客户端使用STAT命令请求POP3服务器返回邮箱的统计资料信息,POP3服务器返回当前有一封邮件;
E.        客户端使用LIST命令列出POP3服务器里的邮件数量,当前为1封邮件;
F.        客户端使用RETR命令接收邮件,接收后使用DELE命令将邮件POP3服务器中的邮件置为删除状态;
G.        客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。
注意:
        POP3直接使用明文传输;
        图5中最后部分(由于篇幅,图5中未列出),直接重组出了接收到的邮件内容,此信息不经过任何编码或加密处理,直接为明文方式,与图1所示的邮件原始信息一致。


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

3)        SMTP/POP3命令码
通过SMTP/POP3协议进行邮件收发操作时,均通过不同的命令码进行不同的操作,现将其命令码总结如下:
SMTP命令如表1所示:
命令        作用
HELO        客户端发送此命令与SMTP服务器建立连接,将发送者邮件地址发送给SMTP服务器
MAIL        客户端将邮件发送者的名称传送给SMTP服务器
RCPT        客户端将邮件接收者的名称传送给SMTP服务器
DATA        客户端将邮件报文内容传送给SMTP服务器
SEND        用于向指定用户传送邮件
SAML/SOML        用于发送邮件
RSET        取消客户端与SMTP服务器间的当前事务,释放与当前事务相关的内存
EXPN        标识邮件接收者列表
QUIT        终止客户端与SMTP服务器间的连接


(表1 SMTP协议命令)

POP3命令如表2所示:
命令        作用
USER        客户端向POP3服务器传送账号
PASS        客户端向POP3服务器传送密码
STAT        客户端请求POP3服务器返回邮箱的统计信息
UIDL        客户端请求POP3服务器返回邮件的唯一标识符
LIST        客户端请求POP3服务器返回邮件数量和每封邮件的大小
RETR        客户端请求POP3服务器返回由参数标识的邮件的全部文本
DELE        POP3服务器将由参数标识的邮件标记为删除
RSET        POP3服务器重置所有标记为删除的邮件,用于撤消DELE命令
NOOP        POP3服务器返回一个肯定的响应
QUIT        终止客户端POP3服务器间的连接


(表2 POP3协议命令)

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

                                                                                                                                                      CSNA网络分析论坛
                                                                                                                                                                       菜鸟人飞

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2006-7-14 09:50:12 | 显示全部楼层
不错不错,谢谢。
那在IE页面方式的呢,科来可以直接看到邮件的内容吗?
回复

使用道具 举报

 楼主| 发表于 2006-7-17 13:50:09 | 显示全部楼层
捕获原始数据包即可分析
http://www.csna.cn/forum.php?mod ... &extra=page%3D2

BTW:你不是回答过这个帖子嘛
回复

使用道具 举报

发表于 2006-7-17 15:45:59 | 显示全部楼层
菜版真是高产啊。
回复

使用道具 举报

发表于 2006-7-25 01:03:00 | 显示全部楼层
google的也是加密的,好啊,以后多一个选择了。
另外,没有测试yahoo的,yahoo的是加密的吗?

回复

使用道具 举报

发表于 2006-7-28 21:50:05 | 显示全部楼层
感谢提供 ~~~!!!
回复

使用道具 举报

发表于 2006-8-6 14:43:13 | 显示全部楼层
TCP/IP协议数据报结构详解
回复

使用道具 举报

发表于 2006-8-11 18:34:05 | 显示全部楼层
努力学习网络技术!!!!!!
回复

使用道具 举报

发表于 2006-8-14 08:56:23 | 显示全部楼层
xie xie  ding  ding o
回复

使用道具 举报

发表于 2006-12-7 13:50:19 | 显示全部楼层
都是好东西啊~~~~~~~~~~~~~
回复

使用道具 举报

发表于 2007-1-8 09:57:34 | 显示全部楼层
真 是厉害啊  哎
对国内密保设置汗颜
回复

使用道具 举报

发表于 2007-1-8 11:20:13 | 显示全部楼层
真是好东西啊,版主你太厉害了!
回复

使用道具 举报

发表于 2007-6-8 16:42:39 | 显示全部楼层
不错,不错,飞鸟兄
顶一下
回复

使用道具 举报

发表于 2007-11-29 13:18:12 | 显示全部楼层
POP3工作原理:
1)        客户端使用TCP协议连接邮件服务器的110端口;
2)        客户端使用USER命令将邮箱的账号传给POP3服务器;
3)        客户端使用PASS命令将邮箱的*************账号************传给POP3服务器;\\\\

应该是"密码"吧?
回复

使用道具 举报

发表于 2008-4-29 21:58:08 | 显示全部楼层
不错呀.~~~~~~~~~~~学习了.
回复

使用道具 举报

发表于 2008-5-4 09:43:50 | 显示全部楼层
FOXMAIL就是这个德行``呵呵``
回复

使用道具 举报

发表于 2008-9-21 09:30:25 | 显示全部楼层
看过好多的论坛,不能不说这里是最专业的

     其它的论坛也有好的文章,但这里是最专业的。

     支持ing................
回复

使用道具 举报

发表于 2008-10-16 13:52:28 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 2008-10-17 16:02:01 | 显示全部楼层
不错啊。。。谢谢菜鸟飞人
回复

使用道具 举报

发表于 2008-10-20 08:05:22 | 显示全部楼层
写得真详细呀,佩服佩服!
回复

使用道具 举报

发表于 2008-10-24 15:38:38 | 显示全部楼层

回复 1# 的帖子

謝了,先看看。應該是非常不錯的技術文章
回复

使用道具 举报

发表于 2008-10-24 21:38:53 | 显示全部楼层
谢谢,学习了
回复

使用道具 举报

发表于 2008-11-12 15:17:16 | 显示全部楼层
学习了...谢谢版主
回复

使用道具 举报

发表于 2008-11-13 15:46:28 | 显示全部楼层
好啊,长了知识,多谢。
我在收取邮件时遇到的问题是:Foxmail一直停留在第二步。即:发出user指令处。
不知是属于哪里的问题。
回复

使用道具 举报

发表于 2009-2-17 19:54:01 | 显示全部楼层
谢谢LZ,真的好好哦。。。。。。值得学习
回复

使用道具 举报

发表于 2009-2-17 20:01:42 | 显示全部楼层
虽然我看不是很懂,但是感觉真的写得好好哦,你好厉害哦。。。。
回复

使用道具 举报

发表于 2009-4-1 22:59:55 | 显示全部楼层
多谢LZ分享,学习了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表