HTTP/HTTPS ⑤-CA证书 || 中间人攻击 || SSL/TLS

news2025/3/13 2:52:12

这里是Themberfue

✨上节课我们聊到了对称加密和非对称加密,实际上,单纯地非对称加密并不能保证数据不被窃取,我们还需要一个更加重要的东西——证书 


中间人攻击 

  • 通过非对称加密生成私钥priKey和公钥pubKey用来加密对称加密生成的密钥,确实可以有效的对数据的传输进行保护,但其中还存在一个非常严重的漏洞。
  • ✨中间人攻击(Man-In-The-Middle Attack,MITM) 是一种网络攻击形式,攻击者通过拦截和篡改两方通信内容,冒充通信的某一方与另一方对话,从而获取敏感信息或进行恶意操作。整个过程通常对通信双方是不可见的,因此具有很大的隐蔽性。
  • 中间人攻击通常冒充双方之一:假装是服务器与客户端通信、假装是客户端与服务器通信,攻击者在通信中插入、修改或窃取数据,而通信双方误以为彼此直接对话。
  • 中间人攻击的常见手段有很多种,这里我们只讲其中的一种:通过特殊手段拿到加密的密钥。
  • ✨客户端服务端通信前,客户端向服务端请求获得 公钥pub1,服务端接受请求返回 公钥pub1,此时黑客拦截到响应,但黑客自己又生成了一对 公钥pub2 和 私钥pri2,黑客伪造响应数据包将 公钥pub2 返回客户端,客户端没有能力辨别该公钥的真假,便直接拿来用了,随后将客户端生成的 密钥key 使用 公钥pub2 进行加密,随后再度发送请求给服务端,此时又被黑客拦截了,黑客将使用 私钥pri2 对通过 公钥pub2 加密的 密钥 key 进行解密,从而得到 密钥key,随后再使用 公钥pub1 再度对该 密钥key 加密并伪造请求数据包发送给服务端,服务端得到之后使用 私钥pri1 进行解密得到密钥key,此时服务端也不会有所怀疑。在整个过程中,服务端和客户端根本不知道它们的通信还有一个中间人黑客进行篡改,密钥key 就这样被拿到了,往后的通信都会被破解。

  • 如果依然有点模糊,这边还有一个比喻,希望可以加深理解:❤️假设你在咖啡馆里,想给朋友发一封信。你把信交给服务员,请他送到朋友手中。然而,服务员偷偷打开信,读了内容,还伪造了一份不同的回复信交给你。你以为在和朋友直接通信,但实际上服务员(中间人)在整个过程中窃取并操控了你的信息。
  • ✨✨✨防御中间人攻击的关键在于:确保通信双方能够相互验证身份,并通过加密保护通信数据的完整性和机密性。

CA证书

  • ✨上述提到的中间人攻击,关键就在于服务端和客户端不知道对方的身份是否正确,所以,引入校验机制以检验对方的身份是否合法,通常校验客户端请求服务器的公钥是否被中间人修改过。
  • 如何验证,就是验证 "证书"。CA证书(Certificate Authority Certificate)是由证书颁发机构(CA)签发的电子文件,用于在网络通信中证明服务器或客户端的身份,并帮助建立安全的通信。CA 证书是 HTTPS 和其他加密协议的重要组成部分。

证书的组成

证书持有者信息

  • 持有者名称(通常是域名)。
  • 组织信息(如公司名、地点)。

CA 信息

  • 签发证书的证书颁发机构名称。

公钥

  • 用于加密通信的公钥。

证书序列号

  • 证书的唯一标识。

有效期

  • 证书的开始时间和到期时间。

签名算法

  • 用于签名的哈希算法(如 SHA256)。

