了解https原理,对称加密/非对称加密原理,浏览器与服务器加密的进化过程,https做了些什么
最开始的加密
浏览器与服务器之间需要防止传输的数据被黑客破解。因此,浏览器在发送数据时会对数据进行加密,并把加密的密钥(或密钥的某些部分)放在数据的某一个区域中。服务器收到数据后,会提取密钥并用它来解密数据。这样的加密方式称为 对称加密。
对称加密的缺点
问题在于,当多个客户端都使用相同的加密算法时,黑客可以通过拦截和分析加密数据,推测出加密密钥的位置。这个过程叫做密钥泄漏,因此,对称加密 在密钥管理上有较大风险,一旦密钥被泄漏,通信的安全性就会受到威胁。因此,传统的对称加密不完全安全。
非对称加密
后来,科学家们发现了 非对称加密 的方法,这种方法解决了对称加密中的密钥管理问题。
非对称加密原理
非对称加密的基本思想是:使用公钥加密,使用私钥解密。其中,公钥可以公开,任何人都可以用它来加密消息,而私钥只有对应的接收方才能拥有,只有拥有私钥的人才能解密消息。
加密过程如下:
- 服务器拥有一对 公钥 和 私钥,其中 公钥 是公开的,任何人都可以获取,而 私钥 则严格保密。
- 客户端想要与服务器进行通信时,会使用 服务器的公钥 来加密消息。
- 服务器收到消息后,用自己的 私钥 解密消息。
通过这种方式,只有服务器能够解密客户端发送的消息,确保了数据的机密性。
非对称加密的缺点
- 这种方法存在一个问题,即 服务器到客户端 的消息并没有加密,黑客依然可以拦截服务器发送的消息,因为它们是明文的。
双向非对称加密
为了更好地保护通信的双方,提出了 双向非对称加密。在这种加密模式中,双方都有公钥和私钥,并通过交换公钥进行加密和解密。
双向非对称加密流程:
- 客户端和服务器都各自拥有一对公钥和私钥。
- 客户端向服务器发送请求时,会先发送自己的公钥给服务器。
- 服务器收到客户端的公钥后,也发送自己的公钥给客户端。
- 然后,客户端和服务器互相使用对方的公钥加密消息,自己用私钥解密对方的消息。
双向非对称加密的缺点
- 计算资源消耗大:非对称加密算法(如 RSA)相较于对称加密(如 AES)来说,计算资源消耗较大,可能会导致网页渲染变慢,影响用户体验。
非对称加密 + 对称加密的结合
为了解决双向非对称加密中的性能问题,现代网络通信通常结合了 非对称加密 和 对称加密。
加密流程:
- 第一次请求:客户端在与服务器建立连接时,使用 服务器的公钥 加密一个随机生成的 对称密钥(例如 AES 密钥)。
- 服务器使用 自己的私钥 解密该对称密钥。
- 一旦密钥交换完成,客户端和服务器就可以使用这个对称密钥进行加密和解密数据,后续的数据传输都使用高效的对称加密进行保护。
这种方式既保证了通信的安全性,又避免了非对称加密带来的性能问题。
非对称加密 + 对称加密的结合 —— 升级版
在实际应用中,单纯的非对称加密和对称加密结合方式依然存在一些潜在的安全隐患,尤其是客户端生成的私钥较容易被猜测出来。为此,引入了 随机数生成 来进一步提高安全性。
升级版的加密流程:
- 客户端随机数:客户端在第一次通信时,向服务器发送一个随机数 1。
- 服务器随机数:服务器回应时,会发送一个包含随机数 2 的请求。
- 客户端生成随机数:客户端收到服务器的请求后,会生成一个随机数 3,并用 服务器的公钥 加密后发送给服务器。
- 双方密钥生成:客户端和服务器通过这三个随机数生成对称加密密钥(如 AES 密钥)。
- 双方用这个密钥进行后续的数据加密和解密。
校验密钥一致性
在密钥生成后,双方需要校验生成的对称密钥是否一致,以确保双方的随机数生成的秘钥都是正确的
非对称加密 + 对称加密的结合的漏洞 —— 中间人攻击
虽然 非对称加密 + 对称加密 的结合在理论上很安全,但仍然存在 中间人攻击 的风险。
中间人攻击示意图:
客户端 <----> 恶意服务器 <----> 目标服务器
攻击流程:
- 客户端发起请求时,恶意服务器伪装成目标服务器,并向客户端发送自己的 公钥。
- 客户端误将数据用恶意服务器的 公钥 加密,并发送给恶意服务器。
- 恶意服务器用自己的 私钥 解密数据,获得客户端的私钥和密钥信息。
- 恶意服务器将数据转发给目标服务器,并伪装成客户端进行后续通信。
- 通过这种方式,恶意服务器可以窃取通信双方的敏感信息。
CA证书(HTTPS认证)
为了防止中间人攻击,SSL/TLS 引入了 CA(证书颁发机构)认证。CA机构充当了一个“公证人”的角色,帮助验证服务器的身份。
证书签发过程:
- 服务器将域名、公司信息等提交给 CA 进行认证。
- CA 使用其 私钥 对服务器信息进行加密,生成一个 数字签名。
- 将该签名与服务器信息一起打包,返回给服务器,这样就完成了认证。
证书验证过程:
当客户端与经过 CA 认证的服务器建立连接时:
- 服务器将自己的证书(包含公钥和数字签名)发送给客户端。
- 客户端计算该证书的 hash 值(称为 hash1),然后使用 CA 的公钥 解密数字签名得到 hash2。
- 如果 hash1 和 hash2 相同,则说明证书没有被篡改,通信是安全的。
- 如果证书验证失败,浏览器会警告用户连接不安全。
CA证书服务器的认识
为了避免单个 CA 证书服务器的负担过重,CA 采用了分层认证架构。根级 CA 服务器是最权威的,下面的中级 CA 服务器可以为下级的证书颁发机构提供认证服务。
CA 证书验证过程:
- 客户端验证服务器证书时,首先验证证书的签发机构。
- 如果证书由根证书服务器签发,验证成功。如果证书不是根证书,则会向上逐层验证签发证书,直到找到根证书。
- 根证书通常已经预安装在操作系统或浏览器中,一旦找到可信根证书,验证过程就完成。
图示:SSL/TLS通信过程
±------------------+ ±---------------------+
| Client | | Server |
|-------------------| |----------------------|
| 1. Request data | <---------> | 2. Send certificate |
| 3. Encrypt with | | 4. Decrypt using |
| server’s pub | | private key |
| 5. Send encrypted | | 6. Send response |
| data to server | | encrypted with |
±------------------+ | shared key |
±---------------------+
通过图示可以更清晰地看到客户端与服务器在 SSL/TLS 握手过程中如何进行加密通信。
相关文章:
了解https原理,对称加密/非对称加密原理,浏览器与服务器加密的进化过程,https做了些什么
最开始的加密 浏览器与服务器之间需要防止传输的数据被黑客破解。因此,浏览器在发送数据时会对数据进行加密,并把加密的密钥(或密钥的某些部分)放在数据的某一个区域中。服务器收到数据后,会提取密钥并用它来解密数据…...
山西省第十八届职业院校技能大赛高职组 5G 组网与运维赛项规程
山西省第十八届职业院校技能大赛高职组 5G 组网与运维赛项规程 一、赛项名称 赛项编号:GZ035 赛项名称:5G 组网与运维 赛项组别:高职学生组、教师组 二、竞赛目的 2019 年 6 月 6 日,5G 牌照正式发放,标志着我国全面进…...
tcpdump编译 wireshark远程抓包
https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz tar -zxvf flex-2.6.4.tar.gz ./configure CFLAGS-D_GNU_SOURCE make sudo make installwget http://ftp.gnu.org/gnu/bison/bison-3.2.1.tar.gz ./configure make sudo make install以上两个库是…...

