【HTTPS】深入解析 https
我的主页:2的n次方_


1. 背景介绍
在使用 http 协议的时候是不安全的,可能会出现运营商劫持等安全问题,运营商通过劫持 http 流量,篡改返回的网页内容,例如广告业务,可能会通过 Referer 字段 来统计是从哪个页面转接进来的,但是运营商就可能把信息改为自己的,也就是从运营商点击的广告,从而侵害原厂商的的利益,出了这个案例,还可能会篡改其他的信息,使得用户在访问一些界面时强制跳转广告或者下载某个应用时,点击下载却下载了其他应用等等,这些问题都是由于 http 是明文传输的,所以就引入了 https
HTTPS 其实就是 HTTP 的安全版本, HTTPS通过加密、认证和完整性保护,确保通信内容不会被第三方窃听或篡改
先来介绍几个概念:
明文:要传输的原始数据
密文:把明文进行加密之后的数据
密钥:进行加密和解密的重要数据(辅助工具)
公钥:可以公开的密钥,通常可以广泛的分发给任何需要的人
私钥:严格保密的密钥,只有密钥所有者才知道,与公钥成对出现,用于解密由客户端使用服务器公钥加密后的数据
对称加密:不论是加密还是解密,都使用同一个密钥
非对称加密:使用公钥对数据进行加密,使用私钥对数据进行解密,例如,A 要向 B 发送机密信息,A 可以使用 B 的公钥对信息进行加密,B 收到加密信息后,使用自己的私钥进行解密。
为了防止上述的数据被篡改的安全问题,就需要把数据进行加密传输
2. 引入对称加密

一般情况下都是多个客户端对应一个服务器,这些客户端在连接上服务器之后需要自己生成一个随机的对称密钥给服务器,服务器拿到这个密钥之后才能解密,如果多个客户端使用同一个密钥,那么黑客登录一个客户端就之后密钥是什么了
但是上面的过程还是存在一个问题的:

使用对称加密的话,这其实和不加密也没什么区别
3. 引入非对称加密
这里是在之前使用对称加密的基础上引入了非对称加密,对对称加密的密钥进行加密,那为什么不都使用非对称加密呢?非对称加密的的解密过程其实是比较消耗时间的,所以进行一次非对称加密,后续的进行对称加密既保证了数据的安全性,也保证了传输效率
客户端通过服务器的公钥对后续的对称加密的密钥进行加密,服务器通过私钥进行解密:

在上面的过程中,被黑客入侵的中间设备由于没有私钥,所以不能解析客户端使用公钥加密的数据,后续再进行对称加密就保证了数据的安全性
不过呢,上面的还是有缺陷的,通过中间人攻击就可以破解
4. 中间人攻击
被黑客入侵的设备在客户端面前假扮服务器,在服务器面前假扮客户端,就能够骗过双方

就像上面的过程那样,客户端并不知道当前的公钥是黑客伪造的,中间设备劫持上面的数据之后,使用 自己的私钥 pri2 就知道了对称密钥的内容,信息就会被泄露篡改了
5. 证书机制
其实上面问题的关键是客户端无法区分拿到的公钥是否是正常的,通过引入证书机制就可以解决上述的中间人攻击问题,如果想要搭建服务器使用 HTTPS 就需要在公证机构里申请证书(包括证书发布机构,证书有效期,证书所有者,公钥,签名等),服务器申请到证书之后,客户端除了从服务器获取公钥之外还会获取对应的证书。
证书中的签名包括校验和 + 加密,原始数据相同,计算的校验和也就相同,校验和不同就说明被篡改过了,这里的加密采用的是非对称加密,公证机构自己也会有一对公钥和私钥,公钥分发给各种客户端,公正机构用私钥对校验和进行加密,就得到了数字签名
之后的过程就是,客户端验证数字签名
- 客户端吧证书中的各个字段再计算一次校验和,得到 checksum1
- 客户端使用公证机构的公钥对数字签名进行解密,得到 checksum2(公钥加密只有对应的私钥才能解密,私钥加密,对应的公钥才能解密)
- 对比两次的校验和,如果相等就表明得到的证书和服务器发过来的是同一个证书,如果不相等就意味着证书上的内容被篡改过了,就会弹出警告的信息
那么客户端怎么确定拿到的公钥是公证机构的而不是黑客篡改过的?
客户端拿到公证机构的公钥主要通过操作系统或浏览器内置的方式获得,并不是通过网络传输获得的
一般情况下黑客获得不了公证机构的私钥,如果说黑客自己去生成一个私钥,客户端的公证机构的公钥也解密不了,所以通过引入证书机制就使得传输过程更加的安全了
Fiddler 等抓包工具为什么可以解析 HTTPS 加密的数据?
抓包工具也会提供一个证书,客户端同意信任之后就能够拿到客户端的对称密钥,大概是下面的过程:

