在询问了此概述问题之后,这是一次技术性的深入探讨。
SSL和TLS之间的协议区别是什么?
真的有足够的区别来保证更名吗?(相对于较新版本的TLS,将其称为“ SSLv4”或SSLv5)
在询问了此概述问题之后,这是一次技术性的深入探讨。
SSL和TLS之间的协议区别是什么?
真的有足够的区别来保证更名吗?(相对于较新版本的TLS,将其称为“ SSLv4”或SSLv5)
Answers:
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)之间的区别,但是您确实需要有关这些消息的背景说明,才能有机会了解(因此不宜在此处复制/粘贴此书)。
draft302.txt
和“ 为了实现前向兼容性... ”)。为了应对不支持此功能的堆栈,还提供了变通办法,例如重新协商扩展中的SCSV伪密码套件。
我将仅回答其他答案,但重点可能稍有不同。
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,基本上只是名称更改,以及随着人们对安全性和性能变得更加精明而进行的常规协议微调。
从根本上讲,这只是协议的较新版本的名称更改。我认为,这样做的主要原因是将它与主要由Netscape设计的较旧的非正式标准区分开来,该标准在成为正式的IETF标准跟踪协议后才得以设计。
就像您先前问题的答案中所说的,这并不意味着SSLv3和TLSv1.0是兼容的。引用RFC 2246:
该协议与SSL 3.0之间的差异并不明显,但它们之间的差异非常大,以至于TLS 1.0和SSL 3.0无法互操作。
我想如果您真的想知道协议中的确切差异,则必须阅读标准并进行比较。
加密协议SSL现在称为TLS,从而为同一协议生成两个名称。当前软件将自动协商TLS版本1或SSL版本3。另一方面,人类必须在使用更易识别的SSL术语与官方TLS名称之间做出选择。
SSL是TLS的前身。
TLS和SSL在应用程序层加密网络连接段,以确保在传输层进行安全的端到端传输。
差异: