Bru*_*uno 36
SSLv2 和 SSLv3 完全不同(现在两者都被认为是不安全的)。SSLv3 和 TLSv1.0 非常相似,但有一些不同。
您可以将 TLSv1.0 视为 SSLv3.1(实际上这就是交换记录中发生的情况)。将TLSv1.0与TLSv1.1和TLSv1.2进行比较会更容易,因为它们都在 IETF 中进行了编辑,并且或多或少地遵循相同的结构。SSLv3 由不同的机构 (Netscape) 编辑,这使得发现差异变得更加困难。
这里有一些不同之处,但我怀疑我是否可以列出所有这些:
ClientHello
消息(客户端发送的第一条消息,用于启动握手)中,版本适用{3,0}
于 SSLv3、{3,1}
TLSv1.0 和{3,2}
TLSv1.1。ClientKeyExchange
不同。Finished
在 SSLv3 中发送 SSL/TLS消息后,可以直接发送客户端应用程序数据。在 TLSv1 中,它必须等待服务器的Finished
消息。SSL_*
为TLS_*
,并保持相同的 ID 号)。我强烈推荐Eric Rescorla 的书 - SSL 和 TLS:设计和构建安全系统,Addison-Wesley,2001 ISBN 0-201-61598-3,如果你真的想要更多细节。我从这本书中了解到了上面提到的一些要点。作者在解释一些 SSL/TLS 消息时偶尔会提到 SSLv3 和 TLS 之间的区别(仅在编写本书时为 v1.0),但您确实需要有关这些消息的背景解释才能有机会理解(从这本书复制/粘贴在这里是不合适的)。
小智 5
我只会回应其他答案,但重点可能略有不同。
有一个由 Netscape“拥有”的安全套接字协议,称为 SSL 版本 2。Netscape 也“拥有”发布了具有不同记录结构和安全改进的新版本,称为 SSL 版本 3。 place 是一个二进制版本号字段。对于SSL版本3,该字段设置为0x03 0x00,即版本3.0。然后 IETF 决定创建自己的标准。可能是因为 SSL 存在一些知识产权不确定性,包括“SSL”是否是 Netscape 商标,当 IETF 发布该协议的下一版本时,他们给它起了自己的名称:传输层安全协议或 TLS 版本 1.0。记录格式和整体结构与SSL v3相同且一致。二进制版本号已更改为 0x03 0x01,正如其他人指出的那样,存在一些细微的加密更改。此后出现了 TLS 版本 1.1 和 1.2,其内部协议编号为 0x03 0x02 和 0x03 0x03。
忽略 SSLv2,它基本上只是名称更改以及随着人们对安全性和性能变得更加聪明而发生的正常协议微调。