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协议栈由四个子协议组成——握手协议、变更密码规范协议、告警协议(均承载于握手协议层),以及记录协议(底层传输载体)。
TLS/SSL 协议栈架构 应用层协议(HTTP, FTP, SMTP, …) TLS 握手协议层(Handshake Protocol) 握手协议 密钥协商、证书交换 变更密码规范协议 切换加密策略 告警协议 错误通知、关闭连接 TLS 记录协议层(Record Protocol) 分片/重组 压缩(可选) 加密 + MAC 添加记录头 TCP 传输层(可靠连接) IP 网络层 TLS 位于传输层之上,对上层应用透明;记录协议负责数据封装,握手协议负责密钥协商

2.2.1 TLS握手协议流程(简化)

  1. ClientHello: 客户端发送支持的TLS版本、密码套件列表、随机数。
  2. ServerHello: 服务器选择TLS版本、密码套件、发送随机数及数字证书。
  3. 证书验证: 客户端验证服务器证书的合法性(CA链、有效期、域名)。
  4. 密钥交换: 使用RSA或ECDHE等算法协商预主密钥,派生会话密钥。
  5. ChangeCipherSpec: 双方通知对方后续通信将使用协商好的加密参数。
  6. 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网关到网关或主机到网关。
IPsec 传输模式 vs 隧道模式 传输模式(Transport Mode) IP头 AH/ESP头 加密的上层数据 IP头不变,仅保护有效载荷 隧道模式(Tunnel Mode) 新IP头 AH/ESP头 原IP包(加密) 整个IP包被封装和加密 传输模式:适用于端到端通信,开销小,但暴露原始IP头 隧道模式:适用于VPN,隐藏内部网络拓扑,支持NAT穿透 典型场景:主机-主机通信 如:两台服务器之间的安全通信 典型场景:站点-站点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更灵活。