TLS 1.3 正式版来临前的实践 💡
Firefox 和 Chrome 都已支持 TLS1.3 加密协议(可能需要手动开启),不过目前 TLS1.3 还在草案阶段,但已经是到了最后的阶段。
TLS1.3 大幅度的改动了加密套件。所以更安全。
删除了[1]:
- RSA 密钥传输——不支持前向安全性
- CBC 模式密码——易受 BEAST 和 Lucky 13 攻击
- RC4 流密码——在HTTPS中使用并不安全
- SHA-1 哈希函数——已被证实可被破解
- 任意 Diffie-Hellman组——CVE-2016-0701漏洞
- 输出密码——易受 FREAK 和 LogJam 攻击
与 TLS1.2 最大的区别是 TLS1.3 握手时的区别,在 TLS1.3 中提供了 1-RTT 的握手机制:将 Key Share 的过程提前到 Client Hello ,同时大幅度简化握手过程,使第一次握手时只需要一个RTT,并且在第二次访问时提供了 0-RTT 模式。所以 TLS 1.3 更快。
TLS 1.3即将转正,所以我决定提前试试看有没有坑,尝试过后发现过程没啥好说的,基本只需要注意以下几个地方。
编译Nginx时,记得加上(不用了)--with-openssl-opt=enable-tls1_3
- ssl_protocols
只需要设置 TLSv1.2直接加上 TLSv1.3 (nginx 1.13.0 已正式支持) - ssl_ciphers 设置为
TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
TLS 1.3-Demo,只有浏览器开启 TLS 1.3 才能访问哦
哔哩萌已启用 TLS1.3。
貌似到现在为止还没有工具可以测试 TLS1.3,包括 SSLLab。 SSLLab 支持了。