云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名解析_负载均衡报价_0元

小七 141 0

TLS1.3为什么还没有出现在浏览器中

在像互联网这样复杂的生态系统中升级安全协议是很困难的。您需要更新客户机和服务器,并确保两者之间的一切继续正常工作。互联网现在正处于这样的升级过程中。传输层安全(transportlayersecurity,TLS)是一种对web浏览保密的协议(许多人坚持称SSL为SSL),随着tls1.3的引入,它将迎来第一次重大变革。去年,Cloudflare是第一个在服务器端默认支持tls1.3的主要提供商。我们预计客户端也会效仿,并在所有主流浏览器中很快启用。Cloudflare发布tls1.3已经一年多了,但是默认情况下,主流浏览器都没有启用tls1.3。对于TLS1.3尚未部署的原因,简化的答案是middlebox:network appliances,它设计用于监视和有时拦截企业环境和移动网络中的HTTPS流量。其中一些中间件错误地实现了tls1.2,现在这阻碍了浏览器发布tls1.3。然而,仅仅指责网络设备供应商是不诚实的。这个故事更深层的真相是,TLS1.3最初的设计与互联网的发展方式不兼容。我将在这篇博文中探讨这是如何以及为什么会发生这种情况的多方面问题。为了帮助用数据支持这一讨论,我们构建了一个工具来帮助检查您的网络是否与TLS 1.3兼容:https://tls13.mitm.watch/版本协商在TLS中的工作原理传输层安全协议TLS是支持使用HTTPS进行安全web浏览的主力。TLS协议是从20世纪90年代后期的早期协议安全套接字层(SSL)改编而来的。TLS目前有三个版本:1.0、1.1和1.2。该协议非常灵活,可以随着时间的推移以不同的方式发展。微小的更改可以合并为"扩展"(例如OCSP和证书透明性),而更大和更基本的更改通常需要一个新版本。tls1.3是迄今为止该协议有史以来最大的变化,它彻底改进了加密技术并引入了像0-RTT这样的特性。不是每个客户机和服务器都支持相同的TLS版本,这使得无法升级协议,所以大多数客户机和服务器同时支持多个版本。为了就连接的通用版本达成一致,客户机和服务器进行协商。TLS版本协商非常简单。客户机告诉服务器它支持的协议的最新版本,服务器用它们都支持的协议的最新版本回复服务器。TLS中的版本用两个字节值表示。由于TLS改编自SSLv3,协议中使用的文字版本号只是次要版本的增量:SSLv3是3.0TLS 1.0为3.1TLS 1.1为3.2TLS 1.2为3.3等。使用TLS连接到服务器时,客户端在连接开始时发送其支持的最高版本:(3,3)→服务器理解相同版本的服务器可以用以相同版本字节开头的消息进行回复。(3,3)→服务器客户←(3,3)或者,如果服务器只知道协议的旧版本,它可以用旧版本进行应答。例如,如果服务器只讲TLS 1.0,它可以用以下方式答复:(3,3)→服务器客户←(3,1)如果客户机支持服务器返回的版本,则它们将继续使用该版本的TLS并建立安全连接。如果客户机和服务器不共享一个通用版本,则连接失败。这次谈判的目的是为了与未来兼容。如果客户机发送的版本高于服务器支持的版本,服务器仍然可以使用服务器支持的任何版本进行应答。例如,如果一个客户机发送(3,8)到一个现代的支持TLS1.2的服务器,它应该用(3,3)回复,握手将继续作为TLS1.2。很简单,对吧?事实证明,一些服务器没有正确实现这一点,这导致了一系列事件,使web用户暴露在严重的安全漏洞中。贵宾犬和下坡舞CC0创意共享TLS的最后一次重大升级是TLS1.2的引入。在浏览器中推出tls1.2的过程中,发现一些tls1.0服务器没有正确实现版本协商。当一个客户机连接到TLS 1.2的TLS连接广告支持时,故障服务器将断开连接,而不是协商他们理解的TLS版本(如TLS1.0)。浏览器有三种选择来处理这种情况启用TLS 1.2,一定比例的网站将停止工作延迟tls1.2的部署,直到这些服务器被修复如果连接失败,请使用旧版本的TLS重试人们对浏览器的一个期望是,当浏览器更新时,网站会继续工作。行为不端的服务器数量太多,以至于无法通过更新来中断,从而排除了选项1)。到目前为止,tls1.2已经存在一年了,但是服务器仍然坏了,等待更长的时间并不能解决问题,排除了选项2)。这使得选项3)成为唯一可行的选择。为了启用TLS1.2并让用户满意,大多数浏览器都实现了所谓的"不安全降级"。当连接到一个站点时遇到连接失败时,他们会用TLS1.1再试一次,然后用TLS1.0再试一次,如果失败了,就用SSLv3。这个降级逻辑"修复"了这些坏掉的服务器。。。以建立缓慢的连接为代价。