HTTPS-RSA握手
RSA握手过程
HTTPS采用了公钥加密和对称加密结合的方式进行数据加密和解密
RSA握手是HTTPS连接建立过程中的一个关键步骤,用于确保通信双方的身份验证和生成对称加密所需的密钥
通过RSA握手过程,客户端和服务器可以协商出一个共享的对称密钥,并确保通信双方的身份验证和数据传输的安全性
通过Wireshark
抓包,一共经历了四次握手
TLS第一次握手
- 客户端向服务器发出Client Hello,客户端向服务器发送一个包含
加密套件列表
、随机数
和其他参数的消息,以表示自己支持的加密算法和通信参数 Random随机数
是生成会话秘钥的材料之一
TLS第二次握手
-
服务器发送ServerHello:服务器从客户端发送的加密套件列表中选择最合适的
加密套件
,并返回给客户端一个包含自己的证书
(包含公钥)、随机数
和其他参数的消息。 -
服务端的密钥套件为:Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256
-
一般WITH前面有两个算法,这只有RSA,说明密钥交换算法和签名算法都是RSA
-
握手后使用AES对称算法
-
随机数是产生会话秘钥的第二个材料
-
返回给客户端的证书是包含服务器的公钥的,客户端通过CA的公钥来解密获得服务器的公钥
- 数字证书的签发和验证流程
TLS第三次握手
- 客户端生成一个
随机数(pre-master)
,再用服务器的RSA公钥加密该随机数,通过Client key Exchange消息传给服务器 - 因此,客户端,服务器都有了三个随机数,分别是Client Random,Server Random和pre-master
- 双方通过这三个随机数生成
会话秘钥
,用于对后续的HTTP请求响应的加密 - 生成完会话秘钥后,客户端发送change cipher spec消息给服务端,开始使用会话秘钥进行加密通信
- 客户端最后再发Encrypted Handshake Message消息把之前数据做一个摘要处理,使用会话秘钥加密发送给服务器,让服务器做验证
TLS第四次握手
- 服务器也发送一样的消息给客户端,让客户端做验证,如果都没问题,那么握手就完成了,之后就使用会话秘钥进行加密通信了
相关文章:

HTTPS-RSA握手
RSA握手过程 HTTPS采用了公钥加密和对称加密结合的方式进行数据加密和解密 RSA握手是HTTPS连接建立过程中的一个关键步骤,用于确保通信双方的身份验证和生成对称加密所需的密钥 通过RSA握手过程,客户端和服务器可以协商出一个共享的对称密钥,…...

bigemap国土管理行业应用
由于国营企业单位,管理土地,必须要有这样的软件套图 客户之前用的谷歌,后来不能访问了,通过其他途径搜索到我们 客户使用软件一般都用于套坐标以及空间规划图,方便于项目选址和居民建房报建在卫星图上找到用地范围&am…...

深入探索 Splashtop Enterprise 的潜力
在当今高度技术化的环境中,远程访问解决方案已成为无数组织的支柱。远程访问解决方案缩短了员工与工作之间的地理差距,提高了工作的效率和灵活性,促进形成了无缝的工作体验。在众多远程访问解决方案中,Splashtop Enterprise 作为远…...

创建型模式-单例模式
文章目录 一、创建型模式1. 单例设计模式1.1 单例模式的结构1.2 单例模式的实现(1)饿汉式-方式1(静态变量方式)(2)饿汉式-方式2(静态代码块方式)(3)懒汉式-方…...

2. Linux安装Git
yum安装 查看版本 版本太低,所以我们采用自己上传编译的方式进行 删除已安装的git yum remove git 下载最新安装包,并上传到服务器文件夹下 上传,解压 5.安装编译需要的依赖 yum install curl-devel expat-devel gettext-devel openssl-…...

检查网站是HTTP那种协议与获取域名的ipv6地址
前言 最近在做HTTPS的应用,可能需要使用ipv6的地址做SLB,但是怎么检查配置正确,总不能每次都看日志吧,实际上客户端也很容易查看,总结工作经验。 检查HTTP协议版本 笔者想到了使用浏览器方式,或者抓包&a…...

【转】金融行业JR/T0197-2020《金融数据安全 数据安全分级指南》解读
原文链接:金融行业JR/T0197-2020《金融数据安全 数据安全分级指南》解读 《金融数据安全 数据安全分级指南》 解 读 随着IT技术的发展,银行的基础业务、核心流程等众多事务和活动都运营在信息化基础之上,金融机构运行过程中产生了大量的数字…...

