HTTPS-思君如满月,日日减清辉

HTTP我们知道了,但是HTTPS我还不知道。
虽然我知道HTTPS怎么用,但是我不清楚HTTPS的流程是什么。
当我使用fiddler、charles、mitmporxy进行抓包的时候,如果是https的流量,都需要安装证书,这是为什么?
当我使用python访问https接口的时候,如果开着抓包,会有报错这是为什么?
https比http复杂在哪里?
如何使用wireshark分析https流量。
为什么socks5代理不需要安装证书?
Nginx开启ssl会话复用,能提升多少性能?
这一系列的问题困扰着我。
HTTPS应该被拿下。

我首先是看了图解HTTP,然后又看了老青菜的博客,https://laoqingcai.com/https/,我感觉我对HTTPS已经有了初步的认识,所以接下来我要详细的看一看,当然了如果遇到算法之类的我还是会跳过的,毕竟我不认为自己能够发明出一种类似于RSA的算法,但是理解算法是干什么的,这点智商我还是有的。

在这里插入图片描述

wireshark抓包实战,因为我抓到的是tls1.2所以就按照这个版本来分析。
在这里插入图片描述

三次握手之后开始ClientHello

1 Client Hello

此时为明文的
Random
Session ID
会话ID,如果有的话,表示Client希望使用会话的连接,即恢复会话。当服务端存在对应会话可以返回对应的值。
服务端可能返回同一个sessionid,也可能返回一个新的sessionid
Cipher Suites: 加密的方法列表

在这里插入图片描述

2 Server Hello

Cipher Suite
在这里插入图片描述

在这里插入图片描述

3 Server Certificate

返回证书的一些信息
Certificates

4 Server Key Exchange (HelloDone)

标志着ssl握手协商阶段的结束

5 client key exchange

这里面使用的是DH协商算法。
在这里插入图片描述

也就是指定ECDHE为密钥协商算法,所以这里Client只要传递premaster secret的协商参数,

6 change Cipher Spec

7 Encrypted Handshake Message

在这里插入图片描述
这次握手协商是否能够成功,主要以服务器是否能够正确解密该报文作为判断标准

8 change Cipher Spec

在这里插入图片描述

9 服务器也发送finished报文

10 application data(http)

服务器和客户端的finished报文交换完毕之后,ssl连接就算建立完成。当然,通信会收到ssl的保护。从此处开发进行应用层协议的通信,即发送http报文。

在这里插入图片描述
在这里插入图片描述

比如我抓取了和github.com进行交互的过程,如下:
但是这里使用的是tls1.3不太好理解。
在这里插入图片描述

11 application data

http响应
在这里插入图片描述

posted @   叶常落  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示