基于Wireshark验证网站口令认证传输方案

基于Wireshark验证网站口令认证传输方案

1.实验目的:

1.熟练掌握wireshark的使用方法

2.能够捕获网站登录的数据包并进行简单分析

3.理解口令认证过程中的网络监听威胁

4.理解通过网络热点上网的安全威胁

2.实验预习:

1.HTTP协议

2.基于用户名口令的身份认证原理:

基于口令的认证方式是较常用的一种技术。在最初阶段,用户首先在系统中注册自己的用户名和登录口令。系统将用户名和口令存储在内部数据库中,注意这个口令一般是长期有效的,因此也称为静态口令。当进行登录时,用户系统产生一个类似于时间戳的东西,把这个时间戳使用口令和固定的密码算法进行加密,连同用户名一同发送给业务平台,业务平台根据用户名查找用户口令进行解密,如果平台能恢复或接收到那个被加密的时间戳,则对解密结果进行比对,从而判断认证是否通过;如果业务平台不能获知被加密的时间戳,则解密后根据一定规则(如时间戳是否在有效范围内)判断认证是否通过。静态口令的应用案例随处可见,如本地登录Windows系统、网上博客、即时通信软件等。

3.实验内容:

1.电脑开启热点,捕获通过热点上网的手机上所输入的登录信息,分析口令认证明文传送数据。

2.电脑开启热点,捕获通过热点上网的手机上所输入的登录信息,分析口令的变换方法,并验证口令。

3.分析https保护的网站中的口令。

4.实验步骤:

(一)监听明文口令并进行验证

1.在电脑端开启热点,手机使用热点上网。可以再电脑端得到手机的ip地址。

2.在手机上通过浏览器访问网站A(自己选择,口令传输方式为明文即可。例如:www.lemonban.com),并输入用户名与口令进行登录。(用户名使用学号,口令可以任意输入),同时电脑端使用Wireshark进行捕包。

3.快速找到含有登录信息的数据包,指出登录信息并进行验证。通过抓包,我们可以快速的获取用户名与密码。

(二)监听变换后的口令并进行验证

1.在电脑端开启热点,手机使用热点上网。

2.在手机上通过浏览器访问网站B(自己选择,口令传输方式为变换即可,例如: http://test.lemonban.com/ningmengban/app/login/login.html),并输入用户名与口令进行登录。同时电脑端使用Wireshark进行捕包。

3.快速找到含有登录信息的数据包,指出变换后的登录信息,尝试进行具体变换方法的分析。为了知道网页对用户密码的加密方法,我们可以查看对应网站的源码。发现这里网站使用MD5加密,我们可以使用对应的工具网站对密码进行还原。如图,可以轻易的得知对应的密码原文。


(三)监听https网站口令(只使用电脑端即可)

1.通过浏览器访问使用具有用户登录界面的HTTPS方式进行连接的网站C(例如mail.besti.edu.cn,具体网站可自己选择)。

2.输入用户名与口令进行登录,同时启动Wireshark进行捕包。(用户名使用学号,口令可以任意输入)

3.电脑端停止Wireshark捕包。查看所捕获的数据包,分析与访问前两个网站数据包的区别。

通过抓包后发现,此网站没有抓到数据包,而抓到的是TCP与TLS数据包。这里我们主要介绍下TLS。

https中的TLS协议

1.简介:

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议.

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。

该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。

TLS协议为位于应用层与传输层之间,应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。

2.基于TLS的SSL握手过程:

1.客户端 发送 生成随机数(client random)和支持的加密方法给服务器

2.服务器 返回 双方使用的加密方法,使用的TLS版本号和一个随机数给客户端

3.服务器 给出 数字证书以及自身通过某种算法生成的参数到客户端

4.客户端 获取 服务器发送的pubkey 获取一个新的 pubkey发给服务器

5.服务器 返回 session ticket给客户端

3.分析Wireshake包


1.客户端发送 生成随机数(client random)和支持的加密方法 给 服务器
第一个握手包,因为是握手过程,密钥还没协商,这里还是使用明文传输,记录协议的数据载体就是明文的 SSL 握手协议。

2.服务器 返回 双方使用的加密方法,使用的tls版本号和一个随机数 给 客户端
加密套件(cipher suite):TLS+密钥交换算法+加密算法+认证算法

3.服务器 给出 数字证书以及自身通过某种算法生成的参数 到 客户端

4.client根据server返回值(随机数,加密套件)交换密钥

5.服务端收到这个报文后,会使用自己的私钥解开这个随机数。在这个阶段过后,服务端和客户端都有三个随机数:客户端随机数、服务端随机数和预备主密钥。在服务端收到了 Client Key Exchange 消息后,两端都按照相应的算法生成了主密钥,加密密钥交换完成。

6.后续分别通知对方,后续消息会加密后发送。

关于 Encryted Alert消息,警报消息经常只是客户端用来提示服务端 SSL 传输结束,对照抓包到的内容确实如此。所以这里只是 SSL 传输结束的一个信号。发出了 Encryted Alert 后客户端数据传输完毕,准备进入四次挥手断开 TCP 连接。

posted @ 2021-10-23 09:25  providence2320  阅读(1013)  评论(0编辑  收藏  举报