【Linux】图解详谈HTTPS的安全传输

文章目录

      • 1.前置知识
      • 2.只使用对称加密
      • 3.只使用非对称加密
    • 因为私钥加密只能公钥解开,公钥加密只能私钥解开
      • 4.双方都是使用非对称加密
      • 5.非对称加密 + 对称加密
      • 6.非对称加密+对称加密+CA认证
        • (一)CA认证
        • (二)https
    • (1)如果中间人像之前的方案那样子伪造假的证书发给对方呢?
    • (2)如果中间人发的就是申请的自己的证书呢?

1.前置知识

在了解https之前,我们需要知道一些概念。

数据指纹:我们简单的将其理解为我们发送的数据的摘要,然后通过特定的哈希算法生成的一个哈希值。它具有唯一性。

数据签名:数据指纹经过加密后边就形成了数据签名。

对称加密:我们可以将其理解为一篇密文, 需要密钥才能解开。
非对称加密:这里也是将其理解为一篇密文,但这里一对密钥,分为公钥和私钥,用公钥加密的密文只能用私钥解开,用私钥加密的密文只能用公钥解开,私钥一般是个人持有,公钥一般是发布出去的。

我们在用http传输数据的时候,通常都是明文传输,这就伴随着我们发送的内容可能会被人截取到,这时候如果有一些不怀好意的人想要获取我们的数据,就很有可能会获取到,造成信息的泄露,所以就有了https的出现。下面我们一个个的思考解决方案。

2.只使用对称加密

如果我们的服务端和客户端都使用对称加密,用密钥加密的内容发送给对方,对方再用密钥来解密,这样子是否可以呢?
在这里插入图片描述
我们这样子一看,我们用密钥加密的内容传输,即使中间有人截到了我们的内容,是不是也无法解密。
在这里插入图片描述
但是,这里有个问题:我们的密钥是不是也要被对方拿到才行?
那么如果我们在交换密钥的过程中,密钥肯定是一个裸露的状态呀。那如果这时候中间人就把密钥劫持到了呢?
这时候假如你要发的信息,中间人只要将拿到的密钥一解,不就可以知道你的信息了吗?
在这里插入图片描述
所以这种方案是不可以的。

———————————————————————————————

3.只使用非对称加密

既然你的对称加密对方会拿到密钥,那我换成非对称加密,在开始的时候,将公钥发给客户端,客户端再用公钥加密发给服务端。

因为私钥加密只能公钥解开,公钥加密只能私钥解开

在这里插入图片描述
从客户端发送信息到服务端是安全的,因为只有服务端的私钥才能解开
但是从服务端发送信息给客户端是不是不安全?因为公钥可能也会被中间人拿到,那样子的话中间人就能拿到信息了。
那现在的问题就是服务端到客户端不安全,那么我们是否可以在客户端也像服务端那样子呢?

4.双方都是使用非对称加密

在这里插入图片描述

  • 首先我们先交换双方的公钥
  • 然后由于只有对方自己才有私钥,也就是说用对方的公钥加密的内容只有对方自己的私钥才能解开。

但是非对称加密会有一个缺点,就是通信效率会变慢,但是这样子真的就安全了吗?

在这里插入图片描述
首先,客户端和服务端不知道对方收到的公钥是不是对方的呀!!!
那么中间人就可以抓住这个特点,

  • 在交换公钥期间,把服务器要发送的公钥换成自己的发送给客户端
  • 客户端要发送给服务端的公钥,中间人就把这个公钥劫持,换成自己的公钥发给对方
  • 这样子是不是就完美的扮演了一个中间人拿到信息了。

5.非对称加密 + 对称加密

由于双方都使用非对称加密效率太慢了,我们只需要让对方安全的拿到对称密钥就可以了,那么我们可以这样子:让服务端使用非对称加密,客户端使用对称加密
在这里插入图片描述

  • 客户端申请通信
  • 服务端发送公钥
  • 客户端将公钥加密对称密钥发给服务端
  • 往后都使用公钥通信

但是这里也还是存在着一个问题,就是不知道发来的公钥是不是服务端的!
如果中间人像上一个方案那样子,将自己的公钥发过去,客服端也不知道