数字签名

  • 由 CA 对证书内容进行签名,确保证书未被篡改。

  • ✨在正式对广大客户端提供前,服务器先向第三方权威认证机构申请颁发一个证书,通过提交一些服务器的域名、公钥等信息,随后机构颁发一个数字证书,证书的组成如上;证书的内容会被签名算法算出一个校验和,随后机构这边也会有一对公钥pub2私钥pri2私钥pub2用于加密先前求出的校验和,得到数字签名;校验和通常与内容有关,若内容相同,得到的校验和一定相同,若内容不相同,得到的校验和大概率不同,这和hash函数有一定的类似。
  • ✨在客户端和服务器通信时,客户端会先向服务器请求其的证书,客户端得到证书后,对证书上述的组成内容使用相同的签名算法算出一个新的校验和,随后使用第三方权威认证机构生成的公钥pub2数字签名进行解密得到服务器那边原始的校验和,将原始的校验和与客户端新算出的校验和进行比对,如果相同,则表明内容没有被篡改,不存在中间人拦截,如果不同,则表明内容被篡改,存在中间人拦截,立刻停止通信。
  • ❓看到这里,你或许会有点疑问,在这个过程中,怎么就保证内容一定没被修改了;别急,且听我一一道来。
  • 💎黑客会不会对公钥pub2进行修改,中间人攻击那样故技重施。答案是不会的,因为公钥pub2就不是通过网络传输的,而是操作系统内置的,你当然也可以查看自己操作系统内置的一些第三方机构。输入win+R,输入certmgr.msc后可以直接查看、打开控制面板,找到Internet选项,有一个内容tab栏,点击证书按钮便可查看。
  • 💎这些第三方生成的公钥pub2黑客当然也可以看到,但是只能看不能修改,无可奈何。除非你安装的操作系统不是正版,而是黑客魔改的,那当我没说。
  • 💎黑客可以自己申请或者伪造一个证书然后替换吗?确实可以申请或者伪造,但是证书的内容通常有许多唯一标识,标志着该证书的唯一性,就比如域名,黑客申请的域名的正规服务器的域名肯定不能相同,第三方机构肯定能知道你这个域名冲突了,那如果是黑客自己伪造的证书,这当然不需要通过第三方机构,但这也并不行,因为数字签名是通过第三方机构生成的私钥pri2加密的,如果黑客使用了自己的私钥加密,那么客户端使用第三方机构生成的公钥pub2解密时,就会解密失败,从而中断通信。
  • 💎如果黑客修改证书内容呢?那也一样,同样需要在修改完后使用第三方机构的私钥pri2加密,否则客户端就会解密失败。那黑客能拿到私钥pri2,要真能拿到,那也是厉害,这是真厉害,没得黑🫡。

  • 我们也可以通过浏览器查看你当前访问网站的一些证书信息,在域名左侧有个锁的图标就可以查看

  • 如果你访问的网站的证书是不合法的,浏览器通常会警告你,查询你是否继续访问还是退出该网页。经常网上冲浪的应该对这个不陌生。面对这种情况,还是建议不要无视风险,继续安装了。

SSL/TLS 

  • ✨SSL(Secure Sockets Layer)TLS(Transport Layer Security)是网络安全协议,用于在客户端和服务器之间建立安全加密的通信通道。它们在保护数据传输的机密性、完整性和身份验证方面发挥关键作用。

SSL 和 TLS 的关系

  • SSL 是最初由 Netscape (网景) 开发的安全协议。
  • TLS 是 SSL 的继任者,属于更安全的版本。
    • SSL 3.0 是最后一个 SSL 版本,之后改进的版本被命名为 TLS 1.0。
    • 当前(截至 2025 年)推荐使用的是 TLS 1.2 或 TLS 1.3,SSL 以及 TLS 1.0/1.1 已被淘汰。

SSL/TLS 的核心功能

  1. 数据加密:

    • 通过对称加密保证数据传输的机密性。
    • 防止传输中的数据被窃听。
  2. 数据完整性:

    • 使用消息摘要(如 HMAC)防止数据被篡改。
    • 如果数据被修改,接收方会发现并丢弃。
  3. 身份验证:

    • 使用数字证书验证服务器身份。
    • 可选:客户端身份验证(如双向认证)。

SSL/TLS 的工作流程

1. 握手阶段(Handshake)

  • 建立安全连接的过程,包括协商加密算法、验证身份和生成密钥。

主要步骤:

  1. 客户端 Hello

    • 客户端向服务器发送支持的 TLS 版本、加密套件、随机数等信息。
  2. 服务器 Hello

    • 服务器响应,确认使用的 TLS 版本、加密算法等,并发送服务器证书。
  3. 服务器证书验证

    • 客户端验证服务器证书的有效性,包括是否由受信任的 CA 签发、是否过期等。
  4. 密钥交换

    • 双方通过密钥交换算法(如 Diffie-Hellman 或 RSA)协商生成会话密钥。
    • TLS 1.3 直接采用预共享密钥(PSK)或密钥交换,跳过部分步骤。
  5. 完成握手

    • 客户端和服务器通过对称加密会话密钥,开始加密通信。

