本文主要使用Wireshark对邮件客户端使用IMAP协议接收邮件的过程进行抓包分析并使用telnet命令进行简单操作。
1、IMAP简介
IMAP和POP3两个协议基本上是目前支持和使用最广泛的邮件接收协议,IMAP和POP3相比有着许多优点,参考wiki和后面的抓包结果进行分析,这里列出一些后面抓包的时候可以验证的优点:
-
支持连接和断开两种操作模式
和POP3协议在接收完邮件之后就和服务器断开连接不同,IMAP协议可以一直和服务器保持连接从而使得接收新邮件的延迟大大降低。
-
支持多个客户同时连接到一个邮箱
POP3协议假定邮箱当前的连接是唯一的连接。相反,IMAP4协议允许多个用户同时访问邮箱同时提供一种机制让客户能够感知其他当前连接到这个邮箱的用户所做的操作。
-
支持在服务器保留消息状态信息
通过使用在IMAP4协议中定义的标志客户端可以跟踪消息状态,例如邮件是否被读取,回复,或者删除。这些标识存储在服务器,所以多个客户在不同时间访问一个邮箱可以感知其他用户所做的操作。
-
支持在服务器上访问多个邮箱
IMAP4客户端可以在服务器上创建,重命名,或删除邮箱(通常以文件夹形式显现给用户)。支持多个邮箱还允许服务器提供对于共享和公共文件夹的访问。
-
支持访问消息中的MIME部分和部分获取。
几乎所有的Internet邮件都是以MIME格式传输的。MIME允许消息包含一个树型结构,这个树型结构的叶子节点都是单一内容类型而非叶子节点都是多块类型的组合。IMAP4协议允许客户端获取任何独立的MIME部分和获取信息的一部分或者全部。这些机制使得用户无需下载附件就可以浏览消息内容或者在获取内容的同时浏览。
2、抓包分析
MUA中的设置如下,同样不使用加密协议方便分析数据。
配置完成开始抓包之后发现邮箱大师有多线程并发收件的操作,这也算是利用了IMAP协议的能够允许多个客户端连接到同一个服务器的特点,但是显然不利于我们分析串行模式下单个连接收件的完整过程,不过也可以对比多个连接之间的差异。
由于建立IMAP通信连接必须要登录,所以我们只需要查看报文就可以知道一共并行发起了多少个连接,在这次的报文中一共发现了有三个LOGIN的请求报文,因此可以判断应该一共先后发起了三个连接ÿ