目前使用的TLS协议有三个版本,即TLS 1.0、1.1和1.2。
TLS 1.0于1999年发行,至今将近有20年。业内都知道该版本易受各种攻击(如BEAST和POODLE)已有多年,除此之外,支持较弱加密,对当今网络连接的安全已失去应有的保护效力。
而TLS 1.1感觉就像是被遗忘的“老二”。该版本虽没有任何已知的协议漏洞,但是它却共享支持错误加密。因而存在一个现象,就是大部分软件都会跳过直接使用TLS 1.2,而很少看到使用TLS 1.1。
目前很少客户端使用这两个版本,在许多站点的所有HTTPS连接中,仅占个位数的百分比。虽然由SSL Pulse监控所得数据显示,在150,000个启用HTTPS的站点中,仍有88%的支持TLS 1.0以及85%的支持TLS 1.1。
这很明显,是时候该停止使用这些虽然仍支持HTTPS但已过时的协议版本了,但是互联网上的事儿几乎终止和终止还是有着很大的区别的。今年,已有大量网站和服务最终结束了对TLS 1.0和1.1的支持,这其中就包括DigiCert。
旧版的TLS使用范围有多广?
几乎每个阅读此帖(事实上大部分互联网)的人都正在使用TLS 1.2,这是当前最新的协议版本(TLS 1.3发行在即,稍后再做详细介绍)。目前该版本是唯一被密码学家所推荐且可以称得上是“现代”的协议版本。
遗憾地是,仍有小部分用户因其软件落后而无法实现版本的升级。TLS 1.2虽早在2008年就已发布,但是却在一些主流平台和浏览器上缺席过一段时间。Internet Explorer直到2013年发行11版本才实现支持TLS 1.2;而安卓版本在5.0(于2014年发行)之前也仅支持TLS 1.0,事实上,目前仍有将近18%的安卓设备继续使用此版本。
具体衡量整个互联网系统使用TLS协议的情况是非常难的。而来自全球最大的CDN之一的Cloudflare的数据却能够比较好地呈现整个互联网范围的情形概况。他们近期分享了一项监测结果,他们的网络上大概有11%的流量在使用TLS 1.0(而仅有非常少一部分 (0.38%) 在使用TLS 1.1)。
更难确定的是,有多少百分比的流量来自有机粘性的消费软件,以及有多少百分比是来自运行web服务器、API端点和其它软件的电脑。
旧版协议本身是一种安全隐患
TLS 1.0和1.1目前在互联网上的存在可以说就是一种安全隐患,这些协议几乎得到了服务器的普遍支持,但是从客户端使用上来说却几乎是截然相反的局面。使用这些版本的客户端会遭受其缺陷所致的负面后果。互联网的其余部分则给降级攻击(该攻击会迫使用户降级使用更弱的TLS版本以利用已知漏洞)留有可乘之机,从而造成不必要的损害。对于大部分此类服务器,为了“以防万一”仍留有旧版的TLS,或者在启用新版本后根本就忘了关闭旧版协议。
最终刺激弃用TLS1.0的是其在PCI(支付卡行业)标准中即将要敲响最后期限的钟声。这些标准覆盖了与处理信用卡相关的各项安全操作,且适用于诸多行业。自2018年6月30日起,网站将需要停止支持TLS1.0以实现PCI合规。
下一个版本即TLS 1.1被视为一个小的增量升级。虽然6月后PCI标准仍允许使用TLS 1.1,但是很多网站同时弃用了这个版本,因为该版本历来使用率就低。
那么这对于咱们普通的浏览器用户意味着什么呢?说明此次变更对我们没有什么影响。绝大部分网站已经支持TLS 1.2,且任何现代浏览器(近五年发行的几乎所有浏览器)也都支持TLS 1.2,也选择了最新支持的版本。
DigiCert将于主要网站上禁用TLS 1.0和1.1
弃用旧版TLS协议主要会影响非浏览器的软件、API和其它互联网基础设施。目前仍有不支持TLS 1.2的旧版开发工具(如curl)直接在开发员范围或作为其它软件绑定的依赖工具广为使用。Github是首批关闭使用TLS 1.0和1.1的主要服务项目之一。他们于2月份做出此次变更,由此在开发员工具中发现了大量破损。
DigiCert也将于4月1日在我们的所有服务中禁用TLS 1.0和1.1,包括我们的网站和API(我敢保证这绝对不是愚人节的玩笑)。
很多其它主流网站和服务也都相继宣布于年底结束支持旧版本。KeyCDN将于3月30日结束支持TLS 1.0和1.1,Cloud.gov亦如此。Fastly将于5月8日停止支持TLS 1.0和1.1。Cloudflare将于6月4停止支持在其API使用TLS 1.0和1.1。Microsoft’s Office 365自10月31日起也将仅支持TLS 1.2。事实上,这些仅是其中的几个例子而已。
随着TLS 1.0 的落幕,安全协议的下一代即将登场。TLS 1.3已在互联网工程任务组的起草阶段进行了相当长一段时间,并于近期在伦敦的IETF 101会议上获得通过。而最终的审核流程还需几个月的时间,然后随着客户端和服务器软件的支持,部署将会随后缓慢进行。
TLS 1.3较前两个版本有突破性改进,其中包括,握手更快从而加快连接速度;简化支持的加密方式,最终降低了协议的复杂性也消除了不安全的密码。
TLS 1.3草案版本已在相当长一段时间内得到了一些主要提供商的支持,如Chrome浏览器和Cloudflare。近期,Cloudflare分享了一份数据,其网络上2%的连接已使用TLS 1.3。当TLS 1.3成为正式的RFC的时候,主流软件包(如OpenSSL)逐渐添加支持后,该新的协议版本的使用率将会呈现飞跃式的增长。