NEWS LETTER

开启极速 HTTPS 体验

Scroll down

前言

如果说 HTTP/2 是当前互联网 Web 发展的讨论热点之一,那么下一个热点应该就是 TLS 1.3 了。
上次加密协议更新至今已有八年多,TLS 1.3 的最终版本现已于 2018 年 8 月发布。

当前的 TLS 协议存在问题

老版本的 SSL 协议被公认在完整性校验、密钥协商过程中有重大缺陷,因此,2011 年与 2015 年 IETF 小组相继声明禁止使用 SSL 2.0、3.0。

TLS 协议针对此前披露的漏洞做了相应的处理,但是因为其复杂性,还没有一个版本能真正保证绝对的安全。

目前最新版本的 TLS 1.2 发布距今已有九年时间,在此期间,许多 SSL/TLS 协议的新漏洞被发现,比如针对其压缩机制的 CRIME 漏洞,针对 CBC 块加密模式的 BEAST 漏洞(主要是针对 SSL 3.0 和 TLS 1.0),早已不再是当初设计者认为的那么安全,人们迫切需要新的协议将其代替。

TLS 1.3 有哪些变化?

  • TLS1.3 大幅提高安全性,还简化了握手过程,使第一次握手时只需要一个 RTT,并在第二次访问时提供了 0-RTT 模式,提高了性能降低服务器压力。
  • 支持 0-RTT 数据传输
  • 废弃了 3DES、RC4、AES-CBC 等加密组件。废弃了 SHA1、MD5 等哈希算法。
  • 不再允许对加密报文进行压缩、不再允许双方发起重协商,密钥的改变不再需要发送 change_cipher_spec 报文给对方。
  • 握手阶段的报文可见明文大大减少。

TLS 1.3 完整握手工作流

  • +表示该报文中值得注意的 extension
  • *表示该内容也可能不被发送
  • {} 表示该内容使用 handshake_key 加密
  • [] 表示该内容使用 application_key 加密

速度优势

在 Web 性能方面,TLS 和加密连接总是增加了一些开销。HTTP / 2 肯定有助于解决这个问题,但 TLS 1.3 通过 TLS 错误启动和零往返时间(0-RTT)等功能帮助加速加密连接。

简单地说,使用 TLS 1.2,需要两次往返才能完成 TLS handshake。使用 1.3 时,它只需要一次往返, 从而将加密延迟减少一半。这有助于这些加密连接感觉比以前更快一点。

如何为自己站点启用 TLS 1.3

演示环境:

  • 面板:宝塔面板 6.8.3
  • 系统:Centos 7.5
  • Nginx:1.15.6

修改网站配置文件

1
2
3
4
5
6
//替换
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
//替换
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
//增加
add_header Strict-Transport-Security "max-age=31536000";

开启成功

总结

TLS 1.3 使用了复杂的密钥导出过程,增强了最终使用的密钥的安全性。同时简化了所使用的加密算法,废弃了 RC4、3DES、MD5、SHA1、AES-CBC 等加密算法,删除了压缩、重协商等具有漏洞的机制,大大精简了协议。

因此,TLS 1.3 如果能够得到普及,网络数据的传递将会变得更加安全、隐秘,TLS 1.3 的推广需要每一位开发者、运营者的认可和支持。

目前 TLS 1.3 虽然还在草案阶段,但是其基本原理和思想已经应用在了实际生活中,chrome 等浏览器都已准备好了对其的支持,期待 TLS 1.3 正式成为一个协议规范的那一天。

其他文章
cover
四月
  • 19/04/08
  • 05:55
  • 411
  • 1
目录导航 置顶
  1. 1. 前言
  2. 2. 当前的 TLS 协议存在问题
  3. 3. TLS 1.3 有哪些变化?
  4. 4. TLS 1.3 完整握手工作流
  5. 5. 速度优势
  6. 6. 如何为自己站点启用 TLS 1.3
  7. 7. 开启成功
  8. 8. 总结
请输入关键词进行搜索