「SSL and TLS」

  CREATED BY JENKINSBOT

TLS – Transport Layer Security

传输层安全(TLS),以及已弃用的前身安全套接字层(SSL),都是密码协议,用于在网络上提供通讯安全。该协议几个版本在一些应用中广为使用,比如邮件、浏览器、即时通讯、VoIP 等等。

TLS and SSL

早期对传输层安全性的研究工作包括安全网络编程(SNP)应用程序编程接口(API),该接口于 1993 年探索了一种安全传输层 API 的方法,与 Berkeley 套接字非常相似的,以便于安全地改进现有的网络应用程序措施。

而 SSL 与 TLS 都是为了解决传输层安全性的问题而出现的协议。所以 SSL 和 TLS 都是协议。可以说 TLS 和 SSL 是为解决同一问题在不同时期的产物。 SSL 协议目前已经废弃,推荐使用 TLS 协议。

协议发展历史

年份 协议版本 缩写 描述
0000 SSL Version 1.0    
1995 SSL Version 2.0 SSLv2  
1996 SSL Version 3.0 SSLv3  
1999 TLS Version 1.0 TLSv1  
2016 TLS Version 1.1 TLSv1.1  
2008 TLS Version 1.2 TLSv1.2  
2018 TLS Version 1.3 TLSv1.3  

网景开发了原始的SSL协议,版本1.0,但从未公开发布,因为协议存在严重的安全漏洞;

在1995年2月发布的版本2.0也包含许多安全漏洞,需要设计3.0版本。

在1996年发布的SSL版本3.0,协议的完全重新设计,Paul Kocher与网景工程师Phil Karlton和Alan Freier合作完成,其中Christopher Allen和Tim Dierks参与了Consensus Development的参考实现。较新版本的SSL/TLS基于SSL 3.0。1996年的SSL 3.0草案由IETF作为RFC 6101中的历史文档发布。

1995年至1998年,网景通讯的首席科学家Taher Elgamal被称为为“SSL之父”。

2014年,SSL 3.0被发现容易受到影响SSL中所有分组密码的POODLE攻击;RC4是SSL 3.0支持的唯一非块密码,在SSL 3.0中也可以使用。

RFC 6176在2011年禁止使用SSL 2.0,并且RFC 7568在2015年6月后也禁止使用SSL 3.0。

TLS也是一个协议。为了解决传输层安全性的问题而出现的协议。

于1999年1月首次在RFC 2246中定义为「SSL 3.0版的升级版」,由Christopher Allen和Consensus Development的Tim Dierks编写。 正如RFC中所述,“此协议与SSL 3.0之间的差异并不显着,但它们足以阻止TLS 1.0和SSL 3.0之间的互操作性”。TLS 1.0确实包含了一种方法,通过该方法,TLS实现可以将连接降级到SSL 3.0,从而削弱安全性。

PCI理事会建议组织在2018年6月30日之前从TLS 1.0迁移到TLS 1.1或更高版本。

于2006年4月在RFC 4346中定义。它是TLS 1.0版的更新。

于2008年8月在RFC 5246中定义。它基于早期的TLS 1.1规范。

在2018年8月的RFC 8446中定义。它基于早期的TLS 1.2规范。

OpenSSL and GnuTLS

它们都是 SSL 协议与 TLS 协议的实现,两者都支持 SSL 协议和 TLS 协议(因此不能根据名称来判断功能)。

类似的实现还有 SharkSSL、MatrixSSL 等等,参考 Comparison of TLS implementations 页面。

参考文献

Wikipedia/Transport Layer Security