![1458798-efccacb2718d3d91.png](https://i-blog.csdnimg.cn/blog_migrate/16ecd5bfb155aaa144aa8dc6a91f5a35.webp?x-image-process=image/format,png)
使用Wireshark解密TLS 1.3流量
作者: 虞卫东 (微信公众号: https://mp.weixin.qq.com/s/QhodMl210xWMK9XKjVtfAQ )
2018-05-13
如果你想系统掌握 TLS 协议的细节,了解客户端和服务器消息的交互,非常好的学习工具就是 Wireshark,Wireshark 能够分析所有 TCP/IP 协议流量,自然也包括 TLS 协议。
最近想系统的解剖 TLS 1.3 协议的细节,所以就用到了这个工具考虑到 TLS 1.3 协议还没有广泛使用,第一个问题就是 Wireshark 是否已经支持 TLS 1.3 协议的分析呢?这篇文章就是为了解释这个问题的,核心目的就是“通过那些工作,促使 Wireshark 能够分析 TLS 1.3 协议流量”。再次强调,这篇文章不是告诉你“TLS 1.3 协议工作原理”。
在解释之前,先针对几个核心问题进行说明:
TLS 1.2 协议和 TLS 1.3 协议之间的差异非常的大,而且无法向下兼容,所以 Wireshark 必须根据 TLS 1.3 协议标准重新开发解析器,也就是说,如果你的 Wireshark 版本太老,根本无法分析 TLS 1.3 协议。
如果你从没使用 Wireshark 解密 TLS 流量(比如 TLS 1.2 协议),那么这篇文章同样适合你。
在介绍之前,最好搭建一个支持 TLS 1.3 协议的网站,而且浏览器(比如 Chrome)也能支持该版本。具体可参考我的上一篇文章《让Nginx快速支持TLS1.3协议》。
这篇文章不是告诉你 TLS 1.3 协议的交互细节,只是告诉你,如何搭建一个分析 TLS 1.3 协议的 Wireshark 运行环境。
Wireshark 2.4 不能分析 TLS 1.3
由于 TLS 1.2 协议和 TLS 1.3 协议之间的差异非常的大,子消息之间的解析是不兼容的,所以如果你的 Wireshark 版本是 2.4,那么无法分析 TLS 1.3 ,因为它不知道子消息代表的含义。
具体查看下图: