深入浅出解析 HTTPS 原理

目录

  • 一、非对称加密与对称加密的结合
    • 1. 对称加密
    • 2. 非对称加密
    • 3. HTTPS 的智慧:混合加密机制
  • 二、数字证书(Digital Certificate)
    • 1.问题引入
    • 2.解决方案
    • 证书包含的信息
    • 信任链机制
  • 三、HTTPS 通信全过程
    • 角色说明
    • 步骤 1:Client Hello
    • 步骤 2:Server Hello
    • 步骤 3:证书验证(Certificate Validation)
    • 步骤 4:生成预主密钥(Pre-Master Secret)
    • 步骤 5:服务器解密预主密钥
    • 步骤 6:生成会话密钥(Session Key)
    • 步骤 7:握手完成,开始安全通信
  • 四、HTTPS 如同寄密信
    • 1. 获取公钥(证书)
    • 2.传递密钥(握手)
    • 3. 朋友拿到钥匙
    • 4. 安全通信开始
  • 五、关键要点回顾
  • 六、总结

可以把 HTTPS 理解为 “穿着 SSL/TLS 盔甲的 HTTP”

它的核心目标很简单:
在不安全的网络(如互联网)上建立一个安全的通信通道,确保数据传输的三大安全属性:

  • 机密性:内容不会被窃听者解密
  • 完整性:内容在传输过程中未被篡改
  • 身份真实性:你连接的服务器就是你以为的那个服务器

一、非对称加密与对称加密的结合

HTTPS 的安全并非依赖单一技术,而是巧妙地结合了两种加密方式。

1. 对称加密

Symmetric Encryption

  • 概念:加密和解密使用同一把密钥。
  • 优点:速度快,适合加密大量数据。
  • 缺点:如何安全地把密钥交给对方?
    如果密钥在传输中被窃听,整个通信就不再安全。

2. 非对称加密

Asymmetric Encryption

  • 概念:一对密钥 —— 公钥私钥
    • 公钥 加密的数据,只有对应的 私钥 才能解密
    • 私钥 加密的数据(即数字签名),可用对应的 公钥 验证其来源
  • 优点:解决了密钥分发问题。公钥可公开,即使被窃听也无法解密
  • 缺点:速度慢,比对称加密慢百倍甚至千倍,不适合加密大量数据

3. HTTPS 的智慧:混合加密机制

用非对称加密交换密钥,用对称加密传输数据

  1. 使用非对称加密安全地传递“对称密钥”
  2. 后续通信全部使用对称加密,保证效率与安全兼顾

二、数字证书(Digital Certificate)

1.问题引入

如何确保你拿到的公钥是真实服务器的,而不是中间人伪造的?

2.解决方案

数字证书

数字证书就像服务器的“网络身份证”,由可信的第三方机构——证书颁发机构(CA) 颁发。

证书包含的信息

  • 证书持有者信息(域名、公司名称等)
  • 服务器的公钥
  • CA 的信息
  • CA 对上述信息的 数字签名
  • 有效期

信任链机制

Certificate Chain

  1. 操作系统和浏览器内置了 受信任的根证书列表
  2. 当服务器发送证书时,浏览器会逐级验证签名:
    • 是否由可信 CA 签发?
    • 是否在有效期内?
    • 域名是否匹配?
  3. 若验证失败 → 浏览器弹出安全警告

这样就防止了“中间人攻击”:攻击者无法伪造一个被信任的证书。


三、HTTPS 通信全过程

TLS 握手详解

这是 HTTPS 安全通信的核心环节,称为 TLS 握手

角色说明

  • 客户端:你的浏览器
  • 服务器:你要访问的网站(如 https://www.google.com

步骤 1:Client Hello

客户端发起连接请求,发送:

  • 支持的 TLS 版本
  • 支持的密码套件(Cipher Suites)
  • 一个 客户端随机数(Client Random)

步骤 2:Server Hello

服务器回应:

  • 确定使用的 TLS 版本
  • 选定的密码套件
  • 一个 服务器随机数(Server Random)
  • 自己的 数字证书

步骤 3:证书验证(Certificate Validation)

客户端验证服务器证书:

  • 证书是否在有效期内?
  • 域名是否匹配?
  • 数字签名是否能被信任链验证?

❌ 若任一验证失败 → 浏览器提示“您的连接不是私密连接”等警告


步骤 4:生成预主密钥(Pre-Master Secret)

  • 客户端从证书中提取服务器的 公钥
  • 生成第三个随机数:预主密钥(Pre-Master Secret)
  • 用服务器的 公钥加密 这个预主密钥
  • 发送给服务器

步骤 5:服务器解密预主密钥

  • 服务器用自己的 私钥 解密,获得预主密钥
  • 至此,双方都拥有了三个随机数:
    • 客户端随机数
    • 服务器随机数
    • 预主密钥

私钥始终保存在服务器本地,绝不外泄!


步骤 6:生成会话密钥(Session Key)

  • 客户端和服务器使用这三个随机数,通过相同的算法生成 主密钥(Master Secret)
  • 再从中派生出本次通信使用的 对称加密密钥(会话密钥)

注意:后续所有通信都使用这个对称密钥进行加解密!


步骤 7:握手完成,开始安全通信

  • 双方互相发送一条 Finished 消息
    • 使用会话密钥加密
    • 验证密钥是否一致、握手是否成功
  • 握手成功!进入加密通信阶段

从此以后:

所有 HTTP 请求和响应数据都通过 对称加密 传输,既安全又高效


四、HTTPS 如同寄密信

想象你要通过一个不安全的邮递系统(互联网)给朋友(服务器)寄一封密信。

1. 获取公钥(证书)

朋友先通过权威公证处(CA)公证了他的公开信箱(公钥),并把公证书(数字证书)寄给你。你确认公证处可信 → 相信这个信箱是真的。

2.传递密钥(握手)

你写一封信,里面装着一把保险箱的钥匙(会话密钥),然后放进朋友的公开信箱(用公钥加密),寄出去。
即使信被截获,别人没有朋友的私人钥匙(私钥),也打不开信箱。

3. 朋友拿到钥匙

朋友用他的私人钥匙打开信箱,取出保险箱钥匙(预主密钥),生成相同的会话密钥。

4. 安全通信开始

现在你们都有了同一把保险箱钥匙。之后所有的信件都放进这个保险箱邮寄,既安全又快捷。


五、关键要点回顾

要点说明
混合加密非对称加密用于安全交换密钥,对称加密用于高效传输数据
数字证书解决“公钥信任”问题,防止中间人冒充服务器
TLS 握手建立安全连接的关键过程,核心是生成共享的会话密钥
三重随机数客户端随机数 + 服务器随机数 + 预主密钥 → 生成唯一会话密钥
前向安全性即使未来私钥泄露,也无法解密过去的通信(现代 TLS 支持)

六、总结

HTTPS 并不是一种全新的协议,而是 HTTP + TLS/SSL 的安全组合。

它通过:

  • 数字证书验证身份
  • 非对称加密建立信任
  • 对称加密保障性能

在开放网络中构建出一条“加密隧道”,让我们可以安全地浏览网页、登录账号、进行支付。

下次当你看到浏览器地址栏的小锁图标时,就知道:
背后正有一场精密而优雅的加密握手在悄然完成。


本文参考 TLS 1.2/1.3 协议设计原理,简化描述以帮助初学者理解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木易 士心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值