售前咨询
技术支持
渠道合作

为什么浏览器仍旧没启用TLS.1.3(上)

在复杂的网络环境中升级安全协议是件困难的事情。首先需要更新客户机和服务器,并确保两者之间的一切都能继续正常工作。现在互联网正处于类似的升级中。传输层安全(TLS)是一种保持Web浏览机密性的协议(目前仍有许多人坚持调用SSL),随着TLS 1.3的引入,开始进行第一次重大修改。去年,有部分站点通过在服务器端默认支持TLS 1.3大供应商。相信日后将会被极力推荐,但目前主要的浏览器仍旧还没没启用TLS 1.3。

为什么还没部署TLS1.3

其中是因为middlebox。网络设备,旨在监视并拦截企业环境和移动网络中的HTTPS流量。Middlebox错误实现了TLS1.2,阻止了浏览器实现TLS1.3。但,单一的指责网络供应商的不诚信责任。其实更重要的原因是当初TLS1.3的设计,与互联网随着时间发展的方式是不兼容的。本文将探讨具体原因。

TLS工作如何进行版本协商

传输层安全协议TLS是支持使用HTTPS,进行Web安全浏览的重要手段。在20世纪90年代后期,TLS协议是从安全套接字层(SSL)改编而来。TLS目前有三个版本:1.0,1.1和1.2。

TLS协议十分灵活,可以随着时间的推移以不同的方式演变。较小的更改可以被合并为“扩展”(如OCSP和证书透明性),而更大的、更基本的更改通常需要新版本。TLS 1.3是迄今为止协议历史上最大的变化,彻底修改了加密技术,并引入了像0-RTT的特性。

目前并非每个客户端和服务器都支持相同版本的TLS,所以这给升级协议带来了不可行性。因此只能使用大多数客户端和服务器都支持的版本。TLS版本的协商非常简单,客户端通知服务器它支持的协议的最新版本,服务器回复它们都支持的协议的最新版本即可。

TLS中的版本以双字节值表示。由于TLS是从SSLv3改编的,协议中使用的文字版本号只是次要版本的增量:

SSLv3是3.0

TLS 1.0是3.1

TLS 1.1是3.2

TLS 1.2是3.3等

使用TLS连接到服务器时,客户端会在连接开始时发送其支持的最高版本:

(3, 3) → server

理解相同版本的服务器可以以相同版本字节开始的消息进行回复。

(3, 3) → server

client ← (3, 3)

或者,如果服务器只知道该协议的旧版本,则可以使用旧版本进行回复。例如,如果服务器只说TLS 1.0,则可以回答:

(3, 3) → server

client ← (3, 1)

如果客户端支持服务器返回的版本,则他们继续使用该版本的TLS并建立安全连接。如果客户端和服务器不共享通用版本,则连接失败。

这次谈判的目的是为了与未来兼容。如果客户端发送的版本高于服务器支持的版本,服务器应该仍然能够回复服务器支持的任何版本。例如,如果客户端发送(3,8)到目前的TLS 1.2的服务器,它应该只回复(3,3),握手将继续作为TLS 1.2。

事实证明,一些服务器没有正确实施,导致一系列事件使网络用户面临严重的安全漏洞。

TLS的最后一次重大升级是引入了TLS 1.2。在浏览器中部署TLS 1.2的过程中,发现一些TLS 1.0服务器没有正确实现版本协商。当客户端连接到TLS 1.2的TLS连接时,有故障的服务器将断开连接,而不是协商他们理解的TLS版本(如TLS 1.0)。

遇到这种情况,浏览器将通过以下三项来处理:

1、启用TLS 1.2和一些网站将停止工作

2、延迟TLS 1.2的部署,直到这些服务器被修复

3、如果连接失败,请重试旧版本的TLS

当遇到浏览器更新时,用户希望网站是能正常访问的。但行为不当的服务器数量实在太多,只能选择第一个选项。至今,TLS 1.2已经使用了一年,但服务器仍未解决这个问题。因此没有选项2的选择。剩下只有选项3可执行的。

为了启用TLS 1.2和用户满意,大多数浏览器选择了所谓的“不安全的降级”。

为了启用TLS 1.2并保持用户满意,大多数浏览器实现了所谓的“不安全的降级”。当连接站点时遇到连接失败时,他们将再次尝试使用TLS 1.1,然后再到TLS 1.0,如果还是失败,则会使用SSLv3。这一降级逻辑“修复”了这些损坏的服务器…以一个缓慢的连接建立的代价。

不安全的降级之所以被称为不安全,是因为客户端降级是由特定类型的网络故障触发的,这种类型的故障很容易被欺骗。从客户机的角度来看,无法判断这个故障是由服务器故障引起的,还是在连接网络的路径上遭受攻击。这意味着网络攻击者可以注入假的网络故障,并欺骗客户端连接到SSLv3的服务器,即使两者都支持更新的协议。在这一点上,SSLv3没有严重的公开漏洞,所以这看起来不是一个大问题。然后POODLE发生了。

2014年10月,Bodo Moller发布了POODLE,这是SSLv3协议中的一个严重漏洞,允许网络攻击者轻易获取加密信息。由于TLS 1.0在客户端和服务器上都被广泛使用,在web上使用SSLv3的连接非常少,应该可以确保它们的安全性。然而,不安全的降级功能使得攻击者有可能将任何与SSLv3的连接降级,如果双方都支持的话(目前普遍存在的情况)。这种“downgrade dance”媒介出现,将POODLE带来的风险转变为影响大多数网络的严重问题。

本文由GDCA翻译于cloudflare

上一篇:

下一篇:

相关新闻

 

领取优惠
免费预约

申请试用SSL证书

提交成功!

咨询客服