《HTTPS协议》

文章目录

  • 一、什么是HTTPS协议
  • 二、理解关键字
  • 三、为什么要加密
  • 四、常见的加密方式
    • 1.对称加密
    • 2.非对称加密
  • 五、如何进行加密?
    • 1.只使用对称加密
    • 2.只使用非对称加密
    • 3.双方都使用非对称加密
    • 4.使用对称加密+非对称加密
    • 5.对称加密+非对称加密+CA证书认证
      • 5.1数据摘要(数据指纹)
      • 5.2数字签名
      • 申请证书
      • 数字签名形成过程
      • CA证书的认证过程
    • 回到方案5



一、什么是HTTPS协议

HTTPS协议是HTTP协议在应用层的基础上,加上一层加密层形成的协议。

二、理解关键字

  • 1.加密就是把明文(要传输的信息)进行一系列变换,生成密文的过程。
  • 2.解密就是把密文再进行一系列变换,还原成明文的过程。

三、为什么要加密

在这里插入图片描述

未被劫持时:
在这里插入图片描述

被劫持后:
在这里插入图片描述

下载链接就被替换成了qq.com。
在互联网上,?明文传输是比较危险的事情!!!
HTTPS?就是在?HTTP?的基础上进行了加密,?进一步的来保证用户的信息安全

四、常见的加密方式

1.对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密,特征:加密和解密所用的密钥是相同的。

举个例子:

客户端要给服务器发送一个明文数字5,但是不想直接发送一个数字5,而是经过密钥加密后,发送的是一个密文数字7。
服务器接收到密文7后,需要使用与客户端相同的密钥来进行解密。

特点:算法公开、计算量小、加密速度快、加密效率高。

2.非对称加密

非对称加密会有一个公钥,一个私钥,明文经过公钥加密后,这个世界上只有唯一一个私钥能对该密文进行解密。而反过来,使用私钥对一个明文进行加密后,也只有唯一一个公钥可以对该密文解密。

公钥是指:公开的密钥,私钥:不公开,自己保存的密钥。

特点:效率低,算法复杂,计算量大。

在这里插入图片描述

五、如何进行加密?

1.只使用对称加密

在这里插入图片描述

然而,会出现一个非常严重的问题。

在客户端向服务器发送请求的过程,往往需要通过路由器等网络设备,而这些设备如果被黑客入侵,就会出现下面问题。
在这里插入图片描述
而一旦将密钥直接发送,就会被黑客知晓,这个加密就形同虚设,所以还需要对密钥进行加密,也就是:密钥的密钥。
但此时就会产生一个问题,这样就要加无数个密钥。

方案一不安全。

2.只使用非对称加密

1.客户端获取到服务器的公钥,此时黑客也会获取到服务器的公钥。
2.客户端使用公钥加密后发送密文给服务器。黑客无法解密,因为黑客没有私钥。
3.服务器使用自己的私钥进行解密。
4.服务器再次使用自己的私钥,对另一个明文进行加密发送给客户端,此时黑客获取到密文,使用服务器的公钥进行解密。获取到了服务器发送给客户端的明文,极有可能篡改。

总结:方案二也不安全,仅仅在客户端向服务器发送密文时安全,服务器向客户端发送密文时会被黑客截取解密。

在这里插入图片描述

3.双方都使用非对称加密

  • 1.客户端发送自己的公钥C给服务器
  • 2.服务器发送自己的公钥P给客户端
  • 3.客户端使用服务器的公钥P进行加密,服务器使用自己的私钥P’进行密文解密
  • 4.服务器使用客户端的公钥C加密,客户端使用自己的私钥C’进行密文解密

整个过程看似黑客都无法破解密文,因为黑客没有私钥。
然而仍然是不安全的,还有效率太低。
具体怎么不安全,后面说。

在这里插入图片描述

4.使用对称加密+非对称加密

这个方案先来解决效率问题。

1.在前期,服务器直接发送公钥P给客户端,即使黑客获取到,也没有意义。
此时,客户端通过公钥P,对自己的对称密钥C进行加密,由于黑客没有服务器的私钥P’,也就无法获取到客户端的对称密钥C。
而在服务器获取到客户端的对称密钥C后,就使用对称加密的方式进行HTTPS请求和响应,这样效率就会提高了。

在这里插入图片描述
2.安全问题实际上还是没有得到解决,因为一旦黑客在最一开始就获取到了服务器的公钥P,就可以对其进行篡改,将其篡改成黑客自己的公钥和私钥。

