当前位置: 首页 > article >正文

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的区别详解


http://www.kler.cn/a/454596.html

相关文章:

  • Linux系统之stat命令的基本使用
  • C++第五六单元测试
  • WinForm 美化秘籍:轻松实现 Panel 圆角虚线边框
  • MySQL基础-常见的增删改查操作语句总结
  • KNN分类算法 HNUST【数据分析技术】(2025)
  • 机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差
  • 快速掌握Elasticsearch检索之二:滚动查询获取全量数据(golang)
  • 基于DIODES AP43781+PI3USB31531+PI3DPX1207C的USB-C PD Video 之全功能显示器连接端口方案
  • Cocos Creator 试玩广告开发 第二弹
  • 【贪心算法】贪心算法七
  • 前端项目 node_modules依赖报错解决记录
  • 【2023网易雷火服务器开发日常实习面经】
  • (教程)用 Java 从 PDF 中提取嵌入的文件
  • Docker--Bitnami/mysql
  • 解锁金融新纪元:内部知识库的深度挖掘与战略价值
  • 【ETCD】【实操篇(十二)】分布式系统中的“王者之争”:基于ETCD的Leader选举实战
  • Kotlin学习-内置基本类型
  • 金仓数据库对象访问权限的管理
  • excel导入,使用注解对字段进行逻辑判断(字段是否为空,数据结构等)条件
  • MATLAB中的sum函数介绍(包括与find函数的结合使用)
  • 【每日学点鸿蒙知识】屏幕高度、证书签名、深色模式对上架影响、Taskpool上下文、List触底加载更多
  • std::is_trivial
  • 龙智出席2024零跑智能汽车技术论坛,分享功能安全、需求管理、版本管理、代码扫描等DevSecOps落地实践
  • 聚类的主要算法和介绍
  • 25上半年软考初级信息处理技术员易混淆知识点
  • RabbitMQ中的批量Confirm模式:提升消息可靠性与性能