【软考备考】 安全协议:SSL/TLS, IPSec 详解
第一部分:SSL/TLS 协议详解
SSL和TLS是同一个协议的不同版本。SSL由网景公司开发,TLS是IETF标准化的后续版本。我们现在使用的实际上都是TLS,但习惯上仍常称之为SSL。
1. 基本定位与特点
定位:应用层安全协议,工作在传输层(TCP)之上,应用层(HTTP, FTP, SMTP等)之下。
设计目标:为两个应用(如Web浏览器和服务器)之间提供端到端的加密、身份验证和数据完整性服务。
典型应用:
HTTPS = HTTP + SSL/TLS (最经典的例子,端口443)
SMTPS, FTPS, 等等。
2. 协议组成
TLS协议主要由两层组成:
TLS记录协议:
位置:底层。
功能:负责对上层数据进行分块、压缩(已禁用)、计算消息认证码、加密,然后通过传输层发送。接收方则执行解密、验证、解压缩和重组。
提供:机密性(通过加密)和完整性(通过MAC)。
TLS握手协议:
位置:在记录协议之上。
功能:在数据传输开始前,双方进行身份验证、协商加密算法、交换密钥。这是整个协议最复杂和核心的部分。
提供:身份认证和安全参数协商。
3. 工作流程(以RSA密钥交换为例)
一次完整的TLS握手过程如下图所示,它通过一系列“握手”消息来建立安全连接:
详细步骤解读:
ClientHello:客户端向服务器发起连接,发送支持的TLS版本、支持的密码套件列表(如
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
)和一个客户端随机数。ServerHello:服务器回应,确定要使用的TLS版本、密码套件,并生成一个服务器随机数。
Certificate:服务器将自己的数字证书发送给客户端,证书中包含服务器的公钥和身份信息,由CA(证书颁发机构)签名。
ServerKeyExchange:如果选择的密码套件需要(如DHE/ECDHE),服务器会发送自己的临时公钥参数。
CertificateRequest:可选步骤,如果服务器需要验证客户端身份(如网银系统)。
ServerHelloDone:服务器表示Hello阶段结束。
客户端验证与响应:
客户端验证服务器证书的有效性(是否可信、是否在有效期内、域名是否匹配等)。
ClientKeyExchange:客户端生成一个预主密钥,并使用服务器证书中的公钥进行加密(RSA方式),发送给服务器。如果是DHE/ECDHE,则发送客户端的临时公钥参数。
此时,客户端和服务器都拥有了两个随机数(Client Random, Server Random)和预主密钥(或通过DH算法交换出的共享密钥),它们使用相同的算法生成最终的主密钥和会话密钥。
ChangeCipherSpec:客户端通知服务器,“之后的通信将使用协商好的密钥和算法进行加密”。
Finished:客户端发送一条加密的握手完成消息,包含之前所有握手消息的摘要,供服务器验证。
服务器同样发送 ChangeCipherSpec 和 Finished 消息。
安全通道建立:至此,握手完成,双方开始使用对称加密密钥进行安全的应用程序数据传输。
4. 软考考点
端口号:HTTPS默认使用443。
协议层次:属于传输层与应用层之间的安全协议。
握手过程:能详细描述每一步的作用(特别是随机数、证书、密钥交换的目的)。
密码套件:理解其命名规则,如
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
表示:TLS
:协议ECDHE
:密钥交换算法RSA
:身份认证算法AES_128_GCM
:对称加密算法和模式SHA256
:用于生成MAC的哈希算法
与IPSec的区别(见下文总结)。
第二部分:IPSec 协议详解
1. 基本定位与特点
定位:网络层安全协议,工作在网络层(IP层)。
设计目标:为IP数据包提供端到端或站点到站点的安全服务。它对上层应用是透明的,应用程序无需任何修改即可获得安全保护。
典型应用:
VPN:最典型的应用,构建安全的远程访问或站点间连接。
安全地连接分支机构。
为IPv6提供原生安全支持。
2. 协议组成
IPSec不是一个单一的协议,而是一个协议套件,主要由三部分组成:
认证头:
功能:为IP数据包提供无连接完整性、数据源认证和防重放攻击保护。
特点:不提供加密,所以数据是明文的。协议号为51。
数据结构:包含在IP头和传输层头之间。
封装安全载荷:
功能:提供机密性、数据源认证、无连接完整性和防重放攻击保护。
特点:功能比AH更全面,是IPSec中最常用的协议。协议号为50。
数据结构:将原始的IP数据包(传输层模式)或整个IP包(隧道模式)进行加密和封装。
Internet密钥交换:
功能:用于双方动态地建立安全关联、协商加密算法、哈希算法、密钥交换以及相互进行身份验证。
组成:由 ISAKMP 框架、Oakley 密钥确定模式和 SKEME 验证方式组合而成。
工作阶段:
第一阶段:建立一条安全的、经过认证的管理通道(ISAKMP SA)。可以使用主模式或积极模式。
第二阶段:在第一阶段建立的SA保护下,协商用于实际数据传输的IPSec SA。通常使用快速模式。
3. 工作模式
传输模式:
保护对象:主要保护传输层载荷(如TCP、UDP数据)。
数据封装:IP头 + (AH/ESP头) + 传输层头 + 数据。
应用场景:端到端的通信,例如两台主机之间的安全通信。
隧道模式:
保护对象:保护整个原始IP数据包。
数据封装:新的IP头 + (AH/ESP头) + 原始IP头 + 传输层头 + 数据。
应用场景:站点到站点的VPN,或主机到网关的远程访问VPN。数据在公网上传输时,原始的源和目的IP地址被隐藏。
4. 软考考点
协议组成:AH和ESP的区别(是否加密)、IKE的作用。
工作模式:传输模式与隧道模式的区别、封装方式、应用场景。
SA:安全关联的概念,它是IPSec的基础,是单向的,包含目标IP、SPI、安全协议等。
典型应用:VPN。
与SSL/TLS的区别(见下文总结)。
第三部分:SSL/TLS 与 IPSec 核心对比总结
特性 | SSL/TLS | IPSec |
---|---|---|
协议层次 | 应用层与传输层之间 | 网络层 |
透明性 | 对应用程序不透明,应用需要主动调用(如使用HTTPS) | 对上层应用程序透明,应用无需感知 |
保护范围 | 保护特定应用流量 | 保护所有IP数据包 |
部署方式 | 通常在端系统(客户端、服务器)上实现 | 可在端系统或安全网关(路由器、防火墙)上实现 |
主要应用 | Web安全(HTTPS)、安全邮件、特定应用安全 | VPN、站点间安全、IPv6安全 |
网络地址 | 不隐藏原始IP地址 | 在隧道模式下可以隐藏原始IP地址 |
配置复杂度 | 相对简单,特别是对于Web应用 | 相对复杂,涉及操作系统或网络设备配置 |
应试技巧
区分场景:题目问“保护Web访问”或“特定应用”,优先考虑SSL/TLS;问“构建两个公司网络的安全隧道”或“保护所有流量”,优先考虑IPSec。
理解层次:牢记SSL/TLS在TCP之上,IPSec在IP层。这决定了它们的部署位置和保护范围。
掌握流程:TLS握手和IPSec的IKE两个阶段是高频考点,务必理解其目的和关键步骤(如随机数、证书、SA协商)。
对比记忆:将两者制成对比表格进行记忆,效果更佳。