admin管理员组

文章数量:1571961

本文通过抓取的WiFi空口包WiFi空口包抓包方式汇总,简要分析下WiFi的连接过程。
如下图可见,WiFi连接过程可大致分为 探测(Probe)-> 认证(Authentication) -> 关联(Association) -> EAPOL 四个阶段。其中EAPOL不是必要阶段,当加密方式为none或wep时,没有此阶段。下面逐一分析各个阶段。

1 探测

此阶段的作用是扫描所在区域目前有哪些802.11网络,好让sta获取AP能力,以决定是否加入网络。一共有两个帧:

1.1 Probe Request

sta主动发送Req包,表明想加入的网络,以及通过Supported Rates表明自身的能力。

1.2 Probe Response

AP收到Req帧后,会回复Rsp帧,这是AP的义务(AP允许此sta连接的前提下),且通过Supported Rates表明自身能力。

2 认证

Sta 收到Rsp帧,根据自身能力及AP能力,决定要不要加入此网络,若决定加入,则发送 Auth 帧进行身份认证,否则流程结束。此流程共有两个帧:

2.1 Authentication Req

sta 通过Authentication Req帧表明自己的认证算法类型:0 -> Open System; 1 -> Shared Key。
Shared Key 方式即代表 WEP加密方式,Open System即代表 TKIP/WPA/WPA2方式。

2.1.1 Shared Key

使用Shared Key方式,是真实的认证过程,此时,没有第四阶段EAPOL。Auth认证共有四步:

  1. STA发起认证请求,携带认证算法类型为:Shared Key;
  2. AP 回复一个挑战明文(challage text);
  3. STA 使用预设密钥对挑战明文进行加密,然后发送给AP;
  4. AP收到后,使用密钥对收到的信息进行解密,如果揭秘成功且明文一致则表示认证成功,回复successful。

2.2.2 Open System

使用Open System方式,认证过程放到最后的EAPOL阶段,Auth只有两步:

  1. sta发起认证请求,携带认证算法类型为:Open System;

  1. AP直接回复successful。

3 关联

sta收到认证successful报文后,决定加入网络,则会发送Assoc Req帧,指明要加入的网络,以及自己的Listen Interval(聆听间隔,即sta多久聆听一次Beacon帧)和自己的能力信息。
AP收到Assoc Req帧后,确认sta的Listen Interval自己是否接受,能力信息是否匹配。如果一切OK,则回复Assoc Rsp帧。携带Association ID(关联ID)和successful信息,表示关联成功。否则回复Assoc Rsp帧,携带falied信息,表明关联失败。共有两帧:

3.1 Association Request

3.2 Association Rsponse

4 EAPOL

当认证算法类型为Open System时,有此阶段,此为真正的身份认证阶段。一共有四帧:

  1. AP首先发送Message1, 包含ANonce。
  2. STA收到Message1,从中获取ANonce,AA。SA是自己本身的信息,SNonce是自己生成的信息,PMK可通过自身的密码和SSID计算得到,也是已知信息,因此,STA此时具备计算PTK的五元组信息,计算得到PTK后,用PTK的KCK位为对将要发送的数据包进行计算得到MIC,并将MIC一同发给AP。
  3. AP收到Message2,同理,此时也具备所有五元组信息,并成功计算出PTK。AP使用PTK的KCK位对收到的数据进行计算得到MIC,并将计算得到的MIC与收到的MIC进行对比,若相等则代表AP和STA拥有相同的PTK,进而确认两者拥有相同的PMK,即两者拥有相同的密码。AP向STA回复Message3,包含被加密的GTK(用于对广播数据帧和组播数据帧加密)和MIC。如果不相等,则身份认证失败,回复认证失败报文,结束认证流程。
  4. STA收到被加密的GTK,因为自身有PTK,所以可从中解开GTK,然后AP和STA安装PTK和GTK,整个认证和密钥交换流程至此结束。

其他

名词解释:
sta : 无线终端,如手机,电脑
AP :无线接入点,如路由器,CPE

EAPOL阶段密钥交换流程图如下:

其底层数学原理是哈希算法,公式如下:

部分名词解释如下:
PTK 就是加密用的密钥。
PRF 可以简单理解为 sha1 算法。
AA 是 Authenticator(认证者) 的 MAC 地址。
SA 是 Supplicant(申请者)的 MAC 地址。
ANonce 是 Authenticator 产生的随机字串。
SNonce 是 Supplicant 产生的随机字串。
PMK 是由密码和 SSID 信息生成的密钥,如果 STA 和 AP 拥有相同的密码,则此密钥值也会相同,反之也成立。

本文标签: 简要过程wifi