Web开发 -前端部分-CSS
CSS CSS(Cascading Style Sheet):层叠样式表,用于控制页面的样式(表现)。 一 基础知识 1 标题格式 标题格式一: 行内样式 <!DOCTYPE html> <html lang"en"><head><meta…...

用 Python Turtle 绘制流动星空:编程中的璀璨星河
用 Python Turtle 绘制流动星空:编程中的璀璨星河 🐸 前言 🐸🐞往期绘画>>点击进所有绘画🐞🐋 效果图 🐋🐉 代码 🐉 🐸 前言 🐸 夜空中繁星…...

Java从入门到工作2 - IDEA
2.1、项目启动 从git获取到项目代码后,用idea打开。 安装依赖完成Marven/JDK等配置检查数据库配置启动相关服务 安装依赖 如果个别依赖从私服下载不了,可以去maven官网下载补充。 如果run时提示程序包xx不存在,在项目目录右键Marven->Re…...
fastadmin批量压缩下载远程视频文件
后端代码 // 批量下载并压缩 public function downloadAll(){$ids input(ids);$row $this->model->where(id, in, $ids)->field(id,title,video_url)->select();if (!$row) {$this->error(记录不存在);}$arr [];$tempFiles []; // 用来存储临时下载的视频文…...
【保姆级】Mac如何安装+切换Java环境
本文从如何下载不同版本的JDK,到如何丝滑的切换JDK,以及常见坑坑的处理方法,应有尽有,各位看官走过路过不要错过~~~ 下载⏬ 首先上官网: https://www.oracle.com/ 打不开的话可以使用下面👇这个中文的 https://www.oracle.com/cn/java/technologies/downloads/a…...

