随着互联网的发展,用户对网络速度的要求也越来越高,尤其是目前在大力发展 HTTPS 的情况下,TLS 加密协议变得至关重要。又拍云在 HTTPS 的普及和性能优化上,始终做着自己的努力和贡献。2018年初,又拍云 CDN 网络部署了 TLS 1.3,进一步提升了用户的访问速度与安全。

什么是 TLS 1.3?

TLS 1.3 加密协议是在 TLS 1.0 、TLS 1.1 、TLS 1.2 之前版本基础上进行的升级和改造,也是迄今为止改动最大的一次,IETF 正在制定 TLS 1.3 的新标准,目前尚在草案阶段 ,可以参考最新草案。相比 TLS 1.2 ,TLS 1.3 的主要区别在于:

  • 新的加密套件只能在 TLS 1.3 中使用,旧的加密套件不能用于 TLS 1.3 连接;
  • 添加了0-RTT 模式,在建立连接时节省了往返时间(以某些安全性为代价);
  • 废除了静态的 RSA( 不提供前向保密 )密钥交换,密钥交换机制现在可提供前向保密;
  • ServerHello 之后的所有握手消息采取了加密操作;
  • TLS 1.2 版本的重协商握手机制已被弃用,TLS 1.3 中重新协商变为不可行了;
  • 相比过去的的版本,会话恢复在服务端是无状态的,使用了新的 PSK 交换;
  • DSA 证书不再允许在 TLS 1.3 中使用;

以上的这些改动,可以避免之前版本出现的缺陷,不仅如此,还可以减少 TLS 握手的时间。总结一下,TLS 1.3 与以前的版本相比具有如下两个大的优势,分别是:

  • 更快的访问速度
  • 增强安全性

TLS 1.3 作用

1. 更快的访问速度

为了对比 TLS 1.3 在 TLS 握手阶段的变化, 这里将 TLS 1.2 和 TLS 1.3 在 TLS 握手阶段进行对比。

△ TLS 1.2 完整握手框架( 来自 RFC 5246 )

从上图可以看出,使用 TLS 1.2 需要两次往返( 2-RTT )才能完成握手,然后才能发送请求。

△ TLS 1.3 完整握手框架(来自 TLS 1.3 最新草案 )

TLS 1.3 的握手不再支持静态的 RSA 密钥交换,这意味着可以使用带有前向安全的 Diffie-Hellman 进行全面握手。从上图可以看出,使用 TLS 1.3 协议只需要一次往返( 1-RTT )就可以完成握手。

相比 TLS 1.2 ,TLS 1.3 的握手时间会减半。这意味着访问一个移动端网站,使用 TLS1.3 协议,可能会减少将近 100ms 的时间。关于 1-RTT 最大的变化是消除了 ServerKeyExchange 和 ClientKeyExchange 消息,DH 参数和公钥现在以特殊的 key_share 扩展发送,这是一种新的扩展类型,将被包含在 Client Hello 和 Server Hello 消息中。

△ TLS 1.3 0-RTT 模式握手框架( 来自 TLS 1.3 最新草案 )

值得关注的是,TLS 1.3 草案中新增了零 RTT ( 0-RTT )模式,也即在上一次连接中,握手完成之后,服务端会发送一条 ServerConfiguration 消息,在随后的客户端发起第一个 TLS 记录 ClientHello 过程中,直接附加加密的应用程序数据,该模式将会导致更加快速的访问体验。

2. 增强的安全性

TLS 的发展有 20 多年的历史,在之前的版本中,TLS 1.2 是高度可配置的,为了更好的兼容旧版本的浏览器,这意味着那些易受攻击的站点始终在运行着不安全的加密算法,这让互联网黑客有可乘之机。TLS 1.3 在 之前版本的基础上删除了那些不安全的加密算法,这些加密算法包括:

  • RSA 密钥传输 —— 不支持前向安全性
  • CBC 模式密码 —— 易受 BEAST 和 Lucky 13 攻击
  • RC4 流密码 —— 在 HTTPS 中使用并不安全
  • SHA-1 哈希函数 —— 建议以 SHA-2 取而代之
  • 任意 Diffie-Hellman 组—— CVE-2016-0701 漏洞
  • 输出密码 —— 易受 FREAK 和 LogJam 攻击

TLS 1.3 目前支持以下加密套件:

TLS13-AES128-GCM-SHA256
TLS13-AES256-GCM-SHA384
TLS13-CHACHA20-POLY1305-SHA256
TLS13-AES128-CCM-SHA256
TLS13-AES128-CCM-8-SHA256 

