2. 安全通信协议模型:OSI与TCP/IP模型中的安全层、TLS/SSL协议栈架构、IPsec与SSH协议概述
2.1 OSI与TCP/IP模型中的安全层定位
安全通信协议可部署在OSI七层模型的不同层次,每层提供不同粒度的安全服务。TCP/IP模型作为事实标准,其安全协议部署位置与OSI模型存在映射关系。
| OSI层 | TCP/IP层 | 典型安全协议 | 保护粒度 | 主要安全目标 |
|---|---|---|---|---|
| 应用层 (7) | 应用层 | SSH, S/MIME, PGP, HTTPS | 应用数据 | 端到端机密性、完整性、身份认证 |
| 表示层 (6) | 应用层 | TLS/SSL (握手协商) | 会话数据 | 加密、认证、防篡改 |
| 会话层 (5) | 应用层 | TLS/SSL (会话管理) | 会话 | 会话恢复、密钥更新 |
| 传输层 (4) | 传输层 | TLS/SSL (记录协议), DTLS | 传输段 | 流加密、消息认证 |
| 网络层 (3) | 网络层 | IPsec (AH/ESP) | IP数据包 | 网络层机密性、完整性、源认证 |
| 数据链路层 (2) | 网络接口层 | MACsec, WPA3 | 帧 | 链路层加密、访问控制 |
| 物理层 (1) | 网络接口层 | 链路加密机 | 比特流 | 物理层加密 |
安全层选择原则: 安全层越低,对上层应用透明性越好,但保护粒度越粗;安全层越高,保护粒度越细,但需要应用感知和适配。实际部署中,TLS(传输层)和IPsec(网络层)是最广泛使用的两种安全协议。
2.2 TLS/SSL协议栈架构
TLS(Transport Layer Security)及其前身SSL(Secure Sockets Layer)是部署在传输层之上的安全协议,为TCP连接提供端到端安全服务。TLS 1.3是目前主流版本,其协议栈分为两层:握手协议层和记录协议层。
核心架构: TLS协议栈由四个子协议组成——握手协议、变更密码规范协议、告警协议(均承载于握手协议层),以及记录协议(底层传输载体)。
2.2.1 TLS握手协议流程(简化)
- ClientHello: 客户端发送支持的TLS版本、密码套件列表、随机数。
- ServerHello: 服务器选择TLS版本、密码套件、发送随机数及数字证书。
- 证书验证: 客户端验证服务器证书的合法性(CA链、有效期、域名)。
- 密钥交换: 使用RSA或ECDHE等算法协商预主密钥,派生会话密钥。
- ChangeCipherSpec: 双方通知对方后续通信将使用协商好的加密参数。
- Finished: 双方发送握手消息的MAC,验证握手过程未被篡改。
TLS 1.3 重要变化: 移除了静态RSA密钥交换、压缩、RC4、3DES等不安全算法;握手从2-RTT缩短为1-RTT(首次)或0-RTT(会话恢复);仅支持前向安全的密钥交换(DHE/ECDHE)。
2.3 IPsec协议概述
IPsec(Internet Protocol Security)工作在网络层,为IP数据包提供安全服务。它不是一个单一协议,而是一组协议的集合,包括安全协议、密钥管理协议和加密算法。
| 组件 | 协议/标准 | 功能描述 |
|---|---|---|
| 认证头(AH) | RFC 4302 | 提供数据完整性、源认证、抗重放保护,不提供机密性 |
| 封装安全载荷(ESP) | RFC 4303 | 提供机密性、数据完整性、源认证、抗重放保护 |
| 安全关联(SA) | RFC 4301 | 单向逻辑连接,定义安全参数(算法、密钥、SPI) |
| 密钥交换(IKEv2) | RFC 7296 | 自动协商SA、认证对端、派生密钥 |
2.3.1 IPsec工作模式
- 传输模式(Transport Mode): 仅保护IP数据包的有效载荷(上层协议),IP头不变。适用于端到端通信(如主机到主机)。
- 隧道模式(Tunnel Mode): 保护整个IP数据包,将其封装在新的IP头中。适用于VPN网关到网关或主机到网关。
2.4 SSH协议概述
SSH(Secure Shell)协议工作在应用层,最初用于替代不安全的Telnet、rlogin等远程登录协议。SSH-2(RFC 4251系列)是目前广泛使用的版本,提供安全的远程登录、命令执行、文件传输(SFTP/SCP)和端口转发功能。
2.4.1 SSH协议栈架构
| 层 | 协议/组件 | 功能 |
|---|---|---|
| 传输层协议 | SSH-TRANS | 服务器认证、密钥交换、加密、完整性保护、压缩 |
| 用户认证协议 | SSH-USERAUTH | 客户端身份认证(密码、公钥、键盘交互等) |
| 连接协议 | SSH-CONNECT | 多路复用多个逻辑通道(shell、exec、tcpip-forward) |
2.4.2 SSH安全特性
- 主机密钥认证: 客户端首次连接时验证服务器主机公钥(通过known_hosts),防止中间人攻击。
- 多种认证方式: 密码认证、公钥认证(推荐)、键盘交互认证、GSSAPI认证。
- 前向安全性: 使用Diffie-Hellman密钥交换,会话密钥不依赖长期密钥。
- 端口转发: 支持本地、远程和动态端口转发(SOCKS代理),实现加密隧道。
- 文件传输: SFTP(SSH File Transfer Protocol)和SCP(Secure Copy)基于SSH提供加密文件传输。
SSH与TLS关键区别: SSH主要用于远程管理和安全隧道,不依赖PKI(公钥基础设施),采用信任首次使用(TOFU)模型;TLS主要用于Web安全,依赖CA签发的数字证书进行身份认证。
2.5 三种安全协议对比总结
| 特性 | TLS/SSL | IPsec | SSH |
|---|---|---|---|
| 工作层 | 传输层(4) | 网络层(3) | 应用层(7) |
| 保护对象 | TCP连接数据 | IP数据包 | 远程会话/隧道 |
| 身份认证 | X.509证书(PKI) | 证书/预共享密钥 | 主机密钥+用户公钥 |
| 密钥交换 | RSA/ECDHE | IKEv2 (DH) | DH (group1-21) |
| 前向安全 | TLS 1.3强制 | 支持(DHE) | 支持 |
| 典型应用 | HTTPS, FTPS, SMTP over TLS | VPN, 站点间安全通信 | 远程登录, SFTP, 端口转发 |
| 透明性 | 应用需适配 | 对应用透明 | 应用需适配 |
| 复杂性 | 中等 | 高 | 低 |
选型建议: 保护Web应用首选TLS;构建站点间VPN首选IPsec;远程管理和文件传输首选SSH。在需要同时保护多种应用流量时,IPsec的透明性优势明显;在需要细粒度访问控制时,TLS或SSH更灵活。