Wireshark抓包分析SSL握手的过程

刚才用图和文字描述讲解了SSL协议的交互过程HTTPS协议--通过SSL协议实现安全保障的过程和原理

用Wireshark抓包进行详细的讲解。抓的是某机构腾讯课堂的首页。

(因为网页有变动,所以实际抓包抓到的内容与图片不符。但是图片中抓到的包是正确的,讲解的技术也是正确的。)

选择一个TLS的请求,右键--追踪流--TLS。

一、就能看到完整的SSL交互的过程:

61eea1dfabb19dc34647573478b47513.png

上面是TCP三次握手,三次握手之后就进入SSL握手的过程。

二、SSL握手过程

1.第一个SSL握手是客户端向服务器发起的Client Hello消息。

点开这个请求看下内容:

7a31e9d97535fe66020d051f5b0e47f2.png

可以看到第四层是TCP协议,源端口是随机的端口,目的端口是443。

SSL协议默认是基于TCP的443端口。HTTP默认是TCP的80端口。所以HTTPS默认是TCP的443端口。

TLS协议在四层之上。TLS协议里面是这样的类型:是一个握手协议,并且是个Client Hello。

支持TLS1.0,TLS1.2。

dd3d4f6b3c25579bba1ad80735904e72.png

TLS是SSL协议的一个版本。 SSL协议版本:SSLv3,TLS1.0,TLS1.2

客户端把自己所支持的TLS版本都列在了Client Hello里面。就跟我们的加密套件是一样的。

c3b8348342e912663f5fa0d722da8bd2.png
这个是当前客户端所支持的所有的加密套件

以上就是Client Hello里面所包括的一些重要的消息。

2.Sever开始回复客户端Server Hello了。点开这个请求可以看到:

45ccdaf0ee94df80af43fa79a5e1c419.png

客户端支持TLS1.0和TLS1.2,服务器从中选了一个共同都支持的版本:TLS1.2。

这是个Server Hello的握手类型。

aeb215d2958087996e80a7d2834e9818.png

选一个共同都支持的加密套件:

92ace83cb39cb2c7d26e96e96a886591.png

服务器从客户端发的消息里面,选了版本选了套件。都在Server Hello里面都告诉了客户端。

3.Server Hello之后,服务器发了一个证书。

93d8d9aeecc1a596c89e6d0468855961.png

点开可以看到:

472c8e4d9b5ce52896646751d7f0e971.png

在这个里面主要看的是证书。服务器可能有很多个证书。它会把这些证书都加上都发给客户端。

2287ac059065b80bfcccbaef2d537304.png

4.客户端拿到证书去做验证。验证完毕后生成一个本地的随机密码,并且把密码发给服务器。

13847e301698c831f2b36874a56033c6.png

告诉服务器,我后面的报文开始加密了。点开请求可以看到:

cabe3ca3108561e767ecd6fe847cca2f.png

里面可以看到:加密报文类型,会加密密钥。

这个是为了保证数据完整性的一个信息:

3cb0c5833481152250e26a7cdc28c089.png

从抓包内容来看,客户端发完之后,这个过程完成了。(抓包工具将交互的过程简化了,都放一起了。如果看分开的具体过程就是上篇文章图片画的过程。)

三、握手结束,后面就开始发送HTTP数据包了。

57a8b16a80b2fd4472ea226f5bbb5cef.png

可以看到这个HTTP数据包是加过密的:

d6b092042a4d173ecdb219d6116c99e4.png

http-over-tls意思是:是在tls基础上发的一个HTTP交互报文,是加密的。


公众号 清菡软件测试 首发,更多原创文章:清菡软件测试 190+ 原创文章,欢迎关注、交流,禁止第三方擅自转载。如有转载,请标明出处。

  • 3
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清菡软件测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值