1、实验目的
-
理解电子邮件系统基本结构
-
理解客户端和服务器端,以及服务器之间的通信
-
分析理解SMTP,POP3协议
2、实验环境
-
硬件要求:阿里云云主机ECS 一台。
-
软件要求:Linux/ Windows 操作系统
3、实验内容
3.1 使用邮件代理收发邮件
配置邮件用户代理(例如windows Outlook Express,linux 雷鸟软件等;可以使用系统自带,也可以自行下载。),实现本地撰写,收取自己的QQ邮件。
3.2 本地收发邮件
利用本地客户端撰写和发送QQ电子邮件。同时利用Wireshark抓包分析其通信过程和通信协议。
3.3 web邮件
利用浏览器登录QQ邮箱,撰写和发送QQ电子邮件。同时利用Wireshark抓包分析其通信过程和通信协议。
3.4 telnet收发邮件
利用telnet命令登陆qq邮件服务器,发送电子邮件。同时利用Wireshark抓包分析其通信过程和通信协议。
具体操作命令和端口查询自行网络资料解决。
4、实验结果与分析
-
需给出实验中相关命令、脚本或者代码以及运行截图;
-
对于运行结果和遇到的问题,需给出必要分析说明;
4.1 使用邮件代理收发邮件
在QQ邮箱网站中,你可以进行以下操作来启用POP3/IMAP/SMTP/Exchange/GardDAV服务。首先,登录QQ邮箱网站,然后点击账户设置。接下来,浏览设置页面,找到对应的服务选项,可以在POP3/IMAP/SMTP/Exchange/GardDAV服务中进行选择。一旦找到了所需的服务,点击开启服务。
图4-1-1 开启服务图
4.2 本地收发邮件
下载并安装Foxmail客户端。安装完成后,打开Foxmail并进行登录,输入账号和密码。成功登录后,进入Foxmail的主界面。在主界面上,找到设置按钮,点击它打开设置界面。在设置界面中,看到有关邮件安全的选项,其中包括SSL取消SSL选项。如图4-2-1所示。
图4-2-1 服务器设置图
首先,打开Wireshark软件,并选择WLAN作为抓包的网络接口。接着,点击开始抓包按钮,Wireshark开始捕获并记录网络数据包的流量信息。在此同时,打开本地的Foxmail客户端,并进行电子邮件的撰写和发送操作。相关内容如图4-2-3所示。
图4-2-2 发送邮件图
在过滤框中输入smtp,对抓取的数据进行过滤,如图4-2-4所示。
图4-2-3 smtp过滤图
对smtp进行追踪流,以此分析通信过程通信协议。
图4-2-4 追踪流数据图(一)
图4-2-5 追踪流数据图(二)
修改接受服务器类型,将其改为POP3,同时取消勾选SSL,如图4-2-6所示。
图4-2-6 修改服务器类型图
打开wireshark,在WLAN中进行抓包,在foxmail界面点击收取,进行收取邮件,抓取到数据后,在wireshark中过滤pop,分析通信协议与过程,如图4-2-7所示。
图4-2-7 pop过滤图
客户端和服务器建立连接之后,pop3服务器会向pop3客户端发送一条消息,通知客户端服务器已经准备好了,客户端开始进行认证阶段,如图4-2-8所示。
图4-2-8 建立连接图
使用STAT命令向服务器发送请求,以获取邮箱的统计信息,包括邮件总数和字节数。通过发送STAT命令,向服务器查询当前邮箱中的邮件数量以及邮件占用的存储空间大小。这个命令的返回结果将提供有关邮箱状态的重要信息。相关内容如图4-2-9所示。
图4-2-9 STAT图
通过使用LIST命令,可以列出每封邮件的字节数。在列出的结果中,左边是邮件的序号,右边则表示该邮件的大小信息。如图4-2-10所示。
图4-2-10 LIST图
使用UIDL命令可以获取邮件的唯一标识符。在POP3会话中,每个邮件都会有一个唯一的标识符,用于标识该邮件的身份和区别于其他邮件。相关的如图4-2-11所示。
图4-2-11 UIDL图
QUIT,退出连接,如图4-2-12所示。
图4-2-12 QUIT图
4.3 web邮件
在网页上打开qq邮箱,编辑邮件发送,由wireshark进行抓包,如图4-3-1所示。
图4-3-1 网页发送邮件图
在过滤框中输入tls,对抓取到的数据包进行筛选,如图4-3-2所示。
图4-3-2 tls过滤图
在TLS握手过程中,首先进行的是客户端发起的请求,称为Client Hello。在这一步中,客户端生成了一个随机字符串(session key),同时还包含了客户端支持的加密套件列表、随机数等信息。这个请求的目的是与服务器进行通信,并告知服务器客户端的加密能力和其他必要的参数。相关的如图4-3-3所示
图4-3-3 Client Hello图
在TLS握手过程中,服务器在收到客户端的Client Hello数据包后,根据客户端提供的加密套件列表进行选择,并生成一个随机字符串作为响应。这个响应称为Server Hello。服务器选择的加密套件将用于与客户端之间的加密通信,而生成的随机字符串则作为会话密钥的一部分,并返回给客户端作为后续握手过程的一部分。如图4-3-4所示。
图4-3-4 Server Hello图
在过滤器栏中输入 ssl
或 tls
,筛选显示与SSL/TLS相关的数据包。浏览捕获的数据包列表,找到与服务器证书相关的数据包。这通常是在TLS握手阶段的Certificate消息中。双击选中的数据包,Wireshark会在下方的详细信息窗格中显示该数据包的解析信息。在详细信息窗格中,展开 "Transport Layer Security" 部分,然后展开 "Handshake Protocol",找到 "Certificate" 项。点击 "Certificate" 项,Wireshark会显示服务器证书的相关信息,包括证书颁发者、主题、有效期、公钥等。如果需要查看证书的具体内容,可以进一步展开 "Certificate" 项,浏览各个字段的值。Certificate,返回服务器证书,该证书中含有一个公钥,用于身份验证和密钥协商,如图4-3-5和4-3-6所示。
图4-3-5 Certificate图
图4-3-6 Server Key Exchange图
4.4 telnet收发邮件
打开控制面板–>程序–> 程序和功能 –> 打开或关闭Windows功能,找到Telnet Client–>点击勾选–>确定来开启Telnet客户端,如图4-4-1所示。
图4-4-1 开启Telnet客户端图
如图4-4-2所示为通过win+R输入cmd输入telnet smtp.qq.com 25连接服务器
图4-4-2 连接服务器图
输入helo qq.com向服务器表明身份,如图4-4-3所示
图4-4-3 表明身份图
输入auth login如何输入自己的邮箱******@qq.com的Base64编码:******`接着输入自己的授权码****的Base64的编码:drgdrg接着输入mail from:*****@qq.com确定发送邮件的地址然后输入rcpt to:*******@qq.com确定接收邮件的地址(这里设计个人隐私以*替代,关于Base64的编码有专门的网站,大家可以搜一下)
如图4-4-4所示为通过Base64编码进入相关界面
图4-4-4 加密进入图
然后输入data进行编辑最后以.结束输入邮件如图4-4-5所示为发送邮件并收到邮件图
图4-4-5 发送并收取到邮件图