HTTPS 加密流程总结

一、HTTPS 简介

随着互联网的发展,网络安全问题越来越受到重视。在传统的 HTTP 协议中,数据以明文形式传输,容易被窃听、篡改或伪造。为了提高数据传输的安全性,HTTPS(HyperText Transfer Protocol Secure,超文本传输安全协议)应运而生。

HTTPS 是在 HTTP 的基础上加入 SSL/TLS(Secure Sockets Layer/Transport Layer Security)安全层,实现数据加密传输和身份认证,从而保证通信过程中的机密性、完整性和真实性。


二、HTTPS 的特点

相比 HTTP,HTTPS 具有以下优点:

1. 数据加密

通信数据经过加密处理,即使被截获,也无法直接查看内容。

2. 身份认证

通过数字证书验证服务器身份,防止访问到假冒网站。

3. 数据完整性

能够检测数据在传输过程中是否被篡改。

4. 安全性更高

有效防止中间人攻击(MITM)、数据窃听等安全问题。


三、HTTPS 加密原理

HTTPS 采用了两种加密方式结合的方案:

对称加密

特点:

  • 加密和解密使用同一个密钥

  • 加密速度快

  • 适合大量数据传输

常见算法:

  • AES

  • DES

  • 3DES

缺点:

  • 密钥传输存在安全风险

非对称加密

特点:

  • 使用公钥和私钥

  • 公钥负责加密

  • 私钥负责解密

常见算法:

  • RSA

  • ECC

优点:

  • 密钥传输安全

缺点:

  • 运算速度较慢

数字证书

数字证书由 CA(Certificate Authority,证书颁发机构)签发。

证书中包含:

  • 网站域名

  • 网站公钥

  • 证书有效期

  • CA 签名信息

浏览器通过验证证书来确认服务器身份是否合法。


四、HTTPS 加密流程

HTTPS 建立连接时主要经历以下几个步骤。

第一步:客户端发起 HTTPS 请求

用户在浏览器中输入:

复制代码
https://www.example.com

浏览器向服务器发起连接请求,并发送支持的:

  • TLS 版本

  • 加密算法

  • 随机数 Client Random


第二步:服务器返回数字证书

服务器收到请求后,向客户端返回:

  • 数字证书

  • 公钥

  • Server Random

浏览器接收到证书后开始验证其合法性。


第三步:客户端验证证书

浏览器检查:

  1. 证书是否过期

  2. 证书是否由可信 CA 签发

  3. 域名是否匹配

  4. 证书是否被篡改

如果验证失败,浏览器会提示:

复制代码
您的连接不是私密连接

验证成功则继续通信。


第四步:生成会话密钥

客户端生成一个随机数:

复制代码
Pre-Master Secret

然后利用服务器证书中的公钥进行加密:

复制代码
公钥加密(Pre-Master Secret)

并发送给服务器。


第五步:服务器解密

服务器使用自己的私钥解密:

复制代码
私钥解密(Pre-Master Secret)

获得客户端生成的随机数。

此时:

  • Client Random

  • Server Random

  • Pre-Master Secret

双方都已经拥有。


第六步:生成对称加密密钥

客户端和服务器分别根据:

复制代码
Client Random
Server Random
Pre-Master Secret

计算出同一个会话密钥(Session Key)。

该密钥用于后续的数据加密。


第七步:开始加密通信

后续所有 HTTP 数据都使用对称加密进行传输。

例如:

客户端发送:

复制代码
用户名:admin
密码:123456

经过加密后变成:

复制代码
A8F2D1C9E4...

即使被第三方截获,也无法获取真实内容。


五、HTTPS 通信流程图

复制代码
客户端 Browser                    服务器 Server

    1. Client Hello
------------------------------------>

          TLS版本
          加密套件
          Client Random

<------------------------------------
    2. Server Hello

          数字证书
          公钥
          Server Random

    3. 验证证书

    4. 生成Pre-Master Secret

------------------------------------>
    公钥加密后发送

<------------------------------------
    私钥解密成功

    5. 双方生成Session Key

====================================
      对称加密通信开始
====================================

    加密HTTP数据传输

六、HTTPS 与 HTTP 对比

对比项 HTTP HTTPS
安全性
数据传输 明文 加密
身份认证
默认端口 80 443
证书要求 不需要 需要 CA 证书
性能开销 略高

七、总结

HTTPS 是在 HTTP 的基础上增加 SSL/TLS 安全层形成的安全通信协议。其核心思想是利用非对称加密安全地交换密钥,再利用对称加密进行高效的数据传输,并通过数字证书验证服务器身份。

HTTPS 的加密流程主要包括:

  1. 客户端发起 HTTPS 请求;

  2. 服务器返回数字证书;

  3. 客户端验证证书;

  4. 客户端生成随机密钥并使用公钥加密;

  5. 服务器利用私钥解密;

  6. 双方生成会话密钥;

  7. 使用对称加密进行安全通信。

正是由于这些机制,HTTPS 能够有效保证网络通信过程中的机密性、完整性和真实性,已经成为现代互联网最重要的安全通信协议之一。

相关推荐
之歆1 小时前
Node.js HTTP 模块深度解析与实战指南
网络协议·http·node.js
潜创微科技2 小时前
ITE IT920X 4K60 HDMI+USB over IP 远距离传输与视频墙单芯片方案
网络协议·tcp/ip·音视频
Zhan8611242 小时前
深夜调试法国行情数据API接口的教训:法国CAC40指数WebSocket接入复盘
websocket·网络协议·php
带土12 小时前
12. UDP协议概述
网络·网络协议·udp
kebidaixu3 小时前
Modbus TCP 协议详解
网络·网络协议·tcp/ip
VidDown3 小时前
VidDown 工具站:免费视频处理与开发者工具箱
网络协议·编辑器·音视频·视频编解码·视频
sweet丶18 小时前
MQTT消息通道-基础篇
网络协议
奥利奥夹心脆芙20 小时前
辅助排查 HTTP 接口代码报错,实操完整案例分享
http
吠品21 小时前
一次 Nginx 报错 unexpected end of file 的排查记录
网络协议·https·ssl