结合wireshark抓包,讲解一下wpa2-psk的四次握手过程

关于station和ap连接的过程,前一篇文章讲解了scan、authentication、association过程,但是连接之后,还需要数据的加解密,所以这篇文章会讲一下,用于数据加解密密钥的交换流程。

wireshark 抓ssh流量 wireshark抓wifi_网络协议

wireshark 抓ssh流量 wireshark抓wifi_wireshark 抓ssh流量_02

图1是wpa2-psk加密方式前期的初始化和4次握手流程,图2是PTK的生成需要的条件和名词解释。由于流程比较抽象,对于不熟悉的同学可能会有些难懂,所以接下来会结合802.11空口报文分析,话不多说,上报文。

wireshark 抓ssh流量 wireshark抓wifi_网络安全_03

上图是四次握手的概览图,下面开始分步分析。在开始四次握手之前,ap和station都已经知道了ap的用户名和密码,可以生成PSK,但是生成PTK需要5个条件,所以第一步AP会向station发送一个报文,带着AP生成的随机数(Anonce)还有AP的mac地址,通过报文可以看到,除了Nonce之外,其他的都是为0。

wireshark 抓ssh流量 wireshark抓wifi_数据_04

在station收到ap的第一个包之后,自己会生成一个随机数(S-nonce),加上自己的mac地址还有PSK,已经有条件生成PTK了,所以station会生成一个PTK,这个PTK根据使用的不同的加密方式,分为512位和384位两种格式,这里不展开说了。另外,PTK是由KCK、KEK、TK三部分组成。生成PTK之后,station会发送第二个报文给ap,带着station生成的随机数(S-nonce),因为已经生成PTK,所以会用KCK将发送的数据计算产生一个校验码MIC一起发送过去。如下图报文所示:

wireshark 抓ssh流量 wireshark抓wifi_网络安全_05

ap收到第2步station发过来的报文之后,已经具备了生成PTK的条件,会生成PTK和GTK,然后计算数据的MIC,如果MIC等于station发过来的MIC,那么校验通过,会进行第3次握手,否则,握手失败。在校验通过之后,ap会使用KEK将生成的GTK加密,然后发送给station,还有数据的MIC一起。

wireshark 抓ssh流量 wireshark抓wifi_网络协议_06

station收到第3次握手的报文之后,会校验MIC,如果MIC校验成功,会进行第4次握手,告知ap可以安装使用PTK和GTK了。相同,ap收到第4次握手包之后,会校验MIC,如果成功,安装使用PTK和GTK。

wireshark 抓ssh流量 wireshark抓wifi_wireshark_07