tls协议

article/2025/10/17 0:51:33

tls

  • 前言
  • 一、TLS 协议的组成
  • 二、ECDHE
    • 1.连接过程
  • 三、TLS1.3
    • 1.过程

前言

tls是ssl协议的标准化,处于应用层(5层架构)和会话层(OSI),有着rsa方式和ecdhe两种,


一、TLS 协议的组成

请添加图片描述
握手协议:负责在客户端和服务器之间协商决定密码算法和共享密钥,包括基于证书的认证操作;
密码规格变更协议:负责向通信对象传达变更密码方式的信号,在TLS 1.3版本中不再需要该协议;
警告协议:负责在发生错误时将错误传达给对方;
记录协议:将TLS 上面承载的应用数据传达给通信对象的协议。

二、ECDHE

DH有着static DH 算法和DHE 算法。static DH 算法里服务端的密匙一般是固定不变的,有可能被用时间暴力破解出来,所以不具有前向安全性。而DHE采用ephemera临时生成私钥,保证了前向安全。ECDHE就是基于DHE算法,利用椭圆性质,更少的计算量

1.连接过程

在这里插入图片描述
第一次握手

  1. 客户端发送Client Hello

第二次握手

  1. 服务端发送 Server Hello
  2. 服务端发送Certificate,并选择ECDHE算法发送特有的第3点
  3. 服务端发送Server Key Exchange,这里面包含椭圆曲线,这代表了椭圆的曲线基点G,给客户端;以及随机数作为椭圆曲线的私匙,不公布;根据基点 G 和私钥计算出服务端的椭圆曲线公钥,这个会公布给客户端。
  4. 服务端发送Server Hello Done 代表结束

密码套件 如「 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384」代表含义

密钥协商算法使用 ECDHE;
签名算法使用 RSA;
握手后的通信使用 AES 对称算法,密钥长度 256 位,分组模式是 GCM;
摘要算法使用 SHA384;

第三次握手

  1. 客户端检验证书
  2. 客户端生成一个随机数作为椭圆的私钥,然后再根据服务端前面给的信息,生成客户端的椭圆曲线公钥,然后用「Client Key Exchange」消息发给服务端。
  3. 客户端利用Client Random + Server Random + Pre-Master(ECDHE计算出来) 计算出 Master-Secret,然受发送Change Cipher Spec,改用算法
  4. 客户端发送Encrypted Handshake Message,对前面的信息做个摘要,验证对称钥匙是否可用

ECDHE计算过程与模幂运算类似,采用素数域下的椭圆曲线的标量乘法来实现。
(1):Client,计算Pclient = Client Random* G(基点)。将PClient发送至服务器。
(2): Server,计算PServer= Server Random * G(基点)。将PServer发送至客户端。
(3):客户端计算SClient = Client Random* PServer;服务器计算SServer = Server Random *Pclient
(4):算法保证了SClient = SServer = S,提取其中的S的Pre-Master

第四次握手

  1. 服务端发送Change Cipher Spec
  2. 服务端发送Encrypted Handshake Message

客户端可以在第三次握手后抢跑发送数据

三、TLS1.3

取消了RSA,采用DHE,不需要客户端先拿到服务器的公钥证书,不使用服务器公钥来加密要发送的预备共享密钥,只需要1-RTT甚至0-RTT,会话恢复也达到了0-RTT。 一个有趣的网站图解tls1.3

1.过程

   Client                                                           Server
Key  ^ ClientHello
Exch | + key_share*| + signature_algorithms*| + psk_key_exchange_modes*v + pre_shared_key*         -------->ServerHello  ^ Key+ key_share*  | Exch+ pre_shared_key*  v{EncryptedExtensions}  ^  Server{CertificateRequest*}  v  Params{Certificate*}  ^{CertificateVerify*}  | Auth{Finished}  v<--------  [Application Data*]^ {Certificate*}Auth | {CertificateVerify*}v {Finished}               -------->[Application Data]       <------->          [Application Data]
//  + 代表extention项       
//  * 代表可选
// {} 用hashshake_key加密
// [] 用application_key加密

