HTTPS加密过程详解

news2025/6/16 21:33:00

目录

一、HTTPS是什么

1.1 运营商劫持

1.2 加密是什么

二、HTTPS的工作过程

2.1 对称加密

2.2 非对称加密

2.3 引入证书


一、HTTPS是什么

HTTPS 也是一个应用层协议。是在 HTTP 协议的基础上引入了一个加密层。
HTTP 协议内容都是按照文本的方式明文传输的。这就导致在传输过程中出现一些被篡改的情况。

1.1 运营商劫持

为什么会引入HTTPS协议,这就要从运营商劫持说起了。由于HTTP是使用明文传输的,所以在向服务器发送数据的时候就会被中间人“运营商”将发送的请求进行劫持,进而给客服端响应“运营商”自己的数据。

例如:在网页浏览器下载某个软件的时候就会出现明明没有下载其他的东西,但是下载好的东西就不是你想要的,这就是典型的“运营商劫持”。当下载一个天天动听软件,未被劫持的时候是天天动听的链接

如果被劫持了,点击下载就会弹出其他应用的下载链接,这里就是qq浏览器的下载链接了!

这其中的缘由就是我们通过网络传输任何数据的时候都会经过运营商的网络设备(路由器,交换机),那么运营商就会解析传输的数据,并且进行篡改。

点击“下载按钮”其实就是向服务器发送一个http请求,服务器返回的响应就是包含了该软件的的下载链接。但是被运营商劫持后,他们就会把请求数据进行解析,当他们发现要下载“天天动听的”软件时,这时候就会将这个链接篡改成“qq浏览器”的下载地址了。

其实这里不只是运营商可以劫持请求数据,其他的黑客也可以用类似的手段进行劫持,从而获取用户的隐私信息(如果获取的是银行卡的账号以及密码,那后果是不是很严重呢!!!)。所以网络上的明文传输是一件比较危险的事情!!!

HTTPS就是在HTTP的基础上进行了加密处理,进一步来保证用户的信息安全!

1.2 加密是什么

加密就是把 明文 (要传输的信息)进行一系列变换,生成 密文 。解密就是把 密文 再进行一系列变换,还原成 明文 。在这个加密和解密的过程中,往往需要一个或者多个中间的数据,辅助进行这个过程, 这样的数据称为 密钥 。

二、HTTPS的工作过程

既然要保证数据的安全,那就需要对数据进行“加密”。网络传输中已经不在直接传输明文了,而是加密后的“密文”。加密的过程有很多种,但是整体的可以分为两类:“对称加密”和“非对称加密

2.1 对称加密

对称加密其实就是引入一个密钥 key,通过这个 key 将 明文 加密成 密文,并且还能使用这个 key 密文 解密成 明文。以下是一个正常的对称加密流程:

但是在这个过程中key的传输是通过网络传输的,所以这里的key就会被黑客获取到,从而利用key对传输的数据进行解密获取。以下就是黑客获取数据的全过程:

为了防止这种情况的发生,引入了非对称加密将对称加密中的key进行加密(因为在数据传输的过程中也是需要考虑效率的,所以不能引用非对称加密及进行数据传输,但是可以加密对称加密中的key,然后再利用对称加密来加密数据)

2.2 非对称加密

换而言之,非对症加密 就是对 对称加密 再加密的过程,需要将 对称加密的中的 key 安全的告诉服务器。下面是一组 非对称加密 的安全加密过程(之所以这么说是因为只有非对称加密也是不安全的)

虽然这个过程黑客无法直接获取到key了,但是他可以通过其他的手段拿到key,接下来就是黑客通过自己的 pub key pri key 拿到客户端的 密钥key

为了解决上述问题,HTTPS的解决方案就是引入证书,有了证书之后,就能够很好的解决上述的问题了。

2.3 引入证书

引入证书过程相对复杂,这里就不过多的介绍,大概了解就行了。在客户端和服务器刚一建立连接的时候,服务器给客户端返回一个 证书。这个证书包含了刚才的公钥,也包含了网站的身份信息

这个证书就好比人的身份证,作为这个网站的身份标识。搭建一个 HTTPS 网站要在CA机构先申请一个证书。(类似于去公安局办个身份证)

当客户端获取到这个证书之后,会对证书进行校验(防止证书是伪造的)。

  • 判定证书的有效期是否过期
  • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构)。
  • 验证证书是否被篡改:从系统中拿到该证书发布机构的公钥,对签名解密,得到一个 hash 值(称为数据摘要),设为 hash1。然后计算整个证书的 hash 值,设为 hash2。对比 hash1 和 hash2 是否相等。如果相等,则说明证书是没有被篡改过的。

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

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

相关文章

Linux——vi编辑器

目录 一、基本简介 二、命令模式下的常用按键 1、光标跳转按键 2、复制、粘贴、删除 三、编辑模式 四、末行模式 1、查找关键字并替换 2、保存退出 3、其他操作 五、模式切换 一、基本简介 1、最早可追随到1991年,全称为“Vi IMproved” 2、模式 ——命…

【使用Cpolar将Tomcat网页传输到公共互联网上】

文章目录 1.前言2.本地Tomcat网页搭建2.1 Tomcat安装2.2 配置环境变量2.3 环境配置2.4 Tomcat运行测试2.5 Cpolar安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣&#…

护网行动,最全攻略来啦!!!

随着网络技术的不断发展,网络领域被发现的安全威胁越来越多。 病毒入侵、数据窃取、网络攻击等安全事件时常发生,网络已然成为各国无声较量的重要战略空间。 为应对网络安全威胁,严守网络安全底线,公安部自2016年开始组织多家机构…

