利用TLS 1.3网站加载更安全及更快速

2018年3月21日,传输层安全(TLS)协议的1.3版本正式获得批准。TLS是互联网安全的支柱,保护从网络流量到加密电子邮件的一切。1.3版通过简化连接过程和删除旧的、不安全的加密方法,对以前的版本进行改进。

TLS 1.3提供了哪些功能?

与以前的版本(TLS 1.2)相比,主要的改进是初始连接速度更快。当使用TLS连接到一个服务器时,你首先必须交换用于加密未来信息的加密密钥,并协商使用哪种加密协议。这个过程被称为握手。在TLS 1.2中,握手需要向服务器发送两个往返信息:一个用于启动连接,另一个用于建立加密会话。在TLS 1.3中,客户端包括服务器在其第一个消息中创建加密会话所需的数据。这使得服务器可以在一个步骤中创建加密会话。这也有助于防止像POODLE这样的攻击,即恶意的攻击者可以迫使你的浏览器协商到一个不太安全的协议,如SSL 3.0。

TLS 1.2 握手

利用TLS 1.3网站加载更安全及更快速插图

由Fleshgrinder和The People from The Tango! 桌面项目。[公共领域],来自维基共享资源

利用TLS 1.3网站加载更安全及更快速插图1

由Fleshgrinder和The People from The Tango! 桌面项目。[公共领域],来自维基共享资源

TLS 1.3 握手

TLS 1.3还增加了零往返时间恢复功能,即0-RTT。通过0-RTT,服务器记住了最近连接的客户。下次这些客户连接到服务器时,他们可以立即开始发送数据,而不需要进行握手。在一些测试中,0-RTT将连接速度提高了34%。

为什么TLS 1.3没有得到更广泛的应用?

TLS 1.3与1.2相比是一个重大变化。正因为如此,它破坏了与某些旨在拦截或监控TLS加密信息的中间盒的兼容性。许多这些中间箱在创建时都假设TLS协议会随着时间的推移而改变,当后来的版本打破这些假设时,会导致连接失败。

当Chrome和Firefox团队在2017年初在各自的浏览器中测试TLS 1.3时,他们发现分别只有92.3%和96.1%的时间能够连接到网站。为了解决这个问题,OpenSSL等库增加了一个兼容模式,将TLS 1.3流量修改为看起来像TLS 1.2流量。尽管这将成功率提高到98.8%和98.37%,但这两个浏览器仍然默认禁用TLS 1.3,直到这些兼容层变得更加普遍。

与TLS 1.2相比的性能表现

为了了解TLS 1.3与TLS 1.2的匹配情况,我们在一个支持TLS 1.3的Nginx服务器上进行了一些性能测试。测试是在https://enabled.tls13.com,这是一个由TLS工作组提供的测试网站,使用Sitespeed.io进行的。我们在Chrome 63.0.3293.132的不同实例上测试了这两个版本:一个启用了TLS 1.3(使用ECDHE_ECDSA与X25519进行密钥交换),另一个禁用了TLS 1.3(使用X25519进行密钥交换)。在每个浏览器实例中,我们对该网站进行了三次调用,并重复了这一步骤三次。

整体指标

总的响应大小1.4 KB
HTML大小702 B
总响应数2

对于以下每个指标,我们显示Sitespeed.io计算的平均值(以毫秒计)。

  • FirstPaint:直到浏览器首次开始渲染页面的时间。
  • BackEndTime:服务器生成并开始发送HTML所需的时间。
  • ServerResponseTime:服务器发送响应所需的时间。
  • PageLoadTime: 页面加载所需的时间,从最初请求到在浏览器中加载完成。

TLS 1.2

选项Test 1Test 2Test 3平均值
FirstPaint486424431447
BackEndTime429377389398
ServerResponseTime10495101100
PageLoadTime456401414426

TLS 1.3

选项Test 1 (Mean)Test 2Test 3平均值
FirstPaint441433410428
BackEndTime391385359378
ServerResponseTime1099496100
PageLoadTime420414387407
利用TLS 1.3网站加载更安全及更快速插图2

TLS 1.3显示页面加载时间平均减少了19ms,或4-5%。这些好处主要集中在加密和交付时间上,因为两次测试中的服务器响应时间是一致的。测试网站也不支持0-RTT,这可能会进一步提高性能。

如何启用TLS 1.3

在加密库默认包含TLS 1.3之前,你需要在你的网络服务器中手动启用TLS 1.3。觉得麻烦不懂,可以参考搬主题之前的文章【在BT宝塔面版内设置Nginx开启TLSv1.3为WordPress网站加速图文教程

Apache

Apache通过OpenSSL 1.1.1和NSS 3.29库支持TLS 1.3。

当使用OpenSSL时,在服务器配置的SSLProtocols行中添加TLSv1.3。如果你想明确地指定使用哪些密码套件,请将这些密码套件添加到SSLCipherSuite行中。另外,你也可以使用HIGH别名来包括所有的TLS1.3密码器。

httpd.conf

<VirtualHost *:443>

SSLProtocol TLSv1.3
SSLCipherSuite HIGH

</VirtualHost>

当使用NSS时,将TLSv1.3添加到服务器配置的NSSProtocol行中。

nss.conf


NSSProtocol TLSv1.3

Nginx

Nginx(从1.13版开始)通过OpenSSL 1.1.1库支持TLS1.3。要启用它,在服务器配置的ssl_protocols行中添加TLSv1.3。

nginx.conf

server {

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

}

Nginx支持Apache使用的相同的SSL密码。

最后总结

TLS 1.3比TLS 1.2提供了重要的安全和速度改进,但它的采用可能会很慢。不仅浏览器和加密库需要支持它,而且围绕旧版本中的怪癖设计的中间箱也需要支持它。该协议已经包含了在22号草案中增加的 “中间箱友好 “的内容,但在保证向后兼容之前,企业不太可能急于部署它。

目前,你可以通过使用CloudFlare的中间盒干扰测试来检查你的网络是否为TLS 1.3做好准备。你也可以通过使用Qualys的SSL客户端测试来检查你的浏览器是否与TLS 1.3兼容。如果协议功能框中显示TLS 1.3为绿色,你就可以了。你也可以在服务器上启用TLS 1.2和TLS 1.3,不支持最新版本的客户端将退回到兼容版本。

 收藏 (0) 更新不易,打赏吧

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《利用TLS 1.3网站加载更安全及更快速》
文章链接:https://www.banzhuti.com/making-the-internet-safer-and-faster-with-tls-13.html
分享到: 生成海报
版权免责声明

① 本站提供的资源(插件或主题)均为网上搜集,如有涉及或侵害到您的版权请立即通知我们。
② 本站所有下载文件,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。
③ 因代码可变性,不保证兼容所有浏览器、不保证兼容所有版本的WP、不保证兼容您安装的其他插件。
④ 本站保证所提供资源(插件或主题)的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
⑤ 由本站提供的资源对您的网站或计算机造成严重后果的本站概不负责。
⑥ 使用该资源(插件或主题)需要用户有一定代码基础知识!另本站提供汉化使用安装教程,仅供参考。
⑦ 有时可能会遇到部分字段无法汉化,同时请保留作者汉化宣传信息,谢谢!
⑧ 本站资源售价只是赞助和汉化辛苦费,收取费用仅维持本站的日常运营所需。
⑨ 如果喜欢本站资源,欢迎捐助本站开通会员享受优惠折扣,谢谢支持!
⑩ 如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

WordPress主题 插件 建站 汉化

定制服务联系我们
切换注册

登录

点击按钮进行验证

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活