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

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

  • 简介
  • [1. HTTPS的工作流程](#1. HTTPS的工作流程)
    • [1.1. TCP的工作流程](#1.1. TCP的工作流程)
      • [1.1.1. 三次握手的详细步骤](#1.1.1. 三次握手的详细步骤)
      • [1.1.2. 三次握手的作用](#1.1.2. 三次握手的作用)
    • [1.2. HTTPS的工作流程](#1.2. HTTPS的工作流程)
      • [1.2.1. HTTPS与TCP的关系](#1.2.1. HTTPS与TCP的关系)
      • [1.2.2. HTTPS的工作流程](#1.2.2. HTTPS的工作流程)
  • [2. 公钥和私钥的作用](#2. 公钥和私钥的作用)
  • [3. 对称密钥的生成和交换](#3. 对称密钥的生成和交换)
  • [4. 对称加密和非对称加密的区别](#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的区别详解

相关推荐
李少兄4 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
可乐加.糖4 小时前
一篇关于Netty相关的梳理总结
java·后端·网络协议·netty·信息与通信
大丈夫立于天地间4 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
Dream Algorithm5 小时前
路由器的 WAN(广域网)口 和 LAN(局域网)口
网络·智能路由器
IT猿手5 小时前
基于CNN-LSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
网络·cnn·lstm
吴盐煮_5 小时前
使用UDP建立连接,会存在什么问题?
网络·网络协议·udp
hyshhhh5 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
Hellc0076 小时前
轮询、WebSocket 和 SSE:实时通信技术全面指南(含C#实现)
网络
xujiangyan_6 小时前
nginx的反向代理和负载均衡
服务器·网络·nginx