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

传输层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.xdnf.cn/news/19436.html

    相关文章:

  • shell之扩展
  • 接口自动化测试之设置断言思路
  • 什么是MIPS架构?RISC-V架构?有什么区别?【超详细初学者教程】
  • 深入Linux内核:IPC资源管理揭秘
  • 从 “对话” 到 “共创”:生成式 AI 如何重塑内容创作全流程,普通人也能掌握的高效工具指南
  • MongoDB 备份与恢复:mongodump 和 mongorestore 实战
  • Qt 的信号signal的参数是否会在内部被拷贝?
  • duilib中CTextUI控件使用技巧与问题总结(CTextUI控件自适应文字宽度特性)
  • 如何正确使用ChatGPT做数学建模比赛——数学建模AI使用技巧
  • 【macOS】垃圾箱中文件无法清理的“含特殊字符文件名”的方法
  • 开发使用mybatis是用混合模式还是全注解模式
  • 陕西凉拌西瓜皮,变废为宝的陕味美味~
  • JavaScript 性能优化实战技术
  • 【GIS图像处理】有哪些SOTA方法可以用于将1.5米分辨率遥感图像超分辨率至0.8米精度的?
  • mysql实例是什么?
  • Midscenejs自然语言写测试用例
  • 基于uni-app的校园综合服务平台开发实战
  • 大模型落地全流程实践:从技术选型到企业级部署
  • 警告:OPENCV_FFMPEG_READ_ATTEMPTS (current value is 4096)
  • flume接收处理器:构建高可用与高性能的数据链路
  • AR-LSAT 推理任务全解析:从逻辑推理到类比推理的挑战
  • Fabarta个人专属智能体赋能媒体:从过载信息到深度可控的创作体系
  • Claude AI 因编写勒索软件和开展勒索活动而被滥用
  • java基础1
  • DevExpress WinForms中文教程:Data Grid - 过滤编辑器
  • 【机器学习学习笔记】pandas基础
  • matlab-神经网络的语音识别
  • SHELL命令pr
  • 【C++】 Vector容器操作全解析
  • OpenHarmony智能语音框架深度拆解:从VAD到唤醒词打造你的AI语音智能体