网络原理之HTTPS(如果想知道网络原理中有关HTTPS的知识,那么只看这一篇就足够了!)

news2025/3/17 8:23:11

        前言:随着互联网安全问题日益严重,HTTPS已成为保障数据传输安全的标准协议,通过加密技术和身份验证,HTTPS有效防止数据窃取、篡改和中间人攻击,确保通信双方的安全和信任。


✨✨✨这里是秋刀鱼不做梦的BLOG

✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客

在正式开始讲解之前,先让我们看一下本文大致的讲解内容:

目录

1.HTTPS的概念

2.加密机制介绍

        (1)引入对称加密

        【1】对称加密的工作原理

        【2】常见的对称加密算法

        (2)引入非对称加密

        【1】非对称加密的工作原理

        【2】常见的非对称加密算法

        (3)引入中间人攻击防范

        【1】中间人攻击的工作原理

        【2】HTTPS如何防止中间人攻击

        (4)引入证书机制

        【1】证书的工作原理

        【2】证书的组成部分

3.HTTPS的工作原理

        (1)客户端发起请求

        (2)SSL/TLS握手过程

        (3)加密通信

4.HTTPS的优点


写在前面

学习HTTPS需要先学习HTTP的内容------------------------------------------------------------------------------>网络原理之HTTP(如果想知道网络原理中有关HTTP的知识,那么只看这一篇就足够了!)-CSDN博客


1.HTTPS的概念

        在开始学习HTTPS的原理之前,先让我们了解一下什么是HTTPS:

        HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议)就是HTTP的加密版本,其主要目的为确保客户端和服务器之间传输的数据不被窃取或篡改,与传统的HTTP协议不同,HTTPS通过使用SSL/TLS(就是一个有关安全加密的协议)为通信提供加密保护,保证数据的安全。

        ——所以,简单来说HTTPS = HTTP + SSL/TLS,可以认为是HTTP协议的plus版,它比HTTP更加的安全可靠。

2.加密机制介绍

        在了解了HTTPS的基本概念之后,在让我们看一下在HTTPS的通信中会涉及的加密机制,其中大致有四个,分别为:对称加密、非对称加密、中间人攻击和数字证书

        (1)引入对称加密

基本概念:

        ——首先先让我们学习一下对称加密,对称加密是HTTPS中用于加密和解密传输数据的核心加密方法,在对称加密中,客户端和服务器是使用相同的密钥来加密和解密消息,这种加密方式的优势在于加密和解密的过程非常高效,适合大量数据的加密处理。

        但是,它也有其缺点,其主要缺点就是密钥分发(即服务器将其密钥发送给客户端,客户端用这个密钥对数据进行加密)的问题:一旦密钥被泄露,所有通过该密钥加密的数据可能会被窃取。

        【1】对称加密的工作原理

        对称加密其实就是通过同一个 "密钥" , 把明文加密成密文, 并且也能把密文解密成明文。虽然对称加密效率很高,但是其存在密钥分发的危险问题,所以通常HTTPS会通过非对称加密(下文会进行解释,读者可以先了解一下),对称加密的具体过程如下:

  • 首先客户端使用服务器发送过来的对称密钥对要加密的数据进行加密,然后发送给服务器(此时就可能会被中间的黑客所截获数据)

  • 当服务器接收到客户端发送来的数据之后,只用相同的对称密钥对数据进行解密

  • 之后对解密的信息进行响应,响应的数据也使用这个对称密钥加密之后发送给客户端

        ——这样我们就了解了对称加密的工作原理了!!!,接下来让我们看一下都有哪些常见的对称加密算法:

        【2】常见的对称加密算法

  • AES(高级加密标准):目前最广泛使用的对称加密算法,提供强大的安全性,且由于其加密和解密速度较快,适用于大规模的数据传输。

  • DES(数据加密标准):虽然DES曾经是非常流行的对称加密算法,但由于密钥长度仅为56位,已经被认为不再足够安全,现在已逐渐被AES取代。

        对称加密在加密数据时速度极快,能够有效保障数据的机密性,但仅凭对称加密无法解决密钥交换的问题,因此在HTTPS中它与非对称加密结合使用,形成了完整的安全通信方案。

        (2)引入非对称加密

        非对称加密(又称公钥加密)是HTTPS安全协议中不可或缺的另一个重要组成部分,在非对称加密中,使用一对密钥来进行加密和解密——公钥和私钥,公钥可以公开用于加密,而私钥只能由接收方持有并用于解密。

        【1】非对称加密的工作原理

