TLS 记录如下:
struct {
ContentType type;
ProtocolVersion version;
uint16 length;
opaque fragment[TLSPlaintext.length];
} TLSPlaintext;
在同一个TCP连接中使用不同的TLS记录版本是否合法 (例如 ClientHello 版本 3.2 (TLS 1.0) 和 ServerHello 3.2 (TLS 1.1))?
RFC(例如在 TLS 1.0 RFC 2246 中)是怎么说的?
谢谢
最佳答案
尝试在一个连接中使用一个协议(protocol)的两个版本在语义上是不合理的。 TLS“记录版本”不仅仅是关于记录本身,而是许多记录放在一起的语法,例如它们的顺序或长度,并且以错误的期望进入会让你陷入困境,不知道下一个在哪里记录甚至开始。
TCP 连接很便宜。如果您需要协商新的连接,最好这样做而不是试图将方钉强行插入圆孔。
关于security - 在同一 TCP 连接中使用不同的 TLS 记录版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8634726/