计算机网络之http03:HTTPS RSA握手解析
不同的秘钥交换算法,握手过程可能略有差别
- 上文对HTTPS四次握手的学习
SSL/TLS Secure Sockets Layer/Transport Layer Security 协议握手过程
四次通信:请求服务端公钥 2次 秘钥协商 2次




(1)ClientHello请求
客户端向服务端发送clientHello请求,请求秘钥,请求内容包括【cli支持的SSL/TLS版本号,cli生成的随机数c,cli支持的加密方式】
(2)serverhello
对ClientHello请求的回复,包括
1) 确认SSL/TLS版本号
2)服务端生成的随机数 s
3)确认密码套件
4)数字证书 (理解为s公钥的摘要用ca私钥加密+s公钥 )
(3)客户端回应
客户端会验证公钥的合法性,如果真实,
1)cli使用s公钥加密一个随机数
2)加密通信算法改变通知(以后加密通信)
3)之前的握手数据摘要 (没有公钥加密)
双方各自使用三个随机数生成通信秘钥
(4)服务端回应
1)加密通信算法改变通知
2)之前所有握手报文摘要
- 抓包看四次握手
请求百度

正常的抓包

(1). 第一次握手数据包

(2) 第二次握手



(3)第三次握手

(4)第四次握手

- 客户端验证证书过程


证书hash–>私钥签名
证书哈希==?== 公钥解密签名


4. DH密钥交换

5. RSA密钥交换缺点
不支持前向保密性

相关文章:
计算机网络之http03:HTTPS RSA握手解析
不同的秘钥交换算法,握手过程可能略有差别 上文对HTTPS四次握手的学习 SSL/TLS Secure Sockets Layer/Transport Layer Security 协议握手过程 四次通信:请求服务端公钥 2次 秘钥协商 2次 (1)ClientHello请求 客户端向服务端发送client…...
一款针对EF Core轻量级分表分库、读写分离的开源项目
更多开源项目请查看:一个专注推荐.Net开源项目的榜单 在项目开发中,如果数据量比较大,比如日志记录,我们往往会采用分表分库的方案;为了提升性能,把数据库查询与更新操作分开,这时候就要采用读写…...
Linux环境变量讲解
目录 环境变量 alias命令 type命令 变量分类 Linux最主要的全局环境变量 环境变量 变量是计算机系统用于保存可变数值的数据类型 在Linux中,一般变量都是大写,命令是小写 在Linux中,变量直接使用,不需要定义(更快…...
iptables和nftables的使用
文章目录前言iptable简介iptable命令使用iptables的四表五链nftables简介nftables命令的时候nftables与iptables的区别iptables-legacy和iptables-nft实例将指定protocol:ip:port的流量转发到本地指定端口前言 本文展示了,iptables和nftable命令的使用。 # 实验环…...
中小学信息学相关编程比赛清单及报名网站汇总(C++类)
1、NOI系列比赛(CSP-J CSP-S NOIP NOI APIO CTSC IOI ISIJ等) NOI官网 NOI全国青少年信息学奥林匹克竞赛https://www.noi.cn/ 2、蓝桥杯青少年创意编程大赛 https://www.lanqiaoqingshao.cn/home 3、中国电子协会考评中心...
06Makefile
Makefile 1、Makefile简介 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂…...
【C++】模板初阶
🍅讨厌废话,直接上车 ☃️1.泛型编程 void Swap(int& left, int& right) { int temp left; left right; right temp; } void Swap(double& left, double& right) { double temp left; left right; right temp; } void Swap(char&…...
vue+nodejs考研资料分享系统vscode - Visual Studio Code
前端技术:nodejsvueelementui,视图层其实质就是vue页面,通过编写vue页面从而展示在浏览器中,编写完成的vue页面要能够和控制器类进行交互,从而使得用户在点击网页进行操作时能够正常。 Express 框架于Node运行环境的Web框架, 目 …...
LeetCode_单周赛_332
6354. 找出数组的串联值 题意 将数组首尾元素接在一起,就是串联值。 串联之后删除,如果只剩下一个元素,加上这个元素即可 双指针,从首和尾向中间移动即可 code **注意:**用 long 没看题目用了 int wa了一发 clas…...
[LeetCode周赛复盘] 第 332 场周赛20230212
[LeetCode周赛复盘] 第 332 场周赛20230212 一、本周周赛总结二、 [Easy] 6354. 找出数组的串联值1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6355. 统计公平数对的数目1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6356. 子字符串异或查询1. 题目描述2. 思路分析3. 代…...
C++轻量级RPC库RpcCore
C轻量级的RPC库,可用于任何项目中,甚至单片机。 方便平台直接相互进行功能调用。 基于asio的实现 asio_net 也可用在esp32适用于ESP32/ESP8266的实现 esp_rpc 目前也有一些轻量的库,参考了protobuf(或者依赖它)&…...
Mysql的视图
视图的特点: 1.视图可以看做一个虚拟的表,本身是不存储数据的。 视图的本质可以看作是存储起来的select语句 2.视图中涉及到的表都统称为基表 3.针对视图多DML操作,会影响到对应基表中的数据。反之亦然 4.视图本身的删除,不会…...
2/12考试总结
时间安排 8:30–8:50 读题,T1 不知道是个啥,T2是个dp ,T3可能也是 dp 之类的。 8:50–9:30 T1,读了好几遍才理解了题意,对于部分分有爆搜。考虑正解,想到预处理后O(1) 查询,问题是如何由已知的信息得到所有…...
第三章虚拟机的克隆,快照,迁移删除
1.虚拟机的克隆 如果你已经安装了一台linux操作系统,你还想再更多的,没有必要再重新安装,你只需要克 隆就可以,看演示。 方式1,直接拷贝一份安装好的虚拟机文件,再用虚拟机打开这个文件方式2,使用vmware的…...
华为OD机试 - 任务总执行时长(Python)| 真题含思路
任务总执行时长 题目 任务编排服务负责对任务进行组合调度。 参与编排的任务又两种类型, 其中一种执行时长为taskA, 另一种执行时长为taskB。 任务一旦开始执行不能被打断,且任务可连续执行。 服务每次可以编排 num 个任务。 请编写一个方法,生成每次编排后的任务所有可…...
LeetCode 热题 C++ 114. 二叉树展开为链表
给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1…...
Spring的事务控制-基于AOP的声明式事务控制
Spring的事务控制-基于AOP的声明式事务控制 Spring事务编程概述 事务是开发中必不可少的东西,使用JDBC开发时,我们使用connection对事务进行控制,使用MyBatis时,我们使用SqlSession对事务进行控制,缺点就是ÿ…...
SSO(单点登陆)
Single Sign On 一处登陆、处处可用 0、前置概念: 1)、单点登录业务介绍 早期单一服务器,用户认证。 缺点:单点性能压力,无法扩展 分布式, SSO(single sign on)模式 解决 : 用户身份信息独…...
线程和QObjects
QObject的可重入性: QThread继承了QObject,它发出信号以指示线程开始或完成执行,并提供一些插槽。 QObjects可以在多个线程中使用发出调用其他线程中槽的信号,并将事件发布到在其他线程中“活动”的对象。这是可能的࿰…...
最新中文版FL Studio21水果软件下载安装图文教程
FL Studio是目前流行广泛使用人数最多音乐编曲制作软件,这款软件相信广大网友并不陌生,今天带来的是FL中文版本,所有的功能都能在线编辑,用户直接就能操作,同时因为是21水果是最新版,所以增加了新的功能&am…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