在HTTPS中,非对称加密用于初始化加密通信过程中的密钥交换,具体流程如下:

  • 首先客户端与服务器在建立连接时,首先会通过网络给客户端公钥

  • 然后,当客户端接收到这个公钥之后,就会用这个公钥对对称密钥进行加密,然后将对称密钥传输给服务器

  • 服务器接收到对称密钥之后,使用私钥对加密的对称密钥进行解密,获取对称密钥

  • 在之后对称加密通信阶段,数据会被使用该对称密钥加密并发送,无论是客户端发送的请求还是服务器返回的响应,都将通过这个对称密钥进行加密和解密

        通过非对称加密,客户端和服务器能够在不暴露密钥的情况下安全地交换加密数据,这大大增强了通信过程的安全性。

        【2】常见的非对称加密算法

  • RSA:RSA是目前最广泛使用的非对称加密算法之一,基于大数分解的数学难题,RSA能够确保数据的加密和解密过程极为安全。RSA通常用于密钥交换和数字签名。

  • ECC:ECC基于椭圆曲线的数学原理,相较于RSA,在较短的密钥长度下能提供相同级别的安全性,且计算效率更高,适合移动设备等资源有限的环境。

        非对称加密解决了密钥传输的安全性问题,但其计算复杂度相对较高,因此在HTTPS通信过程中,通常只在握手阶段(传输对称密钥)使用非对称加密,而在数据传输阶段(使用对称密钥加密)切换到效率更高的对称加密。

        (3)引入中间人攻击防范

        在了解完了对称加密和非对称加密之后,在让我们了解一下中间人攻击,其是指攻击者通过拦截和篡改客户端与服务器之间的通信来窃取或篡改数据,在没有有效加密的情况下,中间人攻击可以轻易地读取和修改传输的信息,造成严重的安全隐患。

        【1】中间人攻击的工作原理

  • 设服务器具有非对称加密算法的公钥S,私钥S'

  • 设中间人具有非对称加密算法的公钥M,私钥M'

  • 客户端向服务器发起请求,服务器明文传送公钥S给客户端

  • 中间人劫持数据报文,提取公钥S并保存好,然后将被劫持报文中的公钥S替换成为自己的公钥M, 并将伪造报文发给客户端

  • 客户端收到报文,提取公钥M(自己当然不知道公钥被更换过了),自己形成对称秘钥X,用公钥M加 密X,形成报文发送给服务器

  • 中间人劫持后,直接用自己的私钥M'进行解密,得到通信秘钥X,再用曾经保存的服务端公钥S加 密后,将报文推送给服务器

  • 服务器拿到报文,用自己的私钥S'解密,得到通信秘钥X

  • 双方开始采用X进行对称加密,进行通信。但是一切都在中间人的掌握中,劫持数据,进行窃听甚 至修改,都是可以的

        这样我们就了解了中间人攻击的流程了!!!(读者可以在纸上进行绘图理解)

        【2】HTTPS如何防止中间人攻击

  • 数字证书与公钥基础设施:HTTPS依赖于数字证书来验证服务器的身份,确保客户端与真正的服务器建立连接,服务器的公钥经过证书颁发机构(CA)的签名,客户端可以通过验证证书的有效性来避免与伪造的服务器连接。

  • 完整性校验:SSL/TLS协议使用哈希函数和消息认证码(MAC)对数据进行完整性校验,确保数据在传输过程中没有被篡改,如果数据被篡改,接收方会发现数据的哈希值不匹配,从而中断连接。

        通过这两个机制,HTTPS有效地防止了中间人攻击,确保了客户端与服务器之间的通信是安全的,不会被攻击者篡改或窃取。

        (4)引入证书机制

        数字证书是HTTPS通信中非常重要的安全机制,证书的主要作用是为服务器提供身份验证,并确保服务器的公钥可以安全地传递给客户端,从而为加密通信建立信任基础。

        【1】证书的工作原理

  • 证书的作用:在客户端与服务器建立连接之前,服务器会向客户端发送其数字证书,客户端通过验证证书的有效性和合法性,来确认与服务器的通信是否安全,证书由受信任的CA签发,CA的作用是对证书进行签名,确保证书的合法性。

  • 验证证书:客户端收到证书后,会检查证书是否有效,证书是否过期,是否由受信任的CA签发,以及证书中的域名是否与服务器的域名匹配,如果证书合法,客户端会使用服务器的公钥进行加密操作,启动加密通信,如果不合法则终止通信。

        

        【2】证书的组成部分

  • 公钥:用于加密数据,是证书中最重要的部分,客户端通过公钥加密会话密钥,而服务器使用私钥解密。

  • 证书主体:包含了证书所属组织、域名、有效期等信息,表明服务器的身份。

  • 证书签名:由CA用私钥对证书进行签名,确保证书的合法性,如果证书被篡改,签名验证失败,客户端会拒绝建立连接。