在这里插入图片描述

  • 1.获取到服务器的公钥P后,将其篡改,并发送自己的公钥H给客户端,公钥本身无法说明自己的可信性,客户端无法识别真伪,会误认为H就是客户端的公钥。
  • 2.客户端将自己的对称密钥通过第一步获取到的"服务器"的公钥H进行加密: C+H-YYY黑客截取到报文后进行解密:YYY+H’= C,从此获取到了客户端的密钥C。
  • 3.黑客再用自己曾经获取到的服务器的公钥P,将密钥C加密后发送给服务器,C+P= str ,发送给服务器,服务器使用自己的私钥P’解密后P’+str=C,获取到了客户端的对称密钥C,从此客户端和服务器使用对称密钥进行通信的所有报文信息,都暴露了。

总结:方案4存在的问题是,客户端无法认证从服务器收到的公钥P是否可信!!!

为了解决这个问题,引入了CA证书这个东西。

5.对称加密+非对称加密+CA证书认证

为了更清楚理解CA证书,先引入几个概念。

5.1数据摘要(数据指纹)

• 数据摘要,其基本原理是利⽤单向散列函数(Hash函数)对信息进行运算,⽣成⼀串固定长度的数字摘要。数字摘要并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改。

• 摘要常见算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率⾮常低)

• 摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常用来进行数据对比。

举个例子:
这里有一篇文章:通过MD5算法后,生成一串固定长度的字符串XXXXXXXXXXXXXXXXXXXXXXXX,这个字符串通常会很长,这个字符串就是数字摘要。

5.2数字签名

• 摘要经过加密,就得到数字签名。

申请证书

在这里插入图片描述
1.申请者需要生成公钥和私钥对,私钥自己保存,公钥,申请者的域名,申请者信息(法人,名字等等),申请者的公钥,这些信息需要生成一个.csr请求文件,提交给CA权威机构进行审核。

重要的是,如果认证成功,证书的主要内容如下:
在这里插入图片描述

其中最重要的信息是:

  • 1.公钥
  • 2.数字签名

在证书的明文信息中,这个公钥信息,是属于申请者的公钥。

而实际上,还有一个公钥私钥对,是CA权威机构专属的公钥和私钥对,是用来生成数字签名的。

数字签名形成过程

关于数字签名,前面说过,就是由数据摘要经过加密后形成的。
但是这怎么加密呢???
就是通过CA机构自己的私钥进行加密的!!!

在这里插入图片描述

  • .csr文件中的明文信息经过MD5等算法后,形成数据摘要,数据摘要再经过CA机构的私钥进行加密后,形成数字签名,数字见面跟明文信息结合起来后,就形成了证书。

这两个公钥私钥是不一样的,一个是CA权威机构自己的公钥私钥对,一个是申请者的公钥私钥对。

CA证书的认证过程

在这里插入图片描述

回到方案5

解释清楚CA证书后,
方案5就是在方案4的基础上,解决了公钥的可信性的问题。
CA机构是世界上唯一的能颁发认证证书的机构,除非他授权当地的一些机构,否则没有任何机构能有权限颁发CA证书。
所以,安全性就得到了保障。


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

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

相关文章

GPT-4-turbo还是大家心中第一!Claude 3竞技场人类投票成绩出炉:仅居第三

Claude 3的竞技场排名终于揭晓了: 在仅仅3天的时间里,20000张投票使得排名的流量达到了前所未有的高度。 最后,Claude 3的"大杯"模型Opus以1233的分数赢得了胜利,成为了第一个能和GPT-4-Turbo匹敌的选手。 "中杯…

QGridLayout网格布局和QVBoxLayout垂直布局有着非常大的差别

QGridLayout网格布局:1.把这块控件划分成一个个的 单元格 2.把你的控件填充进入 单元格 3.这些有关限制大小的函数接口统统失效 setMaximumWidth() setMinimumWidth() setPolicySize()图示:我是用的网格布局,左边放QT…

C# WinForm AndtUI第三方库 Table控件使用记录

环境搭建 1.在NuGet中搜索AndtUI并下载至C# .NetFramework WinForm项目。 2.添加Table控件至窗体。 使用方法集合 1.单元格点击事件 获取被点击记录特定列内容 private void dgv_CellClick(object sender, MouseEventArgs args, object record, int rowIndex, int columnIn…

【Python】装饰器函数

专栏文章索引:Python 原文章:装饰器函数基础_装饰函数-CSDN博客 目录 1. 学习装饰器的基础 2.最简单的装饰器 3.闭包函数装饰器 4.装饰器将传入的函数中的值大写 5. 装饰器的好处 6. 多个装饰器的执行顺序 7. 装饰器传递参数 8. 结语 1. 学习装饰…

利用IDEA创建Java项目使用Servlet工具

【文件】-【项目结构】 【模块】-【依赖】-【】-【JAR】 找到Tomcat的安装路径打开【lib】找到【servlet.jar】点击【确定】 勾选上jar,然后【应用】-【确定】 此时新建文件可以发现多了一个Servlet,我们点击会自动创建一个继承好的Servlet类

