浙江大学城市学院实验报告
文件下载:
1.CSDN
2.百度网盘,提取码: 0k8f
–来自百度网盘超级会员v4的分享
注意:
- 务请保存好各自的源代码及实验报告文档,已备后用。
- 请把实验报告和实验项目放在一个文件夹(如实验01)后打包为.rar压缩文件,并上传到BB平台。
- 压缩文件名为:学号_姓名_日期_大作业.rar,如32001234_姓名_20210618_大作业.rar
一、 实验目的:
- 通过使用Wireshark分析网络协议。
- 了解钉钉软件中认证、聊天、文件传输协议。
二、 实验内容原理实验结果与分析
1、选择钉钉使用模式(钉钉App或者PC客户端),合理配置网络环境。
【实验采用的网络拓扑图】
- 使用Windows10笔记本进行Wireshark抓包,并选择客户端钉钉,同时将笔记本置于手机热点下;
- 可以看到当前实验机器获得的ip为192.168.43.233;所以当前连接的AP站点ip为192.168.43.1
【实验结果与分析】
配置当前的ip以及微信所在的实验环境
2、分析钉钉登录认证方式。
【实验步骤】
- 因为不必要的ipv6信息传输干扰,所以先屏蔽了ipv6的信息
- 上图清楚地看到,我的电脑获得的ip是192.168.43.233,并且网关是192.168.43.1
- 此时,我的电脑正在发出DNS,域名查询的包。当我们拆开去解读消息的时候会发现他的query是去查询这个域名 https://www.dingtalk.com/。并且在之后DNS返回了查询到的IP。
- 当我打开完客户端,我的Wireshark抓到了这些包,看样子是在获取二维码和一些相关的信息。
- 当我打开手机APP扫码却登录时,我的Wireshark抓到了这些包,看样子是在登录确定账号的信息。
- 点击确认之后,从抓取的包里面也可以看出,双方在不停的发包并进行SSL加密传输,和一些相关的认证信息。
- 建立连接,并且获取一些好友队列的信息。
当我选择密码登录时:
与扫码大同小异,双方在进行握手后,双方在不停的发包并进行SSL加密传输
【实验结果与分析】
成功与服务器进行了连接,并且认证成功
3、分析钉钉好友聊天过程。
【实验步骤】
作为测试,发送了四条消息:
- 更改ip显示域名以获得更好的效果
握手协议,也是一次认证:
- 一共抓到了以下这些包,经过分析,可以确定此次信息传输是与之前DNS查询中查到一个服务器59.82.40.137进行了交互,并进行相应的筛选
- 前三个包是在进行TCP三步握手认证,由我的电脑向服务器发送SYN请求,服务器收到后发送SYN和ACK进行确定,最后从客户端向服务器发送ACK完成认证。
- 之后从第12个包开始,便一直在进行交互,不断的进行连接,传送完消息之后客户端的FIN断开连接请求,和之后恢复连接的ACK,(在发送fin之后,一定时间内,如果客户端和服务端还有数据交互,两者可以恢复连接而不需要再进行三步握手认证)
- 退出筛序模式后,发现在与get.sougou.com通讯后,会与203.119.217.37(另一个阿里云的服务器IP),猜测是测试时使用搜狗输入法时产生了数据,因此很好帮助我们定位钉钉数据发送的包位置
- 同时我们也知道了钉钉的聊天途中会切换新的服务器连接
4、分析钉钉群聊过程。
【实验步骤】
选择了群聊进行分析,一共发送了以下信息:
- 这次只抓到了203.119.217.31说明在此次群聊过程中只与一个服务器进行了通讯,并使用本地IP进行SSL加密传输
- 说明群聊时服务器发生了变化
- 期间观察到多次的握手,推测相隔一定时间后再发送信息都需要与服务器重新建立连接,服务器窗口开放时间较短
- 这是客户端向服务端提交数据和服务端向客户端发送的回应包;
- 可以看到传输的信息是进行加密之后的,且是一个TCP接着一个SSL包,而TCP内没有实际数据,数据存在于SSL包中加密传输。只有提交的data数组是可以明文可见的,还有服务端的回应中的code等信息是可见的
5、分析钉钉文件传输过程。
【实验步骤】
作为测试,发送了一个压缩文件:
- 在分析数据发现,在发送数据开始时会通过DNS获得发送文件服务器的IP(114.80.58.208,上海电信),然后与该服务器进行三次握手,然后发送文件,
- 其中的IP并非属于阿里云,推测是转存到一个与本地较近的云服务器,在使用时进行下载
- 由于文件较大,我们可以注意到,在一段时间的发送后,可以收到服务器的一个确认回应,显然这是由于文件分片较大,传输成功的几率小,进行的重传,直到成功;同时推测服务器使用的是滑动窗口协议,因此出现了错位的确认帧
- 期间也有本地发送的TLS包,推测是进行分段传输的断点
- 在传输结束后,本地发送了一个SSL给阿里服务器,同时收到回复,推测是完成了转存后向阿里服务器确认
- 之后是与阿里服务器进行数据交换,推测是关于文件的数据
6、总结钉钉中使用协议。
【实验结果与分析】
- 可以发现钉钉的聊天信息都进行了SSL加密进行传输,并且在选择服务器的时候会选择最近的服务器。
- 更容易发现的是,钉钉的聊天基于TCP协议,而当我把传送数据替换成文件或图片时,交互的服务器并没有发生大的改变,依旧是203.119.217.31或59.82.40.137,但上传文件的服务器变成了其他服务器。
- 而具体的与服务器交互方式无法抓到,推测并没有涉及HTTP
三、 本课程心得及建议
- 在动手实验的时候,遇到了很多的困难,但在自己的动手实践,和在不断的尝试中获取的知识来看,这是值得的。
- 在失败中,我收获了许多,巩固了一些基础知识,在复杂的包堆里面找到了正确的包,也学会了如何去过滤一些不需要的包,希望这门课之后会更加的广阔,也希望更多的同学可以收获宝贵的知识。