网络层安全 | SSL协议

2025年3月17日 | 阅读 3 分钟

四种安全套接层 (SSL) 协议

在前一节中,我们只讨论了 SSL 的概念,而没有演示 SSL 如何完成其任务。<请添加指向 SSL 前一文件和 SSL 架构的链接> 根据下图,SSL 在两个层上定义了四种协议。

Network Layer Security | SSL Protocols

传输机制是记录协议。除了来自应用层的信息外,它还包含来自另外三个协议的消息。传输层的有效载荷(通常是 TCP)来自记录协议的消息。记录协议的安全参数通过握手协议提供。它创建一个密码套件,提供密钥,并指定安全参数。此外,如有必要,它会验证客户端和服务器。ChangeCipherSpec 协议用于宣布加密密钥何时准备就绪。异常通过警告协议报告。在本节中,我们将简要介绍所有四种协议。

握手协议

握手协议使用消息交换数据来构建加密密钥,以及协商密码套件,并在必要时验证服务器到客户端和客户端到服务器。握手的四个阶段如下图所示。

Network Layer Security | SSL Protocols

第一阶段 - 建立安全能力

在第一阶段,客户端和服务器会披露他们的安全能力,并选择对双方都最有效的功能。在此阶段会创建会话 ID,并决定密码套件。双方选择特定的压缩技术。为了创建主密钥,正如我们之前所见,最终会选择两个随机整数,一个由客户端生成,一个由服务器生成。第一阶段之后,客户端和服务器都知道 SSL 版本、加密技术、压缩技术以及用于生成密钥的两个随机整数。

第二阶段 - 服务器身份验证和密钥交换

如果需要,服务器身份验证在第二阶段进行。除了向客户端请求证书外,服务器还可以选择发送其证书和公钥。第二阶段完成后,客户端和服务器已获得身份验证,并且如果需要,客户端可以访问服务器的公钥。

第三阶段 - 客户端身份验证和密钥交换

第三阶段用于验证客户端的身份。第三阶段完成后,客户端和服务器可以相互验证并共享预主密钥。

第四阶段 - 完成和结束

在第四阶段,客户端和服务器交换消息以完成握手协议并更改密码参数。

ChangeCipherSpec 协议

正如我们所见,握手协议允许逐步形成加密密钥以及协商密码套件。那么,何时这些参数或密钥可供双方使用呢?SSL 要求,在双方交换或接收到特定的 ChangeCipherSpec 消息(在握手协议期间完成,并在 ChangeCipherSpec 协议中指定)之前,这些参数或密钥不能被使用。原因是问题不仅仅是简单的消息发送和接收。发送方和接收方都需要两个状态,而不是一个。参数和密钥由一个状态(挂起状态)跟踪。活动状态(另一个状态)包含记录协议用于签名、验证或加密和解密消息的参数和密钥。此外,读(入站)和写(出站)数据分别存储在每个状态中。

警告协议

SSL 使用警告协议报告问题和异常情况。它仅使用一条消息来描述问题及其严重性(警告或致命)。

记录协议

来自顶层(握手协议、ChangeCipherSpec 协议、警告协议或应用层)的消息通过记录协议传输。消息被分割成片段,如果需要则进行压缩;然后通过添加具有约定哈希算法的 MAC 来补充压缩后的消息。使用约定的加密过程,压缩片段和 MAC 都被加密。然后,加密的通信会附加 SSL 头部。发送方的此过程显示在给定的图中。接收方会反向执行此过程。

Network Layer Security | SSL Protocols