STL容器之哈希的补充——其他哈希问题

1.其他哈希问题 ​ 减少了空间的消耗; 1.1位图 ​ 位图判断在不在的时间复杂度是O(1),速度特别快; ​ 使用哈希函数直接定址法,1对1映射; ​ 对于海量的数据判断在不在的问题,使用之前的一些结构已经无法满足&…

基于PSO粒子群算法的三角形采集堆轨道优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 假设一个收集轨道,上面有5个采集堆,这5个采集堆分别被看作一个4*20的矩阵(下面只有4*10),每个模块&…

opencv编程

opencv编程 引言: ​ 本实验旨在介绍使用OpenCV进行图像处理和视频处理的基本操作。OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,提供了丰富的图像和视频处理功能,既可以进行图像的读取、显示…

187基于matlab的弹道目标跟踪滤波方法

基于matlab的弹道目标跟踪滤波方法,扩展卡尔曼滤波(extended Kalman filter, EKF)、转换测量卡尔曼滤波(conversion measurement Kalman filter, CMKF)跟踪滤波,得到距离、方位角、俯仰角误差结果。程序已调…

人工智能|机器学习——DBSCAN聚类算法(密度聚类)

1.算法简介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,簇集的划定完全由样本的聚集程度决定。聚集程度不足以构成簇落的那些样本视为噪声点,因此DBSCAN聚类的方式也可以用于异常点的检测。 2.算法原…

《汇编语言》- 读书笔记 - 第17章-实验17 编写包含多个功能子程序的中断例程

《汇编语言》- 读书笔记 - 第17章-实验17 编写包含多个功能子程序的中断例程 逻辑扇区根据逻辑扇区号算出物理编号中断例程:通过逻辑扇区号对软盘进行读写 代码安装 int 7ch 测试程序效果 实现通过逻辑扇区号对软盘进行读写 逻辑扇区 计算公式: 逻辑扇区号 (面号*8…

CSS基础知识

font-family: "Trebuchet MS", Verdana, sans-serif; 字体栈,浏览器会一个一个试过去看下哪个可以用 font-size16px; font-size1em; font-size100%;//相对于16px 字体大小,需要进行单位换算16px1em font-weightnormal;//400font-weight属性…

YoloV5改进策略:Block改进|自研Block,涨点超猛|代码详解|附结构图

涨点效果 参考模型 参考的Block,如下图: 我对Block做了修改,修改后的结构图如下: 代码详解 from timm.models.layers import DropPathfrom torch import Tensor def channel_shuffle(x: Tensor, groups:

用Java Socket手撸了一个HTTP服务器

作为一个 Java 后端,提供 HTTP 服务可以说是基本技能之一了,但是你真的了解 HTTP 协议么?你知道知道如何手撸一个 HTTP 服务器么?Tomcat 的底层是怎么支持 HTTP 服务的呢?大名鼎鼎的 Servlet 又是什么东西呢&#xff0…

可观测性是什么?新手入门指南!

如果您之前对可观测性重要性,益处,以及组成不甚了解,本文是一个合适的指南手册。 什么是可观测性? 可观测性被定义为根据系统产生的输出数据(如日志,指标和链路追踪)来衡量当前系统运行状态的…

代码理解 pseudo_labeled = outputs.max(1)[1]

import torchls torch.Tensor([[0.2,0.4],[0.3,0.2]]) print(ls.max(1))

STL之deque容器代码详解

1 基础概念 功能: 双端数组,可以对头端进行插入删除操作。 deque与vector区别: vector对于头部的插入删除效率低,数据量越大,效率越低。 deque相对而言,对头部的插入删除速度回比vector快。 vector访问…

Unity Shader实现UI流光效果

效果: shader Shader "UI/Unlit/Flowlight" {Properties{[PerRendererData] _MainTex("Sprite Texture", 2D) "white" {}_Color("Tint", Color) (1, 1, 1, 1)[MaterialToggle] PixelSnap("Pixel snap", float…

简洁的在线观影开源项目

公众号:【可乐前端】,每天3分钟学习一个优秀的开源项目,分享web面试与实战知识。 每天3分钟开源 hi,这里是每天3分钟开源,很高兴又跟大家见面了,今天介绍的开源项目简介如下: 仓库名&#xff1…

海外媒体发稿:7种媒体套餐推广策略解析-华煤舍

有效的媒体宣传策略对于产品或服务的推广至关重要。本文将介绍7种媒体套餐推广策略,帮助您惊艳市场,并取得成功。以下是每种策略的拆解描述: 1. 广告投放 广告投放是最常见的宣传手段之一。通过在各种媒体平台上购买广告,如电视、…