Loading... ## 前言 如果说 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 修改网站配置文件 ``` //替换 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正式成为一个协议规范的那一天。 最后修改:2020 年 09 月 16 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏
23 条评论
说起来最引起舒适的特性还是可选的ESNI,在Client Hello中的SNI域名不再使用明文传输(某审查方法失效QAQ
QAQ
好极了。
哈哈哈哈
ha
我也用上了嘿嘿
套了CDN光搞这些不会生效吧!
支持TLSv1.3的CDN国内目前好像只有又拍云可以,如果cdn不支持的话加了也没有用的。
替换添加报错是证书问题吗
Nginx什么版本
貌似可以了哪里可以测试
F12 Security
还是tls1.2
你Nginx升到1.15啊
已成功
好
1.14.2
要1.15以上
下一步就是加入HSTS了
HSTS开启了啊 配置文件最后一行就是
加入HSTS Preload List