HTTPS是什么,详解它的加密过程

目录

1.前言

2.两种加密解密方式

2.1对称加密

2.2非对称加密

3.HTTPS的加密过程

3.1针对明文的对称加密

3.2针对密钥的非对称加密

3.3证书的作用


1.前言

  我们知道HTTP协议是超文本传输协议,它被广泛的应用在客户端服务器上,用来传输文字,图片,视频,js,html等.但是这种传输如果经过了黑客的路由器或者别有用心的人的设备,可以很轻松的破解并修改我们的内容,这种协议的安全性得不到保障.为了解决这种问题,我们引入了HTTPS,它是基于HTTP协议的一种加密安全协议,可以把HTTP协议传输的内容进行加密传输,让黑客或者别有用心的人破解不了.

2.两种加密解密方式

2.1对称加密

   我们首先要说明一个概念就是HTTP是明文传输的,如果我们想让他被加密,那么就需要用到数据加密.那么我们应该如何对正文部分进行加密呢?考虑到资源消耗成本问题还有揭秘问题.我们可以使用对称加密对数据进行加密,即加密和解密的算法都是同一个密钥.

2.2非对称加密

  而非对称加密,加密和解密采用的是两个密钥 ,如k1,k2这两个密钥是成对的,k1用来加密,此时k2就用来解密.也可以使用k2加密 ,k1解密.我们可以把一个密钥公开出去,而这个公开出去的密钥,就是公钥,还有一个密钥自己保存好,这个密钥就是私钥.手里只有一把的话,是无法知道另一把是啥的.

  看起来非对称加密很安全,但是这种加密方式,所需要消耗的系统资源开销也更大.

那么HTTPS是如何进行加密的呢?

3.HTTPS的加密过程

我们站在黑客的角度来看,如果一个HTTP请求或者响应进行传输,在不考虑服务器被黑的情况下,传递到服务器之前,如果黑客想拦截的话,则需要在传递的过程中拦截.

如下图所示:

数据首先从客户端传递到服务器的过程中被黑客拦截了.如果是HTTP明文传输,那么就会被黑客直接拿到数据,这样,黑客如果想篡改数据或者拿到隐私去做违法犯罪的事情就很容易.

那么我们该如何在尽可能不影响效率的情况下对HTTP请求进行加密呢?

3.1针对明文的对称加密

我们可以使用对称加密我们的数据,即客户端和服务器公用同一个密钥,这样黑客拿到数据以后就破解不了了

我们需要注意两点

1.对称加密的时候,客户端和服务器用的是同一个密钥

2.不同的客户端的,用的密钥都不同,

这也就意味着,每个客户端链接服务器的时候,都需要生成一个随机的密钥,并且告诉给服务器.也不一定是客户端生成,服务器生成并且告诉给客户端也可以,

但是这个密钥生成的过程,很容易被黑客拿到,即告诉了客户端的时候,黑客也可以拿到这个这个密钥,哪就形同虚设了.

那么这种情况应该怎么办呢? 我们可以使用非对称加密把密钥进行单独的密文传输.

3.2针对密钥的非对称加密

我们使用非对称加密的主要目的就是把明文密钥进行加密,确保密钥的安全性.

这里有同学可能会问,那么为什么不能直接把明文对称加密呢,而是要大费周章的这样搞?原来这是因为非对称加密使用的系统资源远大于对称加密,如果大规模使用,就很难承担了.

我们让服务器生成公钥和私钥,公钥可以告诉所有人,而私钥只有服务器自己知道.客户端就可以使用公钥对密钥加密,这样黑客就算拿到了这个密钥,因为他没有解密所需的私钥,也解不开这个密钥.

只要这个对称密钥的数据到达服务器,后续就可以客户端和服务器通过这个密钥来进行交流,黑客就无法破解后续的内容了,

上述过程看似天衣无缝,但是在聪明的黑客眼里,还是很容易破解,即使用中间人攻击

服务器可以创建自己的公钥和私钥,那么黑客也可以用同样的方式,创建出一对公钥和私钥,冒充自己是服务器,

在服务器拿到了基于pub1加密的key 的时候,自然可以通过自己的私钥解密,也就相信了是这么回事.后续的交流都是key,而客户端全程浑然不知.他只是拿到了假的公钥然后加密传给黑客,黑客解密后就拿到了key.然后通过服务器的pub1加密,伪造自己是客户端传给服务器.

这种方法如何解决呢?最关键的一点,在客户端拿到公钥的时候,要是有办法验证这个公钥是不是真的.而不是黑客给的.

3.3证书的作用

要求服务器这边提供一个证书.

证书是一个结构化的数据结构,有很多属性.

如:服务器的域名,公钥,证书有效期等

证书会有一个签名,里面本质上是一个加密的校验和,可以把证书其它字符进行一系列的算法得到一个校验和,如果两份数据一样,即校验和一样,那么就说明是一样的,如果不一样,则两份数据不一样.就是这个公钥有问题.

