HTTP协议(二)/HTTPS

news2025/1/23 9:26:47

HTTPS是啥

https是在http协议的基础上,加上了数据的加密解密层,即TLS/SSL。在进行http请求的时候,通过TLS/SSL进行加密,在响应的时候,也会通过TLS/SSL进行解密。加密解密层TLS/SSL不会对下三层加密解密,而是只会对应用层进行加密解密,因此在网络中,HTTP的请求的有效载荷信息总是被加密的。

接下来我们将要分析HTTPS协议是如何进行通信的,通信是如何进行保密的,在此之前,需要先学习以下概念。

加密方式:对称加密和非对称加密。数字摘要/数字指纹和数字签名

加密方式

加密的方式有两种:对称加密和非对称加密。

对称加密

在对称加密中,只有一个密钥(比如说是X)。那么加密和解密的过程,这里使用异或举例:

客户端发送给服务器的数据进行加密:data ^ X = result;

服务器通过对客户发来的数据进行解密:result ^ X = data;

非对称加密

在非对称加密中,有一对密钥:公钥和私钥。如果使用了公钥加密,那么只能使用私钥解密,反过来,如果使用了私钥加密,那么只能使用公钥解密。一般来说,公钥是公开的,而私钥必须是自己进行私有保存的。

数字摘要/数字指纹/数字签名

比如现在我们手中有一篇需要加密的科学报告,并且需要将这份加密后的科学报告传输给目的接收方,接收方接收后需要进行解密。

数据摘要 or 数据指纹

使用hash散列将科学报告进行一份固定长度,唯一的字符序列,这一份字符序列就叫做数据摘要或者数据指纹。其作用是:如果科学报告被篡改,哪怕是篡改了一个字符,都会对原有的hash散列产生大的差异,可用作后续的检测。

数字签名

使用加密算法对数据摘要进行加密得出来的加密结果就叫做数字签名

校验

发送方会将数字签名和数据摘要发送给接收方,接收方对其进行校验。使用解密算法对数字签名进行解密,然后拿着解密出来的这份数据摘要和原本的数据摘要进行对比,看看有没有被篡改。

CA证书

服务方或者是客户方需要通过申请CA证书才能是合法的。那么在申请CA证书时,一般就是把公司的基本信息+域名+公钥给过去,然后CA机构会拿着这些要素组成的文本,用CA机构的私钥进行加密,得出一个数字签名。最后把这个数字签名+文本形成证书颁发给申请的服务方等。

HTTPS的通信

采用的加密方式

在HTPPS协议通信中,采用的加密方式是对称+非对称的组合形式进行对有效载荷的加密。

对称方式作用于双方通信时用于对报文加密和解密,非对称方式是用于密钥协商阶段的

发送公钥,回送私钥,携手合作

首先,服务端和客户端都有属于自己的公钥和私钥,因此在通信开始前,通信双方需要把自己的公钥交给对方。在这一步骤中,比如服务端,因为其公钥s被包含在了CA证书中,因此服务端就把自己的CA证书传给客户端,客户端拿到证书后,因为CA证书机构的公钥C是公开的,因此客户端拿着CA的公钥C对服务端的CA证书中的数字签名进行解密,从而进行校验。如果校验通过,那么客户端就拿到了服务端的公钥s,然后客户端拿着这个公钥s,形成一个私钥X(这个私钥需要发送回给服务端,进行对称加密的通信),然后客户端再拿这个公钥s,对私钥X进行加密,然后发送回给服务端,服务端拿着这个报文用自己的私钥S解密,拿到私钥X。

 

非法截取公钥,狸猫换太子

但是事情并不会那么顺利,总有一些非法分子想要截取信息,他们截取信息的方法是通过拦截通信方,比如是服务端的公钥s,然后用自己的公钥m将服务端的公钥s替换下来,然后再传给客户端。好一招狸猫换太子!客户端并不知道这个公钥m已经不是服务端的了,所以客户端拿着这个传来的公钥m去形成用于通信是私钥X,接着再拿着非法分子的公钥m对私钥X进行加密,形成报文发送回去。非法分子截取报文,用自己的私钥M对其进行解密,拿到了这个用于通信的私钥X。最后,非法分子用服务端的公钥s对报文重新加密,发送回给服务端!此时,通信双方,加上这个非法分子,都拥有了这个用于通信的私钥X!后果可想而知!

 

