【网络原理】HTTPS详解

server/2024/9/18 12:33:50/ 标签: 网络, https, iphone, 网络协议, http, java, eclipse
http://www.w3.org/2000/svg" style="display: none;">

一.HTTPS的相关基本概念

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

二. HTTPS 的工作过程

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

1.对称加密

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

2.非对称加密

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

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

https>https://img-blog.csdnimg.cn/direct/fefbe691841c4867873275a5645417db.png" alt="在这里插入图片描述" />

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

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

三.引入证书

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

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

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

https>https://img-blog.csdnimg.cn/direct/e41e23c8edec49db9a19332f90dc6785.png" alt="在这里插入图片描述" />

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

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

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

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

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

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


http://www.ppmy.cn/server/44959.html

相关文章

TCP/UDP的连接机制

TCP/UDP的连接机制 TCP的连接机制 TCP(Transmission Control Protocol)是一种面向连接的协议,提供可靠的、按顺序的数据传输服务。TCP的连接机制包括连接建立、数据传输和连接终止。 1. 连接建立(三次握手) TCP通过…

梳理清楚的echarts地图下钻和标点信息组件

效果图 说明 默认数据没有就是全国地图, $bus.off("onresize")是地图容器变化刷新地图适配的,可以你们自己写 getEchartsFontSize是适配字体大小的,getEchartsFontSize(0.12) 12 mapScatter是base64图片就是图上那个标点的底图 Ge…

flink 和 clipper搭配使用

Flink是一个用于流处理和批处理的开源框架,可以实时数据处理和分析。 Clipper 是一个用于机器学习模型服务化的开源框架,能够轻松部署和管理机器学习模型,使模型可以通过统一的接口提供在线推理服务。 flink和clipper搭配使用: …

2024年趋势:搭建知识中台工具推荐

在2024年,众多企业开始对知识管理非常重视,搭建一个有效的知识中台成为企业的追求。知识中台能集中存储、管理、分享和应用企业内部的知识,通过智能化方式提高知识利用率 。下面,LookLook同学为大家推荐几款搭建知识中台的工具&am…

Linux与Windows:操作系统的选择与个人体验

在我使用Linux和Windows这两种操作系统的过程中,我发现了一些让我感到顺理成章或者费解的地方。Linux和Windows各有其优势和劣势,每个人对它们的偏好也不尽相同。在这篇文章中,我将分享我的个人看法和体验,探讨这两种操作系统的特…

开源模型应用落地-LangSmith试炼-入门初体验-数据集评估(三)

一、前言 LangSmith是一个用于构建生产级 LLM 应用程序的平台,它提供了调试、测试、评估和监控基于任何 LLM 框架构建的链和智能代理的功能,并能与LangChain无缝集成。通过使用LangSmith帮助开发者深入了解模型在不同场景下的表现,让开发者能…

HTML静态网页成品作业(HTML+CSS)——动漫海贼王介绍网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

nginx配置文件

nginx是一个高性能的HTTP和反向代理服务器,可以用来搭建静态网站、负载均衡、反向代理、动态缓存等等。下面是一个大致一万字左右的nginx配置文件示例: # 监听的端口 listen 80;# 默认网站根目录 root /var/www/html;# 默认首页 index index.html index…

【python】python小区住房数据可视化(源码+数据)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

接下来的目标与内容

从发布第一篇文章以来,大部分时间都是想到什么就写什么,比较的杂乱,看起来也不是那么条例清晰。 那么接下来我准备发以下几个方面的内容: 1:继续发有关msp430f5529标准库的内容,也是同时为电赛做准备,也当做监督自己…

2024年JAVA、C++、Pyhton学哪种语言更容易进国央企?

对于不同编程语言在进入国有企业的观点大体是正确的,不过在实际选择时还需考虑一些因素。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信…

【Vue】性能优化

使用 key 对于通过循环生成的列表,应给每个列表项一个稳定且唯一的 key,这有利于在列表变动时,尽量少的删除和新增元素。 使用冻结的对象 冻结的对象(Object.freeze(obj))不会被响应化,不可变。 使用函…

黑马聚合的分类及实现

1、什么是聚合? 聚合是对文档数据的统计、分析、计算 聚合的常见种类有哪些? 桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组 度量(…

手把手教你如何使用BurpSuite

Burp Suite是什么? 概述 Burp Suite是由PortSwigger公司开发的一款综合性Web应用安全测试工具。它是安全研究人员和渗透测试人员的标准工具,用于识别和利用Web应用程序中的漏洞。Burp Suite提供了一系列强大的功能,帮助用户对Web应用进行全…

计算机网络套接字知识(非常详细)从零基础入门到精通

本节重点 认识IP地址, 端口号, 网络字节序等网络编程中的基本概念; 学习socket api的基本用法; 一、预备知识 1.理解源IP地址和目的IP地址 ⭐在IP数据包头部中,有两个IP地址,分别叫做源IP地址和目的IP地址。 思考: 我们光有IP地址就可以完成通信了…

leetcode 712.两个字符串的最小ASCII删除和

思路:LCS,dp 其实就是把dp的状态信息变了一下,但是本质上的状态转移其实是没有很大的变动,既然是让我们删除其他不一样的字符,那么保留下来的肯定就是两个字符串的最长公共子序列了。这样的我们就可以设状态方程为最长…

蓝桥杯第1022题 玩具蛇 基础DFS C++ Java

题目 思路和解题方法 问题理解:此题要求找出将一条由16节正方形构成的玩具蛇放入4x4的方格中的不同方式数。每节蛇可以是直线或直角转弯,且蛇的形状需要完全覆盖盒子里的16个格子,每个格子仅被蛇的一个部分占据。 状态表示:使用一…

Android 13 VSYNC重学习

Android 13 VSYNC重学习 引言 学无止境,一个字干就完事! 源码参考基于Android 13 aosp! 一. Android VSync模块开胃菜 在开始正式的分析之前,我们先简单对Android的Vsync模块简单介绍下,如下图所示,其中: HW_VSync是…

qt把虚拟键盘部署到arm开发板上(imx6ull)

分为了qt官方配置的虚拟键盘以及各路大神自己开源的第三方键盘,我本来想尝试利用官方键盘结果一直失败,最后放弃了,后面我用的第三方键盘参考了如下文章: https://blog.csdn.net/2301_76250105/article/details/136441243 https…