传输层TCP 与 安全层SSL/TLS

本章节主要探讨三个问题:

1. SSL/TSL 的区别和联系是什么?

2. 我们常说的 “三次握手” 发生在哪个阶段,SSL/TSL层有参与吗?

3. HTTPS混合加密发生在哪个层?

一、SSL 和 TLS 

联系

  • 继承关系TLS 直接基于 SSL 3.0 设计,可以视为 SSL 的升级版,TLS 1.0 最初命名为 SSL 3.1,后因标准化需要更名为 TLS。
  • 核心目标一致:两者的核心目标都是为网络通信提供安全及数据完整性保障,它们都位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

区别

  • 开发者:SSL 由 Netscape 开发,而 TLS 是 IETF 在 SSL 的基础上进行开发的。
  • 版本:SSL 有 SSL 1.0、2.0、3.0 等版本,其中 SSL 3.0 是最后一个版本;TLS 有 TLS 1.0、1.1、1.2、1.3 等版本,TLS 1.3 是目前最新的版本。
  • 安全性:SSL 存在一些已知的安全漏洞,如 SSL 2.0 和 SSL 3.0 都有安全问题,已逐渐被弃用;
    TLS 解决了 SSL 中存在的许多安全问题,引入了更强的加密算法和更安全的握手过程,安全性更高。
  • 握手过程:SSL 的握手过程相对简单,TLS 的握手过程则更加安全和复杂。
  • 加密算法:SSL 支持一些较弱的加密算法,TLS 支持更强的加密算法,如 AES、ChaCha20 等。
  • 兼容性:现代系统通常禁用 SSL,普遍使用 TLS。

二、SSL/TLS 会参与三次握手吗?

答:不会,三次握手仅发生在传输层的 TCP 协议中,与安全层(SSL/TLS)没有直接关联。

要理解这一点,需要先明确 TCP 三次握手的本质、以及 TCP 与 SSL/TLS 在网络分层中的位置和分工。

1. 先理清核心概念:TCP 三次握手的作用

TCP(传输控制协议)是传输层的核心协议,其设计目标是为应用层提供可靠的、面向连接的字节流服务

而 “三次握手” 是 TCP 建立连接的核心机制,目的是:

  • 确认客户端和服务器的 “发送能力” 和 “接收能力” 均正常;
  • 协商双方初始的序列号(ISN),为后续数据传输的有序性、去重提供基础;
  • 最终建立起一条双向的、可靠的传输通道。

简单来说,三次握手是 TCP “建立连接” 的专属流程,只和传输层相关,在 SSL/TLS 启动之前就已经完成

2. 再看分层关系:TCP(传输层)是 SSL/TLS(安全层)的 “基础”

根据 TCP/IP 分层模型(或 OSI 模型的简化理解),各层的依赖关系是 “下层为上层提供服务”:

  • 传输层(TCP):先通过三次握手建立可靠连接,为上层(如 SSL/TLS)提供 “稳定的字节流传输通道”;
  • 传输安全层(SSL/TLS):在 TCP 连接建立后,才在这个 “基础通道” 上启动自己的 “握手流程”(即 SSL/TLS 握手),协商加密算法、交换随机数、验证证书、生成会话密钥;
  • 应用层(如 HTTPS):SSL/TLS 握手完成后,才基于加密通道传输 HTTP 数据(即 HTTPS = HTTP + SSL/TLS)。

三者的启动顺序是:


TCP 三次握手(建立连接)→ SSL/TLS 握手(建立安全通道)→ HTTP 数据传输(应用层通信)

3. 关键区别:TCP 三次握手 vs. SSL/TLS 握手

很多人会混淆这两个 “握手”,但它们的层级、目的完全不同,对比如下:

对比维度TCP 三次握手SSL/TLS 握手
所属层级传输层(TCP 协议)传输层与应用层之间(安全层)
发生时机通信刚开始,SSL/TLS 启动前TCP 连接建立后,HTTP 数据传输前
核心目的建立可靠的连接(确认收发能力、协商序列号)建立安全的加密通道(协商算法、验证身份、生成密钥)
参与方交互次数3 次交互(客户端→服务器→客户端)视版本不同(如 TLS 1.2 约 4-6 次,TLS 1.3 优化为 2 次)

