深入解析 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
我的主页:2的n次方_ 1. 背景介绍 在使用 http 协议的时候是不安全的,可能会出现运营商劫持等安全问题,运营商通过劫持 http 流量,篡改返回的网页内容,例如广告业务,可能会通过 Referer 字段 来统计是…...
NP-hard问题
一、前置知识 1.多项式 多项式是由变量(如x、y等)和系数通过有限次的加、减、乘运算得到的表达式。例如3x^22x 1就是一个关于(x)的多项式 2.时间复杂度 时间复杂度是用来衡量算法运行效率的一个指标。它描述了算法运行时间随着输入规模增长而增长的量…...
 
【Nacos架构 原理】内核设计之Nacos通信通道
文章目录 Nacos通信通道 (长链接)现状背景场景分析配置服务 长链接核心诉求功能性诉求负载均衡连接生命周期 Nacos通信通道 (长链接) 现状背景 Nacos 1.X 版本 Config/Naming 模块各自的推送通道都是按照自己的设计模型来实现的…...
 
【单片机】单片机map表详细解析
1、RO Size、RW Size、ROM Size分别是什么 首先将map文件翻到最下面,可以看到 1.1 RO Size:只读段 Code:程序的代码部分(也就是 .text 段),它存放了程序的指令和可执行代码。 RO Data:只读…...
 
考研笔记之操作系统(三)- 存储管理
操作系统(三)- 存储管理 1. 内存的基础知识1.1 存储单元与内存地址1.2 按字节编址和按字编址1.3 指令1.4 物理地址和逻辑地址1.5 从写程序到程序运行1.6 链接1.6.1 静态链接1.6.2 装入时动态链接1.6.3 运行时动态链接 1.7 装入1.7.1 概念1.7.2 绝对装入1…...
vim/vi常用命令大全
启动和退出Vim 命令/操作作用vim启动Vimvim filename直接打开指定的文件命令模式下,输入 :q退出,q!强制退出:wq保存并退出:wq!保存并强制退出vim中按下a进入编辑模式Esc退出编辑模式进入命令模式new创建新窗口close关闭窗口 光标移动 命令/操作作用h、…...
什么是大语言模型,一句话解释
定义 先说语言模型(Language Model)旨在建模词汇序列的生成概率,提升机器的语言智能水平,使机 器能够模拟人类说话、写作的模式进行自动文本输出。 白话:语言模式是一种解决机器与人类交流的手段,机器人与…...
【数据库】 MongoDB 撤销用户的角色和权限
在 MongoDB 中,撤销用户的角色和权限是一项重要的管理任务,确保用户仅能访问和操作他们需要的数据。以下是如何撤销用户的角色和权限的详细步骤。 1. 使用 MongoDB Shell 撤销角色 1.1 修改用户角色 要撤销用户的角色,可以使用 updateUser…...
 
vue2接入高德地图实现折线绘制、起始点标记和轨迹打点的完整功能(提供Gitee源码)
目录 一、申请密钥 二、安装element-ui 三、安装高德地图依赖 四、完整代码 五、运行截图 六、官方文档 七、Gitee源码 一、申请密钥 登录高德开放平台,点击我的应用,先添加新应用,然后再添加Key。  如图所示填写对应的信息&…...
 
【重学 MySQL】四十六、创建表的方式
【重学 MySQL】四十六、创建表的方式 使用CREATE TABLE语句创建表使用CREATE TABLE LIKE语句创建表使用CREATE TABLE AS SELECT语句创建表使用CREATE TABLE SELECT语句创建表并从另一个表中选取数据(与CREATE TABLE AS SELECT类似)使用CREATE TEMPORARY …...
 
WPS在表格中填写材料时,内容过多导致表格不换页,其余内容无法正常显示 以及 内容过多,导致表格换页——解决方法
一、现象 1,内容过多导致表格不换页,其余内容无法正常显示 2,内容过多,导致表格换页 二、解决方法 在表格内右击,选择表格属性 在菜单栏选择行,勾选允许跨页断行,点击确定即可 1࿰…...
 
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-01
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-01 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-01目录1. Beyond Text-to-Text: An Overview of Multimodal and Generative Artificial Intelligence for Education Using Topi…...
第一弹:C++ 的基本知识概述
文章目录 知识点 1:C 的概述1. C的特征2. C 程序的编辑、编译和执行3. 第一个 C 源程序4. 面向对象程序设计思想4.1 面向对象程序设计思想初始4.2 面向对象程序设计思想的核心 知识点 2:C 对 C 的扩展1. 作用域访问运算符 ::1.1 全局变量和局部变量1.2 作…...
 
在职场,没人告诉你的人情世故
职场中,想要过得游刃有余,就必须懂一些人情世故和处事原则。今天,给大家分享个人认为非常重要的5点人情世故,希望能帮你在职场里少吃点亏、多份从容。 01 不要空口道谢 在职场中,别人帮了你,口头道谢是基…...
 
激光切割机适用材质有哪些
激光切割机是一种利用激光束对各种材料进行高精度、高速度切割的机器设备。其适用材质广泛,包括但不限于以下两大类: 一、金属材料 不锈钢:激光切割机较容易切割不锈钢薄板,使用高功率YAG激光切割系统,切割不锈钢板的…...
 
C#自定义工具类-数组工具类
目录 数组工具类基本操作 1.排序:升序,降序 2.查找 1)查找最值:最大值,最小值 2)查找满足条件的单个对象 3)查找满足条件的所有对象 4)选取数组中所有对象的某一字段 完整代…...
 
18年408数据结构
第一题: 解析:这道题很简单,按部就班的做就可以了。 画出S1,S2两个栈的情况: 第一轮: S1: S2: 2 3 - 8 * 5 从S1中依次弹…...
 
Android 通过自定义注解实现Activity间跳转时登录路由的自动拦截
应用场景 在Android 中部分软件需要登录才能使用,但是有的页面又不需要登录,Android不同于Web可以直接拦截重定向路由,因此如果在Android中如果需要检测是否登录,如果没登录跳转登录的话就需要再每个页面中判断,当然也…...
安全开发指南
1. 准备工作与培训 安全文化与意识:建立并强化组织的安全文化,对所有成员进行安全意识培训。安全策略与标准:制定明确的安全开发策略、标准和流程,包括代码审查、安全测试、事件响应等。工具与技术选择:选择合适的开发…...
 
【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白
【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白 调整前效果解决方法调整后效果参考文献 调整前效果 调整前:脚注位于左下角,但右栏与左栏内容对其,未填充右下角的空白区域 解决方法 备份源文件复制脚注内…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
 
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
 
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
 
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
 
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
 
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...

