当前位置: 首页 > news >正文

[openSSL]TLS 1.3握手分析

文章目录

  • 前言
  • 一、ECDHE密钥交换
  • 二、TLS单向身份认证
  • 三、TLS双向身份认证


前言

关于TLS握手网上资料很多,但是有一些写的很不清楚,导致学习时对概念和流程出现混淆,以下是我觉得写得比较清晰和准确的供学习参考。
浅析 TLS(ECDHE)协议的握手流程(图解)
图解ECDHE密钥交换算法
TLS原理与实践(三)tls1.3
以访问百度为例的TLS1.3握手详解

接下来针对ECDHE密钥交换、单向身份认证、双向身份认证来进行分析。注意这3个只是完整TLS握手流程中的一部分。

一、ECDHE密钥交换

ECDHE密钥交换流程中,每一次的流程,客户端和服务端都会临时生成ECDHE私钥和公钥。

注意ECDHE私钥和公钥并不是客户端或者服务器的私钥和公钥,两个概念要区分开。ECDHE私钥和公钥是每次会话都要重新生成的
在这里插入图片描述

  1. ECDHE密钥交换的步骤即是客户端获得服务器随机数和服务器ECDHE公钥;服务器获得了客户端随机数和客户端ECDHE公钥。(密钥的生成可以看链接中的文章)
  2. 这样双方都有了己方的ECDHE私钥和对端的ECHDE公钥,便能够生成预主密钥。
  3. 之后根据两方的随机数以及预主密钥来生成对称密钥。

二、TLS单向身份认证

在这里插入图片描述
单向认证指的是客户端对于服务端的身份认证。

  1. 服务器向客户端发送经过CA机构签名的证书,客户端收到后会使用系统预置的CA根证书来验证该证书的有效行。
  2. 当验证有效,那么客户端会提取出服务器的证书文件,其中包含了服务器的公钥。
  3. 服务器使用私钥对一段消息进行签名,之后发送给客户端,客户端使用提取出的服务器公钥进行验证,从而确认服务端的身份。

验证的主要原理是:一、使用CA根证书来验证服务器证书的有效行;二、使用服务器公钥来验证对方是持有了服务器私钥的,以此确认对方的身份。

三、TLS双向身份认证

双向认证即是既需要认证服务端,也需要对客户端进行认证。认证的基本流程和单向认证是类似的。
在这里插入图片描述

相关文章:

[openSSL]TLS 1.3握手分析