CA证书大显神通

非法分子想要做到将原有的公钥替换下来,换成自己的公钥,得先问问CA证书同不同意!

在上面的非法截取公钥的过程中,因为CA证书的存在,如果非法分子修改了数据摘要中的公钥信息,那么他也必须修改数字签名中的公钥信息,而修改数字签名,需要将其解密。因此CA证书的数字签名是用CA机构的私钥加密而来的,并且其公钥是公开的,当非法分子拿着CA机构的公钥对数字签名进行解密后,成功修改数字签名,那么问题来了,他如何重新对修改后的数字签名进行加密?他无法加密了啊,因为CA的私钥,只有CA自己有!这一手,打的就是一个明牌!因此,一旦非法分子想要对CA证书进行修改,他是不能成功的,因为客户端会对其进行校验,一旦校验不通过,哦吼~

就算非法分子也是一个合法的服务方,也不能修改,别忘了,证书里面是包含了域名的,域名不对,也是校验不通过。

公钥互送完毕,开始通信

当通信双方安全地拿到用于通信的私钥X,便开始使用对称加密的方式进行通信啦!

总结HTTPS通信过程:

服务端发送自己的CA证书给客户端,客户端拿着证书,对证书中的内容通过hash散列形成数据报文,再通过CA公钥对数字签名进行解密,获取其中的数据报文,两份报文进行对比校验。校验通过后,拿着服务端的公钥形成用于通信的私钥X,然后对私钥X加密,发送回给服务端,服务端用自己的私钥对齐进行解密,拿到这个私钥X。此后,双方可用私钥X进行加密解密的https通信啦!

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

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

相关文章

【27】核心易中期刊推荐——计算机工程与技术

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

[ 云计算 华为云 ] 华为云开天 aPaaS:构建高效的企业数字化平台(下)

文章目录 前言四、华为云开天aPaaS 核心功能4.1 业务模型管理4.2 连接器4.2.1 连接器的种类4.2.1.1 公共连接器4.2.1.2 私有连接器 4.2.2连接器的开发步骤 4.3 自动化流4.3.1 自动化流介绍4.3.2 自动化流日志监控 4.4 自定义逻辑处理4.5 分享连接器和流模板 五、aPaaS 的应用实…

关于C/C++语言重复包含头文件,编译时报错已定义的宏未定义的原因及解决方法

在编写一个文件较多的单片机程序时,为了在一个文件中定义的变量或宏能被另一个文件使用,经常会写成在多个头文件相互包含,由此将可能会导致明明已经定义的宏,且已经将宏所在的文件使用 #include 包含,编译时仍会报错未…

自学大语言模型的应用程序框架Langchain(初入门)

现阶段chatGPT非常火热。带动了第三方开源库:LangChain火热。它是一个在大语言模型基础上实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能的应用程序。 什么是Langchain LangChain 是一个用于开发由语言模型驱动的应用程序的框架…

Vue 3.3 浪客剑心

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录 特征弃用一、 < s c r i p t s e t u p > <script setup…

【啃书C++Primer5】-编写一个简单C++程序

每个C程序都包含一个或多个函数(function)&#xff0c;其中一个必须命名为main。操作系统通过调用main来运行C程序。下面是一个非常简单的main函数&#xff0c;它什么也不干&#xff0c;只是返回给操作系统一个值: int main() {return 0; }一个函数的定义包含四部分:返回类型(r…

【讨论话题】 工作中应不应该出于好心,帮助同事完成不属于你职责范围内的问题?

前言 职场如战场&#xff0c;职场中经常有一种好心帮忙反而成了义务的乱相存在。我们要做一个好人&#xff0c;同事要防备一些坏人。 勿以善小而不为&#xff0c;勿以恶小而为之 文章目录 前言社群内部讨论社群内部讨论总结师父的回答如何优雅的说不总结 社群内部讨论 先来看…

声音合成——Foley Sound——DECASE项目——多模态智能感知与应用——代码实现(6)

文章目录 概述encoder的编写过程代码编写运行结果问题总结 decoder的编写过程知识补充关于逆卷积 代码编写运行结果总结 Autoencoder模型编写 compile方法 train方法 保存和加载模型模块编写实现代码——autoencoder代码实现代码——train代码实现代码——保存和加载模型的代…

GPT-4最强竞品迎来重磅升级:一次10万token,百页资料一分钟总结完毕

