【网络原理】HTTPS详解

一.HTTPS的相关基本概念

  • HTTPS:由于HTTP协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况. 可能会出现运营商劫持,黑客入侵等不利影响, 因此就引入了HTTPS,其本质上就是在HTTP协议的基础上,引入了一个加密层SSM.
  • 什么是运营商劫持?
    例如我们要从搜狗下载一个天天动听.此时就会出现这种情况.
    在这里插入图片描述
    本身是要从搜狗下载天天动听,但是经过运营商之后,下载的链接就变成了QQ浏览器.这个过程就叫做运营商劫持.
  • 明文 : 就是要传输的真实的数据. 你要给服务其发送什么要求.
  • 密文 : 就是针对明文加密之后的内容. 这个内容越离谱,越难,你的明文就越不容易被别人发现.
  • 从明文到密文的过程,就称为加密 ; 从密文到明文的过程, 就称为解密.
  • 密钥 : 加密和解密的过程中都需要涉及如何加密,以及拿到密文之后如何解密 , 这个加密和解密的东西称为密钥.
  • 公钥 : 对外公开的密钥 ; 私钥 : 不对外公开自己保存的密钥, 公钥私钥往往是成对出现的.
  • 对称加密 : 加密和解密时是使用的同一个密钥.
  • 非对称加密 : 加密和解密是使用的不同的密钥. 例如k1,k2这一对密钥, 当使用k1来进行加密时,就使用k2进行解密 ; 使用k2来进行加密时,就使用k1来进行解密.

二. HTTPS 的工作过程

HTTPS的工作过程,本质上就是对HTTP进行数据加密的过程,主要是针对HTTP的header和body这两部分进行加密.加密的手段主要有对称加密和非对称加密.

1.对称加密

  • 顾名思义就是通过对称的方式进行加密,对称就意味着加密和解密使用的是同一种密钥.
  • 优点:
    1. 加密速度快:对称加密的计算量小,因此加密速度相对较快,适合大规模数据的加密处理。
    2. 加密效率高:由于对称加密算法的实现相对简单,它能够高效地在硬件和软件中实现,对系统性能的影响较小。
    3. 资源消耗少:对称加密算法对计算资源和内存的需求较低,这使得它在资源受限的环境中也能高效运行。
    4. 算法公开:对称加密算法是公开的,这意味着它们经过了广泛的审查和测试,从而增强了信任和使用的安全性。
  • 缺点:
    1. 密钥管理复杂:对称加密的主要缺点之一是密钥管理和分发的复杂性。在数据传送前,发送方和接收方必须商定好密钥,并且双方都必须妥善保存密钥。一旦密钥泄露,加密信息的安全就无法得到保障。
    2. 安全性问题:如果密钥在互联网上传输过程中被黑客截获,那么通信过程的安全性将受到严重威胁。
    3. 不适合多方通信:对于涉及多方的通信,需要为每对通信者生成和管理唯一的密钥,这在大规模系统中难以管理。
      在这里插入图片描述
      注:
    • 对称加密的时候,客户端和服务器需要使用同一个密钥.
    • 不同的客户端,需要使用不同的密钥.(如果所有的客户端服务器的密钥都相同,那么加密就失去了它的意义)
    • 因此,每个客户端连接到服务器的时候, 客户端/服务器都需要生成一对随机的密钥,并告知对方.
    • 由上图可知,这样的加密仍然存在很大的问题,黑客很容易就获取到用户传输的内容.

2.非对称加密

  • 非对称加密,就是运用不同的密钥, 对客户端和服务器进行加密,这一对密钥一般都是由服务器生成,然后服务器把生成的公钥交给服务器,然后进行网络通信
  • 优点:
    1. 安全性高:非对称加密算法使用一对密钥,公钥用于加密,私钥用于解密。这种机制确保了即使公钥被广泛传播,只要私钥保持安全,加密信息就无法被未授权者解密。
    2. 身份验证强:由于私钥是保密的,只有拥有私钥的一方才能对信息进行解密,这提供了一种强大的身份验证机制。在数字签名和证书中,这是一种确认信息发送者身份的方法。
    3. 灵活性大:非对称加密允许任何人使用公钥加密信息,而不用担心密钥泄露的问题。这种方式特别适合于需要与许多不同方进行安全通信的场景。
  • 缺点:
    1. 性能较低:与对称加密相比,非对称加密的处理速度较慢,因此不适合加密大量数据。
    2. 资源消耗大:非对称加密算法通常需要更长的密钥和更复杂的计算过程,这导致它们在计算资源和处理时间上比对称加密更为昂贵。
    3. 密钥管理复杂:虽然公钥可以公开分发,但私钥的安全管理仍然是一个挑战。一旦私钥被泄露,整个加密体系的安全性就会受到威胁。