客户端拿到证书以后主要做两件事:

1.用一样的算法进行计算,得到校验和1

2/使用系统内置的公证机构公钥,对证书的签名进行解密,得到校验和2.

对比一下就知道是不是真的了.

市面上的公证机构没几家,基本上都在操作系统里面.公钥也都在

1.如果黑客直接修改公钥,不修改签名,那么校验和不一样,就识别出来了,

2.如果黑客修改公钥,也尝试修改签名,但是他不知道私钥是什么,所以无法生成加密的签名.

如果黑客拿自己的私钥加密呢?客户端用公证机构的公钥解密也会失败.

上述操作,就把客户端篡改证书的行为给堵死了.

所以这种方法是可行的.这也是市面上流行的方法.

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

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

相关文章

【牛客】VL60 使用握手信号实现跨时钟域数据传输

题目描述 分别编写一个数据发送模块和一个数据接收模块,模块的时钟信号分别为clk_a,clk_b。两个时钟的频率不相同。数据发送模块循环发送0-7,在每个数据传输完成之后,间隔5个时钟,发送下一个数据。请在两个模块之间添加…

Harbor高可用(haproxy和keepalived)

Harbor高可用(haproxy和keepalived) 文章目录 Harbor高可用(haproxy和keepalived)1.Harbor高可用集群部署架构1.1 主机初始化1.1.1 设置网卡名和ip地址1.1.2 设置主机名1.1.3 配置镜像源1.1.4 关闭防火墙1.1.5 禁用SELinux1.1.6 设…

【力扣hot100】刷题笔记Day17

前言 今天竟然不用开组会!天大的好消息,安心刷题了 46. 全排列 - 力扣(LeetCode) 回溯(排列) class Solution:def permute(self, nums: List[int]) -> List[List[int]]:# 回溯def backtrack():if len(…

项目整合管理 -2024年高项第4版(附思维导图)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、项目整合管理概述二、 项目整合管理的目标三、项目整合管理的过程组1.制定项目章程2.制定项目管理计划3. 指导与管理项目工作4.管理项目知识5.监控项目工作…

MyBatis 学习(四)之 SQL 映射文件

目录 1 SQL 映射文件介绍 2 select 元素 3 insert 元素 4 update 和 delete 元素 5 sql 元素 6 parameterType 元素 7 resultType 元素 8 resultMap 元素(重要) 9 参考文档 1 SQL 映射文件介绍 映射器是 MyBatis 中最复杂并且是最重要的…

逆变器专题(16)-构网型逆变器与跟网型逆变器

相应仿真原件请移步资源下载 现如今,常规的逆变器控制方法主要分为跟网型以及构网型逆变器 跟网型逆变器即常规意义上的并网逆变器,即输出电流直接接入大电网,通常为电流源型逆变器,其输出电流的相位与频率时随着电网电压而随时进…

GitHub Copilot extension activation error: ‘No access to GitHub Copilot found‘

好不容易学生认证通过了,打开vscode用copilot结果一直报这个错误。我的原因是:还未给copilot授权, 通过了学生认证后要进入这里进行授权:

常见外设学习以及无线通信频率

常见外设 UART UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种异步、串行、全双工的通信总线。 UART 有3根线,分别是:发送线(TX)、接收线(RX&#xff…

抽象类与抽象方法

文章目录 抽象类抽象类的特点 抽象方法抽象方法的特点 模板设计模式模板设计模式能解决的问题示例 #抽象类与抽象方法 抽象类 用abstract关键字来修饰一个类时,这个类就叫抽象类。 public abstract 类名{... }抽象类的特点 1)抽象类不能被实例化。 2&…

新闻网站封锁AI爬虫 AI与新闻媒体博弈继续

随着ChatGPT等新兴AI模型的兴起,它们所依赖的网络爬虫正面临来自全球主流新闻网站的大规模封锁。Richard Fletcher博士团队对十个国家主流新闻网站的统计发现,到2023年底,48%的网站屏蔽了OpenAI的爬虫,24%屏蔽了Google的爬虫。那么…

批量自动加好友神器!微信快速扩友秘籍!

对于一些个人或者企业来说,传统的人工添加好友方式往往会出现效率低下,费时费力的问题。那么,有没有一种快速、便捷、安全的方式来解决这个问题呢?答案当然是肯定的,那就是通过使用微信管理系统来解决这一问题。 在微…

缓存穿透解决方案之布隆过滤器

布隆过滤器可以快速判断数据是否存在,避免从数据库中查询数据是否存在,减轻数据库的压力 布隆过滤器是由一个初值为0的bit数组和N个哈希函数,可以用来快速的判断某个数据是否存在 当我们想要标记某个数据是否存在时,布隆过滤器会…