3.HTTPS的工作原理

        在了解了加密机制之后,在让我们看一下HTTPS的工作原理,HTTPS的工作原理涉及到对称加密、非对称加密和数字证书的使用,具体过程如下:

        (1)客户端发起请求

        用户在浏览器中输入HTTPS网址时,浏览器会向服务器发送请求,希望建立一个加密的连接,此时,客户端与服务器之间的通信使用的是HTTP协议,但由于URL以https://开头,表明该连接将通过SSL/TLS进行加密。

        (2)SSL/TLS握手过程

为了建立加密连接,客户端和服务器需要进行SSL/TLS握手,过程如下:

  • 客户端发送请求:客户端向服务器发送一个“Hello”消息,告知服务器它支持的SSL/TLS版本、加密算法和随机数等信息。

  • 服务器回应:服务器接收到客户端请求后,发送自己的SSL/TLS证书(包含公钥等信息)和加密算法选择。服务器的证书由受信任的证书颁发机构(CA)签发,用于证明服务器的身份。

  • 证书验证:客户端验证服务器证书的有效性。如果证书有效且受信任(即证书由受信任的CA签发),客户端则接受服务器的公钥。如果证书无效,客户端会中断连接。

  • 对称密钥生成:客户端使用服务器公钥加密一个对称密钥(称为预主密钥),并将其发送给服务器,服务器使用私钥解密预主密钥,双方计算出一个共享的对称密钥。

  • 加密通信开始:在后续的数据交换中,客户端和服务器使用此共享的对称密钥加密和解密通信内容。

        (3)加密通信

在数据传输过程中,HTTPS通过对称加密和非对称加密来保护数据:

  • 非对称加密:用于在初始阶段交换对称密钥,在握手过程中,客户端和服务器通过非对称加密交换加密密钥,这种加密方式使用一对公钥和私钥,公钥用于加密,私钥用于解密。

  • 对称加密:一旦双方拥有共享的对称密钥,后续的数据传输将使用对称加密算法进行加密。

        通过上述的三个步骤,我们就大致的了解了HTTPS的工作流程了!!!

4.HTTPS的优点

        那么最后,让我们看一下为什么我们现在都在使用HTTPS而不是HTTP了呢?HTTPS有哪些优点呢?

        (1)数据加密: HTTPS通过加密传输数据,防止数据在传输过程中被窃取或篡改,确保机密性。

        (2)身份验证: 使用数字证书验证服务器的身份,防止伪造服务器和中间人攻击,增强了通信的安全性。

        (3)数据完整性: 由于使用了加密算法和哈希校验,HTTPS保证了数据在传输过程中的完整性,防止数据被篡改。

        (4)提高用户信任: 现代浏览器通常会在地址栏显示绿色锁标志,告诉用户该网站使用了HTTPS协议,从而提高用户对网站的信任。

        (5)SEO优势: 搜索引擎(如Google)将HTTPS作为排名因素之一,使用HTTPS的网站可能会在搜索结果中获得更好的排名。