总结

  • 三次握手只属于传输层的 TCP 协议,是建立可靠连接的前提,和 SSL/TLS(安全层)无关;
  • SSL/TLS 是在 TCP 连接的基础上,额外增加的 “安全增强层”,它有自己独立的 “握手流程”,但不是三次握手;
  • 整个 HTTPS 的通信流程,是 “TCP 三次握手打底 → SSL/TLS 握手加安全 → HTTP 传输数据” 的层层依赖关系。

三、HTTPS混合加密发生在哪个层?

HTTPS 的混合加密(即 “非对称加密 + 对称加密” 的组合机制)完全发生在 TLS 层

更具体地说,是在 TLS 协议的 “握手阶段” 和 “记录阶段” 中协同实现的,与 TCP 层(传输层)或 HTTP 层(应用层)无直接关联。

要理解这一点,需要先明确 HTTPS 混合加密的核心逻辑 ——用非对称加密解决 “对称密钥的安全传输问题”,用对称加密解决 “大量数据的高效加密问题”,而这两个步骤的执行载体,正是 TLS 协议的分层设计:

1. 混合加密的两个关键步骤,均由 TLS 层实现

TLS 协议本身分为 “握手协议” 和 “记录协议” 两层,混合加密的两个核心动作分别在这两层中完成:

(1)非对称加密:用于 TLS 握手阶段,安全交换 “对称密钥的种子”

在 TLS 握手开始后,客户端和服务器会通过非对称加密完成两件关键事:

  • 服务器向客户端发送 “数字证书”(含服务器的公钥),客户端通过信任链验证证书合法性(确认服务器身份,防止中间人攻击);
  • 客户端生成一个临时的 “预主密钥(Pre-Master Secret)”,用服务器证书中的公钥(非对称加密的公钥) 加密后发送给服务器;
  • 服务器用自己的私钥(非对称加密的私钥) 解密,得到 “预主密钥”。

至此,客户端和服务器通过 “非对称加密” 安全共享了 “预主密钥”—— 这一步的核心是 “避免对称密钥在传输中被窃取”,而整个过程完全在 TLS 握手协议中执行,TCP 层仅负责传输这些加密后的握手数据(不理解数据含义),HTTP 层此时尚未参与。

(2)对称加密:用于 TLS 记录阶段,高效加密 HTTP 数据

TLS 握手完成后,客户端和服务器会基于 “预主密钥”+“客户端随机数(Client Random)”+“服务器随机数(Server Random)”,通过相同的算法(如 HKDF)生成最终的 “会话密钥(Session Key)”—— 这个 “会话密钥” 就是对称加密的密钥

之后进入 “TLS 记录阶段”:所有 HTTP 层的原始数据(如请求头、响应体)会先交给 TLS 记录协议,由其完成三件事:

  1. 对 HTTP 数据进行分段(按 TLS 规定的最大长度切割);
  2. 用 “会话密钥” 通过对称加密算法(如 AES-GCM)对分段数据加密;
  3. 对加密后的数据添加 “消息认证码(MAC)” 或 “认证标签(Tag)”,确保数据完整性(防止被篡改)。

最终,这些加密后的 “TLS 记录数据” 会被交给 TCP 层,由 TCP 传输到对方;对方接收后,再通过 TLS 记录协议用相同的 “会话密钥” 解密、验证完整性,最后将原始 HTTP 数据交给应用层(HTTP 层)。

简言之:对称加密的核心是 “高效处理大量 HTTP 数据”,其加密 / 解密动作由 TLS 记录协议执行,HTTP 层只负责处理解密后的原始数据,完全感知不到加密过程。

2. 为什么混合加密不会发生在其他层?

  • TCP 层(传输层):TCP 的作用是 “可靠传输字节流”,仅负责数据的分段、重传、有序交付,不具备任何加密能力,也不理解 TLS/HTTP 数据的含义,无法参与加密;
  • HTTP 层(应用层):HTTP 本身是 “明文协议”,没有加密逻辑;HTTPS 的 “安全” 本质是给 HTTP 套了一层 TLS “保护壳”——HTTP 数据是 “被 TLS 加密的对象”,而非加密的执行者。

