应用分析-Email电子邮件应用分析.docx
应用分析一Email电子邮件应用分析一、邮件传输协议简介1. 邮件传输概念邮件服务是Internet上最常用的服务之一,它提供了与操作系统平台无关的通信服务,使用邮件服务,用户可通过电子邮件在网络之间交换数据信息。邮件传输包含将邮件从发送者客户端发往邮件服务器,与接收者从邮件服务器将邮件取回到接收者客户端。2. SMTP与POP3在TCP/IP协议簇中,通常使用SMTP协议发送邮件,POP3协议接收邮件。SMTP,全称SimpleMessageTransferProtocol,中文名为简单邮件传输协议,工作在TCP/IP层次的应用层。SMTP使用CIient/Server工作模式,默认使用TCP25端口,提供可靠的邮件发送服务。POP3,全称PoStoffiCeProtOCol3,中文名为第三版邮局协议,工作在TCP/IP层次的应用层。POP3使用Client/Server工作模式,默认使用TCP110端口,提供可靠的邮件接收服务。3. SMTP与POP3的工作原理发送与接收邮件都需要下列两个组件:用户代理(UA,常用的是FoXmaiI或者OUtlook)与SMTP/P0P3服务器。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协议连接邮件服务器的IlO端口;2)客户端使用USER命令将邮箱的账号传给POP3服务器;3)客户端使用PASS命令将邮箱的账号传给POP3服务器;4)完成用户认证后,客户端使用STAT命令请求服务器返回邮箱的统计资料;5)客户端使用LIST命令列出服务器里邮件数量;6)客户端使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态;7)客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。(注:客户端UA能够设定将邮件在邮件服务器上保留备份,而不将其删除。)二、跟踪分析Email电子邮件通讯过程1.分析Email的具体流程D发送邮件在客户端主机上打开科来网络分析系统5.0。为避免数据干扰,设定一个过滤器,只捕获本机的数据通讯。注意:此文里提到的发送邮件均指使用TCP25端口的标准SMTP通信,关于非25端口的邮件发送,用户可在“工程->高级分析模块->邮件分析模块->SMTP设置->SMTP端口”处进行更换,系统默认为25,当SMTP服务器有多个端口时,多个端口之间用分号分隔,如25;125。(图1发送邮件的原始信息)(图2使用SMTP协议发送邮件的原始数据包)图2所示的是科来网络分析系统5.O对上面发送邮件操作的报文跟踪,全面信息如下:A.从第4个数据包开始,客户端开始通过TCP协议连接SMTP服务器,并与SMTP服务器进行命令的交互,及邮件的发送,具体的交互过程详见图3与对图3的分析。(图3使用SMTP协议发送邮件的原始数据流)图3所示的是科来网络分析系统5.O对上面发送邮件操作的TCP原始数据流重组信息。具体分析数据流重组信息,能够得到上面发送邮件操作的全面过程如下:A.客户端使用EHLO(或者HELO)命令向SMTP服务器发送HELO报文,启动邮件传输过程,并同时将客户端地址发送SMTP服务器端,此处为Wangym;B.SMTP服务器同意了客户端的连接请求,并请求输入账号与密码进行认证;C.客户端向服务器端传送账号与密码;D.SMTP服务器通过验证,客户端使用MAIL命令将邮件发送者的名称传送给SMTP服务器;E.客户端使用RCPT命令将邮件接收者的名称传送给SMTP服务器;F.客户端使用DATA命令传送邮件数据给SMTP服务器;G.数据传送完毕后,客户端发送QUTT命令关闭连接。注意: SMTP传输使用的是base64编码,图4中AUTHLOGIN下的“dGVzdDFAY29SYXNVZnQUY291”是当前使用账号对应的base64编码; 图3所示的SMTP数据流中,客户端向SMTP服务器传送了两次发件人名称与收件人名称,可能的原因有两种:a.网络的延迟较大,客户端在规定时间内未收到SMTP服务器的响应,认为传送发件人名称与收件人名称的数据包丢失而进行的重传;b.客户端主机上的防病毒软件在邮件发送前对邮件进行的检测,如NortonAntivirus就会进行这种检测,禁用此检测功能即可避免此种情况的发生。2)接收邮件在客户端主机上打开科来网络分析系统5.0。与上面相同,设定一个过滤器,只捕获本机的数据通讯,选择高级分析模块,在邮件分析模块的常规设置中,将储存邮件选择为“是”,并选择好邮件的储存位置,如图1所示。注意:此文里提到的接收邮件均指使用TCP110端口的标准POP3通信,关于非110端口的邮件发送,用户可在“工程高级分析模块-邮件分析模块->SMTP设置->P0P3端口”处进行更换,系统默认为110,当SMTP服务器有多个端口时,多个端口之间用分号分隔,如110;Ill0。图4所示的是科来网络分析系统5.O对上面接收邮件操作的报文跟踪。A.从第4个数据包开始,客户端开始通过TCP协议连接POP3服务器,并与POP3服务器进行命令的交互,及邮件的接收,具体的交互过程详见图4与对图4的分析。(图4使用POP3协议接收邮件的原始数据包)图5所示的是科来网络分析系统5.O对上面接收邮件操作的TCP原始数据流重组信息。具体分析其数据流重组信息,能够得到上面接收邮件操作的全面过程:A.客户端使用PASS命令向POP3服务器传送用户密码1234567890:8. POP3服务器通过验证,向客户端发送一个OK报文;C.客户端使用STAT命令请求POP3服务器返回邮箱的统计资料信息,POP3服务器返回当前有一封邮件;D.客户端使用LIST命令列出POP3服务器里的邮件数量,当前为1封邮件;E.客户端使用RETR命令接收邮件,接收后使用DELE命令将邮件POP3服务器中的邮件置为删除状态;F.客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。注意: POP3直接使用明文传输; 图5中最后部分(由于篇幅,图5中未列出),直接重组出了接收到的邮件内容,此信息不通过任何编码或者加密处理,直接为明文方式,与图1所示的邮件原始信息一致。(图5使用POP3协议接收邮件的原始数据流)3)SMTP/POP3命令码通过SMTP/POP3协议进行邮件收发操作时,均通过不一致的命令码进行不一致的操作,现将其命令码总结如下:SMTP命令如表1所示:命令作用HELO客户端发送此命令与SMTP服务器建立连接,将发送者邮件地址发送给SMTP服务器MAIL客户端将邮件发送者的名称传送给SMTP服务器RCPT客户端将邮件接收者的名称传送给SMTP服务器DATA客户端将邮件报文内容传送给SMTP服务器SEND用于向指定用户传送邮件SAMLS0ML用于发送邮件RSET取消客户端与SMTP服务器间的当前事务,释放与当前事务有关的内存EXPN标识邮件接收者列表QUIT终止客户端与SMTP服务器间的连接(表1SMTP协议命令)POP3命令如表2所示:命令作用USER客户端向POP3服务器传送账号PASS客户端向POP3服务器传送密码STAT客户端请求POP3服务器返回邮箱的统计信息UIDL客户端请求POP3服务器返回邮件的唯一标识符LIST客户端请求POP3服务器返回邮件数量与每封邮件的大小RETR客户端请求POP3服务器返回由参数标识的邮件的全部文本DELEPOP3服务器将由参数标识的邮件标记为删除RSETPOP3服务重视置所有标记为删除的邮件,用于撤消DELE命令NOOPPOP3服务器返回一个确信的响应QUIT终止客户端POP3服务器间的连接(表2POP3协议命令)三、总结以上简单介绍了SUTP与POP3协议,并使用科来网络分析分析系统5.O跟踪分析了一个基于SMTP/POP3协议的邮件收发操作。据此,用户在遇到不能正常收发邮件(使用SMTP/POP3协议)的问题时,即可结合上述的SMTP/POP3有关知识,使用网络检测分析软件(这儿是科来网络分析系统5.0)对邮件接收与邮件发送的报文进行跟踪分析,以完成对此类故障的快速排查。成都科来软件有限公司2006年6月