当服务器发送的证书被 Fiddler 抓到之后,就会篡改证书中的内容,变成自己的证书,然后把整数中服务器的公钥替换成自己的公钥,根据新生成的证书重新计算得到校验和,并且使用自己的私钥来加密,得到数字签名,由于已经信任了 Fiddler 的证书,也就拿到了 Fiddler 的公钥 ,之后也是使用这个公钥进行加密和对称密钥的加密

相关文章:
【HTTPS】深入解析 https
我的主页:2的n次方_ 1. 背景介绍 在使用 http 协议的时候是不安全的,可能会出现运营商劫持等安全问题,运营商通过劫持 http 流量,篡改返回的网页内容,例如广告业务,可能会通过 Referer 字段 来统计是…...
Axios 快速入门
什么是Ajax Ajax 是一种通过 JavaScript 发送异步请求的技术,它的核心是使用 XMLHttpRequest 对象来与服务器交换数据。这种方式较为繁琐,因为需要手动处理请求状态和响应,并且编写的代码往往比较冗长。 相较之下,Axios 是一个基于…...
LabVIEW提高开发效率技巧----调度器设计模式
在LabVIEW开发中,针对多任务并行的需求,使用调度器设计模式(Scheduler Pattern)可以有效地管理多个任务,确保它们根据优先级或时间间隔合理执行。这种模式在需要多任务并发执行时特别有用,尤其是在实时系统…...
python之认识变量
1、变量 1.1、定义 字面意思来看,会发生改变的量称为变量。 相反的,如果有一个不会发生改变的量,它应该称为不变量,即常量。 1.2、引入变量的原因 主要是为了方便程序员动态的管理、操控数据。 1.3、变量的三要素 名称 类型…...
c++应用网络编程之十Linux下的Poll模式
一、Poll模式 在上一篇文章中提到了Select模式的缺点。既然有缺点,就要改正。但是直接在Select模式上修改不太现实,那么就推出一个新的模式不更香么?poll模式就应运而生了。不过,罗马不是一天建成的,poll模式也只是对…...
[C++][第三方库][RabbitMq]详细讲解
目录 1.介绍2.安装1.RabbitMq2.客户端库 3.AMQP-CPP 简单使用1.介绍2.使用 4.类与接口1.Channel2.ev 5.使用1.publish.cc2.consume.cc3.makefile 1.介绍 RabbitMQ:消息队列组件,实现两个客户端主机之间消息传输的功能(发布&订阅)核心概念࿱…...
Next.js 详解
Next.js是一个基于React的开源JavaScript框架,由Vercel(原Zeit)公司开发。它旨在简化React应用的构建过程,并提供了一系列强大的功能来优化性能和开发体验。以下是对Next.js的详细解析: 一、核心特性 服务器端渲染&…...
pygame--超级马里奥(万字详细版)
超级马里奥点我下载https://github.com/marblexu/PythonSuperMario 1.游戏介绍 小时候的经典游戏,代码参考了github上的项目Mario-Level-1,使用pygame来实现,从中学习到了横版过关游戏实现中的一些处理方法。原项目实现了超级玛丽的第一个小…...
【运维】nginx静态代理资源403权限问题
如题,遇到静态代理资源访问403,可以尝试检查其文件权限,父目录权限,需要确保 "目录使用标准的 755,对文件使用 644(umask:022)" 参考资料: 1. nginx “403 …...
java家政预约上门系统源码,家政服务平台源码,基于SpringBoot框架,数据库使用MySQL,界面渲染采用Thymeleaf技术开发
自主知识产权的家政预约上门系统源码,java版本,支持二次开发,适合商用上项目。 在这个快节奏的现代生活中,越来越多的家庭开始寻求高效、便捷的家政服务解决方案。传统的家政服务模式已经很难满足人们日益增长的个性化与即时性需求…...
算法知识点————贪心
贪心:只考虑局部最优解,不考虑全部最优解。有时候得不到最优解。 DP:考虑全局最优解。DP的特点:无后效性(正在求解的时候不关心前面的解是怎么求的); 二者都是在求最优解的,都有最优…...
python数据分析
Python是一种非常流行的编程语言,尤其在数据分析领域。Python拥有丰富的库和框架,可以帮助你执行各种数据分析任务。Python常用的数据分析工具之一:NumPy。 Numpy用于进行大规模数值和矩阵运算,提供了多维数组对象和一系列操作这…...
UGUI(现成组合控件)
Drop Down Scroll View Scroll Bar size是滚动条的填充程度 Slider 如果设置为静态,那么传入的值始终为自己设置的那个值 Input Field content type为standard时 可以设置line type, 只读不改,就是可以复制,但是你已经不能输入了…...
软件交付体系文件(Word源资料)
软件文档交付清单是指在软件开发项目完成后,开发团队需要准备的一份详细清单,用于确保交付的软件产品符合客户需求并达到预期的质量标准。以下是软件文档交付清单中可能包含的一些关键要素 软件全套资料部分文档清单: 工作安排任务书…...
【视频目标分割-2024CVPR】Putting the Object Back into Video Object Segmentation
Cutie 系列文章目录1 摘要2 引言2.1背景和难点2.2 解决方案2.3 成果 3 相关方法3.1 基于记忆的VOS3.2对象级推理3.3 自动视频分割 4 工作方法4.1 overview4.2 对象变换器4.2.1 overview4.2.2 Foreground-Background Masked Attention4.2.3 Positional Embeddings 4.3 Object Me…...
掌握 C# 文件和输入输出操作
在任何编程语言中,文件和输入输出操作(I/O)都是非常重要的组成部分。C# 提供了一系列工具和类来帮助开发者处理文件的读取、写入、二进制文件的处理以及数据的序列化与反序列化。本文将介绍 C# 中的文件操作,包括 File 类、Stream…...
k8s 中的金丝雀发布(灰度发布)
目录 1 什么是金丝雀发布 2 Canary 发布方式 3 Canary 两种发布方式实操 3.1 准备工作 3.1.1 将 nginx 命名两个版本 v1 与 v2 3.1.2 暴露端口并指定微服务类型 3.1.3 进入 pod 修改默认发布文件 3.1.4 测试 service 是否正常 3.2 基于权重的灰度发布 3.2.1 创建 Igress 资源类…...
《IDEA:让编程效率翻倍的强大工具》
哪个编程工具让你的工作效率翻倍? 在众多编程工具中,IntelliJ IDEA 无疑是一款让我的工作效率得到显著提升的利器。 一、功能特点 智能代码补全 IDEA 的代码补全功能极其智能。它不仅能根据你输入的前缀快速列出可能的代码选项,还会根据上…...
Docker 部署 Prometheus+Grafana 监控系统快速指南
Docker 部署 PrometheusGrafana 监控系统快速指南 文章目录 Docker 部署 PrometheusGrafana 监控系统快速指南一 创建网络二 监控部署三 配置 prometheus.yml四 测试部署是否成功五 Grafana表盘下载 本文详细介绍了通过 Docker 和 Docker Compose 快速部署 Prometheus 和 Grafa…...
No.8 笔记 | SQL 查询语句:数据探索的钥匙
2024/10/7 心记 - 致在路上默默奋斗的你 在当今数字化的时代,网络安全已成为我们生活中不可或缺的一部分。它如同守护数字世界的隐形盾牌,保护着我们的隐私、数据和整个社会的稳定运行。 学习网络安全,是踏上一段充满挑战与机遇的征程。 每一…...
华为光猫配置解密工具:技术原理与实战应用指南
华为光猫配置解密工具:技术原理与实战应用指南 【免费下载链接】HuaWei-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/hu/HuaWei-Optical-Network-Terminal-Decoder 华为光猫配置解密工具是一款专为网络运维人员设计的专业工…...
Uniapp集成智能客服功能实战:从选型到性能优化的完整指南
在移动应用生态中,客服系统已从“成本中心”转变为“增长引擎”。数据显示,一个响应迅速、体验流畅的在线客服系统,能将用户咨询转化率提升30%以上,并显著降低用户流失率。对于使用Uniapp开发的跨平台应用而言,集成一套…...
【华为OD机试真题】战场索敌 · 区域统计问题 (Java/Go)
一、题目题目描述:有一个大小是 N*M 的战场地图,被墙壁 # 分隔成大小不同的区域。上下左右四个方向相邻的空地 . 属于同一个区域。只有空地上可能存在敌人 E。请求出地图上总共有多少区域里的敌人数小于 K。输入描述:第一行输入为 N, M, K&am…...
【ArUco GridBoard实战】从精度瓶颈到优化检测的完整指南
1. ArUco GridBoard的精度瓶颈与优化思路 在实际的计算机视觉项目中,我们经常会遇到标定板尺寸受限的情况。比如我之前做的一个工业检测项目,标定板尺寸被限制在3cm2cm以内。最初使用的是Charuco标定板,但很快就发现了一个严重问题࿱…...
工业现场部署必须知道的4个硬指标:FPS≥35、首帧<80ms、内存≤1.2GB、MTBF≥180天(附实测数据白皮书)
第一章:工业现场Python视觉部署的硬指标体系解析在工业现场,Python视觉系统并非仅关注算法精度,其落地成败高度依赖一系列可量化的硬性工程指标。这些指标直接决定系统能否在严苛的产线环境中长期稳定运行,涵盖实时性、鲁棒性、资…...
为什么你的AI服务OOM频发?Python智能体内存管理5个致命配置错误,今天必须修复
第一章:AI服务OOM频发的底层归因与诊断路径AI服务在高并发推理或大模型微调场景下频繁触发OOM(Out-of-Memory),表面是内存耗尽,实则根植于资源抽象层与运行时协同机制的结构性失配。现代AI框架(如PyTorch、…...
Gin 日志体系详解
Gin 日志体系详解 本文基于 Gin 企业开发的真实场景,从原生日志能力到主流日志工具选型,全程以实用为核心,附带可直接复制的集成代码、最佳实践和踩坑指南,解决 Gin 开发中日志的全场景需求。 一、Gin 原生日志体系详解 Gin 自带了…...
鸿蒙 HarmonyOS 6 | 网络请求超时重试与弱网适配深度解析
文章目录前言一、网络请求的底层机制与超时配置二、超时重试的核心原理与代码实现三、架构优化策略总结前言 弱网环境下的网络波动极易导致应用与服务端断开连接。这不仅影响软件可用性,更是底层技术架构必须解决的核心问题。鸿蒙 6 在网络请求模块进行了底层架构强…...
OpenClaw隐私保护:百川2-13B本地化部署下的数据全生命周期管理
OpenClaw隐私保护:百川2-13B本地化部署下的数据全生命周期管理 1. 为什么需要关注OpenClaw的隐私保护? 去年我在整理公司财报时,曾不小心把包含敏感数据的Excel表格上传到了公有云AI助手的聊天窗口。虽然及时删除了记录,但那种&…...
Qwen3-VL-8B快速原型开发:基于Typora风格输入实时生成图文并茂的技术文档
Qwen3-VL-8B快速原型开发:基于Typora风格输入实时生成图文并茂的技术文档 不知道你有没有过这样的经历:写一份技术方案或者产品文档,脑子里想法很多,但落到纸上就变得干巴巴的,总觉得缺几张图来说明,或者文…...

