05.HTTPS的实现原理-HTTPS的握手流程(TLS1.2)

05.HTTPS的实现原理-HTTPS的握手流程(TLS1.2)

  • 简介
  • 1. TLS握手过程概述
  • 2. TLS握手过程细化
  • 3. 主密钥(对称密钥)生成过程
  • 4. 密码规范变更

简介

主要讲述了混合加密流程完成后,客户端和服务器如何共同获得相同的对称密钥,并通过该密钥进行数据的加密和解密。详细介绍了HTTPS的加密过程,并进一步阐述了TLS握手过程,包括客户端发送Client Hello请求给服务器,告知其支持的TLS版本、生成的随机数以及密码套件等信息,以便服务器根据这些信息与客户端协商并建立安全的连接。

1. TLS握手过程概述

TLS握手过程包括四次握手
1.客户端首先发送Client Hello请求。
2.服务器收到Client Hello后,发送Server Hello、Server Random、Certificate、Server Key Exchange、Server Hello Done等报文。
3.客户端收到服务器端的报文后,生成主密钥并加密后发送给服务器端。
4.服务器端收到客户端的加密数据后,用私钥解密,得到主密钥。
5.双方使用主密钥进行对称加密,完成数据传输。

在这里插入图片描述

2. TLS握手过程细化

在TLS1.2协议中,主密钥(对称密钥)由双方交换参数、协商算法各自生成。不再由客户端生成后,加密传输给服务端。

1.Client Hello包含TLS版本、随机数(Client Random)、密码套件(CipherSuites)等信息。
2.Server Hello确认收到Client Hello,并发送Server RandomECDHE密钥交换算法、Certificate、Server Key Exchange、Server Hello Done等报文。
3.Client收到服务器端的报文后,生成客户端参数(Client Key Exchange),并用服务器端的公钥加密后发送给服务器端。
4.服务器端收到客户端的加密数据后,用私钥解密,生成主密钥。与此同时,客户端也生了相同的主密钥。
5.客户端和服务器端分别用主密钥进行数据加密和解密。

3. 主密钥(对称密钥)生成过程

1.客户端验证完服务器端的合法性后,生成自己的客户端参数(Client Key Exchange),并用服务器端的公钥加密后发送给服务器端。
2.服务器端收到客户端的加密数据后,用私钥解密,得到客户端参数。
3.客户端和服务器端分别用两个参数(Client Key Exchange、Server Key Exchange),通过协商好的ECDHE算法生成预主密钥。然后预主密钥再次和两个随机数(Client Random、Server Random)进行ECDHE算法计算,生成主密钥
4.主密钥用于后续的数据加密和解密。

4. 密码规范变更

1.在生成主密钥后,客户端和服务器端改变密码规范,从非对称加密变为对称加密。
2.使用主密钥进行数据的加密和解密,提高安全性。

往期文章参考:
01.HTTPS的实现原理-HTTPS的概念
02.HTTPS的实现原理-HTTPS与HTTP的区别详解
03.HTTPS的实现原理-HTTPS的工作流程
04.HTTPS的实现原理-HTTPS的混合加密流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/495788.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel粘贴复制不完整的原因以及解决方法

在数据处理和分析的过程中,Excel无疑是不可或缺的工具。然而,在使用Excel进行复制粘贴操作时,有时会遇到粘贴不完整的情况,这可能会让人感到困惑和烦恼。本文将深入探讨Excel粘贴复制不完整的原因、提供解决方案,并给出…

数据中台从centos升级为国产操作系统后,资源增加字段时,提交报500错误

