文章目录

    • 一、核心概念
    • 二、为什么需要 TLS/SSL?
    • 三、工作原理与详细流程
      • 握手步骤详解:
        • 1.ClientHello & ServerHello:
        • 2.服务器认证 (Certificate, ServerKeyExchange):
        • 3.客户端响应 (ClientKeyExchange, Finished):
        • 4.服务器确认 (Finished):
        • 5.安全通信 (Application Data):
    • 四、核心密码学技术
    • 五、关键特性:前向保密 (PFS)
    • 六、最佳实践与版本演进
    • 总结


TLS:(Transport Layer Security,传输层安全协议)
SSL:(Secure Socket Layer,安全套接字层)

一、核心概念

TLS 及其前身 SSL 是密码学协议,用于在两个通信应用程序之间通过网络(如互联网)提供端到端的安全通信。其主要目标是:

  1. 保密性 (Confidentiality):通过加密防止数据被窃听。
  2. 完整性 (Integrity):通过消息认证码 (MAC) 检测数据是否被篡改。
  3. 认证性 (Authentication):通过非对称加密公钥基础设施(PKI) 验证通信方的身份。
  • 位置:位于应用层协议(如 HTTP, FTP, SMTP)和传输层协议(TCP)之间,是 HTTPS 中的 ‘S’

注意:SSL 已被淘汰(存在如 POODLE 等漏洞)。现在普遍使用的是 TLS(如 TLS 1.2, TLS 1.3),但术语 “SSL” 仍被广泛沿用(如 “SSL 证书”)。

二、为什么需要 TLS/SSL?

没有 TLS,网络通信(HTTP、SMTP、FTP 等)以明文形式传输。攻击者可以轻松:

  • 窃听:获取敏感信息(密码、信用卡号)。
  • 篡改:修改通信内容。
  • 冒充:伪装成合法服务器(中间人攻击)。

TLS 在应用层和传输层(TCP)之间建立了一个安全的加密隧道,解决了所有这些问题。

可操作明文数据
仅见密文
无法破解
有TLS通信 安全
加密传输
防止窃听/篡改
服务器
客户端
无TLS通信 不安全
明文传输
可被窃听/篡改
服务器
客户端
攻击者

三、工作原理与详细流程

TLS 连接的核心是握手协议,其目的是在不安全的通道上安全地协商出用于后续加密通信的会话密钥。下图详细说明了基于 ECDHE 的现代 TLS 1.2 握手流程,该流程提供了前向保密 (PFS)

ClientServer1. 协商阶段 (Client/Server Hello)Client Hello- TLS 版本- 密码套件列表- 随机数_C- (SNI)Server Hello- 选定版本 & 密码套件- 随机数_S2. 服务器认证与密钥交换Certificate(服务器证书链)Server Key Exchange(ECDHE 参数:服务器临时公钥)Server Hello Done3. 客户端认证与密钥交换验证服务器证书Client Key Exchange(客户端临时公钥)Change Cipher Spec(准备加密)Finished(加密的验证消息)4. 服务器完成握手计算主密钥Change Cipher Spec(准备加密)Finished(加密的验证消息)5. 安全应用数据传输Application Data(加密的 HTTP 等)Application Data(加密的 HTTP 等)ClientServer

握手步骤详解:

1.ClientHello & ServerHello:
  • 协商参数:客户端发送支持的 TLS 版本、密码套件列表和一个随机数。服务器选择双方都支持的最高版本和最安全的套件,并返回自己的随机数。

  • 密码套件:格式为 TLS_密钥交换算法_认证算法_批量加密算法_散列算法(例:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384)。

2.服务器认证 (Certificate, ServerKeyExchange):
  • 服务器发送其数字证书。该证书由受信任的**证书颁发机构 (CA) **签发,绑定了服务器的公钥与其身份(域名)。

  • 客户端验证证书的有效性、过期时间以及签名链,确认正在与合法的服务器通信。

  • 服务器发送其 ECDHE 临时公钥。这意味着密钥交换材料是临时的,提供了前向保密。

3.客户端响应 (ClientKeyExchange, Finished):
  • 客户端生成一个临时密钥对,并将其公钥发送给服务器。

  • 此时,双方都拥有:自己的临时私钥 + 对方的临时公钥 + ClientRandom + ServerRandom。他们使用 ECDH 算法独立计算出相同的预主密钥 (PMS)

  • PMS 通过一个伪随机函数 (PRF) 与两个随机数一起生成主密钥 (MS)

  • 客户端发送 ChangeCipherSpec 消息通知服务器后续消息将加密,并发送一个 Finished 消息,其中包含所有之前握手消息的加密摘要,以供服务器验证完整性。

4.服务器确认 (Finished):
  • 服务器同样发送 ChangeCipherSpec 和加密的 Finished 消息。

  • 客户端验证其 Finished 消息。

5.安全通信 (Application Data):
  • 握手完成,安全通道建立。主密钥被用于派生对称加密所需的会话密钥(如用于 AES 加密的密钥和用于 HMAC 的密钥)。

  • 应用层数据(如 HTTP)被分割、压缩(可选)、添加 MAC、加密,然后传输。

