计算机网络之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…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
