实验九 利用wireshark分析smtp和pop3协议分析文档格式.docx
- 文档编号:19267491
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:16
- 大小:1.22MB
实验九 利用wireshark分析smtp和pop3协议分析文档格式.docx
《实验九 利用wireshark分析smtp和pop3协议分析文档格式.docx》由会员分享,可在线阅读,更多相关《实验九 利用wireshark分析smtp和pop3协议分析文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
电子邮件的收发过程如图2.2所示。
图2.2邮件收发过程
2电子邮件协议
当前常用的电子邮件协议有SMTP(简单邮件传输协议)、POP3(邮局协议)、IMAP4(Internet邮件访问协议),它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。
SMTP主要负责底层的邮件系统如何将邮件从一台机器传至另外一台机器。
POP3是把邮件从电子邮箱中传输到本地计算机的协议。
IMAI4是POP3的一种替代协议,提供了邮件检索和邮件处理新功能,这样用户可以不必下载邮件正文就可以看到邮件的标题摘要,从邮件客户端软件就可以对服务器上的邮件和文件夹目录等进行操作。
在这里我们着重分析SMTP和POP3这两种基本的协议。
3SMTP和POP3协议
3.1SMTP的协议分析
SMTP是SimpleMailTransferProtocol的缩写,即简单邮件传输协议,基于TCP的应用层明文传送,使用服务端口25,是一种提供有效可靠传送电子邮件的协议。
用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件。
负责发送邮件的服务器称为SMTP客户,负责接收邮件的服务器称为SMTP服务器。
3.1.1SMTP的工作原理
SMTP通常有两种工作模式:
发送SMTP和接收SMTP。
SMTP的通信模型如图3.1所示,具体工作方式为:
发送SMTP在接到用户的邮件请求后,判断此邮件是否为本地邮件,若是直接投送到用户的邮箱,否则向DNS查询远端邮件服务器的MX纪录,并建立与远端接收SMTP之间的一个双向传送通道,此后SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方向传送(SMTP协议对每一个命令都会返回一个应答)。
一旦传送通道建立,SMTP发送者发送MAIL命令指明邮件发送者。
如果SMTP接收者可以接收邮件则返回OK应答。
SMTP发送者再发出RCPT命令确认邮件是否接收到。
如果SMTP接收者接收,则返回OK应答;
如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此重复多次。
当接收者收到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回OK应答即可。
SMTP命令
应答
图3.1SMTP的通信模型
SMTP主要经过建立连接、传送邮件和释放连接3个阶段。
具体为:
1)客户端使用TCP协议连接SMTP服务器的25端口;
2)客户端发送HELO报文将自己的域地址告诉给SMTP服务器;
3)SMTP服务器接受连接请求,向客户端发送请求账号密码的报文(AUTHLOGIN);
4)客户端向SMTP服务器传送账号和密码,如果验证成功,向客户端发送一个OK命令,表示可以开始报文传输;
5)客户端使用MAIL命令将邮件发送者的名称发送给SMTP服务器;
6)SMTP服务器发送OK命令做出响应;
7)客户端使用RCPT命令发送邮件接收者地址,如果SMTP服务器能识别这个地址,就向客户端发送OK命令,否则拒绝这个请求;
8)收到SMTP服务器的OK命令后,客户端使用DATA命令发送邮件的数据。
9)客户端发送QUIT命令终止连接。
3.1.2SMTP的主要命令
直接使用SMTP协议发送邮件的命令如表3.1所示:
表3.1SMTP基本命令集
命令
描述
HELO
发件方问候收件方,后跟发件人的服务器地址或标识。
收件方回答OK时标识自己的身份。
问候和确认过程表明两台机器可以进行通信,同时状态参量被复位,缓冲区被清空。
用来开始传送邮件,后跟发件方邮件地址(返回邮件地址)。
它也用来当邮件无法送达时,发送失败通知。
PCPT
告诉收件方收件人的邮箱。
当有多个收件人时,需要多次使用该命令,每次只能指明一个人。
如果接收方服务器不同意转发这个地址的邮件,它必须报550错误代码通知发件方。
如果服务器同意转发,它要更改邮件发送路径,把最开始的目的地换成下一个服务器。
DATA
收件方把该命令之后的数据作为发送的数据。
数据被加入数据缓冲区中,以单独一行是<
CRLF>
,<
的行结束数据。
结束行对于接收方同时意味着立即开始缓冲区内的数据传送,传送结束后清空缓冲区。
如果传送接受,接收方回复OK
QUIT
SMTP要求接收方必须回答OK,然后中断传输;
在收到这个命令并回答OK前,收件方不得中断连接,即使传输出现错误。
发件方在发出这个命令并收到OK答复前,也不得中断连接。
RSET
这个命令用来通知收件方复位,所有已存入缓冲区的收件人数据,发件人数据和待传送数据都必须清除,接收方必须回答OK
3.2POP3的协议分析
POP3(PostOfficeProtocol3)即邮局协议的第3个版本,主要用于支持使用客户端远程管理在服务器上的电子邮件。
该协议是在RFC-1939中定义的,是Internet上的大多数人用来接收邮件的机制。
POP3采用Client/Server工作模式,默认使用TCP110端口。
它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。
3.2.1POP3的工作原理
POP3会话在生命周期中有三个不同的状态:
认证状态,处理状态和更新状态。
一旦TCP连接被打开,就进入了“确认”状态,大多数现有的POP3客户端与服务器执行采用ASCII明文发送用户名和口令给服务器进行身份确认,客户端必须向POP3服务器确认自己是其客户,服务器确认后,服务器会在邮件上加上排它锁,以防止在进入“更新”状态前对邮件的改变,服务器返回一个“确认”状态码,确认成功后就进入“操作”状态,在该状态下,服务器就获取与客户邮件相关的资源,客户提出服务,完成相应的操作后,客户发出QUIT命令,希望结束会话,如果这时的服务器端处于“操作”状态,则在QUIT命令后进入“更新”状态,删除那些标记成删除的邮件。
如果服务器端处于“确认”状态,则结束会话时服务器端部进入“更新”状态。
POP3具体工作原理:
1)客户端使用TCP协议连接邮件服务器的110端口;
2)客户端使用USER命令将邮箱的账号传给POP3服务器;
3)客户端使用PASS命令将邮箱的账号传给POP3服务器;
4)完成用户认证后,客户端使用STAT命令请求服务器返回邮箱的统计资料;
5)客户端使用LIST命令列出服务器里邮件数量;
6)客户端使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态;
7)客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。
(注:
客户端UA可以设定将邮件在邮件服务器上保留备份,而不将其删除。
)
3.2.2POP3的主要命令
使用POP3协议接收邮件的命令如表3.2所示:
表3.2POP3常用命令及用法
参数
状态
USER
Username
确认
用户身份确认是提供用户名
PASS
Password
用户身份确认是提供密码
APOP
Name,Digest
指定邮箱的字串和MD5摘要串
STAT
None
操作
请求服务器发回关于邮箱的统计资料
UIDL
Msg#
返回邮件的唯一标识符,POP3会话每个标识符唯一
LIST
返回邮件数量和每个邮件的大小
RETR
返回由参数标识的邮件的全部文本
DELE
服务器将由参数标识的邮件标记为删除,由QUIT执行
服务器将重置所有标记为删除的邮件,用于撤销DELE命令
TOP
服务器将返回由参数标识的邮件前n行内容,n必须是正整数
NOOP
服务器返回一个肯定的响应
更新
结束会话
四、实验步骤
实际电子邮件收发过程如图4.1所示:
图4.1电子邮件的收发过程
按照电子邮件收发模型的原理,搭建拓扑如图4.2所示,抓取数据包进行协议分析。
图4.2试验拓扑结构
图4.2的拓扑模型是在实验环境中,发件人和收件人使用的是同一台主机(其IP地址相同)。
发件人使用QQ邮箱客户端给收件人的163邮箱发送电子邮件,会先发送电子邮件到QQ邮件服务器,QQ服务器通过查找本服务器的记录然后将邮件发送给163邮箱服务器,其中这两步都是使用SMTP协议。
收件人接收邮件时,会将邮件从他的163服务器下载到本地的客户端,使用的是POP3协议。
客户端使用Outlookexpress邮件传输工具来发送和接收邮件。
图中所有的IP地址是根据抓取的数据包获得的。
4.1SMTP协议分析数据包
(替换下图)
发件人向QQ服务器发起会话建立TCP连接,如图4.2所示:
图4.2TCP连接的建立
QQ服务器发送响应,应答码220,表示服务器已准备就绪,如图4.3所示:
图4.3服务器准备就绪
主机向QQ服务器发送HELO命令,表示开始SMTP回话,如图4.4所示:
图4.4HELO命令
服务器端返回响应,应答码为250,表示请求建立的邮件服务会话已就绪,如图4.5所示:
图4.5应答码250
主机向QQ服务器发送AUTH命令,进行认证,如图4.6所示:
图4.6认证功能
服务器返回应答,应答码334,同时返回base64编码串,意思为password,如图4.7所示:
图4.7应答码334
主机发送用base64编码的用户名给服务器,如图4.8所示:
图4.8用户名
服务器发回响应,响应码为334,同时返回base64编码串,意识为password,如图4.9:
图4.9应答码334
主机发送用base64编码的密码给服务器,如图4.10所示:
图4.10发送密码
服务器端发送TCP确认,如图4.11所示:
图4.11服务端TCP确认
服务端返回码为235,表示认证成功可以发送邮件了,如图4.12所示:
图4.12返回码235
主机发送“MAILFORM:
”用来告诉服务器发送者的邮箱地址,如图4.13所示:
图4.13发送MAIL命令
服务器返回一个TCP确认,如图4.14所示:
图4.14TCP确认
服务器返回SMTP响应,应答码250,表示操作成功,服务器就绪,如图4.15所示:
图4.15应答码250
主机给服务器发送RCPTTO命令,通告收件人地址,如图4.16所示:
图4.16RCPTTO命令
服务器应答250,如图4.16的序列号19所示;
主机发送给服务器DATA命令,表示将会把邮件内容传送给服务器,如图4.17所示:
图4.17DATA命令包
服务器对DATA命令返回一个应答,应答码354,表示准备接受数据,如图4.18所示:
图4.18DATA应答
主机传送邮件正文及确认信息,序列号24则为服务器发送的TCP确认,对收到的数据进行确认;
序列号25显示的是正文信息;
如图4.19所示:
图4.19正文信息及确认
服务器返回SMTP响应,应答码250,表示操作成功,如图4.20所示。
到此一封邮件发送成功。
图4.20应答码250
主机用QUIT命令来结束连线,序列号31表示服务器返回TCP确认,如图4.21所示:
图4.21QUIT命令连线结束
服务器返回SMTP响应,应答码221,表示服务关闭,如图4.22所示:
图4.22应答码221
TCP会话的4次断开,如图4.23所示:
图4.23tcp四次断开
4.2POP3协议分析数据包
主机从163服务器上读取邮件时,首先向163服务器发送请求,建立TCP连接,服务端口110,如图4.24所示:
图4.24TCP三次会话
服务器发送一个POP3响应,进入确认状态,可以看到一个状态码和以<
结束的响应信息,如图4.25所示:
图4.25POP3响应
开始发给服务器的第一个指令,用于取得此服务器的功能选项菜单,如图4.26所示:
图4.26CAPA命令
如图4.27所示,序列号8是进入确认状态后,主机必须向服务器证明它的身份,那么主机就发送一个USER命令,输入用户名;
序列号9的服务器返回一个状态码OK,表示服务器接收客户端计算机的USER命令;
序列号10是主机发送PASS命令,明文发送密码。
序列号11是服务器验证主机的用户名和密码正确返回的消息,状态码为OK,同时还可以看到邮箱里信件的信息:
一封邮件,大小3762B。
5
总结
Internet上传送电子邮件是通过邮件服务器程序进行硬件管理并储存的。
与个人计算机不同,这些邮件服务器及其程序必须每天24小时不停地运行,否则就不能收发邮件了。
简单邮件传输协议SMTP(SimpleMailTransferProtocol)和邮局协议POP3(PostOfficeProtocol)是负责用客户机/服务器模式发送和检索电子邮件的协议。
用户计算机上运行的电子邮件客户机程序请求邮件服务器进行邮件传输,邮件服务器采用简单邮件传输协议标准。
很多邮件传输工具都遵守SMTP标准并用这个协议向邮件服务器发送邮件。
SMTP协议规定了邮件信息的具体格式和邮件的管理方式。
本实验根据电子邮件的传输过程,运用邮件传输工具Outlookexpress发送和接收邮件,通过抓包软件抓取协议数据包,详细分析了SMTP和POP3协议的工作原理。
SMTP使用服务端口25,是一种提供有效可靠的明文传送电子邮件协议。
POP3协议使用服务端口110,允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验九 利用wireshark分析smtp和pop3协议分析 实验 利用 wireshark 分析 smtp pop3 协议