以上就是本篇文章全部内容~~

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

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

相关文章

五子棋小游戏-简单开发版

一、需求分析 开发一个基于 Pygame 库的五子棋小游戏,允许两名玩家在棋盘上轮流落子,当有一方达成五子连珠时游戏结束,显示获胜信息,并提供退出游戏和重新开始游戏的操作选项。 1.棋盘显示 : 显示一个 15x15 的五子棋…

2025中国科技大学少年班/创新试点班·初试备考测试卷(数学)

本卷考查内容:高中课程内容及拓展。 本卷考查形式:书面作答(客观题18小题解答题4题)。 卷首语:中科大少年班、创新班每年大规模招录在数理成绩优异的中学学生。其中初试数学题在高考基础上略有拓展,难度又低…

即时通讯平台测试报告

1.项目概述 项目名称:即时通讯平台 版本号:V1.0.0 测试周期:2025年2月25日--2025年3月15日 测试目标:验证核心功能(登录、注册、消息收发、用户管理、群组功能等)的稳定性和性能指标。 2. 测试范围 功…

如何记录Matlab程序运行过程中所占用的最大内存

有些时候,我们需要分析Matlab程序运行过程中所占用的最大内存。如果只是得到程序运行到当前位置所占用的内存,可以简单在程序当前位置插入memory命令即可: user memory; MemUsed_now user.MemUsedMATLAB; 但如果我们想要的是整个程序在运行…

WIN11开发环境变量记录