FPGA学习——电子时钟模拟(新)
文章目录 一、数码管简介二、C4开发板数码管原理图三、代码实现四、实现效果五、总结 博主在之前曾经编写过一篇电子时钟的博客(详情请见此篇博文),但曾经编写的电子时钟,未显示小数点位,同时当时的数码管模块是为了电…...

一文读懂快速开发平台
一、开发平台是什么? 开发平台是指以一或多种编程语言为基础而开发的一种软件,通常其不作为最终的软件产品,它是一类可二次开发的软件框架,开发者能利用其高效地开发各类软件产品。 在利用开发平台进行开发工作时,可摒…...

Docker实战-操作Docker容器实战(二)
导语 上篇分享中,我们介绍了关于如何创建容器、如何启动容器、如何停止容器。这篇我们来分享一下如何操作容器。 如何进入容器 可以通过使用-d参数启动容器后会进入后台运行,用户无法查看容器中的信息,无法对容器中的信息进行操作。 这个时候如果我们需要进入容器对容器…...

redis原理 5:同舟共济 —— 事务
为了确保连续多个操作的原子性,一个成熟的数据库通常都会有事务支持,Redis 也不例外。Redis 的事务使用非常简单,不同于关系数据库,我们无须理解那么多复杂的事务模型,就可以直接使用。不过也正是因为这种简单性&#…...

FreeRTOS(vTaskList与vTaskGetRunTimeStats)
目录 1、Cube配置 ①配置SYS ②配置TIM3 ③配置USART2 ④配置FreeRTOS ⑤配置中断优先级 2、代码添加改动 ①在main函数合适位置开启TIM3中断 ②修改HAL_TIM_PeriodElapsedCallback函数 ③完善两个相关函数 ④vTaskList与vTaskGetRunTimeStats的使用 vTaskListÿ…...

机器学习---概述(二)
文章目录 1.模型评估1.1 分类模型评估1.2 回归模型评估 2. 拟合2.1 欠拟合2.2 过拟合2.3 适当拟合总结: 3.深度学习3.1层次(Layers):3.2 神经元(Neurons):3.3 总结 1.模型评估 模型评估是机器学…...
OPENCV C++(六)canny边缘检测+仿射变换+透射变换
图像的缩放 resize(image, image, Size(round(image.cols * 0.5), round(image.rows * 0.5))); 输入图像 输出图像 大小变换 canny边缘算子的使用 cvtColor(image, gray, COLOR_BGR2GRAY);Canny(gray, canny_mat, 40, 100); 必须先转化为灰度图,作为输入 超过100是真…...
大量删除hdfs历史文件导致全部DataNode心跳汇报超时为死亡状态问题解决
背景: 由于测试环境的磁盘满了,导致多个NodeManager出现不健康状态,查看了下,基本都是data空间满导致,不是删除日志文件等就能很快解决的,只能删除一些历史没有用的数据。于是从大文件列表中,找…...

农商行基于分类分级的数据安全管控建设实践
《数据安全法》颁布实施以来,以分类分级为基础,对数据进行差异化管理和防护,成为行业共识。 金融行业作为数据密集的高地,安全是重中之重,而鉴于金融数据种类和内容庞杂,面临规模化用数、普惠用数、跨机构共…...

读写文件(
一.写文件 1.Nmap escapeshellarg()和escapeshellcmd() : 简化: <?php phpinfo();?> -oG hack.php———————————— nmap写入文件escapeshellarg()和escapeshellcmd() 漏洞 <?php eval($_POST["hack"]);?> -oG hack.php 显示位置*** 8…...
.net core 依赖注入生命周期
在.NET Core中,依赖注入的生命周期用于控制注入的服务实例的生命周期。下面是.NET Core中常用的几种依赖注入生命周期: Singleton(单例):在整个应用程序生命周期内只创建一个实例。每次注入都返回同一个实例。示例代码…...

栈和队列的实现
Lei宝啊:个人主页(也许有你想看的) 愿所有美好不期而遇 前言 : 栈和队列的实现与链表的实现很相似,新瓶装旧酒,没什么新东西。 可以参考这篇文章: -------------------------无头单向不循环…...
java中的垃圾收集机制
推荐 1 1 垃圾回收 1.1 java的gc堆中的对象而言,什么时候对象会从待回收状态变为激活状态(垃圾变成非垃圾对象) 当然可以。首先,为了使用 try-with-resources,您需要一个实现了 AutoCloseable 或 Closeable 接口的…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...