也聊博客TLS 1.3

提醒:本文最后更新于 1487 天前,文中所描述的信息可能已发生改变,请仔细核实。

Hi,大家好,我又来水文了,这次聊聊TLS 1.3。(其实是为了掩饰之前的更新类文章)

经过4年的时间,日前IETF已正式批准TLS 1.3作为下一个TLS主要标准。

目前草案实行到28,详细见传送门。其中与TLS 1.2的不同及好玩之处,就不表了(给几个关键词:高速握手、新加密算法、非AEAD移除)。

大家可以自行翻看、搜索,尝试发现亮点(请抱着有趣的灵魂去发现事物)。

另外此标准较之前标准,改动可以说十分巨大。ServerHello之后的所有握手消息采取了加密操作。总体来说,TLS 1.3拥有更快的访问速度以及更高的安全性。

先来报告下博客环境:

系统:CentOS 7 x64,系统更新保持最新,必要组件和库也保持最新,详见附件1。

系统级OpenSSL:1.1.0h,打了Patch(优化X25519、ECDSA效率,动态使用ChaCha加密),系统旧有依赖老版本OpenSSL的组件也已改为使用新版本。

Nginx:1.13.11,使用了OpenSSL 1.1.1-pre4,以及Cloudflare的Zlib分支等,打了Patch(恢复SPDY协议支持,HTTP2 HPACK加密支持,动态TLS记录支持,SSL_OP_PRIORITIZE_CHACHA支持),再次对我的Patch做下小广告。

PHP:7.2.4,使用系统级OpenSSL(即1.1.0h)。

关于博客HTTPS状态,可以见SSLLAB及附件2。

目前博客TLS 1.3使用着Draft 26版本,但貌似主流浏览器只支持到Draft 23版本,所以浏览器看不到效果,这点可惜了。

据说BoringSSL已经在TLS 1.3上已支持到Draft 28(861f384),但其本身不支持OCSP Stapling。大家也可以尝尝鲜。

跟HTTP/2一样,TLS 1.3完全值得期待,这是一个激动人心的协议更新,毕竟它使得HTTPS速度更快,而且更安全。

另外一点就是Let's Encrypt的泛域名证书也出来,免费的泛域名证书,使得HTTPS的成本几乎为0。

说了这么多TLS 1.3的事(比较乱,不是很系统),我还是希望能尽快完善后,作为rfc发布。毕竟现在浏览器都不能很好的完全支持,而且各家加密算法库的新版本更新密集,新的草案又无法向下兼容,这算是个痛点。

还有,大家如有兴趣了解更多关于TLS 1.2与TLS 1.3对比的话,可以看下这个视频,Filippo Valsorda就TLS 1.2和TLS 1.3之间的差异进行了精彩的演讲,传送门

说说其他好玩的,从DCC那听说的一个速度很快的Nginx。也就是Google建的Nginx分支,传送门,需要采用bazel编译(而且推荐使用Debian),且目前只支持到TLS 1.2。但在编译上因为使用了bazel编译,速度很快。加上本身代码优化使得Nginx在大的场景又变快了。

说到Google,值得一提的是Google的项目ngx_brotli,也就是著名的Brotli压缩算法支持。目前已有一年多没有任何消息及更新,如同issue #62所说,或许该关闭这一项目。

但不要担心,目前Google的一位员工eustas,他的分支仍在维护,并且积极完善修复bug。我们可以使用这个仍有活力的分支来作为替代品,分支地址见传送门

因为图都太长了,所以作为附件展示。

附件1:

附件2:

注:博客使用着OpenSSL 1.1.1-pre4的Nginx 1.13.11,lua-nginx-module在这里目前使用正常,未出现问题。可喜可贺。


经提醒,貌似由于访问博客时尝试使用TLS 1.3,会导致GG。现在rollback到1.1.0h。

最后使用了OpenSSL 1.1.1-pre2。

转载请注明转自:kn007的个人博客的《也聊博客TLS 1.3