四、核心密码学技术

技术在 TLS 中的作用例子
非对称加密握手阶段:用于身份认证和安全地交换对称密钥。速度慢。RSA, ECDSA
对称加密应用数据阶段:使用共享的会话密钥高效加密大量数据。速度快。AES, ChaCha20
密钥交换在不安全的通道上建立共享秘密(预主密钥)。ECDHE (推荐), DHE
消息认证码 (MAC)保证数据的完整性,防止篡改。HMAC
数字证书基于 PKI,将公钥与所有者身份绑定,用于身份认证。X.509 证书

五、关键特性:前向保密 (PFS)

定义:即使攻击者记录了今天的加密通信,并在未来成功破解了服务器的长期私钥,他也无法解密之前记录的通信。

如何实现:通过使用 ECDHEDHE 等临时密钥交换算法。每次会话的预主密钥都是独立生成的,与服务器的长期私钥无关。长期私钥仅用于签名临时参数(身份认证),而不用于加密密钥交换材料。

六、最佳实践与版本演进

  • 禁用旧版本:明确禁用 SSLv2, SSLv3, TLS 1.0, TLS 1.1。

  • 优先使用 TLS 1.3:TLS 1.3 简化了握手(更快)、移除不安全的算法、并强制使用前向保密。

  • cipher Suite 优先级:优先配置支持 PFS 和强加密算法的套件(如 ECDHE 和 AES-GCM)。

  • 证书管理:使用来自可信 CA 的有效证书,或正确部署和信任自签名证书。

总结

TLS/SSL 是一个复杂而精妙的协议体系,它巧妙地融合了非对称加密(用于安全初始化)、对称加密(用于高效通信)、数字证书(用于建立信任)和密钥交换算法(用于实现前向保密)。
它是现代互联网安全的基石,确保了从网页浏览到移动支付等几乎所有在线活动的安全。

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

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

相关文章

【SpringMVC】SSM框架【二】——SpringMVC超详细

SpringMVC 学习目标: 1.SpringMVC简介 1)web访问流程1.web服务器通过浏览器访问页面2.前端页面使用异步提交的方式发送请求到后端服务器3.后端服务器采用:表现层—业务层—数据层的架构进行开发4.页面请求由表现层进行接收,获取用…

PostgreSQL表膨胀的危害与解决方案

PostgreSQL 的 表膨胀(Table Bloat) 是数据库中由于 MVCC(多版本并发控制)机制导致的一种常见性能问题,表现为物理存储空间远大于实际有效数据量。以下是详细解释及其危害:一、表膨胀的产生原因 1. MVCC 机…

Elasticsearch面试精讲 Day 5:倒排索引原理与实现

【Elasticsearch面试精讲 Day 5】倒排索引原理与实现 在“Elasticsearch面试精讲”系列的第五天,我们将深入探讨搜索引擎最核心的技术基石——倒排索引(Inverted Index)。作为全文检索系统的灵魂,倒排索引直接决定了Elasticsearc…

【小白笔记】基本的Linux命令来查看服务器的CPU、内存、磁盘和系统信息

一、 核心概念与命令知识点英文名词&#xff08;词源解释&#xff09;作用与命令CPU (中央处理器)Central Processing Unit&#xff1a;<br> - Central&#xff08;中心的&#xff09;&#xff1a;来自拉丁语 centralis&#xff0c;意为“中心的”。<br> - Process…

51c大模型~合集177

自己的原文哦~ https://blog.51cto.com/whaosoft/14154064 #公开V3/R1训练全部细节&#xff01; 刚刚&#xff0c;DeepSeek最新发文&#xff0c;回应国家新规 AI 生成的内容该不该打上“水印”&#xff1f;网信办《合成内容标识方法》正式生效后&#xff0c;De…

CA根证书的层级关系和验证流程

CA根证书的层级关系和验证流程&#xff1a;1. 证书层级结构&#xff08;树状图&#xff09; [根证书 (Root CA)] │ ├── [中间证书 (Intermediate CA 1)] │ │ │ ├── [网站证书 (example.com)] │ └── [邮件证书 (mail.example.com)] │ └── [中间证书 (In…

液态神经网络(LNN)1:LTC改进成CFC思路

从液态时间常数网络&#xff08;Liquid Time-Constant Networks, LTC&#xff09;到其闭式解版本——闭式连续时间网络&#xff08;Closed-form Continuous-time Networks, CfC&#xff09; 的推导过程&#xff0c;可以分为以下几个关键步骤。我们将基于你提供的两篇论文&#…

【图像处理基石】图像预处理方面有哪些经典的算法?

图像预处理是计算机视觉任务&#xff08;如目标检测、图像分割、人脸识别&#xff09;的基础步骤&#xff0c;核心目的是消除图像中的噪声、提升对比度、修正几何畸变等&#xff0c;为后续高阶处理提供高质量输入。以下先系统梳理经典算法&#xff0c;再通过Python实现2个高频应…

MySQL 多表查询方法