这里写自定义目录标题 总图JAVA环境变量配置GIT环境变量配置NODEJS环境变量配置 总图 JAVA环境变量配置 新建系统变量。变量名:JAVA_HOME,变量值(可以选择浏览目录,JAVA的根目录,本处为D:\Java\jdk1.8.0_251&#xff…

易语言模拟真人鼠标轨迹算法

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

洛谷P9950 [USACO20FEB] Mad Scientist B

P9950 [USACO20FEB] Mad Scientist B - 洛谷 代码区&#xff1a; #include <iostream> #include <string>using namespace std; int main() {int n;cin>> n;string a;string b;cin >> a >> b;int flag,step0,i,t;for ( i 0; i < a.length(…

prometheus自定义监控(pushgateway和blackbox)和远端存储VictoriaMetrics

1 pushgateway采集 1.1 自定义采集键值 如果自定义采集需求时&#xff0c;就可以通过写脚本 定时任务定期发送数据到 pushgateway 达到自定义监控 1.部署 pushgateway&#xff0c;以 10.0.0.42 节点为例 1.下载组件 wget https://github.com/prometheus/pushgateway/relea…

C++相关基础概念之入门讲解(上)

1. 命名空间 C中的命名空间&#xff08;namespace&#xff09;是用来避免命名冲突问题的一种机制。通过将类、函数、变量等封装在命名空间中&#xff0c;可以避免不同部分的代码中出现相同名称的冲突。在C中&#xff0c;可以使用namespace关键字来定义命名空间。 然后我们在调…

【大模型】Transformer、GPT1、GPT2、GPT3、BERT 的论文解析

前言 在自然语言处理&#xff08;NLP&#xff09;和深度学习的快速发展中&#xff0c;Transformer模型和 GPT系列模型扮演了至关重要的角色。本篇博客旨在对这些开创性的论文进行介绍&#xff0c;涵盖它们的提出时间、网络结构等关键信息&#xff0c;能够快速的理解这些模型的设…

【Java 优选算法】分治-归并排序

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 数组分块如二叉树的前序遍历, 而归并排序就如二叉树的后序遍历 912. 排序数组 解法 使用归并算法 根据中间点划分区间, mid (right left ) / 2将左右区间排序合并两个有…

三格电子Modbus TCP转CANOpen网关相关问答

型号&#xff1a;SG-TCP-COE-210 Q1: Modbus TCP转CANOpen网关的主要功能是什么&#xff1f; A1: 该网关的核心功能是实现 Modbus TCP协议与CANOpen协议之间的双向数据转换&#xff0c;使支持Modbus TCP的工业设备&#xff08;如PLC、HMI&#xff09;能够与基于CANOpen协议的设…

Flutter FloatingActionButton 从核心用法到高级定制

目录 1. 引言 2. FloatingActionButton 的基本用法 3. 主要属性 4. 进阶定制技巧 4.1 扩展型 FAB 4.2 动态变形动画 4.3 多个 FAB 协同 5. 主题与动效集成 5.1 全局主题配置 5.2 平台适配方案 5.3 高级动画控制器 6. 最佳实践 6.1 布局规范 6.2 性能优化 6.3 无…

【恒流源cc与恒压源cv典型电路解析】

在电子电路设计中&#xff0c;恒流源和恒压源是两种至关重要的电源类型&#xff0c;它们分别能为负载提供稳定的电流和电压。以下将详细解析这两种电源的典型电路。 ## 一、恒压源 ### &#xff08;一&#xff09;采用线性稳压器的恒压源电路 1. **电路组成** - 以常见的 78…

Anaconda conda常用命令:从入门到精通

1 创建虚拟环境 conda create -n env_name python3.8 2 创建虚拟环境的同时安装必要的包 conda create -n env_name numpy matplotlib python3.8 3 查看有哪些虚拟环境 以下三条命令都可以。注意最后一个是”--”&#xff0c;而不是“-”. conda env list conda info -e c…

Topo2Seq:突破DETR局限,车道拓扑推理新高度

本篇针对先前DETR类框架远距离感知较弱且车道端点不对齐问题&#xff0c;提出了一种通过拓扑序列学习来增强拓扑推理的新方法Topo2Seq。在OpenLane-V2数据集上的实验结果表明&#xff0c;Topo2Seq在拓扑推理方面实现了最先进的性能。 ©️【深蓝AI】编译 论文标题&#xf…

程序地址空间:深度解析其结构,原理与在计算机系统中的应用价值

目录 1. 程序地址空间回顾 1.1 虚拟地址 2.进程地址空间 分页&虚拟地址空间 引入新概念 解释上述关于同样的地址不同的变量值问题 回答一个历史遗留问题 ​编辑 3.虚拟内存管理 虚拟内存是什么 虚拟地址空间区域划分 为什么要有虚拟地址空间 1. 程序地址空间回…

火语言RPA--列表项内容设置

【组件功能】&#xff1a;设置列表项内容 配置预览 配置说明 索引项位置支持T或# 列表对象待修改内容的索引位置。 内容值 支持T或# 默认FLOW输入项 修改的内容值。 示例 对象修改 描述 列表对象索引为0的数据修改为A字符串&#xff0c;并打印修改结果。 配置 输出结…

1.Qt SDK 的下载和安装

1Qt 下载官⽹&#xff1a; http://download.qt.io/archive/qt/ 2版本自行选择 3下载对应版本的.exe文件 4下载包下载完成 5双击.exe文件&#xff0c;默认下一步&#xff0c;要注册一个qt的账户 6记住程序安装的位置&#xff0c;后面要配置环境变量 7勾3个&#xff08;组件自行…

嵌入式系统中的Board Support Package (BSP)详解:以Xilinx Zynq为例

嵌入式系统中的Board Support Package (BSP)详解&#xff1a;以Xilinx Zynq为例 引言 在嵌入式系统开发中&#xff0c;硬件与软件的无缝集成至关重要。Board Support Package (BSP) 作为连接硬件和操作系统的桥梁&#xff0c;在这一过程中扮演着核心角色。本文将深入探讨BSP的…