6.非对称加密+对称加密+CA认证

(一)CA认证

我们归根结底的问题就是不知道公钥是不是对方的,所以我们就引入证书。

CA认证:服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性。

CA认证的流程:
在这里插入图片描述
当服务端申请CA证书的时候,CA机构会对该服务端进⾏审核,并专⻔为该⽹站形成数字签名,过程如
下:

  1. CA机构拥有⾮对称加密的私钥A和公钥A’
  2. CA机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要
  3. 然后对数据摘要⽤CA私钥A’加密,得到数字签名S
    服务端申请的证书明⽂和数字签名S 共同组成了数字证书,这样⼀份数字证书就可以颁发给服务端了

而我们很多的浏览器和设备在出厂时就内置了CA的公钥,是可以解开查看证书内容的

(二)https

在这里插入图片描述
我们来看看接下来的几个问题:

(1)如果中间人像之前的方案那样子伪造假的证书发给对方呢?

这一点我们这时候就不用担心了,因为即使你中间人解开了证书,想伪造一份假证书,证书加密需要我们的私钥才能进行加密,而私钥世界上只有CA机构才有,所以中间人是造不出来假证书的。

(2)如果中间人发的就是申请的自己的证书呢?

在这里插入图片描述
我们也不用太担心,因为我们可以看到证书内容里包含了很多的信息,如果中间人申请了证书,域名肯定是不一样的,况且证书里面还包含了申请者的信息,那么即使追究,也能找到是谁。

像这种中间人攻击的方式,我们将其称为 “MTM攻击”

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

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

相关文章

信息学奥赛的最佳启蒙阶段是小学还是初中?

信息学奥赛(NOI)近年来越来越受家长和学生的关注,尤其是在编程教育不断升温的背景下,信息学竞赛成为了许多家庭的教育选择之一。家长们往往关心的是:孩子应该在什么年龄段开始接触信息学竞赛,才能打下坚实的…

ArcEngine C#二次开发图层处理:根据属性分割图层(Split)

需求:仅根据某一属性,分割图层,并以属性值命名图层名称保存。 众所周知,ArcGIS ArcToolbox中通过Split可以实现图形分割一个图层,以属性值命名图层,如下图所示。 本文仅仅依据属性值,将一个shp…

统信服务器操作系统【qcow2 镜像空间扩容】方案

使用 qcow2 镜像安装系统,当默认安装系统存储空间不够用时,进行自定义扩容 文章目录 准备环境扩容步骤一、检查环境信息1.查看镜像信息2.查看镜像分区信息3.确认需要扩容的分区名二、扩容1.备份镜像2.创建新的镜像文件,并指定空间3.将系统扩容到新的镜像三、扩容 lvm 分区四…

自然语言处理实战项目:从理论到实现

一、引言 自然语言处理(NLP)是计算机科学、人工智能和语言学交叉的领域,旨在让计算机能够理解、处理和生成人类语言。随着互联网的飞速发展,大量的文本数据被产生,这为自然语言处理技术的发展提供了丰富的素材&#xf…

从响应到预见:前瞻性客户服务策略的实践与探索

在快速变化的商业环境中,客户服务已不再是简单的需求响应与问题解决,它正逐步演变为企业竞争力的核心要素之一。传统的“响应式”服务模式虽能满足基本的客户需求,但在追求极致客户体验和构建长期忠诚度的今天,显然已显不足。因此…

使用 Puppeteer-Cluster 和代理进行高效网络抓取: 完全指南

文章目录 一、介绍?二、什么是 Puppeteer-Cluster?三、为什么代理在网络抓取中很重要?四、 为什么使用带代理的 Puppeteer-Cluster?五、分步指南: 带代理的 Puppeteer 群集5.1. 步骤 1:安装所需程序库5.2. …

ERROR:start workflow error,dolphinscheduler log重复刷屏(死循环)直至磁盘存满

在使用ds过后发现,我虚拟机中的磁盘内存全部沾满了 查看目录下大于100M的文件: find / -size 100M 查看后发现问题在于ds产生的日志文件特别大而且多, 查看日志后发现日志中一直都在死循环错误:start workflow error 等 其中文件…

命令行gcc -v和g++ -v输出版本不一致