在这里插入图片描述
Client 提前将所有这些椭圆参数计算成公钥发给server

借鉴tls1.2
tls1.3


http://chatgpt.dhexx.cn/article/2ELuDO9H.shtml

相关文章

TLS协议详解!

TLS简介 SSL 即安全套接字层&#xff0c;它在 OSI 七层网络模型中处于第五层&#xff0c;SSL 在 1999 年被 IETF(互联网工程组)更名为 TLS &#xff0c;即传输安全层&#xff0c;直到现在&#xff0c;TLS 一共出现过三个版本&#xff0c;1.1、1.2 和 1.3 &#xff0c;目前最广…

esp-idf的内存管理——tlsf算法

目录 1 最初还不是tlsf2 为什么要引入tlsf3 tlsf算法概览4 idf中使用的tlsf算法的设计与实现4.1 先看结构4.1.1 管理内存块的结构4.1.2 管理tlsf堆的结构 4.2 优化内存块的元数据开销4.3 一二级位图索引的计算4.4 tlsf堆的创建与销毁4.4.1 tlsf堆的创建4.4.2 tlsf堆的销毁 4.5 …

TLSF算法1:二级索引的计算

TLSF算法1:二级索引的计算 一、什么是TLSF算法二,f的确定三、s的确定四、实验结果一、什么是TLSF算法 在嵌入式系统中,内存需要在分配和释放时有一个确定的相应时间,才能进一步分析其实时任务的可调度性。因此TLSF算法是一个十分适用嵌入式领域的动态内存分配算法。在关于T…

TLSF 内存分配算法详解

文章目录 1. DSA 背景介绍1.1 mmheap1.2 mmblk 2. TLSF 原理2.1 存储结构2.2 内存池初始化2.3 free2.4 malloc 参考资料 1. DSA 背景介绍 动态内存管理算法 DSA&#xff0c;Dynamic storage allocation。RTOS 一般情况下动态内存使用malloc申请分配&#xff0c;但是存在两个缺…

tlsf算法-概念、原理、内存碎片问题分析

文章目录 一、tlsf算法介绍二、tlsf代码分析2.1 mapping_search2.2 search_suitable_block 三、参考链接 一、tlsf算法介绍 tlsf&#xff08;全称Two-Level Segregated Fit&#xff0c;内存两级分割策略算法&#xff09;&#xff0c;第一级&#xff08;first level&#xff0c…

数学建模系列-优化模型(三)---排队论模型

所谓排队论模型&#xff0c;就是指一个模型中可根据交易简单的需要分为三个部分&#xff1a; &#xff08;1&#xff09;顾客造访 &#xff08;2&#xff09;服务顾客时间 &#xff08;3&#xff09;若不空闲&#xff0c;则顾客需要排队 下面是对于排队论模型的建模以及解决方法…

无线传感器网络:排队论(Queueing Theory)模型

文章目录 The arrival ProcessQueueing SystemThe M/M/1 queueThe M/M/1/N queue References 排队理论已被用于评估通信网络的性能很多年了。早在1917年&#xff0c;丹麦数学家 Erlang 就将该理论用于电话交换机的设计&#xff0c;并开创了现在著名的 Erlang-B 和 Erlang-C 公式…

排队论(Queuing theory)简介

Preliminary Questions 1.What does affect the performance of ——a computer system? ——a computer network? ——an Internet service? 2 How do we measure the performance of ——a computer system? ——a computer network? ——an Internet service…

泊松分布,指数分布与排队论模型

转自http://www.ruanyifeng.com/blog/2015/06/poisson-distribution.html泊松分布和指数分布&#xff1a;10分钟教程 https://www.bilibili.com/video/BV1L5411x7vH?p44北京工业大学运筹学 泊松分布与指数分布 泊松分布 泊松分布就是描述某段时间内&#xff0c;事件具体的…

排队论模型之M/M/S模型

相关参数 模型推导 例题 代码实现&#xff1a; s3; %服务台的个数 mu0.4; %单位时间内能服务的顾客数 lambda0.9; %单位时间内到达的顾客数rolambda/mu; rosro/s; sum10; %求解P0时把其分成两部分计算&#xff0c;分别为sum1,sum2 for i0:(s-1) sum1sum1ro.^i/factorial(i); …

