结合wireshark抓住包,说明wpa2-psk的4次握手过程
关于station和ap连接的过程,上一篇文章介绍了3358 www.Sina.com/http://www.Sina.com /过程,但由于连接后需要数据加密,因此本文介绍了数据加密密钥交换过程
图1是wpa2-psk密码方式前期的初始化和4次握手的流程,图2是PTK的生成所需的条件和名词的解释。 过程比较抽象,可能不熟悉的同学很难理解,接下来结合802.11空口留言分析,不发一言。
上图为四次握手的简图,接下来开始分步分析。 在开始四次握手之前,ap和station知道ap的用户名和密码,可以生成PSK。 但是,生成PTK需要五个条件,因此第一步ap会向station发送消息。 拥有ap生成的随机数(ANonce )和ap的mac地址,可以在消息中看到。 除了nonce以外
因为station在收到ap的第一个包后,自己生成随机数(S-nonce ),除了自己的mac地址和PSK之外,还已经有条件地生成了PTK,所以station会生成PTK。 根据使用的加密方法,该PTK分为512位和384位两种格式。 这里不说明。 此外,PTK由KCK、KEK、TK三部分组成。 在PTK生成后,station将第2个信息发送到ap,由于带有station生成的随机数(S-nonce )已经生成了PTK,所以用KCK计算发送的数据生成校验码MIC并一起发送如下图的消息所示:
ap在收到步骤2的来自station的信息后,具备生成PTK的条件,生成PTK和GTK,计算数据的MIC,当MIC等于来自station的MIC时,通过检查,进行第三次握手,然后验证通过后,ap用KEK对生成的GTK进行加密后发送给station,数据的MIC也一起发送。
工作站收到第三次握手的消息后,检查MIC,如果MIC校验成功,进行第四次握手,告知ap可以安装PTK和GTK使用。 同样,ap在收到第4次握手包后,检查MIC,如果成功的话,安装PTK和GTK使用。