03.HTTPS的实现原理-HTTPS的工作流程

03.HTTPS的实现原理-HTTPS的工作流程

  • 简介
  • 1. HTTPS的工作流程
    • 1.1. TCP的工作流程
      • 1.1.1. 三次握手的详细步骤
      • 1.1.2. 三次握手的作用
    • 1.2. HTTPS的工作流程
      • 1.2.1. HTTPS与TCP的关系
      • 1.2.2. HTTPS的工作流程
  • 2. 公钥和私钥的作用
  • 3. 对称密钥的生成和交换
  • 4. 对称加密和非对称加密的区别

简介

主要讲述了HTTP与HTTPS工作流程比较,以及服务器与客户机资源分配与初始化流程。首先,HTTP和HTTPS都基于TCP,但在三次握手后,HTTP直接发送请求,而HTTPS还需进行SSL/TLS握手。此外,服务器资源分配和初始化流程也包括检查资源情况、分配资源、创建连接和初始化等步骤。如果服务器回复丢失,客户机未收到确认,可能导致服务器资源耗尽。然后,重点解释了HTTPS中的TLS/SSL握手过程,强调了公钥和私钥的概念及其重要性。

1. HTTPS的工作流程

HTTPS的工作流程主要是关于S的部分,即安全部分(secure)。
HTTP本身是基于TCP的,包括其语法语义和请求方式等。
HTTPS与HTTP的区别主要在于安全性的增强,我们主要关注与安全相关的部分。

1.1. TCP的工作流程

TCP的工作流程包括三次握手和四次挥手
1.三次握手:客户机发送请求,服务器进行监听并响应,客户机进行确认。
2.四次挥手:服务器发送FIN包,客户机进行确认,然后客户机发送FIN包,服务器进行确认。

1.1.1. 三次握手的详细步骤

1.第一次握手:客户机发送请求报文段,序列号为x。
2.第二次握手:服务器收到请求后,发送确认报文段,序列号为y,确认号为x+1。
3.第三次握手:客户机收到确认报文段后,发送确认报文段,序列号为x+1,确认号为y+1。

在这里插入图片描述

1.1.2. 三次握手的作用

1.第三次握手的作用是确认客户机是否已收到服务器的确认报文段
2.如果没有第三次握手,服务器无法确认客户机是否收到确认报文段,可能导致资源浪费或服务器崩溃。
3.泛洪攻击(SYN Flooding)就是利用没有第三次握手导致的服务器资源被快速分配完毕的漏洞进行攻击。

1.2. HTTPS的工作流程

1.2.1. HTTPS与TCP的关系

1.HTTP和HTTPS都是基于TCP协议的。
2.HTTPS在TCP之上添加了SSL/TLS安全协议来提供加密和身份验证。

1.2.2. HTTPS的工作流程

1.HTTPS首先建立TCP连接然后进行SSL/TLS握手
2.握手过程包括客户端发起请求,服务器返回公钥证书,客户端验证证书,生成对称密钥并用公钥加密发送给服务器
3.服务器用私钥解密收到对称密钥客户端和服务器都用对称密钥进行加密和解密。

在这里插入图片描述

2. 公钥和私钥的作用

1.公钥用于加密对称密钥,私钥用于解密。
2.公钥可以发给任何客户端,私钥由服务器保留
3.公钥加密的内容可以用私钥解密,反之亦然。

3. 对称密钥的生成和交换

1.客户端生成对称密钥,并用公钥加密后发送给服务器。
2.服务器用私钥解密收到对称密钥,客户端和服务器都用对称密钥进行加密和解密。

4. 对称加密和非对称加密的区别

1.对称加密:加密和解密用同一个密钥。
2.非对称加密:加密用公钥,解密用私钥,或反之。
3.HTTPS结合使用了对称加密和非对称加密,数据传输前进行密钥交换,使用非对称加密;数据传输使用对称加密。

往期文章参考:
01.HTTPS的实现原理-HTTPS的概念
02.HTTPS的实现原理-HTTPS与HTTP的区别详解

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

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

相关文章

阿里云人工智能ACA(五)——深度学习基础

一、深度学习概述 1. 深度学习概念 1-1. 深度学习基本概念 深度学习是机器学习的一个分支基于人工神经网络(模仿人脑结构)通过多层网络自动学习特征能够处理复杂的模式识别问题 1-2. 深度学习的优点与缺点 优点 强大的特征学习能力可以处理复杂问题…

MySQL和HBase的对比

Mysql :关系型数据库,主要面向 OLTP ,支持事务,支持二级索引,支持 sql ,支持主从、 Group Replication 架构模型(此处以 Innodb 为例,不涉及别的存储引擎)。 HBase &am…

Ftrans数据摆渡系统 搭建安全便捷跨网文件传输通道

一、专业数据摆渡系统对企业的意义 专业的数据摆渡系统对企业具有重要意义,主要体现在以下几个方面‌: 1、‌数据安全性‌:数据摆渡系统通过加密传输、访问控制和审计日志等功能,确保数据在传输和存储过程中的安全性。 2、‌高…

FPGA的DMA应用——pcileech

硬件通过pcie总线,访存本机的内存,并进行修改,可以进行很多操作。 学习视频:乱讲DMA及TLP 1-pcileech项目简介和自定义模块介绍_哔哩哔哩_bilibili vivado2024.1的下载文章链接和地址:AMD-Xilinx Vivado™ 2024.1 现…

未来网络技术的新征程:5G、物联网与边缘计算(10/10)