2. 加密通信阶段

  • 使用会话密钥对数据进行加密,保证传输的安全性。

3. 连接关闭阶段

  • 使用 TLS 关闭机制,确保剩余数据完整传输并正确断开连接。

主要特性

  1. 向后兼容性:

    • 允许客户端和服务器协商最低的 SSL/TLS 版本。
  2. 加密算法灵活性:

    • 支持多种加密算法(如 AES、ChaCha20),并根据安全性逐步淘汰不安全的算法。
  3. 支持扩展:

    • 如 ALPN(应用层协议协商)支持 HTTP/2。

TLS 1.3 的改进

  1. 简化握手:

    • 减少握手过程中的往返次数(从两次减少到一次)。
    • 更快的连接建立速度。
  2. 更强的安全性:

    • 移除弱加密算法和协议(如 RSA 和 MD5)。
    • 默认启用前向保密(Perfect Forward Secrecy,PFS)。
  3. 效率提升:

    • 提供 0-RTT(零延迟握手)机制,加速后续连接。

SSL/TLS 的典型应用场景

  1. HTTPS(HTTP over TLS):

    • 为网站提供安全加密通信。
  2. 邮件传输:

    • 如 SMTPS、IMAPS。
  3. 虚拟专用网络(VPN):

    • 如 OpenVPN 使用 TLS 进行隧道加密。
  4. 实时通信:

    • WebRTC 中的加密。

常见的挑战与问题

  1. 性能开销:

    • TLS 加密和握手过程增加了 CPU 和带宽开销。
    • 解决:启用硬件加速(如 AES-NI)、使用更高效的协议(如 TLS 1.3)。
  2. 证书管理复杂性:

    • 证书需要定期更新、配置和管理。
  3. 攻击风险:

    • 如中间人攻击(MITM)、TLS 降级攻击(POODLE)等。
    • 解决:强制使用最新版本的 TLS,启用 HSTS。

总结

SSL/TLS 是保障互联网安全的重要基石,通过加密、验证和完整性检查,确保数据安全传输。随着 TLS 的不断发展(特别是 TLS 1.3 的普及),性能和安全性得到了进一步提升。理解其原理有助于更好地设计和保护网络应用。


  • 至此,HTTP/HTTPS 协议的相关内容就已经全部讲完了,如有遗漏,私信我~~~
  • 下一节,我们将进入传输层 UDP/TCP 协议的讲解,大家敬请期待哦~~~
  • 毕竟不知后事如何,且听下回分解 
  • ❤️❤️❤️❤️❤️❤️❤️

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

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

相关文章

leetcode:205. 同构字符串(python3解法)

难度:简单 给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字…

从epoll事件的视角探讨TCP:三次握手、四次挥手、应用层与传输层之间的联系

目录 一、应用层与TCP之间的联系 二、 当通信双方中的一方如客户端主动断开连接时,仅是在客户端的视角下连接已经断开,在服务端的眼中,连接依然存在,为什么?——触发EPOLLRDHUP事件:对端关闭连接或停止写…

EMS专题 | 守护数据安全:数据中心和服务器机房环境温湿度监测

您需要服务器机房温度监测解决方案吗? 服务器机房是企业中用于存储、管理和维护服务器及其相关组件的设施。服务器机房通常位于数据中心内,是一个专门设计的物理环境,旨在确保服务器的稳定运行和数据的安全性。服务器机房主要起到存储和管理数…

运输层安全协议SSL

安全套接字层 SSL (Secure Socket Layer) SSL 作用在端系统应用层的 HTTP 和运输层之间,在 TCP 之上建立起一个安全通道,为通过 TCP 传输的应用层数据提供安全保障。 应用层使用 SSL 最多的就是 HTTP,但 SSL 并非仅用于 HTTP,而是…

网络安全面试题汇总(个人经验)

1.谈一下SQL主从备份原理? 答:主将数据变更写入自己的二进制log,从主动去主那里去拉二进制log并写入自己的二进制log,从而自己数据库依据二进制log内容做相应变更。主写从读 2.linux系统中的计划任务crontab配置文件中的五个星星分别代表什么&#xff…

51单片机 DS18B20温度储传感器

DS18B20温度传感器 64-BITROM:作为器件地址,用于总线通信的寻址,是唯一的,不可更改 SCRATCHPAD(暂存器):用于总线的数据交互 EEPROM:用于保存温度触发阈值和配置参数 暂存器 单总线…

