为什么更改密码规范是独立的协议内容类型而不是握手消息的一部分?

信息安全 tls
2021-08-11 16:17:11

RFC 2246 说:

为了帮助避免管道停顿,ChangeCipherSpec 是一种独立的 TLS 协议内容类型,实际上并不是 TLS 握手消息。

这里谈论的是什么管道停滞?为什么 TLS 的创建者不将 Change Cipher Spec 作为 Handshake Message 本身的一部分?

1个回答

SSL 使用在记录上编码的消息加密是在每条记录的基础上完成的。但是,同一类型的多个消息(例如握手消息)可以挤在同一条记录中。由于 Change Cipher Spec 消息修改了加密设置,因此应立即开始新记录,以便立即应用新设置(特别是 Finished 消息使用新加密和 MAC 对安全性至关重要)。

使用 Change Cipher Spec 的特定记录类型是强制执行此属性的一种方式。SSL/TLS 实现只能为 Finished 消息开始一条新记录,因为它使用的记录类型与 Change Cipher Spec 消息的记录类型不同。如果所有 SSL/TLS 实现都经过严格的规范,可以在需要的地方开始新记录,并且还验证对等方是否也开始了新记录,则可以避免这种特定的记录类型通过记录类型使其不可避免,更安全,更健壮。