一、5G 网络:引领未来通信新潮流 (一)5G 网络的特点 高速率:5G 依托良好技术架构,提供更高的网络速度,峰值要求不低于 20Gb/s,下载速度最高达 10Gbps。相比 4G 网络,5G 的基站速度…

一种寻路的应用

应用背景 利用长途车进行货物转运的寻路计算。例如从深圳到大连。可以走有很多条长途车的路线。需要根据需求计算出最合适路线。不同的路线的总里程数、总价、需要的时间不一样。客户根据需求进行选择。主要有一些细节: 全国的长途车车站的数据的更新: …

STL格式转换为GLTF格式

STL与GLTF格式简介 STL格式 STL(Stereo Lithography)文件是一种广泛使用的3D打印文件格式,由3D Systems公司开发。它主要用于存储三维物体的几何信息,常用于立体光刻等3D打印技术。STL文件通常只包含物体的表面几何形状&#xf…

DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1)

DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1) 架构 架构图 本设计方案的目标是在一台阿里云ECS服务器上搭建一个轻量级的Kubernetes服务k3s节点,并基于Argo搭建一套完整的DevOps CI/CD服务平台,包括Argo CD…

数据结构经典算法总复习(下卷)

第五章:树和二叉树 先序遍历二叉树的非递归算法。 void PreOrderTraverse(BiTree T, void (*Visit)(TElemType)) {//表示用于查找的函数的指针Stack S; BiTree p T;InitStack(S);//S模拟工作栈while (p || !StackEmpty(S)) {//S为空且下一个结点为空,意味着结束遍…

前端知识补充—CSS

CSS介绍 什么是CSS CSS(Cascading Style Sheet),层叠样式表, ⽤于控制⻚⾯的样式 CSS 能够对⽹⻚中元素位置的排版进⾏像素级精确控制, 实现美化⻚⾯的效果. 能够做到⻚⾯的样式和结构分离 基本语法规范 选择器 {⼀条/N条声明} 1)选择器决定针对谁修改…

Spring Security 6 系列之九 - 集成JWT

之所以想写这一系列,是因为之前工作过程中使用Spring Security,但当时基于spring-boot 2.3.x,其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0,结果一看Spring Security也升级为6.3.0,关键是其风…

【Go】context标准库

文章目录 1. 概述1.1 什么是 Context1.2 设计原理1.3 使用场景1.4 Context 分类核心:Context接口2. 源码解读4个实现emptyCtxTODO 和 BackgroundcancelCtxWithCancelcancelCtx.propagateCancel 构建父子关联parentCancelCtx 获取父上下文中的内嵌cancelCtxcanceltimerCtxWithT…

Windows和Linux安全配置和加固

一.A模块基础设施设置/安全加固 A-1.登录加固 1.密码策略 a.最小密码长度不少于8个字符,将密码长度最小值的属性配置界面截图。 练习用的WindowsServer2008,系统左下角开始 > 管理工具 > 本地安全策略 > 账户策略 > 密码策略 > 密码最小长度&#…

webrtc-internals调试工具

Google 的 Chrome(87 或更高版本)WebRTC 内部工具是一套内置于 Chrome 浏览器中的调试工具; webrtc-internals 能够查看有关视频和音频轨道、使用的编解码器以及流的一般质量的详细信息。这些知识对于解决音频和视频质量差的问题非常有帮助。 webrtc-int…

MT6765核心板_MTK6765安卓核心板规格参数_联发科MTK模块开发

MTK6765安卓核心板是基于联发科高效八核处理器平台开发的一款强大硬件解决方案。这款核心板的核心是采用12纳米工艺打造的MTK6765 CPU,具备四个主频高达2.3GHz的CORTEX-A53核心和四个主频为1.8GHz的CORTEX-A53核心,提供了卓越的处理性能。用户可以根据需…

Linux Shell 脚本编程基础知识篇—shell 运算命令详解

ℹ️大家好,我是练小杰,本文继续Linux shell脚本编程的基础知识内容,接着讲算术运算命令的详细操作~~ 复习:【shell简介以及基本操作】 更多Linux 相关内容请点击👉“Linux专栏”~ 文章目录 let运算命令的用法let 的高…

Nginx单向链表 ngx_list_t

目录 基本概述 数据结构 接口描述 具体实现 ngx_list_create ngx_list_init ngx_list_push 使用案例 整理自 nginx 1.9.2 源码 和 《深入理解 Nginx:模块开发与架构解析》 基本概述 Nginx 中的 ngx_list_t 是一个单向链表容器,链表中的每一个节…

KVM虚拟机管理脚本

思路: 在/opt/kvm下创建一个磁盘文件,做差异镜像,创建一个虚拟机配置文件,做虚拟机模版 [rootnode01 ~]# ls /opt/kvm/ vm_base.qcow2 vm_base.xml创建虚拟机的步骤:首先创建虚拟机的差异镜像,然后复制虚…

芯片Tapeout power signoff 之IR Drop Redhawk Ploc文件格式及其意义

数字IC后端工程师在芯片流程最后阶段都会使用redhawk或voltus进行设计的IR Drop功耗signoff分析。必须确保静态,动态ir drop都符合signoff标准。 在做redhawk ir drop分析前,我们需要提供一个redhawk ploc供电点坐标。 数字IC设计后端实现前期预防IR D…

流批一体向量化计算引擎 Flex 在蚂蚁的探索和实践

编者按:Flex是蚂蚁数据部自研的一款流批一体的向量化引擎,Flex是Fink和Velox的全称,也是Flexible的前缀,被赋予了灵活可插拔的寓意。本文将重点从向量化技术背景、Flex架构方案和未来规划三个方面展开论述。 作者介绍:…