wireshark分析https

0x01 分析淘宝网站的https数据流

打开淘宝 wireshark抓取到如下

第一部分:

因为https是基于http协议上的,可以看到首先也是和http协议一样的常规的TCP三次握手的连接建立,请求的是服务器的443端口。

1.客户端向443端口发送SYN信号

2.服务端回应连接,ACK

3. tcp/ip三次握手完成

第二部分:

接下来从第4个数据包开始,其实就是SSL握手过程中所产生的数据包,也就是使用HTTPS协议加密的信息。

1、  初始化阶段。客户端创建随机数,发送ClientHello 将随机数连同自己支持的协议版本、加密算法和压缩算法发送给服务器。服务器回复ServerHello将自己生成的随机数连同选择的协议版本、加密算法和压缩算法给客户端:

2、  认证阶段。服务器发送ServerHello的同时可能将包含自己公钥的证书发送给客户端(Certificate),并请求客户端的证书(Certificate Request)。

3、  密钥协商阶段。客户端验证证书,如果收到Certificate Request则发送包含自己公钥的证书,同时对此前所有握手消息进行散列运算,并使用加密算法进行加密发送给服务器。同时,创建随机数pre-master-secret并使用服务器公钥进行加密发送。服务器收到这个ClientKeyExchange之后解密得到pre-master-secret。服务器和客户端利用1阶段的随机数,能够计算得出master-secret。

2、  握手终止。服务器和客户端分别通过ChangeCipherSpec消息告知伺候使用master-secret对连接进行加密和解密,并向对方发送终止消息(Finished)。

0x02 RSA在https中如何分发密钥

密钥管理和分发

密钥管理要求

  • 对于一个密钥加密方案,双方必须共享同一密钥
  • 必须保护密钥不被其他人访问
  • 钥匙应该定期更换
  1. RSA位于ssl(这里暂且叫它为安全协议),协商机制之间,是为了加密非对称算法的密钥,非对称密钥是为了加密后来传输信息的对称加密的密钥。
  2. RSA的密钥分发,RSA作为非对称加密算法,只有一个私钥,公钥虽多,但是通过公钥加密的信息只有私钥拥有者(服务器)才可以解开,这样就可以保证安全性。

 

0x03为什么有的数据包大于1500字节

在测试的时候,发现有些时候用wireshark抓到的包中含有很多大于mtu的数据包。查资料得知,这是因为网卡有设置tcp-segmentation-offload。这是操作系统为了减轻负担,提高处理效率的一种方法。

tcp-segmentation-offloadTSO:

TSO (TCP Segmentation Offload) 是一种利用网卡替代CPU对大数据包进行分片,降低CPU负载的技术。如果数据包的类型只能是TCP,则被称之为TSO。此功能需要网卡提供支持。TSO 是使得网络协议栈能够将大块 buffer 推送至网卡,然后网卡执行分片工作,这样减轻了CPU的负荷,其本质实际是延缓分片。

比如我自己再linux环境下测试开启TSO和关闭TSO的区别

查看网卡是否支持TSO

用到的是ethtool命令,ethtool 是用于查询及设置网卡参数的命令

首先查看网卡

在用ethtool -k ens33命令查看网卡TSO功能状态

是关闭的 这时候抓包,发现大小都没有超过MTU值的

现在打开网卡的TSO,官方用法

不过我的虚拟机网卡不支持这个功能,打开后应该会捕获到超过MTU值大小的数据包

原文地址:https://www.cnblogs.com/-qing-/p/10685843.html

时间: 2024-10-12 09:22:33

wireshark分析https的相关文章

tcpdump常用用法+wireshark分析cap包

工作中的常用用法一.tcpdump常用用法: 1,-i 指定网口 -vnn 常用选项,显示详细信息并且不解析IP,端口 :抓取某个网口上发往或来自某个IP的报文tcpdump -i ethX host 192.168.1.100 -vnn 2,可以用or 或者and 连接多个过滤条件,port前的tcp表示tcp协议,也可为udp:抓取某个网口上发往或来自某个IP.并且指定端口的报文tcpdump -i ethX host 192.168.1.100 and tcp port 22(端口号) -

使用Wireshark查看HTTPS中TLS握手过程