排队模型和排队系统仿真

排队模型和排队系统仿真 Gary哥哥 2021.1.31 排队论又称随机服务系统&#xff0c;是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法&#xff0c;是运筹学的一个分支。排队论的基本思想是 1909 年丹麦数学家 A.K. 埃尔朗在解决自动电话设计问题时开始形成的&#…

数学模型算法实现之排队论

排队问题 https://wenku.baidu.com/view/475f68cb65ce0508763213a7.html 排队论详解 排队论又叫随机服务系统理论或公用事业管理中的数学方法。它是研究各种各样的排队现象的。它所要解决的主要问题是:在排队现象中设法寻求能够达到服务标准的最少设备,使得在满足服务对象…

排队论模型(二):生灭过程 、 M / M /s 等待制排队模型、多服务台模型

排队论模型&#xff08;一&#xff09;&#xff1a;基本概念、输入过程与服务时间的常用概率分布 排队论模型&#xff08;二&#xff09;&#xff1a;生灭过程 、 M / M /s 等待制排队模型、多服务台模型 排队论模型&#xff08;三&#xff09;&#xff1a;M / M / s/ s 损失…

排队论模型(四):M / M / s 混合制排队模型

排队论模型&#xff08;一&#xff09;&#xff1a;基本概念、输入过程与服务时间的常用概率分布 排队论模型&#xff08;二&#xff09;&#xff1a;生灭过程 、 M / M /s 等待制排队模型、多服务台模型 排队论模型&#xff08;三&#xff09;&#xff1a;M / M / s/ s 损失…

浅谈排队论

排队论起源于 1909 年丹麦电话工程师 A. K&#xff0e;爱尔朗的工作&#xff0c;他对电话通话拥挤问 题进行了研究。1917 年&#xff0c;爱尔朗发表了他的著名的文章—“自动电话交换中的概率理 论的几个问题的解决”。排队论已广泛应用于解决军事、运输、维修、生产、服务、库…

超详细的排队论建模

排队系统 顾客输入过程 顾客源&#xff08;总体&#xff09;&#xff1a;有限/无限顾客到达方式&#xff1a;逐个/逐批&#xff08;主要是逐个&#xff09;顾客到达间隔&#xff1a;随机型/确定型顾客到达&#xff1a;相互独立/相互关联输入过程&#xff1a;平稳/非平稳 排队…

排队论模型(五): 有限源排队模型、服务率或到达率依赖状态的排队模型

排队论模型&#xff08;一&#xff09;&#xff1a;基本概念、输入过程与服务时间的常用概率分布 排队论模型&#xff08;二&#xff09;&#xff1a;生灭过程 、 M / M /s 等待制排队模型、多服务台模型 排队论模型&#xff08;三&#xff09;&#xff1a;M / M / s/ s 损失…

排队论模型(一):基本概念、输入过程与服务时间的常用概率分布

排队论模型&#xff08;一&#xff09;&#xff1a;基本概念、输入过程与服务时间的常用概率分布 排队论模型&#xff08;二&#xff09;&#xff1a;生灭过程 、 M / M /s 等待制排队模型、多服务台模型 排队论模型&#xff08;三&#xff09;&#xff1a;M / M / s/ s 损失…

数学建模之排队论

排队是在日常生活中经常遇到的现象&#xff0c;如顾客到商店购买物品、病人到医院看病常 常要排队。此时要求服务的数量超过服务机构&#xff08;服务台、服务员等&#xff09;的容量。也就是说&#xff0c;到达的顾客不能立即得到服务&#xff0c;因而出现了排队现象。这种现象…

排队论简介

一、随机过程&#xff08;Stochastic Process&#xff09;&#xff1a; 1.定义&#xff1a; 设随机实验的样本空间S{s}&#xff0c;如果对于每个s&#xff0c;有对应属于参数集T的参数t的函数X(s,t)&#xff0c;那么对于所有的s&#xff0c;得到一组t的函数{X(s,t),t∈T}&…