非对称加密的本质就是对对称加密的密钥进行非对称加密, 那为什么不直接使用非对称加密对数据进行加密呢?–>主要是因为非对称加密的成本高,不适合处理大规模数据,因此使用对称加密进行数据的传输和接收,使用非对称加密对数据进行保护

在这里插入图片描述

详细语言解释上述的传输过程

  1. 客户端随机生成对称密钥,假设密钥的值为key1. 服务器这边也会提前生成一对非对称密钥,假设公钥为public, 私钥为private
  2. 然后客户端需要发送一个请求到服务器, 目的是获取公钥public.
  3. 然后,客户端使用服务器传过来的公钥对key进行加密,然后通过公钥public进行数据加密传输
  4. 服务器收到由公钥传输的数据,然后用私钥进行解密,然后用key进行数据传输.

三.引入证书

  • 看似使用非对称加密已经很安全了,但是黑客仍然可以攻破这个加密手段, 黑客可以通过伪造一对公钥和私钥的方法来进行数据窃取.
  • 具体的细节可以参照下图:
    在这里插入图片描述

要解决这个问题最关键的一部就是要保证发过来public公钥的是由服务器生成的,而不是由黑客伪造的public公钥,解决这个问题的手段就是使用让服务器提供一个证书

  • 证书: 可以理解成是一个结构化的字符串, 里面包含了以下信息: 证书发布机构; 证书有效期; 公钥; 证书所有者; 签名…
证书的验证过程:

在这里插入图片描述

  • 所谓的签名,本质上就是一个经过加密的检验和!! 把证书中的其他字段(服务器域名,证书的有效时间等)通过一系列算法(CRC,MD5等) , 得到一个较短的字符串.===>校验和

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

  1. 按照同样的校验和算法,把证书的其他字段都重新算一遍,得到校验和1.
  2. 使用系统中内置的公证机构的公钥,对证书进行解密,得到校验和2. 此时只需比较校验和是否相同即可.
黑客有没有可能篡改该证书?

• 黑客篡改了证书的明文
• 由于他没有CA机构的私钥,所以无法hash之后用私钥加密形成签名,那么也就没法办法对篡改后的证书形成匹配的签名
• 如果强行篡改,客⼾端收到该证书后会发现明⽂和签名解密后的值不一致,则说明证书已被篡改,

证书不可信,从而终止向服务器传输信息,防止信息泄露给黑客黑客整个掉包证书?

• 因为黑客没有CA私钥,所以⽆法制作假的证书(为什么?)
• 所以黑客只能向CA申请真证书,然后用自己申请的证书进行掉包
• 这个确实能做到证书的整体掉包,但是别忘记,证书明文中包含了域名等服务端认证信息,如果整体掉包,客户端依旧能够识别出来。
• 永远记住:黑客没有CA私钥,所以对任何证书都无法进行合法修改,包括自己的

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

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

相关文章

【服务器报错】Pycharm运行服务器代码提示 can‘t open file “本地文件路径“

1. 问题 Pycharm连接远程服务器,代码已经同步,运行时候报错 #模拟报错 bash: line 0: cd: G:/python/hhh/Hi: No such file or directory /home/hhh/anaconda3/envs/hard/bin/python: cant open file G:/python/hhh/hi/hei.py: [Errno 2] No such file…

SpringBootTest测试框架五

示例 package com.xxx;import com.xxx.ut.AbstractBasicTest; import com.xxx.ut.uttool.TestModel; import com.xxx.ut.uttool.TestModelEnum; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired;public class QueryXXXImp…

Keras深度学习框架第二十讲:使用KerasCV中的Stable Diffusion进行高性能图像生成

1、绪论 1.1 概念 为便于后文讨论,首先进行相关概念的陈述。 Stable Diffusion:Stable Diffusion 是一个在图像生成领域广泛使用的技术,尤其是用于文本到图像的转换。它基于扩散模型(Diffusion Models),这…

软件测试金字塔,对号入座,你在哪层?

自从学习了软件测试,脑袋也清晰了,目标也明确了,就是不知道学到哪里了.中间有很多的困难也有很多成就感,你目前在那个阶段呢? 初级测试工程师 技能要求:需求分析,使用等价类边界值等方法进行用例设计,执行功能测试,发现提交跟踪bug,使用禅道,会在测试中会操作数据库进行检查和…

Android Activity 设计详解

文章目录 Android Activity 设计说明1. Activity 的生命周期2. Activity 的启动模式3. Activity 的通信4. Activity 的布局和视图管理5. Activity 的配置变化处理6. Activity 的保存和恢复状态7. Activity 的任务和返回栈 总结 Android Activity 设计说明 在 Android 中&#…

