tls1.0&tls1.1协议版本即将退出历史舞台

举报
橘座 发表于 2019/10/14 20:35:56 2019/10/14
【摘要】 自从TLS 1.3协议标准规范定稿,各大浏览器厂商(Chrome、Firefox、Edge、Safari)不约而同在近日宣告即将废弃TLS 1.0和TLS 1.1协议了,今天我从多个视角给大家普及下相关知识,以便大家更好的部署自己的 HTTPS 服务。TLS 1.0和TLS 1.1 为什么要废弃从时间上看,TLS 1.0 协议已经有20年历史了,确实要退出历史舞台了。目前TLS协议主流的版本...

自从TLS 1.3协议标准规范定稿,各大浏览器厂商(Chrome、Firefox、Edge、Safari)不约而同在近日宣告即将废弃TLS 1.0和TLS 1.1协议了,今天我从多个视角给大家普及下相关知识,以便大家更好的部署自己的 HTTPS 服务。

TLS 1.0和TLS 1.1 为什么要废弃

从时间上看,TLS 1.0 协议已经有20年历史了,确实要退出历史舞台了。

目前TLS协议主流的版本是 v1.2,那么和 v1.0 和 v1.1 版本相比,它有那些优势呢?或者说 v1.0 和 v1.1 版本必然有一些缺陷,所以才要被各大浏览器厂商废弃。

主要原因有两方面,首先就是性能,TLS 1.2协议有了更快的密码学算法,比如支持AEAD类的加密模式。当然更重要的是安全性。

TLS 1.0是 SSL 3.0的一个简单升级,只是换了个叫法而已;TLS 1.1 在安全性方面有了很大的提升,并且引入了TLS 扩展,这是非常重要的改革;TLS 1.2 版本是比较大的一个改造,加强了密码套件的扩展性。

安全是相对的,理论上TLS 1.0和TLS 1.1 协议是安全的,即使历史上出现一些安全问题,也已经被TLS实现(比如OpenSSL)或客户端(比如浏览器)修复了,但在某种程度上这二个版本仍然有安全风险,主要原因在于某些密码算法已经被认为是不安全了(比如 SHA1、RC4算法)。

所以从安全的角度看v1.0 和 v1.1版本确实可以宣告死亡了,但为什么值得现在他们仍然还存活着?兼容性,这是一种妥协,因为世界上还有很多设备(比如 XP/IE8)不支持现代化的密码算法(比如GCM),所以HTTPS服务部署者不能强制使用 V1.2版本,这是在用户体验和安全性上的一个折中。

有的同学说,大部分浏览器使用v1.2版本连接我的网站,那么为了兼容老设备,服务器同时也只支持v1.0和v1.1版本,有何不可?还是安全性,只要你的服务器存在v1.0和v1.1版本,攻击者就会强制让你从v1.2降级到老版本,从而带来安全风险。

另外一个原因是如果想支持HTTP/2协议,必须构建于 TLS 1.2协议,它不支持 TLS 1.0 和 TLS 1.2版本。

IETF 专门出了一个 RFC 文档,描述废弃 TLS 协议旧版本的原因,有兴趣可以了解下(https://datatracker.ietf.org/doc/draft-ietf-tls-oldversions-deprecate/)。

不管有多困难,我们总是要往前走,随着v1.3协议的到来,浏览器厂商觉得废弃这二个老版本的时机已经成熟了,接下来我们看看这二个版本的占有率。

TLS 1.0和TLS 1.1使用率

从使用率上看,这二个版本确实应该废弃了,从二个纬度的分析。

(1)服务器

一般情况下,从兼容性角度来看,服务器可能会同时支持v1.0、v1.1、v1.2 协议,SSL Pulse 对它检测的网站统计数据如下图(October 03, 2018的数据):


10-24-tls1.0&tls1.1-pulse.png

从中可以看出:

  • 只有6.5%的网站不支持 v1.2

  • 当然并行支持v1.1和v1.0版本的服务还很多,分别达到70%,80%。

(2)客户端

接下去看看浏览器的统计情况,它们最有发言权,看看这二个版本(使用了较旧版本的浏览器)的使用情况:

  • Firefox:2018年9月份统计,v1.1和v1.0版本使用率1.2%。

  • Chrome:v1.1和v1.0版本使用率0.5%。

  • Safari:v1.1和v1.0版本使用率0.6%。

从以上的数据来看,这二个版本确实可以废弃了,在推动web安全方面,各大浏览器确实功不可没。

浏览器厂商时间安排

大部分浏览器到2020年左右会废弃这两个版本,具体如下:

  • Firefox:没有具体的时间安排,大概会在2020年3月份全面废弃。

  • Chrome:Chrome 7版本会在 DevTools 控制台中显示旧版本警告,到 Chrome 81 版本会终止使用v1.0和v1.1版本,预计在2020一月份全面废弃。

  • Safari:预计2020年3月份,iOS和macOS平台上的Safari会废弃v1.0和v1.1版本。

我们应该做什么

如果服务器想废弃v1.0和v1.1版本,从技术角度看非常的简单,比如Nginx 可以进行以下配置:

ssl_protocols  TLSv1.2 TLSv1.3 ;

假设你的服务历史比较长,可以统计下v1.0和v1.1版本的使用率,如果比例很小,可以直接禁止使用这二个版本。

如果比例相对较大,可以在应用层面进行提示,技术实现也非常简单,比如服务器判断出某个连接使用v1.0或v1.1版本,弹出一个对话框提示用户升级系统或浏览器,逐步的引导用户。

当然,废弃v1.0和v1.1版本已经是既定事实,所以做太多的使用率分析意义并不大。


最近大半年我写了很多密码学&HTTPS协议的文章,如果对你有所帮助,还请贊赏鼓励下,过一段时间,我会对公众号(ID:ywdblogwx,虞大胆的叽叽喳喳)的文章进行分类,以便大家更好的阅读。


本文转载自异步社区

原文链接:https://www.epubit.com/articleDetails?id=N0cf41e1e-ad69-43e8-bcd7-47c1b54ed46f


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。