SSL和TLS简单概述

article/2025/10/16 22:21:04

SSL和TLS简单概述

本文不会只有几个比较重要的概念,科普性质的文章,方便自己记忆,极大概率存在缺陷
如果想了解这方面的内容,请参阅官方文档。

SSL和TLS

TLS是更安全版本的ssl,先出的的ssh,一个基于加密机制的应用,之后为了方便给其他应用层使用然后引入了ssl,最后是升级版的tls.

SSL是位于可靠的面向连接的网络层协议和应用层协议之间的一种协议。HPPTS是HTTP over SSL/TSL,Https默认使用端口443.

###前置概念

首先是几个前置概念的理解,如果没办法理解这几个前置概念,后文中的内容就好像读天书,里面那些博客的内容估计也读不懂

对称加密和非对称加密

这一点我建议是可能一些专业书籍,
当然这一篇文章也可以
https://blog.csdn.net/u014294681/article/details/86705999

知道非对称加密的几个概念公钥,私钥, 对称加密效率跟高但是更容易被攻击

公钥,私钥

这两个概念就是在前文中非对称加密中出现,简单的说就是私钥保存在自己手中,公钥在公网上流传.用公钥进行加密,用私钥进行解密

证书 签名

然后是证书 签名 这个概念参考这两篇文章即可,本文中数字签名并不一定和ssl有关,比如下载文件的时候就喜欢用md5校验签名.
https://www.cnblogs.com/itps/p/12359865.html
https://ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
本文中有一个细节要注意,因为客户端苏珊只有公钥,因此签名的加密发送反过来的.
核心就是将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
在这里关于为什么用私钥加密
可以看
OPENPGP
原理是一样的
在数字签名中则相反,私钥是数字签名的信任源(签名者是唯一拥有私钥的人),如果使用公钥签名很明显是不可行的。

对话密钥

公钥加密计算量太大,所以不可能全程采用非对称加密,因此非对称加密阶段目的是为之后对称加密做准备.对话秘钥是给对称加密使用的秘钥,这一点请参考1提到的对称加密的概念

每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

简要流程

在这里插入图片描述

因此,SSL/TLS协议的基本过程是这样的:

(1) 客户端向服务器端索要并验证公钥。

(2) 双方协商生成"对话密钥"。

(3) 双方采用"对话密钥"进行对称的加密通信。

其中1 2是非对称加密阶段 3 是对称加密阶段

然后更为详细具体的流程可以参考

http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
https://www.jianshu.com/p/1fc7130eb2c2

(1) 客户端向服务器端索要并验证公钥。一般是非对称加密
核心,如何交换公钥和防止被攻击

第一轮 存在交换 SSL/TLS 版本号和所支持的加密算法等各种信息,以及对话加密的随机数,

第二轮 交换证书,主要是服务器返回证书,然后客户端也有可能需要证书(秘钥狗模式) 当然这一轮两次都不一定需要(主要是 后一种,服务器返回证书通常是也就是我们证书 )

证书的意义在于可信的加密传递公钥,防止中间人攻击

至此 证书和公钥交换结束 同时也交换了

这两轮 ,实际上这两轮可能是好几轮,而在另外的文章中这是是只有一轮,对应的是 ClientHello 和 SeverHello

第二轮结束 此时可能需要客户端校验服务器证书,这一阶段可能会存在攻击的隐患,比如之前诱导客户添加可疑的证书

第三轮 首先是客户端发送
随机数用服务器公钥加密,防止被窃听。同时如果是之前用了秘钥狗,这里也可能对客户端公钥进行加密
编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
前面发送的所有内容的hash值,用来供服务器校验。同时也表明 客户端握手结束通知

客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

服务器的最后回应

(1)编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。

(2)服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。

注意这一轮最为重要的事情,是生成会话密钥,之后算法用会话秘钥进行对称加密通信

接着双方就用事先商定的加密方法,各自生成本次会话所用的同一把"会话密钥"。

(2) 双方协商生成"对话密钥"。

解决方法:每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。
(3) 双方采用"对话密钥"进行加密通信。加密通话一般采用效率更快的对称加密形式实现

杂项

关于tsl的性能问题,如果你对于计算机网络有一定的了解,可以看看
https://www.infinisign.com/news/tls-13-new-pro
也可以参考各类文章,简单地说tsl大大提高了延迟,当然tcp http tsl的各项版本升级都在延续如何加入持久化的技术,减少往返次数

关于tsl的攻击

https://www.zhihu.com/question/28396919
参考这一篇文章


http://chatgpt.dhexx.cn/article/SB7Cpc4T.shtml

相关文章

动态内存管理——tlsf

