WLAN基础02—四次握手

在上篇文章描述了WLAN关联过程,所有无线终端(Station)从关联AP到转发数据主要经过关联-认证-四次握手三个过程。这里的认证通常指安全认证,也就是连接Wi-Fi输入用户名密码校验这个过程。认证的主要目的是为了确认认证端和被认证端是否拥有相同的PMK和GMK。

步骤1之前还有probe 交互过程,此图已略

无线 Wi-Fi 的四次握手就是key交换的过程,进行四次握手是为了生成一个用于加解密无线数据的Key(PTK/GTK)。通过四次握手之后产生的PTK/GTK来加解密数据传输。PTK用于单播数据帧的加密和解密,GTK用于组播数据帧和广播数据帧的加密和解密,管理帧、控制帧和空数据帧不用加密。

四次握手不是直接将密码发送到 AP,而是通过 EAPOL(Extensible authentication protocol over LAN)进行消息交换。

首先由AP发起EAPOL
四次报文交互流程

关于上图中PMK、GMK等生成流程,对于802.1x认证来说,认证成功后会生成MSK,然后通过MSK生成PMK;对于PSK认证,直接由PSK生成PMK。

802.11密钥生成(1x认证方式)

Key分层

金字塔顶层是 MSK,在 802.1X身份认证的过程生成
金字塔中间层是 GMK 和 PMK,由 MSK/PSK生成
金字塔底层是 GTK 和 PTK,用来加密数据

802.1x流程

上图中1~6为关联过程,随后进入802.1x认证过程(7~10,中间报文略),在1x完成后,开始四次握手过程(EAPOL四次交互)。

PKS流程

名词解释:

MSK (Master Session Key):由 802.1X认证服务器生成。

GMK (Group Master Key):一种辅助键,可用于派生组临时键(GTK)。

PMK (Pairwise Master Key):PMK 是由 MSK 生成,WPA2/PSK 的情况下,当终端和AP身份验证后,PSK 变成 PMK。

PTK (Pairwise Transit Key):PTK 用来加密 AP 和 Station 通讯的单播数据包,AP 与每个 Station 通讯用的 PTK 都是唯一的。PTK = PRF(PMK + ANonce + SNonce + Mac(AA) + Mac(SA))

  • PRF是 pseudo-random function 的缩写,表示伪随机函数,PMK、ANonce、SNonce、Mac(AA) 和Mac(SA) 作为它的输入参数;
  • ANonce是 AP 生成的随机数,A 表示 authenticator;
  • SNonce 是 Station 生成的随机数,S 表示 supplicant;
  • Mac(AA) 是 AP 的 Mac 地址;
  • Mac(SA) 是 Station 的 Mac 地址;

GTK (Group Temporal Key):GTK 用来加密 AP 和 Station 通讯的多播/广播数据包,连接该 AP 的所有 Station 共享一个 GTK。GTK = PRF(GMK + ANonce + Mac(AA))

附件:

上述截图抓包文件,有兴趣下载浏览查看。

终端MAC:10:41:7f:a5:e0:17,AP MAC:f4:2e:7f:79:5a:10,SSID:ARUBA/Aruba-1x

This Post Has 9 Comments

    1. 名词解释写了:PMK 是由 MSK 生成,WPA2/PSK 的情况下,PSK直接生成PMK。1x的EAP模式下是身份验证后生成PMK

      1. 这个认证和我理解的认证好像不一样,我理解的psk预共享密钥需要进行密码的认证,认证成功之后才能联网。

          1. 第一个图的话我理解的就是关联ap然后radius认证,认证通过之后开始协商密钥

请登录评论。