2011-12-26 116 views
0

TLS记录类似于使用不同的TLS记录版本:在同一个TCP连接

struct { 
    ContentType type; 
    ProtocolVersion version; 
    uint16 length; 
    opaque fragment[TLSPlaintext.length]; 
} TLSPlaintext; 

是合法的在同一个TCP连接使用不同的TLS记录版本 (如客户问候版本3.2(TLS 1.0)和ServerHello 3.2(TLS 1.1))?

RFC(例如TLS 1.0 RFC 2246)对此有何评论?

感谢

+0

您是否阅读过RFC? – Yahia 2011-12-26 10:16:13

+0

@Yahia是否回答/提示? :)的确我通过RFC搜索,但毫无价值。也许我错过了一些东西。这并不是说我会故意混合使用记录版本,只是我的应用程序位于客户端和服务器之间,而且我想知道预计会发生什么。 – dimba 2011-12-26 14:09:19

回答

1

它的语义不健全尝试使用协议的两个版本中的一个连接。 TLS“唱片版本”不仅仅是关于唱片本身,而是许多唱片的语法,比如它们的顺序或长度,以及错误的期望等等,都会让你陷入流中,不知道下一步会在哪里记录甚至开始。

TCP连接很便宜。如果你需要谈判一个新的连接,最好这样做,而不是试图迫使一个方形钉入圆孔。

+0

有两个版本 - 一个在记录标题中,第二个是通过ClientHello/ServerHello消息的ssl协商版本。这些版本可能不同(例如,参见TLS 1.0 RFC 2246中的段落E.“与SSL的向后兼容性”)。我的问题是有关记录标题中的第一个版本0版本。 – dimba 2011-12-26 14:06:17

+0

并且在“与SSL的向后兼容性”部分中,它再次说明了您应该如何始终协商您的客户端了解的最高版本的规范,而不提及同时使用两个版本 - 因为一次只能使用两个版本是无稽之谈。 – Falkreon 2011-12-26 19:34:50