文章目录 前言一、ECDHE密钥交换二、TLS单向身份认证三、TLS双向身份认证 前言 关于TLS握手网上资料很多,但是有一些写的很不清楚,导致学习时对概念和流程出现混淆,以下是我觉得写得比较清晰和准确的供学习参考。 浅析 TLS(ECDHE…...

无人机之螺旋桨的安装与维护

一、安装:正确安装桨叶至关重要。请确保顺时针旋转的桨叶安装在对应的电机上,并使逆时针旋转的桨叶安装在相应的电机上。否则,无人机可能无法正常飞行或失去控制。 二、维护:为了确保无人机的安全及长久使用,请定期检…...

手机设备IP地址切换:方法、应用与注意事项

在当今数字化时代,手机已成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐,手机都扮演着重要角色。然而,随着网络环境的日益复杂,有时我们需要切换手机设备的IP地址以满足特定的需求,如保护隐私、绕过地…...

华为HCIP证书好考吗?详解HCIP证书考试难易程度及备考策略!

华为认证体系主要分为三个层次:HCIA(Huawei Certified ICT Associate),HCIP(Huawei Certified ICT Professional)和HCIE(Huawei Certified Internetwork Expert)。作为中级认证,HCIP证书主要面向具备一定技术基础和项目实践能力的专业人士。在…...

《SPSS零基础入门教程》学习笔记——05.模型入门

文章目录 5.1 回归模型5.2 分类模型5.3 降维和刻度模型5.4 生存分析和时间序列模型 5.1 回归模型 线性回归(分析 -> 回归 -> 线性)曲线估计(分析 -> 回归 -> 曲线估计) 二元Logistic回归(分析 -> 回归…...

如何用不到一分钟的时间将Excel电子表格转换为应用程序

我们大多数人对电子表格又爱又恨。当企业需要分析数据、为决策过程提供信息并可视化信息时,Excel和Google Sheets是首选。这些文档非常容易创建,它们帮助我们以直接的方式构建相关的想法和适用的数据。除此之外,事情可能会变得一团糟。 对于…...

WordPress 中 cURL 请求出现 504 网关超时错误的解决方法

错误原因 504网关超时错误通常发生在服务器作为网关或代理,不能在规定的时间内得到响应时。在WordPress中,这可能是因为目标服务器响应过慢,或请求的队列过长导致的。 解决方案 首先,您应该检查您的cURL请求是否设置了一个合理的…...

事件和委托的区别

在C#中,事件(Event)和委托(Delegate)是紧密相关但具有不同含义的概念。以下是它们的主要区别: 委托(Delegate): 委托是一种类型,它表示一个方法的签名(即方法…...

低功耗蓝牙协议栈如何学习?

目录 1. 基础知识 1.1 了解BLE基本概念 1.2 阅读BLE规范 2. 实践和开发工具 2.1 使用开发板 2.2 安装开发环境 3. 学习资源 3.1 官方文档和示例 3.2 在线课程和教程 4. 实践项目 4.1 简单项目 4.2 复杂项目 5. 深入理解协议栈 5.1 分析协议栈 5.2 调试和分析 6…...

ROS 2中,CMakeList.txt常见语法

在ROS 2中,CMakeList.txt 文件扮演着配置和管理构建过程的重要角色。这个文件遵循CMake的语法,用于定义如何编译和链接源代码。下面是一些在ROS 2项目CMakeList.txt文件中常见的语法和用法。 1. 基本结构和命令 cmake_minimum_required(VERSION )&…...

使用 prefetchComponents 进行组件预取

title: 使用 prefetchComponents 进行组件预取 date: 2024/8/17 updated: 2024/8/17 author: cmdragon excerpt: 摘要:本文介绍Nuxt.js中的prefetchComponents功能,用于预取组件以提高用户体验。通过在客户端后台下载和缓存组件,确保在用户…...

『 C++ 』IO流

文章目录 IO流概述iostream 的标准对象C流和C标准库I/O函数的同步 sync_with_stdiofstream 文件流文件流的打开标志二进制读写二进制读写的浅拷贝问题文本读写 字符串流注意 IO流概述 流是指数据的有序传输序列,路表示数据从一个地方流向另一个地方的过程,流可以是输入流也可以…...

enhanced Input Action IA_Look中Action value引脚没有分割结构体引脚的选项

UE5系列文章目录 文章目录 UE5系列文章目录前言二、使用步骤解决办法 前言 据说,unreal engine5中准备废弃“项目设置”中“输入”,操作映射,轴映射。取而代之的是: 使用增强的输入动作(Enhanced Input Actions&#…...

C# NetworkStream、ConcurrentDictionary、Socket类、SerialPort、局域网IP 和广域网IP

一、NetworkStream 什么是NetworkStream? NetworkStream 是 .NET Framework 中用于在网络上进行数据传输的流类。它属于System.Net.Sockets 命名空间,并提供了通过网络连接进行读写操作的功能。NetworkStream 主要用于处理从网络套接字(Soc…...

大模型--学习范式

1. 自监督学习(Self-Supervised Learning) 概念:自监督学习是一种特殊形式的监督学习,其中标签不是由人工标注的,而是从输入数据本身自动生成的。模型利用这些自动生成的标签进行训练。自监督学习通常用于预训练阶段&…...

Hadoop-yarn-unauthorized 未授权访问漏洞

一、漏洞描述: Hadoop是一款由Apache基金会推出的分布式系统框架,它通过著名的 MapReduce 算法进行分布式处理,Yarn是Hadoop集群的资源管理系统。YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过…...

工作流调度系统(DolphinScheduler、Azkaban、Airflow、Oozie 和 XXL-JOB)

文章目录 1. DolphinScheduler1.1 DolphinScheduler介绍1.2 DolphinScheduler优点 2. Azkaban2.1 Azkaban介绍2.2 Azkaban优点 3. Airflow3.1 Airflow介绍3.1 Airflow优点 4. Oozie4.1 Oozie 介绍4.2 Oozie 优点 5. XXL-JOB5.1 XXL-JOB介绍5.2 XXL-JOB优点 6. 总结 1. DolphinS…...

PyTorch 基础学习(5)- 神经网络

系列文章: PyTorch 基础学习(1) - 快速入门 PyTorch 基础学习(2)- 张量 Tensors PyTorch 基础学习(3) - 张量的数学操作 PyTorch 基础学习(4)- 张量的类型 PyTorch 基础学…...

CI/CD 自动化:最大限度地提高极狐GitLab 群组的“部署冻结”影响

极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…...

单元训练10:定时器实现秒表功能-数组方式

蓝桥杯 小蜜蜂 单元训练10:定时器实现秒表功能-数组方式 /** Description:* Author: fdzhang* Email: zfdcqq.com* Date: 2024-08-15 21:58:53* LastEditTime: 2024-08-16 19:07:27* LastEditors: fdzhang*/#include "stc15f2k60s2.h"#define LED(x) …...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 ​…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...