夕小瑶科技说 分享 来源 | 量子位 作者 | 丰色 萧箫 号称ChatGPT“最强竞争对手”的Claude&#xff0c;今天迎来史诗级更新—— 模型记忆力原地起飞&#xff0c;现在1分钟看完一本数万字的小说&#xff0c;已经不在话下。 消息一出&#xff0c;评论区直接炸了&#xff0c;网友…

HTTP第九讲——你能写出正确的网址吗?

应该用什么来标记服务器上的资源呢&#xff1f;怎么区分“这个”资源和“那个”资源呢&#xff1f; 用的是 URI&#xff0c;也就是统一资源标识符&#xff08;Uniform Resource Identifier&#xff09;。因为它经常出现在浏览器的地址栏里&#xff0c;所以俗称为“网络地址”&a…

猫妹人生中的第一张Python证书长这样(1)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;快乐学习&#xff0c;茁壮成长&#xff01; 猫妹和她的朋友们 猫妹和她的朋友们有两层含义。 一是新的合集名称&#xff0c;在这个合集里面&am…

redis从零开始(3)----基本类型hyperloglog/geo/stream

接上文 redis基本类型 HyperLogLog 简介 HyperLogLog是用于「统计基数」的数据集合类型&#xff0c;基数统计就是指统计一个集合中不重复的元素个数&#xff0c; 但是准确率不是百分百&#xff0c;即他可以提供不精确的去重计数。HyperLogLog 的优点是&#xff0c;在输入元素…

.Net平台下OpenGL绘制图形(1)(VS2019,Winform,C#)

1、介绍 OpenGL&#xff08;英语&#xff1a;Open Graphics Library&#xff0c;译名&#xff1a;开放图形库或者“开放式图形库”&#xff09;是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口&#xff08;API&#xff09;。这个接口由近350个不同的函数调用组成…

【图解KMP算法】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 找出字符串中第一个匹配项的下标 1.什么是KMP…

Windows 下 VMware 虚拟机的 vmdk 文件的压缩

在 Windows 下玩虚拟机&#xff0c;一般大家都会安装 VMware 软件&#xff0c;然后通过软件安装其它操作系统环境&#xff08;如 Linux&#xff09;来模拟各个服务器环境。然而大家在使用过程中可以发现这样一个问题&#xff0c;那就是每个操作系统对应主机磁盘目录中&#xff…

与小我11岁的人一次PK

基本情况 时间过得很快&#xff0c;如同流水一般。 我的同事F已经离职一段时间了&#xff0c;怎么说呢&#xff1f; 公司领导的想让我们进行PK,谁是胜利者&#xff0c;谁留下&#xff0c;这的确与别的公司不同&#xff0c;别的公司通过面试&#xff0c;公司领导感觉那样不足体…

STC15单片机+nRF24L01硬件SPI通讯

STC15单片机+nRF24L01硬件SPI通讯 📍相关篇《STC15单片机+nRF24L01通讯利用PCA输入捕获触发》🔖验证对象:STC15L2K60S2📍STC15L2K60S2自制系统板硬件开源地址:https://oshwhub.com/perseverance51/stc15l2k60s2-ji-tong-ban⏱时钟频率:11.0592MHz🌼NRF24L01模块以及…

C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

文章目录 前言一、将数据以CSV格式进行存储二、将数据以TXT格式进行存储三、全部代码前言 我们在串口通信程序开发中经常需要将串口接收到的数据存储到本地电脑,本文就来介绍如何在串口通信中将数据进行存储 一、将数据以CSV格式进行存储 我们将软件选择为csv文件存储,如下…

搭建React Native开发环境

1.安装node node.js官网 需要确定自己安装的版本是否是12版本以上 node -v 2.安装yarn npm install -g yarn 3.安装 Android Studio 这是官网推荐的安装地址: android studio 国内用户可能无法打开官方链接&#xff0c;请自行使用搜索引擎搜索可用的下载链接。安装界面中选…

一个27岁妹子的软件测试之路

艰难的测试之路 2023年&#xff0c;现在这个大环境下&#xff0c;软件测试行业卷麻了&#xff0c;应该说不仅仅软件测试这行&#xff0c;而是整个IT行业都卷麻了&#xff0c;但最卷的还是前端&#xff0c;真的是卷的发紫&#xff0c;今天想和大家聊聊我认识的一个妹子&#xf…