新的加密套件只能在 TLS 1.3 中使用,旧的套件不能用于 TLS 1.3 连接。总之,TLS 1.3 相比老版本的 TLS 协议将会更加安全,这也代表着互联网安全的一大进步。

2018 年初,又拍云在 CDN 部分节点中部署了 TLS 1.3,作为国内较早支持 TLS 1.3 的 CDN 厂商,又拍云始终跟随时代的步伐,为互联网世界的安全与加速贡献着自己的一份力量。在互联网世界这个生态系统中,进行 TLS 安全协议的升级并不简单,这个需要客户端和服务端同时进行升级,并确保客户端和服务端的所有通信都是正常的。

一键开启 TLS 1.3

1)在又拍云 CDN 平台启用 TLS 1.3

在 又拍云 CDN 控制台,针对 TLS 1.3 开放了切换开关,TLS 1.3 默认为关闭状态,您可以手动开启,如下图所示:

值得声明的是, CDN 是否启用 TLS 1.3 ,这个取决于客户端浏览器是否支持,如果客户端并不支持 TLS 1.3 ,则会进行协议降级,仍会使用较低的 TLS 1.2 协议进行通信。

2)在浏览器中启用 TLS 1.3

目前最新版本的 Chrome 和 Firefox 都支持 TLS 1.3,但是都需要手动开启。

在 Firefox 中手动启用 TLS 1.3

Mozilla Firefox 用户可以通过以下方式在 Firefox 中启用 TLS 1.3 支持( 请注意,Firfox Nightly版本默认支持 TLS 1.3,而 Firefox 稳定版(截至日前是 Firfox 57)需要专门配置以支持 TLS 1.3 )。

  • 在 Firefox 地址栏中输入 about:config。如果显示警告屏幕,请确认您要小心,可忽略安全提示;
  • 在搜索区域搜索 security.tls.version.max;
  • 通过双击它将首选项的值更改为 4( 默认为 3 )。

在 Chrome 中手动启动 TLS 1.3

Google Chrome 用户可以通过以下方式在 Chrome 中启用 TLS 1.3 支持( 请注意,Chrome Canary 版本默认支持 TLS 1.3,而 Chrome 稳定版(截至日前是Chrome 64) 需要专门配置以支持 TLS 1.3 )

  • 在浏览器的地址栏中加载 chrome://flags/,这将打开 Web 浏览器的实验页面。
  • 在搜索区域搜索 TLS 或者 tls ,找到 TLS 1.3 选项,默认为 Default
  • 需要将 TLS 1.3 改为 Enabled (Draft);
  • 重新启动 Web 浏览器。

注意:Chrome 62 之前的版本需要将 Maximum TLS version enabled 改为 TLS 1.3。

验证服务端是否支持了 TLS 1.3

使用 Google Chrome 开发者工具,选择 Security 模块,如下图所示,当安全链接为 TLS 1.3 时,说明此次连接是使用 TLS 1.3 进行通信的。

以上可以得知,浏览器以及服务端都支持 TLS 1.3 才可以使用 TLS 1.3 进行通信。

总结

TLS 1.3 是 Web 安全与性能的一大进步,虽然主流浏览器还未默认开启,但是这一天的到来不会太久,又拍云紧紧跟随时代的步伐,希望为互联网用户提供更安全、更快的加速体验,为推进互联网的发展贡献自己的力量。与此同时,我们也很高兴成为国内较早支持 TLS 1.3 功能的 CDN 厂商。

推荐阅读

HTTPS系列干货(一):HTTPS 原理详解

从 HTTP 到 HTTPS 再到 HSTS

参考文档:

https://en.wikipedia.org/wiki/Transport_Layer_Security

https://www.mitls.org/downloads/transcript-collisions.pdf

http://www.freebuf.com/vuls/95560.html

https://tools.ietf.org/html/draft-ietf-tls-tls13-23

https://tlswg.github.io/tls13-spec/#zero-rtt-exchange

https://blog.cloudflare.com/introducing-tls-1-3/

https://www.openssl.org/blog/blog/2017/05/04/tlsv1.3/

转载于:https://www.cnblogs.com/upyun/p/8296404.html