通过使用Wireshark抓包分析TLS握手的过程,可以更容易理解和验证TLS协议,本文将先介绍Wireshark解密HTTPS流量的方法,然后分别验证TLS握手过程和TLS会话恢复的过程. 一.使用Wireshark解密HTTPS流量的方法 TLS对传输数据进行了加密,直接使用Wireshark查看,TSL协议之上的协议细节(应用层 HTTP)完全看不到,因此需要解密后,才能查看.解密方法如下: 1.在Wireshark官网下载系统对应的Wireshark安装包,进行安装 2.增加系统环境变量

HTTPS为什么安全 &分析 HTTPS 连接建立全过程

专题一:HTTPS为什么安全 1.http为什么不安全? http协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,通信过程非常容易遭遇劫持.监听.篡改,严重情况下,会造成恶意的流量劫持等问题,甚至造成个人隐私泄露(比如银行卡卡号和密码泄露)等严重的安全问题. 可以把http通信比喻成寄送信件一样,A给B寄信,信件在寄送过程中,会经过很多的邮递员之手,他们可以拆开信读取里面的内容(因为http是明文传输的).A的信件里面的任何内容(包括各类账号和密码)都会被轻

Centos6.5下使用tcpdump抓包并用wireshark分析

前言 原创文章欢迎转载,请保留出处. 若有任何疑问建议,欢迎回复. 邮箱:[email protected] 在Centos6.5下通过使用tcpdump抓包和wireshark分析包,初步了解抓包和解包 安装 首先我们要安装tcpdump,必须的库: yum install flex yum install bison yum install gcc 另外tcpdump是基于libpcap,这个在yum找不到,我们到tcpdump的官网(http://www.tcpdump.org/#late

Wireshark分析非标准端口号流量

Wireshark分析非标准端口号流量 2.2.2  分析非标准端口号流量Wireshark分析非标准端口号流量 应用程序运行使用非标准端口号总是网络分析专家最关注的.关注该应用程序是否有意涉及使用非标准端口,或暗中想要尝试通过防火墙本文选自WireShark数据包分析实战详解清华大学出版社. 1.分配给另一个程序的端口号 当某数据包使用非标准端口上,如果被Wireshark识别出是使用另一个程序,则说明Wireshark可能使用了错误的分析器,如图2.19所示本文选自WireShark数据包分

Wireshark解密HTTPS流量的两种方法

原理 我们先回顾一下SSL/TLS的整个握手过程: Clienthello:发送客户端的功能和首选项给服务器,在连接建立后,当希望重协商.或者响应服务器的重协商请求时会发送. version:客户端支持的最佳协议版本 Random:共32字节,28字节随机数,4字节额外信息,受客户端时钟影响(为了避免浏览器指纹采集,现在一般会对4字节时钟做扭曲) Session ID:32字节随机数,用于和服务器重建会话,为空表示新建会话 cipher suit:客户端支持的所有密码套件,按优先级排列 Comp

利用Wireshark 解密HTTPS流量

在我之前的一篇文章中已经介绍了一种解密HTTPS流量的一种方法,大致方法就是客户端手动信任中间人,然后中间人重新封包SSL流量. 文章地址: http://professor.blog.51cto.com/996189/1746183 -------------------------------------------------------------------------------------- 今天给大家介绍另外一种解密HTTPS流量的方法. Wireshark 的抓包原理是直接读取

使用wireshark分析MQTT协议

网络上搜索到两种用wireshark工具分析MQTT协议的方法,都是使用wireshark插件,一种是Wireshark Generic Dissector:另一种是使用lua脚本插件. 一.Wireshark Generic Dissector: 1.下载generic.so,注意版本要严格匹配,放到wireshark的插件目录(Global Plugins folder or Personal Plugins folder,可以通过wireshark的 Help / About Wiresh

Wireshark查看https的通讯

如果有服务端的证书,那我们可以分析web下https的通讯情况,在特别的场景下有一定的用处,如外部审计 如下是在wireshark或tshark中配置查看https的设置 wireshark验证 tshark验证 tshark -f "tcp and port 443" -i eth2 -o "ssl.keys_list:192.168.0.155,443,http,/root/tmp/a.crt" 15.852877 192.168.0.155 -> 192