文章目录 背景一、步骤1.分析阶段2.查看nginx3.修改用户(也可以修改所有者权限) 背景 故障报错: nginx报错信息: 2024/12/19 15:25:31 [crit, 500299#0: *249 onen0 " /var/lib/nginx/tmp/cient body/0000000001" f…

在Windows11上编译C#的实现Mono的步骤

在Windows11上编译Mono的步骤 1、 在win11打开开发者模式,在更新和安全选项里,如下图: 2、下载并安装64位的cygwin, 下载网站:www.cygwin.com 3、 安装 Visual Studio 2015 or later 的社区版本。 4、 下载Mono的windows最新版本。 5、 在cmd.exe里运行下面的命令来安…

我的创作纪念日(五年)

慕然回首 平平无奇的周一早晨,收到来自csdn的提醒,创作纪念日五周年了,这也意味着我从事开发行业差不多有整整五年了,五年啊!你知道这五年我是怎么过的吗?一句Just do IT,我做it整整做了五年&am…

python+reportlab创建PDF文件

目录 字体导入 画布写入 创建画布对象 写入文本内容 写入图片内容 新增页 画线 表格 保存 模板写入 创建模板对象 段落及样式 表格及样式 画框 图片 页眉页脚 添加图形 构建pdf文件 reportlab库支持创建包含文本、图像、图形和表格的复杂PDF文档。 安装&…

人工智能ACA(七)——计算机视觉基础

一、自然语言处理基本介绍 1. 自然语言处理的定义 1-1 自然语言 人类使用的在社会生活中自然形成的语言 1-2 自然语言处理 目标是让计算机能够理解、解析、生成和处理人类的自然语言 包含自然语言理解和自然语言生成两部分组成 2. 自然语言处理的发展趋势 3.自然语言处理…

Ubuntu20.04 交叉编译Qt5.15.15 for rk3588

rk3588编译Qt搞了我大半年了,一直困惑特别鸣谢:qq1033878279的网友远程帮我编译演示了一遍。 一、vmware 安装基础工具 sudo apt install -y build-essential net-tools openssh-server vim openssl libssl-dev 二、vmware 下载 cmake和Qt源码 下载cm…

使用开源在线聊天工具Fiora轻松搭建个性化聊天平台在线交流

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:人工智能教程 文章目录 前言1.关于Fiora2.安装Docker3.本地部署Fiora4.使用Fiora5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime …

DDoS防护中的流量清洗与智能调度

DDoS防护中的流量清洗与智能调度有哪些好处 在数字化高度发展的今天,企业依赖于互联网进行业务运营,而网络安全威胁也随之增加。其中,DDoS(分布式拒绝服务)攻击是一种常见且破坏性极强的网络攻击手段。为了有效应对DDo…

“乡村探索者”:村旅游网站的移动应用开发

3.1 可行性分析 从三个不同的角度来分析,确保开发成功的前提是有可行性分析,只有进行提前分析,符合程序开发流程才不至于开发过程的中断。 3.1.1 技术可行性 在技术实现层次,分析了好几种技术实现方法,并且都有对应的成…

SpringBoot使用Validation校验参数

准备工作 引入相关依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency> 约束性注解(简单)说明 AssertFalse可以为null,如果不为null的话必…

Websocket客户端从Openai Realtime api Sever只收到部分数据问题分析

目录 背景 分析 解决方案 背景 正常情况下&#xff0c;会从Openai Realtime api Sever收到正常的json数据,但是当返回音频数据时&#xff0c;总会返回非json数据。这是什么问题呢&#xff1f; 分析 期望的完整响应数据如下&#xff1a; {"session": {"inp…

dockerfile文档编写(1):基础命令

目录 Modelscope-agentARGFROMWORKDIRCOPYRUNENVCMD run_loopy Modelscope-agent ARG BASE_IMAGEregistry.cn-beijing.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.1.2-tf2.14.0-1.12.0FROM $BASE_IMAGEWORKDIR /home/workspaceCOPY . /hom…

Redis-十大数据类型

Reids数据类型指的是value的类型&#xff0c;key都是字符串 redis-server:启动redis服务 redis-cli:进入redis交互式终端 常用的key的操作 redis的命令和参数不区分大小写 &#xff0c;key和value区分 查看当前库所有的key keys * 判断某个key是否存在 exists key 查看key是什…

数据结构之栈,队列,树

目录 一.栈 1.栈的概念及结构 2.栈的实现 3.实现讲解 1.初始化栈 2.销毁栈 3.压栈 4.出栈 5.返回栈顶元素 6.返回栈内元素个数 7.判断栈内是否为空 二.队列 1.队列的概念及结构 2.队列的实现 3.实现讲解 1.初始化队列 2.销毁队列 3.单个成员入队列 4.单个成员…

(六)循环神经网络_基本的RNN

一、提出背景 前馈神经网络不考虑数据之间的关联性&#xff0c;网络的输出只和当前时刻网络的输入相关。然而&#xff0c;现实问题中存在着很多序列型的数据&#xff08;文本、语音以及视频等&#xff09;。 例如&#xff1a;室外的温度是随着气候的变化而周期性的变化的&…

React引入Echart水球图

在搭建React项目时候&#xff0c;遇到了Echart官方文档中没有的水球图&#xff0c;此时该如何配置并将它显示到项目中呢&#xff1f; 目录 一、拓展网站 二、安装 三、React中引入 1、在components文件夹下新建一个组件 2、在组件中引入 3、使用水波球组件 一、拓展网站 …

微软edge浏览器 v131.0.2903.99便携版

前言 Microsoft Edge浏览器是个新浏览器&#xff0c;它用起来很简单&#xff0c;界面也很清爽。这个浏览器功能特别多&#xff0c;里面还带了微软的小助手Contana&#xff0c;能帮用户做不少贴心的事儿。它支持安装各种小工具&#xff08;插件&#xff09;&#xff0c;还能在网…

深度学习中batch_size

Batch size调整和epoch/iteration的关系 训练数据集总共有1000个样本。若batch_size10&#xff0c;那么训练完全体样本集需要100次迭代&#xff0c;1次epoch。 训练样本10000条&#xff0c;batchsize设置为20&#xff0c;将所有的训练样本在同一个模型中训练5遍&#xff0c;则…

使用“NodeMCU”、“红外模块”实现空调控制

项目思路 空调遥控器之所以能够实现对空调的控制&#xff0c;是因为它能够向空调发射出特定的红外信号。从理论上来说&#xff0c;任何能够发射出这种相同红外信号的红外发射器&#xff0c;都可以充当空调遥控器&#xff08;这也正是手机能够控制多种不同品牌空调的原因所在&a…