当客户端试图连接服务器,它包括最高支持版本的ClientHello消息。如果服务器收到一个版本高于它支持ClientHello,它应该尝试建立它可提供最高版本的连接。然而,很大一部分的服务器在客户发出TLS1.3或者更高版本连接的请求时,因为协商失败会中止连接。这些服务器被称为“版本不容忍”(version intolerance)。根据不同的研究人员做了扫描,TLS 1.3容忍服务器的份额约为百分之3。
以前,浏览器厂商针对这些服务器可以采用版本回退(Fallback)的操作。在一次连接失败后,浏览器将会尝试以更低的版本连接。这种版本回退机制被认为是很大的安全问题,已经产生了Virtual Host confusion的Poodle等安全漏洞。原因是,攻击者可以触发连接失败,从而迫使连接到一个较低的和不安全的TLS版本。所以针对版本回退问题,产生了SCSV的防止回退的机制。
“版本容忍”和“版本回退”在过去曾造成麻烦,他们已经被删除或在大多数浏览器中被禁用。但现在看来,他们将与TLS 1.3东山再起。谷歌开发人员David Benjamin,在明确表示他反对回退的同时,也说他确信他将不得不再次实施这些机制。本杰明提出的另一种版本的协商机制基于TLS扩展,但它的支持范围比柏林IETF 第96次会议中提到的要小。
所以看起来支持版本回退的TLS 1.3将到来,尽管似乎没有人喜欢他们。他们会使用多久将取决于我们多快才能使先有的服务器支持TLS.13。有人已经开始做扫描,试图找出哪些设备和软件产品负责版本不容忍。
服务器版本不容忍可以通过Qualys SSL Labs测试。更彻底的测试的可以用Red Hat开发者Hubert Kario提供的TLS Fuzzer工具和testssl.sh的测试脚本。
排除这些潜在的部署问题,TLS 1.3的版本,预计将在未来几个月内敲定。一个主要的变化是最近讨论:一个新的协商机制将分别选择对称密码算法、密钥交换算法、数字签名算法,而用来取代现有的包含一个复杂椭圆曲线扩展的密码套件系统。这个建议在IETF的工作组第96次会议中受到大多数与会者的欢迎。
现在将七实现初步的TLS 1.3规范和几个测试服务器。火狐和谷歌浏览器已经是默认情况下提供了TLS 1.3支持,默认下是禁止使用的,但可以手动启用。
文档编写日期:2016年07月28日