MySQL 多表查询方法MySQL 多表查询用于从多个表中检索数据&#xff0c;通常通过关联字段&#xff08;如外键&#xff09;实现。以下是常见的多表查询方式&#xff1a;内连接&#xff08;INNER JOIN&#xff09;内连接返回两个表中匹配的行。语法如下&#xff1a;SELECT 列名 F…

网络断连与业务中断的全链路诊断与解决之道(面试场景题)

目录 1. 网络链路的“命脉”:从物理层到应用层的排查逻辑 物理层:别小看那一根网线 数据链路层:MAC地址和交换机的“恩怨情仇” 工具推荐:抓包初探 2. 网络层的“幕后黑手”:IP冲突与路由迷雾 IP冲突:谁抢了我的地址? 路由问题:数据包的“迷路”之旅 3. 传输层与…

英伟达Newton与OpenTwins如何重构具身智能“伴随式数采”范式

具身智能的“数据饥荒”&#xff1a;行业痛点与技术瓶颈的深度剖析1.1 具身智能的现状与核心挑战Embodied AI的落地之路面临着多重严峻挑战。在算法层面&#xff0c;实现通用智能仍需人类的持续介入&#xff0c;并且从感知到行动的认知映射尚未完全打通。在硬件层面&#xff0c…

STM32HAL 快速入门(十六):UART 协议 —— 异步串行通信的底层逻辑

大家好&#xff0c;这里是 Hello_Embed。在前几篇中&#xff0c;我们通过环形缓冲区解决了按键数据丢失问题&#xff0c;而在嵌入式系统中&#xff0c;设备间的数据交互&#xff08;如单片机与电脑、传感器的通信&#xff09;同样至关重要。UART&#xff08;通用异步收发传输器…

使用 C 模仿 C++ 模板的拙劣方法

如下所示&#xff0c;准备两个宏&#xff0c;一个定义类型&#xff0c;一个定义容器大小。 使用时只要先定义这两个宏&#xff0c;然后再包含容器头文件就能生成不同类型和大小的容器了。但是这种方法只允许在源文件中使用&#xff0c;如果在头文件中使用&#xff0c;定义不同类…

flume接收处理器:构建高可用与高性能的数据链路

flume接收处理器&#xff1a;构建高可用与高性能的数据链路 在大规模数据采集场景中&#xff0c;单点故障和性能瓶颈是两大核心挑战。Flume 通过 Sink Group 接收处理器&#xff08;Processor&#xff09; 机制&#xff0c;提供了强大的故障转移&#xff08;Failover&#xf…

高级Kafka应用之流处理

40 Kafka Streams与其他流处理平台的差异在哪里&#xff1f; 什么是流处理平台&#xff1f; “Streaming Systems”一书是这么定义“流处理平台”的&#xff1a;流处理平台&#xff08;Streaming System&#xff09;是处理无限数据集&#xff08;Unbounded Dataset&#xff09;…

Custom SRP - LOD and Reflections

1 LOD Groups 场景中对象越多,场景就越丰富,但是过多的对象,也会增加 CPU 和 GPU 的负担.同时如果对象最终渲染在屏幕上后覆盖的像素太少,就会产生模糊不清的像素点/噪点.如果能够不渲染这些过小的对象,就能解决噪点问题,同时释放 CPU GPU,去处理更重要的对象. 裁剪掉这些对象…

【Linux篇章】互联网身份密码:解密 Session 与 Cookie 的隐藏玩法和致命漏洞!

本篇摘要 本篇将承接上篇HTTP讲解&#xff08; 戳我查看 &#xff09;遗留的关于Cookie与Session的介绍&#xff0c;在本篇&#xff0c;将会介绍Cookie的由来&#xff0c;作用&#xff0c;以及缺点等&#xff0c;进而引出Session&#xff0c;最后介绍一下它们的性质等&#xf…

Postman接口测试工具:高效管理测试用例与环境变量,支持断言验证及团队协作同步

之前跟你们聊过能搭知识网络的 Obsidian&#xff0c;今天换个偏向接口测试的方向 —— 给你们安利一个 Github 上的「Postman」&#xff0c;它是个接口测试工具&#xff0c;官网能直接下载&#xff08;Postman: The Worlds Leading API Platform | Sign Up for Free&#xff09…

可可图片编辑 HarmonyOS 上架应用分享

可可图片编辑 HarmonyOS 上架应用分享 介绍 可可图片编辑 原名 图片编辑大师&#xff0c;因为上架审核的时候 &#xff0c;提示与一些已有应用重名&#xff0c;为了避免冲突&#xff0c;需要改名字&#xff0c;所以苦心思考了一分钟&#xff0c;就调整成 可可图片编辑。 应用…

Notepad++近期版本避雷

近期Notepad若干版本存在投毒事件&#xff0c;虽然也欢迎大家使用替代软件&#xff0c;但是Notepad作为一款开源软件&#xff0c;如有需要也可以继续白嫖使用&#xff0c;但是请务必避开若干埋雷版本&#xff01; 经检查&#xff0c;部分版本在帮助菜单中加入了有关tw的部分个人…