命令行gcc -v和g -v输出版本不一致 前言:本文初编辑于2024年9月27日 CSDN主页:https://blog.csdn.net/rvdgdsva 博客园主页:https://www.cnblogs.com/hassle 博客园本文链接:https://www.cnblogs.com/hassle/p/18435916 赞美大…

Java ERP管理系统源码解析:微服务架构实践Spring Cloud Alibaba与Spring Boot

在当今数字化浪潮的推动下,企业对于高效、稳定且易于扩展的管理系统需求日益增长。为了满足这一需求,我们精心打造了一款基于Java技术的鸿鹄ERP(Enterprise Resource Planning)管理系统。该系统充分利用了Spring Cloud Alibaba、S…

局域网广域网,IP地址和端口号,TCP/IP 4层协议,协议的封装和分用

前言 在古老的年代,如果我们要实现两台机器进行数据传输, A员工就得去B员工的办公电脑传数据(B休息,等A传完),这样就很浪费时间 所以能不能不去B的工位的同时,还能传数据。这时候网络通信就出来…

一文彻底掌握inout双向端口

inout端口信号在FPGA中应用还是很广泛的,特别是一些总线通信、数据交互的场景,比如i2c、spi等等。 一、inout的基本概念 Inout 端口的实现基础是三态门。 三态门具有三种输出状态,即高电平、低电平以及高阻态(Z)。 …

K8S:开源容器编排平台,助力高效稳定的容器化应用管理

云计算de小白 Kubernetes(简称K8s)是一个开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。 K8S诞生于Google,基于其多年在生产环境运行容器的经验,目前已成为现代微服务架构和云原生应用的核心技术。 图…

Leetcode 707. 设计链表

1.题目基本信息 1.1.题目描述 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性…

代码随想录冲冲冲 Day58 图论Part9

47. 参加科学大会(第六期模拟笔试) 根据昨天的dijkstra进行堆优化 使用的原因是点多但边少 所以直接对于边进行操作 1.对于priority_queue来说 这是最小堆, 小于的话就是最大堆 之后由于是根据边来说的 所以新建一个Edge并且初始化一下 之后由于使用…

数字孪生赋能BMS:开启电池管理新纪元

这几天,全世界的媒体几乎都在报道黎巴嫩爆炸案。原本此类地缘冲突的影响力是较为有限的,但是这次的事件不太一样:这次爆炸的,是几千个传呼机。 这一事件迅速引发了全球范围内对于电子设备安全性的广泛关注:随着社会日…

[EBPF] 实时捕获DM数据库是否存在SQL阻塞

1. 介绍 eBPF(extened Berkeley Packet Filter)是一种内核技术,它允许开发人员在不修改内核代码的情况下运行特定的功能。eBPF 的概念源自于 Berkeley Packet Filter(BPF),后者是由贝尔实验室开发的一种网…

如何选择数据库架构

选择合适的数据库架构是一个复杂的过程,它取决于多种因素,包括应用程序的需求、数据量的大小、并发访问量、数据一致性要求、预算以及技术团队的熟悉程度等。以下是一些关键的步骤和考虑因素,帮助你选择合适的数据库架构: 1. 分析…

JavaScript对象方法

对象方法 已经讨论过hasOwnProperty(),propertyIsEnumerable()和isPrototypeOf()三个方法。 以及静态函数,Object.create(),Object.getPrototypeOf()等。 toString()方法 无参数,返回一个表示调用这个方法的对象值的字符串。默认返回信息很少&#x…

基因组学的未来:DAP-seq技术如何塑造

在生物科学的探索之旅中,我们一直在寻找更高效、更精确的方法来揭示基因的秘密。今天,我们自豪地介绍一种革命性的技术——DAP-Seq,它正在改变我们对基因表达调控的理解。 什么是DAP-Seq? DAP-Seq,即DNA亲和纯化测序技…

DataWhale x南瓜书学习笔记 task04笔记

线性判别分析(LDA) 前提假设:各类样本的协方差矩阵相同且满秩LDA的思想:1.设法让训练样例集投影到一条直线上,2.同类样例的投影点尽可能接近,异类样例的投影点尽可能远离,3.在对新样本进行分类时…