定义 TLSF(全称Two-Level Segregated Fit) 源码 https://github.com/mattconte/tlsf 代码 结构体 typedef struct block_header_t {/* 指向上一个物理块。*/struct block_header_t * prev_phys_block;/* 此块的大小,不包括块头。*/size_t size;/* 下一个和上一…

SSL与TLS协议详解

写在最前面的话:这篇文章是我借鉴了Eric Rescorla的《SSL and TLS》一书之后对该书的前半部分内容整合而做。如您需要开发围绕SSL、TLS的程序建议参阅原著或者RFC相关文档。 一、关于SSL、TLS与HTTPS的三两事 什么是SSL、TLS: 众所周知,真…

TLS协议/SSL协议

历史背景 SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议加密层,最初是由网景公司(Netscape)研发,后被IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入&#xf…

TLS加密体系

谈到这个词,可能大家的第一印象就是加密,而对TLS了解甚少。那么在介绍 TLS 加密体系之前先来讲一讲加密。 一提到加密,可能很多人脑海中会浮现出电视剧里特务的场景,他们拿出一台电报机,“滴滴滴滴”按下情报报文&…

TLS概述

握手过程 可分为5步(使用Diffie – Hellman算法): 第一步,浏览器给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。 第二步,服务器确认双方使用的…

SSL与DTLS简介

目录 SSL简介 DTLS-基于UDP的TLS 记录层 传输层映射 早期我们在访问web时使用HTTP协议,该协议在传输数据时使用明文传输,会带来了以下风险: 信息窃听风险,第三方可以获取通信内容; 信息篡改风险,第三方…

TLS/SSL 协议

TLS/SSL 协议的工作原理 TLS/SSL 协议的工作原理 • 身份验证 • 保密性 • 完整 TLS/SSL 发展 TLS 协议 • Record 记录协议 • 对称加密 • Handshake 握手协议 • 验证通讯双方的身份 • 交换加解密的安全套件 • 协商加密参 TLS 安全密码套件解 对称加密的工作原理&am…

SSL/TLS详解

SSL/TLS详解 1. 前言 ​ 我们都知道Https就是加密协议中采用了SSL/TLS协议,这是面试常客,如果被问到了,你懂的越多,答得越深,你的面评相应来说也就会越高,对于SSL/TLS,我们不仅仅要知道其为数…

TLS协议简单介绍

TLS简介 介绍 TLS(Transport Layer Security)即安全传输层协议,在两个通信应用程序之间提供保密性和数据完整性。最典型的应用就是HTTPS。HTTPS,即HTTP over TLS,就是安全的HTTP,运行在HTTP层之下&#x…

esp-idf的内存管理——tlsf之上的封装

目录 1 为什么要封装2 先看结构2.1 multi heapnote1note2 2.2 heap caps2.3 层次关系 3 再看接口3.1 内存的申请3.2 内存的释放3.2 堆完整性检测3.3 其它 参考 1 为什么要封装 封装通常会降低效率,但能够带来诸如通用性提升等好处,idf在tlsf的基础上增加…

SSL/TLS 证书管理

SSL 证书发现 随着组织的 IT 基础架构的扩展,他们为每台计算机获取证书以保护其资源和域。此外,开发人员通常会创建许多自签名证书,以便在产品的开发阶段保护内部网络。组织通常最终会拥有数千个证书。自动发现证书提供了对证书基础结构的完…

TLS协议。

IPSec通过安全关联实现IP分组安全关联两端之间的安全传输过程,TLS通过建立安全连接实现数据在两个应用进程之间的安全传输过程。TLS建立安全连接时,实现安全连接两端应用进程之间的双向身份鉴别过程,保证经过安全连接传输的数据的保密性和完整…

SSL/TLS协议

SSL/TLS协议 文章目录 SSL/TLS协议1 协议历史2 协议的目标3 SSL体系结构4 两个主要的协议5 SSL的两个重要概念6 会话状态参数7 连接状态参数8 SSL Record Protocol9 SSL记录协议中的操作10 SSL握手协议使用的消息11 SSL握手协议的流程 1 协议历史 1994年Netscape开发了SSL(Sec…

tls协议

tls 前言一、TLS 协议的组成二、ECDHE1.连接过程 三、TLS1.31.过程 前言 tls是ssl协议的标准化,处于应用层(5层架构)和会话层(OSI),有着rsa方式和ecdhe两种, 一、TLS 协议的组成 握手协议:负责在客户端和服务器之间协商决定密码算…

TLS协议详解!

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

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,Dynamic storage allocation。RTOS 一般情况下动态内存使用malloc申请分配,但是存在两个缺…

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

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

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

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