css3 笔记02

目录 01 过渡 02 rotate旋转 03 translate函数 04 真正的3D 05 动画 06 阴影 07 自定义字体库 08 自定义动画库 01 过渡 过渡属性的使用: transition-property:要过渡的css属性名 多个属性用逗号隔开 过渡所有属性就写all transition-duration: 过渡的持续时间 s秒 …

万博智云×华为云 | HyperBDR云容灾上架,开启联营联运新篇章

日前,万博智云HyperBDR云容灾正式入驻华为云云商店,成为华为云基础软件领域联营联运合作伙伴。通过联营联运,双方将进一步加深在产品、解决方案、渠道拓展等多方面的强强联合,为企业提供更加安全、高效的数据保护解决方案&#xf…

力扣503. 下一个更大元素 II

Problem: 503. 下一个更大元素 II 文章目录 题目描述思路复杂度Code 题目描述 思路 由于此题是环形数组,我们在利用单调栈模板的基础上还需要将给定数组扩大一倍,但实际上我们只需要利用取余的操作模拟扩大数组即可(具体操作看代码。在解决有…

【简单介绍下容器是什么?】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

c++ (命名空间 字符串)

思维导图&#xff1a; 定义自己得命名空间myspace,在myspace中定义string类型变量s1,再定义一个函数完成字符串逆置 #include <iostream> #include <cstring> //定义自己得命名空间myspace,在myspace中定义string类型变量s1,再定义一个函数完成字符串逆置 using n…

python 办公自动化-生成ppt文本和图

最终样式 代码实现 # 可编辑折线+写入文字 成功 # 问题: 设置字体类型和加粗和字体为微软雅黑,是只改了字母和数字的字体,中文没变化 pip install pptx_ea_font 这个库可以解决这个问题 import pandas as pd import pptx_ea_font import matplotlib.pyplot as plt from pp…

社交媒体数据恢复:云叙

在使用云盘的过程中&#xff0c;由于误操作或其他原因&#xff0c;我们可能会遇到数据丢失的问题。了解云盘数据恢复的原理和技巧对于确保云盘数据安全非常重要。接下来&#xff0c;我将为您提供一份关于云盘数据恢复的教程。 一、文件恢复 当您发现文件丢失或损坏后&#xff0…

Wpf 使用 Prism 实战开发Day26

首页待办事项编辑和完成以及备忘录编辑功能 当用户双击待办事项或备忘录的时候&#xff0c;希望能进行编辑待办事项及备忘录的功能 一.在IndexView.xaml 视图&#xff0c;为待办和备忘录添加双击编辑功能 1.首先引入一个 behaviors 命名空间&#xff0c;用于进行处理鼠标双击…

K8S认证|CKA题库+答案| 14. 排查故障节点

目录 14、排查集群中的故障节点 CKA v1.29.0模拟系统 下载试用 题目&#xff1a; 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、查看节点状态 ​3&#xff09;、登录故障节点并提权 4&#xff09;、检查kubelet状态 5&#xff09;、 修复kubelet进程…

实现按块复制元素的进阶技巧

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、按块复制元素的重要性 二、使用LED模块创建数组并复制 三、实现按块复制的具体步骤 四…

隆道专属商城 | 助力企业跨平台整合优势资源,解决采购寻源比价难题!

数字化采购时代&#xff0c;企业面临着日益激烈的市场竞争&#xff0c;如何优化资源配置、降低采购成本、提高采购效率成为企业追求的核心目标。当前&#xff0c;网上商城凭借其强大的供应链资源整合能力&#xff0c;为企业内部采购商城的搭建提供了独特的优势&#xff0c;已然…

Qt自定义标题栏

效果如下&#xff1a; 代码如下&#xff1a; // widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr…

加速模型训练 GPU cudnn

GPU的使用 在定义模型时&#xff0c;如果没有特定的GPU设置&#xff0c;会使用 torch.nn.DataParallel 将模型并行化&#xff0c;充分利用多GPU的性能&#xff0c;这在加速训练上有显著影响。 model torch.nn.DataParallel(model).cuda() cudnn 的配置&#xff1a; cudnn.…

echarts配置记录,一些已经废弃的写法

1、normal&#xff0c;4.0以后无需将样式写在normal中了 改前&#xff1a; 改后&#xff1a; DEPRECATED: normal hierarchy in labelLine has been removed since 4.0. All style properties are configured in labelLine directly now. 2、axisLabel中的文字样式无需使用te…

1.Windows系统与Linux系统文件类型的大致区别

1.Windows系统常见的文件类型 2.Linux系统常见的文件类型 3.Windows系统和Linux系统文件扩展名区别