《计算机网络—自顶向下方法》 第八章Wireshark实验:SSL

2023-05-16

实验描述:

在本实验中,我们将研究安全套接层(SSL)协议,我们将会重点关注通过 TCP 连接发送的 SSL 记录。我们将会通过您的主机和电子商务服务器发送的 SSL 记录 的跟踪来实现。 我们将研究各种 SSL记录类型以及 SSL 消息中的字段。您可能会需要重新查看课本中的 8.6节。


实验过程:

1. 在 SSL 会话中抓包
  • 第一步是在 SSL会话中捕获数据包。要做这一步,您应该去你最喜欢电子商务网站开始购买物品(但是请勿真的购买)。使用 Wireshark捕获数据包后,应设置过滤器,使其仅显示包含主机发送和接收的 SSL记录的以太网帧。 (SSL记录就是 SSL消息)您应该获得如下屏幕截图所示的内容。

我这里访问的是淘宝,其实只要访问ssl加密的网站都可以(也就是以https开头的网站)。
在这里插入图片描述

2. 分析抓包结果

您使用的 Wireshark界面应该仅仅显示含有 SSL记录的以太网帧。建议您记住:每个以太网帧可能包含一个或多个的 SSL记录,这点很重要。(这与 HTTP消息不 同,每个以太网帧包含一个完整的 HTTP消息或者仅仅包含 HTTP消息的一部分) 因此,一个SSL记录可能会被多个以太网承载

回答问题:

  1. 对于前 8个以太网帧,请分别指出每一个帧的来源(客户端和服务器),确定每个帧包含的SSL记录的数量,并且列出包含SSL记录的类型。绘制客户端和服务器含有箭头指向的时序图。

答:
帧的来源直接可以通过SourceDestination可以看出,每个帧包含的SSL记录的数量可以在每个帧的Transport Layer Security可以看到,SSL记录的类型可以从Info看出。
在这里插入图片描述
时序图可以直接看WireShark自己绘制的,点击统计 -> 流量图 -> 限制显示过滤器
在这里插入图片描述

客户端发出请求 (ClientHello) 记录(ClientHello Record:) :
2. 每个 SSL记录都以相同的三个字段(可能具有不同的值)开头。 其中一个 字段是“内容类型”,长度为一个字节。 请列出所有三个字段及其长度。

答:Content Type字段为1字节,Version字段为2字节,Length字段为2字节:
在这里插入图片描述

  1. 展开 ClientHello记录(如果您的跟踪包含多个 ClientHello记录,请展开包 含第一个记录的以太网帧),内容类型的值是多少?

答:如上图:Content Type: Handshake(22)

  1. ClientHello记录是否包含随机数(也称为“挑战码”( challenge))? 如果是 这样,十六进制的挑战码值是多少?

答:包含,也就是下面的Random,太长了,就不写出来了。
在这里插入图片描述

  1. ClientHello记录是否通知了它所支持密码加密套件(suite)?如果是这样, 请在第一个密码套件, 分别指出非对称密钥加密算法,对称密钥加密算法,哈希算法分别都是什么?

答:
在这里插入图片描述
以下为别人总结的知识点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

服务器回应(ServerHello) 记录 (ServerHello Record):
6. 找到 ServerHello SSL记录。 此记录是否指定了之前的密码套件之一? 选择的密码套件中有哪些算法?

答:指定了哈希加密算法(SHA哈希函数)。
在这里插入图片描述

  1. 此记录是否包含随机数?如果有,它有多长?SSL中客户端和服务器段随机数用来干什么?

答:
包含,有32字节,也就是用64个16进制数来表示。
多次随机数生成为未来生成对话密钥提高安全性能。
在这里插入图片描述

  1. 此记录是否包含会话 ID? 会话 ID的目的是什么?

答:包含(有的可能不会包含,也就是可以有也可以没有)
目的:用一定时间内端口连接快速恢复连接过程。
在这里插入图片描述

  1. 此记录是否包含证书,或者证书是否包含在单独的记录中。 证书是否适合一个单独的以太网帧传输?

答:此记录不包含证书,但是可以看到后面的一个Server Hello是包含证书的,而且包含在单独的记录内。
适合在一个单独的以太网帧传输。
在这里插入图片描述

客户端密钥交换记录(Client Key Exchange Record):
10. 找到客户端密钥交换记录。 此记录是否包含前主密钥(pre-master secret)? 这个前主密钥用于什么? 前主密钥加密了吗? 如果是这样,为什么? 加密的前主密钥有多长?

答:1)包含
2)
3)使用EC Diffie-Hellman(ECDH加密算法)进行加密传输,使用的是服务器公钥加密,用以给服务器让服务器用私钥解密并且使用前面两个hello过程的随机数生成本次的会话加密密钥。
4)32个字节
在这里插入图片描述

由客户端发送编码改变记录和加密握手记录:
11. 编码改变记录目的是什么?在您的跟踪中本记录有多少字节。

答:告诉服务器已经计算好加密密钥,以后将会用商定的加密方式和密钥加密传输了,在我的跟踪中该记录有6个字节。
在这里插入图片描述

  1. 在加密的握手记录中,什么是加密的? 为什么?

答:消息校验码是加密的,这个校验码是包含之前所有连接消息的摘要加密格式,只有服务器可以解开,因为在建立连接中,存在可能连接消息被侦听和更改的情况,因此还需要进行信息摘要计算和加密传输,判断是否存在异常,如果异常,将会直接关闭连接。

  1. 服务器是否还向客户端发送更改编码记录和加密的握手记录? 这些记录与客户发送的记录有何不同?

答:如下可以看出,服务器向客户发了。没有啥不同,加密握手记录中同样是包含之前所有连接消息摘要的加密形式,用以供客户端解密,判断是否存在异常选择处理。
在这里插入图片描述

