🎯 课程摘要:本课介绍运输层安全实例——SSL/TLS(运输层安全协议)。SSL/TLS 作用于应用层与运输层之间,提供服务器鉴别、客户鉴别和加密会话三种安全服务。以网上购物为例详述 SSL 握手过程,并说明 HTTPS(安全 HTTP)= HTTP + SSL/TLS。
- 背景引入:以网上购物为例,需要实现的安全服务包括:
- 顾客与销售商之间相互鉴别,防止冒充者;
- 确保报文(如购物清单和账单)在传输过程中未被篡改;
- 确保敏感信息(如信用卡号)不被窃听。
- 两大协议:
- SSL(安全套接层):网景公司于 1994 年开发,目前版本为 SSL 3.0。
- TLS(运输层安全协议):IETF(因特网工程任务组)在 SSL 3.0 基础上标准化设计,新版本为 2008 年 8 月公布的 TLS 1.2。
- 关系:TLS 是 SSL 的后续标准化版本,现在很多浏览器都使用 SSL/TLS。
- 作用层:SSL/TLS 作用于 TCP/IP 体系结构的应用层与运输层之间。
- HTTPS:应用层中使用 SSL/TLS 最多的协议是 HTTP。基于 HTTP 的安全应用(即 HTTPS)需在应用层与运输层之间添加 SSL/TLS 安全层,在运输层 TCP 连接上建立安全通道。
- HTTPS 的 TCP 端口号为 443(而非普通 HTTP 的端口号 80);
- 安全网页的 URL 中协议标识用 HTTPS 代替 HTTP。
| 对比项 | 普通 HTTP 应用 | 安全 HTTP(HTTPS)应用 |
|---|
| 应用层协议 | HTTP | HTTPS(HTTP + SSL/TLS) |
| 安全层 | 无 | SSL/TLS 安全层 |
| 运输层 | TCP 连接 | TCP 连接上的安全通道 |
| TCP 端口号 | 80 | 443 |
| URL 协议标识 | http | https |
| 安全服务 | 说明 | 是否可选 |
|---|
| SSL 服务器鉴别 | 支持 SSL 的客户端通过验证来自服务器的证书来鉴别服务器的真实身份,并获得服务器的公钥 | 必选 |
| SSL 客户鉴别 | 用于服务器证实客户的身份 | 可选 |
| 加密的 SSL 会话 | 加密客户和服务器之间传送的所有报文,并检测报文是否被篡改 | 必选 |
假设某购物网站的 Web 服务器使用 SSL 为顾客在线购物提供安全服务。
| 步骤 | 内容 |
|---|
| ① 建立 TCP 连接 | 浏览器与 Web 服务器建立 TCP 连接 |
| ② 加密算法协商 | 浏览器向服务器发送可选加密算法列表,服务器选定所支持的算法并告知浏览器 |
| ③ 服务器鉴别 | 服务器向浏览器发送包含其公钥的数字证书;浏览器使用该证书的认证中心(CA)公开发布的公钥对证书进行验证 |
| ④ 生成会话密钥 | 浏览器产生随机秘密数,用秘密数按协商算法产生共享的对称会话密钥;用服务器公钥加密秘密数发送给服务器;服务器用私钥解密出秘密数,按同样算法产生共享会话密钥 |
| ⑤ 通知完成 | 服务器通知浏览器会话密钥产生完成 |
| ⑥ 安全通信 | 双方用会话密钥加密和解密传送的数据,并验证完整性 |
- ⚠️ 重点/考点:
- SSL 握手使用公钥加密协商出对称会话密钥,之后数据传输使用对称密钥加密(兼顾安全与效率);
- 服务器鉴别通过数字证书 + CA 公钥实现;
- SSL 客户鉴别是可选的安全服务。
- SSL/TLS(运输层安全协议)作用于应用层与运输层之间,在 TCP 连接上建立安全通道。
- 提供服务器鉴别(必选)、客户鉴别(可选)、加密会话(必选)三种安全服务。
- HTTPS = HTTP + SSL/TLS,端口号 443。
- SSL 握手过程:TCP 连接→加密算法协商→证书验证(服务器鉴别)→公钥加密秘密数→生成对称会话密钥→安全数据传输。
- SSL/TLS 作用于 TCP/IP 体系结构的哪一层?它与 HTTP 的关系是什么?
- 简述 SSL 提供的三种安全服务,其中哪些是必选的、哪些是可选的?
- 详细描述 SSL 握手过程,并说明为什么要先用公钥加密再用对称密钥加密?
- HTTPS 与 HTTP 有何区别?各自的端口号是多少?
- 在 SSL 握手中,浏览器如何鉴别服务器的真实身份?