根据维基百科:http://en.wikipedia.org/wiki/Transport_Layer_Security
似乎TLS是SSL的替代品,但大多数网站仍在使用SSL?
答案 0 :(得分:54)
简而言之,TLSv1.0或多或少是SSLv3.1。您可以在this question on ServerFault中找到更多详细信息。
大多数网站实际上至少支持SSLv3和TLSv1.0,this study indicates (Lee, Malkin, and Nahum's paper: Cryptographic Strength of SSL/TLS Servers: Current and Recent Practices, IMC 2007)(从IETF TLS list获得的链接)。超过98%的人支持TLSv1 +。
我认为SSLv3仍在使用的原因是遗留支持(尽管大多数浏览器现在支持TLSv1和一些TLSv1.1甚至TLSv1.2)。直到不久之前,一些发行版默认仍然使用SSLv2(被认为是不安全的)以及其他发行版。
(您可能还会发现this question有趣,虽然它是关于TLS的使用模式而不是SSL与TLS(实际上您可能与SSL具有相同的模式)。这不适用于HTTPS,因为HTTPS在连接开始时使用SSL / TLS。)
答案 1 :(得分:22)
来自http://www.thoughtcrime.org/blog/ssl-and-the-future-of-authenticity/
在90年代早期,在万维网诞生之初,Netscape的一些工程师开发了一种用于发出安全HTTP请求的协议,他们提出的称为SSL。鉴于当时关于安全协议的相对稀缺的知识体系,以及Netscape所有人intense pressure的工作,他们的努力只能被视为非常英雄。令人惊讶的是,SSL已经持续了很长时间,与同一年份的许多其他协议相比。不过,从那以后我们肯定学到了很多东西,但是关于协议和API的事情是,回归很少。
SSL协议有两个主要更新,SSL 2(1995)和SSL 3(1996)。这些都是经过精心设计的,以便向后兼容,以便于采用。但是,向后兼容性是安全协议的约束,它可能意味着向后易受攻击。
因此,决定打破向后兼容性,以及名为TLS 1.0(1999)的新协议。 (事后看来,将它命名为TLS 4可能更清楚了)
此协议与SSL 3.0之间的差异并不显着,但它们非常重要,以至于TLS 1.0和SSL 3.0无法互操作。
TLS已修订两次,TLS 1.1(2006)和TLS 1.2(2008)。
截至2015年,所有SSL版本都被破坏且不安全(POODLE攻击)和浏览器正在取消支持。 TLS 1.0无处不在,但只有60% of sites support TLS 1.1 and 1.2,令人遗憾。
如果你对这些东西感兴趣,我推荐Moxie Marlinspike的聪明和有趣的谈话 https://www.youtube.com/watch?v=Z7Wl2FW2TcA
答案 2 :(得分:9)
tls1.0表示sslv3.1
tls1.1表示sslv3.2
tls1.2表示sslv3.3
rfc只是更改了名称,你可以发现tls1.0的十六进制代码是0x0301,这意味着sslv3.1
答案 3 :(得分:2)
TLS保持与SSL的向后兼容性,因此通信协议在本文任何提到的版本中几乎相同。 SSL v.3,TLS 1.0和TLS 1.2之间的两个重要区别是伪随机函数(PRF)和HMAC散列函数(SHA,MD5,握手),它用于构造对称密钥块。应用程序数据加密(服务器密钥+客户端密钥+ IV)。 TLS 1.1和TLS 1.2之间的主要区别在于1.2要求使用“显式”IV来防止CBC攻击,尽管PRF或协议不需要更改。 TLS 1.2 PRF是特定于密码套件的,这意味着可以在握手期间协商PRF。 SSL最初由Netscape Communications(历史性)开发,后来由Internet工程任务组(IETF,当前)维护。 TLS由网络工作组维护。以下是TLS中PRF HMAC功能之间的区别:
TLS 1.0和1.1
PRF(秘密,标签,种子)= P_MD5(S1,标签+种子)XOR P_SHA-1(S2,标签+种子);
TLS 1.2
PRF(秘密,标签,种子)= P_hash(秘密,标签+种子)
答案 4 :(得分:1)
“如果没有损坏,请勿触摸它”。 SSL3在大多数情况下运行良好(10月份在SSL / TLS协议中发现了一个基本缺陷,但这是应用程序的缺陷而不是procol本身),因此开发人员不要急于升级他们的SSL模块。 TLS带来了许多有用的扩展和安全算法,但它们是方便的补充而不是必须的。因此大多数服务器上的TLS仍然是一种选择。如果服务器和客户端都支持它,它将被使用。
更新:在2016年SSL 3中,甚至发现高达1.2的TLS容易受到各种攻击,建议迁移到TLS 1.2。虽然它们依赖于服务器,但也存在对TLS 1.2的实现的攻击。 TLS 1.3目前正在开发中。现在TLS 1.2是必须的。
答案 5 :(得分:0)
https://hpbn.co/transport-layer-security-tls/是一个很好的介绍
SSL协议最初是在Netscape开发的,用于在Web上启用电子商务交易安全性,这需要加密以保护客户的个人数据,以及身份验证和完整性保证以确保安全交易。为实现这一目标,SSL协议在应用层直接在TCP上实现(图4-1),使其上方的协议(HTTP,电子邮件,即时消息传递和许多其他协议)能够在不改变运行的同时提供通信安全性。通过网络进行通信。
正确使用SSL时,第三方观察者只能推断连接端点,加密类型,以及频率和发送的大致数据量,但无法读取或修改任何实际数据。 / p>
SSL 2.0是该协议的第一个公开发布版本,但由于发现了许多安全漏洞,它很快被SSL 3.0取代。由于SSL协议是Netscape专有的,因此IETF努力使协议标准化,从而产生了RFC 2246,该协议于1999年1月发布,并称为TLS 1.0。从那时起,IETF继续迭代协议以解决安全漏洞,并扩展其功能:TLS 1.1(RFC 2246)于2006年4月发布,TLS 1.2(RFC 5246)于2008年8月发布,现在工作正在进行定义TLS 1.3。