基于微信小程序的高校宿舍信息管理系统设计与实现(源码+lw+部署文档+讲解等)

前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…

Centos/Ubuntu安装redis

一、Centos安装redis 首先查看gcc是否安装 gcc -v 出现版本号就说明可以直接安装redis,没有的话需要安装gcc这是 下载路径: 【免费】gccCentos.rar资源-CSDN文库 rpm -ivh *.rpm --nodeps --force #安装 服务器有网的话可以直接下载redis包 wget https…

SpringBoot的学习要点

黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)_哔哩哔哩_bilibili博客阅读:Microservices中文文档:Spring Boot 中文文档 spring官网:https://start.spring.io/thymeleaf官方文档…

监控的分类

监控可以分成 4 个类别,具体如下: 业务监控 业务监控指标是管理层所关注的,一般与企业营收挂钩,或者跟客户主流程相关。这类指标类似 BI(Business Intelligence System,即数据分析系统) 数据…

【Html】用CSS定义咖啡 - 咖啡配料展示

显示效果 代码 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>CodePen - For The Love Of Coffee</title><link rel"stylesheet" href"./style.css">&l…

使用ZoeDepth生成深度估计图

目前单目深度估计分为两个派系&#xff0c;metric depth estimation(度量深度估计&#xff0c;也称绝对深度估计)和relative depth estimation(相对深度估计)。 ZoeDepth是 第一个结合相对和绝对深度的多模态单目深度估计网络。本博文仅记录使用ZoeDepth生成深度估计图的过程&a…

Unity丨调色板丨颜色调色

文章目录 功能介绍功能展示技术细节小结 功能介绍 本文制作一个简单的调色板。拖动滑动条完成颜色变更。 功能展示 技术细节 需要把相应的三个滑动条和image拖拽赋值。 using UnityEngine; using UnityEngine.UI;public class ColorPicker : MonoBehaviour {public Slider …

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

文章目录 [toc]1. GW1NSR-4C串口外设简介2. FPGA配置3. 常用函数4. 轮询方式接收数据5. 中断方式接收数据 本文是高云FPGA系列教程的第8篇文章。 本篇文章介绍片上ARM Cortex-M3硬核处理器串口外设的使用&#xff0c;演示轮询方式和中断方式接收串口数据&#xff0c;并进行回环…

【Java 基础篇】Executors工厂类详解

在多线程编程中&#xff0c;线程池是一项重要的工具&#xff0c;它可以有效地管理和控制线程的生命周期&#xff0c;提高程序的性能和可维护性。Java提供了java.util.concurrent包来支持线程池的创建和管理&#xff0c;而Executors工厂类是其中的一部分&#xff0c;它提供了一些…

MySQL数据库笔记

文章目录 一、初识MySQL1.1、什么是数据库1.2、数据库分类1.3、MySQL简介 二、操作数据库2.1、操作数据库&#xff08;了解&#xff09;2.2、数据库的列类型2.3、数据库的字段属性&#xff08;重点&#xff09;2.4、创建数据库表&#xff08;重点&#xff09;2.5、数据表的类型…

【PHPCUSTOM】打包PHP程序为EXE

目录 一、下载PHPCUSTOM 二、PHP网站打包 1、打开PHPCUSTOM 2、配置参数 3、生成exe文件 网上很多PHP程序打包成EXE的文章&#xff0c;但是都不能用&#xff0c;最后找到了PHPCUSTOM&#xff0c;使用PHPCUSTOM可以把PHP程序打包成exe。我们都知道PHP是服务端语言&#xff…

CCG超级标记

1. 定义 组合范畴语法&#xff08;Combinatory Categorial Grammar&#xff0c;CCG&#xff09;是一种用于自然语言语法分析的语言学理论和计算模型。它是一种形式文法&#xff0c;旨在描述句子的结构和语法规则&#xff08;通过简练的描述形式表现出句子中各成分的句法语义关…

用VS Code运行C语言(安装VS Code,mingw的下载和安装)

下载并安装VS code。 安装扩展包&#xff1a; 此时&#xff0c;写完代码右键之后并没有运行代码的选项&#xff0c;如图&#xff1a; 接下来安装编译器mingw。 下载链接&#xff1a; https://sourceforge.net/projects/mingw-w64/ 得到压缩包&#xff1a; 解压&#xff1a; …

车载通信架构 —— SOME/IP 协议概述

车载通信架构 —— SOME/IP 协议概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 对学习而言,学习之后的思考、思考之后的行动、行动之后的改变更重要,如果不盯住内层的改变量,那么在表层投…

浅谈DBT的一些不足之处

DBT的好处是显而易见的&#xff0c;它支持连接多达41种数据库。而且不需要你写DDL语句&#xff0c;只要写select语句&#xff0c;DBT会自动帮你推断schema结构&#xff0c;将数据写入到数据库中&#xff1a; 但是使用了一段时间之后&#xff0c;发现DBT也存在着如下这些不足之处…

YOLOv5、YOLOv8改进:HorNet完全替换backone

1.简介 论文地址&#xff1a;https://arxiv.org/abs/2207.14284 代码地址&#xff1a;https://github.com/raoyongming/HorNet 视觉Transformer的最新进展表明&#xff0c;在基于点积自注意力的新空间建模机制驱动的各种任务中取得了巨大成功。在本文中&#xff0c;作者证明了…

pcl--第七节 点云配准

点云配准原理概述 点云配准需求场景 ​ 随着计算机辅助设计技术的发展&#xff0c;通过实物模型产生数字模型的逆向工程技术获得了越来越广泛的应用&#xff0c;与此同时&#xff0c;硬件设备的日趋完善也为数字模型操作提供了足够的技术支持。 ​ 由于三维扫描仪设备受到测…