在这个概述问题被问到之后,这是一个技术性的深入探索。
SSL和TLS之间的协议有什么区别?
是否真的有足够的差异来保证名称的改变? (相对于新版本的TLS,将其称为“SSLv4”或SSLv5)
SSLv2和SSLv3是完全不同的(现在都被认为是不安全的)。 SSLv3和TLSv1.0非常相似,但有一些差异。
你可以把TLSv1.0当作SSLv3.1(实际上这就是交换logging中发生的事情)。 将TLSv1.0与TLSv1.1和TLSv1.2进行比较比较容易,因为它们都是在IETF中编辑的,并且遵循或多或less相同的结构。 SSLv3由另一个机构(Netscape)编辑,这使得找出差异更加困难。
这里有一些差异,但是我怀疑我可以把它们全部列出来:
ClientHello
消息(客户端发送的第一条消息,发起握手)中,SSLv3的版本为{3,0}
,TLSv1.0的版本为{3,1}
,TLSv1.1的版本为{3,2}
。 ClientKeyExchange
不同。 Finished
消息后直接发送。 在TLSv1中,它必须等待服务器的Finished
消息。 SSL_*
重命名为TLS_*
,保留相同的ID号)。 如果你真的想要更多的细节,我会强烈推荐Eric Rescorla的书 – SSL和TLS:devise和构build安全系统 ,Addison-Wesley,2001 ISBN 0-201-61598-3 。 我从本书中了解了上面提到的一些观点。 作者偶尔会在解释SSL / TLS消息时提及SSLv3和TLS(仅在编写本书时的v1.0版本)之间的区别,但是您需要对这些消息的背景解释有一个机会来理解(这里不适合从这本书复制/粘贴)。
我只是回应其他答案,但也许稍微不同的重点。
有一个安全的套接字协议,被Netscape“拥有”,被称为SSL版本2.一个新的版本具有不同的logging结构和安全性的改进,也被Netscape“拥有”,被称为SSL版本3。地方是一个二进制版本号字段。 对于SSL版本3,此字段设置为0x03 0x00,即版本3.0。 然后,IETF决定创build自己的标准。 可能是因为SSL有一些知识产权的不确定性,包括“SSL”是否是Netscape商标,当IETF发布下一个版本的协议时,他们给了它自己的名字:传输层安全协议或TLS 1.0版。 logging格式和总体结构与SSL v3完全一致。 二进制版本号被加速到0x03 0x01,正如其他人注意到的那样,有一些小的encryption改变。 此后,TLS 1.1和1.2版本的内部协议编号为0x03 0x02和0x03 0x03。
忽略SSLv2,基本上只是一个名称的变化,随着人们对安全性和性能变得更聪明,正常的协议微调。
从根本上说,这只是一个更新版本协议的名称变更。 我认为主要的原因是将它与Netscape主要devise的旧的,非正式的标准区分开来,在它成为官方的IETF标准跟踪协议之后。
正如您在先前的问题的答案中所说,这并不意味着SSLv3和TLSv1.0是兼容的。 引用RFC 2246:
这个协议和SSL 3.0之间的差异并不明显,但是它们足够重要,TLS 1.0和SSL 3.0不能互操作。
我想如果你真的想知道协议的确切区别,你必须阅读标准并比较自己。
来自Netscape TLSv1.0 RFC 2246的 SSLv3协议草案
encryption协议SSL现在被命名为TLS,为相同的协议产生两个名称。 当前软件将自动协商TLS版本1或SSL版本3。 另一方面,人类必须在使用更易识别的SSL术语和官方TLS名称之间作出决定。
SSL是TLS的前身。
TLS和SSL对应用层的networking连接段进行encryption,以确保传输层的端到端传输安全。
区别: