课程笔记:HTTPS 简介与架构图
课程名称:计算机网络应用 核心摘要:本节课围绕 HTTP 协议面临的窃听、冒充、篡改三类安全风险,引出 HTTPS(超文本传输安全协议)的概念、发展趋势及三大安全保障作用;重点剖析 HTTPS 相对于 HTTP 在架构上新增的安全层(SSL/TLS),并通过抓包验证当前主流版本为 TLS 1.2,阐明安全层通过加密传输、身份认证、数字签名实现安全通信的原理。
一、 核心概念与原理
1.1 HTTP 协议的安全风险
所有 HTTP 协议在传输过程中均面临三类核心安全风险:
| 风险类型 | 含义 | 危害 |
|---|---|---|
| 窃听 | 第三方截获传输数据 | 数据明文泄露,隐私暴露 |
| 冒充 | 伪装成合法服务器/客户端 | 钓鱼欺诈,中间人攻击 |
| 篡改 | 修改传输中的数据内容 | 数据完整性被破坏 |
针对上述三类风险的解决方案,即采用 HTTPS 协议。
1.2 HTTPS 协议定义
- 全称:HyperText Transfer Protocol Secure(超文本传输安全协议)
- 命名由来:相对于 HTTP 多了一个 S,即 Secure(安全)
- 本质:在 HTTP 基础之上增加安全层,对传输数据进行加密保护
1.3 HTTPS 发展趋势
HTTPS 已成为互联网应用的必然趋势,各方推动情况如下:
| 推动方 | 具体措施 |
|---|---|
| 调整搜索引擎算法,优先收录并优先展示 HTTPS 网站,搜索排名靠前 | |
| Google Chrome | 2017 年起将采用 HTTP(不加 S)的网站标记为"不安全" |
| Apple | 2017 年起要求 App Store 中所有应用与服务端通信必须使用 HTTPS 加密连接 |
| 国内小程序 | 要求使用 HTTPS |
| HTTP/2 | 新一代 HTTP/2 协议的支持必须以 HTTPS 为基础 |
| HTTP/3 | 将使用 TLS 1.3 |
结论:只要是互联网应用开发,采用 HTTPS 是必然要求;内部项目可另作考量。
二、 技术细节与协议分析
2.1 HTTPS 的三大安全保障作用
| 作用 | 解决的风险 | 实现方式 |
|---|---|---|
| 数据加密 | 窃听风险 | 对称加密 + 非对称加密,明文传输改为密文传输 |
| 身份认证 | 冒充风险 | 通过数字证书验证服务端真实身份 |
| 完整性校验 | 篡改风险 | 通过数字签名机制,一旦被篡改双方立刻发现 |
作用详解
数据加密
- 客户端与服务端通信不再以明文传输,而是以密文传输
- 采用对称加密与非对称加密相结合的方式
- 即使黑客抓取到数据包,也无法解密,保证数据安全
身份认证
- 对网站服务器进行真实身份认证
- 有效避免黑客冒充合法服务器的风险
- 主要针对服务端程序(Web 应用/Web 站点)进行验证
- 实现方式:通过**证书(Certificate)**完成身份校验
完整性校验(防篡改)
- 配备校验机制,数据一旦被篡改,通信双方立即发现
- 实现原理:数字签名
- 数字签名可证明数据来源真实性("证明我是我")
- 检测到篡改后立即判定为不安全,浏览器给出安全提示
2.2 HTTPS 的使用特征
- 通信协议由 HTTP 改为 HTTPS
- 浏览器地址栏出现带锁标记(🔒),位于地址栏左上角
- 点击锁标记可查看数字证书信息
2.3 HTTPS 架构图分析
HTTPS 架构相对于 HTTP 并不复杂,核心差异为新增一个安全层:
┌─────────────────────────────────────┐
│ 应用层 (Application) │
│ HTTPS —— 可运行多种流通道/协议 │
├─────────────────────────────────────┤
│ 安全层 (Security Layer) │ ← HTTP 没有此层
│ SSL / TLS(加密保障) │
├─────────────────────────────────────┤
│ 传输层 (Transport) │
│ TCP │
├─────────────────────────────────────┤
│ 网络层 (Network) │
│ IP │
└─────────────────────────────────────┘
安全层版本演进
| 阶段 | 名称 | 全称 | 说明 |
|---|---|---|---|
| 早期 | SSL | Secure Sockets Layer(安全套接字层) | 名称沿用已久,习惯上仍称安全层为 SSL |
| 当前主流 | TLS 1.2 | Transport Layer Security(传输层安全) | 现阶段实际使用的版本 |
| 下一代 | TLS 1.3 | Transport Layer Security | 将用于 HTTP/3 |
注意:虽然业界习惯将安全层称为 SSL(因该名称存在时间久),但本质上当前运行的已是 TLS 协议。SSL 与 TLS 是同一安全层的不同版本阶段。
2.4 抓包验证 TLS 版本
使用抓包工具(如 Wireshark)验证实际使用的 TLS 版本:
- 在数据包的应用层对应 HTTPS,其下即为安全层
- 安全层展开后可见协议版本信息:TLS 1.2
- 当前抓包示例中,基于协议为 HTTP/2,安全层为 TLS 1.2
所有安全保障均通过**安全层(SSL/TLS)**实现,安全层是 HTTPS 架构的核心。
2.5 安全层的三大核心工作
| 工作内容 | 目的 | 对应机制 |
|---|---|---|
| ① 加密传输所有信息 | 防止窃听 | 对称加密 + 非对称加密 |
| ② 配备身份校验机制 | 防止冒充 | 数字证书(主要验证服务端) |
| ③ 配备完整性校验机制 | 防止篡改 | 数字签名 |
三、 实践应用与配置命令
本节以理论介绍与抓包验证为主,具体将 Web 应用升级到 HTTPS 的实操配置将在后续课程单独讲解。
抓包验证步骤(Wireshark):
- 打开抓包工具,加载已捕获的数据包
- 选中一个 HTTPS 数据包,展开协议层次结构
- 定位到最下层应用层(HTTPS)
- 向上一层即为安全层(Transport Layer Security)
- 展开安全层数据,确认 TLS 版本信息(如
TLS 1.2) - 确认上层基于的协议(如
HTTP/2)
四、 重点与难点提示
考点清单
- HTTP 面临的三类安全风险:窃听、冒充、篡改(必背)
- HTTPS 全称:HyperText Transfer Protocol Secure(超文本传输安全协议)
- HTTPS 相对 HTTP 的架构差异:仅新增一个安全层(SSL/TLS)
- 安全层的三大核心工作:加密传输、身份校验、完整性校验
- SSL 与 TLS 的关系:SSL 为早期名称,当前实际使用 TLS;SSL 名称沿用已久但本质已为 TLS
- 当前主流 TLS 版本:TLS 1.2;HTTP/3 将使用 TLS 1.3
- HTTP/2 与 HTTPS 的关系:HTTP/2 的支持必须以 HTTPS 为基础
- 身份认证的主要对象:服务端程序(通过证书验证)
易错点
- ⚠️ SSL ≠ TLS:SSL 是早期版本名称,当前实际运行的是 TLS,不可混为一谈;但日常口语中常以 SSL 代指安全层
- ⚠️ HTTPS 没有改变 HTTP 的网络架构:仅在 HTTP 与 TCP 之间增加安全层,应用层协议本身不变
- ⚠️ 身份验证主要针对服务端,而非客户端
- ⚠️ HTTPS 的 S 代表 Secure(安全),非其他含义
面试题方向
- 简述 HTTP 与 HTTPS 的区别
- HTTPS 是如何保证数据安全的?(加密 + 身份认证 + 完整性校验)
- SSL 和 TLS 的区别与联系
- 为什么说 HTTPS 是互联网发展的必然趋势?
五、 课后疑问/遗留问题
- 证书的具体工作原理:数字证书如何完成服务端身份验证?CA 机构在其中扮演什么角色?(后续课程讲解)
- 数字签名的实现细节:数字签名如何证明"我是我"?签名与验签的具体流程?
- 对称加密与非对称加密的结合方式:HTTPS 握手过程中两种加密如何配合使用?
- Web 应用升级 HTTPS 的实操配置:如何将普通 HTTP 应用升级为 HTTPS?(后续课程单独介绍)
- TLS 1.3 相比 TLS 1.2 的改进:HTTP/3 中 TLS 1.3 带来哪些性能与安全提升?