2024首届世界酒中国菜国际地理标志产品美食文化节成功举办篇章
2024首届世界酒中国菜国际地理标志产品美食文化节成功举办,开启美食文化交流新篇章 近日,首届世界酒中国菜国际地理标志产品美食文化节在中国国际地理标志大厦成功举办,这场为期三天的美食文化盛会吸引了来自世界各地的美食爱好者、行业专家…...

Springboot静态资源
默认位置 静态资源访问目录下的资源可以直接访问,默认的四个位置 classpath:/META-INF/resources/(默认加载,不受自定义配置的影响) classpath:/resources/ classpath:/static/ classpath:/public/ 如果在静态目录下存在favic…...
MTK修改配置更改产品类型ro.build.characteristics
文章目录 需求场景实际问题 参考资料解决方案MTK 修改方案修改点一:build\core\product_config.mk修改点二:build\make\core\main.mk修改是否成功,adb 验证 实战项目中解决案例 需求场景 更改产品设备属性 table-phone-device,使…...
SQL 查询中的动态字段过滤
这段代码是一个 SQL 查询中的动态字段过滤部分,使用了 MyBatis 的 标签和 标签。以下是逐步的解释: <!-- 动态字段过滤 --><if test"parameters ! null and parameters.size() > 0"><foreach collection"parameters&qu…...

数字IC后端零基础入门基础理论(Day1)
数字IC后端设计导入需要用到的input数据如下图所示。 数字后端零基础入门系列 | Innovus零基础LAB学习Day9 Netlist: 设计的Gate level(门级)网表。下图所示为一个计数器设计综合后的门级netlist。 从这个netlist中我们看到这个设计顶层的名字叫counte…...

【LC】240. 搜索二维矩阵 II
题目描述: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,…...

Redis应用—4.在库存里的应用
大纲 1.库存模块设计 2.库存缓存分片和渐进式同步方案 3.基于缓存分片的下单库存扣减方案 4.商品库存设置流程与异步落库的实现 6.库存入库时"缓存分片写入 渐进式写入 写入失败进行MQ补偿"的实现 7.库存扣减时"基于库存分片依次扣减 合并扣减 扣不了…...
selenium获取请求头
【原创】Selenium获取请求头、响应头-腾讯云开发者社区-腾讯云 selenium 4.0.0 selenium-wire 5.1.0 python 3.10 from seleniumwire import webdriver import time from selenium.webdriver.common.by import By import re def get_request_headers(driver):"""…...
Rust中自定义Debug调试输出
在 Rust 中,通过为类型实现 fmt::Debug,可以自定义该类型的调试输出。fmt::Debug 是标准库中的一个格式化 trait,用于实现 {:?} 格式的打印。这个 trait 通常通过自动派生(#[derive(Debug)])来实现,但你也…...
docker离线安装、linux 安装docker
之前写过一篇docker的离线安装,现在从头再看繁琐了,服务器换了,既然要重搭一遍就要改进一下了。下面步入正题: 1.下载离线软件包 https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz 2.下载安装工具包…...

卓易通:鸿蒙Next系统的蜜糖还是毒药?
哈喽,我是老刘 最近很多人都在问鸿蒙next系统新上线的卓易通和出境易两款应用。 老刘分析了一下这个软件的一些细节,觉得还是蛮有意思的,我觉得可以从使用体验、底层原理和对鸿蒙生态的影响这三个角度来分析一下。 使用体验 性能 看到了一些测…...

AI大模型学习笔记|神经网络与注意力机制(逐行解读)
来源分享链接:通过网盘分享的文件:详解神经网络是如何训练的 链接: https://pan.baidu.com/s/12EF7y0vJfH5x6X-0QEVezg 提取码: k924 内容摘要:本文深入探讨了神经网络与注意力机制的基础,以及神经网络参数训练的过程。以鸢尾花数…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...