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

HTTPS 原理

目录

HTTPS 的核心:SSL/TLS 协议

SSL/TLS 的核心作用

HTTPS 的区别

HTTPS 的工作流程:SSL/TLS 握手与数据传输

阶段 1:TCP 三次握手(基础连接建立)

阶段 2:SSL/TLS 握手(核心安全协商)

1. 客户端发起请求

2. 服务器回应

3. 服务器发送证书

4. 服务器发送密钥交换信息

5. 客户端验证证书并生成主密钥

6. 双方生成会话密钥

7. 客户端通知握手完成

8. 服务器验证并回应

9. 加密数据传输

阶段 3:数据传输阶段

阶段 4:连接关闭

整体过程


HTTPS 的核心:SSL/TLS 协议

SSL(Secure Sockets Layer,安全套接层)协议和 TLS 协议(Transport Layer Security,传输层安全)是一组用于在计算机网络中提供加密通信身份认证数据完整性保护的安全协议。

SSL/TLS 的核心作用

简单来说,SSL/TLS 解决了网络通信中的三大核心安全问题:

  1. 加密(Confidentiality):通过加密算法将传输数据打乱,确保即使数据被窃听,攻击者也无法读懂内容;
  2. 认证(Authentication):通过数字证书验证通信双方(通常是服务器,可选验证客户端)的真实身份,防止 “中间人攻击”;
  3. 完整性(Integrity):通过哈希算法检测数据在传输过程中是否被篡改,确保接收的数据与发送的数据一致。

HTTPS 的区别

HTTPS 结合两者优势:用非对称加密传输对称密钥,后续数据用对称加密传输(既保证密钥安全,又提升传输效率)。

HTTPS 的工作流程:SSL/TLS 握手与数据传输

HTTPS 通信可分为两大阶段:SSL/TLS 握手阶段(协商加密规则、交换密钥、验证身份)和数据传输阶段(用协商的密钥加密传输数据)。

阶段 1:TCP 三次握手(基础连接建立)

HTTPS 基于 TCP 协议,通信前需先通过 TCP 三次握手建立可靠连接(确保数据传输的可靠性)。

阶段 2:SSL/TLS 握手(核心安全协商)

握手阶段的目标是:客户端和服务器协商加密算法、验证服务器身份、安全交换对称密钥(“会话密钥”)。步骤如下:

1. 客户端发起请求
  •  客户端发起请求,通过 hello 报文,发送支持的 TLS 版本(如 TLS 1.2)、加密套件列表(如ECDHE-RSA-AES256-GCM-SHA384)、随机数Client Random,确认要加密的方式。
2. 服务器回应
  •  服务器回应 hello 报文,选择一个加密套件(如ECDHE-RSA-AES256-GCM-SHA384),确定 TLS 版本,生成随机数Server Random,并将这些信息返回给客户端。
3. 服务器发送证书
  •  服务端发送证书,包含服务器公钥、域名、证书有效期等信息,用于客户端验证服务器身份。
4. 服务器发送密钥交换信息
  •  若使用 ECDHE 等密钥交换算法,服务器会生成临时的椭圆曲线公钥(或 RSA 临时公钥),并使用服务器私钥签名,防止被篡改。
5. 客户端验证证书并生成主密钥
  •  客户端验证服务器证书的有效性(检查是否由可信 CA 签发、域名是否匹配、是否过期等);
  •  验证通过后,客户端生成随机数Pre-Master Secret(预主密钥),并用服务器公钥加密后发送给服务器(RSA 模式),或通过椭圆曲线计算生成共享密钥(ECDHE 模式)。
6. 双方生成会话密钥
  •  通过相同的密钥派生算法(如 HKDF)生成主密钥(Master Secret),再进一步生成用于实际加密的会话密钥(对称加密密钥)和MAC 密钥(用于完整性校验)。
7. 客户端通知握手完成
  •  客户端使用会话密钥加密一条 “Finished” 消息(包含之前所有握手消息的哈希值),发送给服务器,证明已正确生成会话密钥。
8. 服务器验证并回应
  •  服务器解密 “Finished” 消息,验证哈希值是否匹配,确认客户端已正确获取会话密钥;
  •  服务器同样用会话密钥加密一条 “Finished” 消息发送给客户端,完成握手。
9. 加密数据传输
  •  握手完成后,客户端和服务器使用协商好的对称加密算法(如 AES-GCM)和会话密钥,对后续的 HTTP 请求 / 响应数据进行加密传输,同时通过 MAC 校验确保数据未被篡改。

阶段 3:数据传输阶段

握手完成后,客户端和服务器使用协商好的会话密钥(对称加密)传输所有 HTTP 数据,同时通过哈希算法校验数据完整性。每次传输的数据会被加密为密文,且附加 MAC(消息认证码)用于防篡改验证。

阶段 4:连接关闭

通信结束后,通过 TCP 四次挥手关闭连接。

整体过程

验证身份 --> 协商秘钥 --> 加密传输

http://www.dtcms.com/a/340679.html

相关文章:

  • 模拟tomcat接收GET、POST请求
  • jvm三色标记
  • LLM常见名词记录
  • 《高中数学教与学》期刊简介
  • 109、【OS】【Nuttx】【周边】效果呈现方案解析:workspaceStorage(下)
  • Pytest项目_day20(log日志)
  • Redis--day9--黑马点评--分布式锁(二)
  • 基于门控循环单元的数据回归预测 GRU
  • 【ansible】3.管理变量和事实
  • 拆分工作表到工作簿文件,同时保留其他工作表-Excel易用宝
  • NAS在初中信息科技实验中的应用--以《义务教育信息科技教学指南》第七年级内容为例
  • AI面试:一场职场生态的数字化重构实验
  • 如何使用matlab将目录下不同的excel表合并成一个表
  • Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发送重平衡(reblanace)
  • 稳压管损坏导致无脉冲输出电路分析
  • 【Linux仓库】进程等待【进程·捌】
  • week3-[分支嵌套]方阵
  • React15.x版本 子组件调用父组件的方法,从props中拿的,这个方法里面有个setState,结果调用报错
  • setup 函数总结
  • 买卖股票的最佳时机III
  • C++STL-list 底层实现
  • Adobe Adobe Illustrator Ai 2025最新版软件安装包下载与详细图文安装教程!!
  • 代码随想录Day57:图论(寻宝prim算法精讲kruskal算法精讲)
  • 【自动化运维神器Ansible】Roles中Tags使用详解:提升自动化效率的利器
  • STM32 外设驱动模块五:DHT11 温湿度传感器
  • 【Express零基础入门】 | 构建简易后端服务的核心知识
  • 如何查看和修改网络接口参数?
  • 计算机网络模型
  • 2025年Java后端最新场景题+八股文面试题
  • 田野科技“一张皮”,“AI+虚拟仿真”推动考古教学创新发展