开启 TLS 1.3 加密协议,极速 HTTPS 体验相关推荐

  1. CentOS7.3下二进制安装Kubernetes1.9集群 开启TLS

    Kubernetes的相关原理性的东西之前有叙述过,网上也有很多,这里主要是写的自己在使用二进制的方式搭建Kubernetes1.9的一些方法,对学习的东西做一个自我的总结. Kubernetes有许 ...

  2. 宝塔 没有找到站点_宝塔面板正确开启TLS 1.3并删除TLS 1.1

    昨天折腾了一个AlphaSSL泛域名证书后,心血来潮去SSL评分网站测试了一番,最后的结果竟然是B,这真是不能忍啊-- 为啥会是B,查看了原因,竟然是启用了TLS 1.1,所以为B.那么,删除TLS ...

  3. mosquitto 开启 TLS 问题总结

    正文 在使用 mosquitto 对 MQTT 开启 TLS 进行测试时,经常会遇到各种神奇的错误,但是 mosquitto 的日志却少的可怜,服务端能看到的日志大约就这几种: SSL routine ...

  4. Docker开启TLS和CA认证

    前言:Docker直接开启2375端口是不安全的,别人只要连上之后就可以任意操作,下面是开启Docker的TLS和CA认证方法,并使用Jenkins和Portainer连接. 一.生成证书 查看服务器 ...

  5. TiDB + 京东云数据库打造极速秒杀体验

    作者:luzizhuo 原文来源: https://tidb.net/blog/f1b05cca 一年一度的 11.11 又双叒叕来了,给技术人最好的礼物就是技术指南!而经过这些年的发展,购物节早已不 ...

  6. tls 禁用重协商_TLS Https连接失败问题(协商失败)

    IE使用TLS连接服务器失败,在经过n多查询之后发现windows如下更新说明: 此更新不是最终用户能够安装的安全更新.建议只对服务器管理员使用此更新.此更新会部署一个在受影响的系统上禁用传输层安全 ...

  7. 三星s8自带测试硬件软件,三星S8手机国行固件开启测试:或支持桌面级操作体验...

    在经历了三星Note7的滑铁卢之后,三星重新定义自家高端旗舰手机的重担落在了今年即将发布的S8上,按照之前三星发布旗舰机的传统,三星可能依然会有多款S8旗舰手机同时发布,之前广受好评的Edge延续应该 ...

  8. 开篇-开启全新的.NET现代应用开发体验

    01 云原生技术底座畅想 Dapr MASA Framework 研发管理 研发协作平台:CI/CD.Application Management Application Quota Manageme ...

  9. Docker开启TLS和CA认证, 解决暴露2375端口引发的安全漏洞, 并使用idea连接并推送镜像

    Docker AC认证教程 解决暴露2375端口引发的安全漏洞 创建证书生成脚本 cert.sh, 放置/script目录 "提示" /mydata/cert/docker这个目录 ...

  10. win2008 Server R2 中IIS启用TLS 1.2 工具 一键开启TLS 1.2

    开发十年,就只剩下这套架构体系了! >>>    微信企业号发布公告, 从2017年1月1日起 App Store中的所有应用都必须启用 App Transport Security ...

最新文章

  1. warning: implicit declaration of function导致core
  2. mc服务器村民交易修改,【原创】【教程】MCPE自定义村民交易内容
  3. Java循环案例-银行存钱问题
  4. PyCharm 通过Github和Git上管理代码
  5. 使用lodash防抖_什么,lodash 的防抖失效了?
  6. 脚本命令配置mysql_MySQL常用的配置、脚本和命令
  7. linux命令详解——tee
  8. flume+kafka+storm+hdfs整合
  9. JSSE Java与SSL
  10. 四方支付系统,聚合平台搭建
  11. 微信小程序列表渲染(循环渲染)
  12. HashMap底层原理源码分析
  13. 小尺寸笔记本将走向何方 — X280 长测
  14. GBASE 8s DB-Access入门
  15. 我在Facebook工作四年的总结与反思
  16. PPT写的好,升职加薪不会少-全套免费教程
  17. 用两个小样例来解释单例模式中的“双重锁定”
  18. 蜂蜜柚子茶最好的制作方法
  19. unity报错出现Asset database transaction committed twice!
  20. php实现抠图,如何使用php代码实现印章的抠图(代码)

热门文章

  1. 21秋期末考试工程项目管理10324k2
  2. 【渝粤教育】国家开放大学2019年春季 1250文论专题 参考试题
  3. 【渝粤教育】电大中专电子商务网站建设与维护_1作业 题库
  4. 【渝粤教育】广东开放大学 电子商务项目管理 形成性考核 (22)
  5. 23种设计模式(十三)接口隔离之门面模式
  6. 求解偏微分方程开源有限元软件deal.II学习--Step 2
  7. Metasploit工具的使用
  8. [算法]华为笔试题——字母和十进制数映射
  9. phpserialize ,PHP 中变量序列化和反序列化在 Python 中的实现
  10. 关于多数据源(除自己数据库外,另一部分数据需通过接口调取第三方获取)的查询问题...