总结

HTTPS 的混合加密是 TLS 层的核心功能:

  • 非对称加密在 TLS 握手阶段,解决 “对称密钥的安全共享”;
  • 对称加密在 TLS 记录阶段,解决 “HTTP 数据的高效加密”;
    整个过程中,TCP 层仅负责传输 TLS 加密后的数据,HTTP 层仅负责处理 TLS 解密后的原始数据,二者均不参与加密逻辑。

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

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

    相关文章

    【数学建模学习笔记】时间序列分析:ARIMA

    零基础看懂 ARIMA 模型:从原理到实战如果你完全没接触过 “时间序列预测”,也不懂复杂公式,这篇会用 “说人话” 的方式帮你搞懂 ARIMA 模型,以及文中代码到底在做什么。一、先搞懂:ARIMA 是用来干嘛的?简单…

    【macOS】垃圾箱中文件无法清理的“含特殊字符文件名”的方法

    【macOS】垃圾箱中文件无法清理的“含特殊字符文件名”的方法文件名包含特殊字符(如空格、中文符号等)导致终端无法正确识别文件路径。 可以尝试以下解决方法:使用文件路径自动补全输入 rm (注意 rm 后有空格)&#xf…

    ​​​​​​​Blender 重拓扑修改器实战指南:从基础操作到细节优化​

    在 Blender 建模中,重拓扑是解决 “高模难编辑、低模细节差” 的关键。传统手动重拓扑效率低,重拓扑修改器能自动生成规整拓扑,保留模型外形,适合游戏资产、动画角色等场景。 一、核心作用与适用场景​ 重拓扑修改器并非 “一键完…

    C/C++哆啦A梦

    写在前面 用代码绘制童年记忆中的那个蓝胖子——哆啦A梦,是我对经典角色的一次深情致敬。这段程序不仅是一幅静态图像的生成,更是一次对童年幻想世界的数字重建。通过精确的几何控制与色彩搭配,我将那个圆润可爱、温暖可靠的机器人重新带回眼…

    CSS入门指南:30字掌握核心技巧

    1. CSS初体验 1.1. CSS定义 层叠样式表 (Cascading Style Sheets,缩写为 CSS) 用来描述 HTML 文档的呈现(美化内容) 1.2. CSS引入方式 内部样式表:学习使用 CSS 代码写在head里面的 style标签 里面 外部样式表&…

    从实操到原理:一文搞懂 Docker、Tomcat 与 k8s 的关系(附踩坑指南 + 段子解疑)

    目录 一、先分清:Docker、Tomcat、k8s 到底是 “干啥的”? 二、它们的 “合作关系”:从 Java 项目到集群部署的全流程 三、实际应用场景:什么时候该用谁? 1. 单独使用场景 2. 组合使用场景(最常见&…

    测试覆盖率不够高?这些技巧让你的FastAPI测试无懈可击!

    url: /posts/0577d0e24f48b3153b510e74d3d1a822/ title: 测试覆盖率不够高?这些技巧让你的FastAPI测试无懈可击! date: 2025-09-02T01:49:10+08:00 lastmod: 2025-09-02T01:49:10+08:00 author: cmdragon summary: FastAPI通过TestClient工具支持单元测试,模拟HTTP请求直接…

    Qwen3-Reranker-0.6B 模型结构

    模型加载 import torch from modelscope import AutoModel, AutoTokenizer, AutoModelForCausalLMtokenizer AutoTokenizer.from_pretrained("Qwen/Qwen3-Reranker-0.6B", padding_sideleft) model AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-Reranke…

    无参 MOS 算法的评估方式

    一、无参 MOS 算法 在音频处理和质量评估领域,MOS(Mean Opinion Score)是一种常用的主观评价指标,用于衡量音频质量。然而,获取主观 MOS 评分通常需要大量的人力和时间。因此,无参 MOS 算法应运而生&#…

    Flowable——配置使用Flowable-UI

    文章目录 前言 框架选型与版本 flowable-ui 搭建 依赖引入 springboot 主要版本 flowable 相关 log4j 日志配置项 配置文件 log4j配置文件 application.yml 增加启动类并启动程序 项目整体结构 前言 最近对工作流的flowable比较感兴趣,汇总记录一下相关的研究学习知识点。 框…

    2025大学生必考互联网行业证书排名​

    在互联网行业蓬勃发展的当下,大学生若想毕业后顺利投身其中,提前考取相关高含金量证书不失为明智之举。这些证书不仅能证明专业能力,还能在求职时为你增添竞争优势。接下来,为大家详细介绍 2025 年大学生必考的互联网行业证书排名…

    【并发系列-01】高并发系统架构设计原理

    【并发系列-01】高并发系统架构设计原理 1. 业务场景:当双11遇上技术挑战 1.1 问题场景描述 想象一下这样的场景:某电商平台在双11期间,短短30分钟内涌入了500万用户,同时发起了超过2000万次商品查询请求和100万次下单操作。而平时…

    【Vue2 ✨】Vue2 入门之旅(八):过渡与动画

    前几篇我们学习了事件处理。本篇将介绍 过渡与动画&#xff0c;让 Vue 页面更加生动。 目录 transition 组件进入与离开过渡过渡类名结合 CSS 动画JavaScript 钩子小结 transition 组件 Vue 提供了内置组件 <transition>&#xff0c;可以为元素或组件的进入和离开添加动…

    【LeetCode】力扣刷题攻略路线推荐!适合新手小白入门~(含各类题目序号)

    力扣上有许多数据结构及算法的练习&#xff0c;但是如果由第一题【两数之和】开始刷&#xff0c;会让50%的人倒在起点。所以我们刷题要讲究路线攻略以及技巧~大体路线方向由简入难数学数组链表字符串哈希表双指针递归栈队列树图与回溯算法贪心动态规划刷题技巧 建议刷题的时候分…

    Windows 电脑发现老是自动访问外网的域名排障步骤

    Windows 电脑发现老是自动访问外网的域名,如何排障 一、基础信息获取与进程定位 1.1、确认进程关键信息 1.2、进程合法性初步验证 二、网络连接深度分析 2.1、目的IP/域名溯源 2.2、端口与协议检查 三、进程行为与系统异常排查 3.1、进程启动与依赖分析 3.2、系统异常行为扫描…

    curl、python-requests、postman和jmeter的对应关系

    一、初识curlcurl 是一个功能强大的命令行工具&#xff0c;用于传输数据&#xff0c;支持多种协议&#xff08;如 HTTP、HTTPS、FTP 等&#xff09;。分析以下curl&#xff1a;curl "https://$HOST/mon/adm/au/opera" --header "Authorization: $AUTH" -X …

    【MySQL】初识数据库基础

    【MySQL】初识数据库基础 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;MySQL笔记 文章目录【MySQL】初识数据库基础前言一. 数据库基础&#xff08;重点&#xff09;1.1 什么是数据库1.2 主流数据库1.3 基本使用1.3.1 MySQL安装1.3.2 连接…

    微服务Docker-compose之若依部署

    目录 1.创建一个文件夹 2.上传压缩包 3.解压 4.执行ry1文件 5.执行ry2文件 6.进入nginx的html目录解压dist文件 7.执行ry3文件 8.访问nacos 9.访问若依 1.创建一个文件夹 2.上传压缩包 3.解压 4.执行ry1文件 5.执行ry2文件 6.进入nginx的html目录解压dist文件 7.执行ry…

    《中国棒球》健将级运动员什么水平·棒球1号位

    棒球国家健将级の神级科普&#xff5c;国内TOP1%⚾️国际能打吗&#xff1f;1. 什么是"国家健将级"&#xff1f;&#xff5c;What is "Master Sportsman"&#xff1f;中国运动员等级天花板&#xff1a;仅次"国际健将"的最高国家级荣誉&#xff0…

    NAT与内网穿透

    目录 一、为什么需要NAT&#xff1f; 二、NAT的核心&#xff1a;从“一对一”到“多对一” &#xff08;1&#xff09;静态NAT &#xff08;2&#xff09;动态NAT &#xff08;3&#xff09;NAPT 三、NAPT的双刃剑&#xff1a;安全与局 四、内网穿透 &#xff08;1&…