应用数据(Application Data )
14. 如何加密应用程序数据? 包含应用程序数据的记录是否包含消息认证码 MAC? Wireshark是否区分加密的应用程序数据和消息认证码 MAC?

答:使用本次对话协商和交换好对称加密密钥应用程序数据,这个数据里同时包括消息本身和消息认证码,所以比消息本身要长,但是加密过,所以无法区分。
在这里插入图片描述

  1. 请您指出和解释您在跟踪中发现的任何其他内容。

答:Application Data报文中,没有发现其他内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《计算机网络—自顶向下方法》 第八章Wireshark实验:SSL 的相关文章

  • 如何将一段字符串在word中,自动删除换行,两两之间增加空格键

    我们在拉取十六进制数据分析时 xff0c 经常遇到对方只给一条长长的字符串 xff0c 当然 xff0c 我们可以通过代码的方式进行空格添加 xff0c 方便阅读 xff0c 但是有时候身边没有编译工具或者流程复杂 xff0c 介绍一个用w
  • Python学习第5天——洛谷刷题(顺序结构)、循环

    Python学习第5天 1 洛谷刷题1 1 顺序结构1 2 高精度 2 循环2 1 while循环2 2 for循环2 3 range xff08 xff09 函数2 4 用for循环绘图练习2 4 1 绘制同心圆2 4 2 绘制棋盘格 1
  • 如何定义字符串

    如何定义字符串 一维和二维的都可以 xff1b 一维的情况如下 xff1a 1 xff0c char string0 10 2 xff0c char string1 61 34 prison break 34 3 xff0c char st
  • static全局变量与普通的全局变量的区别?

    1 static全局变量与普通的全局变量有什么区别 xff1f static局部变量和普通局部变量有什么区别 xff1f static函数与普通函数有什么区别 xff1f 答 xff1a 全局变量 外部变量 的说明之前再冠以static 就
  • 动态存储方式和静态存储方式

    从变量的作用域的角度来观察 xff0c 变量可以分为全局变量 和局部变量 xff1b 全局变量都是存放在静态存储区中的 因此它们的生存期是固定的 xff0c 存在于程序的整个运行过程 局部变量 xff0c 如果不专门声明存储类别 xff0c
  • c语言中的return 0有什么用?

    return 0是正常退出 xff0c return 非零是异常退出 xff0c 这是返回给控制台的 xff0c 不在编的程序的控制范围内 xff0c 是给操作系统识别的 xff0c 对你的程序无影响 如果是C中 xff0c 定义void
  • JAVA代码实现字符串匹配(一)——BF、KMP

    话不多说 xff0c 直接进入主题 xff1a 题目描述 xff1a 给定两个字符串text和pattern xff0c 请你在text字符串中找出pattern字符串出现的第一个位置 xff08 下标从0开始 xff09 xff0c 如果
  • pwntools, terminal =‘tmux‘ 报错

    pwntools terminal 61 tmux 报错 Traceback most recent call last File exp py line 4 in gdb attach File home pwn pwn lib pyth
  • 更改手动导入的wsl的默认登录用户

    导入了一个wsl后 xff0c 每次登录都是root用户 xff0c 这个就有点不太好 网上的教程都是说在ps里用分发版的对应exe文件来设置默认用户 xff0c 但是导入的这个wsl我没找到这个exe 找了半天然后看了微软官方的教程 xf
  • v8安装fetch不上

    大佬方案 xff1a 白嫖github action 感谢大佬
  • pwnabletw-babystack

    BabyStack 思路 危险函数 xff0c strcpy 在copy的时候strcpy看似没有问题 xff0c 但是由于src的内容并没有清空 xff0c 还保存着被销毁栈的原有数据 xff0c 而strcpy是根据 34 x00 34
  • vmware win7虚拟机安装vmtools坑

    win7镜像下载 要下带SP1这个记号的 xff0c 表示有service pack 1这个补丁的 一定一定记得 xff0c 不然vmtools装不上 补丁 vmtools安装期间有很多驱动安不上的话 xff0c 首先 xff0c 安装一个
  • Python学习第10天——GUI初步

    Python学习第10天 1 多个库2 所写的代码 1 多个库 图形开发界面的库 Tkinter xff1a Tkinter 模块 Tk 接口 是 Python 的标准 Tk GUI 工具包的接口 Tk 和 Tkinter 可以在大多数的
  • IO扩展芯片PCF8574的中断引脚的理解

    The PCF8574 device provides an open drain output INT that can be connected to the interrupt input of a microcontroller A
  • java中的字符转换为数字 十进制转为二进制

    java中的字符转整数 span class token comment 方式1 span span class token keyword char span c span class token operator 61 span spa
  • xshell登录 安卓手机

    局域网远程连接手机 通过ssh登录到手机 Termux安装Termux安装openssh启动sshd服务配置登录密钥方法1方法2 手机查看当前用户名手机查看当前ip电脑cmd ssh到手机电脑xshell连接到ssh手机 通过ssh登录到手
  • vscode插件之Linux相关插件

    Linux相关插件 1 Remote SSH 远程连接插件2 shell format 代码格式化工具3 shellman 代码语法提示4 Linux ansible 语法提示5 皮肤设置5 1 Dracula Official5 2 ta
  • linux-优化 PS1

    PS1 记录 span class token builtin class name export span span class token assign left variable span class token environmen
  • cmd 设置 路由 route

    查询路由 route print 删除单条路由 route delete span class token number 192 168 span 4 0 span class token punctuation span 网络地址 spa
  • samba 共享文件 Linux 为共享端 windows 为客户端

    1 安装samba yum span class token parameter variable y span span class token function install span samba 2 创建新用户 创建共享目录 配置s

随机推荐