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

        前言:随着互联网安全问题日益严重,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的网站可能会在搜索结果中获得更好的排名。


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

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

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

相关文章

MySQL 8.0.41 终端修改root密码

1.在 MySQL 命令行中,运行以下命令修改密码 ALTER USER rootlocalhost IDENTIFIED BY new_password; 其中,new_password替换为你想要设置的新密码 2.退出 MySQL终端,重新打开,使用新密码进入,修改成功

TCP服务器与客户端搭建

一、思维导图 二、给代码添加链表 【server.c】 #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #include <fcntl.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.…

JVM春招快速学习指南

1.说在前面 在Java相关岗位的春/秋招面试过程中&#xff0c;JVM的学习是必不可少的。本文主要是通过《深入理解Java虚拟机》第三版来介绍JVM的学习路线和方法&#xff0c;并对没有过JVM基础的给出阅读和学习建议&#xff0c;尽可能更加快速高效的进行JVM的学习与秋招面试的备战…

kafka服务端之副本

文章目录 概述副本剖析失效副本ISR的伸缩LWLEO与HW的关联LeaderEpoch的介入数据丢失的问题数据不一致问题Leader Epoch数据丢失数据不一致 kafka为何不支持读写分离 日志同步机制可靠性分析 概述 Kafka中采用了多副本的机制&#xff0c;这是大多数分布式系统中惯用的手法&…

aarch64 Ubuntu20.04 安装docker

安装 docker 依赖项&#xff1a;sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release添加 Docker GPG 密钥&#xff1a;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyr…

校园网规划方案

个人博客站—运维鹿: http://www.kervin24.top CSDN博客—做个超努力的小奚&#xff1a; https://blog.csdn.net/qq_52914969?typeblog 本课程设计参考学习计算机网络 思科Cisco Packet Tracer仿真实验_哔哩哔哩_bilibili, 文章和pkg详见个人博客站: http://www.kervin24.to…

语义分割文献阅读——SETR:使用Transformer从序列到序列的角度重新思考语义分割

目录 摘要 Abstract 1 引言 2 Vision Transformer(ViT) 2.1 图片预处理&#xff1a;分块和降维 2.2 Patch Embedding 2.3 位置编码 2.4 Transformer Encoder的前向过程 3 SETR 3.1 图像序列化处理 3.2 Transformer 3.3 解码器 总结 摘要 本周阅读的论文题目是《R…

Mac上搭建k8s环境——Minikube

1、在mac上安装Minikube可执行程序 brew cask install minikub 安装后使用minikube version命令查看版本 2、安装docker环境 brew install --cask --appdir/Applications docker #安装docker open -a Docker #启动docker 3、安装kubectl curl -LO https://storage.g…

5. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Nacos

一、什么是Nacos Nacos 是阿里巴巴开源的一款云原生应用基础设施&#xff0c;它旨在简化微服务架构中服务治理和配置管理的复杂性。通过 Nacos&#xff0c;服务在启动时可以自动注册&#xff0c;而其他服务则可以通过名称来查找并访问这些注册好的实例。同时&#xff0c;Nacos…

【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)

【后端开发】系统设计101——Devops&#xff0c;Git与CICD&#xff0c;云服务与云原生&#xff0c;Linux&#xff0c;安全性&#xff0c;案例研究&#xff08;30张图详解&#xff09; 文章目录 1、DevopsDevOps与SRE与平台工程的区别是什么&#xff1f;什么是k8s&#xff08;Ku…

100天精通Python(爬虫篇)——第113天:爬虫基础模块之urllib详细教程大全

文章目录 1. urllib概述2. urllib.request模块 1. urllib.request.urlopen()2. urllib.request.urlretrieve()3. urllib.request.Request()4. urllib.request.install_opener()5. urllib.request.build_opener()6. urllib.request.AbstractBasicAuthHandler7. urllib.request.…

win32汇编环境,结构体的使用示例一

;运行效果 ;win32汇编环境,结构体的使用示例一 ;举例说明结构体的定义&#xff0c;如何访问其中的成员&#xff0c;使用assume指令指向某个结构体&#xff0c;利用偏移得到成员值等 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>…

opencv:基于暗通道先验(DCP)的内窥镜图像去雾

目录 项目大体情况 暗通道先验&#xff08;Dark Channel Prior, DCP&#xff09;原理 项目代码解析 该项目是由我和我导师与舟山某医院合作开发的一个基于暗通道先验&#xff08;Dark Channel Prior&#xff0c;DCP&#xff09;的内窥镜图像去雾方法。具体来说&#xff0c;…

Java 大视界 -- Java 大数据在智能政务中的应用与服务创新(78)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

【DeepSeek】DeepSeek概述 | 本地部署deepseek

目录 1 -> 概述 1.1 -> 技术特点 1.2 -> 模型发布 1.3 -> 应用领域 1.4 -> 优势与影响 2 -> 本地部署 2.1 -> 安装ollama 2.2 -> 部署deepseek-r1模型 1 -> 概述 DeepSeek是由中国的深度求索公司开发的一系列人工智能模型&#xff0c;以其…

数据库,数据表的增删改查操作

一.数据库的基本操作 &#xff08;1&#xff09;创建数据库 创建数据库就是在数据库系统中划分一块存储数据的空间&#xff0c;方便数据的分配、放置和管理。在MySQL中使用CREATE DATABASE命令创建数据库&#xff0c;语法格式如下: CREATE DATABASE数据库名称; 注&#xff1a…

书籍《新能源汽车动力电池安全管理算法设计》和《动力电池管理系统核心算法》脑图笔记

目录 一、阅读背景二、《新能源汽车动力电池安全管理算法设计》脑图笔记三、《动力电池管理系统核心算法》脑图笔记四、后记参考学习 一、阅读背景 如今身处新能源动力电池行业&#xff0c;欲对动力电池相关算法做一些了解&#xff0c;通过查找相关电子书app&#xff0c;最后找…

激活函数篇 03 —— ReLU、LeakyReLU、RandomizedLeakkyReLU、PReLU、ELU

本篇文章收录于专栏【机器学习】 以下是激活函数系列的相关的所有内容: 一文搞懂激活函数在神经网络中的关键作用 逻辑回归&#xff1a;Sigmoid函数在分类问题中的应用 整流线性单位函数&#xff08;Rectified Linear Unit, ReLU&#xff09;&#xff0c;又称修正线性单元&a…

Python Pandas(3):DataFrame

1 介绍 DataFrame 是 Pandas 中的另一个核心数据结构&#xff0c;类似于一个二维的表格或数据库中的数据表。它含有一组有序的列&#xff0c;每列可以是不同的值类型&#xff08;数值、字符串、布尔型值&#xff09;。DataFrame 既有行索引也有列索引&#xff0c;它可以被看做由…

【C++高并发服务器WebServer】-14:Select详解及实现

本文目录 一、BIO模型二、非阻塞NIO忙轮询三、IO多路复用四、Select()多路复用实现 明确一下IO多路复用的概念&#xff1a;IO多路复用能够使得程序同时监听多个文件描述符&#xff08;文件描述符fd对应的是内核读写缓冲区&#xff09;&#xff0c;能够提升程序的性能。 Linux下…