如何保证光谱相机的稳定性和可靠性

光学系统设计与制造 高质量光学元件:采用高精度研磨和镀膜的透镜、棱镜、光栅等光学元件。优质的透镜可以减少像差和色差,确保光线准确聚焦;高质量的镀膜能够提高光学元件的透光率,降低反射损失,并且增强对不同波段光…

【芯片封测学习专栏 -- 2D | 2.5D | 3D 封装的区别和联系】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 Overview线键合(wire-bonding)封装FOWLP2D封装2.5D 封装硅通孔(TSV)硅中介层无TSV的2.5D 3D封装 Overview 我们先要了解一下&…

Apache搭建https服务器

Apache搭建https服务器 REF: 使用OpenSSL自建一个HTTPS服务

element-ui textarea备注 textarea 多行输入框

发现用这个组件,为了给用户更好的体验,要加下属性 1. 通过设置 autosize 属性可以使得文本域的高度能够根据文本内容自动进行调整,并且 autosize 还可以设定为一个对象,指定最小行数和最大行数。:autosize"{ minRows: 3, ma…

图论1-问题 C: 算法7-6:图的遍历——广度优先搜索

题目描述 广度优先搜索遍历类似于树的按层次遍历的过程。其过程为:假设从图中的某顶点v出发,在访问了v之后依次访问v的各个未曾被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先…

基于vue框架的的校园心理咨询室系统63w37(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:用户,咨询师,文章类型,心理文章,在线咨询,典型案例,线下预约,取消预约 开题报告内容 基于Vue框架的校园心理咨询室系统开题报告 一、研究背景与意义 随着社会的快速发展和竞争的加剧,校园中的学生面临着越来越多的心理压力…

Spring 6 第1章——概述

一.Spring是什么 Spring是一款主流的Java EE轻量级(体积小、不需要依赖其它组件)开源框架Spring的目的是用于简化Java企业级应用的开发难度和开发周期Spring的用途不仅限于服务端的开发,从简单性、可测试性和松耦合的角度而言,任…

基于vite+vue3+mapbox-gl从零搭建一个项目

下面是基于 Vite、Vue 3 和 Mapbox GL 从零搭建一个项目的完整步骤,包括环境搭建、依赖安装、配置和代码示例。 1. 初始化项目 首先,使用 Vite 快速创建一个 Vue 3 项目: npm create vuelatest vue3-mapboxgl --template vue cd vue3-mapbo…

Kibana:ES|QL 编辑器简介

作者:来自 Elastic drewdaemon ES|QL 很重要 💪 正如你可能已经听说的那样,ES|QL 是 Elastic 的新查询语言。我们对 ES|QL 寄予厚望。它已经很出色了,但随着时间的推移,它将成为与 Elasticsearch 中的数据交互的最强大…

使用葡萄城+vue实现Excel

最终实现效果如下 包含增加复选框 设置公式 设置背景颜色等,代码实在太多 有需要可留言 第一步:创建表头 请使用官网提供的网址:在线 Excel 编辑器 | SpreadJS 在线表格编辑器 1.点击下方号,创建一个新的sheet页 默认新创建的she…

[系统安全] 六十一.恶意软件分析 (12)LLM赋能Lark工具提取XLM代码的抽象语法树(初探)

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…

Linux浅谈——管道、网络配置和客户端软件的使用

目录 一、管道 1、管道符 2、过滤功能 3、特殊功能 4、扩展处理 5、xargs命令扩展 二、网络配置 1、ifconfig查看网络信息 2、配置文件详解 网卡配置文件位置 3、systemctl查看网卡状态 4、systemctl启动/重启/停止网卡 三、客户端软件 1、什么是SSH 2、常用SSH终…

Oracle 深入学习 Part12: Managing Indexes (管理索引)

索引的分类 逻辑分类: 单列和多列: 单列索引(single column):对单列数据建立索引。 复合索引(concatenated):对多列数据建立索引。 唯一性: 唯一性(unique…

【网络安全】FortiOS Authentication bypass in Node.js websocket module

文章目录 漏洞说明严重等级影响的产品和解决措施推荐阅读 漏洞说明 FortiOS存在一个使用替代路径或者信道进行身份验证绕过漏洞,可能允许未经身份验证的远程攻击者透过向Node.js WebSocket模块发送特别设计的请求,可能获得超级管理员权限。 Fortinet 官…