【网络原理】HTTPS详解

news2024/11/16 22:32:07

一.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.coloradmin.cn/o/1712667.html

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

相关文章

UI线程和工作线程

引用:windows程序员面试指南 工作线程 只处理逻辑的线程,例如:启动一个线程,用来做一个复杂的计算,计算完成之后,此线程就自动退出,这种线程称为工作线程 UI线程 Windows应用程序一般由窗口…

CIM分级

定义 以建筑信息模型(BIM)、地理信息系统(GIS)、物联网(IoT)等技术为基础,整合城市地上地下、室内室外、历史现状未来多维多尺度信息模型数据和城市感知数据,构建起三维数字空间的城…

护网在即,请拿你走你的蓝队神器!~

前言 养兵千日用兵一时,护网已经临近了,你是不是还在考虑现场一系列可能发生的情况?提前找好工具,避免在甲方面前太尴尬? 你需要它! 据我了解,去年国护的时候就已经有不少攻城狮在使用我们的蓝队应急响应工具箱&am…

设计模式——工厂三兄弟之工厂方法

1.业务需求 ​ 大家好,我是菠菜啊。在介绍这期工厂方法模式前,我们先来看看这样的需求:升级之前的计算器,增加对数和指数运算。(看这篇文章前可以先回顾《设计模式——工厂三兄弟之简单工厂》这篇) 2.初…

Comfyui导出图片的命名技巧,日期文件夹

种子序号命名:%KSampler.seed% 图片宽高序号命名:%Empty Latent Image.width%x%Empty Latent Image.height% 年月日:%date:yyyy-MM-dd% 时分秒:%date:hhmmss% 年月日种子序号:%date:yyyy-MM-dd%/%KSampler.seed%

「清新题精讲」CF260E - Dividing Kingdom

CF260E - Dividing Kingdom D e s c r i p t i o n \mathrm{Description} Description 给定 n n n 个点 ( x i , y i ) (x_i,y_i) (xi​,yi​) 和长度为 9 9 9 的数列 a a a,满足 ∑ i 1 n a i n \sum_{i1}^na_in ∑i1n​ai​n。通过 2 2 2 条平行于 x x …

Mac连接虚拟机(Linux系统)

1.确定虚拟机的IP地址 ifconfig //终端命令,查询ip地址 sudo apt install net-tools 安装完成后再次执行 ifconfig: 2.安装SSH(加密远程登录协议) (1).安装OpenSSH服务器软件包: sudo apt-get install openssh-ser…

leetCode.86. 分隔链表

leetCode.86. 分隔链表 题目思路&#xff1a; 代码 class Solution { public:ListNode* partition(ListNode* head, int x) {auto lh new ListNode(-1), rh new ListNode(-1);auto lt lh, rt rh;for(auto p head; p; p p->next ) {if(p->val < x) {lt lt->…

33 mid 55. 跳跃游戏

贪心算法&#xff1a; class Solution {public boolean canJump(int[] nums) {int leftBorder 0;for (int i 0; i <nums.length; i) {if(i<leftBorder){leftBorderMath.max(leftBorder,inums[i]);}if(leftBorder>nums.length-1){return true;}}return false;} }

精酿啤酒:品质与口感对啤酒消费趋势的影响

随着消费市场的不断变化&#xff0c;啤酒消费趋势也在发生着演变。在这个过程中&#xff0c;品质与口感成为了影响啤酒消费趋势的重要因素。对于Fendi club啤酒而言&#xff0c;其卓着的品质和与众不同的口感对啤酒消费趋势产生了深远的影响。 品质的提升是推动啤酒消费趋势发展…

fastadmin部署后JSHint报错,导致Config::getValueByName()无法获取到值

问题 解决方案 一、本地 在phpstorm中&#xff0c;依次点击【设置】-【JSHint】-【取消勾选Enable】-【应用】即可。

Neural Filters:深度模糊

Ps菜单&#xff1a;滤镜/Neural Filters/摄影/深度模糊 Neural Filters/PHOTOGRAPHY/Depth Blur 深度模糊 Depth Blur滤镜可以在图像中创建环境深度以提供前景或背景对象。 “深度模糊”滤镜利用 AI 技术&#xff0c;分析图像的深度信息&#xff0c;生成一个深度图&#xff0c;…

爬虫案例-亚马逊反爬分析-验证码突破(x-amz-captcha)

总体概览&#xff1a;核心主要是需要突破该网站的验证码&#xff0c;成功后会返回我们需要的参数后再去请求一个中间页&#xff08;类似在后台注册一个session&#xff09;&#xff0c;最后需要注意一下 IP 是不能随意切换的 主要难点&#xff1a; 1、梳理整体反爬流程 2、验证…

【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析

&#x1f525; 个人主页&#xff1a;空白诗 &#x1f525; 热门专栏&#xff1a;【JavaScript】 文章目录 &#x1f33f; 引言五、 Destructuring Assignment - 解构赋值&#xff0c;数据提取的艺术 &#x1f3a8;&#x1f4cc; 数组解构&#x1f4cc; 对象解构&#x1f4cc; 特…

iOS自动连接已知Wi-Fi功能的实现

首先需要在配置文件申请的时候将hotspot勾选上&#xff0c;之后还要在x-code里添加对应的配置&#xff0c;由于我们并没有用到获取设备周边Wi-Fi的功能&#xff0c;所以就没申请相关权限 相关连接Wi-Fi代码如下&#xff1a; #import <NetworkExtension/NetworkExtension.h&…

LeetCode583:两个字符串的删除操作

题目描述 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 代码 解法1 /*dp[i][j]&#xff1a;以i-1为结尾的wrod1中有以j-1为尾的word2的个数为了让word1和word2相同&#xff0c;最少操作…

排序专题(常见8种)【思路解析和代码实现】【2w字长文】

排序专题&#xff08;常见8种&#xff09; 1.排序的概念及其运用 1.1排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中…

如何在文档中有效添加网格:技巧与实例

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;为何添加网格至关重要 二、网格添加的基本步骤 1. 确定网格类型和样式…

解决 Echarts 图 tooltip 层级太高穿透问题

问题场景&#xff1a;Echarts 图 tooltip 是自动轮播的&#xff0c;当点击某个区域出现弹窗时&#xff0c;tooltip和弹窗同时显示&#xff0c;没在遮罩层下面&#xff0c;查看tooltip的层级显示99999&#xff0c;所以这里改一下tooltip的层级。 设置 extraCssText: "z-ind…

vue3 使用vant

使用前提&#xff1a; vite创建的vue3项目 vanthttps://vant-ui.github.io/vant/#/zh-CN/home npm i vant 引入样式&#xff1a; main.js import vant/lib/index.css vant封装 import { showLoadingToast,closeToast,showDialog,showConfirmDialog } from vant;export func…